-#
-# File: makefile.unx
-# Author: Julian Smart
-# Created: 1998
-# Updated:
-# Copyright: (c) 1998 Julian Smart
-#
-# "%W% %G%"
-#
-# Makefile for splitter example (UNIX).
+# Purpose: makefile for splitter example (UNIX).
+# Created: 2000-03-15
top_srcdir = @top_srcdir@/..
top_builddir = ../..
program_dir = samples/splitter
-PROGRAM=test
+PROGRAM=splitter
OBJECTS=$(PROGRAM).o
include ../../src/makeprog.env
-
-#
-# File: makefile.b32
-# Author: Julian Smart
-# Created: 1999
-# Updated:
-# Copyright:
-#
-# Makefile : Builds sample for 32-bit BC++
+# Purpose: makefile for splitter example (BC++ 32bit)
+# Created: 2000-03-15
WXDIR = $(WXWIN)
-TARGET=test
+TARGET=splitter
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 splitter 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=splitter
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 splitter example (VC++ 1.5x)
+# Created: 2000-03-15
WXDIR = $(WXWIN)
-TARGET=test
-OBJECTS = $(TARGET).obj
+TARGET=splitter
+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 splitter example (Cygwin/Mingw32)
+# Created: #03.01.00
WXDIR = ../..
-TARGET=test
+TARGET=splitter
OBJECTS = $(TARGET).o
-include $(WXDIR)/src/makeprog.g95
+include $(WXDIR)\src\makeprog.g95
--- /dev/null
+# Purpose: makefile for splitter example (Symantec C++)
+# Created: 2000-03-15
+
+WXDIR = $(WXWIN)
+WXLIB = $(WXDIR)\lib\wx.lib
+INCDIR = $(WXDIR)\include
+INCLUDE=$(INCDIR)
+TARGET=splitter
+
+include $(WXDIR)\src\makesc.env
+
+splitter.exe: splitter.obj $(DEFFILE) splitter.res
+ *$(CC) $(LDFLAGS) -o$@ $** $(LIBS)
+ *$(RC) -k splitter.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 splitter example (Salford C++)
+# Created: 2000-03-15
+
+PROGRAM = splitter
+OBJECTS = $(PROGRAM).obj
+
+include ..\..\src\makeprog.sl
+
+all: wx $(TARGET)
+
+wx:
+ cd $(WXDIR)\src\msw ^ mk32 -f makefile.sl all
+ cd $(WXDIR)\samples\splitter
+
--- /dev/null
+# Purpose: makefile for splitter 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)/splitter.$(OBJSUFF) $(OBJDIR)/splitter.$(OBJSUFF)
+
+all: $(OBJDIR) splitter$(GUISUFFIX)$(EXESUFF)
+
+wx:
+
+$(OBJDIR):
+ mkdir $(OBJDIR)
+
+splitter$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(WXLIB)
+ $(CC) $(LDFLAGS) -o splitter$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS)
+
+$(OBJDIR)/splitter.$(OBJSUFF): splitter.$(SRCSUFF)
+ $(CC) -c $(CPPFLAGS) -o $@ splitter.$(SRCSUFF)
+
+splitter.c: splitter.rc
+ $(RESCOMP) $(RCINPUTSWITCH) splitter.rc $(RCOUTPUTSWITCH) splitter.c $(RESFLAGS)
+
+$(OBJDIR)/splitter.$(OBJSUFF): splitter.c
+ $(CC) -c $(CPPFLAGS) -o $@ splitter.c
+
+#$(OBJDIR)/splitter.o: splitter.rc
+# $(RESCOMP) $(RCINPUTSWITCH) splitter.rc $(RCOUTPUTSWITCH) $(OBJDIR)/splitter.o $(RESFLAGS)
+
+clean:
+ rm -f $(OBJECTS) splitter$(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 splitter example (Unix)
+# Created: 2000-03-15
CC = gcc
-PROGRAM = test
+PROGRAM = splitter
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 splitter example (VC++ 32bit)
+# Created: 2000-03-15
# Set WXDIR for your system
WXDIR = $(WXWIN)
-PROGRAM=test
+PROGRAM=splitter
OBJECTS = $(PROGRAM).obj
!include $(WXDIR)\src\makeprog.vc
-#
-# Makefile for WATCOM
-#
-# Created by Julian Smart, January 1999
-#
-#
+# Purpose: makefile for splitter example (Watcom)
+# Created: 2000-03-15
WXDIR = $(%WXWIN)
-PROGRAM = test
+PROGRAM = splitter
OBJECTS = $(PROGRAM).obj
!include $(WXDIR)\src\makeprog.wat
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: splitter.cpp
+// Purpose: wxSplitterWindow sample
+// Author: Julian Smart
+// Modified by:
+// Created: 04/01/98
+// RCS-ID: $Id$
+// Copyright: (c) Julian Smart and Markus Holzem
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+// For compilers that support precompilation, includes "wx/wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#include "wx/wx.h"
+#endif
+
+#include "wx/splitter.h"
+
+class MyApp;
+class MyFrame;
+class MyCanvas;
+
+class MyApp: public wxApp
+{
+public:
+ bool OnInit();
+};
+
+class MySplitterWindow : public wxSplitterWindow
+{
+public:
+ MySplitterWindow(wxFrame *parent, wxWindowID id)
+ : wxSplitterWindow(parent, id, wxDefaultPosition, wxDefaultSize, wxSP_3D | wxSP_LIVE_UPDATE)
+ {
+ m_frame = parent;
+ }
+
+ virtual bool OnSashPositionChange(int newSashPosition)
+ {
+ if ( !wxSplitterWindow::OnSashPositionChange(newSashPosition) )
+ return FALSE;
+
+ wxString str;
+ str.Printf( _T("Sash position = %d"), newSashPosition);
+ m_frame->SetStatusText(str);
+
+ return TRUE;
+ }
+
+private:
+ wxFrame *m_frame;
+};
+
+class MyFrame: public wxFrame
+{
+public:
+ MyFrame(wxFrame* frame, const wxString& title, const wxPoint& pos, const wxSize& size);
+ virtual ~MyFrame();
+
+ // Menu commands
+ void SplitHorizontal(wxCommandEvent& event);
+ void SplitVertical(wxCommandEvent& event);
+ void Unsplit(wxCommandEvent& event);
+ void SetMinSize(wxCommandEvent& event);
+ void Quit(wxCommandEvent& event);
+
+ // Menu command update functions
+ void UpdateUIHorizontal(wxUpdateUIEvent& event);
+ void UpdateUIVertical(wxUpdateUIEvent& event);
+ void UpdateUIUnsplit(wxUpdateUIEvent& event);
+
+private:
+ void UpdatePosition();
+
+ wxMenu* fileMenu;
+ wxMenuBar* menuBar;
+ MyCanvas* m_leftCanvas;
+ MyCanvas* m_rightCanvas;
+ MySplitterWindow* m_splitter;
+
+DECLARE_EVENT_TABLE()
+};
+
+class MyCanvas: public wxScrolledWindow
+{
+public:
+ MyCanvas(wxWindow* parent, wxWindowID id, int x, int y, int w, int h, const wxString &name);
+ virtual ~MyCanvas();
+
+ virtual void OnDraw(wxDC& dc);
+
+DECLARE_EVENT_TABLE()
+};
+
+BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow)
+END_EVENT_TABLE()
+
+// ID for the menu commands
+enum
+{
+ SPLIT_QUIT,
+ SPLIT_HORIZONTAL,
+ SPLIT_VERTICAL,
+ SPLIT_UNSPLIT,
+ SPLIT_SETMINSIZE
+};
+
+// Window ids
+#define SPLITTER_WINDOW 100
+#define SPLITTER_FRAME 101
+#define CANVAS1 102
+#define CANVAS2 103
+
+IMPLEMENT_APP(MyApp)
+
+bool MyApp::OnInit(void)
+{
+ MyFrame* frame = new MyFrame((wxFrame *) NULL, "wxSplitterWindow Example",
+ wxPoint(50, 50), wxSize(420, 300));
+
+ // Show the frame
+ frame->Show(TRUE);
+
+ SetTopWindow(frame);
+
+ return TRUE;
+}
+
+BEGIN_EVENT_TABLE(MyFrame, wxFrame)
+ EVT_MENU(SPLIT_VERTICAL, MyFrame::SplitVertical)
+ EVT_MENU(SPLIT_HORIZONTAL, MyFrame::SplitHorizontal)
+ EVT_MENU(SPLIT_UNSPLIT, MyFrame::Unsplit)
+ EVT_MENU(SPLIT_QUIT, MyFrame::Quit)
+ EVT_MENU(SPLIT_SETMINSIZE, MyFrame::SetMinSize)
+
+ EVT_UPDATE_UI(SPLIT_VERTICAL, MyFrame::UpdateUIVertical)
+ EVT_UPDATE_UI(SPLIT_HORIZONTAL, MyFrame::UpdateUIHorizontal)
+ EVT_UPDATE_UI(SPLIT_UNSPLIT, MyFrame::UpdateUIUnsplit)
+END_EVENT_TABLE()
+
+// My frame constructor
+MyFrame::MyFrame(wxFrame* frame, const wxString& title, const wxPoint& pos, const wxSize& size):
+ wxFrame(frame, SPLITTER_FRAME, title, pos, size)
+{
+ CreateStatusBar(2);
+
+ // Make a menubar
+ fileMenu = new wxMenu;
+ fileMenu->Append(SPLIT_VERTICAL, "Split &Vertically\tCtrl-V", "Split vertically");
+ fileMenu->Append(SPLIT_HORIZONTAL, "Split &Horizontally\tCtrl-H", "Split horizontally");
+ fileMenu->Append(SPLIT_UNSPLIT, "&Unsplit\tCtrl-U", "Unsplit");
+ fileMenu->AppendSeparator();
+ fileMenu->Append(SPLIT_SETMINSIZE, "Set &min size", "Set minimum pane size");
+ fileMenu->AppendSeparator();
+ fileMenu->Append(SPLIT_QUIT, "E&xit\tAlt-X", "Exit");
+
+ menuBar = new wxMenuBar;
+ menuBar->Append(fileMenu, "&File");
+
+ SetMenuBar(menuBar);
+
+ m_splitter = new MySplitterWindow(this, SPLITTER_WINDOW);
+
+ wxSize sz( m_splitter->GetSize() );
+ wxLogMessage( "Initial splitter size: %d %d\n", (int)sz.x, (int)sz.y );
+
+ m_leftCanvas = new MyCanvas(m_splitter, CANVAS1, 0, 0, 400, 400, "Test1" );
+ m_leftCanvas->SetBackgroundColour(*wxRED);
+ m_leftCanvas->SetScrollbars(20, 20, 50, 50);
+ m_leftCanvas->SetCursor(wxCursor(wxCURSOR_MAGNIFIER));
+
+ m_rightCanvas = new MyCanvas(m_splitter, CANVAS2, 0, 0, 400, 400, "Test2" );
+ m_rightCanvas->SetBackgroundColour(*wxCYAN);
+ m_rightCanvas->SetScrollbars(20, 20, 50, 50);
+ m_rightCanvas->Show(FALSE);
+
+ m_splitter->Initialize(m_leftCanvas);
+ SetStatusText("Min pane size = 0", 1);
+}
+
+MyFrame::~MyFrame()
+{
+}
+
+void MyFrame::Quit(wxCommandEvent& WXUNUSED(event) )
+{
+ Close(TRUE);
+}
+
+void MyFrame::SplitHorizontal(wxCommandEvent& WXUNUSED(event) )
+{
+ if ( m_splitter->IsSplit() )
+ m_splitter->Unsplit();
+ m_leftCanvas->Show(TRUE);
+ m_rightCanvas->Show(TRUE);
+ m_splitter->SplitHorizontally( m_leftCanvas, m_rightCanvas );
+ UpdatePosition();
+}
+
+void MyFrame::SplitVertical(wxCommandEvent& WXUNUSED(event) )
+{
+ if ( m_splitter->IsSplit() )
+ m_splitter->Unsplit();
+ m_leftCanvas->Show(TRUE);
+ m_rightCanvas->Show(TRUE);
+ m_splitter->SplitVertically( m_leftCanvas, m_rightCanvas );
+ UpdatePosition();
+}
+
+void MyFrame::Unsplit(wxCommandEvent& WXUNUSED(event) )
+{
+ if ( m_splitter->IsSplit() )
+ m_splitter->Unsplit();
+ SetStatusText("No splitter");
+}
+
+void MyFrame::SetMinSize(wxCommandEvent& WXUNUSED(event) )
+{
+ wxString str;
+ str.Printf( _T("%d"), m_splitter->GetMinimumPaneSize());
+ str = wxGetTextFromUser("Enter minimal size for panes:", "", str, this);
+ if ( str.IsEmpty() )
+ return;
+
+ int minsize = wxStrtol( str, (wxChar**)NULL, 10 );
+ m_splitter->SetMinimumPaneSize(minsize);
+ str.Printf( _T("Min pane size = %d"), minsize);
+ SetStatusText(str, 1);
+}
+
+void MyFrame::UpdateUIHorizontal(wxUpdateUIEvent& event)
+{
+ event.Enable( ( (!m_splitter->IsSplit()) || (m_splitter->GetSplitMode() != wxSPLIT_HORIZONTAL) ) );
+}
+
+void MyFrame::UpdateUIVertical(wxUpdateUIEvent& event)
+{
+ event.Enable( ( (!m_splitter->IsSplit()) || (m_splitter->GetSplitMode() != wxSPLIT_VERTICAL) ) );
+}
+
+void MyFrame::UpdateUIUnsplit(wxUpdateUIEvent& event)
+{
+ event.Enable( m_splitter->IsSplit() );
+}
+
+void MyFrame::UpdatePosition()
+{
+ wxString str;
+ str.Printf( _("Sash position = %d"), m_splitter->GetSashPosition());
+ SetStatusText(str);
+}
+
+MyCanvas::MyCanvas(wxWindow* parent, wxWindowID id, int x, int y, int w, int h, const wxString &name ) :
+ wxScrolledWindow(parent, id, wxPoint(x, y), wxSize(w, h), 0, name )
+{
+}
+
+MyCanvas::~MyCanvas()
+{
+}
+
+void MyCanvas::OnDraw(wxDC& dc)
+{
+ dc.SetPen(*wxBLACK_PEN);
+ dc.DrawLine(0, 0, 100, 100);
+
+ dc.SetBackgroundMode(wxTRANSPARENT);
+ dc.DrawText("Testing", 50, 50);
+
+ dc.SetPen(*wxRED_PEN);
+ dc.SetBrush(*wxGREEN_BRUSH);
+ dc.DrawRectangle(120, 120, 100, 80);
+}
--- /dev/null
+NAME Splitter
+DESCRIPTION 'wxSplitterWindow Test'
+EXETYPE WINDOWS
+STUB 'WINSTUB.EXE'
+CODE PRELOAD MOVEABLE DISCARDABLE
+DATA PRELOAD MOVEABLE MULTIPLE
+HEAPSIZE 1024
+STACKSIZE 16192
--- /dev/null
+mondrian ICON "mondrian.ico"
+
+#include "wx/msw/wx.rc"
+
+++ /dev/null
-/////////////////////////////////////////////////////////////////////////////
-// Name: m_splitter.cpp
-// Purpose: wxSplitterWindow sample
-// Author: Julian Smart
-// Modified by:
-// Created: 04/01/98
-// RCS-ID: $Id$
-// Copyright: (c) Julian Smart and Markus Holzem
-// Licence: wxWindows license
-/////////////////////////////////////////////////////////////////////////////
-
-// For compilers that support precompilation, includes "wx/wx.h".
-#include "wx/wxprec.h"
-
-#ifdef __BORLANDC__
-#pragma hdrstop
-#endif
-
-#ifndef WX_PRECOMP
-#include "wx/wx.h"
-#endif
-
-#include "wx/splitter.h"
-
-class MyApp;
-class MyFrame;
-class MyCanvas;
-
-class MyApp: public wxApp
-{
-public:
- bool OnInit();
-};
-
-class MySplitterWindow : public wxSplitterWindow
-{
-public:
- MySplitterWindow(wxFrame *parent, wxWindowID id)
- : wxSplitterWindow(parent, id, wxDefaultPosition, wxDefaultSize, wxSP_3D | wxSP_LIVE_UPDATE)
- {
- m_frame = parent;
- }
-
- virtual bool OnSashPositionChange(int newSashPosition)
- {
- if ( !wxSplitterWindow::OnSashPositionChange(newSashPosition) )
- return FALSE;
-
- wxString str;
- str.Printf( _T("Sash position = %d"), newSashPosition);
- m_frame->SetStatusText(str);
-
- return TRUE;
- }
-
-private:
- wxFrame *m_frame;
-};
-
-class MyFrame: public wxFrame
-{
-public:
- MyFrame(wxFrame* frame, const wxString& title, const wxPoint& pos, const wxSize& size);
- virtual ~MyFrame();
-
- // Menu commands
- void SplitHorizontal(wxCommandEvent& event);
- void SplitVertical(wxCommandEvent& event);
- void Unsplit(wxCommandEvent& event);
- void SetMinSize(wxCommandEvent& event);
- void Quit(wxCommandEvent& event);
-
- // Menu command update functions
- void UpdateUIHorizontal(wxUpdateUIEvent& event);
- void UpdateUIVertical(wxUpdateUIEvent& event);
- void UpdateUIUnsplit(wxUpdateUIEvent& event);
-
-private:
- void UpdatePosition();
-
- wxMenu* fileMenu;
- wxMenuBar* menuBar;
- MyCanvas* m_leftCanvas;
- MyCanvas* m_rightCanvas;
- MySplitterWindow* m_splitter;
-
-DECLARE_EVENT_TABLE()
-};
-
-class MyCanvas: public wxScrolledWindow
-{
-public:
- MyCanvas(wxWindow* parent, wxWindowID id, int x, int y, int w, int h, const wxString &name);
- virtual ~MyCanvas();
-
- virtual void OnDraw(wxDC& dc);
-
-DECLARE_EVENT_TABLE()
-};
-
-BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow)
-END_EVENT_TABLE()
-
-// ID for the menu commands
-enum
-{
- SPLIT_QUIT,
- SPLIT_HORIZONTAL,
- SPLIT_VERTICAL,
- SPLIT_UNSPLIT,
- SPLIT_SETMINSIZE
-};
-
-// Window ids
-#define SPLITTER_WINDOW 100
-#define SPLITTER_FRAME 101
-#define CANVAS1 102
-#define CANVAS2 103
-
-IMPLEMENT_APP(MyApp)
-
-bool MyApp::OnInit(void)
-{
- MyFrame* frame = new MyFrame((wxFrame *) NULL, "wxSplitterWindow Example",
- wxPoint(50, 50), wxSize(420, 300));
-
- // Show the frame
- frame->Show(TRUE);
-
- SetTopWindow(frame);
-
- return TRUE;
-}
-
-BEGIN_EVENT_TABLE(MyFrame, wxFrame)
- EVT_MENU(SPLIT_VERTICAL, MyFrame::SplitVertical)
- EVT_MENU(SPLIT_HORIZONTAL, MyFrame::SplitHorizontal)
- EVT_MENU(SPLIT_UNSPLIT, MyFrame::Unsplit)
- EVT_MENU(SPLIT_QUIT, MyFrame::Quit)
- EVT_MENU(SPLIT_SETMINSIZE, MyFrame::SetMinSize)
-
- EVT_UPDATE_UI(SPLIT_VERTICAL, MyFrame::UpdateUIVertical)
- EVT_UPDATE_UI(SPLIT_HORIZONTAL, MyFrame::UpdateUIHorizontal)
- EVT_UPDATE_UI(SPLIT_UNSPLIT, MyFrame::UpdateUIUnsplit)
-END_EVENT_TABLE()
-
-// My frame constructor
-MyFrame::MyFrame(wxFrame* frame, const wxString& title, const wxPoint& pos, const wxSize& size):
- wxFrame(frame, SPLITTER_FRAME, title, pos, size)
-{
- CreateStatusBar(2);
-
- // Make a menubar
- fileMenu = new wxMenu;
- fileMenu->Append(SPLIT_VERTICAL, "Split &Vertically\tCtrl-V", "Split vertically");
- fileMenu->Append(SPLIT_HORIZONTAL, "Split &Horizontally\tCtrl-H", "Split horizontally");
- fileMenu->Append(SPLIT_UNSPLIT, "&Unsplit\tCtrl-U", "Unsplit");
- fileMenu->AppendSeparator();
- fileMenu->Append(SPLIT_SETMINSIZE, "Set &min size", "Set minimum pane size");
- fileMenu->AppendSeparator();
- fileMenu->Append(SPLIT_QUIT, "E&xit\tAlt-X", "Exit");
-
- menuBar = new wxMenuBar;
- menuBar->Append(fileMenu, "&File");
-
- SetMenuBar(menuBar);
-
- m_splitter = new MySplitterWindow(this, SPLITTER_WINDOW);
-
- wxSize sz( m_splitter->GetSize() );
- wxLogMessage( "Initial splitter size: %d %d\n", (int)sz.x, (int)sz.y );
-
- m_leftCanvas = new MyCanvas(m_splitter, CANVAS1, 0, 0, 400, 400, "Test1" );
- m_leftCanvas->SetBackgroundColour(*wxRED);
- m_leftCanvas->SetScrollbars(20, 20, 50, 50);
- m_leftCanvas->SetCursor(wxCursor(wxCURSOR_MAGNIFIER));
-
- m_rightCanvas = new MyCanvas(m_splitter, CANVAS2, 0, 0, 400, 400, "Test2" );
- m_rightCanvas->SetBackgroundColour(*wxCYAN);
- m_rightCanvas->SetScrollbars(20, 20, 50, 50);
- m_rightCanvas->Show(FALSE);
-
- m_splitter->Initialize(m_leftCanvas);
- SetStatusText("Min pane size = 0", 1);
-}
-
-MyFrame::~MyFrame()
-{
-}
-
-void MyFrame::Quit(wxCommandEvent& WXUNUSED(event) )
-{
- Close(TRUE);
-}
-
-void MyFrame::SplitHorizontal(wxCommandEvent& WXUNUSED(event) )
-{
- if ( m_splitter->IsSplit() )
- m_splitter->Unsplit();
- m_leftCanvas->Show(TRUE);
- m_rightCanvas->Show(TRUE);
- m_splitter->SplitHorizontally( m_leftCanvas, m_rightCanvas );
- UpdatePosition();
-}
-
-void MyFrame::SplitVertical(wxCommandEvent& WXUNUSED(event) )
-{
- if ( m_splitter->IsSplit() )
- m_splitter->Unsplit();
- m_leftCanvas->Show(TRUE);
- m_rightCanvas->Show(TRUE);
- m_splitter->SplitVertically( m_leftCanvas, m_rightCanvas );
- UpdatePosition();
-}
-
-void MyFrame::Unsplit(wxCommandEvent& WXUNUSED(event) )
-{
- if ( m_splitter->IsSplit() )
- m_splitter->Unsplit();
- SetStatusText("No splitter");
-}
-
-void MyFrame::SetMinSize(wxCommandEvent& WXUNUSED(event) )
-{
- wxString str;
- str.Printf( _T("%d"), m_splitter->GetMinimumPaneSize());
- str = wxGetTextFromUser("Enter minimal size for panes:", "", str, this);
- if ( str.IsEmpty() )
- return;
-
- int minsize = wxStrtol( str, (wxChar**)NULL, 10 );
- m_splitter->SetMinimumPaneSize(minsize);
- str.Printf( _T("Min pane size = %d"), minsize);
- SetStatusText(str, 1);
-}
-
-void MyFrame::UpdateUIHorizontal(wxUpdateUIEvent& event)
-{
- event.Enable( ( (!m_splitter->IsSplit()) || (m_splitter->GetSplitMode() != wxSPLIT_HORIZONTAL) ) );
-}
-
-void MyFrame::UpdateUIVertical(wxUpdateUIEvent& event)
-{
- event.Enable( ( (!m_splitter->IsSplit()) || (m_splitter->GetSplitMode() != wxSPLIT_VERTICAL) ) );
-}
-
-void MyFrame::UpdateUIUnsplit(wxUpdateUIEvent& event)
-{
- event.Enable( m_splitter->IsSplit() );
-}
-
-void MyFrame::UpdatePosition()
-{
- wxString str;
- str.Printf( _("Sash position = %d"), m_splitter->GetSashPosition());
- SetStatusText(str);
-}
-
-MyCanvas::MyCanvas(wxWindow* parent, wxWindowID id, int x, int y, int w, int h, const wxString &name ) :
- wxScrolledWindow(parent, id, wxPoint(x, y), wxSize(w, h), 0, name )
-{
-}
-
-MyCanvas::~MyCanvas()
-{
-}
-
-void MyCanvas::OnDraw(wxDC& dc)
-{
- dc.SetPen(*wxBLACK_PEN);
- dc.DrawLine(0, 0, 100, 100);
-
- dc.SetBackgroundMode(wxTRANSPARENT);
- dc.DrawText("Testing", 50, 50);
-
- dc.SetPen(*wxRED_PEN);
- dc.SetBrush(*wxGREEN_BRUSH);
- dc.DrawRectangle(120, 120, 100, 80);
-}
+++ /dev/null
-NAME Test
-DESCRIPTION 'wxTableWindow Test'
-EXETYPE WINDOWS
-STUB 'WINSTUB.EXE'
-CODE PRELOAD MOVEABLE DISCARDABLE
-DATA PRELOAD MOVEABLE MULTIPLE
-HEAPSIZE 1024
-STACKSIZE 16192
+++ /dev/null
-mondrian ICON "mondrian.ico"
-
-#include "wx/msw/wx.rc"
-