X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/23324ae1c7938ba904770fc456d3c07764b9c5e9..cd3eb0f7bbbb9b2954ff497e06bff52eb012076f:/interface/odcombo.h diff --git a/interface/odcombo.h b/interface/odcombo.h index 233b87e6cf..a47cd424e8 100644 --- a/interface/odcombo.h +++ b/interface/odcombo.h @@ -1,107 +1,119 @@ ///////////////////////////////////////////////////////////////////////////// // Name: odcombo.h -// Purpose: documentation for wxOwnerDrawnComboBox class +// Purpose: interface of wxOwnerDrawnComboBox // Author: wxWidgets team // RCS-ID: $Id$ // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// + +enum wxOwnerDrawnComboBoxPaintingFlags +{ + /** + Combo control is being painted, instead of a list item. + Argument item may be @c wxNOT_FOUND in this case. + */ + wxODCB_PAINTING_CONTROL = 0x0001, + + /** + An item with selection background is being painted. + DC text colour should already be correct. + */ + wxODCB_PAINTING_SELECTED = 0x0002 +}; + /** @class wxOwnerDrawnComboBox @wxheader{odcombo.h} - + wxOwnerDrawnComboBox is a combobox with owner-drawn list items. - In essence, it is a wxComboCtrl with - wxVListBox popup and wxControlWithItems + In essence, it is a wxComboCtrl with wxVListBox popup and wxControlWithItems interface. - + Implementing item drawing and measuring is similar to wxVListBox. Application needs to subclass wxOwnerDrawnComboBox and implement - wxOwnerDrawnComboBox::OnDrawItem, wxOwnerDrawnComboBox::OnMeasureItem - and wxOwnerDrawnComboBox::OnMeasureItemWidth. - + OnDrawItem(), OnMeasureItem() and OnMeasureItemWidth(). + @beginStyleTable - @style{wxODCB_DCLICK_CYCLES}: + @style{wxODCB_DCLICK_CYCLES} Double-clicking cycles item if wxCB_READONLY is also used. Synonymous with wxCC_SPECIAL_DCLICK. - @style{wxODCB_STD_CONTROL_PAINT}: + @style{wxODCB_STD_CONTROL_PAINT} Control itself is not custom painted using OnDrawItem. Even if this style is not used, writable wxOwnerDrawnComboBox is never custom - painted unless SetCustomPaintWidth is called. + painted unless SetCustomPaintWidth() is called. @endStyleTable - - @beginEventTable - @event{EVT_COMBOBOX(id\, func)}: + + @see wxComboCtrl window styles and @ref overview_windowstyles. + + @beginEventTable{wxCommandEvent} + @event{EVT_COMBOBOX(id, func)} Process a wxEVT_COMMAND_COMBOBOX_SELECTED event, when an item on - the list is selected. Note that calling GetValue returns the new + the list is selected. Note that calling GetValue() returns the new value of selection. @endEventTable - + + @see Events emitted by wxComboCtrl. + @library{wxadv} @category{ctrl} - @appearance{ownerdrawncombobox.png} - - @seealso - wxComboCtrl, wxComboBox, wxVListBox, wxCommandEvent + + + @see wxComboCtrl, wxComboBox, wxVListBox, wxCommandEvent */ class wxOwnerDrawnComboBox : public wxComboCtrl { public: + /** + Default constructor. + */ + wxOwnerDrawnComboBox(); + //@{ /** Constructor, creating and showing a owner-drawn combobox. - - @param parent - Parent window. Must not be @NULL. - - @param id - Window identifier. The value wxID_ANY indicates a default value. - - @param value - Initial selection string. An empty string indicates no selection. - - @param pos - Window position. - - @param size - Window size. If wxDefaultSize is specified then the window is sized - appropriately. - - @param n - Number of strings with which to initialise the control. - - @param choices - An array of strings with which to initialise the control. - - @param style - Window style. See wxOwnerDrawnComboBox. - - @param validator - Window validator. - - @param name - Window name. - - @sa Create(), wxValidator + + @param parent + Parent window. Must not be @NULL. + @param id + Window identifier. The value @c wxID_ANY indicates a default value. + @param value + Initial selection string. An empty string indicates no selection. + @param pos + Window position. + @param size + Window size. + If ::wxDefaultSize is specified then the window is sized appropriately. + @param n + Number of strings with which to initialise the control. + @param choices + An array of strings with which to initialise the control. + @param style + Window style. See wxOwnerDrawnComboBox. + @param validator + Window validator. + @param name + Window name. + + @see Create(), wxValidator */ - wxOwnerDrawnComboBox(); - wxOwnerDrawnComboBox(wxWindow* parent, wxWindowID id, - const wxString& value = "", - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, - const wxString choices[] = @NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = "comboBox"); - wxOwnerDrawnComboBox(wxWindow* parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = "comboBox"); + wxOwnerDrawnComboBox(wxWindow* parent, wxWindowID id, + const wxString& value = "", + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + int n = 0, + const wxString[] choices = NULL, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = "comboBox"); + wxOwnerDrawnComboBox(wxWindow* parent, wxWindowID id, + const wxString& value, + const wxPoint& pos, + const wxSize& size, + const wxArrayString& choices, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = "comboBox"); //@} /** @@ -111,10 +123,10 @@ public: //@{ /** - Creates the combobox for two-step construction. Derived classes - should call or replace this function. See - wxOwnerDrawnComboBox() - for further details. + Creates the combobox for two-step construction. + See wxOwnerDrawnComboBox() for further details. + + @remarks Derived classes should call or replace this function. */ bool Create(wxWindow* parent, wxWindowID id, const wxString& value = "", @@ -124,74 +136,74 @@ public: long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = "comboBox"); - bool Create(wxWindow* parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = "comboBox"); + bool Create(wxWindow* parent, wxWindowID id, + const wxString& value, + const wxPoint& pos, + const wxSize& size, + const wxArrayString& choices, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = "comboBox"); //@} /** Returns index to the widest item in the list. */ - int GetWidestItem(); + int GetWidestItem() const; /** Returns width of the widest item in the list. */ - int GetWidestItemWidth(); + int GetWidestItemWidth() const; /** This method is used to draw the items background and, maybe, a border around it. - + The base class version implements a reasonable default behaviour which consists in drawing the selected item with the standard background colour and drawing a border around the item if it is either selected or current. - - @remarks flags has the same meaning as with OnDrawItem. + + @remarks flags has the same meaning as with OnDrawItem(). */ void OnDrawBackground(wxDC& dc, const wxRect& rect, int item, - int flags); + int flags) const; /** The derived class may implement this function to actually draw the item - with the given index on the provided DC. If function is not implemented, - the item text is simply drawn, as if the control was a normal combobox. - - @param dc - The device context to use for drawing - - @param rect - The bounding rectangle for the item being drawn (DC clipping - region is set to this rectangle before calling this function) - - @param item - The index of the item to be drawn - - @param flags - Combines any of the following flag values: + with the given index on the provided DC. + + If function is not implemented, the item text is simply drawn, as if the control + was a normal combobox. + + @param dc + The device context to use for drawing + @param rect + The bounding rectangle for the item being drawn (DC clipping + region is set to this rectangle before calling this function) + @param item + The index of the item to be drawn + @param flags + A combination of the ::wxOwnerDrawnComboBoxPaintingFlags enumeration values. */ void OnDrawItem(wxDC& dc, const wxRect& rect, int item, - int flags); + int flags) const; /** The derived class may implement this method to return the height of the specified item (in pixels). - + The default implementation returns text height, as if this control was a normal combobox. */ - wxCoord OnMeasureItem(size_t item); + wxCoord OnMeasureItem(size_t item) const; /** The derived class may implement this method to return the width of the specified item (in pixels). If -1 is returned, then the item text width is used. - + The default implementation returns -1. */ - wxCoord OnMeasureItemWidth(size_t item); + wxCoord OnMeasureItemWidth(size_t item) const; }; +