From: Julian Smart Date: Fri, 10 Jul 1998 10:36:57 +0000 (+0000) Subject: Changed name of controls sample. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/447daba1ce4295f84185d6ecdaec46ae982a2299 Changed name of controls sample. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@215 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/samples/controls/Makefile.in b/samples/controls/Makefile.in index 13d042e5ef..5654689bb0 100644 --- a/samples/controls/Makefile.in +++ b/samples/controls/Makefile.in @@ -10,11 +10,11 @@ RULE=bin BIN_TARGET=test # define library sources BIN_SRC=\ -minimal.cpp +controls.cpp #define library objects BIN_OBJ=\ -minimal.o +controls.o # additional things needed to link BIN_LINK= diff --git a/samples/controls/controls.cpp b/samples/controls/controls.cpp new file mode 100644 index 0000000000..ac37f68652 --- /dev/null +++ b/samples/controls/controls.cpp @@ -0,0 +1,232 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: minimal.cpp +// Purpose: Controls wxWindows sample +// Author: Robert Roebling +// Modified by: +// RCS-ID: $Id$ +// Copyright: (c) Robert Roebling, Julian Smart and Markus Holzem +// Licence: wxWindows license +///////////////////////////////////////////////////////////////////////////// + +#ifdef __GNUG__ +#pragma implementation "minimal.cpp" +#pragma interface "minimal.cpp" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ +#pragma hdrstop +#endif + +#ifndef WX_PRECOMP +#include "wx/wx.h" +#endif + +#include "wx/notebook.h" + +//---------------------------------------------------------------------- +// class definitions +//---------------------------------------------------------------------- + +class MyApp: public wxApp +{ + public: + bool OnInit(void); +}; + +class MyPanel: public wxPanel +{ + public: + + MyPanel(wxFrame *frame, int x, int y, int w, int h); + + void OnSize( wxSizeEvent& event ); + void OnListBox( wxCommandEvent &event ); + void OnListBoxButtons( wxCommandEvent &event ); + + wxListBox *m_listbox; + wxChoice *m_choice; + wxComboBox *m_combo; + + wxTextCtrl *m_text; + wxNotebook *m_notebook; + + DECLARE_EVENT_TABLE() +}; + +class MyFrame: public wxFrame +{ + public: + + MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h); + + public: + + void OnQuit(wxCommandEvent& event); + void OnAbout(wxCommandEvent& event); + bool OnClose(void) { return TRUE; } + + DECLARE_EVENT_TABLE() +}; + +//---------------------------------------------------------------------- +// main() +//---------------------------------------------------------------------- + +IMPLEMENT_APP (MyApp) + +//---------------------------------------------------------------------- +// MyApp +//---------------------------------------------------------------------- + +const MINIMAL_QUIT = 100; +const MINIMAL_TEXT = 101; +const MINIMAL_ABOUT = 102; + +bool MyApp::OnInit(void) +{ + // Create the main frame window + MyFrame *frame = new MyFrame(NULL, "Controls wxWindows App", 50, 50, 500, 420 ); + + // Give it an icon +#ifdef __WINDOWS__ + frame->SetIcon(wxIcon("mondrian")); +#endif +#ifdef __X__ + frame->SetIcon(wxIcon("aiai.xbm")); +#endif + + wxMenu *file_menu = new wxMenu; + + file_menu->Append(MINIMAL_ABOUT, "&About"); + file_menu->Append(MINIMAL_QUIT, "E&xit"); + wxMenuBar *menu_bar = new wxMenuBar; + menu_bar->Append(file_menu, "&File"); + frame->SetMenuBar(menu_bar); + + frame->Show(TRUE); + + SetTopWindow(frame); + + return TRUE; +} + +//---------------------------------------------------------------------- +// MyPanel +//---------------------------------------------------------------------- + +const ID_NOTEBOOK = 1000; + +const ID_LISTBOX = 130; +const ID_LISTBOX_SEL_NUM = 131; +const ID_LISTBOX_SEL_STR = 132; +const ID_LISTBOX_CLEAR = 133; +const ID_LISTBOX_APPEND = 134; + +const ID_CHOICE = 120; +const ID_CHOICE_SEL_NUM = 121; +const ID_CHOICE_SEL_STR = 122; +const ID_CHOICE_CLEAR = 123; +const ID_CHOICE_APPEND = 124; + +const ID_COMBO = 140; + +BEGIN_EVENT_TABLE(MyPanel, wxPanel) + EVT_SIZE ( MyPanel::OnSize) + EVT_LISTBOX (ID_LISTBOX, MyPanel::OnListBox) + EVT_BUTTON (ID_LISTBOX_SEL_NUM, MyPanel::OnListBoxButtons) + EVT_BUTTON (ID_LISTBOX_SEL_STR, MyPanel::OnListBoxButtons) + EVT_BUTTON (ID_LISTBOX_CLEAR, MyPanel::OnListBoxButtons) + EVT_BUTTON (ID_LISTBOX_APPEND, MyPanel::OnListBoxButtons) +END_EVENT_TABLE() + +MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) : + wxPanel( frame, -1, wxPoint(x, y), wxSize(w, h) ) +{ + m_text = new wxTextCtrl( this, -1, "This is the log window.\n", wxPoint(0,50), wxSize(100,50), wxTE_MULTILINE ); + + m_notebook = new wxNotebook( this, ID_NOTEBOOK, wxPoint(0,0), wxSize(200,150) ); + + wxString choices[] = + { + "This", + "is", + "a", + "wonderfull example.", + "Or", + "what", + "do", + "you", + "think?" + }; + + wxPanel *panel = new wxPanel(m_notebook); + m_listbox = new wxListBox( panel, ID_LISTBOX, wxPoint(10,10), wxSize(120,70), 9, choices ); + (void)new wxButton( panel, ID_LISTBOX_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(100,30) ); + (void)new wxButton( panel, ID_LISTBOX_SEL_STR, "Select 'This'", wxPoint(300,30), wxSize(100,30) ); + (void)new wxButton( panel, ID_LISTBOX_CLEAR, "Clear", wxPoint(180,80), wxSize(100,30) ); + (void)new wxButton( panel, ID_LISTBOX_APPEND, "Append 'Hi!'", wxPoint(300,80), wxSize(100,30) ); + m_notebook->AddPage(panel, "wxList"); + + panel = new wxPanel(m_notebook); + m_choice = new wxChoice( panel, ID_CHOICE, wxPoint(10,10), wxSize(120,-1), 9, choices ); + m_notebook->AddPage(panel, "wxChoice"); + + panel = new wxPanel(m_notebook); + m_combo = new wxComboBox( panel, ID_COMBO, "This", wxPoint(10,10), wxSize(120,-1), 9, choices ); + m_notebook->AddPage(panel, "wxComboBox"); +} + +void MyPanel::OnSize( wxSizeEvent& WXUNUSED(event) ) +{ + int x = 0; + int y = 0; + GetClientSize( &x, &y ); + + if (m_notebook) m_notebook->SetSize( 2, 2, x-4, y/2-4 ); + if (m_text) m_text->SetSize( 2, y/2+2, x-4, y/2-4 ); +} + +void MyPanel::OnListBox( wxCommandEvent &event ) +{ + m_text->WriteText( "ListBox Event:\n"); + m_text->WriteText( "ListBox selection string is: " ); + m_text->WriteText( event.GetString() ); + m_text->WriteText( "\n" ); +} + +void MyPanel::OnListBoxButtons( wxCommandEvent &WXUNUSED(event) ) +{ + if (m_notebook->GetPageCount() > 1) + m_notebook->DeletePage( 1 ); +} + +//---------------------------------------------------------------------- +// MyFrame +//---------------------------------------------------------------------- + +BEGIN_EVENT_TABLE(MyFrame, wxFrame) + EVT_MENU(MINIMAL_QUIT, MyFrame::OnQuit) + EVT_MENU(MINIMAL_ABOUT, MyFrame::OnAbout) +END_EVENT_TABLE() + +MyFrame::MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h): + wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h)) +{ + (void*) new MyPanel( this, 10, 10, 300, 100 ); +} + +void MyFrame::OnQuit (wxCommandEvent& WXUNUSED(event) ) +{ + Close(TRUE); +} + +void MyFrame::OnAbout( wxCommandEvent& WXUNUSED(event) ) +{ + wxMessageDialog dialog(this, "This is a control sample", "About Controls", wxOK ); + dialog.ShowModal(); +} + + diff --git a/samples/controls/makefile.b32 b/samples/controls/makefile.b32 index 06d7deff50..783ce3b083 100644 --- a/samples/controls/makefile.b32 +++ b/samples/controls/makefile.b32 @@ -7,7 +7,7 @@ # # "%W% %G%" # -# Makefile : Builds minimal example (DOS). +# Makefile : Builds controls example (DOS). # WXWIN and BCCDIR are set by parent make @@ -19,7 +19,7 @@ WXINC = $(WXDIR)\include\msw WXLIB = $(WXLIBDIR)\wx32.lib LIBS=$(WXLIB) cw32 import32 ole2w32 -TARGET=minimal +TARGET=controls !if "$(FINAL)" == "0" LINKFLAGS=/v /Tpe /L$(WXLIBDIR);$(BCCDIR)\lib @@ -32,7 +32,7 @@ DEBUG_FLAGS = !endif CPPFLAGS=$(DEBUG_FLAGS) $(OPT) @$(CFG) -OBJECTS = minimal.obj +OBJECTS = controls.obj $(TARGET).exe: $(OBJECTS) $(TARGET).def $(TARGET).res tlink32 $(LINKFLAGS) @&&! @@ -50,7 +50,7 @@ $(TARGET).def .c.obj: bcc32 $(CPPFLAGS) -P- -c {$< } -minimal.obj: minimal.$(SRCSUFF) +controls.obj: controls.$(SRCSUFF) $(TARGET).res : $(TARGET).rc $(WXDIR)\include\wx\msw\wx.rc brc32 -r /i$(BCCDIR)\include /i$(WXDIR)\include $(TARGET) diff --git a/samples/controls/makefile.bcc b/samples/controls/makefile.bcc index b68a9b6d21..19344434c5 100644 --- a/samples/controls/makefile.bcc +++ b/samples/controls/makefile.bcc @@ -7,7 +7,7 @@ # # "%W% %G%" # -# Makefile : Builds minimal example (DOS). +# Makefile : Builds controls example (DOS). !if "$(BCCDIR)" == "" !error You must define the BCCDIR variable in autoexec.bat, e.g. BCCDIR=d:\bc4 @@ -20,7 +20,7 @@ WXDIR = $(WXWIN) !include $(WXDIR)\src\makebcc.env -THISDIR = $(WXDIR)\samples\minimal +THISDIR = $(WXDIR)\samples\controls WXLIB = $(WXDIR)\lib\wx.lib LIBS=$(WXLIB) mathwl cwl import INC=-I$(WXDIR)\include\base -I$(WXDIR)\include\msw @@ -41,29 +41,29 @@ DEBUG_FLAGS= !endif CPPFLAGS=$(DEBUG_FLAGS) $(OPT) @$(CFG) -OBJECTS = minimal.obj +OBJECTS = controls.obj -minimal: minimal.exe +controls: controls.exe -all: minimal.exe +all: controls.exe -minimal.exe: $(WXLIB) minimal.obj minimal.def minimal.res +controls.exe: $(WXLIB) controls.obj controls.def controls.res tlink $(LINKFLAGS) @&&! -c0wl.obj minimal.obj -minimal +c0wl.obj controls.obj +controls nul $(LIBS) -minimal.def +controls.def ! - rc -31 -K minimal.res + rc -31 -K controls.res .$(SRCSUFF).obj: bcc $(CPPFLAGS) -c {$< } -minimal.obj: minimal.$(SRCSUFF) +controls.obj: controls.$(SRCSUFF) -minimal.res : minimal.rc $(WXDIR)\include\msw\wx.rc - rc -r /i$(BCCDIR)\include /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa minimal +controls.res : controls.rc $(WXDIR)\include\msw\wx.rc + rc -r /i$(BCCDIR)\include /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa controls clean: -erase *.obj diff --git a/samples/controls/makefile.dos b/samples/controls/makefile.dos index aa7e6ddf53..81466d023d 100644 --- a/samples/controls/makefile.dos +++ b/samples/controls/makefile.dos @@ -7,7 +7,7 @@ # # "%W% %G%" # -# Makefile : Builds minimal example (DOS). +# Makefile : Builds controls example (DOS). # Use FINAL=1 argument to nmake to build final version with no debugging # info @@ -15,17 +15,17 @@ WXDIR = $(WXWIN) !include $(WXDIR)\src\makemsc.env -THISDIR = $(WXDIR)\samples\minimal +THISDIR = $(WXDIR)\samples\controls !ifndef FINAL FINAL=0 !endif HEADERS = -SOURCES = minimal.$(SRCSUFF) -OBJECTS = minimal.obj +SOURCES = controls.$(SRCSUFF) +OBJECTS = controls.obj -all: minimal.exe +all: controls.exe wx: cd $(WXDIR)\src\msw @@ -37,24 +37,24 @@ wxclean: nmake -f makefile.dos clean cd $(THISDIR) -minimal.exe: $(WXDIR)\src\msw\dummy.obj $(WXLIB) minimal.obj minimal.def minimal.res +controls.exe: $(WXDIR)\src\msw\dummy.obj $(WXLIB) controls.obj controls.def controls.res link $(LINKFLAGS) @<< -minimal.obj $(WXDIR)\src\msw\dummy.obj, -minimal, +controls.obj $(WXDIR)\src\msw\dummy.obj, +controls, NUL, $(LIBS), -minimal.def +controls.def ; << - rc -K minimal.res + rc -K controls.res -minimal.obj: minimal.$(SRCSUFF) +controls.obj: controls.$(SRCSUFF) cl @<< $(CPPFLAGS) /c /Tp $*.$(SRCSUFF) << -minimal.res : minimal.rc $(WXDIR)\include\wx\msw\wx.rc - rc -r /i$(WXDIR)\include minimal +controls.res : controls.rc $(WXDIR)\include\wx\msw\wx.rc + rc -r /i$(WXDIR)\include controls clean: -erase *.obj diff --git a/samples/controls/makefile.g95 b/samples/controls/makefile.g95 index 6ad1b1b2ad..3d2f52233f 100644 --- a/samples/controls/makefile.g95 +++ b/samples/controls/makefile.g95 @@ -7,7 +7,7 @@ # # "%W% %G%" # -# Makefile for minimal example (UNIX). +# Makefile for controls example (UNIX). WXDIR = ../.. @@ -15,23 +15,23 @@ WXDIR = ../.. # this central makefile. include $(WXDIR)/src/makeg95.env -OBJECTS = $(OBJDIR)/minimal.$(OBJSUFF) $(OBJDIR)/minimal_resources.$(OBJSUFF) +OBJECTS = $(OBJDIR)/controls.$(OBJSUFF) $(OBJDIR)/controls_resources.$(OBJSUFF) -all: $(OBJDIR) minimal$(GUISUFFIX)$(EXESUFF) +all: $(OBJDIR) controls$(GUISUFFIX)$(EXESUFF) wx: $(OBJDIR): mkdir $(OBJDIR) -minimal$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(WXLIB) - $(CC) $(LDFLAGS) -o minimal$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS) +controls$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(WXLIB) + $(CC) $(LDFLAGS) -o controls$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS) -$(OBJDIR)/minimal.$(OBJSUFF): minimal.$(SRCSUFF) - $(CC) -c $(CPPFLAGS) -o $@ minimal.$(SRCSUFF) +$(OBJDIR)/controls.$(OBJSUFF): controls.$(SRCSUFF) + $(CC) -c $(CPPFLAGS) -o $@ controls.$(SRCSUFF) -$(OBJDIR)/minimal_resources.o: minimal.rc - $(RESCOMP) -i minimal.rc -o $(OBJDIR)/minimal_resources.o $(RESFLAGS) +$(OBJDIR)/controls_resources.o: controls.rc + $(RESCOMP) -i controls.rc -o $(OBJDIR)/controls_resources.o $(RESFLAGS) clean: - rm -f $(OBJECTS) minimal$(GUISUFFIX).exe core *.rsc *.res + rm -f $(OBJECTS) controls$(GUISUFFIX).exe core *.rsc *.res diff --git a/samples/controls/makefile.nt b/samples/controls/makefile.nt index 276311e09c..3c3fb68cff 100644 --- a/samples/controls/makefile.nt +++ b/samples/controls/makefile.nt @@ -7,7 +7,7 @@ # # "%W% %G%" # -# Makefile : Builds minimal example (MS VC++). +# Makefile : Builds controls example (MS VC++). # Use FINAL=1 argument to nmake to build final version with no debugging # info @@ -18,9 +18,9 @@ WXUSINGDLL=0 !include $(WXDIR)\src\ntwxwin.mak -THISDIR = $(WXDIR)\samples\minimal -PROGRAM=minimal - +THISDIR = $(WXDIR)\samples\controls +PROGRAM=controls + OBJECTS = $(PROGRAM).obj $(PROGRAM): $(PROGRAM).exe diff --git a/samples/controls/makefile.sc b/samples/controls/makefile.sc index 8709d2ca0f..1e0bca8574 100644 --- a/samples/controls/makefile.sc +++ b/samples/controls/makefile.sc @@ -1,4 +1,5 @@ -# Symantec C++ makefile for minimal example +; Last change: JS 10 Jul 98 11:33 am +# Symantec C++ makefile for controls example # NOTE that peripheral libraries are now dealt in main wxWindows makefile. WXDIR = $(WXWIN) @@ -24,7 +25,7 @@ LIBS=$(WXLIB) libw.lib commdlg.lib shell.lib .rc.res: *$(RC) -r -I$(INCLUDE) $< -minimal.exe: minimal.obj minimal.def minimal.res +controls.exe: controls.obj controls.def controls.res *$(CC) $(LDFLAGS) -o$@ $** $(LIBS) clean: diff --git a/samples/controls/makefile.unx b/samples/controls/makefile.unx index 9685d06789..7f845d6342 100644 --- a/samples/controls/makefile.unx +++ b/samples/controls/makefile.unx @@ -7,7 +7,7 @@ # # "%W% %G%" # -# Makefile for minimal example (UNIX). +# Makefile for controls example (UNIX). WXDIR = ../.. @@ -15,11 +15,11 @@ WXDIR = ../.. # this central makefile. include $(WXDIR)/src/make.env -OBJECTS = $(OBJDIR)/minimal.$(OBJSUFF) +OBJECTS = $(OBJDIR)/controls.$(OBJSUFF) .SUFFIXES: -all: $(OBJDIR) minimal$(GUISUFFIX) +all: $(OBJDIR) controls$(GUISUFFIX) wx: @@ -39,11 +39,11 @@ hp: $(OBJDIR): mkdir $(OBJDIR) -minimal$(GUISUFFIX): $(OBJDIR)/minimal.$(OBJSUFF) $(WXLIB) - $(CC) $(LDFLAGS) -o minimal$(GUISUFFIX) $(OBJDIR)/minimal.$(OBJSUFF) $(XVIEW_LINK) $(LDLIBS) +controls$(GUISUFFIX): $(OBJDIR)/controls.$(OBJSUFF) $(WXLIB) + $(CC) $(LDFLAGS) -o controls$(GUISUFFIX) $(OBJDIR)/controls.$(OBJSUFF) $(XVIEW_LINK) $(LDLIBS) -$(OBJDIR)/minimal.$(OBJSUFF): minimal.$(SRCSUFF) - $(CC) -c $(CPPFLAGS) -o $@ minimal.$(SRCSUFF) +$(OBJDIR)/controls.$(OBJSUFF): controls.$(SRCSUFF) + $(CC) -c $(CPPFLAGS) -o $@ controls.$(SRCSUFF) clean_motif: $(MAKE) -f makefile.unx GUISUFFIX=_motif cleanany @@ -55,4 +55,4 @@ clean_hp: $(MAKE) -f makefile.unx GUISUFFIX=_hp cleanany cleanany: - rm -f $(OBJECTS) minimal$(GUISUFFIX) core + rm -f $(OBJECTS) controls$(GUISUFFIX) core diff --git a/samples/controls/makefile.vms b/samples/controls/makefile.vms index 9b76b144f3..f738f5847a 100644 --- a/samples/controls/makefile.vms +++ b/samples/controls/makefile.vms @@ -19,11 +19,11 @@ APPINCS = #************************************************************************ # Name of main module -MAIN = minimal +MAIN = controls # Object modules of the application. -OBJS = minimal.obj -OBJLIST =minimal.obj +OBJS = controls.obj +OBJLIST =controls.obj .include [--.src]makevms.env diff --git a/samples/controls/makefile.wat b/samples/controls/makefile.wat index 21219d7a0e..a2ec9cc3a5 100644 --- a/samples/controls/makefile.wat +++ b/samples/controls/makefile.wat @@ -10,7 +10,7 @@ WXDIR = ..\.. !include $(WXDIR)\src\makewat.env WXLIB = $(WXDIR)\lib -NAME = minimal +NAME = controls LNK = $(name).lnk OBJS = $(name).obj diff --git a/samples/controls/minimal.cpp b/samples/controls/minimal.cpp deleted file mode 100644 index 29e220355b..0000000000 --- a/samples/controls/minimal.cpp +++ /dev/null @@ -1,231 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: minimal.cpp -// Purpose: Controls wxWindows sample -// Author: Robert Roebling -// Modified by: -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "minimal.cpp" -#pragma interface "minimal.cpp" -#endif - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "wx/notebook.h" - -//---------------------------------------------------------------------- -// class definitions -//---------------------------------------------------------------------- - -class MyApp: public wxApp -{ - public: - bool OnInit(void); -}; - -class MyPanel: public wxPanel -{ - public: - - MyPanel(wxFrame *frame, int x, int y, int w, int h); - - void OnSize( wxSizeEvent& event ); - void OnListBox( wxCommandEvent &event ); - void OnListBoxButtons( wxCommandEvent &event ); - - wxListBox *m_listbox; - wxChoice *m_choice; - wxComboBox *m_combo; - - wxTextCtrl *m_text; - wxNotebook *m_notebook; - - DECLARE_EVENT_TABLE() -}; - -class MyFrame: public wxFrame -{ - public: - - MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h); - - public: - - void OnQuit(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); - bool OnClose(void) { return TRUE; } - - DECLARE_EVENT_TABLE() -}; - -//---------------------------------------------------------------------- -// main() -//---------------------------------------------------------------------- - -IMPLEMENT_APP (MyApp) - -//---------------------------------------------------------------------- -// MyApp -//---------------------------------------------------------------------- - -const MINIMAL_QUIT = 100; -const MINIMAL_TEXT = 101; -const MINIMAL_ABOUT = 102; - -bool MyApp::OnInit(void) -{ - // Create the main frame window - MyFrame *frame = new MyFrame(NULL, "Controls wxWindows App", 50, 50, 500, 420 ); - - // Give it an icon -#ifdef __WINDOWS__ - frame->SetIcon(wxIcon("mondrian")); -#endif -#ifdef __X__ - frame->SetIcon(wxIcon("aiai.xbm")); -#endif - - wxMenu *file_menu = new wxMenu; - - file_menu->Append(MINIMAL_ABOUT, "&About"); - file_menu->Append(MINIMAL_QUIT, "E&xit"); - wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, "&File"); - frame->SetMenuBar(menu_bar); - - frame->Show(TRUE); - - SetTopWindow(frame); - - return TRUE; -} - -//---------------------------------------------------------------------- -// MyPanel -//---------------------------------------------------------------------- - -const ID_NOTEBOOK = 1000; - -const ID_LISTBOX = 130; -const ID_LISTBOX_SEL_NUM = 131; -const ID_LISTBOX_SEL_STR = 132; -const ID_LISTBOX_CLEAR = 133; -const ID_LISTBOX_APPEND = 134; - -const ID_CHOICE = 120; -const ID_CHOICE_SEL_NUM = 121; -const ID_CHOICE_SEL_STR = 122; -const ID_CHOICE_CLEAR = 123; -const ID_CHOICE_APPEND = 124; - -const ID_COMBO = 140; - -BEGIN_EVENT_TABLE(MyPanel, wxPanel) - EVT_SIZE ( MyPanel::OnSize) - EVT_LISTBOX (ID_LISTBOX, MyPanel::OnListBox) - EVT_BUTTON (ID_LISTBOX_SEL_NUM, MyPanel::OnListBoxButtons) - EVT_BUTTON (ID_LISTBOX_SEL_STR, MyPanel::OnListBoxButtons) - EVT_BUTTON (ID_LISTBOX_CLEAR, MyPanel::OnListBoxButtons) - EVT_BUTTON (ID_LISTBOX_APPEND, MyPanel::OnListBoxButtons) -END_EVENT_TABLE() - -MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) : - wxPanel( frame, -1, wxPoint(x, y), wxSize(w, h) ) -{ - m_text = new wxTextCtrl( this, -1, "This is the log window.\n", wxPoint(0,50), wxSize(100,50), wxTE_MULTILINE ); - - m_notebook = new wxNotebook( this, ID_NOTEBOOK, wxPoint(0,0), wxSize(200,150) ); - - wxString choices[] = - { - "This", - "is", - "a", - "wonderfull example.", - "Or", - "what", - "do", - "you", - "think?" - }; - - wxPanel *panel = new wxPanel(m_notebook); - m_listbox = new wxListBox( panel, ID_LISTBOX, wxPoint(10,10), wxSize(120,70), 9, choices ); - (void)new wxButton( panel, ID_LISTBOX_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(100,30) ); - (void)new wxButton( panel, ID_LISTBOX_SEL_STR, "Select 'This'", wxPoint(300,30), wxSize(100,30) ); - (void)new wxButton( panel, ID_LISTBOX_CLEAR, "Clear", wxPoint(180,80), wxSize(100,30) ); - (void)new wxButton( panel, ID_LISTBOX_APPEND, "Append 'Hi!'", wxPoint(300,80), wxSize(100,30) ); - m_notebook->AddPage(panel, "wxList"); - - panel = new wxPanel(m_notebook); - m_choice = new wxChoice( panel, ID_CHOICE, wxPoint(10,10), wxSize(120,-1), 9, choices ); - m_notebook->AddPage(panel, "wxChoice"); - - panel = new wxPanel(m_notebook); - m_combo = new wxComboBox( panel, ID_COMBO, "This", wxPoint(10,10), wxSize(120,-1), 9, choices ); - m_notebook->AddPage(panel, "wxComboBox"); -} - -void MyPanel::OnSize( wxSizeEvent& WXUNUSED(event) ) -{ - int x = 0; - int y = 0; - GetClientSize( &x, &y ); - - if (m_notebook) m_notebook->SetSize( 2, 2, x-4, y/2-4 ); - if (m_text) m_text->SetSize( 2, y/2+2, x-4, y/2-4 ); -} - -void MyPanel::OnListBox( wxCommandEvent &event ) -{ - m_text->WriteText( "ListBox Event:\n"); - m_text->WriteText( "ListBox selection string is: " ); - m_text->WriteText( event.GetString() ); - m_text->WriteText( "\n" ); -} - -void MyPanel::OnListBoxButtons( wxCommandEvent &WXUNUSED(event) ) -{ - m_notebook->DeletePage( 1 ); -} - -//---------------------------------------------------------------------- -// MyFrame -//---------------------------------------------------------------------- - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(MINIMAL_QUIT, MyFrame::OnQuit) - EVT_MENU(MINIMAL_ABOUT, MyFrame::OnAbout) -END_EVENT_TABLE() - -MyFrame::MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h): - wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h)) -{ - (void*) new MyPanel( this, 10, 10, 300, 100 ); -} - -void MyFrame::OnQuit (wxCommandEvent& WXUNUSED(event) ) -{ - Close(TRUE); -} - -void MyFrame::OnAbout( wxCommandEvent& WXUNUSED(event) ) -{ - wxMessageDialog dialog(this, "This is a control sample", "About Controls", wxOK ); - dialog.ShowModal(); -} - -