revisions contributed by Utensil Candel

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53041 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Francesco Montorsi
2008-04-06 12:52:58 +00:00
parent 79456eac49
commit 74bf4e6430
6 changed files with 370 additions and 166 deletions

View File

@@ -11,14 +11,12 @@
@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}:
@@ -27,16 +25,18 @@
@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{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}
@@ -46,6 +46,11 @@
class wxOwnerDrawnComboBox : public wxComboCtrl
{
public:
/**
Default constructor.
*/
wxOwnerDrawnComboBox();
//@{
/**
Constructor, creating and showing a owner-drawn combobox.
@@ -53,13 +58,13 @@ public:
@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
Window size. If @c wxDefaultSize is specified then the window is
sized
appropriately.
@param n
@@ -75,13 +80,12 @@ public:
@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");
@@ -102,10 +106,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 = "",
@@ -137,19 +141,22 @@ 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
@@ -160,6 +167,15 @@ public:
The index of the item to be drawn
@param flags
Combines any of the following flag values:
@beginStyleTable
@style{wxODCB_PAINTING_CONTROL}:
Combo control is being painted, instead of a list item.
Argument item may be @c wxNOT_FOUND in this case.
@style{wxODCB_PAINTING_SELECTED}:
An item with selection background is being painted.
DC text colour should already be correct.
@endStyleTable
*/
void OnDrawItem(wxDC& dc, const wxRect& rect, int item,
int flags) const;
@@ -167,6 +183,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.
*/
@@ -176,6 +193,7 @@ 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;