]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/layout/layout.h
Turkish translations update from Çağrı Doğan.
[wxWidgets.git] / samples / layout / layout.h
index 8a54f6f63d7450b1bdc29591b4c11c8faec38cb7..7e80805ef60bcaee115534ed5e742f9efb4fba8d 100644 (file)
 // Author:      Julian Smart
 // Modified by:
 // Created:     04/01/98
-// RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:     wxWindows license
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // Define a new application
 class MyApp: public wxApp
 {
 public:
-    MyApp();
+    MyApp(){};
     bool OnInit();
 };
 
-// Define a new frame
-class MyTextWindow;
-class MyWindow;
-
-class MyFrame: public wxFrame
+// the main frame class
+class MyFrame : public wxFrame
 {
 public:
-    MyFrame(wxFrame *frame, const wxChar *title, int x, int y, int w, int h);
-
-    void OnQuit(wxCommandEvent& event);
+    MyFrame();
 
-    void TestSizers(wxCommandEvent& event);
+    void TestProportions(wxCommandEvent& event);
+    void TestFlexSizers(wxCommandEvent& event);
     void TestNotebookSizers(wxCommandEvent& event);
-    void About(wxCommandEvent& event);
+    void TestGridBagSizer(wxCommandEvent& event);
+    void TestNested(wxCommandEvent& event);
+    void TestSetMinimal(wxCommandEvent& event);
+    void TestWrap(wxCommandEvent& event);
+
+    void OnAbout(wxCommandEvent& event);
+    void OnQuit(wxCommandEvent& event);
 
 private:
     DECLARE_EVENT_TABLE()
 };
 
-// Define a new text subwindow that can respond to drag-and-drop
-class MyTextWindow: public wxTextCtrl
+// a frame showing the box sizer proportions
+class MyProportionsFrame : public wxFrame
 {
 public:
-    MyTextWindow(wxFrame *frame, int x=-1, int y=-1, int width=-1, int height=-1,
-               long style=wxTE_MULTILINE):
-    wxTextCtrl(frame, -1, _T(""), wxPoint(x, y), wxSize(width, height), style)
-    {
-    }
+    MyProportionsFrame(wxFrame *parent);
+
+protected:
+    void UpdateProportions();
+
+    void OnProportionChanged(wxSpinEvent& event);
+    void OnProportionUpdated(wxCommandEvent& event);
+
+    wxSpinCtrl *m_spins[3]; // size can be changed without changing anything else
+    wxSizer *m_sizer;
+};
+
+// a frame using flex sizers for layout
+class MyFlexSizerFrame : public wxFrame
+{
+public:
+    MyFlexSizerFrame(wxFrame* parent);
+
+private:
+    void InitFlexSizer(wxFlexGridSizer *sizer, wxWindow* parent);
+};
+
+
+// a dialog using notebook sizer for layout
+class MySizerDialog : public wxDialog
+{
+public:
+    MySizerDialog(wxWindow *parent, const wxString &title );
+};
+
+
+// a frame using wxGridBagSizer for layout
+class MyGridBagSizerFrame : public wxFrame
+{
+public:
+    MyGridBagSizerFrame(wxFrame* parent);
+
+    void OnHideBtn(wxCommandEvent&);
+    void OnShowBtn(wxCommandEvent&);
+    void OnMoveBtn(wxCommandEvent&);
 
+private:
+    wxGridBagSizer*     m_gbs;
+    wxPanel*            m_panel;
+    wxButton*           m_hideBtn;
+    wxButton*           m_showBtn;
+    wxTextCtrl*         m_hideTxt;
+
+    wxButton*           m_moveBtn1;
+    wxButton*           m_moveBtn2;
+    wxGBPosition        m_lastPos;
+
+    DECLARE_EVENT_TABLE()
 };
 
-// Define a new canvas which can receive some events
-class MyWindow: public wxWindow
+
+// a frame for testing simple setting of "default size"
+class MySimpleSizerFrame : public wxFrame
 {
 public:
-    MyWindow(wxFrame *frame, int x, int y, int w, int h, long style = wxRETAINED);
-    ~MyWindow();
-    void OnPaint(wxPaintEvent& event);
+    MySimpleSizerFrame(wxFrame* parent);
+
+    void OnSetSmallSize( wxCommandEvent &event);
+    void OnSetBigSize( wxCommandEvent &event);
 
 private:
+    wxTextCtrl  *m_target;
+
     DECLARE_EVENT_TABLE()
 };
 
-class MySizerFrame: public wxFrame
+
+// a frame for testing simple setting of a frame containing
+// a sizer containing a panel containing a sizer containing
+// controls
+class MyNestedSizerFrame : public wxFrame
 {
 public:
-    wxPanel *panel;
-    MySizerFrame(wxFrame *frame, wxChar *title, int x, int y );
+    MyNestedSizerFrame(wxFrame* parent);
+
+
+private:
+    wxTextCtrl  *m_target;
+};
+
+// a frame with several wrapping sizers
+
+class MyWrapSizerFrame: public wxFrame
+{
+public:
+    MyWrapSizerFrame(wxFrame* parent);
+
+private:
+    void OnAddCheckbox(wxCommandEvent& event);
+    void OnRemoveCheckbox(wxCommandEvent& event);
+
+    void DoAddCheckbox();
+
+    wxWindow* m_checkboxParent;
+    wxSizer* m_wrapSizer;
+
+    DECLARE_EVENT_TABLE()
+};
+
+// controls and menu constants
+enum
+{
+    LAYOUT_TEST_SIZER = 101,
+    LAYOUT_TEST_NB_SIZER,
+    LAYOUT_TEST_GB_SIZER,
+    LAYOUT_TEST_PROPORTIONS,
+    LAYOUT_TEST_SET_MINIMAL,
+    LAYOUT_TEST_NESTED,
+    LAYOUT_TEST_WRAP,
+    LAYOUT_QUIT = wxID_EXIT,
+    LAYOUT_ABOUT = wxID_ABOUT
 };
 
-#define LAYOUT_QUIT       100
-#define LAYOUT_TEST       101
-#define LAYOUT_ABOUT      102
-#define LAYOUT_TEST_SIZER 104
-#define LAYOUT_TEST_NB    105