8282c1be0f
Windows CE doesn't seem to be supported by Microsoft any longer. Last CE release was in early 2013 and the PocketPC and Smartphone targets supported by wxWidgets are long gone. The build files where already removed in an earlier cleanup this commit removes all files, every #ifdef and all documentation regarding the Windows CE support. Closes https://github.com/wxWidgets/wxWidgets/pull/81
240 lines
7.8 KiB
C++
240 lines
7.8 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// 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
|
|
#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
|
|
#define USE_LOG 1
|
|
#else
|
|
#define USE_LOG 0
|
|
#endif
|
|
|
|
#define ICON_SIZE 16
|
|
|
|
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<wxWindow *> Widgets;
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// WidgetsPage: a book page demonstrating some widget
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// struct to store common widget attributes
|
|
struct WidgetAttributes
|
|
{
|
|
WidgetAttributes()
|
|
{
|
|
#if wxUSE_TOOLTIPS
|
|
m_tooltip = "This is a tooltip";
|
|
#endif // wxUSE_TOOLTIPS
|
|
m_enabled = true;
|
|
m_show = true;
|
|
m_dir = wxLayout_LeftToRight;
|
|
m_variant = wxWINDOW_VARIANT_NORMAL;
|
|
m_cursor = *wxSTANDARD_CURSOR;
|
|
m_defaultFlags = wxBORDER_DEFAULT;
|
|
}
|
|
|
|
#if wxUSE_TOOLTIPS
|
|
wxString m_tooltip;
|
|
#endif // wxUSE_TOOLTIPS
|
|
#if wxUSE_FONTDLG
|
|
wxFont m_font;
|
|
#endif // wxUSE_FONTDLG
|
|
wxColour m_colFg;
|
|
wxColour m_colBg;
|
|
wxColour m_colPageBg;
|
|
bool m_enabled;
|
|
bool m_show;
|
|
wxLayoutDirection m_dir;
|
|
wxWindowVariant m_variant;
|
|
wxCursor m_cursor;
|
|
// the default flags, currently only contains border flags
|
|
int m_defaultFlags;
|
|
};
|
|
|
|
class WidgetsPage : public wxPanel
|
|
{
|
|
public:
|
|
WidgetsPage(WidgetsBookCtrl *book,
|
|
wxImageList *imaglist,
|
|
const char *const icon[]);
|
|
|
|
// return the control shown by this page
|
|
virtual wxWindow *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;
|
|
|
|
// apply current atrributes to the widget(s)
|
|
void SetUpWidget();
|
|
|
|
// the default attributes for the widget
|
|
static WidgetAttributes& GetAttrs();
|
|
|
|
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_
|