X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f4da9a943131e6654f05dbf0761e52593d30e5b5..cf25a599cd5ec86b3e054efb799dfbafe26a0d50:/src/generic/colrdlgg.cpp diff --git a/src/generic/colrdlgg.cpp b/src/generic/colrdlgg.cpp index 17250ef7ad..e3e0da6489 100644 --- a/src/generic/colrdlgg.cpp +++ b/src/generic/colrdlgg.cpp @@ -16,7 +16,7 @@ #pragma hdrstop #endif -#if wxUSE_COLOURDLG && (!defined(__WXGTK20__) || defined(__WXUNIVERSAL__)) +#if wxUSE_COLOURDLG #ifndef WX_PRECOMP #include "wx/utils.h" @@ -117,16 +117,15 @@ static const wxChar *wxColourDialogNames[] = wxGenericColourDialog::wxGenericColourDialog() { - dialogParent = NULL; - whichKind = 1; - colourSelection = -1; + m_whichKind = 1; + m_colourSelection = -1; } wxGenericColourDialog::wxGenericColourDialog(wxWindow *parent, wxColourData *data) { - whichKind = 1; - colourSelection = -1; + m_whichKind = 1; + m_colourSelection = -1; Create(parent, data); } @@ -141,14 +140,13 @@ void wxGenericColourDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) bool wxGenericColourDialog::Create(wxWindow *parent, wxColourData *data) { - if ( !wxDialog::Create(parent, wxID_ANY, _("Choose colour"), - wxPoint(0,0), wxSize(900, 900)) ) + if ( !wxDialog::Create(GetParentForModalDialog(parent), wxID_ANY, + _("Choose colour"), + wxPoint(0, 0), wxSize(900, 900)) ) return false; - dialogParent = parent; - if (data) - colourData = *data; + m_colourData = *data; InitializeColours(); CalculateMeasurements(); @@ -178,19 +176,19 @@ void wxGenericColourDialog::OnMouseEvent(wxMouseEvent& event) GetClientSize(NULL, &nClientHeight); y = (nClientHeight - y) + 20; #endif - if ((x >= standardColoursRect.x && x <= (standardColoursRect.x + standardColoursRect.width)) && - (y >= standardColoursRect.y && y <= (standardColoursRect.y + standardColoursRect.height))) + if ((x >= m_standardColoursRect.x && x <= (m_standardColoursRect.x + m_standardColoursRect.width)) && + (y >= m_standardColoursRect.y && y <= (m_standardColoursRect.y + m_standardColoursRect.height))) { - int selX = (int)(x - standardColoursRect.x)/(smallRectangleSize.x + gridSpacing); - int selY = (int)(y - standardColoursRect.y)/(smallRectangleSize.y + gridSpacing); + int selX = (int)(x - m_standardColoursRect.x)/(m_smallRectangleSize.x + m_gridSpacing); + int selY = (int)(y - m_standardColoursRect.y)/(m_smallRectangleSize.y + m_gridSpacing); int ptr = (int)(selX + selY*8); OnBasicColourClick(ptr); } - else if ((x >= customColoursRect.x && x <= (customColoursRect.x + customColoursRect.width)) && - (y >= customColoursRect.y && y <= (customColoursRect.y + customColoursRect.height))) + else if ((x >= m_customColoursRect.x && x <= (m_customColoursRect.x + m_customColoursRect.width)) && + (y >= m_customColoursRect.y && y <= (m_customColoursRect.y + m_customColoursRect.height))) { - int selX = (int)(x - customColoursRect.x)/(smallRectangleSize.x + gridSpacing); - int selY = (int)(y - customColoursRect.y)/(smallRectangleSize.y + gridSpacing); + int selX = (int)(x - m_customColoursRect.x)/(m_smallRectangleSize.x + m_gridSpacing); + int selY = (int)(y - m_customColoursRect.y)/(m_smallRectangleSize.y + m_gridSpacing); int ptr = (int)(selX + selY*8); OnCustomColourClick(ptr); } @@ -203,7 +201,7 @@ void wxGenericColourDialog::OnMouseEvent(wxMouseEvent& event) void wxGenericColourDialog::OnPaint(wxPaintEvent& event) { -#if !defined(__WXMOTIF__) && !defined(__WXPM__) && !defined(__WXCOCOA__) +#if !defined(__WXMOTIF__) && !defined(__WXPM__) && !defined(__WXCOCOA__) && !defined(__WXOSX__) wxDialog::OnPaint(event); #else wxUnusedVar(event); @@ -219,36 +217,36 @@ void wxGenericColourDialog::OnPaint(wxPaintEvent& event) void wxGenericColourDialog::CalculateMeasurements() { - smallRectangleSize.x = 18; - smallRectangleSize.y = 14; - customRectangleSize.x = 40; - customRectangleSize.y = 40; + m_smallRectangleSize.x = 18; + m_smallRectangleSize.y = 14; + m_customRectangleSize.x = 40; + m_customRectangleSize.y = 40; - gridSpacing = 6; - sectionSpacing = 15; + m_gridSpacing = 6; + m_sectionSpacing = 15; - standardColoursRect.x = 10; + m_standardColoursRect.x = 10; #ifdef __WXPM__ - standardColoursRect.y = 15 + 20; /* OS/2 needs to account for dialog titlebar */ + m_standardColoursRect.y = 15 + 20; /* OS/2 needs to account for dialog titlebar */ #else - standardColoursRect.y = 15; + m_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; + m_standardColoursRect.width = (8*m_smallRectangleSize.x) + (7*m_gridSpacing); + m_standardColoursRect.height = (6*m_smallRectangleSize.y) + (5*m_gridSpacing); + + m_customColoursRect.x = m_standardColoursRect.x; + m_customColoursRect.y = m_standardColoursRect.y + m_standardColoursRect.height + 20; + m_customColoursRect.width = (8*m_smallRectangleSize.x) + (7*m_gridSpacing); + m_customColoursRect.height = (2*m_smallRectangleSize.y) + (1*m_gridSpacing); + + m_singleCustomColourRect.x = m_customColoursRect.width + m_customColoursRect.x + m_sectionSpacing; + m_singleCustomColourRect.y = 80; + m_singleCustomColourRect.width = m_customRectangleSize.x; + m_singleCustomColourRect.height = m_customRectangleSize.y; + + m_okButtonX = 10; + m_customButtonX = m_singleCustomColourRect.x ; + m_buttonY = m_customColoursRect.y + m_customColoursRect.height + 10; } void wxGenericColourDialog::CreateWidgets() @@ -259,38 +257,44 @@ void wxGenericColourDialog::CreateWidgets() const int sliderHeight = 160; + // first sliders #if wxUSE_SLIDER - const int sliderX = singleCustomColourRect.x + singleCustomColourRect.width + sectionSpacing; + const int sliderX = m_singleCustomColourRect.x + m_singleCustomColourRect.width + m_sectionSpacing; - redSlider = new wxSlider(this, wxID_RED_SLIDER, colourData.m_dataColour.Red(), 0, 255, + m_redSlider = new wxSlider(this, wxID_RED_SLIDER, m_colourData.m_dataColour.Red(), 0, 255, wxDefaultPosition, wxSize(wxDefaultCoord, sliderHeight), wxSL_VERTICAL|wxSL_LABELS|wxSL_INVERSE); - greenSlider = new wxSlider(this, wxID_GREEN_SLIDER, colourData.m_dataColour.Green(), 0, 255, + m_greenSlider = new wxSlider(this, wxID_GREEN_SLIDER, m_colourData.m_dataColour.Green(), 0, 255, wxDefaultPosition, wxSize(wxDefaultCoord, sliderHeight), wxSL_VERTICAL|wxSL_LABELS|wxSL_INVERSE); - blueSlider = new wxSlider(this, wxID_BLUE_SLIDER, colourData.m_dataColour.Blue(), 0, 255, + m_blueSlider = new wxSlider(this, wxID_BLUE_SLIDER, m_colourData.m_dataColour.Blue(), 0, 255, 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(m_redSlider, flagsRight); + sliderSizer->Add(m_greenSlider,flagsRight); + sliderSizer->Add(m_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 ); @@ -311,54 +315,54 @@ void wxGenericColourDialog::InitializeColours(void) { wxColour col = wxTheColourDatabase->Find(wxColourDialogNames[i]); if (col.Ok()) - standardColours[i].Set(col.Red(), col.Green(), col.Blue()); + m_standardColours[i].Set(col.Red(), col.Green(), col.Blue()); else - standardColours[i].Set(0, 0, 0); + m_standardColours[i].Set(0, 0, 0); } - for (i = 0; i < WXSIZEOF(customColours); i++) + for (i = 0; i < WXSIZEOF(m_customColours); i++) { - wxColour c = colourData.GetCustomColour(i); + wxColour c = m_colourData.GetCustomColour(i); if (c.Ok()) - customColours[i] = colourData.GetCustomColour(i); + m_customColours[i] = m_colourData.GetCustomColour(i); else - customColours[i] = wxColour(255, 255, 255); + m_customColours[i] = wxColour(255, 255, 255); } - wxColour curr = colourData.GetColour(); + wxColour curr = m_colourData.GetColour(); if ( curr.Ok() ) { - bool initColourFound = false; + bool m_initColourFound = false; for (i = 0; i < WXSIZEOF(wxColourDialogNames); i++) { - if ( standardColours[i] == curr && !initColourFound ) + if ( m_standardColours[i] == curr && !m_initColourFound ) { - whichKind = 1; - colourSelection = i; - initColourFound = true; + m_whichKind = 1; + m_colourSelection = i; + m_initColourFound = true; break; } } - if ( !initColourFound ) + if ( !m_initColourFound ) { - for ( i = 0; i < WXSIZEOF(customColours); i++ ) + for ( i = 0; i < WXSIZEOF(m_customColours); i++ ) { - if ( customColours[i] == curr ) + if ( m_customColours[i] == curr ) { - whichKind = 2; - colourSelection = i; + m_whichKind = 2; + m_colourSelection = i; break; } } } - colourData.m_dataColour.Set( curr.Red(), curr.Green(), curr.Blue() ); + m_colourData.m_dataColour.Set( curr.Red(), curr.Green(), curr.Blue() ); } else { - whichKind = 1; - colourSelection = 0; - colourData.m_dataColour.Set( 0, 0, 0 ); + m_whichKind = 1; + m_colourSelection = 0; + m_colourData.m_dataColour.Set( 0, 0, 0 ); } } @@ -372,14 +376,14 @@ void wxGenericColourDialog::PaintBasicColours(wxDC& dc) { int ptr = i*8 + j; - int x = (j*(smallRectangleSize.x+gridSpacing) + standardColoursRect.x); - int y = (i*(smallRectangleSize.y+gridSpacing) + standardColoursRect.y); + int x = (j*(m_smallRectangleSize.x+m_gridSpacing) + m_standardColoursRect.x); + int y = (i*(m_smallRectangleSize.y+m_gridSpacing) + m_standardColoursRect.y); dc.SetPen(*wxBLACK_PEN); - wxBrush brush(standardColours[ptr], wxSOLID); + wxBrush brush(m_standardColours[ptr], wxSOLID); dc.SetBrush(brush); - dc.DrawRectangle( x, y, smallRectangleSize.x, smallRectangleSize.y); + dc.DrawRectangle( x, y, m_smallRectangleSize.x, m_smallRectangleSize.y); } } } @@ -394,22 +398,22 @@ void wxGenericColourDialog::PaintCustomColours(wxDC& dc) { int ptr = i*8 + j; - int x = (j*(smallRectangleSize.x+gridSpacing)) + customColoursRect.x; - int y = (i*(smallRectangleSize.y+gridSpacing)) + customColoursRect.y; + int x = (j*(m_smallRectangleSize.x+m_gridSpacing)) + m_customColoursRect.x; + int y = (i*(m_smallRectangleSize.y+m_gridSpacing)) + m_customColoursRect.y; dc.SetPen(*wxBLACK_PEN); - wxBrush brush(customColours[ptr], wxSOLID); + wxBrush brush(m_customColours[ptr], wxSOLID); dc.SetBrush(brush); - dc.DrawRectangle( x, y, smallRectangleSize.x, smallRectangleSize.y); + dc.DrawRectangle( x, y, m_smallRectangleSize.x, m_smallRectangleSize.y); } } } void wxGenericColourDialog::PaintHighlight(wxDC& dc, bool draw) { - if ( colourSelection < 0 ) + if ( m_colourSelection < 0 ) return; // Number of pixels bigger than the standard rectangle size @@ -417,14 +421,14 @@ void wxGenericColourDialog::PaintHighlight(wxDC& dc, bool draw) int deltaX = 2; int deltaY = 2; - if (whichKind == 1) + if (m_whichKind == 1) { // Standard colours - int y = (int)(colourSelection / 8); - int x = (int)(colourSelection - (y*8)); + int y = (int)(m_colourSelection / 8); + int x = (int)(m_colourSelection - (y*8)); - x = (x*(smallRectangleSize.x + gridSpacing) + standardColoursRect.x) - deltaX; - y = (y*(smallRectangleSize.y + gridSpacing) + standardColoursRect.y) - deltaY; + x = (x*(m_smallRectangleSize.x + m_gridSpacing) + m_standardColoursRect.x) - deltaX; + y = (y*(m_smallRectangleSize.y + m_gridSpacing) + m_standardColoursRect.y) - deltaY; if (draw) dc.SetPen(*wxBLACK_PEN); @@ -432,16 +436,16 @@ void wxGenericColourDialog::PaintHighlight(wxDC& dc, bool draw) dc.SetPen(*wxLIGHT_GREY_PEN); dc.SetBrush(*wxTRANSPARENT_BRUSH); - dc.DrawRectangle( x, y, (smallRectangleSize.x + (2*deltaX)), (smallRectangleSize.y + (2*deltaY))); + dc.DrawRectangle( x, y, (m_smallRectangleSize.x + (2*deltaX)), (m_smallRectangleSize.y + (2*deltaY))); } else { // User-defined colours - int y = (int)(colourSelection / 8); - int x = (int)(colourSelection - (y*8)); + int y = (int)(m_colourSelection / 8); + int x = (int)(m_colourSelection - (y*8)); - x = (x*(smallRectangleSize.x + gridSpacing) + customColoursRect.x) - deltaX; - y = (y*(smallRectangleSize.y + gridSpacing) + customColoursRect.y) - deltaY; + x = (x*(m_smallRectangleSize.x + m_gridSpacing) + m_customColoursRect.x) - deltaX; + y = (y*(m_smallRectangleSize.y + m_gridSpacing) + m_customColoursRect.y) - deltaY; if (draw) dc.SetPen(*wxBLACK_PEN); @@ -449,7 +453,7 @@ void wxGenericColourDialog::PaintHighlight(wxDC& dc, bool draw) dc.SetPen(*wxLIGHT_GREY_PEN); dc.SetBrush(*wxTRANSPARENT_BRUSH); - dc.DrawRectangle( x, y, (smallRectangleSize.x + (2*deltaX)), (smallRectangleSize.y + (2*deltaY))); + dc.DrawRectangle( x, y, (m_smallRectangleSize.x + (2*deltaX)), (m_smallRectangleSize.y + (2*deltaY))); } } @@ -457,11 +461,11 @@ void wxGenericColourDialog::PaintCustomColour(wxDC& dc) { dc.SetPen(*wxBLACK_PEN); - wxBrush *brush = new wxBrush(colourData.m_dataColour, wxSOLID); + wxBrush *brush = new wxBrush(m_colourData.m_dataColour, wxSOLID); dc.SetBrush(*brush); - dc.DrawRectangle( singleCustomColourRect.x, singleCustomColourRect.y, - customRectangleSize.x, customRectangleSize.y); + dc.DrawRectangle( m_singleCustomColourRect.x, m_singleCustomColourRect.y, + m_customRectangleSize.x, m_customRectangleSize.y); dc.SetBrush(wxNullBrush); delete brush; @@ -472,18 +476,18 @@ void wxGenericColourDialog::OnBasicColourClick(int which) wxClientDC dc(this); PaintHighlight(dc, false); - whichKind = 1; - colourSelection = which; + m_whichKind = 1; + m_colourSelection = which; #if wxUSE_SLIDER - redSlider->SetValue( standardColours[colourSelection].Red() ); - greenSlider->SetValue( standardColours[colourSelection].Green() ); - blueSlider->SetValue( standardColours[colourSelection].Blue() ); + m_redSlider->SetValue( m_standardColours[m_colourSelection].Red() ); + m_greenSlider->SetValue( m_standardColours[m_colourSelection].Green() ); + m_blueSlider->SetValue( m_standardColours[m_colourSelection].Blue() ); #endif // wxUSE_SLIDER - colourData.m_dataColour.Set(standardColours[colourSelection].Red(), - standardColours[colourSelection].Green(), - standardColours[colourSelection].Blue()); + m_colourData.m_dataColour.Set(m_standardColours[m_colourSelection].Red(), + m_standardColours[m_colourSelection].Green(), + m_standardColours[m_colourSelection].Blue()); PaintCustomColour(dc); PaintHighlight(dc, true); @@ -493,18 +497,18 @@ void wxGenericColourDialog::OnCustomColourClick(int which) { wxClientDC dc(this); PaintHighlight(dc, false); - whichKind = 2; - colourSelection = which; + m_whichKind = 2; + m_colourSelection = which; #if wxUSE_SLIDER - redSlider->SetValue( customColours[colourSelection].Red() ); - greenSlider->SetValue( customColours[colourSelection].Green() ); - blueSlider->SetValue( customColours[colourSelection].Blue() ); + m_redSlider->SetValue( m_customColours[m_colourSelection].Red() ); + m_greenSlider->SetValue( m_customColours[m_colourSelection].Green() ); + m_blueSlider->SetValue( m_customColours[m_colourSelection].Blue() ); #endif // wxUSE_SLIDER - colourData.m_dataColour.Set(customColours[colourSelection].Red(), - customColours[colourSelection].Green(), - customColours[colourSelection].Blue()); + m_colourData.m_dataColour.Set(m_customColours[m_colourSelection].Red(), + m_customColours[m_colourSelection].Green(), + m_customColours[m_colourSelection].Blue()); PaintCustomColour(dc); PaintHighlight(dc, true); @@ -526,19 +530,19 @@ void wxGenericColourDialog::OnCancel(void) void wxGenericColourDialog::OnAddCustom(wxCommandEvent& WXUNUSED(event)) { wxClientDC dc(this); - if (whichKind != 2) + if (m_whichKind != 2) { PaintHighlight(dc, false); - whichKind = 2; - colourSelection = 0; + m_whichKind = 2; + m_colourSelection = 0; PaintHighlight(dc, true); } - customColours[colourSelection].Set(colourData.m_dataColour.Red(), - colourData.m_dataColour.Green(), - colourData.m_dataColour.Blue()); + m_customColours[m_colourSelection].Set(m_colourData.m_dataColour.Red(), + m_colourData.m_dataColour.Green(), + m_colourData.m_dataColour.Blue()); - colourData.SetCustomColour(colourSelection, customColours[colourSelection]); + m_colourData.SetCustomColour(m_colourSelection, m_customColours[m_colourSelection]); PaintCustomColours(dc); } @@ -547,34 +551,34 @@ void wxGenericColourDialog::OnAddCustom(wxCommandEvent& WXUNUSED(event)) void wxGenericColourDialog::OnRedSlider(wxCommandEvent& WXUNUSED(event)) { - if (!redSlider) + if (!m_redSlider) return; wxClientDC dc(this); - colourData.m_dataColour.Set((unsigned char)redSlider->GetValue(), colourData.m_dataColour.Green(), colourData.m_dataColour.Blue()); + m_colourData.m_dataColour.Set((unsigned char)m_redSlider->GetValue(), m_colourData.m_dataColour.Green(), m_colourData.m_dataColour.Blue()); PaintCustomColour(dc); } void wxGenericColourDialog::OnGreenSlider(wxCommandEvent& WXUNUSED(event)) { - if (!greenSlider) + if (!m_greenSlider) return; wxClientDC dc(this); - colourData.m_dataColour.Set(colourData.m_dataColour.Red(), (unsigned char)greenSlider->GetValue(), colourData.m_dataColour.Blue()); + m_colourData.m_dataColour.Set(m_colourData.m_dataColour.Red(), (unsigned char)m_greenSlider->GetValue(), m_colourData.m_dataColour.Blue()); PaintCustomColour(dc); } void wxGenericColourDialog::OnBlueSlider(wxCommandEvent& WXUNUSED(event)) { - if (!blueSlider) + if (!m_blueSlider) return; wxClientDC dc(this); - colourData.m_dataColour.Set(colourData.m_dataColour.Red(), colourData.m_dataColour.Green(), (unsigned char)blueSlider->GetValue()); + m_colourData.m_dataColour.Set(m_colourData.m_dataColour.Red(), m_colourData.m_dataColour.Green(), (unsigned char)m_blueSlider->GetValue()); PaintCustomColour(dc); } #endif // wxUSE_SLIDER -#endif // wxUSE_COLOURDLG && !defined(__WXGTK20__) +#endif // wxUSE_COLOURDLG