]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/gdicmn.h
fix for sf bug 1448153: Widgets sample hangs on Japanese radio label
[wxWidgets.git] / include / wx / gdicmn.h
index ec1704e5c01e265d729d191308e08ccd7123c940..b6faf8900d20448dea9e64ee4375a89102db7605 100644 (file)
@@ -5,7 +5,7 @@
 // Modified by:
 // Created:     01/02/97
 // RCS-ID:      $Id$
-// Copyright:   (c)
+// Copyright:   (c) Julian Smart
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // headers
 // ---------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma interface "gdicmn.h"
-#endif
-
 #include "wx/defs.h"
 #include "wx/list.h"
 #include "wx/string.h"
 #include "wx/fontenc.h"
 #include "wx/hashmap.h"
+#include "wx/math.h"
 
 // ---------------------------------------------------------------------------
 // forward declarations
@@ -217,10 +214,10 @@ public:
     bool operator==(const wxSize& sz) const { return x == sz.x && y == sz.y; }
     bool operator!=(const wxSize& sz) const { return x != sz.x || y != sz.y; }
 
-    wxSize operator+(const wxSize& sz) { return wxSize(x + sz.x, y + sz.y); }
-    wxSize operator-(const wxSize& sz) { return wxSize(x - sz.x, y - sz.y); }
-    wxSize operator/(const int i) { return wxSize(x / i, y / i); }
-    wxSize operator*(const int i) { return wxSize(x * i, y * i); }
+    wxSize operator+(const wxSize& sz) const { return wxSize(x + sz.x, y + sz.y); }
+    wxSize operator-(const wxSize& sz) const { return wxSize(x - sz.x, y - sz.y); }
+    wxSize operator/(int i) const { return wxSize(x / i, y / i); }
+    wxSize operator*(int i) const { return wxSize(x * i, y * i); }
 
     wxSize& operator+=(const wxSize& sz) { x += sz.x; y += sz.y; return *this; }
     wxSize& operator-=(const wxSize& sz) { x -= sz.x; y -= sz.y; return *this; }
@@ -273,10 +270,14 @@ public:
     wxRealPoint operator+(const wxRealPoint& pt) const { return wxRealPoint(x + pt.x, y + pt.y); }
     wxRealPoint operator-(const wxRealPoint& pt) const { return wxRealPoint(x - pt.x, y - pt.y); }
 
-    bool operator==(const wxRealPoint& pt) const { return x == pt.x && y == pt.y; }
-    bool operator!=(const wxRealPoint& pt) const { return x != pt.x || y != pt.y; }
+    bool operator==(const wxRealPoint& pt) const
+    {
+        return wxIsSameDouble(x, pt.x) && wxIsSameDouble(y, pt.y);
+    }
+    bool operator!=(const wxRealPoint& pt) const { return !(*this == pt); }
 };
 
+
 class WXDLLEXPORT wxPoint
 {
 public:
@@ -427,6 +428,20 @@ public:
     }
 
 
+    // centre this rectangle in the given (usually, but not necessarily,
+    // larger) one
+    wxRect CentreIn(const wxRect& r, int dir = wxBOTH) const
+    {
+        return wxRect(dir & wxHORIZONTAL ? r.x + (r.width - width)/2 : x,
+                      dir & wxVERTICAL ? r.y + (r.height - height)/2 : y,
+                      width, height);
+    }
+
+    wxRect CenterIn(const wxRect& r, int dir = wxBOTH) const
+    {
+        return CentreIn(r, dir);
+    }
+
 public:
     int x, y, width, height;
 };
@@ -589,7 +604,7 @@ extern WXDLLEXPORT_DATA(wxCursor*)    wxCROSS_CURSOR;
 
 extern WXDLLEXPORT_DATA(wxColourDatabase*)  wxTheColourDatabase;
 
-extern WXDLLEXPORT_DATA(const wxChar*) wxPanelNameStr;
+extern WXDLLEXPORT_DATA(const wxChar) wxPanelNameStr[];
 
 extern WXDLLEXPORT_DATA(const wxSize) wxDefaultSize;
 extern WXDLLEXPORT_DATA(const wxPoint) wxDefaultPosition;