X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..9cedab372ea48d9f5fd7423646f6d51d8b3f906f:/src/msw/colordlg.cpp diff --git a/src/msw/colordlg.cpp b/src/msw/colordlg.cpp index 3480911ad9..2cae01b8c3 100644 --- a/src/msw/colordlg.cpp +++ b/src/msw/colordlg.cpp @@ -72,7 +72,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxColourDialog, wxDialog) UINT CALLBACK wxColourDialogHookProc(HWND hwnd, UINT uiMsg, - WPARAM wParam, + WPARAM WXUNUSED(wParam), LPARAM lParam) { if ( uiMsg == WM_INITDIALOG ) @@ -81,6 +81,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 +100,13 @@ UINT CALLBACK wxColourDialogHookProc(HWND hwnd, wxColourDialog::wxColourDialog() { + m_pos = wxDefaultPosition; } wxColourDialog::wxColourDialog(wxWindow *parent, wxColourData *data) { + m_pos = wxDefaultPosition; + Create(parent, data); } @@ -128,8 +139,8 @@ int wxColourDialog::ShowModal() chooseColorStruct.lCustData = (LPARAM)this; chooseColorStruct.lpfnHook = wxColourDialogHookProc; - if (!m_colourData.GetChooseFull()) - chooseColorStruct.Flags |= CC_PREVENTFULLOPEN; + if (m_colourData.GetChooseFull()) + chooseColorStruct.Flags |= CC_FULLOPEN; // Do the modal dialog bool success = ::ChooseColor(&(chooseColorStruct)) != 0; @@ -164,7 +175,7 @@ void wxColourDialog::SetTitle(const wxString& title) m_title = title; } -wxString wxColourDialog::GetTitle() +wxString wxColourDialog::GetTitle() const { return m_title; } @@ -173,11 +184,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 +225,4 @@ void wxColourDialog::DoGetClientSize(int *width, int *height) const if ( height ) *height = 299; } +