X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a57d600f1aa4bae88f4c9b8d89a35332c412939e..153530afb595110592776c461e52be99b1559439:/include/wx/generic/combo.h?ds=sidebyside diff --git a/include/wx/generic/combo.h b/include/wx/generic/combo.h index 9d179ac385..b25325c86f 100644 --- a/include/wx/generic/combo.h +++ b/include/wx/generic/combo.h @@ -9,8 +9,8 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_GENERIC_COMBOCONTROL_H_ -#define _WX_GENERIC_COMBOCONTROL_H_ +#ifndef _WX_GENERIC_COMBOCTRL_H_ +#define _WX_GENERIC_COMBOCTRL_H_ #if wxUSE_COMBOCTRL @@ -26,26 +26,29 @@ // all actions of single line text controls are supported // popup/dismiss the choice window -#define wxACTION_COMBOBOX_POPUP _T("popup") -#define wxACTION_COMBOBOX_DISMISS _T("dismiss") +#define wxACTION_COMBOBOX_POPUP wxT("popup") +#define wxACTION_COMBOBOX_DISMISS wxT("dismiss") #endif +#include "wx/dcbuffer.h" -class WXDLLEXPORT wxGenericComboControl : public wxComboCtrlBase +extern WXDLLIMPEXP_DATA_CORE(const char) wxComboBoxNameStr[]; + +class WXDLLIMPEXP_CORE wxGenericComboCtrl : public wxComboCtrlBase { public: // ctors and such - wxGenericComboControl() : wxComboCtrlBase() { Init(); } - - wxGenericComboControl(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) + wxGenericComboCtrl() : wxComboCtrlBase() { Init(); } + + wxGenericComboCtrl(wxWindow *parent, + wxWindowID id = wxID_ANY, + const wxString& value = wxEmptyString, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxComboBoxNameStr) : wxComboCtrlBase() { Init(); @@ -62,7 +65,11 @@ public: const wxValidator& validator = wxDefaultValidator, const wxString& name = wxComboBoxNameStr); - virtual ~wxGenericComboControl(); + virtual ~wxGenericComboCtrl(); + + void SetCustomPaintWidth( int width ); + + virtual bool IsKeyPopupToggle(const wxKeyEvent& event) const; static int GetFeatures() { return wxComboCtrlFeatures::All; } @@ -75,6 +82,37 @@ public: protected: + // Dummies for platform-specific wxTextEntry implementations +#if defined(__WXUNIVERSAL__) + // Looks like there's nothing we need to override here +#elif defined(__WXMOTIF__) + virtual WXWidget GetTextWidget() const { return NULL; } +#elif defined(__WXGTK__) +#if defined(__WXGTK20__) + virtual GtkEditable *GetEditable() const { return NULL; } + virtual GtkEntry *GetEntry() const { return NULL; } +#endif +#elif defined(__WXMAC__) + // Looks like there's nothing we need to override here +#elif defined(__WXPM__) + virtual WXHWND GetEditHWND() const { return NULL; } +#endif + + // For better transparent background rendering + virtual bool HasTransparentBackground() + { + #if wxALWAYS_NATIVE_DOUBLE_BUFFER + #ifdef __WXGTK__ + // Sanity check for GTK+ + return IsDoubleBuffered(); + #else + return true; + #endif + #else + return false; + #endif + } + // Mandatory virtuals virtual void OnResize(); @@ -87,7 +125,7 @@ private: DECLARE_EVENT_TABLE() - DECLARE_DYNAMIC_CLASS(wxGenericComboControl) + DECLARE_DYNAMIC_CLASS(wxGenericComboCtrl) }; @@ -96,20 +134,20 @@ private: // If native wxComboCtrl was not defined, then prepare a simple // front-end so that wxRTTI works as expected. -class WXDLLEXPORT wxComboCtrl : public wxGenericComboControl +class WXDLLIMPEXP_CORE wxComboCtrl : public wxGenericComboCtrl { public: - wxComboCtrl() : wxGenericComboControl() {} + wxComboCtrl() : wxGenericComboCtrl() {} wxComboCtrl(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) - : wxGenericComboControl() + wxWindowID id = wxID_ANY, + const wxString& value = wxEmptyString, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxComboBoxNameStr) + : wxGenericComboCtrl() { (void)Create(parent, id, value, pos, size, style, validator, name); } @@ -126,10 +164,10 @@ private: #else -#define wxGenericComboControl wxComboCtrl +#define wxGenericComboCtrl wxComboCtrl #endif // !defined(wxCOMBOCONTROL_FULLY_FEATURED) #endif // wxUSE_COMBOCTRL #endif - // _WX_GENERIC_COMBOCONTROL_H_ + // _WX_GENERIC_COMBOCTRL_H_