Files
wxWidgets/include/wx/generic/clrpickerg.h
Vadim Zeitlin 807d95e07d Add wxEVT_COLOURPICKER_CURRENT_CHANGED and DIALOG_CANCELLED events
Send events from generic wxColourPickerCtrl when the currently selected
colour in the dialog shown by it changes and when this dialog is
cancelled.

Notice that currently this only works on wxMSW as it relies on
wxEVT_COLOUR_CHANGED support in wxColourDialog which is only available
there.

Based on work of Trylz, see https://github.com/wxWidgets/wxWidgets/pull/1219
2019-04-21 01:53:14 +02:00

87 lines
2.8 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: wx/generic/clrpickerg.h
// Purpose: wxGenericColourButton header
// Author: Francesco Montorsi (based on Vadim Zeitlin's code)
// Modified by:
// Created: 14/4/2006
// Copyright: (c) Vadim Zeitlin, Francesco Montorsi
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_CLRPICKER_H_
#define _WX_CLRPICKER_H_
#include "wx/button.h"
#include "wx/bmpbuttn.h"
#include "wx/colourdata.h"
class wxColourDialogEvent;
//-----------------------------------------------------------------------------
// wxGenericColourButton: a button which brings up a wxColourDialog
//-----------------------------------------------------------------------------
class WXDLLIMPEXP_CORE wxGenericColourButton : public wxBitmapButton,
public wxColourPickerWidgetBase
{
public:
wxGenericColourButton() {}
wxGenericColourButton(wxWindow *parent,
wxWindowID id,
const wxColour& col = *wxBLACK,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxCLRBTN_DEFAULT_STYLE,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxColourPickerWidgetNameStr)
{
Create(parent, id, col, pos, size, style, validator, name);
}
virtual ~wxGenericColourButton() {}
public: // API extensions specific for wxGenericColourButton
// user can override this to init colour data in a different way
virtual void InitColourData();
// returns the colour data shown in wxColourDialog
wxColourData *GetColourData() { return &ms_data; }
public:
bool Create(wxWindow *parent,
wxWindowID id,
const wxColour& col = *wxBLACK,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxCLRBTN_DEFAULT_STYLE,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxColourPickerWidgetNameStr);
void OnButtonClick(wxCommandEvent &);
protected:
wxBitmap m_bitmap;
wxSize DoGetBestSize() const wxOVERRIDE;
void UpdateColour() wxOVERRIDE;
// the colour data shown in wxColourPickerCtrlGeneric
// controls. This member is static so that all colour pickers
// in the program share the same set of custom colours.
static wxColourData ms_data;
private:
void OnColourChanged(wxColourDialogEvent& event);
wxDECLARE_DYNAMIC_CLASS(wxGenericColourButton);
};
#endif // _WX_CLRPICKER_H_