]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mac/carbon/listbox.h
wxTheColourDatabase->Find() can fail.
[wxWidgets.git] / include / wx / mac / carbon / listbox.h
index cde52946d117e73494fc78c3b1496435dfb6ecfb..59e2174880d98cd3717399813a5245da41fef785 100644 (file)
 // forward decl for GetSelections()
 class wxArrayInt;
 
-// forward decl for GetPeer() 
-class wxMacListControl;
+// exposed for subclasses like wxCheckListBox
+
+class wxMacListControl
+{
+public:
+    virtual void            MacDelete( unsigned int n ) = 0;
+    virtual void            MacInsert( unsigned int n, const wxString& item ) = 0;
+    virtual void            MacInsert( unsigned int n, const wxArrayString& items ) = 0;
+    // returns index of newly created line
+    virtual int             MacAppend( const wxString& item ) = 0;
+    virtual void            MacSetString( unsigned int n, const wxString& item ) = 0;
+    virtual void            MacClear() = 0;
+    virtual void            MacDeselectAll() = 0;
+    virtual void            MacSetSelection( unsigned int n, bool select ) = 0;
+    virtual int             MacGetSelection() const = 0;
+    virtual int             MacGetSelections( wxArrayInt& aSelections ) const = 0;
+    virtual bool            MacIsSelected( unsigned int n ) const = 0;
+    virtual void            MacScrollTo( unsigned int n ) = 0;
+    virtual wxString        MacGetString( unsigned int n) const = 0;
+    virtual unsigned int    MacGetCount() const = 0;
+    
+    virtual void            MacSetClientData( unsigned int n, void * data) = 0;
+    virtual void *          MacGetClientData( unsigned int) const = 0;
+};
 
 // List box item
 
@@ -40,7 +62,7 @@ public:
 
     wxListBox(
         wxWindow *parent,
-        wxWindowID id,
+        wxWindowID winid,
         const wxPoint& pos = wxDefaultPosition,
         const wxSize& size = wxDefaultSize,
         int n = 0, const wxString choices[] = NULL,
@@ -48,12 +70,12 @@ public:
         const wxValidator& validator = wxDefaultValidator,
         const wxString& name = wxListBoxNameStr)
     {
-        Create(parent, id, pos, size, n, choices, style, validator, name);
+        Create(parent, winid, pos, size, n, choices, style, validator, name);
     }
 
     wxListBox(
         wxWindow *parent,
-        wxWindowID id,
+        wxWindowID winid,
         const wxPoint& pos,
         const wxSize& size,
         const wxArrayString& choices,
@@ -61,12 +83,12 @@ public:
         const wxValidator& validator = wxDefaultValidator,
         const wxString& name = wxListBoxNameStr)
     {
-        Create(parent, id, pos, size, choices, style, validator, name);
+        Create(parent, winid, pos, size, choices, style, validator, name);
     }
 
     bool Create(
         wxWindow *parent,
-        wxWindowID id,
+        wxWindowID winid,
         const wxPoint& pos = wxDefaultPosition,
         const wxSize& size = wxDefaultSize,
         int n = 0,
@@ -77,7 +99,7 @@ public:
 
     bool Create(
         wxWindow *parent,
-        wxWindowID id,
+        wxWindowID winid,
         const wxPoint& pos,
         const wxSize& size,
         const wxArrayString& choices,
@@ -101,40 +123,34 @@ public:
     virtual int GetSelection() const;
     virtual int GetSelections(wxArrayInt& aSelections) const;
 
+    virtual void EnsureVisible(int n);
+
     // wxCheckListBox support
     static wxVisualAttributes
     GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
-
-    wxMacListControl * GetPeer() const { return (wxMacListControl*)m_peer; }
-
-    wxArrayString m_stringArray;
-    wxListDataArray m_dataArray;
     
+    wxMacListControl* GetPeer() const;
+
 protected:
-    // common creation for all databrowser list implementations
-    wxMacListControl* CreateMacListControl(const wxPoint& pos, const wxSize& size, long style);
-    
-    // internal storage for line n has changed, issue a redraw
-    void MacUpdateLine(int n);
-    
-    virtual void DoSetSelection(int n, bool select);
+    // from wxItemContainer    
     virtual int DoAppend(const wxString& item);
-    virtual void DoInsertItems(const wxArrayString& items, unsigned int pos);
-    virtual void DoSetItems(const wxArrayString& items, void **clientData);
-    virtual void DoSetFirstItem(int n);
     virtual void DoSetItemClientData(unsigned int n, void* clientData);
     virtual void* DoGetItemClientData(unsigned int n) const;
     virtual void DoSetItemClientObject(unsigned int n, wxClientData* clientData);
     virtual wxClientData* DoGetItemClientObject(unsigned int n) const;
-    virtual void DoSetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO);
+
+    // from wxListBoxBase
+    virtual void DoSetSelection(int n, bool select);
+    virtual void DoInsertItems(const wxArrayString& items, unsigned int pos);
+    virtual void DoSetItems(const wxArrayString& items, void **clientData);
+    virtual void DoSetFirstItem(int n);
     virtual int DoListHitTest(const wxPoint& point) const;
-    virtual wxSize DoGetBestSize() const;
 
     // free memory (common part of Clear() and dtor)
     // prevent collision with some BSD definitions of macro Free()
     void FreeData();
 
-    unsigned int m_noItems;
+    virtual wxSize DoGetBestSize() const;
 
 private:
     DECLARE_DYNAMIC_CLASS(wxListBox)