-// 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:
+ 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(const wxString &title, int x, int y );
+
+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