From: Ron Lee Date: Tue, 14 Mar 2000 19:24:14 +0000 (+0000) Subject: renamed notebook sample X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/b2f757f9b7bac4b4b10fde8449c62e35b9c9497a?ds=sidebyside renamed notebook sample git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6712 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/samples/notebook/Makefile.in b/samples/notebook/Makefile.in index ca69c85c37..58b5cda979 100644 --- a/samples/notebook/Makefile.in +++ b/samples/notebook/Makefile.in @@ -1,19 +1,11 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for notebook example (UNIX). +# Purpose: makefile for notebook example (UNIX). +# Created: 2000-03-15 top_srcdir = @top_srcdir@/.. top_builddir = ../.. program_dir = samples/notebook -PROGRAM=test +PROGRAM=notebook OBJECTS=$(PROGRAM).o diff --git a/samples/notebook/makefile.b32 b/samples/notebook/makefile.b32 index 95ddc80d76..7c8d2ff01b 100644 --- a/samples/notebook/makefile.b32 +++ b/samples/notebook/makefile.b32 @@ -1,15 +1,9 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ +# Purpose: makefile for notebook example (BC++ 32bit) +# Created: 2000-03-15 WXDIR = $(WXWIN) -TARGET=test +TARGET=notebook OBJECTS = $(TARGET).obj !include $(WXDIR)\src\makeprog.b32 diff --git a/samples/notebook/makefile.bcc b/samples/notebook/makefile.bcc index 669f01905a..3b1980b30e 100644 --- a/samples/notebook/makefile.bcc +++ b/samples/notebook/makefile.bcc @@ -1,10 +1,5 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample +# Purpose: makefile for notebook example (BC++ 16bit) +# Created: 2000-03-15 !if "$(WXWIN)" == "" !error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx @@ -12,7 +7,7 @@ WXDIR = $(WXWIN) -TARGET=test +TARGET=notebook OBJECTS=$(TARGET).obj !include $(WXDIR)\src\makeprog.bcc diff --git a/samples/notebook/makefile.dos b/samples/notebook/makefile.dos index 13e3a4ce8e..a5790ed4a2 100644 --- a/samples/notebook/makefile.dos +++ b/samples/notebook/makefile.dos @@ -1,17 +1,10 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info +# Purpose: makefile for notebook example (VC++ 1.5x) +# Created: 2000-03-15 WXDIR = $(WXWIN) -TARGET=test -OBJECTS = $(TARGET).obj +TARGET=notebook +OBJECTS=$(TARGET).obj !include $(WXDIR)\src\makeprog.msc diff --git a/samples/notebook/makefile.g95 b/samples/notebook/makefile.g95 index b4a920f047..b87471f38d 100644 --- a/samples/notebook/makefile.g95 +++ b/samples/notebook/makefile.g95 @@ -1,16 +1,10 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). +# Purpose: makefile for notebook example (Cygwin/Mingw32) +# Created: #03.01.00 WXDIR = ../.. -TARGET=test +TARGET=notebook OBJECTS = $(TARGET).o -include $(WXDIR)/src/makeprog.g95 +include $(WXDIR)\src\makeprog.g95 diff --git a/samples/notebook/makefile.sc b/samples/notebook/makefile.sc new file mode 100644 index 0000000000..3a2b33b872 --- /dev/null +++ b/samples/notebook/makefile.sc @@ -0,0 +1,37 @@ +# Purpose: makefile for notebook example (Symantec C++) +# Created: 2000-03-15 + +WXDIR = $(WXWIN) +WXLIB = $(WXDIR)\lib\wx.lib +INCDIR = $(WXDIR)\include +INCLUDE=$(INCDIR) +TARGET=notebook + +include $(WXDIR)\src\makesc.env + +notebook.exe: notebook.obj $(DEFFILE) notebook.res + *$(CC) $(LDFLAGS) -o$@ $** $(LIBS) + *$(RC) -k notebook.res + +sc32.def: + echo EXETYPE NT > sc32.def + echo SUBSYSTEM WINDOWS >> sc32.def + +sc16.def: + echo NAME $(TARGET) > sc16.def + echo EXETYPE WINDOWS >> sc16.def + echo STUB 'WINSTUB.EXE' >> sc16.def + echo CODE PRELOAD MOVEABLE DISCARDABLE >> sc16.def + echo DATA PRELOAD MOVEABLE MULTIPLE >> sc16.def + echo HEAPSIZE 1024 >> sc16.def + echo STACKSIZE 8192 >> sc16.def + +clean: + -del *.obj + -del *.exe + -del *.res + -del *.map + -del *.rws + -del sc32.def + -del sc16.def + diff --git a/samples/notebook/makefile.sl b/samples/notebook/makefile.sl new file mode 100644 index 0000000000..db6602046a --- /dev/null +++ b/samples/notebook/makefile.sl @@ -0,0 +1,14 @@ +# Purpose: makefile for notebook example (Salford C++) +# Created: 2000-03-15 + +PROGRAM = notebook +OBJECTS = $(PROGRAM).obj + +include ..\..\src\makeprog.sl + +all: wx $(TARGET) + +wx: + cd $(WXDIR)\src\msw ^ mk32 -f makefile.sl all + cd $(WXDIR)\samples\notebook + diff --git a/samples/notebook/makefile.twn b/samples/notebook/makefile.twn new file mode 100644 index 0000000000..e9c440b099 --- /dev/null +++ b/samples/notebook/makefile.twn @@ -0,0 +1,35 @@ +# Purpose: makefile for notebook example (TWIN) +# Created: 2000-03-15 + +WXDIR = ../.. + +# All common UNIX compiler flags and options are now in +# this central makefile. +include $(WXDIR)/src/maketwin.env + +OBJECTS = $(OBJDIR)/notebook.$(OBJSUFF) $(OBJDIR)/notebook.$(OBJSUFF) + +all: $(OBJDIR) notebook$(GUISUFFIX)$(EXESUFF) + +wx: + +$(OBJDIR): + mkdir $(OBJDIR) + +notebook$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(WXLIB) + $(CC) $(LDFLAGS) -o notebook$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS) + +$(OBJDIR)/notebook.$(OBJSUFF): notebook.$(SRCSUFF) + $(CC) -c $(CPPFLAGS) -o $@ notebook.$(SRCSUFF) + +notebook.c: notebook.rc + $(RESCOMP) $(RCINPUTSWITCH) notebook.rc $(RCOUTPUTSWITCH) notebook.c $(RESFLAGS) + +$(OBJDIR)/notebook.$(OBJSUFF): notebook.c + $(CC) -c $(CPPFLAGS) -o $@ notebook.c + +#$(OBJDIR)/notebook.o: notebook.rc +# $(RESCOMP) $(RCINPUTSWITCH) notebook.rc $(RCOUTPUTSWITCH) $(OBJDIR)/notebook.o $(RESFLAGS) + +clean: + rm -f $(OBJECTS) notebook$(GUISUFFIX).exe core *.rsc *.res diff --git a/samples/notebook/makefile.unx b/samples/notebook/makefile.unx index 21cab3c677..e3db4b798e 100644 --- a/samples/notebook/makefile.unx +++ b/samples/notebook/makefile.unx @@ -1,21 +1,9 @@ -# -# File: Makefile for samples -# Author: Robert Roebling -# Created: 1999 -# Updated: -# Copyright: (c) 1998 Robert Roebling -# -# This makefile requires a Unix version of wxWindows -# to be installed on your system. This is most often -# done typing "make install" when using the complete -# sources of wxWindows or by installing the two -# RPM packages wxGTK.XXX.rpm and wxGTK-devel.XXX.rpm -# under Linux. -# +# Purpose: makefile for notebook example (Unix) +# Created: 2000-03-15 CC = gcc -PROGRAM = test +PROGRAM = notebook OBJECTS = $(PROGRAM).o @@ -31,5 +19,5 @@ all: $(PROGRAM) $(PROGRAM): $(OBJECTS) $(CC) -o $(PROGRAM) $(OBJECTS) `wx-config --libs` -clean: +clean: rm -f *.o $(PROGRAM) diff --git a/samples/notebook/makefile.vc b/samples/notebook/makefile.vc index 4ada748eda..731c76c91c 100644 --- a/samples/notebook/makefile.vc +++ b/samples/notebook/makefile.vc @@ -1,17 +1,10 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. +# Purpose: makefile for notebook example (VC++ 32bit) +# Created: 2000-03-15 # Set WXDIR for your system WXDIR = $(WXWIN) -PROGRAM=test +PROGRAM=notebook OBJECTS = $(PROGRAM).obj !include $(WXDIR)\src\makeprog.vc diff --git a/samples/notebook/makefile.wat b/samples/notebook/makefile.wat index 81a83e42a9..d121835cc3 100644 --- a/samples/notebook/makefile.wat +++ b/samples/notebook/makefile.wat @@ -1,13 +1,9 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# +# Purpose: makefile for notebook example (Watcom) +# Created: 2000-03-15 WXDIR = $(%WXWIN) -PROGRAM = test +PROGRAM = notebook OBJECTS = $(PROGRAM).obj !include $(WXDIR)\src\makeprog.wat diff --git a/samples/notebook/notebook.cpp b/samples/notebook/notebook.cpp new file mode 100644 index 0000000000..7ffa097f23 --- /dev/null +++ b/samples/notebook/notebook.cpp @@ -0,0 +1,315 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: notebook.cpp +// Purpose: wxNotebook demo +// Author: Julian Smart +// Modified by: +// Created: 26/10/98 +// RCS-ID: $Id$ +// Copyright: (c) +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/wx.h" +#endif + +#include "notebook.h" + +// If 1, use a dialog. Otherwise use a frame. +#define USE_TABBED_DIALOG 0 +#if USE_TABBED_DIALOG +MyDialog* dialog = (MyDialog *) NULL; +#else // !USE_TABBED_DIALOG +MyFrame* frame = (MyFrame *) NULL; +#endif // USE_TABBED_DIALOG + +IMPLEMENT_APP(MyApp) + +bool MyApp::OnInit() +{ + // Create the main window +#if USE_TABBED_DIALOG + dialog = new MyDialog((wxFrame *) NULL, -1, (char *) "Notebook", wxPoint(-1, -1), wxSize(365, 390), wxDIALOG_MODAL|wxDEFAULT_DIALOG_STYLE); + + dialog->ShowModal(); + + // Quit immediately the dialog has been dismissed + return FALSE; +#else + frame = new MyFrame((wxFrame*) NULL, -1, "Notebook", wxPoint(-1, -1), wxSize(465, 390) ); + + // Problem with generic wxNotebook implementation whereby it doesn't size properly unless + // you set the size again +#if defined(__WIN16__) + int width, height; + frame->GetSize(& width, & height); + frame->SetSize(-1, -1, width, height); +#endif + + return TRUE; +#endif +} + +void MyApp::InitTabView(wxNotebook* notebook, wxPanel* window) +{ + m_okButton = new wxButton(window, wxID_OK, "Close", wxPoint(-1, -1), wxSize(80, 25)); + m_cancelButton = new wxButton(window, ID_DELETE_PAGE, "&Delete page", wxPoint(-1, -1), wxSize(80, 25)); + m_addPageButton = new wxButton(window, ID_ADD_PAGE, "&Add page", wxPoint(-1, -1), wxSize(80, 25)); + m_insertPageButton = new wxButton(window, ID_INSERT_PAGE, "&Insert page", wxPoint(-1, -1), wxSize(80, 25)); + m_nextPageButton = new wxButton(window, ID_NEXT_PAGE, "&Next page", wxPoint(-1, -1), wxSize(80, 25)); + m_okButton->SetDefault(); + + wxLayoutConstraints *c; + + c = new wxLayoutConstraints; + c->right.SameAs(window, wxRight, 4); + c->bottom.SameAs(window, wxBottom, 4); + c->height.AsIs(); + c->width.AsIs(); + m_addPageButton->SetConstraints(c); + + c = new wxLayoutConstraints; + c->right.SameAs(m_addPageButton, wxLeft, 4); + c->bottom.SameAs(window, wxBottom, 4); + c->height.AsIs(); + c->width.AsIs(); + m_insertPageButton->SetConstraints(c); + + c = new wxLayoutConstraints; + c->right.SameAs(m_insertPageButton, wxLeft, 4); + c->bottom.SameAs(window, wxBottom, 4); + c->height.AsIs(); + c->width.AsIs(); + m_nextPageButton->SetConstraints(c); + + c = new wxLayoutConstraints; + c->right.SameAs(m_nextPageButton, wxLeft, 4); + c->bottom.SameAs(window, wxBottom, 4); + c->height.AsIs(); + c->width.AsIs(); + m_cancelButton->SetConstraints(c); + + c = new wxLayoutConstraints; + c->right.SameAs(m_cancelButton, wxLeft, 4); + c->bottom.SameAs(window, wxBottom, 4); + c->height.AsIs(); + c->width.AsIs(); + m_okButton->SetConstraints(c); + + // Add some panels + wxPanel *panel1 = new wxPanel(notebook, -1); + // panel1->SetBackgroundColour(wxColour("RED")); + (void)new wxButton(panel1, -1, "Press me", wxPoint(10, 10)); + (void)new wxTextCtrl(panel1, -1, "1234", wxPoint(10, 40), wxSize(120, 150)); + + notebook->AddPage(panel1, "Cat", TRUE); + + wxPanel *panel2 = new wxPanel(notebook, -1); + panel2->SetAutoLayout(TRUE); + panel2->SetBackgroundColour(wxColour("BLUE")); + + wxString animals[] = { "Fox", "Hare", "Rabbit", "Sabre-toothed tiger", "T Rex" }; + wxRadioBox *radiobox = new wxRadioBox(panel2, -1, "Choose one", + wxDefaultPosition, wxDefaultSize, 5, animals, + 2, wxRA_SPECIFY_ROWS); + + c = new wxLayoutConstraints; + c->left.SameAs(panel2, wxLeft, 10); + c->top.SameAs(panel2, wxTop, 5); + c->height.PercentOf(panel2, wxHeight, 50); + c->right.SameAs(panel2, wxRight, 10); + radiobox->SetConstraints(c); + + wxRadioBox *radiobox2 = new wxRadioBox(panel2, -1, "Choose one", + wxDefaultPosition, wxDefaultSize, + 5, animals, + 2, wxRA_SPECIFY_ROWS); + + c = new wxLayoutConstraints; + c->left.SameAs(radiobox, wxLeft); + c->height.AsIs(); + c->top.Below(radiobox, 5); + c->right.SameAs(radiobox, wxRight); + radiobox2->SetConstraints(c); + + notebook->AddPage(panel2, "Dog"); + + wxPanel *panel3 = new wxPanel(notebook, -1); + panel3->SetBackgroundColour(wxColour("WHITE")); + notebook->AddPage(panel3, "Goat"); + + wxPanel *panel4 = new wxPanel(notebook, -1); + panel4->SetBackgroundColour(wxColour("YELLOW")); + notebook->AddPage(panel4, "Sheep"); + + wxPanel *panel5 = new wxPanel(notebook, -1); + panel5->SetBackgroundColour(wxColour("MAGENTA")); + (void)new wxStaticText(panel5, -1, "This page has been inserted, not added", wxPoint(10, 10) ); + notebook->InsertPage(0, panel5, "Sheep"); + + notebook->SetSelection(2); +} + +#if USE_TABBED_DIALOG + +BEGIN_EVENT_TABLE(MyDialog, wxDialog) + EVT_BUTTON(wxID_OK, MyDialog::OnOK) + EVT_BUTTON(wxID_CANCEL, MyDialog::OnOK) +END_EVENT_TABLE() + +MyDialog::MyDialog(wxWindow* parent, const wxWindowID id, const wxString& title, + const wxPoint& pos, const wxSize& size, const long windowStyle): + wxDialog(parent, id, title, pos, size, windowStyle) +{ + Init(); +} + +void MyDialog::OnOK(wxCommandEvent& WXUNUSED(event) ) +{ + EndModal(wxID_OK); +} + +void MyDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event) ) +{ + EndModal(wxID_CANCEL); +} + +void MyDialog::Init() +{ + m_notebook = new wxNotebook(this, ID_NOTEBOOK); + + wxLayoutConstraints* c = new wxLayoutConstraints; + c->left.SameAs(this, wxLeft, 4); + c->right.SameAs(this, wxRight, 4); + c->top.SameAs(this, wxTop, 4); + c->bottom.SameAs(this, wxBottom, 40); + + m_notebook->SetConstraints(c); + + wxGetApp().InitTabView(m_notebook, this); + + SetAutoLayout(TRUE); + Layout(); + + Centre(wxBOTH); +} + +#else // USE_TABBED_DIALOG + +BEGIN_EVENT_TABLE(MyFrame, wxFrame) + EVT_BUTTON(wxID_OK, MyFrame::OnOK) + EVT_BUTTON(ID_DELETE_PAGE, MyFrame::OnDeletePage) + EVT_BUTTON(ID_ADD_PAGE, MyFrame::OnAddPage) + EVT_BUTTON(ID_INSERT_PAGE, MyFrame::OnInsertPage) + EVT_BUTTON(ID_NEXT_PAGE, MyFrame::OnNextPage) + EVT_IDLE(MyFrame::OnIdle) +END_EVENT_TABLE() + +MyFrame::MyFrame(wxFrame* parent, const wxWindowID id, const wxString& title, + const wxPoint& pos, const wxSize& size, const long windowStyle): + wxFrame(parent, id, title, pos, size, windowStyle) +{ + m_panel = (wxPanel*) NULL; + m_notebook = (wxNotebook*) NULL; + Init(); +} + +void MyFrame::OnAddPage(wxCommandEvent& WXUNUSED(event)) +{ + static size_t s_pageAdded = 0; + + wxPanel *panel = new wxPanel( m_notebook, -1 ); + (void)new wxButton( panel, -1, "Button", wxPoint( 10,10 ), wxSize(-1,-1) ); + + m_notebook->AddPage( panel, wxString::Format("Added %u", ++s_pageAdded) ); +} + +void MyFrame::OnInsertPage(wxCommandEvent& WXUNUSED(event)) +{ + static size_t s_pageIns = 0; + + wxPanel *panel = new wxPanel( m_notebook, -1 ); + (void)new wxButton( panel, -1, "Button", wxPoint( 10,10 ), wxSize(-1,-1) ); + + m_notebook->InsertPage(0, panel, wxString::Format("Inserted %u", ++s_pageIns) ); + m_notebook->SetSelection(0); +} + +void MyFrame::OnDeletePage(wxCommandEvent& WXUNUSED(event)) +{ + m_notebook->DeletePage( m_notebook->GetPageCount()-1 ); +} + +void MyFrame::OnNextPage(wxCommandEvent& WXUNUSED(event)) +{ + m_notebook->AdvanceSelection(); +} + +void MyFrame::OnOK(wxCommandEvent& WXUNUSED(event) ) +{ + Destroy(); +} + +void MyFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event) ) +{ + Destroy(); +} + +void MyFrame::Init() +{ + m_panel = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxCLIP_CHILDREN); + + wxLayoutConstraints* c = new wxLayoutConstraints; + c->left.SameAs(this, wxLeft); + c->right.SameAs(this, wxRight); + c->top.SameAs(this, wxTop); + c->bottom.SameAs(this, wxBottom); + m_panel->SetConstraints(c); + + m_notebook = new wxNotebook(m_panel, ID_NOTEBOOK); + + c = new wxLayoutConstraints; + c->left.SameAs(m_panel, wxLeft, 4); + c->right.SameAs(m_panel, wxRight, 4); + c->top.SameAs(m_panel, wxTop, 4); + c->bottom.SameAs(m_panel, wxBottom, 40); + + m_notebook->SetConstraints(c); + + wxGetApp().InitTabView(m_notebook, m_panel); + + m_panel->SetAutoLayout(TRUE); + SetAutoLayout(TRUE); + + Centre(wxBOTH); + + Show(TRUE); +} + +void MyFrame::OnIdle(wxIdleEvent& WXUNUSED(event)) +{ + static int s_nPages = -1; + static int s_nSel = -1; + + int nPages = m_notebook->GetPageCount(); + int nSel = m_notebook->GetSelection(); + if ( nPages != s_nPages || nSel != s_nSel ) + { + s_nPages = nPages; + s_nSel = nSel; + + wxString title; + title.Printf("Notebook (%d pages, selection: %d)", nPages, nSel); + + SetTitle(title); + } +} + +#endif // USE_TABBED_DIALOG diff --git a/samples/notebook/notebook.def b/samples/notebook/notebook.def new file mode 100644 index 0000000000..af6749376b --- /dev/null +++ b/samples/notebook/notebook.def @@ -0,0 +1,8 @@ +NAME Notebook +DESCRIPTION 'Notebook test' +EXETYPE WINDOWS +STUB 'WINSTUB.EXE' +CODE PRELOAD MOVEABLE DISCARDABLE +DATA PRELOAD MOVEABLE MULTIPLE +HEAPSIZE 1024 +STACKSIZE 16192 diff --git a/samples/notebook/notebook.h b/samples/notebook/notebook.h new file mode 100644 index 0000000000..7cad0bed4c --- /dev/null +++ b/samples/notebook/notebook.h @@ -0,0 +1,96 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: notebook.h +// Purpose: wxNotebook demo +// Author: Julian Smart +// Modified by: +// Created: 25/10/98 +// RCS-ID: $Id$ +// Copyright: (c) +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#include "wx/notebook.h" + +// Define a new application +class MyApp: public wxApp +{ +public: + bool OnInit(); + void InitTabView(wxNotebook* notebook, wxPanel* window); + + wxButton* m_okButton; + wxButton* m_cancelButton; + wxButton* m_addPageButton, *m_insertPageButton; + wxButton* m_nextPageButton; +}; + +DECLARE_APP(MyApp) + +#if USE_TABBED_DIALOG + +class MyDialog: public wxDialog +{ +public: + MyDialog(wxWindow* parent, const wxWindowID id, const wxString& title, + const wxPoint& pos, const wxSize& size, const long windowStyle = wxDEFAULT_DIALOG_STYLE); + + void OnOK(wxCommandEvent& event); + void OnCloseWindow(wxCloseEvent& event); + void Init(); + +protected: + wxNotebook* m_notebook; + + DECLARE_EVENT_TABLE() +}; + +#else // USE_TABBED_DIALOG + +class MyFrame: public wxFrame +{ +public: + MyFrame(wxFrame* parent, const wxWindowID id, const wxString& title, + const wxPoint& pos, const wxSize& size, const long windowStyle = wxDEFAULT_FRAME_STYLE); + + void OnOK(wxCommandEvent& event); + void OnCloseWindow(wxCloseEvent& event); + void OnAddPage(wxCommandEvent& event); + void OnInsertPage(wxCommandEvent& event); + void OnNextPage(wxCommandEvent& event); + void OnDeletePage(wxCommandEvent& event); + void OnIdle(wxIdleEvent& event); + + void Init(); + +protected: + wxNotebook* m_notebook; + wxPanel* m_panel; // Panel containing notebook and OK/Cancel/Help + + DECLARE_EVENT_TABLE() +}; + +#endif // USE_TABBED_DIALOG + +// File ids +#define TEST_ABOUT 2 + +// Tab ids +#define TEST_TAB_DOG 1 +#define TEST_TAB_CAT 2 +#define TEST_TAB_GOAT 3 +#define TEST_TAB_GUINEAPIG 4 +#define TEST_TAB_ANTEATER 5 +#define TEST_TAB_HUMMINGBIRD 6 +#define TEST_TAB_SHEEP 7 +#define TEST_TAB_COW 8 +#define TEST_TAB_HORSE 9 +#define TEST_TAB_PIG 10 +#define TEST_TAB_OSTRICH 11 +#define TEST_TAB_AARDVARK 12 + +#define ID_NOTEBOOK 1000 +#define ID_ADD_PAGE 1200 +#define ID_DELETE_PAGE 1201 +#define ID_NEXT_PAGE 1202 +#define ID_INSERT_PAGE 1203 + diff --git a/samples/notebook/notebook.rc b/samples/notebook/notebook.rc new file mode 100644 index 0000000000..a05f21065a --- /dev/null +++ b/samples/notebook/notebook.rc @@ -0,0 +1,3 @@ +mondrian_icon ICON "mondrian.ico" +#include "wx/msw/wx.rc" + diff --git a/samples/notebook/test.cpp b/samples/notebook/test.cpp deleted file mode 100644 index 02e81062fd..0000000000 --- a/samples/notebook/test.cpp +++ /dev/null @@ -1,315 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: test.cpp -// Purpose: wxNotebook demo -// Author: Julian Smart -// Modified by: -// Created: 26/10/98 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif - -#include "test.h" - -// If 1, use a dialog. Otherwise use a frame. -#define USE_TABBED_DIALOG 0 -#if USE_TABBED_DIALOG -MyDialog* dialog = (MyDialog *) NULL; -#else // !USE_TABBED_DIALOG -MyFrame* frame = (MyFrame *) NULL; -#endif // USE_TABBED_DIALOG - -IMPLEMENT_APP(MyApp) - -bool MyApp::OnInit() -{ - // Create the main window -#if USE_TABBED_DIALOG - dialog = new MyDialog((wxFrame *) NULL, -1, (char *) "Notebook", wxPoint(-1, -1), wxSize(365, 390), wxDIALOG_MODAL|wxDEFAULT_DIALOG_STYLE); - - dialog->ShowModal(); - - // Quit immediately the dialog has been dismissed - return FALSE; -#else - frame = new MyFrame((wxFrame*) NULL, -1, "Notebook", wxPoint(-1, -1), wxSize(465, 390) ); - - // Problem with generic wxNotebook implementation whereby it doesn't size properly unless - // you set the size again -#if defined(__WIN16__) - int width, height; - frame->GetSize(& width, & height); - frame->SetSize(-1, -1, width, height); -#endif - - return TRUE; -#endif -} - -void MyApp::InitTabView(wxNotebook* notebook, wxPanel* window) -{ - m_okButton = new wxButton(window, wxID_OK, "Close", wxPoint(-1, -1), wxSize(80, 25)); - m_cancelButton = new wxButton(window, ID_DELETE_PAGE, "&Delete page", wxPoint(-1, -1), wxSize(80, 25)); - m_addPageButton = new wxButton(window, ID_ADD_PAGE, "&Add page", wxPoint(-1, -1), wxSize(80, 25)); - m_insertPageButton = new wxButton(window, ID_INSERT_PAGE, "&Insert page", wxPoint(-1, -1), wxSize(80, 25)); - m_nextPageButton = new wxButton(window, ID_NEXT_PAGE, "&Next page", wxPoint(-1, -1), wxSize(80, 25)); - m_okButton->SetDefault(); - - wxLayoutConstraints *c; - - c = new wxLayoutConstraints; - c->right.SameAs(window, wxRight, 4); - c->bottom.SameAs(window, wxBottom, 4); - c->height.AsIs(); - c->width.AsIs(); - m_addPageButton->SetConstraints(c); - - c = new wxLayoutConstraints; - c->right.SameAs(m_addPageButton, wxLeft, 4); - c->bottom.SameAs(window, wxBottom, 4); - c->height.AsIs(); - c->width.AsIs(); - m_insertPageButton->SetConstraints(c); - - c = new wxLayoutConstraints; - c->right.SameAs(m_insertPageButton, wxLeft, 4); - c->bottom.SameAs(window, wxBottom, 4); - c->height.AsIs(); - c->width.AsIs(); - m_nextPageButton->SetConstraints(c); - - c = new wxLayoutConstraints; - c->right.SameAs(m_nextPageButton, wxLeft, 4); - c->bottom.SameAs(window, wxBottom, 4); - c->height.AsIs(); - c->width.AsIs(); - m_cancelButton->SetConstraints(c); - - c = new wxLayoutConstraints; - c->right.SameAs(m_cancelButton, wxLeft, 4); - c->bottom.SameAs(window, wxBottom, 4); - c->height.AsIs(); - c->width.AsIs(); - m_okButton->SetConstraints(c); - - // Add some panels - wxPanel *panel1 = new wxPanel(notebook, -1); - // panel1->SetBackgroundColour(wxColour("RED")); - (void)new wxButton(panel1, -1, "Press me", wxPoint(10, 10)); - (void)new wxTextCtrl(panel1, -1, "1234", wxPoint(10, 40), wxSize(120, 150)); - - notebook->AddPage(panel1, "Cat", TRUE); - - wxPanel *panel2 = new wxPanel(notebook, -1); - panel2->SetAutoLayout(TRUE); - panel2->SetBackgroundColour(wxColour("BLUE")); - - wxString animals[] = { "Fox", "Hare", "Rabbit", "Sabre-toothed tiger", "T Rex" }; - wxRadioBox *radiobox = new wxRadioBox(panel2, -1, "Choose one", - wxDefaultPosition, wxDefaultSize, 5, animals, - 2, wxRA_SPECIFY_ROWS); - - c = new wxLayoutConstraints; - c->left.SameAs(panel2, wxLeft, 10); - c->top.SameAs(panel2, wxTop, 5); - c->height.PercentOf(panel2, wxHeight, 50); - c->right.SameAs(panel2, wxRight, 10); - radiobox->SetConstraints(c); - - wxRadioBox *radiobox2 = new wxRadioBox(panel2, -1, "Choose one", - wxDefaultPosition, wxDefaultSize, - 5, animals, - 2, wxRA_SPECIFY_ROWS); - - c = new wxLayoutConstraints; - c->left.SameAs(radiobox, wxLeft); - c->height.AsIs(); - c->top.Below(radiobox, 5); - c->right.SameAs(radiobox, wxRight); - radiobox2->SetConstraints(c); - - notebook->AddPage(panel2, "Dog"); - - wxPanel *panel3 = new wxPanel(notebook, -1); - panel3->SetBackgroundColour(wxColour("WHITE")); - notebook->AddPage(panel3, "Goat"); - - wxPanel *panel4 = new wxPanel(notebook, -1); - panel4->SetBackgroundColour(wxColour("YELLOW")); - notebook->AddPage(panel4, "Sheep"); - - wxPanel *panel5 = new wxPanel(notebook, -1); - panel5->SetBackgroundColour(wxColour("MAGENTA")); - (void)new wxStaticText(panel5, -1, "This page has been inserted, not added", wxPoint(10, 10) ); - notebook->InsertPage(0, panel5, "Sheep"); - - notebook->SetSelection(2); -} - -#if USE_TABBED_DIALOG - -BEGIN_EVENT_TABLE(MyDialog, wxDialog) - EVT_BUTTON(wxID_OK, MyDialog::OnOK) - EVT_BUTTON(wxID_CANCEL, MyDialog::OnOK) -END_EVENT_TABLE() - -MyDialog::MyDialog(wxWindow* parent, const wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, const long windowStyle): - wxDialog(parent, id, title, pos, size, windowStyle) -{ - Init(); -} - -void MyDialog::OnOK(wxCommandEvent& WXUNUSED(event) ) -{ - EndModal(wxID_OK); -} - -void MyDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event) ) -{ - EndModal(wxID_CANCEL); -} - -void MyDialog::Init() -{ - m_notebook = new wxNotebook(this, ID_NOTEBOOK); - - wxLayoutConstraints* c = new wxLayoutConstraints; - c->left.SameAs(this, wxLeft, 4); - c->right.SameAs(this, wxRight, 4); - c->top.SameAs(this, wxTop, 4); - c->bottom.SameAs(this, wxBottom, 40); - - m_notebook->SetConstraints(c); - - wxGetApp().InitTabView(m_notebook, this); - - SetAutoLayout(TRUE); - Layout(); - - Centre(wxBOTH); -} - -#else // USE_TABBED_DIALOG - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_BUTTON(wxID_OK, MyFrame::OnOK) - EVT_BUTTON(ID_DELETE_PAGE, MyFrame::OnDeletePage) - EVT_BUTTON(ID_ADD_PAGE, MyFrame::OnAddPage) - EVT_BUTTON(ID_INSERT_PAGE, MyFrame::OnInsertPage) - EVT_BUTTON(ID_NEXT_PAGE, MyFrame::OnNextPage) - EVT_IDLE(MyFrame::OnIdle) -END_EVENT_TABLE() - -MyFrame::MyFrame(wxFrame* parent, const wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, const long windowStyle): - wxFrame(parent, id, title, pos, size, windowStyle) -{ - m_panel = (wxPanel*) NULL; - m_notebook = (wxNotebook*) NULL; - Init(); -} - -void MyFrame::OnAddPage(wxCommandEvent& WXUNUSED(event)) -{ - static size_t s_pageAdded = 0; - - wxPanel *panel = new wxPanel( m_notebook, -1 ); - (void)new wxButton( panel, -1, "Button", wxPoint( 10,10 ), wxSize(-1,-1) ); - - m_notebook->AddPage( panel, wxString::Format("Added %u", ++s_pageAdded) ); -} - -void MyFrame::OnInsertPage(wxCommandEvent& WXUNUSED(event)) -{ - static size_t s_pageIns = 0; - - wxPanel *panel = new wxPanel( m_notebook, -1 ); - (void)new wxButton( panel, -1, "Button", wxPoint( 10,10 ), wxSize(-1,-1) ); - - m_notebook->InsertPage(0, panel, wxString::Format("Inserted %u", ++s_pageIns) ); - m_notebook->SetSelection(0); -} - -void MyFrame::OnDeletePage(wxCommandEvent& WXUNUSED(event)) -{ - m_notebook->DeletePage( m_notebook->GetPageCount()-1 ); -} - -void MyFrame::OnNextPage(wxCommandEvent& WXUNUSED(event)) -{ - m_notebook->AdvanceSelection(); -} - -void MyFrame::OnOK(wxCommandEvent& WXUNUSED(event) ) -{ - Destroy(); -} - -void MyFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event) ) -{ - Destroy(); -} - -void MyFrame::Init() -{ - m_panel = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxCLIP_CHILDREN); - - wxLayoutConstraints* c = new wxLayoutConstraints; - c->left.SameAs(this, wxLeft); - c->right.SameAs(this, wxRight); - c->top.SameAs(this, wxTop); - c->bottom.SameAs(this, wxBottom); - m_panel->SetConstraints(c); - - m_notebook = new wxNotebook(m_panel, ID_NOTEBOOK); - - c = new wxLayoutConstraints; - c->left.SameAs(m_panel, wxLeft, 4); - c->right.SameAs(m_panel, wxRight, 4); - c->top.SameAs(m_panel, wxTop, 4); - c->bottom.SameAs(m_panel, wxBottom, 40); - - m_notebook->SetConstraints(c); - - wxGetApp().InitTabView(m_notebook, m_panel); - - m_panel->SetAutoLayout(TRUE); - SetAutoLayout(TRUE); - - Centre(wxBOTH); - - Show(TRUE); -} - -void MyFrame::OnIdle(wxIdleEvent& WXUNUSED(event)) -{ - static int s_nPages = -1; - static int s_nSel = -1; - - int nPages = m_notebook->GetPageCount(); - int nSel = m_notebook->GetSelection(); - if ( nPages != s_nPages || nSel != s_nSel ) - { - s_nPages = nPages; - s_nSel = nSel; - - wxString title; - title.Printf("Notebook (%d pages, selection: %d)", nPages, nSel); - - SetTitle(title); - } -} - -#endif // USE_TABBED_DIALOG diff --git a/samples/notebook/test.def b/samples/notebook/test.def deleted file mode 100644 index 43b2ed3907..0000000000 --- a/samples/notebook/test.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME Test -DESCRIPTION 'Notebook test' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 16192 diff --git a/samples/notebook/test.h b/samples/notebook/test.h deleted file mode 100644 index 6690464ae1..0000000000 --- a/samples/notebook/test.h +++ /dev/null @@ -1,96 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: test.h -// Purpose: wxNotebook demo -// Author: Julian Smart -// Modified by: -// Created: 25/10/98 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include - -// Define a new application -class MyApp: public wxApp -{ -public: - bool OnInit(); - void InitTabView(wxNotebook* notebook, wxPanel* window); - - wxButton* m_okButton; - wxButton* m_cancelButton; - wxButton* m_addPageButton, *m_insertPageButton; - wxButton* m_nextPageButton; -}; - -DECLARE_APP(MyApp) - -#if USE_TABBED_DIALOG - -class MyDialog: public wxDialog -{ -public: - MyDialog(wxWindow* parent, const wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, const long windowStyle = wxDEFAULT_DIALOG_STYLE); - - void OnOK(wxCommandEvent& event); - void OnCloseWindow(wxCloseEvent& event); - void Init(); - -protected: - wxNotebook* m_notebook; - - DECLARE_EVENT_TABLE() -}; - -#else // USE_TABBED_DIALOG - -class MyFrame: public wxFrame -{ -public: - MyFrame(wxFrame* parent, const wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, const long windowStyle = wxDEFAULT_FRAME_STYLE); - - void OnOK(wxCommandEvent& event); - void OnCloseWindow(wxCloseEvent& event); - void OnAddPage(wxCommandEvent& event); - void OnInsertPage(wxCommandEvent& event); - void OnNextPage(wxCommandEvent& event); - void OnDeletePage(wxCommandEvent& event); - void OnIdle(wxIdleEvent& event); - - void Init(); - -protected: - wxNotebook* m_notebook; - wxPanel* m_panel; // Panel containing notebook and OK/Cancel/Help - - DECLARE_EVENT_TABLE() -}; - -#endif // USE_TABBED_DIALOG - -// File ids -#define TEST_ABOUT 2 - -// Tab ids -#define TEST_TAB_DOG 1 -#define TEST_TAB_CAT 2 -#define TEST_TAB_GOAT 3 -#define TEST_TAB_GUINEAPIG 4 -#define TEST_TAB_ANTEATER 5 -#define TEST_TAB_HUMMINGBIRD 6 -#define TEST_TAB_SHEEP 7 -#define TEST_TAB_COW 8 -#define TEST_TAB_HORSE 9 -#define TEST_TAB_PIG 10 -#define TEST_TAB_OSTRICH 11 -#define TEST_TAB_AARDVARK 12 - -#define ID_NOTEBOOK 1000 -#define ID_ADD_PAGE 1200 -#define ID_DELETE_PAGE 1201 -#define ID_NEXT_PAGE 1202 -#define ID_INSERT_PAGE 1203 - diff --git a/samples/notebook/test.rc b/samples/notebook/test.rc deleted file mode 100644 index a05f21065a..0000000000 --- a/samples/notebook/test.rc +++ /dev/null @@ -1,3 +0,0 @@ -mondrian_icon ICON "mondrian.ico" -#include "wx/msw/wx.rc" -