]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/radiobox.h
added template wxScopedArray<> too
[wxWidgets.git] / include / wx / radiobox.h
index dc9ab4be18c662bbf02565af3b9485d8a2cd90d1..d5d0582026b81ec3079c42521a5243ed6bb6581d 100644 (file)
 
 #include "wx/dynarray.h"
 
-class WXDLLEXPORT wxToolTip;
+class WXDLLIMPEXP_FWD_CORE wxToolTip;
 
 WX_DEFINE_EXPORTED_ARRAY_PTR(wxToolTip *, wxToolTipArray);
 
 #endif // wxUSE_TOOLTIPS
 
-extern WXDLLEXPORT_DATA(const wxChar) wxRadioBoxNameStr[];
+extern WXDLLIMPEXP_DATA_CORE(const char) wxRadioBoxNameStr[];
 
 // ----------------------------------------------------------------------------
 // wxRadioBoxBase is not a normal base class, but rather a mix-in because the
@@ -34,7 +34,7 @@ extern WXDLLEXPORT_DATA(const wxChar) wxRadioBoxNameStr[];
 // example, it is a wxStaticBox in wxUniv and wxMSW but not in other ports
 // ----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxRadioBoxBase : public wxItemContainerImmutable
+class WXDLLIMPEXP_CORE wxRadioBoxBase : public wxItemContainerImmutable
 {
 public:
     virtual ~wxRadioBoxBase();
@@ -49,7 +49,8 @@ public:
     unsigned int GetColumnCount() const { return m_numCols; }
     unsigned int GetRowCount() const { return m_numRows; }
 
-    // return the item above/below/to the left/right of the given one
+    // return the next active (i.e. shown and not disabled) item above/below/to
+    // the left/right of the given one
     int GetNextItem(int item, wxDirection dir, long style) const;
 
 #if wxUSE_TOOLTIPS
@@ -61,17 +62,34 @@ public:
         { return m_itemsTooltips ? (*m_itemsTooltips)[item] : NULL; }
 #endif // wxUSE_TOOLTIPS
 
-    // deprecated functions
-    // --------------------
+#if wxUSE_HELP
+    // set helptext for a particular item, pass an empty string to erase it
+    void SetItemHelpText(unsigned int n, const wxString& helpText);
+
+    // retrieve helptext for a particular item, empty string means no help text
+    wxString GetItemHelpText(unsigned int n) const;
+#else // wxUSE_HELP
+    // just silently ignore the help text, it's better than requiring using
+    // conditional compilation in all code using this function
+    void SetItemHelpText(unsigned int WXUNUSED(n),
+                         const wxString& WXUNUSED(helpText))
+    {
+    }
+#endif // wxUSE_HELP
+
+    // returns the radio item at the given position or wxNOT_FOUND if none
+    // (currently implemented only under MSW and GTK)
+    virtual int GetItemFromPoint(const wxPoint& WXUNUSED(pt)) const
+    {
+        return wxNOT_FOUND;
+    }
 
-#if WXWIN_COMPATIBILITY_2_4
-    wxDEPRECATED( int GetNumberOfRowsOrCols() const );
-    wxDEPRECATED( void SetNumberOfRowsOrCols(int n) );
-#endif // WXWIN_COMPATIBILITY_2_4
 
 protected:
     wxRadioBoxBase()
     {
+        m_numCols =
+        m_numRows =
         m_majorDim = 0;
 
 #if wxUSE_TOOLTIPS
@@ -79,6 +97,8 @@ protected:
 #endif // wxUSE_TOOLTIPS
     }
 
+    virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
+
     // return the number of items in major direction (which depends on whether
     // we have wxRA_SPECIFY_COLS or wxRA_SPECIFY_ROWS style)
     unsigned int GetMajorDim() const { return m_majorDim; }
@@ -101,6 +121,14 @@ protected:
     bool HasItemToolTips() const { return m_itemsTooltips != NULL; }
 #endif // wxUSE_TOOLTIPS
 
+#if wxUSE_HELP
+    // Retrieve help text for an item: this is a helper for the implementation
+    // of wxWindow::GetHelpTextAtPoint() in the real radiobox class
+    wxString DoGetHelpTextAtPoint(const wxWindow *derived,
+                                  const wxPoint& pt,
+                                  wxHelpEvent::Origin origin) const;
+#endif // wxUSE_HELP
+
 private:
     // the number of elements in major dimension (i.e. number of columns if
     // wxRA_SPECIFY_COLS or the number of rows if wxRA_SPECIFY_ROWS) and also
@@ -115,6 +143,11 @@ private:
     // this array is initially NULL and initialized on first use
     wxToolTipArray *m_itemsTooltips;
 #endif
+
+#if wxUSE_HELP
+    // help text associated with a particular item or empty string if none
+    wxArrayString m_itemsHelpTexts;
+#endif // wxUSE_HELP
 };
 
 #if defined(__WXUNIVERSAL__)
@@ -128,7 +161,7 @@ private:
 #elif defined(__WXGTK__)
     #include "wx/gtk1/radiobox.h"
 #elif defined(__WXMAC__)
-    #include "wx/mac/radiobox.h"
+    #include "wx/osx/radiobox.h"
 #elif defined(__WXCOCOA__)
     #include "wx/cocoa/radiobox.h"
 #elif defined(__WXPM__)
@@ -139,5 +172,4 @@ private:
 
 #endif // wxUSE_RADIOBOX
 
-#endif
-    // _WX_RADIOBOX_H_BASE_
+#endif // _WX_RADIOBOX_H_BASE_