X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b91c4601f2cc8fab375dc49a0a1222d58065cfdb..6bd1764f2716e8d0814edd6374b20960bba23579:/interface/wx/combo.h diff --git a/interface/wx/combo.h b/interface/wx/combo.h index b22807e158..38ef1f9342 100644 --- a/interface/wx/combo.h +++ b/interface/wx/combo.h @@ -56,6 +56,11 @@ public: */ virtual wxSize GetAdjustedSize(int minWidth, int prefHeight, int maxHeight); + /** + Returns pointer to the associated parent wxComboCtrl. + */ + wxComboCtrl* GetComboCtrl() const; + /** The derived class must implement this to return pointer to the associated control created in Create(). @@ -131,11 +136,12 @@ public: */ virtual void SetStringValue(const wxString& value); +protected: /** - Parent wxComboCtrl. This is parameter has been prepared before Init() - is called. + Parent wxComboCtrl. This member variable is prepared automatically + before Init() is called. */ - wxComboCtrl m_combo; + wxComboCtrl* m_combo; }; @@ -153,7 +159,7 @@ struct wxComboCtrlFeatures BitmapButton = 0x0002, ///< Button may be replaced with bitmap. ButtonSpacing = 0x0004, ///< Button can have spacing from the edge ///< of the control. - TextIndent = 0x0008, ///< wxComboCtrl::SetTextIndent() can be used. + TextIndent = 0x0008, ///< wxComboCtrl::SetMargins() can be used. PaintControl = 0x0010, ///< Combo control itself can be custom painted. PaintWritable = 0x0020, ///< A variable-width area in front of writable ///< combo control's textctrl can be custom @@ -264,6 +270,7 @@ struct wxComboCtrlFeatures wxListViewComboPopup* popupCtrl = new wxListViewComboPopup(); + // It is important to call SetPopupControl() as soon as possible comboCtrl->SetPopupControl(popupCtrl); // Populate using wxListView methods @@ -291,17 +298,23 @@ struct wxComboCtrlFeatures Drop button will behave more like a standard push button. @endStyleTable - @beginEventTable{wxCommandEvent} + @beginEventEmissionTable{wxCommandEvent} @event{EVT_TEXT(id, func)} Process a wxEVT_COMMAND_TEXT_UPDATED event, when the text changes. @event{EVT_TEXT_ENTER(id, func)} Process a wxEVT_COMMAND_TEXT_ENTER event, when RETURN is pressed in the combo control. + @event{EVT_COMBOX_DROPDOWN(id, func)} + Process a wxEVT_COMMAND_COMBOBOX_DROPDOWN event, which is generated + when the popup window is shown (drops down). + @event{EVT_COMBOX_CLOSEUP(id, func)} + Process a wxEVT_COMMAND_COMBOBOX_CLOSEUP event, which is generated + when the popup window of the combo control disappears (closes up). @endEventTable @library{wxbase} @category{ctrl} - + @appearance{comboctrl.png} @see wxComboBox, wxChoice, wxOwnerDrawnComboBox, wxComboPopup, wxCommandEvent @@ -325,9 +338,10 @@ public: Initial selection string. An empty string indicates no selection. @param pos Window position. + If ::wxDefaultPosition is specified then a default position is chosen. @param size - Window size. If wxDefaultSize is specified then the window is sized - appropriately. + Window size. + If ::wxDefaultSize is specified then the window is sized appropriately. @param style Window style. See wxComboCtrl. @param validator @@ -446,6 +460,19 @@ public: */ virtual long GetLastPosition() const; + /** + Returns the margins used by the control. The @c x field of the returned + point is the horizontal margin and the @c y field is the vertical one. + + @remarks If given margin cannot be accurately determined, its value + will be set to -1. + + @see SetMargins() + + @since 2.9.1 + */ + wxPoint GetMargins() const; + /** Returns current popup interface that has been set with SetPopupControl(). @@ -464,6 +491,8 @@ public: /** Returns actual indentation in pixels. + + @deprecated Use GetMargins() instead. */ wxCoord GetTextIndent() const; @@ -481,8 +510,12 @@ public: /** Dismisses the popup window. + + @param generateEvent + Set this to @true in order to generate + wxEVT_COMMAND_COMBOBOX_CLOSEUP event. */ - virtual void HidePopup(); + virtual void HidePopup(bool generateEvent=false); /** Returns @true if the popup is currently shown @@ -599,6 +632,21 @@ public: */ virtual void SetInsertionPointEnd(); + //@{ + /** + Attempts to set the control margins. When margins are given as wxPoint, + x indicates the left and y the top margin. Use -1 to indicate that + an existing value should be used. + + @return + @true if setting of all requested margins was successful. + + @since 2.9.1 + */ + bool SetMargins(const wxPoint& pt); + bool SetMargins(wxCoord left, wxCoord top = -1); + //@} + /** Set side of the control to which the popup will align itself. Valid values are @c wxLEFT, @c wxRIGHT and 0. The default value 0 means that @@ -668,6 +716,8 @@ public: This will set the space in pixels between left edge of the control and the text, regardless whether control is read-only or not. Value -1 can be given to indicate platform default. + + @deprecated Use SetMargins() instead. */ void SetTextIndent(int indent);