X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/33ac7e6f01acbac1cff0ad400d8ea7f0bfd0a62f..439ddeba9dcb2bb020ba70da81dab76746dc0081:/src/msw/colordlg.cpp diff --git a/src/msw/colordlg.cpp b/src/msw/colordlg.cpp index 494928bb64..467b05a3cd 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,7 +17,7 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "colordlg.h" #endif @@ -42,16 +42,16 @@ #include "wx/msgdlg.h" #endif -#include - -#if !defined(__WIN32__) || defined(__SALFORDC__) || defined(__WXWINE__) - #include -#endif +#if wxUSE_COLOURDLG && !wxUSE_SMARTPHONE #include "wx/msw/private.h" #include "wx/colordlg.h" #include "wx/cmndata.h" +#if !defined(__WIN32__) || defined(__WXWINCE__) + #include +#endif + #include #include #include @@ -70,10 +70,11 @@ 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 ) { @@ -81,6 +82,14 @@ UINT CALLBACK wxColourDialogHookProc(HWND hwnd, wxColourDialog *dialog = (wxColourDialog *)pCC->lCustData; ::SetWindowText(hwnd, dialog->GetTitle()); + + wxPoint pos = dialog->GetPosition(); + if ( pos != wxDefaultPosition ) + { + ::SetWindowPos(hwnd, NULL /* Z-order: ignored */, + pos.x, pos.y, -1, -1, + SWP_NOSIZE | SWP_NOZORDER); + } } return 0; @@ -92,10 +101,13 @@ UINT CALLBACK wxColourDialogHookProc(HWND hwnd, wxColourDialog::wxColourDialog() { + m_pos = wxDefaultPosition; } wxColourDialog::wxColourDialog(wxWindow *parent, wxColourData *data) { + m_pos = wxDefaultPosition; + Create(parent, data); } @@ -116,12 +128,12 @@ int wxColourDialog::ShowModal() int i; for (i = 0; i < 16; i++) - custColours[i] = wxColourToRGB(m_colourData.custColours[i]); + custColours[i] = wxColourToRGB(m_colourData.m_custColours[i]); 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; @@ -147,10 +159,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; } @@ -164,7 +176,7 @@ void wxColourDialog::SetTitle(const wxString& title) m_title = title; } -wxString wxColourDialog::GetTitle() +wxString wxColourDialog::GetTitle() const { return m_title; } @@ -173,11 +185,25 @@ wxString wxColourDialog::GetTitle() // position/size // ---------------------------------------------------------------------------- -void wxColourDialog::DoSetSize(int WXUNUSED(x), int WXUNUSED(y), +void wxColourDialog::DoGetPosition(int *x, int *y) const +{ + if ( x ) + *x = m_pos.x; + if ( y ) + *y = m_pos.y; +} + +void wxColourDialog::DoSetSize(int x, int y, int WXUNUSED(width), int WXUNUSED(height), int WXUNUSED(sizeFlags)) { - // ignore - we can't change the size of this standard dialog + 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; } @@ -200,3 +226,5 @@ void wxColourDialog::DoGetClientSize(int *width, int *height) const if ( height ) *height = 299; } + +#endif