#ifndef __GTKLISTBOXH__
#define __GTKLISTBOXH__
-#ifdef __GNUG__
-#pragma interface
+#if defined(__GNUG__) && !defined(__APPLE__)
+#pragma interface "listbox.h"
#endif
#include "wx/list.h"
+class WXDLLIMPEXP_BASE wxSortedArrayString;
+
//-----------------------------------------------------------------------------
// wxListBox
//-----------------------------------------------------------------------------
virtual void DoSetFirstItem(int n);
- virtual void DoSetClientData(int n, void* clientData);
- virtual void* DoGetClientData(int n) const;
- virtual void DoSetClientObject(int n, wxClientData* clientData);
- virtual wxClientData* DoGetClientObject(int n) const;
+ virtual void DoSetItemClientData(int n, void* clientData);
+ virtual void* DoGetItemClientData(int n) const;
+ virtual void DoSetItemClientObject(int n, wxClientData* clientData);
+ virtual wxClientData* DoGetItemClientObject(int n) const;
// implementation from now on
-#if wxUSE_DRAG_AND_DROP
- void SetDropTarget( wxDropTarget *dropTarget );
-#endif
-
- void DisableEvents();
- void EnableEvents();
- void AppendWithoutSorting( const wxString &item );
- int GetIndex( GtkWidget *item ) const;
+ void GtkAddItem( const wxString &item, int pos=-1 );
+ int GtkGetIndex( GtkWidget *item ) const;
GtkWidget *GetConnectWidget();
bool IsOwnGtkWindow( GdkWindow *window );
void ApplyWidgetStyle();
#endif // wxUSE_TOOLTIPS
GtkList *m_list;
- wxList m_clientData;
+ wxList m_clientList;
#if wxUSE_CHECKLISTBOX
bool m_hasCheckBoxes;
#endif // wxUSE_CHECKLISTBOX
+ int m_prevSelection;
+ bool m_blockEvent;
+
+ virtual void FixUpMouseEvent(GtkWidget *widget, wxCoord& x, wxCoord& y);
+
+protected:
+ virtual wxSize DoGetBestSize() const;
+
+ // return the string label for the given item
+ wxString GetRealLabel(struct _GList *item) const;
+
private:
// this array is only used for controls with wxCB_SORT style, so only
// allocate it if it's needed (hence using pointer)