]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/radiobox.cpp
removed unneeded makefiles
[wxWidgets.git] / src / mac / radiobox.cpp
index fbf840fc8d5cbd537a63274ab086cd8d5594a25c..103d68ca440e684148637c4b011267d31b503bfc 100644 (file)
@@ -19,6 +19,7 @@
 //-------------------------------------------------------------------------------------
 
 #include "wx/defs.h"
+#include "wx/arrstr.h"
 
 #include "wx/radiobox.h"
 #include "wx/radiobut.h"
@@ -28,9 +29,6 @@
 IMPLEMENT_DYNAMIC_CLASS(wxRadioBox, wxControl)
 #endif
 
-#pragma mark -
-#pragma mark ### Constructors & destructor ###
-
 //-------------------------------------------------------------------------------------
 //         ¥ wxRadioBox()
 //-------------------------------------------------------------------------------------
@@ -77,6 +75,8 @@ wxRadioBox::wxRadioBox()
 
 wxRadioBox::~wxRadioBox()
 {
+    m_isBeingDeleted = TRUE;
+
     wxRadioButton *next,*current;
     
     current=m_radioButtonCycle->NextInCycle();
@@ -94,12 +94,27 @@ wxRadioBox::~wxRadioBox()
 //-------------------------------------------------------------------------------------
 // Create the radiobox for two-step construction
 
+bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
+                        const wxPoint& pos, const wxSize& size,
+                        const wxArrayString& choices,
+                        int majorDim, long style,
+                        const wxValidator& val, const wxString& name)
+{
+    wxCArrayString chs(choices);
+
+    return Create(parent, id, label, pos, size, chs.GetCount(),
+                  chs.GetStrings(), majorDim, style, val, name);
+}
+
 bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
                         const wxPoint& pos, const wxSize& size,
                         int n, const wxString choices[],
                         int majorDim, long style,
                         const wxValidator& val, const wxString& name)
 {
+    if ( !wxControl::Create(parent, id, pos, size, style, val, name) )
+        return false;
+
     int i;
     
     m_noItems = n;
@@ -122,8 +137,15 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
     
     for (i = 0; i < n; i++)
     {
-        wxRadioButton *radBtn = new wxRadioButton(this, NewControlId(), wxStripMenuCodes(choices[i]),wxPoint(5,20*i+10),
-            wxDefaultSize , i == 0 ? wxRB_GROUP : 0 ) ;
+        wxRadioButton *radBtn = new wxRadioButton
+                                    (
+                                        this,
+                                        wxID_ANY,
+                                        wxStripMenuCodes(choices[i]),
+                                        wxPoint(5,20*i+10),
+                                        wxDefaultSize,
+                                        i == 0 ? wxRB_GROUP : 0
+                                    );
         if ( i == 0 )
             m_radioButtonCycle = radBtn ;
         //        m_radioButtonCycle=radBtn->AddInCycle(m_radioButtonCycle);
@@ -136,9 +158,6 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
 }
 
 
-#pragma mark -
-#pragma mark ### Specific functions (reference v2) ###
-
 //-------------------------------------------------------------------------------------
 //         ¥ Enable(bool)
 //-------------------------------------------------------------------------------------
@@ -337,9 +356,6 @@ void wxRadioBox::Show(int item, bool show)
     current->Show(show);
 }
 
-#pragma mark -
-#pragma mark ### Other external functions ###
-
 //-------------------------------------------------------------------------------------
 //         ¥ Command
 //-------------------------------------------------------------------------------------
@@ -371,9 +387,6 @@ void wxRadioBox::SetFocus()
 }
 
 
-#pragma mark -
-#pragma mark ### Internal functions ###
-
 //-------------------------------------------------------------------------------------
 //         ¥ DoSetSize
 //-------------------------------------------------------------------------------------
@@ -452,6 +465,11 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags)
     
     x_start = charWidth;
     y_start = 15 ;
+    if ( UMAGetSystemVersion() >= 0x1030 )
+    {
+               //need to add a few more pixels for the top border on panther
+               y_start = y_start + 5; //how many exactly should this be to meet the HIG?
+    }
     x_offset = x_start;
     y_offset = y_start;
     
@@ -509,6 +527,11 @@ wxSize wxRadioBox::DoGetBestSize() const
     totHeight = GetRowCount() * (maxHeight + charHeight/2) + charHeight ;
     totWidth  = GetColumnCount() * (maxWidth + charWidth) + charWidth;
     
+    if ( UMAGetSystemVersion() >= 0x1030 )
+    {
+        //need to add a few more pixels for the static boxborder on panther
+        totHeight = totHeight + 10; //how many exactly should this be to meet the HIG?
+    }
     // handle radio box title as well
     GetTextExtent(GetTitle(), &eachWidth, NULL);
     eachWidth  = (int)(eachWidth + RADIO_SIZE) + 3 * charWidth ;