]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/colrdlgg.cpp
Some themes round the edges of the buttons, overwriting any text that
[wxWidgets.git] / src / generic / colrdlgg.cpp
index 3b75c107b5c357a71bf787d028371964c2127391..38275f47bb551ba3eb286bc55e07c52ecc66ae50 100644 (file)
@@ -5,11 +5,11 @@
 // Modified by:
 // Created:     04/01/98
 // RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:     wxWindows license
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma implementation "colrdlgg.h"
 #endif
 
@@ -174,6 +174,13 @@ void wxGenericColourDialog::OnMouseEvent(wxMouseEvent& event)
     int x = (int)event.GetX();
     int y = (int)event.GetY();
 
+#ifdef __WXPM__
+    // Handle OS/2's reverse coordinate system and account for the dialog title
+    int                             nClientHeight;
+
+    GetClientSize(NULL, &nClientHeight);
+    y = (nClientHeight - y) + 20;
+#endif
     if ((x >= standardColoursRect.x && x <= (standardColoursRect.x + standardColoursRect.width)) &&
         (y >= standardColoursRect.y && y <= (standardColoursRect.y + standardColoursRect.height)))
     {
@@ -199,7 +206,7 @@ void wxGenericColourDialog::OnMouseEvent(wxMouseEvent& event)
 
 void wxGenericColourDialog::OnPaint(wxPaintEvent& event)
 {
-#if !defined(__WXMOTIF__) && !defined(__WXMAC__) && !defined(__WXPM__)
+#if !defined(__WXMOTIF__) && !defined(__WXMAC__) && !defined(__WXPM__) && !defined(__WXCOCOA__)
   wxDialog::OnPaint(event);
 #endif
 
@@ -222,7 +229,11 @@ void wxGenericColourDialog::CalculateMeasurements()
   sectionSpacing = 15;
 
   standardColoursRect.x = 10;
+#ifdef __WXPM__
+  standardColoursRect.y = 15 + 20; /* OS/2 needs to account for dialog titlebar */
+#else
   standardColoursRect.y = 15;
+#endif
   standardColoursRect.width = (8*smallRectangleSize.x) + (7*gridSpacing);
   standardColoursRect.height = (6*smallRectangleSize.y) + (5*gridSpacing);
 
@@ -293,14 +304,14 @@ void wxGenericColourDialog::InitializeColours(void)
 
     for (i = 0; i < WXSIZEOF(wxColourDialogNames); i++)
     {
-        wxColour *col = wxTheColourDatabase->FindColour(wxColourDialogNames[i]);
-        if (col)
-            standardColours[i].Set(col->Red(), col->Green(), col->Blue());
+        wxColour col = wxTheColourDatabase->Find(wxColourDialogNames[i]);
+        if (col.Ok())
+            standardColours[i].Set(col.Red(), col.Green(), col.Blue());
         else
             standardColours[i].Set(0, 0, 0);
     }
 
-    for (i = 0; i < 16; i++)
+    for (i = 0; i < WXSIZEOF(customColours); i++)
     {
         customColours[i] = colourData.GetCustomColour(i);
     }
@@ -322,13 +333,12 @@ void wxGenericColourDialog::InitializeColours(void)
         }
         if ( !initColourFound )
         {
-            for ( i = 0; i < 16; i++ )
+            for ( i = 0; i < WXSIZEOF(customColours); i++ )
             {
                 if ( customColours[i] == curr )
                 {
                     whichKind = 2;
                     colourSelection = i;
-                    initColourFound = TRUE;
                     break;
                 }
             }