-#
-# 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
-#
-# 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
-#
-# 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
WXDIR = $(WXWIN)
-TARGET=test
+TARGET=notebook
OBJECTS=$(TARGET).obj
!include $(WXDIR)\src\makeprog.bcc
-#
-# 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
-#
-# 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
--- /dev/null
+# 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
+
--- /dev/null
+# 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
+
--- /dev/null
+# 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
-#
-# 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
$(PROGRAM): $(OBJECTS)
$(CC) -o $(PROGRAM) $(OBJECTS) `wx-config --libs`
-clean:
+clean:
rm -f *.o $(PROGRAM)
-#
-# 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
-#
-# 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
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// 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
--- /dev/null
+NAME Notebook
+DESCRIPTION 'Notebook test'
+EXETYPE WINDOWS
+STUB 'WINSTUB.EXE'
+CODE PRELOAD MOVEABLE DISCARDABLE
+DATA PRELOAD MOVEABLE MULTIPLE
+HEAPSIZE 1024
+STACKSIZE 16192
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// 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
+
--- /dev/null
+mondrian_icon ICON "mondrian.ico"
+#include "wx/msw/wx.rc"
+
+++ /dev/null
-/////////////////////////////////////////////////////////////////////////////
-// 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
+++ /dev/null
-NAME Test
-DESCRIPTION 'Notebook test'
-EXETYPE WINDOWS
-STUB 'WINSTUB.EXE'
-CODE PRELOAD MOVEABLE DISCARDABLE
-DATA PRELOAD MOVEABLE MULTIPLE
-HEAPSIZE 1024
-STACKSIZE 16192
+++ /dev/null
-/////////////////////////////////////////////////////////////////////////////
-// Name: test.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
-
+++ /dev/null
-mondrian_icon ICON "mondrian.ico"
-#include "wx/msw/wx.rc"
-