X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/df3c4a42d973ec9f4abf9d4f1e5779a40ac310d0..b09857ae000a60704207d63290be937584805fb0:/interface/wx/combo.h diff --git a/interface/wx/combo.h b/interface/wx/combo.h index 00ba186a5f..2238961d63 100644 --- a/interface/wx/combo.h +++ b/interface/wx/combo.h @@ -6,6 +6,20 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// +// +// New window styles for wxComboCtrlBase +// +enum +{ + // Double-clicking a read-only combo triggers call to popup's OnComboPopup. + // In wxOwnerDrawnComboBox, for instance, it cycles item. + wxCC_SPECIAL_DCLICK = 0x0100, + + // Dropbutton acts like standard push button. + wxCC_STD_BUTTON = 0x0200 +}; + + /** @class wxComboPopup @@ -41,6 +55,10 @@ public: your popup class in non-standard way. The default implementation can handle both multiple-inherited popup control (as seen in wxComboCtrl samples) and one allocated separately in heap. + + If you do completely re-implement this function, make sure it calls + Destroy() for the popup control and also deletes @a this object + (usually as the last thing). */ virtual void DestroyPopup(); @@ -340,9 +358,9 @@ struct wxComboCtrlFeatures You should avoid adding or deleting items in this event. @endEventTable - @library{wxbase} + @library{wxcore} @category{ctrl} - @appearance{comboctrl.png} + @appearance{comboctrl} @see wxComboBox, wxChoice, wxOwnerDrawnComboBox, wxComboPopup, wxCommandEvent @@ -433,6 +451,35 @@ public: */ void EnablePopupAnimation(bool enable = true); + + /** + Returns true if given key combination should toggle the popup. + */ + virtual bool IsKeyPopupToggle(const wxKeyEvent& event) const; + + + /** + Prepare background of combo control or an item in a dropdown list in a + way typical on platform. This includes painting the focus/disabled + background and setting the clipping region. + + Unless you plan to paint your own focus indicator, you should always + call this in your wxComboPopup::PaintComboControl implementation. In + addition, it sets pen and text colour to what looks good and proper + against the background. + + flags: wxRendererNative flags: + wxCONTROL_ISSUBMENU: is drawing a list item instead of combo control + wxCONTROL_SELECTED: list item is selected + wxCONTROL_DISABLED: control/item is disabled + */ + virtual void PrepareBackground( wxDC& dc, const wxRect& rect, int flags ) const; + + /** + Returns true if focus indicator should be drawn in the control. + */ + bool ShouldDrawFocus() const; + /** Returns disabled button bitmap that has been set with SetButtonBitmaps(). @@ -690,7 +737,7 @@ public: @since 2.9.1 */ - virtual void SetHint(const wxString& hint); + virtual bool SetHint(const wxString& hint); /** Sets the insertion point in the text field. @@ -820,10 +867,10 @@ public: virtual void SetValue(const wxString& value); /** - Same as SetValue(), but also sends wxCommandEvent of type - @c wxEVT_COMMAND_TEXT_UPDATED if @a withEvent is @true. - */ - void SetValueWithEvent(const wxString& value, bool withEvent = true); + Changes value of the control as if user had done it by selecting an + item from a combo box drop-down list. + */ + void SetValueByUser(const wxString& value); /** Show the popup. @@ -864,7 +911,7 @@ protected: /** This member function is not normally called in application code. Instead, it can be implemented in a derived class to return default - wxComboPopup, incase @a popup is @NULL. + wxComboPopup, in case @a popup is @NULL. @note If you have implemented OnButtonClick() to do something else than show the popup, then DoSetPopupControl() must always set @a popup