| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        odcombo.h
 
- // Purpose:     interface of wxOwnerDrawnComboBox
 
- // Author:      wxWidgets team
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- 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
 
- };
 
- /**
 
-    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
 
-     wxOwnerDrawnComboBox is a combobox with owner-drawn list items.
 
-     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
 
-     OnDrawItem(), OnMeasureItem() and OnMeasureItemWidth().
 
-     @beginStyleTable
 
-     @style{wxODCB_DCLICK_CYCLES}
 
-            Double-clicking cycles item if wxCB_READONLY is also used.
 
-            Synonymous with wxCC_SPECIAL_DCLICK.
 
-     @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.
 
-     @endStyleTable
 
-     @see wxComboCtrl window styles and @ref overview_windowstyles.
 
-     @beginEventEmissionTable{wxCommandEvent}
 
-     @event{EVT_COMBOBOX(id, func)}
 
-            Process a wxEVT_COMBOBOX event, when an item on
 
-            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}
 
-     @see wxComboCtrl, wxComboBox, wxVListBox, wxCommandEvent
 
- */
 
- class wxOwnerDrawnComboBox : public wxComboCtrl, public wxItemContainer
 
- {
 
- 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 @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(wxWindow* parent, wxWindowID id,
 
-                          const wxString& value = wxEmptyString,
 
-                          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");
 
-     /**
 
-         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,
 
-                          const wxSize& size,
 
-                          const wxArrayString& choices,
 
-                          long style = 0,
 
-                          const wxValidator& validator = wxDefaultValidator,
 
-                          const wxString& name = "comboBox");
 
-     /**
 
-         Destructor, destroying the owner-drawn combobox.
 
-     */
 
-     virtual ~wxOwnerDrawnComboBox();
 
-     //@{
 
-     /**
 
-         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 = wxEmptyString,
 
-                 const wxPoint& pos = wxDefaultPosition,
 
-                 const wxSize& size = wxDefaultSize,
 
-                 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,
 
-                 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 = wxComboBoxNameStr);
 
-     //@}
 
-     /**
 
-         Returns index to the widest item in the list.
 
-     */
 
-     virtual int GetWidestItem();
 
-     /**
 
-         Returns width of the widest item in the list.
 
-     */
 
-     virtual int GetWidestItemWidth();
 
- protected:
 
-     /**
 
-         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().
 
-     */
 
-     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
 
-         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.
 
-     */
 
-     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
 
-         specified item (in pixels).
 
-         The default implementation returns text height, as if this control was
 
-         a normal combobox.
 
-     */
 
-     virtual 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.
 
-     */
 
-     virtual wxCoord OnMeasureItemWidth(size_t item) const;
 
- };
 
 
  |