X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bfef8c703e3aee9506fd6f5a8a1810194b9a71ea..686ca1b5d4867bca6c82a82078fd26291c6e6659:/src/generic/colrdlgg.cpp diff --git a/src/generic/colrdlgg.cpp b/src/generic/colrdlgg.cpp index 71d14a3f08..b03589aa7d 100644 --- a/src/generic/colrdlgg.cpp +++ b/src/generic/colrdlgg.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: generic/colrdlgg.cpp +// Name: src/generic/colrdlgg.cpp // Purpose: Choice dialogs // Author: Julian Smart // Modified by: @@ -9,10 +9,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "colrdlgg.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -32,16 +28,13 @@ #include "wx/layout.h" #include "wx/dcclient.h" #include "wx/sizer.h" + #include "wx/slider.h" #endif #if wxUSE_STATLINE #include "wx/statline.h" #endif -#if wxUSE_SLIDER - #include "wx/slider.h" -#endif - #include "wx/generic/colrdlgg.h" IMPLEMENT_DYNAMIC_CLASS(wxGenericColourDialog, wxDialog) @@ -124,17 +117,17 @@ static const wxChar *wxColourDialogNames[] = wxGenericColourDialog::wxGenericColourDialog() { - dialogParent = NULL; - whichKind = 1; - colourSelection = -1; + dialogParent = NULL; + whichKind = 1; + colourSelection = -1; } wxGenericColourDialog::wxGenericColourDialog(wxWindow *parent, wxColourData *data) { - whichKind = 1; - colourSelection = -1; - Create(parent, data); + whichKind = 1; + colourSelection = -1; + Create(parent, data); } wxGenericColourDialog::~wxGenericColourDialog() @@ -143,13 +136,13 @@ wxGenericColourDialog::~wxGenericColourDialog() void wxGenericColourDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) { - EndModal(wxID_CANCEL); + EndModal(wxID_CANCEL); } bool wxGenericColourDialog::Create(wxWindow *parent, wxColourData *data) { if ( !wxDialog::Create(parent, wxID_ANY, _("Choose colour"), - wxPoint(), wxSize(900, 900)) ) + wxPoint(0,0), wxSize(900, 900)) ) return false; dialogParent = parent; @@ -166,7 +159,7 @@ bool wxGenericColourDialog::Create(wxWindow *parent, wxColourData *data) int wxGenericColourDialog::ShowModal() { - return wxDialog::ShowModal(); + return wxDialog::ShowModal(); } @@ -210,50 +203,52 @@ void wxGenericColourDialog::OnMouseEvent(wxMouseEvent& event) void wxGenericColourDialog::OnPaint(wxPaintEvent& event) { -#if !defined(__WXMOTIF__) && !defined(__WXMAC__) && !defined(__WXPM__) && !defined(__WXCOCOA__) - wxDialog::OnPaint(event); +#if !defined(__WXMOTIF__) && !defined(__WXPM__) && !defined(__WXCOCOA__) + wxDialog::OnPaint(event); +#else + wxUnusedVar(event); #endif - wxPaintDC dc(this); + wxPaintDC dc(this); - PaintBasicColours(dc); - PaintCustomColours(dc); - PaintCustomColour(dc); - PaintHighlight(dc, true); + PaintBasicColours(dc); + PaintCustomColours(dc); + PaintCustomColour(dc); + PaintHighlight(dc, true); } void wxGenericColourDialog::CalculateMeasurements() { - smallRectangleSize.x = 18; - smallRectangleSize.y = 14; - customRectangleSize.x = 40; - customRectangleSize.y = 40; + smallRectangleSize.x = 18; + smallRectangleSize.y = 14; + customRectangleSize.x = 40; + customRectangleSize.y = 40; - gridSpacing = 6; - sectionSpacing = 15; + gridSpacing = 6; + sectionSpacing = 15; - standardColoursRect.x = 10; + standardColoursRect.x = 10; #ifdef __WXPM__ - standardColoursRect.y = 15 + 20; /* OS/2 needs to account for dialog titlebar */ + standardColoursRect.y = 15 + 20; /* OS/2 needs to account for dialog titlebar */ #else - standardColoursRect.y = 15; + standardColoursRect.y = 15; #endif - standardColoursRect.width = (8*smallRectangleSize.x) + (7*gridSpacing); - standardColoursRect.height = (6*smallRectangleSize.y) + (5*gridSpacing); - - customColoursRect.x = standardColoursRect.x; - customColoursRect.y = standardColoursRect.y + standardColoursRect.height + 20; - customColoursRect.width = (8*smallRectangleSize.x) + (7*gridSpacing); - customColoursRect.height = (2*smallRectangleSize.y) + (1*gridSpacing); - - singleCustomColourRect.x = customColoursRect.width + customColoursRect.x + sectionSpacing; - singleCustomColourRect.y = 80; - singleCustomColourRect.width = customRectangleSize.x; - singleCustomColourRect.height = customRectangleSize.y; - - okButtonX = 10; - customButtonX = singleCustomColourRect.x ; - buttonY = customColoursRect.y + customColoursRect.height + 10; + standardColoursRect.width = (8*smallRectangleSize.x) + (7*gridSpacing); + standardColoursRect.height = (6*smallRectangleSize.y) + (5*gridSpacing); + + customColoursRect.x = standardColoursRect.x; + customColoursRect.y = standardColoursRect.y + standardColoursRect.height + 20; + customColoursRect.width = (8*smallRectangleSize.x) + (7*gridSpacing); + customColoursRect.height = (2*smallRectangleSize.y) + (1*gridSpacing); + + singleCustomColourRect.x = customColoursRect.width + customColoursRect.x + sectionSpacing; + singleCustomColourRect.y = 80; + singleCustomColourRect.width = customRectangleSize.x; + singleCustomColourRect.height = customRectangleSize.y; + + okButtonX = 10; + customButtonX = singleCustomColourRect.x ; + buttonY = customColoursRect.y + customColoursRect.height + 10; } void wxGenericColourDialog::CreateWidgets() @@ -264,38 +259,44 @@ void wxGenericColourDialog::CreateWidgets() const int sliderHeight = 160; + // first sliders #if wxUSE_SLIDER const int sliderX = singleCustomColourRect.x + singleCustomColourRect.width + sectionSpacing; redSlider = new wxSlider(this, wxID_RED_SLIDER, colourData.m_dataColour.Red(), 0, 255, - wxDefaultPosition, wxSize(wxDefaultCoord, sliderHeight), wxVERTICAL|wxSL_LABELS); + wxDefaultPosition, wxSize(wxDefaultCoord, sliderHeight), wxSL_VERTICAL|wxSL_LABELS|wxSL_INVERSE); greenSlider = new wxSlider(this, wxID_GREEN_SLIDER, colourData.m_dataColour.Green(), 0, 255, - wxDefaultPosition, wxSize(wxDefaultCoord, sliderHeight), wxVERTICAL|wxSL_LABELS); + wxDefaultPosition, wxSize(wxDefaultCoord, sliderHeight), wxSL_VERTICAL|wxSL_LABELS|wxSL_INVERSE); blueSlider = new wxSlider(this, wxID_BLUE_SLIDER, colourData.m_dataColour.Blue(), 0, 255, - wxDefaultPosition, wxSize(wxDefaultCoord, sliderHeight), wxVERTICAL|wxSL_LABELS); + wxDefaultPosition, wxSize(wxDefaultCoord, sliderHeight), wxSL_VERTICAL|wxSL_LABELS|wxSL_INVERSE); wxBoxSizer *sliderSizer = new wxBoxSizer( wxHORIZONTAL ); - // 1) space for sliders - sliderSizer->Add( sliderX, sliderHeight ); - sliderSizer->Add( redSlider, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL | wxALL, 10 ); - sliderSizer->Add( greenSlider, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL | wxALL, 10 ); - sliderSizer->Add( blueSlider, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL | wxALL, 10 ); + sliderSizer->Add(sliderX, sliderHeight ); + + wxSizerFlags flagsRight; + flagsRight.Align(wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL).DoubleBorder(); - topSizer->Add( sliderSizer, 0, wxCENTRE | wxALL, 10 ); + sliderSizer->Add(redSlider, flagsRight); + sliderSizer->Add(greenSlider,flagsRight); + sliderSizer->Add(blueSlider,flagsRight); + + topSizer->Add(sliderSizer, wxSizerFlags().Centre().DoubleBorder()); #else - topSizer->Add( 1, sliderHeight, 0, wxCENTRE | wxALL, 15 ); + topSizer->Add(1, sliderHeight, wxSizerFlags(1).Centre().TripleBorder()); #endif // wxUSE_SLIDER -#if wxUSE_STATLINE - // 2) static line - topSizer->Add( new wxStaticLine( this, wxID_ANY ), 0, wxEXPAND | wxLEFT|wxRIGHT|wxTOP, 10 ); -#endif + // then the custom button + topSizer->Add(new wxButton(this, wxID_ADD_CUSTOM, + _("Add to custom colours") ), + wxSizerFlags().DoubleHorzBorder()); - // 3) buttons - wxSizer *buttonsizer = CreateButtonSizer( wxOK|wxCANCEL ); - buttonsizer->Add( new wxButton(this, wxID_ADD_CUSTOM, _("Add to custom colours") ), 0, wxLEFT|wxRIGHT, 10 ); - topSizer->Add( buttonsizer, 0, wxEXPAND | wxALL, 10 ); + // then the standard buttons + wxSizer *buttonsizer = CreateSeparatedButtonSizer(wxOK | wxCANCEL); + if ( buttonsizer ) + { + topSizer->Add(buttonsizer, wxSizerFlags().Expand().DoubleBorder()); + } SetAutoLayout( true ); SetSizer( topSizer ); @@ -369,33 +370,28 @@ void wxGenericColourDialog::InitializeColours(void) void wxGenericColourDialog::PaintBasicColours(wxDC& dc) { - dc.BeginDrawing(); - - int i; - for (i = 0; i < 6; i++) - { - int j; - for (j = 0; j < 8; j++) + int i; + for (i = 0; i < 6; i++) { - int ptr = i*8 + j; + int j; + for (j = 0; j < 8; j++) + { + int ptr = i*8 + j; - int x = (j*(smallRectangleSize.x+gridSpacing) + standardColoursRect.x); - int y = (i*(smallRectangleSize.y+gridSpacing) + standardColoursRect.y); + int x = (j*(smallRectangleSize.x+gridSpacing) + standardColoursRect.x); + int y = (i*(smallRectangleSize.y+gridSpacing) + standardColoursRect.y); - dc.SetPen(*wxBLACK_PEN); - wxBrush brush(standardColours[ptr], wxSOLID); - dc.SetBrush(brush); + dc.SetPen(*wxBLACK_PEN); + wxBrush brush(standardColours[ptr], wxSOLID); + dc.SetBrush(brush); - dc.DrawRectangle( x, y, smallRectangleSize.x, smallRectangleSize.y); + dc.DrawRectangle( x, y, smallRectangleSize.x, smallRectangleSize.y); + } } - } - dc.EndDrawing(); } void wxGenericColourDialog::PaintCustomColours(wxDC& dc) { - dc.BeginDrawing(); - int i; for (i = 0; i < 2; i++) { @@ -415,7 +411,6 @@ void wxGenericColourDialog::PaintCustomColours(wxDC& dc) dc.DrawRectangle( x, y, smallRectangleSize.x, smallRectangleSize.y); } } - dc.EndDrawing(); } void wxGenericColourDialog::PaintHighlight(wxDC& dc, bool draw) @@ -423,8 +418,6 @@ void wxGenericColourDialog::PaintHighlight(wxDC& dc, bool draw) if ( colourSelection < 0 ) return; - dc.BeginDrawing(); - // Number of pixels bigger than the standard rectangle size // for drawing a highlight int deltaX = 2; @@ -464,26 +457,20 @@ void wxGenericColourDialog::PaintHighlight(wxDC& dc, bool draw) dc.SetBrush(*wxTRANSPARENT_BRUSH); dc.DrawRectangle( x, y, (smallRectangleSize.x + (2*deltaX)), (smallRectangleSize.y + (2*deltaY))); } - - dc.EndDrawing(); } void wxGenericColourDialog::PaintCustomColour(wxDC& dc) { - dc.BeginDrawing(); - - dc.SetPen(*wxBLACK_PEN); + dc.SetPen(*wxBLACK_PEN); - wxBrush *brush = new wxBrush(colourData.m_dataColour, wxSOLID); - dc.SetBrush(*brush); + wxBrush *brush = new wxBrush(colourData.m_dataColour, wxSOLID); + dc.SetBrush(*brush); - dc.DrawRectangle( singleCustomColourRect.x, singleCustomColourRect.y, - customRectangleSize.x, customRectangleSize.y); + dc.DrawRectangle( singleCustomColourRect.x, singleCustomColourRect.y, + customRectangleSize.x, customRectangleSize.y); - dc.SetBrush(wxNullBrush); - delete brush; - - dc.EndDrawing(); + dc.SetBrush(wxNullBrush); + delete brush; } void wxGenericColourDialog::OnBasicColourClick(int which) @@ -597,4 +584,3 @@ void wxGenericColourDialog::OnBlueSlider(wxCommandEvent& WXUNUSED(event)) #endif // wxUSE_SLIDER #endif // wxUSE_COLOURDLG && !defined(__WXGTK20__) -