-#
-# File: makefile.unx
-# Author: Julian Smart
-# Created: 1998
-# Updated:
-# Copyright: (c) 1998 Julian Smart
-#
-# "%W% %G%"
-#
-# Makefile for test example (UNIX).
+# Purpose: makefile for treelay example (UNIX).
+# Created: 2000-03-15
top_srcdir = @top_srcdir@/..
top_builddir = ../..
-program_dir = samples/test
+program_dir = samples/treelay
-PROGRAM=test
+PROGRAM=treelay
OBJECTS=$(PROGRAM).o
-#
-# File: makefile.b32
-# Author: Julian Smart
-# Created: 1999
-# Updated:
-# Copyright:
-#
-# Makefile : Builds sample for 32-bit BC++
+# Purpose: makefile for treelay example (BC++ 32bit)
+# Created: 2000-03-15
WXDIR = $(WXWIN)
-TARGET=test
+TARGET=treelay
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 treelay 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=treelay
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 treelay example (VC++ 1.5x)
+# Created: 2000-03-15
WXDIR = $(WXWIN)
-TARGET=test
+TARGET=treelay
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 treelay example (Cygwin/Mingw32)
+# Created: #03.01.00
WXDIR = ../..
-TARGET=test
+TARGET=treelay
OBJECTS = $(TARGET).o
-include $(WXDIR)/src/makeprog.g95
+include $(WXDIR)\src\makeprog.g95
--- /dev/null
+# Purpose: makefile for treelay example (Symantec C++)
+# Created: 2000-03-15
+
+WXDIR = $(WXWIN)
+WXLIB = $(WXDIR)\lib\wx.lib
+INCDIR = $(WXDIR)\include
+INCLUDE=$(INCDIR)
+TARGET=treelay
+
+include $(WXDIR)\src\makesc.env
+
+treelay.exe: treelay.obj $(DEFFILE) treelay.res
+ *$(CC) $(LDFLAGS) -o$@ $** $(LIBS)
+ *$(RC) -k treelay.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 treelay example (Salford C++)
+# Created: 2000-03-15
+
+PROGRAM = treelay
+OBJECTS = $(PROGRAM).obj
+
+include ..\..\src\makeprog.sl
+
+all: wx $(TARGET)
+
+wx:
+ cd $(WXDIR)\src\msw ^ mk32 -f makefile.sl all
+ cd $(WXDIR)\samples\treelay
+
--- /dev/null
+# Purpose: makefile for treelay 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)/treelay.$(OBJSUFF) $(OBJDIR)/treelay.$(OBJSUFF)
+
+all: $(OBJDIR) treelay$(GUISUFFIX)$(EXESUFF)
+
+wx:
+
+$(OBJDIR):
+ mkdir $(OBJDIR)
+
+treelay$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(WXLIB)
+ $(CC) $(LDFLAGS) -o treelay$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS)
+
+$(OBJDIR)/treelay.$(OBJSUFF): treelay.$(SRCSUFF)
+ $(CC) -c $(CPPFLAGS) -o $@ treelay.$(SRCSUFF)
+
+treelay.c: treelay.rc
+ $(RESCOMP) $(RCINPUTSWITCH) treelay.rc $(RCOUTPUTSWITCH) treelay.c $(RESFLAGS)
+
+$(OBJDIR)/treelay.$(OBJSUFF): treelay.c
+ $(CC) -c $(CPPFLAGS) -o $@ treelay.c
+
+#$(OBJDIR)/treelay.o: treelay.rc
+# $(RESCOMP) $(RCINPUTSWITCH) treelay.rc $(RCOUTPUTSWITCH) $(OBJDIR)/treelay.o $(RESFLAGS)
+
+clean:
+ rm -f $(OBJECTS) treelay$(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 treelay example (Unix)
+# Created: 2000-03-15
CC = gcc
-PROGRAM = test
+PROGRAM = treelay
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 treelay example (VC++ 32bit)
+# Created: 2000-03-15
# Set WXDIR for your system
WXDIR = $(WXWIN)
-PROGRAM=test
+PROGRAM=treelay
OBJECTS = $(PROGRAM).obj
!include $(WXDIR)\src\makeprog.vc
-#
-# Makefile for WATCOM
-#
-# Created by Julian Smart, January 1999
-#
-#
+# Purpose: makefile for treelay example (Watcom)
+# Created: 2000-03-15
WXDIR = $(%WXWIN)
-PROGRAM = test
+PROGRAM = treelay
OBJECTS = $(PROGRAM).obj
!include $(WXDIR)\src\makeprog.wat
+++ /dev/null
-///////////////////////////////////////////////////////////////////////////////
-// Name: test.cpp
-// Purpose: wxTreeLayout sample
-// Author: Julian Smart
-// Modified by:
-// Created: 7/4/98
-// RCS-ID: $Id$
-// Copyright: (c) 1998 Julian Smart
-// 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/treelay.h>
-
-#include "test.h"
-
-wxTreeLayoutStored *myTree = NULL;
-
-// A macro needed for some compilers (AIX) that need 'main' to be defined
-// in the application itself.
-IMPLEMENT_APP(MyApp)
-
-// The `main program' equivalent, creating the windows and returning the
-// main frame
-bool MyApp::OnInit()
-{
- // Create the main frame window
- MyFrame* frame = new MyFrame(NULL, "Tree Test", wxPoint(-1, -1), wxSize(400, 550));
-
- // Give it a status line
- frame->CreateStatusBar(2);
-
- // Give it an icon
-#ifdef __WINDOWS__
- wxIcon icon("tree_icn");
- frame->SetIcon(icon);
-#endif
-
- // Make a menubar
- wxMenu *file_menu = new wxMenu;
- file_menu->Append(TEST_LEFT_RIGHT, "&Left to right", "Redraw left to right");
- file_menu->Append(TEST_TOP_BOTTOM, "&Top to bottom", "Redraw top to bottom");
- file_menu->AppendSeparator();
- file_menu->Append(TEST_QUIT, "E&xit", "Quit program");
-
- wxMenu *help_menu = new wxMenu;
- help_menu->Append(TEST_ABOUT, "&About", "About Tree Test");
-
- wxMenuBar* menu_bar = new wxMenuBar;
-
- menu_bar->Append(file_menu, "&File");
- menu_bar->Append(help_menu, "&Help");
-
- // Associate the menu bar with the frame
- frame->SetMenuBar(menu_bar);
-
- MyCanvas *canvas = new MyCanvas(frame);
-
- // Give it scrollbars: the virtual canvas is 20 * 50 = 1000 pixels in each direction
- canvas->SetScrollbars(20, 20, 50, 50);
- frame->canvas = canvas;
-
- myTree = new wxTreeLayoutStored();
-
- wxClientDC dc(canvas);
- wxFont font(10, wxROMAN, wxNORMAL, wxBOLD);
- dc.SetFont(font);
- TreeTest(*myTree, dc);
-
- frame->Show(TRUE);
-
- frame->SetStatusText("Hello, tree!");
-
- // Return the main frame window
- return TRUE;
-}
-
-void MyApp::TreeTest(wxTreeLayoutStored& tree, wxDC& dc)
-{
- tree.Initialize(200);
-
- tree.AddChild("animal");
- tree.AddChild("mammal", "animal");
- tree.AddChild("insect", "animal");
- tree.AddChild("bird", "animal");
-
- tree.AddChild("man", "mammal");
- tree.AddChild("cat", "mammal");
- tree.AddChild("dog", "mammal");
- tree.AddChild("giraffe", "mammal");
- tree.AddChild("elephant", "mammal");
- tree.AddChild("donkey", "mammal");
- tree.AddChild("horse", "mammal");
-
- tree.AddChild("fido", "dog");
- tree.AddChild("domestic cat", "cat");
- tree.AddChild("lion", "cat");
- tree.AddChild("tiger", "cat");
- tree.AddChild("felix", "domestic cat");
- tree.AddChild("socks", "domestic cat");
-
- tree.AddChild("beetle", "insect");
- tree.AddChild("earwig", "insect");
- tree.AddChild("eagle", "bird");
- tree.AddChild("bluetit", "bird");
- tree.AddChild("sparrow", "bird");
- tree.AddChild("blackbird", "bird");
- tree.AddChild("emu", "bird");
- tree.AddChild("crow", "bird");
-
- tree.DoLayout(dc);
-}
-
-BEGIN_EVENT_TABLE(MyFrame, wxFrame)
- EVT_MENU(TEST_QUIT, MyFrame::OnQuit)
- EVT_MENU(TEST_ABOUT, MyFrame::OnAbout)
- EVT_MENU(TEST_LEFT_RIGHT, MyFrame::OnLeftRight)
- EVT_MENU(TEST_TOP_BOTTOM, MyFrame::OnTopBottom)
- EVT_CLOSE(MyFrame::OnCloseWindow)
-END_EVENT_TABLE()
-
-// Define my frame constructor
-MyFrame::MyFrame(wxWindow *parent, const wxString& title, const wxPoint& pos, const wxSize& size):
- wxFrame(parent, -1, title, pos, size)
-{
-}
-
-void MyFrame::OnQuit(wxCommandEvent& event)
-{
- Close(TRUE);
-}
-
-void MyFrame::OnLeftRight(wxCommandEvent& event)
-{
- if (myTree)
- {
- myTree->SetOrientation(FALSE);
- wxClientDC dc(canvas);
- wxFont font(10, wxROMAN, wxNORMAL, wxBOLD);
- dc.SetFont(font);
- wxGetApp().TreeTest(*myTree, dc);
- canvas->Refresh();
- }
-}
-
-void MyFrame::OnTopBottom(wxCommandEvent& event)
-{
- if (myTree)
- {
- myTree->SetOrientation(TRUE);
- wxClientDC dc(canvas);
- wxFont font(10, wxROMAN, wxNORMAL, wxBOLD);
- dc.SetFont(font);
- wxGetApp().TreeTest(*myTree, dc);
- canvas->Refresh();
- }
-}
-
-void MyFrame::OnAbout(wxCommandEvent& event)
-{
- (void)wxMessageBox("wxWindows tree library demo Vsn 2.0\nAuthor: Julian Smart (c) 1998", "About tree test");
-}
-
-void MyFrame::OnCloseWindow(wxCloseEvent& event)
-{
- Destroy();
-}
-
-BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow)
- EVT_PAINT(MyCanvas::OnPaint)
-END_EVENT_TABLE()
-
-// Define a constructor for my canvas
-MyCanvas::MyCanvas(wxWindow *parent):
- wxScrolledWindow(parent, -1)
-{
- SetBackgroundColour(*wxWHITE);
-}
-
-// Define the repainting behaviour
-void MyCanvas::OnPaint(wxPaintEvent& event)
-{
- wxPaintDC dc(this);
- PrepareDC(dc);
- if (myTree)
- {
- wxFont font(10, wxROMAN, wxNORMAL, wxBOLD);
- dc.SetFont(font);
- myTree->Draw(dc);
- }
-}
-
+++ /dev/null
-NAME Test
-DESCRIPTION 'Tree Test'
-EXETYPE WINDOWS
-STUB 'WINSTUB.EXE'
-CODE PRELOAD MOVEABLE DISCARDABLE
-DATA PRELOAD MOVEABLE MULTIPLE
-HEAPSIZE 1024
-STACKSIZE 16192
+++ /dev/null
-///////////////////////////////////////////////////////////////////////////////
-// Name: test.h
-// Purpose: wxTreeLayout sample
-// Author: Julian Smart
-// Modified by:
-// Created: 7/4/98
-// RCS-ID: $Id$
-// Copyright: (c) 1998 Julian Smart
-// Licence: wxWindows licence
-///////////////////////////////////////////////////////////////////////////////
-
-// Define a new application
-class MyApp: public wxApp
-{
- public:
- bool OnInit();
- void TreeTest(wxTreeLayoutStored& tree, wxDC& dc);
-};
-
-DECLARE_APP(MyApp)
-
-class MyCanvas;
-
-class MyFrame: public wxFrame
-{
- public:
- MyCanvas *canvas;
- MyFrame(wxWindow *parent, const wxString& title, const wxPoint& pos, const wxSize& size);
-
- void OnCloseWindow(wxCloseEvent& event);
- void OnQuit(wxCommandEvent& event);
- void OnAbout(wxCommandEvent& event);
- void OnLeftRight(wxCommandEvent& event);
- void OnTopBottom(wxCommandEvent& event);
-
-DECLARE_EVENT_TABLE()
-};
-
-// Define a new canvas which can receive some events
-class MyCanvas: public wxScrolledWindow
-{
- public:
- MyCanvas(wxWindow *frame);
- void OnPaint(wxPaintEvent& event);
- void OnEvent(wxMouseEvent& event);
- void OnChar(wxKeyEvent& event);
-DECLARE_EVENT_TABLE()
-};
-
-#define TEST_QUIT 1
-#define TEST_ABOUT 2
-#define TEST_LEFT_RIGHT 3
-#define TEST_TOP_BOTTOM 4
-
+++ /dev/null
-tree_icn ICON "mondrian.ico"
-#include "wx/msw/wx.rc"
-
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: treelay.cpp
+// Purpose: wxTreeLayout sample
+// Author: Julian Smart
+// Modified by:
+// Created: 7/4/98
+// RCS-ID: $Id$
+// Copyright: (c) 1998 Julian Smart
+// 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/treelay.h"
+
+#include "treelay.h"
+
+wxTreeLayoutStored *myTree = NULL;
+
+// A macro needed for some compilers (AIX) that need 'main' to be defined
+// in the application itself.
+IMPLEMENT_APP(MyApp)
+
+// The `main program' equivalent, creating the windows and returning the
+// main frame
+bool MyApp::OnInit()
+{
+ // Create the main frame window
+ MyFrame* frame = new MyFrame(NULL, "Tree Test", wxPoint(-1, -1), wxSize(400, 550));
+
+ // Give it a status line
+ frame->CreateStatusBar(2);
+
+ // Give it an icon
+#ifdef __WINDOWS__
+ wxIcon icon("tree_icn");
+ frame->SetIcon(icon);
+#endif
+
+ // Make a menubar
+ wxMenu *file_menu = new wxMenu;
+ file_menu->Append(TEST_LEFT_RIGHT, "&Left to right", "Redraw left to right");
+ file_menu->Append(TEST_TOP_BOTTOM, "&Top to bottom", "Redraw top to bottom");
+ file_menu->AppendSeparator();
+ file_menu->Append(TEST_QUIT, "E&xit", "Quit program");
+
+ wxMenu *help_menu = new wxMenu;
+ help_menu->Append(TEST_ABOUT, "&About", "About Tree Test");
+
+ wxMenuBar* menu_bar = new wxMenuBar;
+
+ menu_bar->Append(file_menu, "&File");
+ menu_bar->Append(help_menu, "&Help");
+
+ // Associate the menu bar with the frame
+ frame->SetMenuBar(menu_bar);
+
+ MyCanvas *canvas = new MyCanvas(frame);
+
+ // Give it scrollbars: the virtual canvas is 20 * 50 = 1000 pixels in each direction
+ canvas->SetScrollbars(20, 20, 50, 50);
+ frame->canvas = canvas;
+
+ myTree = new wxTreeLayoutStored();
+
+ wxClientDC dc(canvas);
+ wxFont font(10, wxROMAN, wxNORMAL, wxBOLD);
+ dc.SetFont(font);
+ TreeTest(*myTree, dc);
+
+ frame->Show(TRUE);
+
+ frame->SetStatusText("Hello, tree!");
+
+ // Return the main frame window
+ return TRUE;
+}
+
+void MyApp::TreeTest(wxTreeLayoutStored& tree, wxDC& dc)
+{
+ tree.Initialize(200);
+
+ tree.AddChild("animal");
+ tree.AddChild("mammal", "animal");
+ tree.AddChild("insect", "animal");
+ tree.AddChild("bird", "animal");
+
+ tree.AddChild("man", "mammal");
+ tree.AddChild("cat", "mammal");
+ tree.AddChild("dog", "mammal");
+ tree.AddChild("giraffe", "mammal");
+ tree.AddChild("elephant", "mammal");
+ tree.AddChild("donkey", "mammal");
+ tree.AddChild("horse", "mammal");
+
+ tree.AddChild("fido", "dog");
+ tree.AddChild("domestic cat", "cat");
+ tree.AddChild("lion", "cat");
+ tree.AddChild("tiger", "cat");
+ tree.AddChild("felix", "domestic cat");
+ tree.AddChild("socks", "domestic cat");
+
+ tree.AddChild("beetle", "insect");
+ tree.AddChild("earwig", "insect");
+ tree.AddChild("eagle", "bird");
+ tree.AddChild("bluetit", "bird");
+ tree.AddChild("sparrow", "bird");
+ tree.AddChild("blackbird", "bird");
+ tree.AddChild("emu", "bird");
+ tree.AddChild("crow", "bird");
+
+ tree.DoLayout(dc);
+}
+
+BEGIN_EVENT_TABLE(MyFrame, wxFrame)
+ EVT_MENU(TEST_QUIT, MyFrame::OnQuit)
+ EVT_MENU(TEST_ABOUT, MyFrame::OnAbout)
+ EVT_MENU(TEST_LEFT_RIGHT, MyFrame::OnLeftRight)
+ EVT_MENU(TEST_TOP_BOTTOM, MyFrame::OnTopBottom)
+ EVT_CLOSE(MyFrame::OnCloseWindow)
+END_EVENT_TABLE()
+
+// Define my frame constructor
+MyFrame::MyFrame(wxWindow *parent, const wxString& title, const wxPoint& pos, const wxSize& size):
+ wxFrame(parent, -1, title, pos, size)
+{
+}
+
+void MyFrame::OnQuit(wxCommandEvent& event)
+{
+ Close(TRUE);
+}
+
+void MyFrame::OnLeftRight(wxCommandEvent& event)
+{
+ if (myTree)
+ {
+ myTree->SetOrientation(FALSE);
+ wxClientDC dc(canvas);
+ wxFont font(10, wxROMAN, wxNORMAL, wxBOLD);
+ dc.SetFont(font);
+ wxGetApp().TreeTest(*myTree, dc);
+ canvas->Refresh();
+ }
+}
+
+void MyFrame::OnTopBottom(wxCommandEvent& event)
+{
+ if (myTree)
+ {
+ myTree->SetOrientation(TRUE);
+ wxClientDC dc(canvas);
+ wxFont font(10, wxROMAN, wxNORMAL, wxBOLD);
+ dc.SetFont(font);
+ wxGetApp().TreeTest(*myTree, dc);
+ canvas->Refresh();
+ }
+}
+
+void MyFrame::OnAbout(wxCommandEvent& event)
+{
+ (void)wxMessageBox("wxWindows tree library demo Vsn 2.0\nAuthor: Julian Smart (c) 1998", "About tree test");
+}
+
+void MyFrame::OnCloseWindow(wxCloseEvent& event)
+{
+ Destroy();
+}
+
+BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow)
+ EVT_PAINT(MyCanvas::OnPaint)
+END_EVENT_TABLE()
+
+// Define a constructor for my canvas
+MyCanvas::MyCanvas(wxWindow *parent):
+ wxScrolledWindow(parent, -1)
+{
+ SetBackgroundColour(*wxWHITE);
+}
+
+// Define the repainting behaviour
+void MyCanvas::OnPaint(wxPaintEvent& event)
+{
+ wxPaintDC dc(this);
+ PrepareDC(dc);
+ if (myTree)
+ {
+ wxFont font(10, wxROMAN, wxNORMAL, wxBOLD);
+ dc.SetFont(font);
+ myTree->Draw(dc);
+ }
+}
+
--- /dev/null
+NAME Treelay
+DESCRIPTION 'Tree Layout Test'
+EXETYPE WINDOWS
+STUB 'WINSTUB.EXE'
+CODE PRELOAD MOVEABLE DISCARDABLE
+DATA PRELOAD MOVEABLE MULTIPLE
+HEAPSIZE 1024
+STACKSIZE 16192
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: treelay.h
+// Purpose: wxTreeLayout sample
+// Author: Julian Smart
+// Modified by:
+// Created: 7/4/98
+// RCS-ID: $Id$
+// Copyright: (c) 1998 Julian Smart
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// Define a new application
+class MyApp: public wxApp
+{
+ public:
+ bool OnInit();
+ void TreeTest(wxTreeLayoutStored& tree, wxDC& dc);
+};
+
+DECLARE_APP(MyApp)
+
+class MyCanvas;
+
+class MyFrame: public wxFrame
+{
+ public:
+ MyCanvas *canvas;
+ MyFrame(wxWindow *parent, const wxString& title, const wxPoint& pos, const wxSize& size);
+
+ void OnCloseWindow(wxCloseEvent& event);
+ void OnQuit(wxCommandEvent& event);
+ void OnAbout(wxCommandEvent& event);
+ void OnLeftRight(wxCommandEvent& event);
+ void OnTopBottom(wxCommandEvent& event);
+
+DECLARE_EVENT_TABLE()
+};
+
+// Define a new canvas which can receive some events
+class MyCanvas: public wxScrolledWindow
+{
+ public:
+ MyCanvas(wxWindow *frame);
+ void OnPaint(wxPaintEvent& event);
+ void OnEvent(wxMouseEvent& event);
+ void OnChar(wxKeyEvent& event);
+DECLARE_EVENT_TABLE()
+};
+
+#define TEST_QUIT 1
+#define TEST_ABOUT 2
+#define TEST_LEFT_RIGHT 3
+#define TEST_TOP_BOTTOM 4
+
--- /dev/null
+tree_icn ICON "mondrian.ico"
+#include "wx/msw/wx.rc"
+