if (it.m_rep)
             it.m_rep.AddRef();
         if (m_rep)
-            m_rep.UnRef();
+            this->m_rep.UnRef();
         m_rep = it.m_rep;
         return *this;
     }
 
         {
             if ( len == wxNO_LEN )
                 len = wxStrlen(str);
-            this->m_data = new Data(StrCopy(str, len), len);
+            this->m_data = new Data(this->StrCopy(str, len), len);
         }
         else
         {
 
     wxCharTypeBuffer(const wxScopedCharTypeBuffer<T>& src)
     {
-        MakeOwnedCopyOf(src);
+        this->MakeOwnedCopyOf(src);
     }
 
     wxCharTypeBuffer& operator=(const wxScopedCharTypeBuffer<T>& src)
 
 #endif
 
 #include "wx/control.h"
+DECLARE_WXCOCOA_OBJC_CLASS(WebView); 
 
 // ----------------------------------------------------------------------------
 // Web Kit Control
     wxString m_currentURL;
     wxString m_pageTitle;
 
-    struct objc_object *m_webView;
+    WX_WebView m_webView;
 
     // we may use this later to setup our own mouse events,
     // so leave it in for now.
     void* m_webKitCtrlEventHandler;
-    //It should be WebView*, but WebView is an Objective-C class
-    //TODO: look into using DECLARE_WXCOCOA_OBJC_CLASS rather than this.
 };
 
 // ----------------------------------------------------------------------------
 
     wxGenericValidator(bool* val);
         // wxChoice, wxGauge, wxRadioBox, wxScrollBar, wxSlider, wxSpinButton
     wxGenericValidator(int* val);
+    wxGenericValidator(float* val);
+    wxGenericValidator(double* val);
         // wxComboBox, wxTextCtrl, wxButton, wxStaticText (read-only)
     wxGenericValidator(wxString* val);
         // wxListBox, wxCheckListBox
 
     bool*       m_pBool;
     int*        m_pInt;
+    float*      m_pFloat;
+    double*     m_pDouble;
     wxString*   m_pString;
     wxArrayInt* m_pArrayInt;
 #if wxUSE_DATETIME
 
             else if ( !BaseValidator::FromString(s, &value) )
                 return false;
 
-            if ( !IsInRange(value) )
+            if ( !this->IsInRange(value) )
                 return false;
 
             *m_value = static_cast<ValueType>(value);
     {
         wxString s;
         if ( value != 0 || !BaseValidator::HasFlag(wxNUM_VAL_ZERO_AS_BLANK) )
-            s = ToString(value);
+            s = this->ToString(value);
 
         return s;
     }
     wxIntegerValidator(ValueType *value = NULL, int style = wxNUM_VAL_DEFAULT)
         : Base(value, style)
     {
-        DoSetMin(std::numeric_limits<ValueType>::min());
-        DoSetMax(std::numeric_limits<ValueType>::max());
+        this->DoSetMin(std::numeric_limits<ValueType>::min());
+        this->DoSetMax(std::numeric_limits<ValueType>::max());
     }
 
     virtual wxObject *Clone() const { return new wxIntegerValidator(*this); }
         // NB: Do not use min(), it's not the smallest representable value for
         //     the floating point types but rather the smallest representable
         //     positive value.
-        DoSetMin(-std::numeric_limits<ValueType>::max());
-        DoSetMax( std::numeric_limits<ValueType>::max());
+        this->DoSetMin(-std::numeric_limits<ValueType>::max());
+        this->DoSetMax( std::numeric_limits<ValueType>::max());
     }
 };
 
 
     // below is not used by at least g++4 when a literal NULL is used
     wxWeakRef(T *pobj)
     {
-        Assign(pobj);
+        this->Assign(pobj);
     }
 #endif // !__VISUALC6__
 
 
     wxWeakRef<T>& operator=(const wxWeakRef<T>& wr)
     {
-        AssignCopy(wr);
+        this->AssignCopy(wr);
         return *this;
     }
 
 
 // forward-declare the template and implement it below WX_STRCMP_FUNC. OTOH,
 // this fails to compile with VC6, so don't do it for VC. It also causes
 // problems with GCC visibility in newer GCC versions.
-#if !(defined(__VISUALC__) || wxCHECK_GCC_VERSION(3,5))
+#if !(defined(__VISUALC__) || wxCHECK_GCC_VERSION(3,5)) || defined(__clang__)
     #define wxNEEDS_DECL_BEFORE_TEMPLATE
 #endif
 
 
     virtual void Transform( const wxGraphicsMatrixData* matrix );
 
     // gets the bounding box enclosing all points (possibly including control points)
-    virtual void GetBox(wxDouble *x, wxDouble *y, wxDouble *w, wxDouble *y) const;
+    virtual void GetBox(wxDouble *x, wxDouble *y, wxDouble *w, wxDouble *h) const;
 
     virtual bool Contains( wxDouble x, wxDouble y, wxPolygonFillMode fillStyle = wxODDEVEN_RULE) const;
 private :
 
     }
 };
 
+} // anonymous namespace
+
 extern "C" void SetBezelStyleFromBorderFlags(NSButton *v, long style);
     
 // set bezel style depending on the wxBORDER_XXX flags specified by the style
     }
 }
 
-} // anonymous namespace
 
 wxWidgetImplType* wxWidgetImpl::CreateButton( wxWindowMac* wxpeer,
                                     wxWindowMac* WXUNUSED(parent),
 
                     }
 
                     wxCFStringRef cfidentifier;
-                    const NSString *nsItemId;
+                    NSString *nsItemId;
                     if (tool->GetStyle() == wxTOOL_STYLE_SEPARATOR)
                     {
                         nsItemId = tool->IsStretchable() ? NSToolbarFlexibleSpaceItemIdentifier
 #if wxOSX_USE_NATIVE_TOOLBAR
                 if (m_macToolbar != NULL)
                 {
-                    const NSString * const
-                        nsItemId = tool->IsStretchable() ? NSToolbarFlexibleSpaceItemIdentifier
+                    NSString * nsItemId = tool->IsStretchable() ? NSToolbarFlexibleSpaceItemIdentifier
                                                          : NSToolbarSeparatorItemIdentifier;
                     NSToolbarItem* item = [[NSToolbarItem alloc] initWithItemIdentifier:nsItemId];
                     tool->SetToolbarItemRef( item );
 
     else
         allChildrenSpecified = true;
 
-    wxVariant childValue = list[0];
     unsigned int i;
     unsigned int n = 0;
+    wxVariant childValue = list[n];
 
     //wxLogDebug(wxT(">> %s.AdaptListToValue()"),GetBaseName().c_str());