Use member variable instead of a global in the dialogs sample.
Made MyCanvas member of MyFrame instead of using a global variable which was put inside the frame by wxApp. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62263 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -260,8 +260,6 @@ BEGIN_EVENT_TABLE(StdButtonSizerDialog, wxDialog)
|
|||||||
EVT_RADIOBUTTON(wxID_ANY, StdButtonSizerDialog::OnEvent)
|
EVT_RADIOBUTTON(wxID_ANY, StdButtonSizerDialog::OnEvent)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
MyCanvas *myCanvas = (MyCanvas *) NULL;
|
|
||||||
|
|
||||||
// `Main program' equivalent, creating windows and returning main app frame
|
// `Main program' equivalent, creating windows and returning main app frame
|
||||||
bool MyApp::OnInit()
|
bool MyApp::OnInit()
|
||||||
{
|
{
|
||||||
@@ -475,9 +473,6 @@ bool MyApp::OnInit()
|
|||||||
|
|
||||||
frame->SetMenuBar(menubar);
|
frame->SetMenuBar(menubar);
|
||||||
|
|
||||||
myCanvas = new MyCanvas(frame);
|
|
||||||
myCanvas->SetBackgroundColour(*wxWHITE);
|
|
||||||
|
|
||||||
frame->Centre(wxBOTH);
|
frame->Centre(wxBOTH);
|
||||||
|
|
||||||
// Show the frame
|
// Show the frame
|
||||||
@@ -520,6 +515,8 @@ MyFrame::MyFrame(wxWindow *parent,
|
|||||||
#if wxUSE_STATUSBAR
|
#if wxUSE_STATUSBAR
|
||||||
CreateStatusBar();
|
CreateStatusBar();
|
||||||
#endif // wxUSE_STATUSBAR
|
#endif // wxUSE_STATUSBAR
|
||||||
|
|
||||||
|
m_canvas = new MyCanvas(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
MyFrame::~MyFrame()
|
MyFrame::~MyFrame()
|
||||||
@@ -533,16 +530,16 @@ MyFrame::~MyFrame()
|
|||||||
|
|
||||||
void MyFrame::ChooseColour(wxCommandEvent& WXUNUSED(event))
|
void MyFrame::ChooseColour(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
m_clrData.SetColour(myCanvas->GetBackgroundColour());
|
m_clrData.SetColour(m_canvas->GetBackgroundColour());
|
||||||
|
|
||||||
wxColourDialog dialog(this, &m_clrData);
|
wxColourDialog dialog(this, &m_clrData);
|
||||||
dialog.SetTitle(_("Please choose the background colour"));
|
dialog.SetTitle(_("Please choose the background colour"));
|
||||||
if ( dialog.ShowModal() == wxID_OK )
|
if ( dialog.ShowModal() == wxID_OK )
|
||||||
{
|
{
|
||||||
m_clrData = dialog.GetColourData();
|
m_clrData = dialog.GetColourData();
|
||||||
myCanvas->SetBackgroundColour(m_clrData.GetColour());
|
m_canvas->SetBackgroundColour(m_clrData.GetColour());
|
||||||
myCanvas->ClearBackground();
|
m_canvas->ClearBackground();
|
||||||
myCanvas->Refresh();
|
m_canvas->Refresh();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -557,7 +554,7 @@ void MyFrame::GetColour(wxCommandEvent& WXUNUSED(event))
|
|||||||
if ( clr.IsOk() )
|
if ( clr.IsOk() )
|
||||||
{
|
{
|
||||||
wxGetApp().m_canvasTextColour = clr;
|
wxGetApp().m_canvasTextColour = clr;
|
||||||
myCanvas->Refresh();
|
m_canvas->Refresh();
|
||||||
}
|
}
|
||||||
//else: dialog cancelled by user
|
//else: dialog cancelled by user
|
||||||
}
|
}
|
||||||
@@ -568,7 +565,7 @@ void MyFrame::GetColour(wxCommandEvent& WXUNUSED(event))
|
|||||||
#if USE_COLOURDLG_GENERIC
|
#if USE_COLOURDLG_GENERIC
|
||||||
void MyFrame::ChooseColourGeneric(wxCommandEvent& WXUNUSED(event))
|
void MyFrame::ChooseColourGeneric(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
m_clrData.SetColour(myCanvas->GetBackgroundColour());
|
m_clrData.SetColour(m_canvas->GetBackgroundColour());
|
||||||
|
|
||||||
//FIXME:TODO:This has no effect...
|
//FIXME:TODO:This has no effect...
|
||||||
m_clrData.SetChooseFull(true);
|
m_clrData.SetChooseFull(true);
|
||||||
@@ -587,9 +584,9 @@ void MyFrame::ChooseColourGeneric(wxCommandEvent& WXUNUSED(event))
|
|||||||
if (dialog->ShowModal() == wxID_OK)
|
if (dialog->ShowModal() == wxID_OK)
|
||||||
{
|
{
|
||||||
m_clrData = dialog->GetColourData();
|
m_clrData = dialog->GetColourData();
|
||||||
myCanvas->SetBackgroundColour(m_clrData.GetColour());
|
m_canvas->SetBackgroundColour(m_clrData.GetColour());
|
||||||
myCanvas->ClearBackground();
|
m_canvas->ClearBackground();
|
||||||
myCanvas->Refresh();
|
m_canvas->Refresh();
|
||||||
}
|
}
|
||||||
dialog->Destroy();
|
dialog->Destroy();
|
||||||
}
|
}
|
||||||
@@ -614,7 +611,7 @@ void MyFrame::ChooseFont(wxCommandEvent& WXUNUSED(event) )
|
|||||||
wxFontData retData = dialog.GetFontData();
|
wxFontData retData = dialog.GetFontData();
|
||||||
wxGetApp().m_canvasFont = retData.GetChosenFont();
|
wxGetApp().m_canvasFont = retData.GetChosenFont();
|
||||||
wxGetApp().m_canvasTextColour = retData.GetColour();
|
wxGetApp().m_canvasTextColour = retData.GetColour();
|
||||||
myCanvas->Refresh();
|
m_canvas->Refresh();
|
||||||
}
|
}
|
||||||
//else: cancelled by the user, don't change the font
|
//else: cancelled by the user, don't change the font
|
||||||
}
|
}
|
||||||
@@ -633,7 +630,7 @@ void MyFrame::ChooseFontGeneric(wxCommandEvent& WXUNUSED(event) )
|
|||||||
wxFontData retData = dialog->GetFontData();
|
wxFontData retData = dialog->GetFontData();
|
||||||
wxGetApp().m_canvasFont = retData.GetChosenFont();
|
wxGetApp().m_canvasFont = retData.GetChosenFont();
|
||||||
wxGetApp().m_canvasTextColour = retData.GetColour();
|
wxGetApp().m_canvasTextColour = retData.GetColour();
|
||||||
myCanvas->Refresh();
|
m_canvas->Refresh();
|
||||||
}
|
}
|
||||||
dialog->Destroy();
|
dialog->Destroy();
|
||||||
}
|
}
|
||||||
|
@@ -422,15 +422,21 @@ private:
|
|||||||
|
|
||||||
wxColourData m_clrData;
|
wxColourData m_clrData;
|
||||||
|
|
||||||
|
// just a window which we use to show the effect of font/colours selection
|
||||||
|
wxWindow *m_canvas;
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
|
|
||||||
class MyCanvas: public wxScrolledWindow
|
class MyCanvas: public wxScrolledWindow
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MyCanvas(wxWindow *parent) :
|
MyCanvas(wxWindow *parent) : wxScrolledWindow(parent, wxID_ANY)
|
||||||
wxScrolledWindow(parent,wxID_ANY,wxDefaultPosition,wxDefaultSize,wxNO_FULL_REPAINT_ON_RESIZE) { }
|
{
|
||||||
|
SetBackgroundColour(*wxWHITE);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
void OnPaint(wxPaintEvent& event);
|
void OnPaint(wxPaintEvent& event);
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
|
Reference in New Issue
Block a user