// Author: Jaakko Salli
// Modified by:
// Created: Apr-30-2006
-// RCS-ID: $Id$
// Copyright: (c) Jaakko Salli
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// required virtuals
virtual void Init();
virtual bool Create(wxWindow* parent);
+ virtual void SetFocus();
virtual wxWindow *GetControl() { return this; }
virtual void SetStringValue( const wxString& value );
virtual wxString GetStringValue() const;
virtual wxSize GetAdjustedSize( int minWidth, int prefHeight, int maxHeight );
virtual void PaintComboControl( wxDC& dc, const wxRect& rect );
virtual void OnComboKeyEvent( wxKeyEvent& event );
+ virtual void OnComboCharEvent( wxKeyEvent& event );
virtual void OnComboDoubleClick();
virtual bool LazyCreate();
+ virtual bool FindItem(const wxString& item, wxString* trueItem);
// Item management
void SetSelection( int item );
protected:
- // Called by OnComboDoubleClick and OnComboKeyEvent
- bool HandleKey( int keycode, bool saturate, wxChar unicode = 0 );
+ // Called by OnComboDoubleClick and OnCombo{Key,Char}Event
+ bool HandleKey( int keycode, bool saturate, wxChar keychar = 0 );
// sends combobox select event from the parent combo control
void SendComboBoxEvent( int selection );
// filter mouse move events happening outside the list box
// move selection with cursor
void OnMouseMove(wxMouseEvent& event);
- void OnMouseWheel(wxMouseEvent& event);
void OnKey(wxKeyEvent& event);
+ void OnChar(wxKeyEvent& event);
void OnLeftClick(wxMouseEvent& event);
// Return the widest item width (recalculating it if necessary)
// the wxComboCtrl.
// ----------------------------------------------------------------------------
-class WXDLLIMPEXP_ADV wxOwnerDrawnComboBox : public wxComboCtrl,
- public wxItemContainer
+class WXDLLIMPEXP_ADV wxOwnerDrawnComboBox :
+ public wxWindowWithItems<wxComboCtrl, wxItemContainer>
{
//friend class wxComboPopupWindow;
friend class wxVListBoxComboPopup;
public:
// ctors and such
- wxOwnerDrawnComboBox() : wxComboCtrl() { Init(); }
+ wxOwnerDrawnComboBox() { Init(); }
wxOwnerDrawnComboBox(wxWindow *parent,
wxWindowID id,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxComboBoxNameStr)
- : wxComboCtrl()
{
Init();
wxOwnerDrawnComboBox(wxWindow *parent,
wxWindowID id,
- const wxString& value,
- const wxPoint& pos,
- const wxSize& size,
- const wxArrayString& choices,
- long style,
+ const wxString& value = wxEmptyString,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ const wxArrayString& choices = wxArrayString(),
+ long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxComboBoxNameStr);
}
// wxControlWithItems methods
- virtual void DoClear();
- virtual void DoDeleteOneItem(unsigned int n);
virtual unsigned int GetCount() const;
virtual wxString GetString(unsigned int n) const;
virtual void SetString(unsigned int n, const wxString& s);
virtual int FindString(const wxString& s, bool bCase = false) const;
virtual void Select(int n);
virtual int GetSelection() const;
+
+ // Override these just to maintain consistency with virtual methods
+ // between classes.
+ virtual void Clear();
+ virtual void GetSelection(long *from, long *to) const;
+
virtual void SetSelection(int n) { Select(n); }
virtual bool IsSorted() const { return HasFlag(wxCB_SORT); }
- wxCONTROL_ITEMCONTAINER_CLIENTDATAOBJECT_RECAST
-
protected:
+ virtual void DoClear();
+ virtual void DoDeleteOneItem(unsigned int n);
// Callback for drawing. Font, background and text colour have been
// prepared according to selection, focus and such.
// Callback for item width, or -1 for default/undetermined
virtual wxCoord OnMeasureItemWidth( size_t item ) const;
+ // override base implementation so we can return the size for the
+ // largest item
+ virtual wxSize DoGetBestSize() const;
+
// Callback for background drawing. Flags are same as with
// OnDrawItem.
virtual void OnDrawBackground( wxDC& dc, const wxRect& rect, int item, int flags ) const;