X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ae3c17b4013e80b99976c750c19fca47729517f6..36a0190ebd5bd9a7302f60f6dcd608b80574e21c:/interface/wx/odcombo.h diff --git a/interface/wx/odcombo.h b/interface/wx/odcombo.h index a47cd424e8..e7fcef6cd5 100644 --- a/interface/wx/odcombo.h +++ b/interface/wx/odcombo.h @@ -2,8 +2,7 @@ // Name: odcombo.h // Purpose: interface of wxOwnerDrawnComboBox // Author: wxWidgets team -// RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -22,9 +21,29 @@ enum wxOwnerDrawnComboBoxPaintingFlags wxODCB_PAINTING_SELECTED = 0x0002 }; + +/** + New window styles for wxOwnerDrawnComboBox +*/ +enum +{ + /** + Double-clicking cycles item if wxCB_READONLY is also used. + */ + wxODCB_DCLICK_CYCLES = wxCC_SPECIAL_DCLICK, + + /** + If used, control itself is not custom paint using callback. + Even if this is not used, writable combo is never custom paint + until SetCustomPaintWidth is called + */ + wxODCB_STD_CONTROL_PAINT = 0x1000 +}; + + + /** @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 @@ -46,9 +65,9 @@ enum wxOwnerDrawnComboBoxPaintingFlags @see wxComboCtrl window styles and @ref overview_windowstyles. - @beginEventTable{wxCommandEvent} + @beginEventEmissionTable{wxCommandEvent} @event{EVT_COMBOBOX(id, func)} - Process a wxEVT_COMMAND_COMBOBOX_SELECTED event, when an item on + Process a wxEVT_COMBOBOX event, when an item on the list is selected. Note that calling GetValue() returns the new value of selection. @endEventTable @@ -57,11 +76,11 @@ enum wxOwnerDrawnComboBoxPaintingFlags @library{wxadv} @category{ctrl} - + @appearance{ownerdrawncombobox} @see wxComboCtrl, wxComboBox, wxVListBox, wxCommandEvent */ -class wxOwnerDrawnComboBox : public wxComboCtrl +class wxOwnerDrawnComboBox : public wxComboCtrl, public wxItemContainer { public: /** @@ -69,7 +88,6 @@ public: */ wxOwnerDrawnComboBox(); - //@{ /** Constructor, creating and showing a owner-drawn combobox. @@ -98,14 +116,39 @@ public: @see Create(), wxValidator */ wxOwnerDrawnComboBox(wxWindow* parent, wxWindowID id, - const wxString& value = "", + const wxString& value = wxEmptyString, 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"); + /** + Constructor, creating and showing a owner-drawn combobox. + + @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 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(wxWindow* parent, wxWindowID id, const wxString& value, const wxPoint& pos, @@ -114,12 +157,11 @@ public: long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = "comboBox"); - //@} /** Destructor, destroying the owner-drawn combobox. */ - ~wxOwnerDrawnComboBox(); + virtual ~wxOwnerDrawnComboBox(); //@{ /** @@ -128,33 +170,46 @@ public: @remarks Derived classes should call or replace this function. */ - bool Create(wxWindow* parent, wxWindowID id, - const wxString& value = "", + bool Create(wxWindow *parent, + wxWindowID id, + const wxString& value = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - int n, const wxString choices[], long style = 0, const wxValidator& validator = wxDefaultValidator, - const wxString& name = "comboBox"); - bool Create(wxWindow* parent, wxWindowID id, + const wxString& name = wxComboBoxNameStr); + bool Create(wxWindow *parent, + wxWindowID id, + const wxString& value, + const wxPoint& pos, + const wxSize& size, + int n, + const wxString choices[], + long style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxComboBoxNameStr); + 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"); + const wxString& name = wxComboBoxNameStr); //@} /** Returns index to the widest item in the list. */ - int GetWidestItem() const; + virtual int GetWidestItem(); /** Returns width of the widest item in the list. */ - int GetWidestItemWidth() const; + virtual int GetWidestItemWidth(); + +protected: /** This method is used to draw the items background and, maybe, a border around it. @@ -165,8 +220,8 @@ public: @remarks flags has the same meaning as with OnDrawItem(). */ - void OnDrawBackground(wxDC& dc, const wxRect& rect, int item, - int flags) const; + virtual void OnDrawBackground(wxDC& dc, const wxRect& rect, int item, + int flags) const; /** The derived class may implement this function to actually draw the item @@ -185,8 +240,8 @@ public: @param flags A combination of the ::wxOwnerDrawnComboBoxPaintingFlags enumeration values. */ - void OnDrawItem(wxDC& dc, const wxRect& rect, int item, - int flags) const; + virtual void OnDrawItem(wxDC& dc, const wxRect& rect, int item, + int flags) const; /** The derived class may implement this method to return the height of the @@ -195,7 +250,7 @@ public: The default implementation returns text height, as if this control was a normal combobox. */ - wxCoord OnMeasureItem(size_t item) const; + virtual wxCoord OnMeasureItem(size_t item) const; /** The derived class may implement this method to return the width of the @@ -204,6 +259,6 @@ public: The default implementation returns -1. */ - wxCoord OnMeasureItemWidth(size_t item) const; + virtual wxCoord OnMeasureItemWidth(size_t item) const; };