msg.Printf( _T("This is the about dialog of wxArtProvider sample.\n")
_T("Welcome to %s"), wxVERSION_STRING);
- wxMessageBox(msg, _T("About Minimal"), wxOK | wxICON_INFORMATION, this);
+ wxMessageBox(msg, _T("About wxArtProvider sample"),
+ wxOK | wxICON_INFORMATION, this);
}
void MyFrame::OnBrowser(wxCommandEvent& WXUNUSED(event))
msg = event.IsConnectedEvent() ? wxT("Successfully connected")
: wxT("Dialing failed");
- wxLogStatus(wxT(""));
+ wxLogStatus(wxEmptyString);
}
else
{
enum
{
// menu items
- Minimal_Quit = 1,
- Minimal_About
+ ID_MENU_QUIT = 1,
};
bool MyApp::OnInit()
{
- MyFrame *frame = new MyFrame(_T("Minimal wxWindows App"),
+ MyFrame *frame = new MyFrame(_T("Erase sample"),
wxPoint(50, 50), wxSize(450, 340));
frame->Show(TRUE);
// ----------------------------------------------------------------------------
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
- EVT_MENU(Minimal_Quit, MyFrame::OnQuit)
- EVT_MENU(Minimal_About, MyFrame::OnAbout)
+ EVT_MENU(ID_MENU_QUIT, MyFrame::OnQuit)
+ EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)
END_EVENT_TABLE()
// frame constructor
MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
: wxFrame((wxFrame *)NULL, -1, title, pos, size)
{
-#ifdef __WXMAC__
- wxApp::s_macAboutMenuItemId = Minimal_About;
-#endif
-
SetIcon(wxICON(mondrian));
wxMenu *menuFile = new wxMenu("", wxMENU_TEAROFF);
wxMenu *helpMenu = new wxMenu;
- helpMenu->Append(Minimal_About, _T("&About...\tCtrl-A"), _T("Show about dialog"));
+ helpMenu->Append(wxID_ABOUT, _T("&About...\tCtrl-A"), _T("Show about dialog"));
- menuFile->Append(Minimal_Quit, _T("E&xit\tAlt-X"), _T("Quit this program"));
+ menuFile->Append(ID_MENU_QUIT, _T("E&xit\tAlt-X"), _T("Quit this program"));
wxMenuBar *menuBar = new wxMenuBar();
menuBar->Append(menuFile, _T("&File"));
void DoAsyncExec(const wxString& cmd);
// the PID of the last process we launched asynchronously
- int m_pidLast;
+ long m_pidLast;
// last command we executed
wxString m_cmdLast;
if ( sig == 0 )
{
if ( wxProcess::Exists(pid) )
- wxLogStatus(_T("Process %d is running."), pid);
+ wxLogStatus(_T("Process %ld is running."), pid);
else
- wxLogStatus(_T("No process with pid = %d."), pid);
+ wxLogStatus(_T("No process with pid = %ld."), pid);
}
else // not SIGNONE
{
wxKillError rc = wxProcess::Kill(pid, (wxSignal)sig);
if ( rc == wxKILL_OK )
{
- wxLogStatus(_T("Process %d killed with signal %d."), pid, sig);
+ wxLogStatus(_T("Process %ld killed with signal %d."), pid, sig);
}
else
{
_T("unspecified error"),
};
- wxLogStatus(_T("Failed to kill process %d with signal %d: %s"),
+ wxLogStatus(_T("Failed to kill process %ld with signal %d: %s"),
pid, sig, errorText[rc]);
}
}
m_pidLast = wxExecute(cmd, wxEXEC_ASYNC, process);
if ( !m_pidLast )
{
- wxLogError(_T("Execution of '%s' failed."), cmd.c_str());
+ wxLogError( _T("Execution of '%s' failed."), cmd.c_str() );
delete process;
}
else
{
- wxLogStatus(_T("Process %ld (%s) launched."), m_pidLast, cmd.c_str());
+ wxLogStatus( _T("Process %ld (%s) launched."),
+ m_pidLast, cmd.c_str() );
m_cmdLast = cmd;
}
if ( !cmd )
return;
- wxLogStatus(_T("'%s' is running please wait..."), cmd.c_str());
+ wxLogStatus( _T("'%s' is running please wait..."), cmd.c_str() );
int code = wxExecute(cmd, wxEXEC_SYNC);
wxLogStatus(_T("Process '%s' terminated with exit code %d."),
- cmd.c_str(), code);
+ cmd.c_str(), code);
+
m_cmdLast = cmd;
}
// always execute the filter asynchronously
MyPipedProcess2 *process = new MyPipedProcess2(this, cmd, input);
- int pid = wxExecute(cmd, wxEXEC_ASYNC, process);
+ long pid = wxExecute(cmd, wxEXEC_ASYNC, process);
if ( pid )
{
- wxLogStatus(_T("Process %ld (%s) launched."), pid, cmd.c_str());
+ wxLogStatus( _T("Process %ld (%s) launched."), pid, cmd.c_str() );
m_running.Add(process);
}
{
// menu items
Minimal_Quit = 1,
- Minimal_About,
Minimal_Print,
Minimal_Preview,
Minimal_PageSetup,
// simple menu events like this the static method is much simpler.
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(Minimal_Quit, MyFrame::OnQuit)
- EVT_MENU(Minimal_About, MyFrame::OnAbout)
+ EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)
EVT_MENU(Minimal_Print, MyFrame::OnPrint)
EVT_MENU(Minimal_Preview, MyFrame::OnPreview)
EVT_MENU(Minimal_PageSetup, MyFrame::OnPageSetup)
menuFile->Append(Minimal_Print, "Print...");
menuFile->Append(Minimal_Preview, "Preview...");
menuFile->AppendSeparator();
- menuFile->Append(Minimal_About, "&About");
+ menuFile->Append(wxID_ABOUT, "&About");
menuFile->AppendSeparator();
menuFile->Append(Minimal_Quit, "&Exit");
// event handlers (these functions should _not_ be virtual)
void OnQuit(wxCommandEvent& event);
- void OnAbout(wxCommandEvent& event);
void OnBack(wxCommandEvent& event);
void OnForward(wxCommandEvent& event);
{
// menu items
Minimal_Quit = 1,
- Minimal_About,
Minimal_Back,
Minimal_Forward,
// simple menu events like this the static method is much simpler.
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(Minimal_Quit, MyFrame::OnQuit)
- EVT_MENU(Minimal_About, MyFrame::OnAbout)
EVT_MENU(Minimal_Back, MyFrame::OnBack)
EVT_MENU(Minimal_Forward, MyFrame::OnForward)
END_EVENT_TABLE()
// Create the main application window
MyFrame *frame = new MyFrame("wxHtmlWindow testing application",
wxPoint(50, 50), wxSize(640, 480));
-
+
// Show it and tell the application that it's our main window
// @@@ what does it do exactly, in fact? is it necessary here?
frame->Show(TRUE);
SetTopWindow(frame);
wxFileSystem::AddHandler(new MyVFS);
-
+
// success: wxApp::OnRun() will be called which will enter the main message
// loop and the application will run. If we returned FALSE here, the
// application would exit immediately.
Close(TRUE);
}
- void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
- {
- }
-
-
-
void MyFrame::OnBack(wxCommandEvent& WXUNUSED(event))
{
if (!html -> HistoryBack()) wxMessageBox("You reached prehistory era!");
#include "wx/html/htmlwin.h"
-
-
/*
TAG_HANDLER_BEGIN(MYBIND, "MYBIND")
- TAG_HANDLER_PROC(tag)
- {
- wxWindow *wnd;
- int ax, ay;
- int fl = 0;
+TAG_HANDLER_PROC(tag)
+{
+ wxWindow *wnd;
+ int ax, ay;
+ int fl = 0;
+
+ tag.ScanParam(wxT("X"), wxT("%i"), &ax);
+ tag.ScanParam(wxT("Y"), wxT("%i"), &ay);
+
+ if (tag.HasParam(wxT("FLOAT"))) fl = ax;
- tag.ScanParam(wxT("X"), wxT("%i"), &ax);
- tag.ScanParam(wxT("Y"), wxT("%i"), &ay);
- if (tag.HasParam(wxT("FLOAT")))
- fl = ax;
+ wnd = new wxTextCtrl(m_WParser->GetWindow(), -1, tag.GetParam(wxT("NAME")),
+ wxPoint(0,0), wxSize(ax, ay), wxTE_MULTILINE);
- wnd = new wxTextCtrl(m_WParser->GetWindow(), -1, tag.GetParam(wxT("NAME")),
- wxPoint(0,0), wxSize(ax, ay), wxTE_MULTILINE);
- wnd->Show(TRUE);
+ wnd->Show(TRUE);
- m_WParser->GetContainer()->InsertCell(new wxHtmlWidgetCell(wnd, fl));
+ m_WParser->GetContainer()->InsertCell(new wxHtmlWidgetCell(wnd, fl));
- return FALSE;
- }
+ return FALSE;
+}
TAG_HANDLER_END(MYBIND)
TAGS_MODULE_END(MyBind)
-
-
-
-
-
-
-
// ----------------------------------------------------------------------------
// private classes
// ----------------------------------------------------------------------------
// Define a new application type, each program should derive a class from wxApp
- class MyApp : public wxApp
- {
- public:
+class MyApp : public wxApp
+{
+public:
// override base class virtuals
// ----------------------------
-
+
// this one is called on application startup and is a good place for the app
// initialization (doing it here and not in the ctor allows to have an error
// return: if OnInit() returns false, the application terminates)
- virtual bool OnInit();
- };
+ virtual bool OnInit();
+};
// Define a new frame type: this is going to be our main frame
- class MyFrame : public wxFrame
- {
- public:
+class MyFrame : public wxFrame
+{
+public:
// ctor(s)
- MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
-
+ MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
+
// event handlers (these functions should _not_ be virtual)
- void OnQuit(wxCommandEvent& event);
- void OnAbout(wxCommandEvent& event);
- void OnBack(wxCommandEvent& event);
- void OnForward(wxCommandEvent& event);
+ void OnQuit(wxCommandEvent& event);
+ void OnBack(wxCommandEvent& event);
+ void OnForward(wxCommandEvent& event);
- private:
+private:
// any class wishing to process wxWindows events must use this macro
DECLARE_EVENT_TABLE()
- };
+};
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
// IDs for the controls and the menu commands
- enum
- {
+enum
+{
// menu items
- Minimal_Quit = 1,
- Minimal_About,
- Minimal_Back,
- Minimal_Forward,
-
+ Minimal_Quit = 1,
+ Minimal_Back,
+ Minimal_Forward,
+
// controls start here (the numbers are, of course, arbitrary)
- Minimal_Text = 1000,
- };
+ Minimal_Text = 1000,
+};
// ----------------------------------------------------------------------------
// event tables and other macros for wxWindows
// the event tables connect the wxWindows events with the functions (event
// handlers) which process them. It can be also done at run-time, but for the
// simple menu events like this the static method is much simpler.
- BEGIN_EVENT_TABLE(MyFrame, wxFrame)
- EVT_MENU(Minimal_Quit, MyFrame::OnQuit)
- EVT_MENU(Minimal_About, MyFrame::OnAbout)
- EVT_MENU(Minimal_Back, MyFrame::OnBack)
- EVT_MENU(Minimal_Forward, MyFrame::OnForward)
- END_EVENT_TABLE()
-
- // Create a new application object: this macro will allow wxWindows to create
- // the application object during program execution (it's better than using a
- // static object for many reasons) and also declares the accessor function
- // wxGetApp() which will return the reference of the right type (i.e. MyApp and
- // not wxApp)
- IMPLEMENT_APP(MyApp)
-
- // ============================================================================
- // implementation
- // ============================================================================
-
- // ----------------------------------------------------------------------------
- // the application class
- // ----------------------------------------------------------------------------
-
- // `Main program' equivalent: the program execution "starts" here
- bool MyApp::OnInit()
- {
+BEGIN_EVENT_TABLE(MyFrame, wxFrame)
+ EVT_MENU(Minimal_Quit, MyFrame::OnQuit)
+ EVT_MENU(Minimal_Back, MyFrame::OnBack)
+ EVT_MENU(Minimal_Forward, MyFrame::OnForward)
+END_EVENT_TABLE()
+
+// Create a new application object: this macro will allow wxWindows to create
+// the application object during program execution (it's better than using a
+// static object for many reasons) and also declares the accessor function
+// wxGetApp() which will return the reference of the right type (i.e. MyApp and
+// not wxApp)
+IMPLEMENT_APP(MyApp)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// the application class
+// ----------------------------------------------------------------------------
+
+// `Main program' equivalent: the program execution "starts" here
+bool MyApp::OnInit()
+{
// Create the main application window
- MyFrame *frame = new MyFrame("wxHtmlWindow testing application",
- wxPoint(50, 50), wxSize(640, 480));
-
+ MyFrame *frame = new MyFrame( "wxHtmlWindow testing application",
+ wxPoint(50, 50), wxSize(640, 480) );
+
// Show it and tell the application that it's our main window
// @@@ what does it do exactly, in fact? is it necessary here?
- frame->Show(TRUE);
- SetTopWindow(frame);
+ frame->Show(TRUE);
+ SetTopWindow(frame);
// success: wxApp::OnRun() will be called which will enter the main message
// loop and the application will run. If we returned FALSE here, the
// application would exit immediately.
- return TRUE;
- }
+ return TRUE;
+}
// ----------------------------------------------------------------------------
// main frame
wxHtmlWindow *html;
// frame constructor
- MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
- : wxFrame((wxFrame *)NULL, -1, title, pos, size)
- {
+MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
+: wxFrame((wxFrame *)NULL, -1, title, pos, size)
+{
// create a menu bar
- wxMenu *menuFile = new wxMenu;
- wxMenu *menuNav = new wxMenu;
+ wxMenu *menuFile = new wxMenu;
+ wxMenu *menuNav = new wxMenu;
- menuFile->Append(Minimal_Quit, "E&xit");
- menuNav->Append(Minimal_Back, "Go &BACK");
- menuNav->Append(Minimal_Forward, "Go &FORWARD");
+ menuFile->Append(Minimal_Quit, "E&xit");
+ menuNav->Append(Minimal_Back, "Go &BACK");
+ menuNav->Append(Minimal_Forward, "Go &FORWARD");
// now append the freshly created menu to the menu bar...
- wxMenuBar *menuBar = new wxMenuBar;
- menuBar->Append(menuFile, "&File");
- menuBar->Append(menuNav, "&Navigate");
+ wxMenuBar *menuBar = new wxMenuBar;
+ menuBar->Append(menuFile, "&File");
+ menuBar->Append(menuNav, "&Navigate");
// ... and attach this menu bar to the frame
- SetMenuBar(menuBar);
-
- CreateStatusBar(2);
+ SetMenuBar(menuBar);
- html = new wxHtmlWindow(this);
- html -> SetRelatedFrame(this, "VFS Demo: '%s'");
- html -> SetRelatedStatusBar(1);
- html -> LoadPage("start.htm");
- }
+ CreateStatusBar(2);
+
+ html = new wxHtmlWindow(this);
+ html -> SetRelatedFrame(this, "VFS Demo: '%s'");
+ html -> SetRelatedStatusBar(1);
+ html -> LoadPage("start.htm");
+}
// event handlers
- void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
- {
+void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
+{
// TRUE is to force the frame to close
- Close(TRUE);
- }
-
- void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
- {
- }
-
-
-
- void MyFrame::OnBack(wxCommandEvent& WXUNUSED(event))
- {
- if (!html -> HistoryBack()) wxMessageBox("You reached prehistory era!");
- }
-
-
- void MyFrame::OnForward(wxCommandEvent& WXUNUSED(event))
- {
- if (!html -> HistoryForward()) wxMessageBox("No more items in history!");
- }
-
-
-
+ Close(TRUE);
+}
+void MyFrame::OnBack(wxCommandEvent& WXUNUSED(event))
+{
+ if (!html -> HistoryBack()) wxMessageBox("You reached prehistory era!");
+}
+void MyFrame::OnForward(wxCommandEvent& WXUNUSED(event))
+{
+ if (!html -> HistoryForward()) wxMessageBox("No more items in history!");
+}
// ----------------------------------------------------------------------------
// Define a new application type, each program should derive a class from wxApp
- class MyApp : public wxApp
- {
- public:
+class MyApp : public wxApp
+{
+public:
// override base class virtuals
// ----------------------------
// this one is called on application startup and is a good place for the app
// initialization (doing it here and not in the ctor allows to have an error
// return: if OnInit() returns false, the application terminates)
- virtual bool OnInit();
- };
+ virtual bool OnInit();
+};
// Define a new frame type: this is going to be our main frame
- class MyFrame : public wxFrame
- {
- public:
+class MyFrame : public wxFrame
+{
+public:
// ctor(s)
- MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
+ MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
// event handlers (these functions should _not_ be virtual)
- void OnQuit(wxCommandEvent& event);
- void OnAbout(wxCommandEvent& event);
- void OnBack(wxCommandEvent& event);
- void OnForward(wxCommandEvent& event);
+ void OnQuit(wxCommandEvent& event);
+ void OnBack(wxCommandEvent& event);
+ void OnForward(wxCommandEvent& event);
- private:
+private:
// any class wishing to process wxWindows events must use this macro
DECLARE_EVENT_TABLE()
- };
+};
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
// IDs for the controls and the menu commands
- enum
- {
+enum
+{
// menu items
- Minimal_Quit = 1,
- Minimal_About,
- Minimal_Back,
- Minimal_Forward
- };
+ Minimal_Quit = 1,
+ Minimal_Back,
+ Minimal_Forward
+};
// ----------------------------------------------------------------------------
// event tables and other macros for wxWindows
// the event tables connect the wxWindows events with the functions (event
// handlers) which process them. It can be also done at run-time, but for the
// simple menu events like this the static method is much simpler.
- BEGIN_EVENT_TABLE(MyFrame, wxFrame)
- EVT_MENU(Minimal_Quit, MyFrame::OnQuit)
- EVT_MENU(Minimal_About, MyFrame::OnAbout)
- EVT_MENU(Minimal_Back, MyFrame::OnBack)
- EVT_MENU(Minimal_Forward, MyFrame::OnForward)
- END_EVENT_TABLE()
-
- // Create a new application object: this macro will allow wxWindows to create
- // the application object during program execution (it's better than using a
- // static object for many reasons) and also declares the accessor function
- // wxGetApp() which will return the reference of the right type (i.e. MyApp and
- // not wxApp)
- IMPLEMENT_APP(MyApp)
-
- // ============================================================================
- // implementation
- // ============================================================================
-
- // ----------------------------------------------------------------------------
- // the application class
- // ----------------------------------------------------------------------------
- // `Main program' equivalent: the program execution "starts" here
- bool MyApp::OnInit()
- {
- #if wxUSE_LIBPNG
- wxImage::AddHandler(new wxPNGHandler);
- #endif
- #if wxUSE_LIBJPEG
- wxImage::AddHandler(new wxJPEGHandler);
- #endif
-
- wxFileSystem::AddHandler(new wxZipFSHandler);
+BEGIN_EVENT_TABLE(MyFrame, wxFrame)
+ EVT_MENU(Minimal_Quit, MyFrame::OnQuit)
+ EVT_MENU(Minimal_Back, MyFrame::OnBack)
+ EVT_MENU(Minimal_Forward, MyFrame::OnForward)
+END_EVENT_TABLE()
+
+// Create a new application object: this macro will allow wxWindows to create
+// the application object during program execution (it's better than using a
+// static object for many reasons) and also declares the accessor function
+// wxGetApp() which will return the reference of the right type (i.e. MyApp and
+// not wxApp)
+IMPLEMENT_APP(MyApp)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// the application class
+// ----------------------------------------------------------------------------
+// `Main program' equivalent: the program execution "starts" here
+bool MyApp::OnInit()
+{
+#if wxUSE_LIBPNG
+ wxImage::AddHandler(new wxPNGHandler);
+#endif
+#if wxUSE_LIBJPEG
+ wxImage::AddHandler(new wxJPEGHandler);
+#endif
+
+ wxFileSystem::AddHandler(new wxZipFSHandler);
// Create the main application window
- MyFrame *frame = new MyFrame("wxHtmlWindow testing application",
- wxPoint(50, 50), wxSize(640, 480));
+ MyFrame *frame = new MyFrame( "wxHtmlWindow testing application",
+ wxPoint(50, 50), wxSize(640, 480) );
// Show it and tell the application that it's our main window
// @@@ what does it do exactly, in fact? is it necessary here?
- frame->Show(TRUE);
- SetTopWindow(frame);
+ frame->Show(TRUE);
+ SetTopWindow(frame);
// success: wxApp::OnRun() will be called which will enter the main message
// loop and the application will run. If we returned FALSE here, the
// application would exit immediately.
- return TRUE;
- }
+
+ return TRUE;
+}
// ----------------------------------------------------------------------------
// main frame
wxHtmlWindow *html;
// frame constructor
- MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
- : wxFrame((wxFrame *)NULL, -1, title, pos, size)
- {
+MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
+: wxFrame((wxFrame *)NULL, -1, title, pos, size)
+{
// create a menu bar
- wxMenu *menuFile = new wxMenu;
- wxMenu *menuNav = new wxMenu;
+ wxMenu *menuFile = new wxMenu;
+ wxMenu *menuNav = new wxMenu;
- menuFile->Append(Minimal_Quit, "E&xit");
- menuNav->Append(Minimal_Back, "Go &BACK");
- menuNav->Append(Minimal_Forward, "Go &FORWARD");
+ menuFile->Append(Minimal_Quit, "E&xit");
+ menuNav->Append(Minimal_Back, "Go &BACK");
+ menuNav->Append(Minimal_Forward, "Go &FORWARD");
// now append the freshly created menu to the menu bar...
- wxMenuBar *menuBar = new wxMenuBar;
- menuBar->Append(menuFile, "&File");
- menuBar->Append(menuNav, "&Navigate");
+ wxMenuBar *menuBar = new wxMenuBar;
+ menuBar->Append(menuFile, "&File");
+ menuBar->Append(menuNav, "&Navigate");
// ... and attach this menu bar to the frame
- SetMenuBar(menuBar);
+ SetMenuBar(menuBar);
- CreateStatusBar(1);
+ CreateStatusBar(1);
- {
- html = new wxHtmlWindow(this);
- html -> SetRelatedFrame(this, "HTML : %s");
- html -> SetRelatedStatusBar(0);
- html -> LoadPage("start.htm");
- }
- }
+ {
+ html = new wxHtmlWindow(this);
+ html -> SetRelatedFrame(this, "HTML : %s");
+ html -> SetRelatedStatusBar(0);
+ html -> LoadPage("start.htm");
+ }
+}
// event handlers
- void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
- {
+void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
+{
// TRUE is to force the frame to close
- Close(TRUE);
- }
-
- void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
- {
- }
-
-
-
- void MyFrame::OnBack(wxCommandEvent& WXUNUSED(event))
- {
- if (!html -> HistoryBack()) wxMessageBox("You reached prehistory era!");
- }
-
-
- void MyFrame::OnForward(wxCommandEvent& WXUNUSED(event))
- {
- if (!html -> HistoryForward()) wxMessageBox("No more items in history!");
- }
+ Close(TRUE);
+}
+
+void MyFrame::OnBack(wxCommandEvent& WXUNUSED(event))
+{
+ if (!html -> HistoryBack()) wxMessageBox("You reached prehistory era!");
+}
+
+void MyFrame::OnForward(wxCommandEvent& WXUNUSED(event))
+{
+ if (!html -> HistoryForward()) wxMessageBox("No more items in history!");
+}
class MyApp: public wxApp
{
public:
- virtual bool OnInit();
+ virtual bool OnInit();
protected:
- wxLocale m_locale; // locale we'll be using
+ wxLocale m_locale; // locale we'll be using
};
// Define a new frame type
class MyFrame: public wxFrame
-{
+{
public:
- MyFrame(wxFrame *frame, const wxChar *title, int x, int y, int w, int h,
- wxLocale& m_locale);
+ MyFrame(wxFrame *frame, const wxChar *title,
+ const wxPoint& pos, const wxSize& size, wxLocale& m_locale);
public:
- void OnQuit(wxCommandEvent& event);
- void OnAbout(wxCommandEvent& event);
- void OnPlay(wxCommandEvent& event);
- void OnOpen(wxCommandEvent& event);
-
- DECLARE_EVENT_TABLE()
-
- wxLocale& m_locale;
+ void OnQuit(wxCommandEvent& event);
+ void OnAbout(wxCommandEvent& event);
+ void OnPlay(wxCommandEvent& event);
+ void OnOpen(wxCommandEvent& event);
+
+ DECLARE_EVENT_TABLE()
+
+ wxLocale& m_locale;
};
// ID for the menu commands
enum
{
- MINIMAL_QUIT = 1,
- MINIMAL_TEXT,
- MINIMAL_ABOUT,
- MINIMAL_TEST,
- MINIMAL_OPEN
+ MINIMAL_QUIT = 1,
+ MINIMAL_TEXT,
+ MINIMAL_TEST,
+ MINIMAL_OPEN
};
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
- EVT_MENU(MINIMAL_QUIT, MyFrame::OnQuit)
- EVT_MENU(MINIMAL_ABOUT, MyFrame::OnAbout)
- EVT_MENU(MINIMAL_TEST, MyFrame::OnPlay)
- EVT_MENU(MINIMAL_OPEN, MyFrame::OnOpen)
+ EVT_MENU(MINIMAL_QUIT, MyFrame::OnQuit)
+ EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)
+ EVT_MENU(MINIMAL_TEST, MyFrame::OnPlay)
+ EVT_MENU(MINIMAL_OPEN, MyFrame::OnOpen)
END_EVENT_TABLE()
IMPLEMENT_APP(MyApp)
// `Main program' equivalent, creating windows and returning main app frame
bool MyApp::OnInit()
{
- const wxString langs[] =
- {
- _T("(System default)"),
- _T("French"),
- _T("German"),
- _T("Russian"),
- _T("English"),
- _T("English (U.S.)")
- };
-
- SetExitOnFrameDelete(FALSE);
- int lng = wxGetSingleChoiceIndex(_T("Please choose language:"), _T("Language"),
+ const wxString langs[] =
+ {
+ _T("(System default)"),
+ _T("French"),
+ _T("German"),
+ _T("Russian"),
+ _T("English"),
+ _T("English (U.S.)")
+ };
+
+ SetExitOnFrameDelete(FALSE);
+ int lng = wxGetSingleChoiceIndex(_T("Please choose language:"), _T("Language"),
WXSIZEOF(langs), langs);
- SetExitOnFrameDelete(TRUE);
-
- switch (lng)
- {
- case 0 : m_locale.Init(wxLANGUAGE_DEFAULT); break;
- case 1 : m_locale.Init(wxLANGUAGE_FRENCH); break;
- case 2 : m_locale.Init(wxLANGUAGE_GERMAN); break;
- case 3 : m_locale.Init(wxLANGUAGE_RUSSIAN); break;
- case 4 : m_locale.Init(wxLANGUAGE_ENGLISH); break;
- case -1:
- case 5 : m_locale.Init(wxLANGUAGE_ENGLISH_US); break;
- }
-
- // Initialize the catalogs we'll be using
- /* not needed any more, done in wxLocale ctor
- m_locale.AddCatalog("wxstd"); // 1) for library messages
- */
- m_locale.AddCatalog(wxT("internat")); // 2) our private one
- /* this catalog is installed in standard location on Linux systems,
+ SetExitOnFrameDelete(TRUE);
+
+ switch (lng)
+ {
+ case 0 : m_locale.Init(wxLANGUAGE_DEFAULT); break;
+ case 1 : m_locale.Init(wxLANGUAGE_FRENCH); break;
+ case 2 : m_locale.Init(wxLANGUAGE_GERMAN); break;
+ case 3 : m_locale.Init(wxLANGUAGE_RUSSIAN); break;
+ case 4 : m_locale.Init(wxLANGUAGE_ENGLISH); break;
+ case -1:
+ case 5 : m_locale.Init(wxLANGUAGE_ENGLISH_US); break;
+ }
+
+ // Initialize the catalogs we'll be using
+ /* not needed any more, done in wxLocale ctor
+ m_locale.AddCatalog("wxstd"); // 1) for library messages
+ */
+ m_locale.AddCatalog(wxT("internat")); // 2) our private one
+ /* this catalog is installed in standard location on Linux systems,
it might not be installed on yours - just ignore the errrors
or comment out this line then */
#ifdef __LINUX__
- {
+ {
wxLogNull noLog;
m_locale.AddCatalog("fileutils"); // 3) and another just for testing
- }
+ }
#endif
-
- // Create the main frame window
- MyFrame *frame = new MyFrame((wxFrame *) NULL, _("International wxWindows App"),
- 50, 50, 350, 60, m_locale);
-
- // Give it an icon
- frame->SetIcon(wxICON(mondrian));
-
- // Make a menubar
- wxMenu *file_menu = new wxMenu;
- file_menu->Append(MINIMAL_ABOUT, _("&About..."));
- file_menu->AppendSeparator();
- file_menu->Append(MINIMAL_QUIT, _("E&xit"));
-
- wxMenu *test_menu = new wxMenu;
- test_menu->Append(MINIMAL_OPEN, _("&Open bogus file"));
- test_menu->Append(MINIMAL_TEST, _("&Play a game"));
-
- wxMenuBar *menu_bar = new wxMenuBar;
- menu_bar->Append(file_menu, _("&File"));
- menu_bar->Append(test_menu, _("&Test"));
- frame->SetMenuBar(menu_bar);
-
- // Show the frame
- frame->Show(TRUE);
- SetTopWindow(frame);
-
- return TRUE;
+
+ // Create the main frame window
+ MyFrame *frame = new MyFrame( (wxFrame *) NULL,
+ _("International wxWindows App"), wxPoint(50, 50), wxSize(350, 60),
+ m_locale);
+
+ // Give it an icon
+ frame->SetIcon(wxICON(mondrian));
+
+ // Make a menubar
+ wxMenu *file_menu = new wxMenu;
+ file_menu->Append(wxID_ABOUT, _("&About..."));
+ file_menu->AppendSeparator();
+ file_menu->Append(MINIMAL_QUIT, _("E&xit"));
+
+ wxMenu *test_menu = new wxMenu;
+ test_menu->Append(MINIMAL_OPEN, _("&Open bogus file"));
+ test_menu->Append(MINIMAL_TEST, _("&Play a game"));
+
+ wxMenuBar *menu_bar = new wxMenuBar;
+ menu_bar->Append(file_menu, _("&File"));
+ menu_bar->Append(test_menu, _("&Test"));
+ frame->SetMenuBar(menu_bar);
+
+ // Show the frame
+ frame->Show(TRUE);
+ SetTopWindow(frame);
+
+ return TRUE;
}
// My frame constructor
-MyFrame::MyFrame(wxFrame *frame, const wxChar *title, int x, int y,
- int w, int h, wxLocale& l)
- : wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h)),
+MyFrame::MyFrame(wxFrame *frame, const wxChar *title,
+ const wxPoint& pos, const wxSize& size, wxLocale& l)
+ : wxFrame(frame, -1, title, pos, size),
m_locale(l)
{
+ // Empty
}
void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event) )
{
- Close(TRUE);
+ Close(TRUE);
}
void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
{
- wxString localeInfo;
- localeInfo.Printf(_("Language: %s\nSystem locale name: %s\nCanonical locale name: %s\n"),
- m_locale.GetLocale(),
- m_locale.GetSysName().c_str(),
- m_locale.GetCanonicalName().c_str());
-
- wxMessageDialog(this, wxString(_("I18n sample\n(c) 1998, 1999 Vadim Zeitlin and Julian Smart"))
- + wxT("\n\n") + localeInfo,
- _("About Internat"), wxOK | wxICON_INFORMATION).ShowModal();
+ wxString localeInfo;
+ localeInfo.Printf( _("Language: %s\nSystem locale name: %s\nCanonical locale name: %s\n"),
+ m_locale.GetLocale(),
+ m_locale.GetSysName().c_str(),
+ m_locale.GetCanonicalName().c_str() );
+
+ wxMessageDialog(this, wxString(_("I18n sample\n(c) 1998, 1999 Vadim Zeitlin and Julian Smart"))
+ + wxT("\n\n") + localeInfo,
+ _("About Internat"), wxOK | wxICON_INFORMATION).ShowModal();
}
void MyFrame::OnPlay(wxCommandEvent& WXUNUSED(event))
{
- wxString str = wxGetTextFromUser(_("Enter your number:"),
- _("Try to guess my number!"),
- "", this);
- if ( str.IsEmpty() )
- return;
-
- int num;
- wxSscanf(str, wxT("%d"), &num);
- if ( num == 0 )
- str = _("You've probably entered an invalid number.");
- else if ( num == 9 ) // this message is not translated (not in catalog)
- str = "You've found a bug in this program!";
- else if ( num != 17 ) // a more implicit way to write _()
- str = wxGetTranslation(wxT("Bad luck! try again..."));
- else {
- str.Empty();
- // string must be split in two -- otherwise the translation won't be found
- str << _("Congratulations! you've won. Here is the magic phrase:")
- << _("cannot create fifo `%s'");
- }
-
- wxMessageBox(str, _("Result"), wxOK | wxICON_INFORMATION);
+ wxString str = wxGetTextFromUser(_("Enter your number:"),
+ _("Try to guess my number!"), wxEmptyString, this);
+
+ if ( str.IsEmpty() ) return;
+
+ int num;
+ wxSscanf(str, wxT("%d"), &num);
+ if ( num == 0 )
+ str = _("You've probably entered an invalid number.");
+ else if ( num == 9 ) // this message is not translated (not in catalog)
+ str = "You've found a bug in this program!";
+ else if ( num != 17 ) // a more implicit way to write _()
+ str = wxGetTranslation(wxT("Bad luck! try again..."));
+ else
+ {
+ str.Empty();
+ // string must be split in two -- otherwise the translation won't be found
+ str << _("Congratulations! you've won. Here is the magic phrase:")
+ << _("cannot create fifo `%s'");
+ }
+
+ wxMessageBox(str, _("Result"), wxOK | wxICON_INFORMATION);
}
void MyFrame::OnOpen(wxCommandEvent&)
{
- // open a bogus file -- the error message should be also translated if you've
- // got wxstd.mo somewhere in the search path
- wxFile file(wxT("NOTEXIST.ING"));
+ // open a bogus file -- the error message should be also translated if you've
+ // got wxstd.mo somewhere in the search path
+ wxFile file(wxT("NOTEXIST.ING"));
}
#endif
#if !wxUSE_JOYSTICK
-#error You must set wxUSE_JOYSTICK to 1 in setup.h!
+# error You must set wxUSE_JOYSTICK to 1 in setup.h
+#endif
+
+#if !wxUSE_STATUSBAR
+# error You must set wxUSE_STATUSBAR to 1 in setup.h
#endif
#include "wx/wave.h"
int winNumber = 1;
// Initialise this in OnInit, not statically
-bool MyApp::OnInit(void)
+bool MyApp::OnInit()
{
- wxJoystick stick(wxJOYSTICK1);
- if (!stick.IsOk())
- {
- wxMessageBox("No joystick detected!");
- return FALSE;
- }
+ wxJoystick stick(wxJOYSTICK1);
+ if (!stick.IsOk())
+ {
+ wxMessageBox("No joystick detected!");
+ return FALSE;
+ }
+
#if wxUSE_WAVE
- m_fire.Create("gun.wav");
+ m_fire.Create("gun.wav");
#endif // wxUSE_WAVE
- m_maxX = stick.GetXMax();
- m_maxY = stick.GetYMax();
+ m_maxX = stick.GetXMax();
+ m_maxY = stick.GetYMax();
- // Create the main frame window
+ // Create the main frame window
- frame = new MyFrame(NULL, "Joystick Demo", wxPoint(0, 0), wxSize(500, 400),
- wxDEFAULT_FRAME_STYLE | wxHSCROLL | wxVSCROLL);
+ frame = new MyFrame(NULL, "Joystick Demo", wxDefaultPosition,
+ wxSize(500, 400), wxDEFAULT_FRAME_STYLE | wxHSCROLL | wxVSCROLL);
// Give it an icon (this is ignored in MDI mode: uses resources)
#ifdef __WXMSW__
- frame->SetIcon(wxIcon("joyicon"));
+ frame->SetIcon(wxIcon("joyicon"));
#endif
#ifdef __X__
- frame->SetIcon(wxIcon("joyicon.xbm"));
+ frame->SetIcon(wxIcon("joyicon.xbm"));
#endif
- // Make a menubar
- wxMenu *file_menu = new wxMenu;
+ // Make a menubar
+ wxMenu *file_menu = new wxMenu;
- file_menu->Append(JOYTEST_QUIT, "&Exit");
+ file_menu->Append(JOYTEST_QUIT, "&Exit");
- wxMenu *help_menu = new wxMenu;
- help_menu->Append(JOYTEST_ABOUT, "&About");
+ wxMenuBar *menu_bar = new wxMenuBar;
- wxMenuBar *menu_bar = new wxMenuBar;
+ menu_bar->Append(file_menu, "&File");
- menu_bar->Append(file_menu, "&File");
- menu_bar->Append(help_menu, "&Help");
+ // Associate the menu bar with the frame
+ frame->SetMenuBar(menu_bar);
- // Associate the menu bar with the frame
- frame->SetMenuBar(menu_bar);
+ frame->CreateStatusBar();
- frame->CreateStatusBar();
+ frame->CenterOnScreen();
+ frame->Show(TRUE);
- frame->Show(TRUE);
+ SetTopWindow(frame);
- SetTopWindow(frame);
-
- return TRUE;
+ return TRUE;
}
BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow)
// Define a constructor for my canvas
MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size):
- wxScrolledWindow(parent, -1, pos, size, wxSUNKEN_BORDER)
+ wxScrolledWindow(parent, -1, pos, size, wxSUNKEN_BORDER)
{
wxJoystick joystick(wxJOYSTICK1);
joystick.SetCapture(this);
}
-MyCanvas::~MyCanvas(void)
+MyCanvas::~MyCanvas()
{
wxJoystick joystick(wxJOYSTICK1);
joystick.ReleaseCapture();
void MyCanvas::OnJoystickEvent(wxJoystickEvent& event)
{
- wxClientDC dc(this);
+ wxClientDC dc(this);
+
+ wxPoint pt(event.GetPosition());
+
+ // Scale to canvas size
+ int cw, ch;
+ GetSize(&cw, &ch);
- wxPoint pt(event.GetPosition());
+ pt.x = (long) (((double)pt.x/(double)wxGetApp().m_maxX) * cw);
+ pt.y = (long) (((double)pt.y/(double)wxGetApp().m_maxY) * ch);
- // Scale to canvas size
- int cw, ch;
- GetSize(&cw, &ch);
+ if (xpos > -1 && ypos > -1 && event.IsMove() && event.ButtonIsDown())
+ {
+ dc.SetPen(*wxBLACK_PEN);
+ dc.DrawLine(xpos, ypos, pt.x, pt.y);
+ }
- pt.x = (long) (((double)pt.x/(double)wxGetApp().m_maxX) * cw);
- pt.y = (long) (((double)pt.y/(double)wxGetApp().m_maxY) * ch);
+ xpos = pt.x;
+ ypos = pt.y;
- if (xpos > -1 && ypos > -1 && event.IsMove() && event.ButtonIsDown())
- {
- dc.SetPen(*wxBLACK_PEN);
- dc.DrawLine(xpos, ypos, pt.x, pt.y);
- }
- xpos = pt.x;
- ypos = pt.y;
+ char buf[100];
+ if (event.ButtonDown())
+ sprintf(buf, "Joystick (%d, %d) Fire!", pt.x, pt.y);
+ else
+ sprintf(buf, "Joystick (%d, %d)", pt.x, pt.y);
- char buf[100];
- if (event.ButtonDown())
- sprintf(buf, "Joystick (%d, %d) Fire!", pt.x, pt.y);
- else
- sprintf(buf, "Joystick (%d, %d)", pt.x, pt.y);
- frame->SetStatusText(buf);
+ frame->SetStatusText(buf);
#if wxUSE_WAVE
- if (event.ButtonDown() && wxGetApp().m_fire.IsOk())
- {
- wxGetApp().m_fire.Play();
- }
+ if (event.ButtonDown() && wxGetApp().m_fire.IsOk())
+ {
+ wxGetApp().m_fire.Play();
+ }
#endif // wxUSE_WAVE
}
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
- EVT_MENU(JOYTEST_QUIT, MyFrame::OnQuit)
+ EVT_MENU(JOYTEST_QUIT, MyFrame::OnQuit)
END_EVENT_TABLE()
-MyFrame::MyFrame(wxFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size,
-const long style):
- wxFrame(parent, -1, title, pos, size, style)
+MyFrame::MyFrame(wxFrame *parent, const wxString& title, const wxPoint& pos,
+ const wxSize& size, const long style)
+ : wxFrame(parent, -1, title, pos, size, style)
{
- canvas = new MyCanvas(this);
+ canvas = new MyCanvas(this);
}
-MyFrame::~MyFrame(void)
+MyFrame::~MyFrame()
{
+ // Empty
}
void MyFrame::OnQuit(wxCommandEvent& event)
{
- Close(TRUE);
+ Close(TRUE);
}
void MyFrame::OnActivate(wxActivateEvent& event)
{
- if (event.GetActive() && canvas)
- canvas->SetFocus();
+ if (event.GetActive() && canvas)
+ canvas->SetFocus();
}
// Define a new application
class MyApp: public wxApp
{
- public:
- bool OnInit(void);
+public:
+ bool OnInit();
// Joystick max values
int m_maxX;
class MyCanvas: public wxScrolledWindow
{
- public:
+public:
MyCanvas(wxWindow *parent, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
- ~MyCanvas(void);
+ ~MyCanvas();
void OnJoystickEvent(wxJoystickEvent& event);
DECLARE_EVENT_TABLE()
class MyFrame: public wxFrame
{
- public:
+public:
MyCanvas *canvas;
- MyFrame(wxFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, const long style);
- ~MyFrame(void);
+ MyFrame(wxFrame *parent, const wxString& title,
+ const wxPoint& pos, const wxSize& size, const long style);
+ ~MyFrame();
void OnActivate(wxActivateEvent& event);
void OnQuit(wxCommandEvent& event);
};
#define JOYTEST_QUIT 1
-#define JOYTEST_ABOUT 2
/////////////////////////////////////////////////////////////////////////////
// Name: propsize.cpp
-// Purpose: Minimal wxWindows sample
+// Purpose: wxWindows propsize sample
// Author: Julian Smart
// Modified by:
// Created: 04/01/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
-// Licence: wxWindows licence
+// License: wxWindows license
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
{
// menu items
Minimal_Quit = 1,
- Minimal_About
};
// ----------------------------------------------------------------------------
// simple menu events like this the static method is much simpler.
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(Minimal_Quit, MyFrame::OnQuit)
- EVT_MENU(Minimal_About, MyFrame::OnAbout)
+ EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)
END_EVENT_TABLE()
// Create a new application object: this macro will allow wxWindows to create
// create a menu bar
wxMenu *menuFile = new wxMenu("", wxMENU_TEAROFF);
- menuFile->Append(Minimal_About, "&About...\tCtrl-A", "Show about dialog");
+ menuFile->Append(wxID_ABOUT, "&About...\tCtrl-A", "Show about dialog");
menuFile->AppendSeparator();
menuFile->Append(Minimal_Quit, "E&xit\tAlt-X", "Quit this program");
#endif // wxUSE_STATUSBAR
#define AddLine(orient) \
- Add( new wxStaticLine( this, -1, wxDefaultPosition, wxSize(2,2), orient), \
- 0, wxEXPAND)
+ Add( new wxStaticLine( this, -1, wxDefaultPosition, wxSize(2,2), orient), \
+ 0, wxEXPAND)
+
#define AddButton(label,align) Add( \
- new wxButton( this, -1, label, wxDefaultPosition, wxSize(100,50)), \
- 1, wxSHAPED | align)
-
- wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
- // top row -- top-aligned
- wxBoxSizer *hsizer1 = new wxBoxSizer( wxHORIZONTAL );
- hsizer1->AddButton( "one", wxALIGN_LEFT | wxALIGN_TOP);
- hsizer1->AddLine(wxVERTICAL);
- hsizer1->AddButton( "two", wxALIGN_CENTER_HORIZONTAL | wxALIGN_TOP);
- hsizer1->AddLine(wxVERTICAL);
- hsizer1->AddButton( "three", wxALIGN_RIGHT | wxALIGN_TOP);
-
- topsizer->Add(hsizer1, 1, wxEXPAND);
- topsizer->AddLine(wxHORIZONTAL);
-
- wxBoxSizer *hsizer2 = new wxBoxSizer( wxHORIZONTAL );
- hsizer2->AddButton( "four", wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
- hsizer2->AddLine(wxVERTICAL);
- // sizer that preserves it's shape
- wxBoxSizer *vsizer = new wxBoxSizer( wxVERTICAL );
- vsizer->Add(
- new wxButton( this, -1, "up", wxDefaultPosition, wxSize(100,25)), \
- 1, wxEXPAND);
- vsizer->Add(
- new wxButton( this, -1, "down", wxDefaultPosition, wxSize(100,25)), \
- 1, wxEXPAND);
- hsizer2->Add(vsizer, 1, wxSHAPED | wxALIGN_CENTER);
- hsizer2->AddLine(wxVERTICAL);
- hsizer2->AddButton( "six", wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
-
- topsizer->Add(hsizer2, 1, wxEXPAND);
- topsizer->AddLine(wxHORIZONTAL);
-
- wxBoxSizer *hsizer3 = new wxBoxSizer( wxHORIZONTAL );
- hsizer3->AddButton( "seven", wxALIGN_LEFT | wxALIGN_BOTTOM);
- hsizer3->AddLine(wxVERTICAL);
- hsizer3->AddButton( "eight", wxALIGN_CENTER_HORIZONTAL | wxALIGN_BOTTOM);
- hsizer3->AddLine(wxVERTICAL);
- // wxEXPAND should have no effect
- hsizer3->AddButton( "nine", wxEXPAND | wxALIGN_RIGHT | wxALIGN_BOTTOM);
-
- topsizer->Add(hsizer3, 1, wxEXPAND);
-
- // set frame to minimum size
- topsizer->Fit( this );
-
- // don't allow frame to get smaller than what the sizers tell ye
- // topsizer->SetSizeHints( this );
-
- SetSizer( topsizer );
- SetAutoLayout( TRUE );
+ new wxButton( this, -1, label, wxDefaultPosition, wxSize(100,50)), \
+ 1, wxSHAPED | align)
+
+ wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
+ // top row -- top-aligned
+ wxBoxSizer *hsizer1 = new wxBoxSizer( wxHORIZONTAL );
+ hsizer1->AddButton( "one", wxALIGN_LEFT | wxALIGN_TOP);
+ hsizer1->AddLine(wxVERTICAL);
+ hsizer1->AddButton( "two", wxALIGN_CENTER_HORIZONTAL | wxALIGN_TOP);
+ hsizer1->AddLine(wxVERTICAL);
+ hsizer1->AddButton( "three", wxALIGN_RIGHT | wxALIGN_TOP);
+
+ topsizer->Add(hsizer1, 1, wxEXPAND);
+ topsizer->AddLine(wxHORIZONTAL);
+
+ wxBoxSizer *hsizer2 = new wxBoxSizer( wxHORIZONTAL );
+ hsizer2->AddButton( "four", wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL);
+ hsizer2->AddLine(wxVERTICAL);
+ // sizer that preserves it's shape
+ wxBoxSizer *vsizer = new wxBoxSizer( wxVERTICAL );
+ vsizer->Add(
+ new wxButton( this, -1, "up", wxDefaultPosition, wxSize(100,25) ),
+ 1, wxEXPAND);
+
+ vsizer->Add(
+ new wxButton( this, -1, "down", wxDefaultPosition, wxSize(100,25) ),
+ 1, wxEXPAND);
+
+ hsizer2->Add(vsizer, 1, wxSHAPED | wxALIGN_CENTER);
+ hsizer2->AddLine(wxVERTICAL);
+ hsizer2->AddButton( "six", wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
+
+ topsizer->Add(hsizer2, 1, wxEXPAND);
+ topsizer->AddLine(wxHORIZONTAL);
+
+ wxBoxSizer *hsizer3 = new wxBoxSizer( wxHORIZONTAL );
+ hsizer3->AddButton( "seven", wxALIGN_LEFT | wxALIGN_BOTTOM);
+ hsizer3->AddLine(wxVERTICAL);
+ hsizer3->AddButton( "eight", wxALIGN_CENTER_HORIZONTAL | wxALIGN_BOTTOM);
+ hsizer3->AddLine(wxVERTICAL);
+ // wxEXPAND should have no effect
+ hsizer3->AddButton( "nine", wxEXPAND | wxALIGN_RIGHT | wxALIGN_BOTTOM);
+
+ topsizer->Add(hsizer3, 1, wxEXPAND);
+
+ // set frame to minimum size
+ topsizer->Fit( this );
+
+ // don't allow frame to get smaller than what the sizers tell ye
+ // topsizer->SetSizeHints( this );
+
+ SetSizer( topsizer );
}
{
wxString text;
- text.Printf(wxT("Thread 0x%x started (priority = %d).\n"),
+ text.Printf(wxT("Thread 0x%x started (priority = %u).\n"),
GetId(), GetPriority());
WriteText(text);
// wxLogMessage(text); -- test wxLog thread safeness
void ComboboxWidgetsPage::OnComboBox(wxCommandEvent& event)
{
- int sel = event.GetInt();
+ long sel = event.GetInt();
m_textDelete->SetValue(wxString::Format(_T("%ld"), sel));
- wxLogMessage(_T("Combobox item %d selected"), sel);
+ wxLogMessage(_T("Combobox item %ld selected"), sel);
}
void ComboboxWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& event)
_T("Set &range"),
GaugePage_RangeText,
&m_textRange);
- m_textRange->SetValue(wxString::Format(_T("%lu"), m_range));
+ m_textRange->SetValue( wxString::Format(_T("%lu"), m_range) );
sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
btn = new wxButton(this, GaugePage_Progress, _T("Simulate &progress"));
wxLogMessage(_T("Progress finished."));
}
-#endif
\ No newline at end of file
+#endif
void ListboxWidgetsPage::OnListbox(wxCommandEvent& event)
{
- int sel = event.GetInt();
+ long sel = event.GetInt();
m_textDelete->SetValue(wxString::Format(_T("%ld"), sel));
- wxLogMessage(_T("Listbox item %d selected"), sel);
+ wxLogMessage(_T("Listbox item %ld selected"), sel);
}
void ListboxWidgetsPage::OnListboxDClick(wxCommandEvent& event)
{
- wxLogMessage(_T("Listbox item %d double clicked"), event.GetInt());
+ wxLogMessage( _T("Listbox item %ld double clicked"), event.GetInt() );
}
void ListboxWidgetsPage::OnCheckListbox(wxCommandEvent& event)
{
- wxLogMessage(_T("Listbox item %d toggled"), event.GetInt());
+ wxLogMessage( _T("Listbox item %ld toggled"), event.GetInt() );
}
void ListboxWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& event)
CreateLbox();
}
-#endif
\ No newline at end of file
+#endif
event.Enable(enable);
}
-#endif
\ No newline at end of file
+#endif
m_textMax = new wxTextCtrl(this, SliderPage_MaxText, _T(""));
sizerRow->Add(m_textMax, 1, wxLEFT | wxALIGN_CENTRE_VERTICAL, 5);
- m_textMin->SetValue(wxString::Format(_T("%lu"), m_min));
- m_textMax->SetValue(wxString::Format(_T("%lu"), m_max));
+ m_textMin->SetValue( wxString::Format(_T("%d"), m_min) );
+ m_textMax->SetValue( wxString::Format(_T("%d"), m_max) );
sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
void SliderWidgetsPage::OnUpdateUICurValueText(wxUpdateUIEvent& event)
{
- event.SetText( wxString::Format(_T("%d"), m_slider->GetValue()));
+ event.SetText( wxString::Format(_T("%d"), m_slider->GetValue()) );
}
void SliderWidgetsPage::OnUpdateUIOtherSide(wxUpdateUIEvent& event)
void SliderWidgetsPage::OnSlider(wxScrollEvent& event)
{
- int value = event.GetInt();
+ long value = event.GetInt();
wxASSERT_MSG( value == m_slider->GetValue(),
- wxT("slider value should be the same") );
+ wxT("slider value should be the same") );
wxEventType eventType = event.GetEventType();
m_textMax = new wxTextCtrl(this, SpinBtnPage_MaxText, _T(""));
sizerRow->Add(m_textMax, 1, wxLEFT | wxALIGN_CENTRE_VERTICAL, 5);
- m_textMin->SetValue(wxString::Format(_T("%lu"), m_min));
- m_textMax->SetValue(wxString::Format(_T("%lu"), m_max));
+ m_textMin->SetValue( wxString::Format(_T("%d"), m_min) );
+ m_textMax->SetValue( wxString::Format(_T("%d"), m_max) );
sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
void SpinBtnWidgetsPage::OnSpinBtnUp(wxCommandEvent& event)
{
- wxLogMessage(_T("Spin button value incremented, will be %d (was %d)"),
- event.GetInt(), m_spinbtn->GetValue());
+ wxLogMessage( _T("Spin button value incremented, will be %ld (was %d)"),
+ event.GetInt(), m_spinbtn->GetValue() );
}
void SpinBtnWidgetsPage::OnSpinBtnDown(wxCommandEvent& event)
{
- wxLogMessage(_T("Spin button value decremented, will be %d (was %d)"),
- event.GetInt(), m_spinbtn->GetValue());
+ wxLogMessage( _T("Spin button value decremented, will be %ld (was %d)"),
+ event.GetInt(), m_spinbtn->GetValue() );
}
void SpinBtnWidgetsPage::OnSpinCtrl(wxCommandEvent& event)
if ( m_textLineLast )
{
m_textLineLast->SetValue(
- wxString::Format(_T("%ld"), m_text->GetNumberOfLines()));
+ wxString::Format(_T("%d"), m_text->GetNumberOfLines()) );
}
if ( m_textSelFrom && m_textSelTo )
else
{
long elapsed = sw.Time();
- wxLogMessage(_T("Loaded file '%s' in %u.%us"),
+ wxLogMessage(_T("Loaded file '%s' in %lu.%us"),
filename.c_str(), elapsed / 1000, elapsed % 1000);
}
}