Put dialog in more sensible place in Forty, got a bit further
with running it under wxX11 but still crashes (bad XPM?) Updated wxX11 readme text Added more wxYields to progress dialog Added timer and idle processing to wxApp::Yield for X11 Made busy info dialog thick frame for wxX11, else no decorations Some corrections for Nano-X Made text for busy dialog more sensible in dialogs sample git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14704 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -92,7 +92,7 @@ void FortyCanvas::OnDraw(wxDC& dc)
|
||||
{
|
||||
dc.SetFont(* m_font);
|
||||
m_game->Redraw(dc);
|
||||
|
||||
#if 0
|
||||
// if player name not set (and selection dialog is not displayed)
|
||||
// then ask the player for their name
|
||||
if (m_player.Length() == 0 && !m_playerDialog)
|
||||
@@ -117,8 +117,40 @@ void FortyCanvas::OnDraw(wxDC& dc)
|
||||
((wxFrame*)GetParent())->Close(TRUE);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void FortyCanvas::ShowPlayerDialog()
|
||||
{
|
||||
// if player name not set (and selection dialog is not displayed)
|
||||
// then ask the player for their name
|
||||
if (m_player.Length() == 0 && !m_playerDialog)
|
||||
{
|
||||
m_playerDialog = new PlayerSelectionDialog(this, m_scoreFile);
|
||||
m_playerDialog->ShowModal();
|
||||
m_player = m_playerDialog->GetPlayersName();
|
||||
if (m_player.Length() > 0)
|
||||
{
|
||||
// user entered a name - lookup their score
|
||||
int wins, games, score;
|
||||
m_scoreFile->ReadPlayersScore(m_player, wins, games, score);
|
||||
m_game->NewPlayer(wins, games, score);
|
||||
|
||||
wxClientDC dc(this);
|
||||
dc.SetFont(* m_font);
|
||||
m_game->DisplayScore(dc);
|
||||
m_playerDialog->Destroy();
|
||||
m_playerDialog = 0;
|
||||
Refresh(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
// user cancelled the dialog - exit the app
|
||||
((wxFrame*)GetParent())->Close(TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Called when the main frame is closed
|
||||
*/
|
||||
|
@@ -38,6 +38,7 @@ public:
|
||||
void EnableHelpingHand(bool enable) { m_helpingHand = enable; }
|
||||
void EnableRightButtonUndo(bool enable) { m_rightBtnUndo = enable; }
|
||||
void LayoutGame();
|
||||
void ShowPlayerDialog();
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
|
||||
|
@@ -31,40 +31,6 @@
|
||||
#include "forty.h"
|
||||
#include "card.h"
|
||||
#include "scoredg.h"
|
||||
#ifdef wx_x
|
||||
#include "cards.xbm"
|
||||
#endif
|
||||
|
||||
class FortyFrame: public wxFrame
|
||||
{
|
||||
public:
|
||||
FortyFrame(wxFrame* frame, char* title, int x, int y, int w, int h,bool largecards);
|
||||
virtual ~FortyFrame();
|
||||
|
||||
void OnCloseWindow(wxCloseEvent& event);
|
||||
|
||||
// Menu callbacks
|
||||
void NewGame(wxCommandEvent& event);
|
||||
void Exit(wxCommandEvent& event);
|
||||
void About(wxCommandEvent& event);
|
||||
void Undo(wxCommandEvent& event);
|
||||
void Redo(wxCommandEvent& event);
|
||||
void Scores(wxCommandEvent& event);
|
||||
void ToggleRightButtonUndo(wxCommandEvent& event);
|
||||
void ToggleHelpingHand(wxCommandEvent& event);
|
||||
void ToggleCardSize(wxCommandEvent& event);
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
|
||||
private:
|
||||
enum MenuCommands { NEW_GAME = 10, SCORES, EXIT,
|
||||
UNDO, REDO,
|
||||
RIGHT_BUTTON_UNDO, HELPING_HAND, LARGE_CARDS,
|
||||
ABOUT };
|
||||
|
||||
wxMenuBar* m_menuBar;
|
||||
FortyCanvas* m_canvas;
|
||||
};
|
||||
|
||||
BEGIN_EVENT_TABLE(FortyFrame, wxFrame)
|
||||
EVT_MENU(NEW_GAME, FortyFrame::NewGame)
|
||||
@@ -106,6 +72,8 @@ bool FortyApp::OnInit()
|
||||
// Show the frame
|
||||
frame->Show(TRUE);
|
||||
|
||||
frame->GetCanvas()->ShowPlayerDialog();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@@ -28,4 +28,38 @@ private:
|
||||
static wxBrush* m_backgroundBrush;
|
||||
};
|
||||
|
||||
class FortyCanvas;
|
||||
class FortyFrame: public wxFrame
|
||||
{
|
||||
public:
|
||||
FortyFrame(wxFrame* frame, char* title, int x, int y, int w, int h,bool largecards);
|
||||
virtual ~FortyFrame();
|
||||
|
||||
void OnCloseWindow(wxCloseEvent& event);
|
||||
|
||||
// Menu callbacks
|
||||
void NewGame(wxCommandEvent& event);
|
||||
void Exit(wxCommandEvent& event);
|
||||
void About(wxCommandEvent& event);
|
||||
void Undo(wxCommandEvent& event);
|
||||
void Redo(wxCommandEvent& event);
|
||||
void Scores(wxCommandEvent& event);
|
||||
void ToggleRightButtonUndo(wxCommandEvent& event);
|
||||
void ToggleHelpingHand(wxCommandEvent& event);
|
||||
void ToggleCardSize(wxCommandEvent& event);
|
||||
|
||||
FortyCanvas* GetCanvas() { return m_canvas; }
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
|
||||
private:
|
||||
enum MenuCommands { NEW_GAME = 10, SCORES, EXIT,
|
||||
UNDO, REDO,
|
||||
RIGHT_BUTTON_UNDO, HELPING_HAND, LARGE_CARDS,
|
||||
ABOUT };
|
||||
|
||||
wxMenuBar* m_menuBar;
|
||||
FortyCanvas* m_canvas;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -40,6 +40,8 @@
|
||||
#include <string.h>
|
||||
#include "card.h"
|
||||
#include "pile.h"
|
||||
#include "forty.h"
|
||||
#include "canvas.h"
|
||||
|
||||
#include "wx/app.h"
|
||||
|
||||
@@ -75,12 +77,11 @@ Pile::Pile(int x, int y, int dx, int dy)
|
||||
//+-------------------------------------------------------------+
|
||||
void Pile::Redraw(wxDC& dc )
|
||||
{
|
||||
wxWindow *frame = wxTheApp->GetTopWindow();
|
||||
FortyFrame *frame = (FortyFrame*) wxTheApp->GetTopWindow();
|
||||
wxWindow *canvas = (wxWindow *) NULL;
|
||||
if (frame)
|
||||
{
|
||||
wxNode *node = frame->GetChildren().First();
|
||||
if (node) canvas = (wxWindow*)node->Data();
|
||||
canvas = frame->GetCanvas();
|
||||
}
|
||||
|
||||
if (m_topCard >= 0)
|
||||
|
Reference in New Issue
Block a user