X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a340b80d8a692f5308d26c1c1b95fd689a1d7eb3..8e77fd8bca165aab9709649d79a7cbc6a172d4e1:/include/wx/generic/combo.h diff --git a/include/wx/generic/combo.h b/include/wx/generic/combo.h index 49c3c271d0..b25325c86f 100644 --- a/include/wx/generic/combo.h +++ b/include/wx/generic/combo.h @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// // Name: wx/generic/combo.h -// Purpose: Generic wxComboControl +// Purpose: Generic wxComboCtrl // Author: Jaakko Salli // Modified by: // Created: Apr-30-2006 @@ -9,16 +9,16 @@ // 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_COMBOCONTROL +#if wxUSE_COMBOCTRL // Only define generic if native doesn't have all the features #if !defined(wxCOMBOCONTROL_FULLY_FEATURED) // ---------------------------------------------------------------------------- -// Generic wxComboControl +// Generic wxComboCtrl // ---------------------------------------------------------------------------- #if defined(__WXUNIVERSAL__) @@ -26,27 +26,30 @@ // 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 wxComboControlBase +extern WXDLLIMPEXP_DATA_CORE(const char) wxComboBoxNameStr[]; + +class WXDLLIMPEXP_CORE wxGenericComboCtrl : public wxComboCtrlBase { public: // ctors and such - wxGenericComboControl() : wxComboControlBase() { 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) - : wxComboControlBase() + 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,9 +65,13 @@ 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 wxComboControlFeatures::All; } + static int GetFeatures() { return wxComboCtrlFeatures::All; } #if defined(__WXUNIVERSAL__) // we have our own input handler and our own actions @@ -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,49 +125,49 @@ private: DECLARE_EVENT_TABLE() - DECLARE_DYNAMIC_CLASS(wxGenericComboControl) + DECLARE_DYNAMIC_CLASS(wxGenericComboCtrl) }; #ifndef _WX_COMBOCONTROL_H_ -// If native wxComboControl was not defined, then prepare a simple +// If native wxComboCtrl was not defined, then prepare a simple // front-end so that wxRTTI works as expected. -class WXDLLEXPORT wxComboControl : public wxGenericComboControl +class WXDLLIMPEXP_CORE wxComboCtrl : public wxGenericComboCtrl { public: - wxComboControl() : wxGenericComboControl() {} - - wxComboControl(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() + 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) + : wxGenericComboCtrl() { (void)Create(parent, id, value, pos, size, style, validator, name); } - virtual ~wxComboControl() {} + virtual ~wxComboCtrl() {} protected: private: - DECLARE_DYNAMIC_CLASS(wxComboControl) + DECLARE_DYNAMIC_CLASS(wxComboCtrl) }; #endif // _WX_COMBOCONTROL_H_ #else -#define wxGenericComboControl wxComboControl +#define wxGenericComboCtrl wxComboCtrl #endif // !defined(wxCOMBOCONTROL_FULLY_FEATURED) -#endif // wxUSE_COMBOCONTROL +#endif // wxUSE_COMBOCTRL #endif - // _WX_GENERIC_COMBOCONTROL_H_ + // _WX_GENERIC_COMBOCTRL_H_