X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c35414dbe42a39e6221d88182bebde920ad0164e..d728116a27b358e5b002337d96268fb51be128eb:/src/generic/colrdlgg.cpp diff --git a/src/generic/colrdlgg.cpp b/src/generic/colrdlgg.cpp index 5843141cab..8fbf74264a 100644 --- a/src/generic/colrdlgg.cpp +++ b/src/generic/colrdlgg.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: colrdlgg.cpp +// Name: generic/colrdlgg.cpp // Purpose: Choice dialogs // Author: Julian Smart // Modified by: @@ -17,26 +17,30 @@ #include "wx/wxprec.h" #ifdef __BORLANDC__ -#pragma hdrstop + #pragma hdrstop #endif +#if wxUSE_COLOURDLG + #ifndef WX_PRECOMP -#include -#include -#include "wx/utils.h" -#include "wx/intl.h" -#include "wx/dialog.h" -#include "wx/listbox.h" -#include "wx/button.h" -#include "wx/stattext.h" -#include "wx/layout.h" -#include "wx/dcclient.h" -#include "wx/slider.h" + #include "wx/utils.h" + #include "wx/intl.h" + #include "wx/dialog.h" + #include "wx/listbox.h" + #include "wx/button.h" + #include "wx/stattext.h" + #include "wx/layout.h" + #include "wx/dcclient.h" + #include "wx/slider.h" + #include "wx/sizer.h" +#endif + +#if wxUSE_STATLINE + #include "wx/statline.h" #endif #include "wx/generic/colrdlgg.h" -#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxGenericColourDialog, wxDialog) BEGIN_EVENT_TABLE(wxGenericColourDialog, wxDialog) @@ -49,84 +53,83 @@ BEGIN_EVENT_TABLE(wxGenericColourDialog, wxDialog) EVT_CLOSE(wxGenericColourDialog::OnCloseWindow) END_EVENT_TABLE() -#endif /* * Generic wxColourDialog */ #define NUM_COLS 48 -static wxString wxColourDialogNames[NUM_COLS]={_T("ORANGE"), - _T("GOLDENROD"), - _T("WHEAT"), - _T("SPRING GREEN"), - _T("SKY BLUE"), - _T("SLATE BLUE"), - _T("MEDIUM VIOLET RED"), - _T("PURPLE"), - - _T("RED"), - _T("YELLOW"), - _T("MEDIUM SPRING GREEN"), - _T("PALE GREEN"), - _T("CYAN"), - _T("LIGHT STEEL BLUE"), - _T("ORCHID"), - _T("LIGHT MAGENTA"), - - _T("BROWN"), - _T("YELLOW"), - _T("GREEN"), - _T("CADET BLUE"), - _T("MEDIUM BLUE"), - _T("MAGENTA"), - _T("MAROON"), - _T("ORANGE RED"), - - _T("FIREBRICK"), - _T("CORAL"), - _T("FOREST GREEN"), - _T("AQUAMARINE"), - _T("BLUE"), - _T("NAVY"), - _T("THISTLE"), - _T("MEDIUM VIOLET RED"), - - _T("INDIAN RED"), - _T("GOLD"), - _T("MEDIUM SEA GREEN"), - _T("MEDIUM BLUE"), - _T("MIDNIGHT BLUE"), - _T("GREY"), - _T("PURPLE"), - _T("KHAKI"), - - _T("BLACK"), - _T("MEDIUM FOREST GREEN"), - _T("KHAKI"), - _T("DARK GREY"), - _T("SEA GREEN"), - _T("LIGHT GREY"), - _T("MEDIUM SLATE BLUE"), - _T("WHITE") +static wxString wxColourDialogNames[NUM_COLS]={wxT("ORANGE"), + wxT("GOLDENROD"), + wxT("WHEAT"), + wxT("SPRING GREEN"), + wxT("SKY BLUE"), + wxT("SLATE BLUE"), + wxT("MEDIUM VIOLET RED"), + wxT("PURPLE"), + + wxT("RED"), + wxT("YELLOW"), + wxT("MEDIUM SPRING GREEN"), + wxT("PALE GREEN"), + wxT("CYAN"), + wxT("LIGHT STEEL BLUE"), + wxT("ORCHID"), + wxT("LIGHT MAGENTA"), + + wxT("BROWN"), + wxT("YELLOW"), + wxT("GREEN"), + wxT("CADET BLUE"), + wxT("MEDIUM BLUE"), + wxT("MAGENTA"), + wxT("MAROON"), + wxT("ORANGE RED"), + + wxT("FIREBRICK"), + wxT("CORAL"), + wxT("FOREST GREEN"), + wxT("AQUAMARINE"), + wxT("BLUE"), + wxT("NAVY"), + wxT("THISTLE"), + wxT("MEDIUM VIOLET RED"), + + wxT("INDIAN RED"), + wxT("GOLD"), + wxT("MEDIUM SEA GREEN"), + wxT("MEDIUM BLUE"), + wxT("MIDNIGHT BLUE"), + wxT("GREY"), + wxT("PURPLE"), + wxT("KHAKI"), + + wxT("BLACK"), + wxT("MEDIUM FOREST GREEN"), + wxT("KHAKI"), + wxT("DARK GREY"), + wxT("SEA GREEN"), + wxT("LIGHT GREY"), + wxT("MEDIUM SLATE BLUE"), + wxT("WHITE") }; -wxGenericColourDialog::wxGenericColourDialog(void) +wxGenericColourDialog::wxGenericColourDialog() { dialogParent = NULL; whichKind = 1; colourSelection = 0; } -wxGenericColourDialog::wxGenericColourDialog(wxWindow *parent, wxColourData *data): - wxDialog(parent, -1, "Colour", wxPoint(0, 0), wxSize(900, 900), wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL) +wxGenericColourDialog::wxGenericColourDialog(wxWindow *parent, + wxColourData *data) { whichKind = 1; colourSelection = 0; Create(parent, data); } -wxGenericColourDialog::~wxGenericColourDialog(void) +wxGenericColourDialog::~wxGenericColourDialog() { } @@ -137,19 +140,24 @@ void wxGenericColourDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) bool wxGenericColourDialog::Create(wxWindow *parent, wxColourData *data) { - dialogParent = parent; + if ( !wxDialog::Create(parent, -1, wxT("Colour"), + wxPoint(0, 0), wxSize(900, 900), + wxDEFAULT_DIALOG_STYLE | wxDIALOG_MODAL) ) + return FALSE; - if (data) - colourData = *data; + dialogParent = parent; - InitializeColours(); - CalculateMeasurements(); - CreateWidgets(); + if (data) + colourData = *data; - return TRUE; + InitializeColours(); + CalculateMeasurements(); + CreateWidgets(); + + return TRUE; } -int wxGenericColourDialog::ShowModal(void) +int wxGenericColourDialog::ShowModal() { return wxDialog::ShowModal(); } @@ -184,7 +192,7 @@ void wxGenericColourDialog::OnMouseEvent(wxMouseEvent& event) void wxGenericColourDialog::OnPaint(wxPaintEvent& event) { -#ifndef __WXMOTIF__ +#if !defined(__WXMOTIF__) && !defined(__WXMAC__) && !defined(__WXPM__) wxDialog::OnPaint(event); #endif @@ -196,7 +204,7 @@ void wxGenericColourDialog::OnPaint(wxPaintEvent& event) PaintHighlight(dc, TRUE); } -void wxGenericColourDialog::CalculateMeasurements(void) +void wxGenericColourDialog::CalculateMeasurements() { smallRectangleSize.x = 18; smallRectangleSize.y = 14; @@ -226,40 +234,50 @@ void wxGenericColourDialog::CalculateMeasurements(void) buttonY = customColoursRect.y + customColoursRect.height + 10; } -void wxGenericColourDialog::CreateWidgets(void) +void wxGenericColourDialog::CreateWidgets() { - wxBeginBusyCursor(); + wxBeginBusyCursor(); + + int sliderX = singleCustomColourRect.x + singleCustomColourRect.width + sectionSpacing; +#if defined(__WXMOTIF__) + int sliderSpacing = 65; + int sliderHeight = 160; +#else + int sliderSpacing = 45; + int sliderHeight = 160; +#endif - wxButton *okButton = new wxButton(this, wxID_OK, _("OK"), wxPoint(okButtonX, buttonY), wxSize(75,-1) ); - int bw, bh; - okButton->GetSize(&bw, &bh); + redSlider = new wxSlider(this, wxID_RED_SLIDER, 0, 0, 255, + wxPoint(sliderX, 10), wxSize(-1, sliderHeight), wxVERTICAL|wxSL_LABELS); + greenSlider = new wxSlider(this, wxID_GREEN_SLIDER, 0, 0, 255, + wxPoint(sliderX + sliderSpacing, 10), wxSize(-1, sliderHeight), wxVERTICAL|wxSL_LABELS); + blueSlider = new wxSlider(this, wxID_BLUE_SLIDER, 0, 0, 255, + wxPoint(sliderX + 2*sliderSpacing, 10), wxSize(-1, sliderHeight), wxVERTICAL|wxSL_LABELS); - (void) new wxButton(this, wxID_CANCEL, _("Cancel"), wxPoint(okButtonX + bw + 20, buttonY), wxSize(75,-1)); - (void) new wxButton(this, wxID_ADD_CUSTOM, _("Add to custom colours"), - wxPoint(customButtonX, buttonY)); + wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); - int sliderX = singleCustomColourRect.x + singleCustomColourRect.width + sectionSpacing; -#ifdef __X__ - int sliderSpacing = 75; - int sliderHeight = 160; -#else - int sliderSpacing = 45; - int sliderHeight = 160; + // 1) space for explicitly layouted controls + topsizer->Add( sliderX + 3*sliderSpacing, sliderHeight+25 ); + +#if wxUSE_STATLINE + // 2) static line + topsizer->Add( new wxStaticLine( this, -1 ), 0, wxEXPAND | wxLEFT|wxRIGHT|wxTOP, 10 ); #endif - redSlider = new wxSlider(this, wxID_RED_SLIDER, 0, 0, 255, - wxPoint(sliderX, 10), wxSize(-1, sliderHeight), wxVERTICAL|wxSL_LABELS); - greenSlider = new wxSlider(this, wxID_GREEN_SLIDER, 0, 0, 255, - wxPoint(sliderX + sliderSpacing, 10), wxSize(-1, sliderHeight), wxVERTICAL|wxSL_LABELS); - blueSlider = new wxSlider(this, wxID_BLUE_SLIDER, 0, 0, 255, - wxPoint(sliderX + 2*sliderSpacing, 10), wxSize(-1, sliderHeight), wxVERTICAL|wxSL_LABELS); + // 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, wxCENTRE | wxALL, 10 ); + + SetAutoLayout( TRUE ); + SetSizer( topsizer ); - SetClientSize(sliderX + 3*sliderSpacing, buttonY + 40); - okButton->SetDefault(); + topsizer->SetSizeHints( this ); + topsizer->Fit( this ); - Centre(wxBOTH); + Centre( wxBOTH ); - wxEndBusyCursor(); + wxEndBusyCursor(); } void wxGenericColourDialog::InitializeColours(void) @@ -276,11 +294,6 @@ void wxGenericColourDialog::InitializeColours(void) for (i = 0; i < 16; i++) customColours[i] = -/* -#ifndef __VMS__ - (wxColour&) -#endif -*/ colourData.GetCustomColour(i); singleCustomColour.Set(0, 0, 0); @@ -486,4 +499,5 @@ void wxGenericColourDialog::OnBlueSlider(wxCommandEvent& WXUNUSED(event)) PaintCustomColour(dc); } +#endif // wxUSE_COLOURDLG