]> git.saurik.com Git - wxWidgets.git/blobdiff - src/palmos/colordlg.cpp
Fixed wxAtomicInc/Dec() to not use asm/atomic.h header on Linux - it's kernel interna...
[wxWidgets.git] / src / palmos / colordlg.cpp
index 9720f463681d76aede2e1d3b9184131c93b7352f..5c27e3d23a43c24e5dc67a62a5ef74589471e3d7 100644 (file)
@@ -1,10 +1,10 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        src/palmos/colordlg.cpp
 // Purpose:     wxColourDialog class
-// Author:      William Osborne
+// Author:      William Osborne - minimal working wxPalmOS port
 // Modified by:
 // Created:     10/13/04
-// RCS-ID:      $Id
+// RCS-ID:      $Id$
 // Copyright:   (c) William Osborne
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 // headers
 // ----------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "colordlg.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
     #pragma hdrstop
 #endif
 
-#ifndef WX_PRECOMP
-    #include <stdio.h>
-    #include "wx/defs.h"
-    #include "wx/bitmap.h"
-    #include "wx/pen.h"
-    #include "wx/brush.h"
-    #include "wx/colour.h"
-    #include "wx/gdicmn.h"
-    #include "wx/utils.h"
-    #include "wx/frame.h"
-    #include "wx/dialog.h"
-    #include "wx/msgdlg.h"
-#endif
-
-#if wxUSE_COLOURDLG && !defined(__SMARTPHONE__)
+#if wxUSE_COLOURDLG
 
-#include "wx/palmos/private.h"
 #include "wx/colordlg.h"
-#include "wx/cmndata.h"
 
-#include <math.h>
-#include <stdlib.h>
-#include <string.h>
+#ifndef WX_PRECOMP
+    #include "wx/intl.h"
+    #include "wx/cmndata.h"
+#endif
+
+#include <UIColor.h>
+#include <UIControls.h>
 
 // ----------------------------------------------------------------------------
 // wxWin macros
@@ -72,76 +56,40 @@ wxColourDialog::wxColourDialog()
 
 wxColourDialog::wxColourDialog(wxWindow *parent, wxColourData *data)
 {
+    Create(parent, data);
 }
 
 bool wxColourDialog::Create(wxWindow *parent, wxColourData *data)
 {
-    return false;
-}
-
-int wxColourDialog::ShowModal()
-{
-    return wxID_CANCEL;
-}
-
-// ----------------------------------------------------------------------------
-// title
-// ----------------------------------------------------------------------------
-
-void wxColourDialog::SetTitle(const wxString& title)
-{
-    m_title = title;
-}
+    m_parent = parent;
 
-wxString wxColourDialog::GetTitle() const
-{
-    return m_title;
-}
+    if (data)
+        m_colourData = *data;
 
-// ----------------------------------------------------------------------------
-// position/size
-// ----------------------------------------------------------------------------
-
-void wxColourDialog::DoGetPosition(int *x, int *y) const
-{
-    if ( x )
-        *x = m_pos.x;
-    if ( y )
-        *y = m_pos.y;
+    return true;
 }
 
-void wxColourDialog::DoSetSize(int x, int y,
-                               int WXUNUSED(width), int WXUNUSED(height),
-                               int WXUNUSED(sizeFlags))
-{
-    if ( x != -1 )
-        m_pos.x = x;
-
-    if ( y != -1 )
-        m_pos.y = y;
-
-    // ignore the size params - we can't change the size of a standard dialog
-    return;
-}
-
-// NB: of course, both of these functions are completely bogus, but it's better
-//     than nothing
-void wxColourDialog::DoGetSize(int *width, int *height) const
-{
-    // the standard dialog size
-    if ( width )
-        *width = 225;
-    if ( height )
-        *height = 324;
-}
-
-void wxColourDialog::DoGetClientSize(int *width, int *height) const
+int wxColourDialog::ShowModal()
 {
-    // the standard dialog size
-    if ( width )
-        *width = 219;
-    if ( height )
-        *height = 299;
+    wxString title = _("Choose colour");
+
+    wxColour colour = m_colourData.GetColour();
+    RGBColorType rgb;
+    rgb.r = colour.Red();
+    rgb.g = colour.Green();
+    rgb.b = colour.Blue();
+    IndexedColorType i = WinRGBToIndex ( &rgb );
+
+    if (UIPickColor (&i,
+                     &rgb,
+                     (m_colourData.GetChooseFull()?UIPickColorStartRGB:UIPickColorStartPalette),
+                     title.ToAscii(),
+                     NULL) == false)
+        return wxID_CANCEL;
+
+    colour.Set(rgb.r, rgb.g, rgb.b);
+    m_colourData.SetColour(colour);
+    return wxID_OK;
 }
 
 #endif