From: Julian Smart Date: Mon, 26 Oct 1998 18:32:07 +0000 (+0000) Subject: Added simple notebook sample X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/0b4d4194a26948f4681701ce4b99ac9c665f104e Added simple notebook sample git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@920 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/samples/notebook/Makefile b/samples/notebook/Makefile new file mode 100644 index 0000000000..bccce53f76 --- /dev/null +++ b/samples/notebook/Makefile @@ -0,0 +1 @@ +include ../../setup/general/makeapp diff --git a/samples/notebook/Makefile.in b/samples/notebook/Makefile.in new file mode 100644 index 0000000000..3684cd27fa --- /dev/null +++ b/samples/notebook/Makefile.in @@ -0,0 +1,26 @@ +# WXXT base directory +WXBASEDIR=@WXBASEDIR@ + +# set the OS type for compilation +OS=@OS@ +# compile a library only +RULE=bin + +# define library name +BIN_TARGET=tab +# define library sources +BIN_SRC=\ +test.cpp + +#define library objects +BIN_OBJ=\ +test.o + +# additional things needed to link +BIN_LINK= + +# additional things needed to compile +ADD_COMPILE= + +# include the definitions now +include ../../../template.mak diff --git a/samples/notebook/makefile.b32 b/samples/notebook/makefile.b32 new file mode 100644 index 0000000000..0c3c463b8e --- /dev/null +++ b/samples/notebook/makefile.b32 @@ -0,0 +1,64 @@ +# +# File: makefile.bcc +# Author: Julian Smart +# Created: 1993 +# Updated: +# Copyright: (c) 1993, AIAI, University of Edinburgh +# +# "%W% %G%" +# +# Makefile : Builds notebook example + +# WXWIN and BCCDIR are set by parent make + +WXDIR = $(WXWIN) +!include $(WXDIR)\src\makeb32.env + +WXLIBDIR = $(WXDIR)\lib +WXINC = $(WXDIR)\include\msw +WXLIB = $(WXLIBDIR)\wx32.lib +LIBS=$(WXLIB) cw32 import32 ole2w32 + +TARGET=test + +!if "$(FINAL)" == "0" +LINKFLAGS=/v /Tpe /L$(WXLIBDIR);$(BCCDIR)\lib +OPT = -Od +DEBUG_FLAGS= -v +!else +LINKFLAGS=/Tpe /L$(WXLIBDIR);$(BCCDIR)\lib +OPT = -Od +DEBUG_FLAGS = +!endif +CPPFLAGS=$(DEBUG_FLAGS) $(OPT) @$(CFG) + +OBJECTS = test.obj + +$(TARGET).exe: $(OBJECTS) $(TARGET).def $(TARGET).res + tlink32 $(LINKFLAGS) @&&! +c0w32.obj $(OBJECTS) +$(TARGET) +nul +$(LIBS) +$(TARGET).def +! + brc32 -K $(TARGET).res + +.$(SRCSUFF).obj: + bcc32 $(CPPFLAGS) -c {$< } + +.c.obj: + bcc32 $(CPPFLAGS) -P- -c {$< } + +test.obj: test.$(SRCSUFF) + +$(TARGET).res : $(TARGET).rc $(WXDIR)\include\wx\msw\wx.rc + brc32 -r /i$(BCCDIR)\include /i$(WXDIR)\include $(TARGET) + +clean: + -erase *.obj + -erase *.exe + -erase *.res + -erase *.map + -erase *.rws + diff --git a/samples/notebook/makefile.dos b/samples/notebook/makefile.dos new file mode 100644 index 0000000000..032e661e15 --- /dev/null +++ b/samples/notebook/makefile.dos @@ -0,0 +1,65 @@ +# +# File: makefile.dos +# Author: Julian Smart +# Created: 1993 +# Updated: +# Copyright: (c) 1993, AIAI, University of Edinburgh +# +# "%W% %G%" +# +# Makefile : Builds tab example (DOS). +# Use FINAL=1 argument to nmake to build final version with no debugging +# info + +WXDIR = $(WXWIN) + +!include $(WXDIR)\src\makemsc.env + +THISDIR = $(WXDIR)\samples\tab + +!ifndef FINAL +FINAL=0 +!endif + +HEADERS = +SOURCES = test.$(SRCSUFF) +OBJECTS = test.obj + +all: test.exe + +wx: + cd $(WXDIR)\src\msw + nmake -f makefile.dos FINAL=$(FINAL) + cd $(THISDIR) + +wxclean: + cd $(WXDIR)\src\msw + nmake -f makefile.dos clean + cd $(THISDIR) + +test.exe: $(WXDIR)\src\msw\dummy.obj $(WXLIB) test.obj test.def test.res + link $(LINKFLAGS) @<< +test.obj $(WXDIR)\src\msw\dummy.obj, +test, +NUL, +$(LIBS), +test.def +; +<< + rc -K test.res + +test.obj: test.$(SRCSUFF) + cl @<< +$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) +<< + +test.res : test.rc $(WXDIR)\include\wx\msw\wx.rc + rc -r /i$(WXDIR)\include test + +clean: + -erase *.obj + -erase *.exe + -erase *.res + -erase *.map + -erase *.sbr + -erase *.pdb diff --git a/samples/notebook/makefile.g95 b/samples/notebook/makefile.g95 new file mode 100644 index 0000000000..6cae0fbe1d --- /dev/null +++ b/samples/notebook/makefile.g95 @@ -0,0 +1,37 @@ +# +# File: makefile.unx +# Author: Julian Smart +# Created: 1993 +# Updated: +# Copyright: (c) 1993, AIAI, University of Edinburgh +# +# "%W% %G%" +# +# Makefile for notebook example + +WXDIR = ../.. + +# All common UNIX compiler flags and options are now in +# this central makefile. +include $(WXDIR)/src/makeg95.env + +OBJECTS = $(OBJDIR)/test.$(OBJSUFF) $(OBJDIR)/test_resources.$(OBJSUFF) + +all: $(OBJDIR) test$(GUISUFFIX)$(EXESUFF) + +wx: + +$(OBJDIR): + mkdir $(OBJDIR) + +test$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(WXLIB) + $(CC) $(LDFLAGS) -o test$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS) + +$(OBJDIR)/test.$(OBJSUFF): test.$(SRCSUFF) + $(CC) -c $(CPPFLAGS) -o $@ test.$(SRCSUFF) + +$(OBJDIR)/test_resources.o: test.rc + $(RESCOMP) -i test.rc -o $(OBJDIR)/test_resources.o $(RESFLAGS) + +clean: + rm -f $(OBJECTS) test$(GUISUFFIX).exe core *.rsc *.res diff --git a/samples/notebook/makefile.nt b/samples/notebook/makefile.nt new file mode 100644 index 0000000000..2340423007 --- /dev/null +++ b/samples/notebook/makefile.nt @@ -0,0 +1,64 @@ +# +# File: makefile.nt +# Author: Julian Smart +# Created: 1993 +# Updated: +# Copyright: (c) 1993, AIAI, University of Edinburgh +# +# "%W% %G%" +# +# Makefile : Builds notebook example (MS VC++). +# Use FINAL=1 argument to nmake to build final version with no debugging +# info + +# Set WXDIR for your system +WXDIR = $(WXWIN) + +WXUSINGDLL=0 + +!include $(WXDIR)\src\ntwxwin.mak + +THISDIR = $(WXDIR)\samples\notebook +PROGRAM=test + +OBJECTS = $(PROGRAM).obj + +$(PROGRAM): $(PROGRAM).exe + +all: wx $(PROGRAM).exe + +wx: + cd $(WXDIR)\src\msw + nmake -f makefile.nt FINAL=$(FINAL) + cd $(THISDIR) + +wxclean: + cd $(WXDIR)\src\msw + nmake -f makefile.nt clean + cd $(THISDIR) + +$(PROGRAM).exe: $(DUMMYOBJ) $(WXLIB) $(OBJECTS) $(PROGRAM).res + $(link) @<< +-out:$(PROGRAM).exe +$(LINKFLAGS) +$(DUMMYOBJ) $(OBJECTS) $(PROGRAM).res +$(LIBS) +<< + + +$(PROGRAM).obj: $(PROGRAM).$(SRCSUFF) $(DUMMYOBJ) + $(cc) @<< +$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) +<< + +$(PROGRAM).res : $(PROGRAM).rc $(WXDIR)\include\wx\msw\wx.rc + $(rc) -r /i$(WXDIR)\include -fo$@ $(PROGRAM).rc + + +clean: + -erase *.obj + -erase *.exe + -erase *.res + -erase *.map + -erase *.sbr + -erase *.pdb diff --git a/samples/notebook/makefile.unx b/samples/notebook/makefile.unx new file mode 100644 index 0000000000..a3f76189b2 --- /dev/null +++ b/samples/notebook/makefile.unx @@ -0,0 +1,17 @@ +# +# File: makefile.unx +# Author: Julian Smart +# Created: 1998 +# Updated: +# Copyright: (c) 1998 Julian Smart +# +# "%W% %G%" +# +# Makefile for notebook example (UNIX). + +PROGRAM=test + +OBJECTS=$(PROGRAM).o + +include ../../src/makeprog.env + diff --git a/samples/notebook/mondrian.ico b/samples/notebook/mondrian.ico new file mode 100644 index 0000000000..2310c5d275 Binary files /dev/null and b/samples/notebook/mondrian.ico differ diff --git a/samples/notebook/test.cpp b/samples/notebook/test.cpp new file mode 100644 index 0000000000..3358e36552 --- /dev/null +++ b/samples/notebook/test.cpp @@ -0,0 +1,205 @@ +///////////////////////////////////////////////////////////////////////////// +// 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 "wx/tab.h" +#include "test.h" + +// If 1, use a dialog. Otherwise use a frame. +#define USE_TABBED_DIALOG 0 + +MyDialog* dialog = (MyDialog *) NULL; +MyFrame* frame = (MyFrame *) NULL; + +IMPLEMENT_APP(MyApp) + +bool MyApp::OnInit(void) +{ + // 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, (char *) "Notebook", wxPoint(-1, -1), wxSize(365, 390), wxDEFAULT_FRAME_STYLE); + + return TRUE; +#endif +} + +void MyApp::InitTabView(wxNotebook* notebook, wxWindow* window) +{ + int dialogWidth = 365; + int dialogHeight = 390; + + m_okButton = new wxButton(window, wxID_OK, "Close", wxPoint(-1, -1), wxSize(80, 25)); + m_cancelButton = new wxButton(window, wxID_CANCEL, "Cancel", wxPoint(-1, -1), wxSize(80, 25)); + m_helpButton = new wxButton(window, wxID_HELP, "Help", wxPoint(-1, -1), wxSize(80, 25)); + m_okButton->SetDefault(); + + wxLayoutConstraints* c = new wxLayoutConstraints; + c->right.SameAs(window, wxRight, 4); + c->bottom.SameAs(window, wxBottom, 4); + c->height.AsIs(); + c->width.AsIs(); + m_helpButton->SetConstraints(c); + + c = new wxLayoutConstraints; + c->right.SameAs(m_helpButton, 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); + (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"); + + wxPanel *panel2 = new wxPanel(notebook, -1); + + wxString animals[] = { "Fox", "Hare", "Rabbit", "Sabre-toothed tiger", "T Rex" }; + (void)new wxListBox(panel2, -1, wxPoint(5, 5), wxSize(170, 80), 5, animals); + + (void)new wxTextCtrl(panel2, -1, "Some notes about the animals in this house", wxPoint(5, 100), wxSize(170, 100), + wxTE_MULTILINE); + + notebook->AddPage(panel2, "Dog"); +} + +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(void) +{ + int dialogWidth = 365; + int dialogHeight = 390; + + 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(); + + this->Centre(wxBOTH); +} + +BEGIN_EVENT_TABLE(MyFrame, wxFrame) + EVT_BUTTON(wxID_OK, MyFrame::OnOK) + EVT_BUTTON(wxID_CANCEL, MyFrame::OnOK) + EVT_SIZE(MyFrame::OnSize) +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::OnOK(wxCommandEvent& WXUNUSED(event) ) +{ + this->Destroy(); +} + +void MyFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event) ) +{ + this->Destroy(); +} + +void MyFrame::Init(void) +{ + int dialogWidth = 365; + int dialogHeight = 390; + + m_panel = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxCLIP_CHILDREN); + + // Note, omit the wxTAB_STYLE_COLOUR_INTERIOR, so we will guarantee a match + // with the panel background, and save a bit of time. + m_notebook = new wxNotebook(m_panel, ID_NOTEBOOK); + + wxLayoutConstraints* 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); + + m_panel->Layout(); + + this->Centre(wxBOTH); + + Show(TRUE); +} + +void MyFrame::OnSize(wxSizeEvent& event) +{ + wxFrame::OnSize(event); + m_panel->Layout(); +} + diff --git a/samples/notebook/test.def b/samples/notebook/test.def new file mode 100644 index 0000000000..b8dbdf8b5d --- /dev/null +++ b/samples/notebook/test.def @@ -0,0 +1,9 @@ + * Last change: JS 26 Oct 98 6:29 pm +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 new file mode 100644 index 0000000000..719948f708 --- /dev/null +++ b/samples/notebook/test.h @@ -0,0 +1,79 @@ +///////////////////////////////////////////////////////////////////////////// +// 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); + void InitTabView(wxNotebook* notebook, wxWindow* window); + + wxButton* m_okButton; + wxButton* m_cancelButton; + wxButton* m_helpButton; +}; + +DECLARE_APP(MyApp) + +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(void); + +protected: + wxNotebook* m_notebook; + +DECLARE_EVENT_TABLE() +}; + +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 OnSize(wxSizeEvent& event); + void Init(void); +protected: + wxNotebook* m_notebook; + wxPanel* m_panel; // Panel containing notebook and OK/Cancel/Help + +DECLARE_EVENT_TABLE() +}; + +// 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 + diff --git a/samples/notebook/test.rc b/samples/notebook/test.rc new file mode 100644 index 0000000000..a05f21065a --- /dev/null +++ b/samples/notebook/test.rc @@ -0,0 +1,3 @@ +mondrian_icon ICON "mondrian.ico" +#include "wx/msw/wx.rc" +