]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/combo.h
Implement monitoring of file descriptors in wxMotif event loop.
[wxWidgets.git] / interface / wx / combo.h
index d3ba84ff39535f7b5b4bfaffc62d9377ea97937d..af5381eed4b39d16fe4f03d02785c1f6e6c1be01 100644 (file)
@@ -6,6 +6,20 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
+//
+// New window styles for wxComboCtrlBase
+//
+enum
+{
+    // Double-clicking a read-only combo triggers call to popup's OnComboPopup.
+    // In wxOwnerDrawnComboBox, for instance, it cycles item.
+    wxCC_SPECIAL_DCLICK             = 0x0100,
+
+    // Dropbutton acts like standard push button.
+    wxCC_STD_BUTTON                 = 0x0200
+};
+
+
 /**
     @class wxComboPopup
 
@@ -41,6 +55,10 @@ public:
         your popup class in non-standard way. The default implementation can
         handle both multiple-inherited popup control (as seen in wxComboCtrl
         samples) and one allocated separately in heap.
+
+        If you do completely re-implement this function, make sure it calls
+        Destroy() for the popup control and also deletes @a this object
+        (usually as the last thing).
     */
     virtual void DestroyPopup();
 
@@ -312,7 +330,7 @@ struct wxComboCtrlFeatures
     @style{wxCB_SORT}
            Sorts the entries in the list alphabetically.
     @style{wxTE_PROCESS_ENTER}
-           The control will generate the event @c wxEVT_COMMAND_TEXT_ENTER
+           The control will generate the event @c wxEVT_TEXT_ENTER
            (otherwise pressing Enter key is either processed internally by the
            control or used for navigation between dialog controls). Windows
            only.
@@ -327,22 +345,22 @@ struct wxComboCtrlFeatures
 
     @beginEventEmissionTable{wxCommandEvent}
     @event{EVT_TEXT(id, func)}
-           Process a @c wxEVT_COMMAND_TEXT_UPDATED event, when the text changes.
+           Process a @c wxEVT_TEXT event, when the text changes.
     @event{EVT_TEXT_ENTER(id, func)}
-           Process a @c wxEVT_COMMAND_TEXT_ENTER event, when RETURN is pressed in
+           Process a @c wxEVT_TEXT_ENTER event, when RETURN is pressed in
            the combo control.
     @event{EVT_COMBOBOX_DROPDOWN(id, func)}
-           Process a @c wxEVT_COMMAND_COMBOBOX_DROPDOWN event, which is generated
+           Process a @c wxEVT_COMBOBOX_DROPDOWN event, which is generated
            when the popup window is shown (drops down).
     @event{EVT_COMBOBOX_CLOSEUP(id, func)}
-           Process a @c wxEVT_COMMAND_COMBOBOX_CLOSEUP event, which is generated
+           Process a @c wxEVT_COMBOBOX_CLOSEUP event, which is generated
            when the popup window of the combo control disappears (closes up).
            You should avoid adding or deleting items in this event.
     @endEventTable
 
-    @library{wxbase}
+    @library{wxcore}
     @category{ctrl}
-    @appearance{comboctrl.png}
+    @appearance{comboctrl}
 
     @see wxComboBox, wxChoice, wxOwnerDrawnComboBox, wxComboPopup,
          wxCommandEvent
@@ -420,7 +438,7 @@ public:
         Dismisses the popup window.
 
         Notice that calling this function will generate a
-        @c wxEVT_COMMAND_COMBOBOX_CLOSEUP event.
+        @c wxEVT_COMBOBOX_CLOSEUP event.
 
         @since 2.9.2
     */
@@ -433,6 +451,35 @@ public:
     */
     void EnablePopupAnimation(bool enable = true);
 
+    
+    /**
+       Returns true if given key combination should toggle the popup.
+    */
+    virtual bool IsKeyPopupToggle(const wxKeyEvent& event) const;
+
+
+    /**
+       Prepare background of combo control or an item in a dropdown list in a
+       way typical on platform. This includes painting the focus/disabled
+       background and setting the clipping region.
+
+       Unless you plan to paint your own focus indicator, you should always
+       call this in your wxComboPopup::PaintComboControl implementation.  In
+       addition, it sets pen and text colour to what looks good and proper
+       against the background.
+
+       flags: wxRendererNative flags:
+              wxCONTROL_ISSUBMENU: is drawing a list item instead of combo control
+              wxCONTROL_SELECTED: list item is selected
+              wxCONTROL_DISABLED: control/item is disabled
+    */
+    virtual void PrepareBackground( wxDC& dc, const wxRect& rect, int flags ) const;
+
+    /**
+       Returns true if focus indicator should be drawn in the control.
+    */
+    bool ShouldDrawFocus() const;
+
     /**
         Returns disabled button bitmap that has been set with
         SetButtonBitmaps().
@@ -562,7 +609,7 @@ public:
 
         @param generateEvent
             Set this to @true in order to generate
-            @c wxEVT_COMMAND_COMBOBOX_CLOSEUP event.
+            @c wxEVT_COMBOBOX_CLOSEUP event.
 
         @deprecated Use Dismiss() instead.
     */
@@ -605,7 +652,7 @@ public:
         Shows the popup portion of the combo control.
 
         Notice that calling this function will generate a
-        @c wxEVT_COMMAND_COMBOBOX_DROPDOWN event.
+        @c wxEVT_COMBOBOX_DROPDOWN event.
 
         @since 2.9.2
     */
@@ -690,7 +737,7 @@ public:
 
         @since 2.9.1
     */
-    virtual void SetHint(const wxString& hint);
+    virtual bool SetHint(const wxString& hint);
 
     /**
         Sets the insertion point in the text field.
@@ -820,10 +867,10 @@ public:
     virtual void SetValue(const wxString& value);
 
     /**
-        Same as SetValue(), but also sends wxCommandEvent of type
-        @c wxEVT_COMMAND_TEXT_UPDATED if @a withEvent is @true.
-    */
-    void SetValueWithEvent(const wxString& value, bool withEvent = true);
+       Changes value of the control as if user had done it by selecting an
+       item from a combo box drop-down list.
+     */
+    void SetValueByUser(const wxString& value);
 
     /**
         Show the popup.