| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Program:     wxWidgets Widgets Sample
 
- // Name:        widgets.h
 
- // Purpose:     Common stuff for all widgets project files
 
- // Author:      Vadim Zeitlin
 
- // Created:     27.03.01
 
- // Copyright:   (c) 2001 Vadim Zeitlin
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_SAMPLE_WIDGETS_H_
 
- #define _WX_SAMPLE_WIDGETS_H_
 
- #if wxUSE_TREEBOOK && !defined(__WXHANDHELD__)
 
-     #include "wx/treebook.h"
 
-     #define USE_TREEBOOK 1
 
-     #define WidgetsBookCtrl wxTreebook
 
-     #define WidgetsBookCtrlEvent wxTreebookEvent
 
-     #define EVT_WIDGETS_PAGE_CHANGING(id,func) EVT_TREEBOOK_PAGE_CHANGING(id,func)
 
-     #define wxEVT_COMMAND_WIDGETS_PAGE_CHANGED wxEVT_TREEBOOK_PAGE_CHANGED
 
-     #define wxWidgetsbookEventHandler(func) wxTreebookEventHandler(func)
 
- #else
 
-     #include "wx/bookctrl.h"
 
-     #define USE_TREEBOOK 0
 
-     #define WidgetsBookCtrl wxBookCtrl
 
-     #define WidgetsBookCtrlEvent wxBookCtrlEvent
 
-     #define EVT_WIDGETS_PAGE_CHANGING(id,func) EVT_BOOKCTRL_PAGE_CHANGING(id,func)
 
-     #define wxEVT_COMMAND_WIDGETS_PAGE_CHANGED wxEVT_BOOKCTRL_PAGE_CHANGED
 
-     #define wxWidgetsbookEventHandler(func) wxBookCtrlEventHandler(func)
 
- #endif
 
- #if wxUSE_LOG && !defined(__WXHANDHELD__)
 
-     #define USE_LOG 1
 
- #else
 
-     #define USE_LOG 0
 
- #endif
 
- #if defined(__WXHANDHELD__)
 
-     #define USE_ICONS_IN_BOOK 0
 
- #else
 
-     #define USE_ICONS_IN_BOOK 1
 
-     #define ICON_SIZE         16
 
- #endif
 
- class WXDLLIMPEXP_FWD_CORE wxCheckBox;
 
- class WXDLLIMPEXP_FWD_CORE wxSizer;
 
- class WXDLLIMPEXP_FWD_CORE wxImageList;
 
- class WXDLLIMPEXP_FWD_CORE wxTextCtrl;
 
- class WXDLLIMPEXP_FWD_CORE WidgetsBookCtrl;
 
- class WidgetsPageInfo;
 
- #include "wx/panel.h"
 
- #include "wx/vector.h"
 
- // INTRODUCING NEW PAGES DON'T FORGET TO ADD ENTRIES TO 'WidgetsCategories'
 
- enum
 
- {
 
-     // In wxUniversal-based builds 'native' means 'made with wxUniv port
 
-     // renderer'
 
-     NATIVE_PAGE = 0,
 
-     UNIVERSAL_PAGE = NATIVE_PAGE,
 
-     GENERIC_PAGE,
 
-     PICKER_PAGE,
 
-     COMBO_PAGE,
 
-     WITH_ITEMS_PAGE,
 
-     EDITABLE_PAGE,
 
-     BOOK_PAGE,
 
-     ALL_PAGE,
 
-     MAX_PAGES
 
- };
 
- enum
 
- {
 
-     NATIVE_CTRLS     = 1 << NATIVE_PAGE,
 
-     UNIVERSAL_CTRLS  = NATIVE_CTRLS,
 
-     GENERIC_CTRLS    = 1 << GENERIC_PAGE,
 
-     PICKER_CTRLS     = 1 << PICKER_PAGE,
 
-     COMBO_CTRLS      = 1 << COMBO_PAGE,
 
-     WITH_ITEMS_CTRLS = 1 << WITH_ITEMS_PAGE,
 
-     EDITABLE_CTRLS   = 1 << EDITABLE_PAGE,
 
-     BOOK_CTRLS       = 1 << BOOK_PAGE,
 
-     ALL_CTRLS        = 1 << ALL_PAGE
 
- };
 
- typedef wxVector<wxControl *> Widgets;
 
- // ----------------------------------------------------------------------------
 
- // WidgetsPage: a book page demonstrating some widget
 
- // ----------------------------------------------------------------------------
 
- class WidgetsPage : public wxPanel
 
- {
 
- public:
 
-     WidgetsPage(WidgetsBookCtrl *book,
 
-                 wxImageList *imaglist,
 
-                 const char *const icon[]);
 
-     // return the control shown by this page
 
-     virtual wxControl *GetWidget() const = 0;
 
-     // return the control shown by this page, if it supports text entry interface
 
-     virtual wxTextEntryBase *GetTextEntry() const { return NULL; }
 
-     // lazy creation of the content
 
-     virtual void CreateContent() = 0;
 
-     // some pages show additional controls, in this case override this one to
 
-     // return all of them (including the one returned by GetWidget())
 
-     virtual Widgets GetWidgets() const
 
-     {
 
-         Widgets widgets;
 
-         widgets.push_back(GetWidget());
 
-         return widgets;
 
-     }
 
-     // recreate the control shown by this page
 
-     //
 
-     // this is currently used only to take into account the border flags
 
-     virtual void RecreateWidget() = 0;
 
-     // the default flags for the widget, currently only contains border flags
 
-     static int ms_defaultFlags;
 
- protected:
 
-     // several helper functions for page creation
 
-     // create a horz sizer containing the given control and the text ctrl
 
-     // (pointer to which will be saved in the provided variable if not NULL)
 
-     // with the specified id
 
-     wxSizer *CreateSizerWithText(wxControl *control,
 
-                                  wxWindowID id = wxID_ANY,
 
-                                  wxTextCtrl **ppText = NULL);
 
-     // create a sizer containing a label and a text ctrl
 
-     wxSizer *CreateSizerWithTextAndLabel(const wxString& label,
 
-                                          wxWindowID id = wxID_ANY,
 
-                                          wxTextCtrl **ppText = NULL);
 
-     // create a sizer containing a button and a text ctrl
 
-     wxSizer *CreateSizerWithTextAndButton(wxWindowID idBtn,
 
-                                           const wxString& labelBtn,
 
-                                           wxWindowID id = wxID_ANY,
 
-                                           wxTextCtrl **ppText = NULL);
 
-     // create a checkbox and add it to the sizer
 
-     wxCheckBox *CreateCheckBoxAndAddToSizer(wxSizer *sizer,
 
-                                             const wxString& label,
 
-                                             wxWindowID id = wxID_ANY);
 
- public:
 
-     // the head of the linked list containinginfo about all pages
 
-     static WidgetsPageInfo *ms_widgetPages;
 
- };
 
- // ----------------------------------------------------------------------------
 
- // dynamic WidgetsPage creation helpers
 
- // ----------------------------------------------------------------------------
 
- class WidgetsPageInfo
 
- {
 
- public:
 
-     typedef WidgetsPage *(*Constructor)(WidgetsBookCtrl *book,
 
-                                         wxImageList *imaglist);
 
-     // our ctor
 
-     WidgetsPageInfo(Constructor ctor, const wxChar *label, int categories);
 
-     // accessors
 
-     const wxString& GetLabel() const { return m_label; }
 
-     int GetCategories() const { return m_categories; }
 
-     Constructor GetCtor() const { return m_ctor; }
 
-     WidgetsPageInfo *GetNext() const { return m_next; }
 
-     void SetNext(WidgetsPageInfo *next) { m_next = next; }
 
- private:
 
-     // the label of the page
 
-     wxString m_label;
 
-     // the list (flags) for sharing page between categories
 
-     int m_categories;
 
-     // the function to create this page
 
-     Constructor m_ctor;
 
-     // next node in the linked list or NULL
 
-     WidgetsPageInfo *m_next;
 
- };
 
- // to declare a page, this macro must be used in the class declaration
 
- #define DECLARE_WIDGETS_PAGE(classname)                                     \
 
-     private:                                                                \
 
-         static WidgetsPageInfo ms_info##classname;                          \
 
-     public:                                                                 \
 
-         const WidgetsPageInfo *GetPageInfo() const                          \
 
-             { return &ms_info##classname; }
 
- // and this one must be inserted somewhere in the source file
 
- #define IMPLEMENT_WIDGETS_PAGE(classname, label, categories)                \
 
-     WidgetsPage *wxCtorFor##classname(WidgetsBookCtrl *book,                \
 
-                                       wxImageList *imaglist)                \
 
-         { return new classname(book, imaglist); }                           \
 
-     WidgetsPageInfo classname::                                             \
 
-         ms_info##classname(wxCtorFor##classname, label, ALL_CTRLS | categories)
 
- #endif // _WX_SAMPLE_WIDGETS_H_
 
 
  |