KiCad PCB EDA Suite
Loading...
Searching...
No Matches
COLOR_SWATCH Class Reference

A simple color swatch of the kind used to set layer colors. More...

#include <color_swatch.h>

Inheritance diagram for COLOR_SWATCH:

Public Member Functions

 COLOR_SWATCH (wxWindow *aParent, const KIGFX::COLOR4D &aColor, int aID, const KIGFX::COLOR4D &aBackground, const KIGFX::COLOR4D &aDefault, SWATCH_SIZE aSwatchType, bool aTriggerWithSingleClick=false)
 Construct a COLOR_SWATCH.
 
 COLOR_SWATCH (wxWindow *aParent, wxWindowID aId, const wxPoint &aPos=wxDefaultPosition, const wxSize &aSize=wxDefaultSize, long aStyle=0)
 Constructor for wxFormBuilder.
 
void SetSwatchColor (const KIGFX::COLOR4D &aColor, bool aSendEvent)
 Set the current swatch color directly.
 
void SetDefaultColor (const KIGFX::COLOR4D &aColor)
 Sets the color that will be chosen with the "Reset to Default" button in the chooser.
 
void SetSwatchBackground (const KIGFX::COLOR4D &aBackground)
 Set the swatch background color.
 
KIGFX::COLOR4D GetSwatchColor () const
 
void SetWindowID (wxWindowID aId)
 Update the window ID of this control and its children.
 
void GetNewSwatchColor ()
 Prompt for a new colour, using the colour picker dialog.
 
void SetReadOnly (bool aReadOnly=true)
 
bool IsReadOnly () const
 
void SetSupportsOpacity (bool aSupportsOpacity)
 
void SetReadOnlyCallback (std::function< void()> aCallback)
 Register a handler for when the user tries to interact with a read-only swatch.
 
void OnDarkModeToggle ()
 Respond to a change in the OS's DarkMode setting.
 

Static Public Member Functions

static wxBitmap MakeBitmap (const KIGFX::COLOR4D &aColor, const KIGFX::COLOR4D &aBackground, const wxSize &aSize, const wxSize &aCheckerboardSize, const KIGFX::COLOR4D &aCheckerboardBackground, const std::vector< int > &aMargins={ 0, 0, 0, 0 })
 
static void RenderToDC (wxDC *aDC, const KIGFX::COLOR4D &aColor, const KIGFX::COLOR4D &aBackground, const wxRect &aRect, const wxSize &aCheckerboardSize, const KIGFX::COLOR4D &aCheckerboardBackground, const std::vector< int > &aMargins={ 0, 0, 0, 0 })
 

Private Member Functions

void setupEvents (bool aTriggerWithSingleClick)
 
wxBitmap makeBitmap ()
 
void rePostEvent (wxEvent &aEvent)
 Pass unwanted events on to listeners of this object.
 
void onMouseEvent (wxEvent &aEvent)
 Handle mouse events on the swatch, and trigger the color picker dialog if appropriate.
 

Private Attributes

KIGFX::COLOR4D m_color
 
KIGFX::COLOR4D m_background
 
KIGFX::COLOR4D m_default
 
CUSTOM_COLORS_LISTm_userColors
 
wxStaticBitmap * m_swatch
 
wxSize m_size
 
wxSize m_checkerboardSize
 
KIGFX::COLOR4D m_checkerboardBg
 
bool m_readOnly
 A read-only swatch won't show the color chooser dialog but otherwise works normally.
 
std::function< void()> m_readOnlyCallback
 
bool m_supportsOpacity
 If opacity is not supported the color chooser dialog will be displayed without it.
 

Detailed Description

A simple color swatch of the kind used to set layer colors.

Definition at line 55 of file color_swatch.h.

Constructor & Destructor Documentation

◆ COLOR_SWATCH() [1/2]

COLOR_SWATCH::COLOR_SWATCH ( wxWindow * aParent,
const KIGFX::COLOR4D & aColor,
int aID,
const KIGFX::COLOR4D & aBackground,
const KIGFX::COLOR4D & aDefault,
SWATCH_SIZE aSwatchType,
bool aTriggerWithSingleClick = false )

◆ COLOR_SWATCH() [2/2]

COLOR_SWATCH::COLOR_SWATCH ( wxWindow * aParent,
wxWindowID aId,
const wxPoint & aPos = wxDefaultPosition,
const wxSize & aSize = wxDefaultSize,
long aStyle = 0 )

Member Function Documentation

◆ GetNewSwatchColor()

void COLOR_SWATCH::GetNewSwatchColor ( )

◆ GetSwatchColor()

◆ IsReadOnly()

bool COLOR_SWATCH::IsReadOnly ( ) const
inline

Definition at line 115 of file color_swatch.h.

References m_readOnly.

◆ MakeBitmap()

wxBitmap COLOR_SWATCH::MakeBitmap ( const KIGFX::COLOR4D & aColor,
const KIGFX::COLOR4D & aBackground,
const wxSize & aSize,
const wxSize & aCheckerboardSize,
const KIGFX::COLOR4D & aCheckerboardBackground,
const std::vector< int > & aMargins = { 0, 0, 0, 0 } )
static

◆ makeBitmap()

wxBitmap COLOR_SWATCH::makeBitmap ( )
private

◆ OnDarkModeToggle()

void COLOR_SWATCH::OnDarkModeToggle ( )

Respond to a change in the OS's DarkMode setting.

Definition at line 328 of file color_swatch.cpp.

References m_checkerboardBg, m_swatch, and makeBitmap().

◆ onMouseEvent()

void COLOR_SWATCH::onMouseEvent ( wxEvent & aEvent)
private

Handle mouse events on the swatch, and trigger the color picker dialog if appropriate.

Binds to the event sink so it is properly freed when the swatch is destroyed.

Definition at line 251 of file color_swatch.cpp.

References GetNewSwatchColor().

Referenced by setupEvents().

◆ RenderToDC()

void COLOR_SWATCH::RenderToDC ( wxDC * aDC,
const KIGFX::COLOR4D & aColor,
const KIGFX::COLOR4D & aBackground,
const wxRect & aRect,
const wxSize & aCheckerboardSize,
const KIGFX::COLOR4D & aCheckerboardBackground,
const std::vector< int > & aMargins = { 0, 0, 0, 0 } )
static

◆ rePostEvent()

void COLOR_SWATCH::rePostEvent ( wxEvent & aEvent)
private

Pass unwanted events on to listeners of this object.

Definition at line 245 of file color_swatch.cpp.

Referenced by setupEvents().

◆ SetDefaultColor()

void COLOR_SWATCH::SetDefaultColor ( const KIGFX::COLOR4D & aColor)

Sets the color that will be chosen with the "Reset to Default" button in the chooser.

Definition at line 280 of file color_swatch.cpp.

References m_default.

◆ SetReadOnly()

void COLOR_SWATCH::SetReadOnly ( bool aReadOnly = true)
inline

Definition at line 114 of file color_swatch.h.

References m_readOnly.

Referenced by APPEARANCE_CONTROLS::rebuildLayers().

◆ SetReadOnlyCallback()

void COLOR_SWATCH::SetReadOnlyCallback ( std::function< void()> aCallback)
inline

Register a handler for when the user tries to interact with a read-only swatch.

Definition at line 120 of file color_swatch.h.

References m_readOnlyCallback.

Referenced by APPEARANCE_CONTROLS::rebuildLayers(), APPEARANCE_CONTROLS_3D::rebuildLayers(), and APPEARANCE_CONTROLS::rebuildObjects().

◆ SetSupportsOpacity()

void COLOR_SWATCH::SetSupportsOpacity ( bool aSupportsOpacity)
inline

Definition at line 117 of file color_swatch.h.

References m_supportsOpacity.

◆ SetSwatchBackground()

void COLOR_SWATCH::SetSwatchBackground ( const KIGFX::COLOR4D & aBackground)

Set the swatch background color.

Definition at line 286 of file color_swatch.cpp.

References m_background, m_swatch, and makeBitmap().

Referenced by LAYER_WIDGET::OnRenderSwatchChanged().

◆ SetSwatchColor()

void COLOR_SWATCH::SetSwatchColor ( const KIGFX::COLOR4D & aColor,
bool aSendEvent )

◆ setupEvents()

void COLOR_SWATCH::setupEvents ( bool aTriggerWithSingleClick)
private

Definition at line 219 of file color_swatch.cpp.

References m_swatch, onMouseEvent(), and rePostEvent().

Referenced by COLOR_SWATCH(), and COLOR_SWATCH().

◆ SetWindowID()

void COLOR_SWATCH::SetWindowID ( wxWindowID aId)
inline

Update the window ID of this control and its children.

Parameters
aIdnew Window ID to set.

Definition at line 101 of file color_swatch.h.

References m_swatch.

Member Data Documentation

◆ m_background

KIGFX::COLOR4D COLOR_SWATCH::m_background
private

Definition at line 152 of file color_swatch.h.

Referenced by COLOR_SWATCH(), makeBitmap(), and SetSwatchBackground().

◆ m_checkerboardBg

KIGFX::COLOR4D COLOR_SWATCH::m_checkerboardBg
private

Definition at line 160 of file color_swatch.h.

Referenced by COLOR_SWATCH(), COLOR_SWATCH(), makeBitmap(), and OnDarkModeToggle().

◆ m_checkerboardSize

wxSize COLOR_SWATCH::m_checkerboardSize
private

Definition at line 159 of file color_swatch.h.

Referenced by COLOR_SWATCH(), COLOR_SWATCH(), and makeBitmap().

◆ m_color

KIGFX::COLOR4D COLOR_SWATCH::m_color
private

◆ m_default

KIGFX::COLOR4D COLOR_SWATCH::m_default
private

Definition at line 153 of file color_swatch.h.

Referenced by COLOR_SWATCH(), GetNewSwatchColor(), and SetDefaultColor().

◆ m_readOnly

bool COLOR_SWATCH::m_readOnly
private

A read-only swatch won't show the color chooser dialog but otherwise works normally.

Definition at line 163 of file color_swatch.h.

Referenced by COLOR_SWATCH(), COLOR_SWATCH(), GetNewSwatchColor(), IsReadOnly(), and SetReadOnly().

◆ m_readOnlyCallback

std::function<void()> COLOR_SWATCH::m_readOnlyCallback
private

Definition at line 164 of file color_swatch.h.

Referenced by GetNewSwatchColor(), and SetReadOnlyCallback().

◆ m_size

wxSize COLOR_SWATCH::m_size
private

Definition at line 158 of file color_swatch.h.

Referenced by COLOR_SWATCH(), COLOR_SWATCH(), and makeBitmap().

◆ m_supportsOpacity

bool COLOR_SWATCH::m_supportsOpacity
private

If opacity is not supported the color chooser dialog will be displayed without it.

Definition at line 167 of file color_swatch.h.

Referenced by COLOR_SWATCH(), COLOR_SWATCH(), GetNewSwatchColor(), and SetSupportsOpacity().

◆ m_swatch

wxStaticBitmap* COLOR_SWATCH::m_swatch
private

◆ m_userColors

CUSTOM_COLORS_LIST* COLOR_SWATCH::m_userColors
private

Definition at line 154 of file color_swatch.h.

Referenced by COLOR_SWATCH(), COLOR_SWATCH(), and GetNewSwatchColor().


The documentation for this class was generated from the following files: