]> git.saurik.com Git - wxWidgets.git/commitdiff
renamed tab sample
authorRon Lee <ron@debian.org>
Tue, 14 Mar 2000 18:58:22 +0000 (18:58 +0000)
committerRon Lee <ron@debian.org>
Tue, 14 Mar 2000 18:58:22 +0000 (18:58 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6709 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

19 files changed:
samples/tab/Makefile.in [new file with mode: 0644]
samples/tab/makefile.b32
samples/tab/makefile.bcc
samples/tab/makefile.dos
samples/tab/makefile.g95
samples/tab/makefile.sc [new file with mode: 0644]
samples/tab/makefile.sl [new file with mode: 0644]
samples/tab/makefile.twn [new file with mode: 0644]
samples/tab/makefile.unx
samples/tab/makefile.vc
samples/tab/makefile.wat
samples/tab/tab.cpp [new file with mode: 0644]
samples/tab/tab.def [new file with mode: 0644]
samples/tab/tab.h [new file with mode: 0644]
samples/tab/tab.rc [new file with mode: 0644]
samples/tab/test.cpp [deleted file]
samples/tab/test.def [deleted file]
samples/tab/test.h [deleted file]
samples/tab/test.rc [deleted file]

diff --git a/samples/tab/Makefile.in b/samples/tab/Makefile.in
new file mode 100644 (file)
index 0000000..26b17cd
--- /dev/null
@@ -0,0 +1,13 @@
+# Purpose: makefile for tab example (UNIX).
+# Created: 2000-03-15
+
+top_srcdir = @top_srcdir@/..
+top_builddir = ../..
+program_dir = samples/tab
+
+PROGRAM=tab
+
+OBJECTS=$(PROGRAM).o
+
+include ../../src/makeprog.env
+
index 95ddc80d76f728d37352e263489f8c331912bab8..b47c6f67b73ef3aa4043630e813dea72d27f34fe 100644 (file)
@@ -1,15 +1,9 @@
-#
-# File:                makefile.b32
-# Author:      Julian Smart
-# Created:     1999
-# Updated:     
-# Copyright:
-#
-# Makefile : Builds sample for 32-bit BC++
+# Purpose: makefile for tab example (BC++ 32bit)
+# Created: 2000-03-15
 
 WXDIR = $(WXWIN)
 
-TARGET=test
+TARGET=tab
 OBJECTS = $(TARGET).obj
 
 !include $(WXDIR)\src\makeprog.b32
index 669f01905aefc544ba0a51607dfa612d1f849b50..3692ea19d23225076c96658ca5df92621accc131 100644 (file)
@@ -1,10 +1,5 @@
-#
-# File:                makefile.bcc
-# Author:      Julian Smart
-# Created:     1998
-# Updated:     
-#
-# Builds a BC++ 16-bit sample
+# Purpose: makefile for tab 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=tab
 OBJECTS=$(TARGET).obj
 
 !include $(WXDIR)\src\makeprog.bcc
index 13e3a4ce8eeef60898c11fc6c1f1a9e8f12374bd..495303219057d2bf5515359f4391c87f49b6af1d 100644 (file)
@@ -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 tab example (VC++ 1.5x)
+# Created: 2000-03-15
 
 WXDIR = $(WXWIN)
 
-TARGET=test
-OBJECTS = $(TARGET).obj
+TARGET=tab
+OBJECTS=$(TARGET).obj
 
 !include $(WXDIR)\src\makeprog.msc
 
index b4a920f047f4d2d08d871efbbb5cc0cf207b6327..22604cb9ca4cafb79108194eef15df6b8fb0cdf2 100644 (file)
@@ -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 tab example (Cygwin/Mingw32)
+# Created: #03.01.00
 
 WXDIR = ../..
 
-TARGET=test
+TARGET=tab
 OBJECTS = $(TARGET).o
 
-include $(WXDIR)/src/makeprog.g95
+include $(WXDIR)\src\makeprog.g95
 
diff --git a/samples/tab/makefile.sc b/samples/tab/makefile.sc
new file mode 100644 (file)
index 0000000..1c9f969
--- /dev/null
@@ -0,0 +1,37 @@
+# Purpose: makefile for tab example (Symantec C++)
+# Created: 2000-03-15
+
+WXDIR = $(WXWIN)
+WXLIB = $(WXDIR)\lib\wx.lib
+INCDIR = $(WXDIR)\include
+INCLUDE=$(INCDIR)
+TARGET=tab
+
+include $(WXDIR)\src\makesc.env
+
+tab.exe: tab.obj $(DEFFILE) tab.res
+       *$(CC) $(LDFLAGS) -o$@ $** $(LIBS)
+    *$(RC) -k tab.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/tab/makefile.sl b/samples/tab/makefile.sl
new file mode 100644 (file)
index 0000000..b895a0e
--- /dev/null
@@ -0,0 +1,14 @@
+# Purpose: makefile for tab example (Salford C++)
+# Created: 2000-03-15
+
+PROGRAM = tab
+OBJECTS = $(PROGRAM).obj
+
+include ..\..\src\makeprog.sl
+
+all:        wx $(TARGET)
+
+wx:
+    cd $(WXDIR)\src\msw ^ mk32 -f makefile.sl all
+    cd $(WXDIR)\samples\tab
+
diff --git a/samples/tab/makefile.twn b/samples/tab/makefile.twn
new file mode 100644 (file)
index 0000000..8edbc91
--- /dev/null
@@ -0,0 +1,35 @@
+# Purpose: makefile for tab 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)/tab.$(OBJSUFF) $(OBJDIR)/tab.$(OBJSUFF)
+
+all:    $(OBJDIR) tab$(GUISUFFIX)$(EXESUFF)
+
+wx:
+
+$(OBJDIR):
+       mkdir $(OBJDIR)
+
+tab$(GUISUFFIX)$(EXESUFF):     $(OBJECTS) $(WXLIB)
+       $(CC) $(LDFLAGS) -o tab$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS)
+
+$(OBJDIR)/tab.$(OBJSUFF):      tab.$(SRCSUFF)
+       $(CC) -c $(CPPFLAGS) -o $@ tab.$(SRCSUFF)
+
+tab.c:  tab.rc
+       $(RESCOMP) $(RCINPUTSWITCH) tab.rc $(RCOUTPUTSWITCH) tab.c $(RESFLAGS)
+
+$(OBJDIR)/tab.$(OBJSUFF):      tab.c
+       $(CC) -c $(CPPFLAGS) -o $@ tab.c
+
+#$(OBJDIR)/tab.o:  tab.rc
+#      $(RESCOMP) $(RCINPUTSWITCH) tab.rc $(RCOUTPUTSWITCH) $(OBJDIR)/tab.o $(RESFLAGS)
+
+clean:
+       rm -f $(OBJECTS) tab$(GUISUFFIX).exe core *.rsc *.res
index 1c66f71f22bc9563887450d3043b6f18aa630924..c496a336b3a2d032cfc08e36c00ff20f37ee0cda 100644 (file)
@@ -1,17 +1,23 @@
-#
-# File:                makefile.unx
-# Author:      Julian Smart
-# Created:     1998
-# Updated:     
-# Copyright:   (c) 1998 Julian Smart
-#
-# "%W% %G%"
-#
-# Makefile for tab example (UNIX).
+# Purpose: makefile for tab example (Unix)
+# Created: 2000-03-15
 
-PROGRAM=test
+CC = gcc
 
-OBJECTS=$(PROGRAM).o
+PROGRAM = tab
 
-include ../../src/makeprog.env
+OBJECTS = $(PROGRAM).o
 
+# implementation
+
+.SUFFIXES:     .o .cpp
+
+.cpp.o :
+       $(CC) -c `wx-config --cflags` -o $@ $<
+
+all:    $(PROGRAM)
+
+$(PROGRAM):    $(OBJECTS)
+       $(CC) -o $(PROGRAM) $(OBJECTS) `wx-config --libs`
+
+clean:
+       rm -f *.o $(PROGRAM)
index 4ada748edad53c6917114d10b0dcd373f6ba8648..4e105a04c0b9bf16fd26c4572f19f1fe8cfb65f7 100644 (file)
@@ -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 tab example (VC++ 32bit)
+# Created: 2000-03-15
 
 # Set WXDIR for your system
 WXDIR = $(WXWIN)
 
-PROGRAM=test
+PROGRAM=tab
 OBJECTS = $(PROGRAM).obj
 
 !include $(WXDIR)\src\makeprog.vc
index 81a83e42a9fbbe144c5dfef0f52fae312124c84f..cab5746fd578bf74baa98b38fac3c680f8a82b3e 100644 (file)
@@ -1,13 +1,9 @@
-#
-# Makefile for WATCOM
-#
-# Created by Julian Smart, January 1999
-# 
-#
+# Purpose: makefile for tab example (Watcom)
+# Created: 2000-03-15
 
 WXDIR = $(%WXWIN)
 
-PROGRAM = test
+PROGRAM = tab
 OBJECTS = $(PROGRAM).obj
 
 !include $(WXDIR)\src\makeprog.wat
diff --git a/samples/tab/tab.cpp b/samples/tab/tab.cpp
new file mode 100644 (file)
index 0000000..13d24ec
--- /dev/null
@@ -0,0 +1,270 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        tab.cpp
+// Purpose:     Tab demo
+// Author:      Julian Smart
+// Modified by:
+// Created:     01/02/97
+// 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 "tab.h"
+
+// If 1, use a dialog. Otherwise use a frame.
+#define USE_TABBED_DIALOG 1
+
+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 *) "Tabbed Dialog", 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 *) "Tabbed Panel", wxPoint(-1, -1), wxSize(365, 390), wxDEFAULT_FRAME_STYLE);
+
+  return TRUE;
+#endif
+}
+
+void MyApp::InitTabView(wxPanelTabView* view, wxWindow* window)
+{
+  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);
+
+  wxRect rect;
+  rect.x = 5;
+  rect.y = 70;
+  // Could calculate the view width from the tab width and spacing,
+  // as below, but let's assume we have a fixed view width.
+//  rect.width = view->GetTabWidth()*4 + 3*view->GetHorizontalTabSpacing();
+  rect.width = 326;
+  rect.height = 250;
+  
+  view->SetViewRect(rect);
+
+  // Calculate the tab width for 4 tabs, based on a view width of 326 and
+  // the current horizontal spacing. Adjust the view width to exactly fit
+  // the tabs.
+  view->CalculateTabWidth(4, TRUE);
+
+  if (!view->AddTab(TEST_TAB_CAT,        wxString("Cat")))
+    return;
+
+  if (!view->AddTab(TEST_TAB_DOG,        wxString("Dog")))
+    return;
+  if (!view->AddTab(TEST_TAB_GUINEAPIG,  wxString("Guinea Pig")))
+    return;
+  if (!view->AddTab(TEST_TAB_GOAT,       wxString("Goat")))
+    return;
+  if (!view->AddTab(TEST_TAB_ANTEATER,   wxString("Ant-eater")))
+    return;
+  if (!view->AddTab(TEST_TAB_SHEEP,      wxString("Sheep")))
+    return;
+  if (!view->AddTab(TEST_TAB_COW,        wxString("Cow")))
+    return;
+  if (!view->AddTab(TEST_TAB_HORSE,      wxString("Horse")))
+    return;
+  if (!view->AddTab(TEST_TAB_PIG,        wxString("Pig")))
+    return;
+  if (!view->AddTab(TEST_TAB_OSTRICH,    wxString("Ostrich")))
+    return;
+  if (!view->AddTab(TEST_TAB_AARDVARK,   wxString("Aardvark")))
+    return;
+  if (!view->AddTab(TEST_TAB_HUMMINGBIRD,wxString("Hummingbird")))
+    return;
+    
+  // Add some panels
+  wxPanel *panel1 = new wxPanel(window, -1, wxPoint(rect.x + 20, rect.y + 10), wxSize(290, 220), wxTAB_TRAVERSAL);
+  (void)new wxButton(panel1, -1, "Press me", wxPoint(10, 10));
+  (void)new wxTextCtrl(panel1, -1, "1234", wxPoint(10, 40), wxSize(120, 150));
+  
+  view->AddTabWindow(TEST_TAB_CAT, panel1);
+
+  wxPanel *panel2 = new wxPanel(window, -1, wxPoint(rect.x + 20, rect.y + 10), wxSize(290, 220));
+
+  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);
+  
+  view->AddTabWindow(TEST_TAB_DOG, panel2);
+  view->SetTabSelection(TEST_TAB_CAT);
+}
+
+BEGIN_EVENT_TABLE(MyDialog, wxTabbedDialog)
+    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):
+  wxTabbedDialog(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;
+  
+  // Note, omit the wxTAB_STYLE_COLOUR_INTERIOR, so we will guarantee a match
+  // with the panel background, and save a bit of time.
+  wxPanelTabView *view = new wxPanelTabView(this, wxTAB_STYLE_DRAW_BOX);
+
+  wxGetApp().InitTabView(view, this);
+
+  // Don't know why this is necessary under Motif...
+#ifndef __WXMSW__
+  this->SetSize(dialogWidth, dialogHeight-20);
+#endif
+
+  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 = (wxTabbedPanel*) NULL;
+    m_view = (wxPanelTabView*) NULL;
+    Init();
+}
+
+void MyFrame::OnOK(wxCommandEvent& WXUNUSED(event) )
+{
+    this->Destroy();
+}
+
+void MyFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event) )
+{
+    this->Destroy();
+}
+
+void MyFrame::Init(void)
+{
+  m_panel = new wxTabbedPanel(this, -1);
+  
+  // Note, omit the wxTAB_STYLE_COLOUR_INTERIOR, so we will guarantee a match
+  // with the panel background, and save a bit of time.
+  m_view = new wxPanelTabView(m_panel, wxTAB_STYLE_DRAW_BOX);
+
+  wxGetApp().InitTabView(m_view, m_panel);
+
+  this->Centre(wxBOTH);
+
+  Show(TRUE);
+}
+
+void MyFrame::OnSize(wxSizeEvent& event)
+{
+    wxFrame::OnSize(event);
+
+    int cw, ch;
+    GetClientSize(& cw, & ch);
+
+    if (m_view && m_panel)
+    {
+        m_panel->Layout();
+
+        int tabHeight = m_view->GetTotalTabHeight();
+        wxRect rect;
+        rect.x = 4;
+        rect.y = tabHeight + 4;
+        rect.width = cw - 8;
+        rect.height = ch - 4 - rect.y - 30; // 30 for buttons
+  
+        m_view->SetViewRect(rect);
+
+        m_view->LayoutTabs();
+
+        // Need to do it a 2nd time to get the tab height with
+        // the new view width
+        tabHeight = m_view->GetTotalTabHeight();
+        rect.x = 4;
+        rect.y = tabHeight + 4;
+        rect.width = cw - 8;
+        rect.height = ch - 4 - rect.y - 30; // 30 for buttons
+  
+        m_view->SetViewRect(rect);
+
+        m_view->LayoutTabs();
+
+        // Move all the panels to the new view position and size
+        wxNode* node = m_view->GetWindows().First();
+        while (node)
+        {
+            wxWindow* win = (wxWindow*) node->Data();
+            win->SetSize(rect.x+2, rect.y+2, rect.width-4, rect.height-4);
+
+            node = node->Next();
+        }
+
+        m_panel->Refresh();
+    }
+}
+
diff --git a/samples/tab/tab.def b/samples/tab/tab.def
new file mode 100644 (file)
index 0000000..8bd33c1
--- /dev/null
@@ -0,0 +1,8 @@
+NAME         Tab
+DESCRIPTION  'Tab test'
+EXETYPE      WINDOWS
+STUB         'WINSTUB.EXE'
+CODE         PRELOAD MOVEABLE DISCARDABLE
+DATA         PRELOAD MOVEABLE MULTIPLE
+HEAPSIZE     1024
+STACKSIZE    16192
diff --git a/samples/tab/tab.h b/samples/tab/tab.h
new file mode 100644 (file)
index 0000000..0763ffe
--- /dev/null
@@ -0,0 +1,87 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        tab.h
+// Purpose:     Tab demo
+// Author:      Julian Smart
+// Modified by:
+// Created:     01/02/97
+// RCS-ID:      $Id$
+// Copyright:   (c)
+// Licence:    wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// Define a new application
+class MyApp: public wxApp
+{
+public:
+    bool OnInit(void);
+    void InitTabView(wxPanelTabView* view, wxWindow* window);
+
+    wxButton*   m_okButton;
+    wxButton*   m_cancelButton;
+    wxButton*   m_helpButton;
+};
+
+DECLARE_APP(MyApp)
+
+class MyDialog: public wxTabbedDialog
+{
+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);
+
+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:
+    wxTabbedPanel*      m_panel;
+    wxPanelTabView*     m_view;
+
+DECLARE_EVENT_TABLE()
+};
+
+
+class MyTabbedPanel: public wxTabbedPanel
+{
+public:
+    MyTabbedPanel(wxWindow* parent, const wxWindowID id,
+        const wxPoint& pos, const wxSize& size, const long windowStyle = 0);
+
+    void OnOK(wxCommandEvent& event);
+    void OnCloseWindow(wxCloseEvent& event);
+//    void OnAbout(wxCommandEvent& event);
+    void Init(void);
+
+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
+
diff --git a/samples/tab/tab.rc b/samples/tab/tab.rc
new file mode 100644 (file)
index 0000000..a05f210
--- /dev/null
@@ -0,0 +1,3 @@
+mondrian_icon ICON "mondrian.ico"
+#include "wx/msw/wx.rc"
+
diff --git a/samples/tab/test.cpp b/samples/tab/test.cpp
deleted file mode 100644 (file)
index 1c2f6fd..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// Name:        test.cpp
-// Purpose:     Tab demo
-// Author:      Julian Smart
-// Modified by:
-// Created:     01/02/97
-// 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 1
-
-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 *) "Tabbed Dialog", 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 *) "Tabbed Panel", wxPoint(-1, -1), wxSize(365, 390), wxDEFAULT_FRAME_STYLE);
-
-  return TRUE;
-#endif
-}
-
-void MyApp::InitTabView(wxPanelTabView* view, wxWindow* window)
-{
-  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);
-
-  wxRect rect;
-  rect.x = 5;
-  rect.y = 70;
-  // Could calculate the view width from the tab width and spacing,
-  // as below, but let's assume we have a fixed view width.
-//  rect.width = view->GetTabWidth()*4 + 3*view->GetHorizontalTabSpacing();
-  rect.width = 326;
-  rect.height = 250;
-  
-  view->SetViewRect(rect);
-
-  // Calculate the tab width for 4 tabs, based on a view width of 326 and
-  // the current horizontal spacing. Adjust the view width to exactly fit
-  // the tabs.
-  view->CalculateTabWidth(4, TRUE);
-
-  if (!view->AddTab(TEST_TAB_CAT,        wxString("Cat")))
-    return;
-
-  if (!view->AddTab(TEST_TAB_DOG,        wxString("Dog")))
-    return;
-  if (!view->AddTab(TEST_TAB_GUINEAPIG,  wxString("Guinea Pig")))
-    return;
-  if (!view->AddTab(TEST_TAB_GOAT,       wxString("Goat")))
-    return;
-  if (!view->AddTab(TEST_TAB_ANTEATER,   wxString("Ant-eater")))
-    return;
-  if (!view->AddTab(TEST_TAB_SHEEP,      wxString("Sheep")))
-    return;
-  if (!view->AddTab(TEST_TAB_COW,        wxString("Cow")))
-    return;
-  if (!view->AddTab(TEST_TAB_HORSE,      wxString("Horse")))
-    return;
-  if (!view->AddTab(TEST_TAB_PIG,        wxString("Pig")))
-    return;
-  if (!view->AddTab(TEST_TAB_OSTRICH,    wxString("Ostrich")))
-    return;
-  if (!view->AddTab(TEST_TAB_AARDVARK,   wxString("Aardvark")))
-    return;
-  if (!view->AddTab(TEST_TAB_HUMMINGBIRD,wxString("Hummingbird")))
-    return;
-    
-  // Add some panels
-  wxPanel *panel1 = new wxPanel(window, -1, wxPoint(rect.x + 20, rect.y + 10), wxSize(290, 220), wxTAB_TRAVERSAL);
-  (void)new wxButton(panel1, -1, "Press me", wxPoint(10, 10));
-  (void)new wxTextCtrl(panel1, -1, "1234", wxPoint(10, 40), wxSize(120, 150));
-  
-  view->AddTabWindow(TEST_TAB_CAT, panel1);
-
-  wxPanel *panel2 = new wxPanel(window, -1, wxPoint(rect.x + 20, rect.y + 10), wxSize(290, 220));
-
-  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);
-  
-  view->AddTabWindow(TEST_TAB_DOG, panel2);
-  view->SetTabSelection(TEST_TAB_CAT);
-}
-
-BEGIN_EVENT_TABLE(MyDialog, wxTabbedDialog)
-    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):
-  wxTabbedDialog(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;
-  
-  // Note, omit the wxTAB_STYLE_COLOUR_INTERIOR, so we will guarantee a match
-  // with the panel background, and save a bit of time.
-  wxPanelTabView *view = new wxPanelTabView(this, wxTAB_STYLE_DRAW_BOX);
-
-  wxGetApp().InitTabView(view, this);
-
-  // Don't know why this is necessary under Motif...
-#ifndef __WXMSW__
-  this->SetSize(dialogWidth, dialogHeight-20);
-#endif
-
-  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 = (wxTabbedPanel*) NULL;
-    m_view = (wxPanelTabView*) NULL;
-    Init();
-}
-
-void MyFrame::OnOK(wxCommandEvent& WXUNUSED(event) )
-{
-    this->Destroy();
-}
-
-void MyFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event) )
-{
-    this->Destroy();
-}
-
-void MyFrame::Init(void)
-{
-  m_panel = new wxTabbedPanel(this, -1);
-  
-  // Note, omit the wxTAB_STYLE_COLOUR_INTERIOR, so we will guarantee a match
-  // with the panel background, and save a bit of time.
-  m_view = new wxPanelTabView(m_panel, wxTAB_STYLE_DRAW_BOX);
-
-  wxGetApp().InitTabView(m_view, m_panel);
-
-  this->Centre(wxBOTH);
-
-  Show(TRUE);
-}
-
-void MyFrame::OnSize(wxSizeEvent& event)
-{
-    wxFrame::OnSize(event);
-
-    int cw, ch;
-    GetClientSize(& cw, & ch);
-
-    if (m_view && m_panel)
-    {
-        m_panel->Layout();
-
-        int tabHeight = m_view->GetTotalTabHeight();
-        wxRect rect;
-        rect.x = 4;
-        rect.y = tabHeight + 4;
-        rect.width = cw - 8;
-        rect.height = ch - 4 - rect.y - 30; // 30 for buttons
-  
-        m_view->SetViewRect(rect);
-
-        m_view->LayoutTabs();
-
-        // Need to do it a 2nd time to get the tab height with
-        // the new view width
-        tabHeight = m_view->GetTotalTabHeight();
-        rect.x = 4;
-        rect.y = tabHeight + 4;
-        rect.width = cw - 8;
-        rect.height = ch - 4 - rect.y - 30; // 30 for buttons
-  
-        m_view->SetViewRect(rect);
-
-        m_view->LayoutTabs();
-
-        // Move all the panels to the new view position and size
-        wxNode* node = m_view->GetWindows().First();
-        while (node)
-        {
-            wxWindow* win = (wxWindow*) node->Data();
-            win->SetSize(rect.x+2, rect.y+2, rect.width-4, rect.height-4);
-
-            node = node->Next();
-        }
-
-        m_panel->Refresh();
-    }
-}
-
diff --git a/samples/tab/test.def b/samples/tab/test.def
deleted file mode 100644 (file)
index bacb3d4..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-NAME         Test
-DESCRIPTION  'Tab test'
-EXETYPE      WINDOWS
-STUB         'WINSTUB.EXE'
-CODE         PRELOAD MOVEABLE DISCARDABLE
-DATA         PRELOAD MOVEABLE MULTIPLE
-HEAPSIZE     1024
-STACKSIZE    16192
diff --git a/samples/tab/test.h b/samples/tab/test.h
deleted file mode 100644 (file)
index adb13a1..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// Name:        test.h
-// Purpose:     Tab demo
-// Author:      Julian Smart
-// Modified by:
-// Created:     01/02/97
-// RCS-ID:      $Id$
-// Copyright:   (c)
-// Licence:    wxWindows licence
-/////////////////////////////////////////////////////////////////////////////
-
-// Define a new application
-class MyApp: public wxApp
-{
-public:
-    bool OnInit(void);
-    void InitTabView(wxPanelTabView* view, wxWindow* window);
-
-    wxButton*   m_okButton;
-    wxButton*   m_cancelButton;
-    wxButton*   m_helpButton;
-};
-
-DECLARE_APP(MyApp)
-
-class MyDialog: public wxTabbedDialog
-{
-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);
-
-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:
-    wxTabbedPanel*      m_panel;
-    wxPanelTabView*     m_view;
-
-DECLARE_EVENT_TABLE()
-};
-
-
-class MyTabbedPanel: public wxTabbedPanel
-{
-public:
-    MyTabbedPanel(wxWindow* parent, const wxWindowID id,
-        const wxPoint& pos, const wxSize& size, const long windowStyle = 0);
-
-    void OnOK(wxCommandEvent& event);
-    void OnCloseWindow(wxCloseEvent& event);
-//    void OnAbout(wxCommandEvent& event);
-    void Init(void);
-
-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
-
diff --git a/samples/tab/test.rc b/samples/tab/test.rc
deleted file mode 100644 (file)
index a05f210..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-mondrian_icon ICON "mondrian.ico"
-#include "wx/msw/wx.rc"
-