X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/328f5751e8a06727b137189fe04891a9f43bfc8b..f9d6e4e454ac06b3303c71081b289152c8867ec1:/interface/odcombo.h diff --git a/interface/odcombo.h b/interface/odcombo.h index e052631403..c4e0bc01b8 100644 --- a/interface/odcombo.h +++ b/interface/odcombo.h @@ -1,68 +1,89 @@ ///////////////////////////////////////////////////////////////////////////// // 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. + 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. + 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 @@ -73,16 +94,15 @@ public: 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, + const wxString[] choices = NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = "comboBox"); @@ -103,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 = "", @@ -138,20 +158,23 @@ public: /** 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) 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. - + 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 @@ -160,7 +183,7 @@ public: @param item The index of the item to be drawn @param flags - Combines any of the following flag values: + A combination of the ::wxOwnerDrawnComboBoxPaintingFlags enumeration values. */ void OnDrawItem(wxDC& dc, const wxRect& rect, int item, int flags) const; @@ -168,6 +191,7 @@ public: /** 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. */ @@ -177,7 +201,9 @@ public: 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) const; }; +