]> git.saurik.com Git - wxWidgets.git/blame - src/generic/colrdlgg.cpp
wxTinderbox build fix.
[wxWidgets.git] / src / generic / colrdlgg.cpp
CommitLineData
c801d85f 1/////////////////////////////////////////////////////////////////////////////
1e6feb95 2// Name: generic/colrdlgg.cpp
c801d85f
KB
3// Purpose: Choice dialogs
4// Author: Julian Smart
5// Modified by:
6// Created: 04/01/98
7// RCS-ID: $Id$
6aa89a22 8// Copyright: (c) Julian Smart
65571936 9// Licence: wxWindows licence
c801d85f
KB
10/////////////////////////////////////////////////////////////////////////////
11
c801d85f
KB
12// For compilers that support precompilation, includes "wx.h".
13#include "wx/wxprec.h"
14
15#ifdef __BORLANDC__
1e6feb95 16 #pragma hdrstop
c801d85f
KB
17#endif
18
853bbd9e 19#if wxUSE_COLOURDLG && (!defined(__WXGTK20__) || defined(__WXUNIVERSAL__))
1e6feb95 20
c801d85f 21#ifndef WX_PRECOMP
1e6feb95
VZ
22 #include "wx/utils.h"
23 #include "wx/intl.h"
24 #include "wx/dialog.h"
25 #include "wx/listbox.h"
26 #include "wx/button.h"
27 #include "wx/stattext.h"
28 #include "wx/layout.h"
29 #include "wx/dcclient.h"
1e6feb95 30 #include "wx/sizer.h"
4130b487
RR
31#endif
32
33#if wxUSE_STATLINE
34 #include "wx/statline.h"
c801d85f
KB
35#endif
36
6bb44116
WS
37#if wxUSE_SLIDER
38 #include "wx/slider.h"
39#endif
40
c801d85f
KB
41#include "wx/generic/colrdlgg.h"
42
c801d85f
KB
43IMPLEMENT_DYNAMIC_CLASS(wxGenericColourDialog, wxDialog)
44
45BEGIN_EVENT_TABLE(wxGenericColourDialog, wxDialog)
c35414db 46 EVT_BUTTON(wxID_ADD_CUSTOM, wxGenericColourDialog::OnAddCustom)
6bb44116 47#if wxUSE_SLIDER
c35414db
VZ
48 EVT_SLIDER(wxID_RED_SLIDER, wxGenericColourDialog::OnRedSlider)
49 EVT_SLIDER(wxID_GREEN_SLIDER, wxGenericColourDialog::OnGreenSlider)
50 EVT_SLIDER(wxID_BLUE_SLIDER, wxGenericColourDialog::OnBlueSlider)
6bb44116 51#endif
c35414db
VZ
52 EVT_PAINT(wxGenericColourDialog::OnPaint)
53 EVT_MOUSE_EVENTS(wxGenericColourDialog::OnMouseEvent)
54 EVT_CLOSE(wxGenericColourDialog::OnCloseWindow)
c801d85f
KB
55END_EVENT_TABLE()
56
c801d85f
KB
57
58/*
59 * Generic wxColourDialog
60 */
61
61138de0
VZ
62// don't change the number of elements (48) in this array, the code below is
63// hardcoded to use it
64static const wxChar *wxColourDialogNames[] =
65{
66 wxT("ORANGE"),
67 wxT("GOLDENROD"),
68 wxT("WHEAT"),
69 wxT("SPRING GREEN"),
70 wxT("SKY BLUE"),
71 wxT("SLATE BLUE"),
72 wxT("MEDIUM VIOLET RED"),
73 wxT("PURPLE"),
74
75 wxT("RED"),
76 wxT("YELLOW"),
77 wxT("MEDIUM SPRING GREEN"),
78 wxT("PALE GREEN"),
79 wxT("CYAN"),
80 wxT("LIGHT STEEL BLUE"),
81 wxT("ORCHID"),
82 wxT("LIGHT MAGENTA"),
83
84 wxT("BROWN"),
85 wxT("YELLOW"),
86 wxT("GREEN"),
87 wxT("CADET BLUE"),
88 wxT("MEDIUM BLUE"),
89 wxT("MAGENTA"),
90 wxT("MAROON"),
91 wxT("ORANGE RED"),
92
93 wxT("FIREBRICK"),
94 wxT("CORAL"),
95 wxT("FOREST GREEN"),
96 wxT("AQUAMARINE"),
97 wxT("BLUE"),
98 wxT("NAVY"),
99 wxT("THISTLE"),
100 wxT("MEDIUM VIOLET RED"),
101
102 wxT("INDIAN RED"),
103 wxT("GOLD"),
104 wxT("MEDIUM SEA GREEN"),
105 wxT("MEDIUM BLUE"),
106 wxT("MIDNIGHT BLUE"),
107 wxT("GREY"),
108 wxT("PURPLE"),
109 wxT("KHAKI"),
110
111 wxT("BLACK"),
112 wxT("MEDIUM FOREST GREEN"),
113 wxT("KHAKI"),
114 wxT("DARK GREY"),
115 wxT("SEA GREEN"),
116 wxT("LIGHT GREY"),
117 wxT("MEDIUM SLATE BLUE"),
118 wxT("WHITE")
119};
c801d85f 120
4130b487 121wxGenericColourDialog::wxGenericColourDialog()
c801d85f
KB
122{
123 dialogParent = NULL;
124 whichKind = 1;
ea8a9699 125 colourSelection = -1;
c801d85f
KB
126}
127
f6bcfd97
BP
128wxGenericColourDialog::wxGenericColourDialog(wxWindow *parent,
129 wxColourData *data)
c801d85f
KB
130{
131 whichKind = 1;
ea8a9699 132 colourSelection = -1;
c801d85f
KB
133 Create(parent, data);
134}
135
4130b487 136wxGenericColourDialog::~wxGenericColourDialog()
c801d85f
KB
137{
138}
139
74e3313b 140void wxGenericColourDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event))
c801d85f 141{
e3065973 142 EndModal(wxID_CANCEL);
c801d85f
KB
143}
144
145bool wxGenericColourDialog::Create(wxWindow *parent, wxColourData *data)
146{
ca65c044 147 if ( !wxDialog::Create(parent, wxID_ANY, _("Choose colour"),
c47addef 148 wxPoint(0,0), wxSize(900, 900)) )
ca65c044 149 return false;
c35414db 150
f6bcfd97 151 dialogParent = parent;
c801d85f 152
f6bcfd97
BP
153 if (data)
154 colourData = *data;
c35414db 155
f6bcfd97
BP
156 InitializeColours();
157 CalculateMeasurements();
158 CreateWidgets();
159
ca65c044 160 return true;
c801d85f
KB
161}
162
4130b487 163int wxGenericColourDialog::ShowModal()
c801d85f 164{
984b0d8b 165 return wxDialog::ShowModal();
c801d85f
KB
166}
167
168
169// Internal functions
170void wxGenericColourDialog::OnMouseEvent(wxMouseEvent& event)
171{
172 if (event.ButtonDown(1))
173 {
174 int x = (int)event.GetX();
175 int y = (int)event.GetY();
176
b1f9d7bf
DW
177#ifdef __WXPM__
178 // Handle OS/2's reverse coordinate system and account for the dialog title
179 int nClientHeight;
180
181 GetClientSize(NULL, &nClientHeight);
182 y = (nClientHeight - y) + 20;
183#endif
c801d85f
KB
184 if ((x >= standardColoursRect.x && x <= (standardColoursRect.x + standardColoursRect.width)) &&
185 (y >= standardColoursRect.y && y <= (standardColoursRect.y + standardColoursRect.height)))
186 {
187 int selX = (int)(x - standardColoursRect.x)/(smallRectangleSize.x + gridSpacing);
188 int selY = (int)(y - standardColoursRect.y)/(smallRectangleSize.y + gridSpacing);
189 int ptr = (int)(selX + selY*8);
190 OnBasicColourClick(ptr);
191 }
192 else if ((x >= customColoursRect.x && x <= (customColoursRect.x + customColoursRect.width)) &&
193 (y >= customColoursRect.y && y <= (customColoursRect.y + customColoursRect.height)))
194 {
195 int selX = (int)(x - customColoursRect.x)/(smallRectangleSize.x + gridSpacing);
196 int selY = (int)(y - customColoursRect.y)/(smallRectangleSize.y + gridSpacing);
197 int ptr = (int)(selX + selY*8);
198 OnCustomColourClick(ptr);
199 }
c10920de
VS
200 else
201 event.Skip();
c801d85f 202 }
c10920de
VS
203 else
204 event.Skip();
c801d85f
KB
205}
206
207void wxGenericColourDialog::OnPaint(wxPaintEvent& event)
208{
1bf38b0e 209#if !defined(__WXMOTIF__) && !defined(__WXPM__) && !defined(__WXCOCOA__)
7a893a31
WS
210 wxDialog::OnPaint(event);
211#else
212 wxUnusedVar(event);
d75638f8 213#endif
c801d85f 214
7a893a31 215 wxPaintDC dc(this);
c801d85f 216
7a893a31
WS
217 PaintBasicColours(dc);
218 PaintCustomColours(dc);
219 PaintCustomColour(dc);
220 PaintHighlight(dc, true);
c801d85f
KB
221}
222
4130b487 223void wxGenericColourDialog::CalculateMeasurements()
c801d85f
KB
224{
225 smallRectangleSize.x = 18;
226 smallRectangleSize.y = 14;
227 customRectangleSize.x = 40;
228 customRectangleSize.y = 40;
229
230 gridSpacing = 6;
231 sectionSpacing = 15;
232
233 standardColoursRect.x = 10;
b1f9d7bf
DW
234#ifdef __WXPM__
235 standardColoursRect.y = 15 + 20; /* OS/2 needs to account for dialog titlebar */
236#else
c801d85f 237 standardColoursRect.y = 15;
b1f9d7bf 238#endif
c801d85f
KB
239 standardColoursRect.width = (8*smallRectangleSize.x) + (7*gridSpacing);
240 standardColoursRect.height = (6*smallRectangleSize.y) + (5*gridSpacing);
241
242 customColoursRect.x = standardColoursRect.x;
243 customColoursRect.y = standardColoursRect.y + standardColoursRect.height + 20;
244 customColoursRect.width = (8*smallRectangleSize.x) + (7*gridSpacing);
245 customColoursRect.height = (2*smallRectangleSize.y) + (1*gridSpacing);
246
247 singleCustomColourRect.x = customColoursRect.width + customColoursRect.x + sectionSpacing;
248 singleCustomColourRect.y = 80;
249 singleCustomColourRect.width = customRectangleSize.x;
250 singleCustomColourRect.height = customRectangleSize.y;
251
252 okButtonX = 10;
253 customButtonX = singleCustomColourRect.x ;
254 buttonY = customColoursRect.y + customColoursRect.height + 10;
255}
256
4130b487 257void wxGenericColourDialog::CreateWidgets()
c801d85f 258{
4130b487 259 wxBeginBusyCursor();
c801d85f 260
6bb44116
WS
261 wxBoxSizer *topSizer = new wxBoxSizer( wxVERTICAL );
262
f79a46f8 263 const int sliderHeight = 160;
4130b487 264
6bb44116
WS
265#if wxUSE_SLIDER
266 const int sliderX = singleCustomColourRect.x + singleCustomColourRect.width + sectionSpacing;
267
984b0d8b 268 redSlider = new wxSlider(this, wxID_RED_SLIDER, colourData.m_dataColour.Red(), 0, 255,
a3b8b891 269 wxDefaultPosition, wxSize(wxDefaultCoord, sliderHeight), wxSL_VERTICAL|wxSL_LABELS|wxSL_INVERSE);
984b0d8b 270 greenSlider = new wxSlider(this, wxID_GREEN_SLIDER, colourData.m_dataColour.Green(), 0, 255,
a3b8b891 271 wxDefaultPosition, wxSize(wxDefaultCoord, sliderHeight), wxSL_VERTICAL|wxSL_LABELS|wxSL_INVERSE);
984b0d8b 272 blueSlider = new wxSlider(this, wxID_BLUE_SLIDER, colourData.m_dataColour.Blue(), 0, 255,
a3b8b891 273 wxDefaultPosition, wxSize(wxDefaultCoord, sliderHeight), wxSL_VERTICAL|wxSL_LABELS|wxSL_INVERSE);
f79a46f8
WS
274
275 wxBoxSizer *sliderSizer = new wxBoxSizer( wxHORIZONTAL );
276
277 // 1) space for sliders
278 sliderSizer->Add( sliderX, sliderHeight );
279 sliderSizer->Add( redSlider, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL | wxALL, 10 );
280 sliderSizer->Add( greenSlider, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL | wxALL, 10 );
281 sliderSizer->Add( blueSlider, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL | wxALL, 10 );
4130b487 282
f79a46f8 283 topSizer->Add( sliderSizer, 0, wxCENTRE | wxALL, 10 );
6bb44116
WS
284#else
285 topSizer->Add( 1, sliderHeight, 0, wxCENTRE | wxALL, 15 );
286#endif // wxUSE_SLIDER
6c34d0ed 287
4130b487
RR
288#if wxUSE_STATLINE
289 // 2) static line
f79a46f8 290 topSizer->Add( new wxStaticLine( this, wxID_ANY ), 0, wxEXPAND | wxLEFT|wxRIGHT|wxTOP, 10 );
c801d85f 291#endif
c35414db 292
4130b487
RR
293 // 3) buttons
294 wxSizer *buttonsizer = CreateButtonSizer( wxOK|wxCANCEL );
295 buttonsizer->Add( new wxButton(this, wxID_ADD_CUSTOM, _("Add to custom colours") ), 0, wxLEFT|wxRIGHT, 10 );
acf2ac37 296 topSizer->Add( buttonsizer, 0, wxEXPAND | wxALL, 10 );
c801d85f 297
ca65c044 298 SetAutoLayout( true );
f79a46f8 299 SetSizer( topSizer );
6c34d0ed 300
f79a46f8
WS
301 topSizer->SetSizeHints( this );
302 topSizer->Fit( this );
c801d85f 303
4130b487 304 Centre( wxBOTH );
c801d85f 305
4130b487 306 wxEndBusyCursor();
c801d85f
KB
307}
308
309void wxGenericColourDialog::InitializeColours(void)
310{
a4ba2eec 311 size_t i;
ea8a9699 312
61138de0 313 for (i = 0; i < WXSIZEOF(wxColourDialogNames); i++)
ea8a9699 314 {
564a150b
VZ
315 wxColour col = wxTheColourDatabase->Find(wxColourDialogNames[i]);
316 if (col.Ok())
317 standardColours[i].Set(col.Red(), col.Green(), col.Blue());
ea8a9699
VZ
318 else
319 standardColours[i].Set(0, 0, 0);
320 }
c801d85f 321
564a150b 322 for (i = 0; i < WXSIZEOF(customColours); i++)
ea8a9699 323 {
a2b99ff5
VS
324 wxColour c = colourData.GetCustomColour(i);
325 if (c.Ok())
326 customColours[i] = colourData.GetCustomColour(i);
327 else
328 customColours[i] = wxColour(255, 255, 255);
ea8a9699 329 }
c801d85f 330
ea8a9699
VZ
331 wxColour curr = colourData.GetColour();
332 if ( curr.Ok() )
333 {
ca65c044 334 bool initColourFound = false;
ea8a9699 335
61138de0 336 for (i = 0; i < WXSIZEOF(wxColourDialogNames); i++)
ea8a9699
VZ
337 {
338 if ( standardColours[i] == curr && !initColourFound )
339 {
340 whichKind = 1;
341 colourSelection = i;
ca65c044 342 initColourFound = true;
ea8a9699
VZ
343 break;
344 }
345 }
346 if ( !initColourFound )
347 {
564a150b 348 for ( i = 0; i < WXSIZEOF(customColours); i++ )
ea8a9699
VZ
349 {
350 if ( customColours[i] == curr )
351 {
352 whichKind = 2;
353 colourSelection = i;
ea8a9699
VZ
354 break;
355 }
356 }
357 }
984b0d8b 358 colourData.m_dataColour.Set( curr.Red(), curr.Green(), curr.Blue() );
ea8a9699
VZ
359 }
360 else
361 {
362 whichKind = 1;
363 colourSelection = 0;
984b0d8b 364 colourData.m_dataColour.Set( 0, 0, 0 );
ea8a9699 365 }
c801d85f
KB
366}
367
368void wxGenericColourDialog::PaintBasicColours(wxDC& dc)
369{
370 dc.BeginDrawing();
371
372 int i;
373 for (i = 0; i < 6; i++)
374 {
375 int j;
376 for (j = 0; j < 8; j++)
377 {
378 int ptr = i*8 + j;
c35414db 379
c801d85f
KB
380 int x = (j*(smallRectangleSize.x+gridSpacing) + standardColoursRect.x);
381 int y = (i*(smallRectangleSize.y+gridSpacing) + standardColoursRect.y);
382
383 dc.SetPen(*wxBLACK_PEN);
384 wxBrush brush(standardColours[ptr], wxSOLID);
385 dc.SetBrush(brush);
386
387 dc.DrawRectangle( x, y, smallRectangleSize.x, smallRectangleSize.y);
388 }
389 }
390 dc.EndDrawing();
391}
392
393void wxGenericColourDialog::PaintCustomColours(wxDC& dc)
394{
395 dc.BeginDrawing();
396
397 int i;
398 for (i = 0; i < 2; i++)
399 {
400 int j;
401 for (j = 0; j < 8; j++)
402 {
403 int ptr = i*8 + j;
c35414db 404
c801d85f
KB
405 int x = (j*(smallRectangleSize.x+gridSpacing)) + customColoursRect.x;
406 int y = (i*(smallRectangleSize.y+gridSpacing)) + customColoursRect.y;
407
408 dc.SetPen(*wxBLACK_PEN);
409
410 wxBrush brush(customColours[ptr], wxSOLID);
411 dc.SetBrush(brush);
412
413 dc.DrawRectangle( x, y, smallRectangleSize.x, smallRectangleSize.y);
414 }
415 }
416 dc.EndDrawing();
417}
418
419void wxGenericColourDialog::PaintHighlight(wxDC& dc, bool draw)
420{
ea8a9699
VZ
421 if ( colourSelection < 0 )
422 return;
423
c801d85f
KB
424 dc.BeginDrawing();
425
426 // Number of pixels bigger than the standard rectangle size
427 // for drawing a highlight
428 int deltaX = 2;
429 int deltaY = 2;
430
431 if (whichKind == 1)
432 {
433 // Standard colours
434 int y = (int)(colourSelection / 8);
435 int x = (int)(colourSelection - (y*8));
436
437 x = (x*(smallRectangleSize.x + gridSpacing) + standardColoursRect.x) - deltaX;
438 y = (y*(smallRectangleSize.y + gridSpacing) + standardColoursRect.y) - deltaY;
439
440 if (draw)
441 dc.SetPen(*wxBLACK_PEN);
442 else
443 dc.SetPen(*wxLIGHT_GREY_PEN);
444
445 dc.SetBrush(*wxTRANSPARENT_BRUSH);
446 dc.DrawRectangle( x, y, (smallRectangleSize.x + (2*deltaX)), (smallRectangleSize.y + (2*deltaY)));
447 }
448 else
449 {
450 // User-defined colours
451 int y = (int)(colourSelection / 8);
452 int x = (int)(colourSelection - (y*8));
453
454 x = (x*(smallRectangleSize.x + gridSpacing) + customColoursRect.x) - deltaX;
455 y = (y*(smallRectangleSize.y + gridSpacing) + customColoursRect.y) - deltaY;
456
457 if (draw)
458 dc.SetPen(*wxBLACK_PEN);
459 else
460 dc.SetPen(*wxLIGHT_GREY_PEN);
c35414db 461
c801d85f
KB
462 dc.SetBrush(*wxTRANSPARENT_BRUSH);
463 dc.DrawRectangle( x, y, (smallRectangleSize.x + (2*deltaX)), (smallRectangleSize.y + (2*deltaY)));
464 }
c35414db 465
c801d85f
KB
466 dc.EndDrawing();
467}
468
469void wxGenericColourDialog::PaintCustomColour(wxDC& dc)
470{
471 dc.BeginDrawing();
c35414db 472
c801d85f
KB
473 dc.SetPen(*wxBLACK_PEN);
474
984b0d8b 475 wxBrush *brush = new wxBrush(colourData.m_dataColour, wxSOLID);
c801d85f
KB
476 dc.SetBrush(*brush);
477
478 dc.DrawRectangle( singleCustomColourRect.x, singleCustomColourRect.y,
479 customRectangleSize.x, customRectangleSize.y);
480
481 dc.SetBrush(wxNullBrush);
482 delete brush;
483
484 dc.EndDrawing();
485}
486
487void wxGenericColourDialog::OnBasicColourClick(int which)
488{
ca65c044 489 wxClientDC dc(this);
c801d85f 490
ca65c044
WS
491 PaintHighlight(dc, false);
492 whichKind = 1;
493 colourSelection = which;
2997ca30 494
6bb44116 495#if wxUSE_SLIDER
ca65c044 496 redSlider->SetValue( standardColours[colourSelection].Red() );
ea8a9699
VZ
497 greenSlider->SetValue( standardColours[colourSelection].Green() );
498 blueSlider->SetValue( standardColours[colourSelection].Blue() );
6bb44116 499#endif // wxUSE_SLIDER
2997ca30
WS
500
501 colourData.m_dataColour.Set(standardColours[colourSelection].Red(),
502 standardColours[colourSelection].Green(),
984b0d8b 503 standardColours[colourSelection].Blue());
c801d85f 504
ca65c044
WS
505 PaintCustomColour(dc);
506 PaintHighlight(dc, true);
c801d85f
KB
507}
508
509void wxGenericColourDialog::OnCustomColourClick(int which)
510{
ca65c044
WS
511 wxClientDC dc(this);
512 PaintHighlight(dc, false);
513 whichKind = 2;
514 colourSelection = which;
2997ca30 515
6bb44116 516#if wxUSE_SLIDER
ca65c044 517 redSlider->SetValue( customColours[colourSelection].Red() );
ea8a9699
VZ
518 greenSlider->SetValue( customColours[colourSelection].Green() );
519 blueSlider->SetValue( customColours[colourSelection].Blue() );
6bb44116 520#endif // wxUSE_SLIDER
2997ca30
WS
521
522 colourData.m_dataColour.Set(customColours[colourSelection].Red(),
523 customColours[colourSelection].Green(),
984b0d8b 524 customColours[colourSelection].Blue());
2997ca30 525
ca65c044
WS
526 PaintCustomColour(dc);
527 PaintHighlight(dc, true);
c801d85f
KB
528}
529
530/*
531void wxGenericColourDialog::OnOk(void)
532{
ca65c044 533 Show(false);
c801d85f
KB
534}
535
536void wxGenericColourDialog::OnCancel(void)
537{
ca65c044
WS
538 colourDialogCancelled = true;
539 Show(false);
c801d85f
KB
540}
541*/
542
543void wxGenericColourDialog::OnAddCustom(wxCommandEvent& WXUNUSED(event))
544{
545 wxClientDC dc(this);
546 if (whichKind != 2)
547 {
ca65c044 548 PaintHighlight(dc, false);
c801d85f
KB
549 whichKind = 2;
550 colourSelection = 0;
ca65c044 551 PaintHighlight(dc, true);
c801d85f
KB
552 }
553
2997ca30
WS
554 customColours[colourSelection].Set(colourData.m_dataColour.Red(),
555 colourData.m_dataColour.Green(),
984b0d8b 556 colourData.m_dataColour.Blue());
2997ca30 557
c801d85f 558 colourData.SetCustomColour(colourSelection, customColours[colourSelection]);
c35414db 559
c801d85f
KB
560 PaintCustomColours(dc);
561}
562
6bb44116
WS
563#if wxUSE_SLIDER
564
c801d85f
KB
565void wxGenericColourDialog::OnRedSlider(wxCommandEvent& WXUNUSED(event))
566{
567 if (!redSlider)
568 return;
c35414db 569
c801d85f 570 wxClientDC dc(this);
984b0d8b 571 colourData.m_dataColour.Set((unsigned char)redSlider->GetValue(), colourData.m_dataColour.Green(), colourData.m_dataColour.Blue());
c801d85f
KB
572 PaintCustomColour(dc);
573}
574
575void wxGenericColourDialog::OnGreenSlider(wxCommandEvent& WXUNUSED(event))
576{
577 if (!greenSlider)
578 return;
579
580 wxClientDC dc(this);
984b0d8b 581 colourData.m_dataColour.Set(colourData.m_dataColour.Red(), (unsigned char)greenSlider->GetValue(), colourData.m_dataColour.Blue());
c801d85f
KB
582 PaintCustomColour(dc);
583}
584
585void wxGenericColourDialog::OnBlueSlider(wxCommandEvent& WXUNUSED(event))
586{
587 if (!blueSlider)
588 return;
589
590 wxClientDC dc(this);
984b0d8b 591 colourData.m_dataColour.Set(colourData.m_dataColour.Red(), colourData.m_dataColour.Green(), (unsigned char)blueSlider->GetValue());
c801d85f
KB
592 PaintCustomColour(dc);
593}
594
6bb44116
WS
595#endif // wxUSE_SLIDER
596
a2b99ff5 597#endif // wxUSE_COLOURDLG && !defined(__WXGTK20__)