X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f63e3ebbe3272b9690aa2530e0c3048d3f37c7c7..69659fd770f615210efac4b4fa741b3ad6223616:/src/msw/colordlg.cpp diff --git a/src/msw/colordlg.cpp b/src/msw/colordlg.cpp index 10da2d4e3f..75a63ecef6 100644 --- a/src/msw/colordlg.cpp +++ b/src/msw/colordlg.cpp @@ -5,7 +5,7 @@ // Modified by: // Created: 01/02/97 // RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem +// Copyright: (c) Julian Smart // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma implementation "colordlg.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -28,31 +24,23 @@ #pragma hdrstop #endif +#if wxUSE_COLOURDLG && !(defined(__SMARTPHONE__) && defined(__WXWINCE__)) + +#include "wx/colordlg.h" + #ifndef WX_PRECOMP + #include "wx/msw/wrapcdlg.h" #include - #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 - -#include - -#if !defined(__WIN32__) || defined(__SALFORDC__) || defined(__WXWINE__) - #include + #include "wx/cmndata.h" + #include "wx/math.h" #endif #include "wx/msw/private.h" -#include "wx/colordlg.h" -#include "wx/cmndata.h" -#include #include #include @@ -70,17 +58,18 @@ IMPLEMENT_DYNAMIC_CLASS(wxColourDialog, wxDialog) // colour dialog hook proc // ---------------------------------------------------------------------------- -UINT CALLBACK wxColourDialogHookProc(HWND hwnd, - UINT uiMsg, - WPARAM WXUNUSED(wParam), - LPARAM lParam) +UINT_PTR CALLBACK +wxColourDialogHookProc(HWND hwnd, + UINT uiMsg, + WPARAM WXUNUSED(wParam), + LPARAM lParam) { if ( uiMsg == WM_INITDIALOG ) { CHOOSECOLOR *pCC = (CHOOSECOLOR *)lParam; wxColourDialog *dialog = (wxColourDialog *)pCC->lCustData; - ::SetWindowText(hwnd, dialog->GetTitle()); + ::SetWindowText(hwnd, dialog->GetTitle().wx_str()); wxPoint pos = dialog->GetPosition(); if ( pos != wxDefaultPosition ) @@ -116,7 +105,7 @@ bool wxColourDialog::Create(wxWindow *parent, wxColourData *data) if (data) m_colourData = *data; - return TRUE; + return true; } int wxColourDialog::ShowModal() @@ -127,12 +116,17 @@ int wxColourDialog::ShowModal() int i; for (i = 0; i < 16; i++) - custColours[i] = wxColourToRGB(m_colourData.custColours[i]); + { + if (m_colourData.m_custColours[i].Ok()) + custColours[i] = wxColourToRGB(m_colourData.m_custColours[i]); + else + custColours[i] = RGB(255,255,255); + } chooseColorStruct.lStructSize = sizeof(CHOOSECOLOR); if ( m_parent ) chooseColorStruct.hwndOwner = GetHwndOf(m_parent); - chooseColorStruct.rgbResult = wxColourToRGB(m_colourData.dataColour); + chooseColorStruct.rgbResult = wxColourToRGB(m_colourData.m_dataColour); chooseColorStruct.lpCustColors = custColours; chooseColorStruct.Flags = CC_RGBINIT | CC_ENABLEHOOK; @@ -146,10 +140,9 @@ int wxColourDialog::ShowModal() bool success = ::ChooseColor(&(chooseColorStruct)) != 0; // Try to highlight the correct window (the parent) - HWND hWndParent = 0; if (GetParent()) { - hWndParent = (HWND) GetParent()->GetHWND(); + HWND hWndParent = (HWND) GetParent()->GetHWND(); if (hWndParent) ::BringWindowToTop(hWndParent); } @@ -158,10 +151,10 @@ int wxColourDialog::ShowModal() // Restore values for (i = 0; i < 16; i++) { - wxRGBToColour(m_colourData.custColours[i], custColours[i]); + wxRGBToColour(m_colourData.m_custColours[i], custColours[i]); } - wxRGBToColour(m_colourData.dataColour, chooseColorStruct.rgbResult); + wxRGBToColour(m_colourData.m_dataColour, chooseColorStruct.rgbResult); return success ? wxID_OK : wxID_CANCEL; } @@ -175,7 +168,7 @@ void wxColourDialog::SetTitle(const wxString& title) m_title = title; } -wxString wxColourDialog::GetTitle() +wxString wxColourDialog::GetTitle() const { return m_title; } @@ -196,10 +189,10 @@ void wxColourDialog::DoSetSize(int x, int y, int WXUNUSED(width), int WXUNUSED(height), int WXUNUSED(sizeFlags)) { - if ( x != -1 ) + if ( x != wxDefaultCoord ) m_pos.x = x; - if ( y != -1 ) + if ( y != wxDefaultCoord ) m_pos.y = y; // ignore the size params - we can't change the size of a standard dialog @@ -226,3 +219,4 @@ void wxColourDialog::DoGetClientSize(int *width, int *height) const *height = 299; } +#endif // wxUSE_COLOURDLG && !(__SMARTPHONE__ && __WXWINCE__)