KiCad PCB EDA Suite
DIALOG_COLOR_PICKER Class Reference

#include <dialog_color_picker.h>

Inheritance diagram for DIALOG_COLOR_PICKER:
DIALOG_COLOR_PICKER_BASE DIALOG_SHIM KIWAY_HOLDER

Public Types

enum  HOLDER_TYPE { DIALOG, FRAME, PANEL }
 

Public Member Functions

 DIALOG_COLOR_PICKER (wxWindow *aParent, const KIGFX::COLOR4D &aCurrentColor, bool aAllowOpacityControl, CUSTOM_COLORS_LIST *aUserColors=nullptr, const KIGFX::COLOR4D &aDefaultColor=KIGFX::COLOR4D::UNSPECIFIED)
 Dialog constructor. More...
 
 ~DIALOG_COLOR_PICKER ()
 
KIGFX::COLOR4D GetColor ()
 
void SetInitialFocus (wxWindow *aWindow)
 Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown. More...
 
int ShowQuasiModal ()
 
void EndQuasiModal (int retCode)
 
bool IsQuasiModal () const
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
void OnPaint (wxPaintEvent &event)
 
void SetPosition (const wxPoint &aNewPosition)
 Force the position of the dialog to a new position. More...
 
EDA_UNITS GetUserUnits () const
 
HOLDER_TYPE GetType () const
 
KIWAYKiway () const
 Return a reference to the KIWAY that this object has an opportunity to participate in. More...
 
PROJECTPrj () const
 Return a reference to the PROJECT associated with this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 It is only used for debugging, since "this" is not a wxWindow*. More...
 

Static Public Member Functions

static bool IsCtrl (int aChar, const wxKeyEvent &e)
 
static bool IsShiftCtrl (int aChar, const wxKeyEvent &e)
 

Protected Member Functions

void finishDialogSettings ()
 In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls. More...
 
void setSizeInDU (int x, int y)
 Set the dialog to the given dimensions in "dialog units". More...
 
int horizPixelsFromDU (int x) const
 Convert an integer number of dialog units to pixels, horizontally. More...
 
int vertPixelsFromDU (int y) const
 Convert an integer number of dialog units to pixels, vertically. More...
 
void resetSize ()
 Clear the existing dialog size and position. More...
 
virtual void OnCharHook (wxKeyEvent &aEvt)
 

Protected Attributes

wxNotebook * m_notebook
 
wxPanel * m_panelFreeColors
 
wxStaticBitmap * m_RgbBitmap
 
wxStaticText * m_staticTextR
 
wxStaticText * m_staticTextG
 
wxStaticText * m_staticTextB
 
wxSpinCtrl * m_spinCtrlRed
 
wxSpinCtrl * m_spinCtrlGreen
 
wxSpinCtrl * m_spinCtrlBlue
 
wxStaticBitmap * m_HsvBitmap
 
wxStaticText * m_staticTextHue
 
wxStaticText * m_staticTextSat
 
wxSpinCtrl * m_spinCtrlHue
 
wxSpinCtrl * m_spinCtrlSaturation
 
wxStaticText * m_staticTextBright
 
wxSlider * m_sliderBrightness
 
wxPanel * m_panelDefinedColors
 
wxBoxSizer * m_SizerDefinedColors
 
wxFlexGridSizer * m_fgridColor
 
wxBoxSizer * m_SizerTransparency
 
wxStaticText * m_opacityLabel
 
wxSlider * m_sliderTransparency
 
wxStaticLine * m_staticline
 
wxStaticText * m_staticTextOldColor
 
wxStaticBitmap * m_OldColorRect
 
wxStaticBitmap * m_NewColorRect
 
wxTextCtrl * m_colorValue
 
wxButton * m_resetToDefault
 
wxStdDialogButtonSizer * m_sdbSizer
 
wxButton * m_sdbSizerOK
 
wxButton * m_sdbSizerCancel
 
EDA_UNITS m_units
 
std::string m_hash_key
 
bool m_useCalculatedSize
 
bool m_firstPaintEvent
 
wxWindow * m_initialFocusTarget
 
WX_EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 
EDA_BASE_FRAMEm_parentFrame
 
std::vector< wxWindow * > m_tabOrder
 

Private Member Functions

void SetEditVals (CHANGED_COLOR aChanged, bool aCheckTransparency)
 
void drawAll ()
 
void createHSVBitmap ()
 generate the bitmap that shows the HSV color circle More...
 
void drawHSVPalette ()
 draws the HSV color circle More...
 
void createRGBBitmap ()
 generate the bitmap that shows the RVB color space More...
 
void drawRGBPalette ()
 draws the RVB color space More...
 
void updatePreview (wxStaticBitmap *aStaticBitmap, KIGFX::COLOR4D &aColor4D)
 Event handler from wxSlider: brightness (value) control. More...
 
void OnChangeBrightness (wxScrollEvent &event) override
 Event handler from wxSlider: alpha (transparency) control. More...
 
void OnChangeAlpha (wxScrollEvent &event) override
 Event handlers from wxSpinControl. More...
 
void OnChangeEditRed (wxSpinEvent &event) override
 
void OnChangeEditGreen (wxSpinEvent &event) override
 
void OnChangeEditBlue (wxSpinEvent &event) override
 
void OnChangeEditHue (wxSpinEvent &event) override
 
void OnChangeEditSat (wxSpinEvent &event) override
 mouse handlers, when clicking on a palette bitmap More...
 
void onRGBMouseClick (wxMouseEvent &event) override
 
void onRGBMouseDrag (wxMouseEvent &event) override
 
void onHSVMouseClick (wxMouseEvent &event) override
 
void onHSVMouseDrag (wxMouseEvent &event) override
 
void OnColorValueText (wxCommandEvent &event) override
 Event handler for the reset button press. More...
 
void OnResetButton (wxCommandEvent &aEvent) override
 
bool setHSvaluesFromCursor (wxPoint aMouseCursor)
 Manage the Hue and Saturation settings when the mouse cursor is at aMouseCursor. More...
 
void buttColorClick (wxMouseEvent &event)
 called when creating the dialog More...
 
bool TransferDataToWindow () override
 
void initDefinedColors (CUSTOM_COLORS_LIST *aPredefinedColors)
 Create the bitmap buttons for each defined colors. More...
 
int normalizeToInt (double aValue, int aValMax=255)
 

Private Attributes

bool m_allowMouseEvents
 
bool m_allowOpacityCtrl
 true to show the widget, false to keep alpha channel = 1.0 More...
 
KIGFX::COLOR4D m_previousColor4D
 the initial color4d More...
 
KIGFX::COLOR4D m_newColor4D
 the current color4d More...
 
KIGFX::COLOR4D m_defaultColor
 The default color4d. More...
 
std::vector< KIGFX::COLOR4Dm_Color4DList
 the list of color4d ordered by button ID, for predefined colors More...
 
int m_cursorsSize
 
wxPoint m_cursorBitmapRed
 the red cursor on the RGB bitmap palette. More...
 
wxPoint m_cursorBitmapGreen
 the green cursor on the RGB bitmap palette. More...
 
wxPoint m_cursorBitmapBlue
 the blue cursor on the RGB bitmap palette. More...
 
wxPoint m_cursorBitmapHSV
 the cursor on the HSV bitmap palette. More...
 
wxPoint * m_selectedCursor
 the ref cursor to the selected cursor, if any, or null. More...
 
double m_hue
 the current hue, in degrees (0 ... 360) More...
 
double m_sat
 the current saturation (0 ... 1.0) More...
 
double m_val
 the current value (0 ... 1.0) More...
 
wxBitmap * m_bitmapRGB
 the basic RGB palette More...
 
wxBitmap * m_bitmapHSV
 the basic HUV palette More...
 
std::vector< wxStaticBitmap * > m_colorSwatches
 list of defined colors buttons More...
 

Detailed Description

Definition at line 80 of file dialog_color_picker.h.

Member Enumeration Documentation

◆ HOLDER_TYPE

enum KIWAY_HOLDER::HOLDER_TYPE
inherited
Enumerator
DIALOG 
FRAME 
PANEL 

Definition at line 42 of file kiway_holder.h.

Constructor & Destructor Documentation

◆ DIALOG_COLOR_PICKER()

DIALOG_COLOR_PICKER::DIALOG_COLOR_PICKER ( wxWindow *  aParent,
const KIGFX::COLOR4D aCurrentColor,
bool  aAllowOpacityControl,
CUSTOM_COLORS_LIST aUserColors = nullptr,
const KIGFX::COLOR4D aDefaultColor = KIGFX::COLOR4D::UNSPECIFIED 
)

Dialog constructor.

Parameters
aParentis the caller
aCurrentColoris the current color, used to show it in dialog
aAllowOpacityControltrue to allow opacity (alpha channel) setting false to not show this setting (opacity = 1.0 always)
aUserColorsif not null is a list of defined colors replacing the dialog predefined colors

There are two types of color settings: theme colors and local overrides. Theme colors have a default value, and the Reset to Default button reverts to it. Local override colors have a default of UNSPECIFIED, which means "use the theme color". The underlying action is the same, but we change the label here because the action from the point of view of the user is slightly different.

Definition at line 45 of file dialog_color_picker.cpp.

48  :
49  DIALOG_COLOR_PICKER_BASE( aParent )
50 {
51  m_allowMouseEvents = false;
52  m_allowOpacityCtrl = aAllowOpacityControl;
53  m_previousColor4D = aCurrentColor;
54  m_newColor4D = aCurrentColor;
55  m_cursorsSize = 8; // Size of square cursors drawn on color bitmaps
56  m_newColor4D.ToHSV( m_hue, m_sat, m_val, true );
57  m_bitmapRGB = nullptr;
58  m_bitmapHSV = nullptr;
59  m_selectedCursor = nullptr;
60  m_defaultColor = aDefaultColor;
61 
62  if( !m_allowOpacityCtrl )
63  {
64  m_SizerTransparency->Show( false );
65 
66  if( aCurrentColor != COLOR4D::UNSPECIFIED )
67  {
68  m_previousColor4D.a = 1.0;
69  m_newColor4D.a = 1.0;
70  }
71  }
72 
73  // UNSPECIFIED is ( 0, 0, 0, 0 ) but that is unfriendly for editing because you have to notice
74  // first that the value slider is all the way down before you get any color
75  if( aCurrentColor == COLOR4D::UNSPECIFIED )
76  m_val = 1.0;
77 
79  wxASSERT( cfg );
80 
81  m_notebook->SetSelection( cfg->m_ColorPicker.default_tab );
82 
83  // Build the defined colors panel:
84  initDefinedColors( aUserColors );
85 
93  if( aDefaultColor == COLOR4D::UNSPECIFIED )
94  m_resetToDefault->SetLabel( _( "Clear Color" ) );
95 
96  m_sdbSizerOK->SetDefault();
97 }
double m_hue
the current hue, in degrees (0 ... 360)
bool m_allowOpacityCtrl
true to show the widget, false to keep alpha channel = 1.0
double m_sat
the current saturation (0 ... 1.0)
void ToHSV(double &aOutHue, double &aOutSaturation, double &aOutValue, bool aAlwaysDefineHue=false) const
Convert current color (stored in RGB) to HSV format.
Definition: color4d.cpp:293
DIALOG_COLOR_PICKER_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Color Picker"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
APP_SETTINGS_BASE * KifaceSettings() const
Definition: kiface_i.h:92
KIGFX::COLOR4D m_newColor4D
the current color4d
double a
Alpha component.
Definition: color4d.h:361
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
Definition: app_settings.h:99
KIGFX::COLOR4D m_previousColor4D
the initial color4d
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.
wxBitmap * m_bitmapHSV
the basic HUV palette
double m_val
the current value (0 ... 1.0)
KIGFX::COLOR4D m_defaultColor
The default color4d.
#define _(s)
Definition: 3d_actions.cpp:33
void initDefinedColors(CUSTOM_COLORS_LIST *aPredefinedColors)
Create the bitmap buttons for each defined colors.
wxBitmap * m_bitmapRGB
the basic RGB palette
COLOR_PICKER m_ColorPicker
Definition: app_settings.h:173
wxPoint * m_selectedCursor
the ref cursor to the selected cursor, if any, or null.

References _, KIGFX::COLOR4D::a, APP_SETTINGS_BASE::COLOR_PICKER::default_tab, initDefinedColors(), Kiface(), KIFACE_I::KifaceSettings(), m_allowMouseEvents, m_allowOpacityCtrl, m_bitmapHSV, m_bitmapRGB, APP_SETTINGS_BASE::m_ColorPicker, m_cursorsSize, m_defaultColor, m_hue, m_newColor4D, DIALOG_COLOR_PICKER_BASE::m_notebook, m_previousColor4D, DIALOG_COLOR_PICKER_BASE::m_resetToDefault, m_sat, DIALOG_COLOR_PICKER_BASE::m_sdbSizerOK, m_selectedCursor, DIALOG_COLOR_PICKER_BASE::m_SizerTransparency, m_val, and KIGFX::COLOR4D::ToHSV().

◆ ~DIALOG_COLOR_PICKER()

DIALOG_COLOR_PICKER::~DIALOG_COLOR_PICKER ( )

Definition at line 100 of file dialog_color_picker.cpp.

101 {
103  wxASSERT( cfg );
104 
105  cfg->m_ColorPicker.default_tab = m_notebook->GetSelection();
106 
107  delete m_bitmapRGB;
108  delete m_bitmapHSV;
109 
110  for( wxStaticBitmap* swatch : m_colorSwatches )
111  {
112  swatch->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED,
113  wxMouseEventHandler( DIALOG_COLOR_PICKER::buttColorClick ),
114  NULL, this );
115  }
116 }
APP_SETTINGS_BASE * KifaceSettings() const
Definition: kiface_i.h:92
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
Definition: app_settings.h:99
#define NULL
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.
wxBitmap * m_bitmapHSV
the basic HUV palette
std::vector< wxStaticBitmap * > m_colorSwatches
list of defined colors buttons
void buttColorClick(wxMouseEvent &event)
called when creating the dialog
wxBitmap * m_bitmapRGB
the basic RGB palette
COLOR_PICKER m_ColorPicker
Definition: app_settings.h:173

References buttColorClick(), APP_SETTINGS_BASE::COLOR_PICKER::default_tab, Kiface(), KIFACE_I::KifaceSettings(), m_bitmapHSV, m_bitmapRGB, APP_SETTINGS_BASE::m_ColorPicker, m_colorSwatches, DIALOG_COLOR_PICKER_BASE::m_notebook, and NULL.

Member Function Documentation

◆ buttColorClick()

void DIALOG_COLOR_PICKER::buttColorClick ( wxMouseEvent &  event)
private

called when creating the dialog

Definition at line 526 of file dialog_color_picker.cpp.

527 {
528  int id = event.GetId();
530  m_newColor4D.r = color.r;
531  m_newColor4D.g = color.g;
532  m_newColor4D.b = color.b;
533  m_newColor4D.a = color.a;
534 
535  m_newColor4D.ToHSV( m_hue, m_sat, m_val, true );
536  SetEditVals( ALL_CHANGED, false );
537 
538  drawAll();
539 
540  event.Skip();
541 }
double m_hue
the current hue, in degrees (0 ... 360)
double m_sat
the current saturation (0 ... 1.0)
void ToHSV(double &aOutHue, double &aOutSaturation, double &aOutValue, bool aAlwaysDefineHue=false) const
Convert current color (stored in RGB) to HSV format.
Definition: color4d.cpp:293
std::vector< KIGFX::COLOR4D > m_Color4DList
the list of color4d ordered by button ID, for predefined colors
int color
Definition: DXF_plotter.cpp:60
double g
Green component.
Definition: color4d.h:359
KIGFX::COLOR4D m_newColor4D
the current color4d
double b
Blue component.
Definition: color4d.h:360
void SetEditVals(CHANGED_COLOR aChanged, bool aCheckTransparency)
double a
Alpha component.
Definition: color4d.h:361
double m_val
the current value (0 ... 1.0)
double r
Red component.
Definition: color4d.h:358
#define ID_COLOR_BLACK
A color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:98

References KIGFX::COLOR4D::a, ALL_CHANGED, KIGFX::COLOR4D::b, color, drawAll(), KIGFX::COLOR4D::g, ID_COLOR_BLACK, m_Color4DList, m_hue, m_newColor4D, m_sat, m_val, KIGFX::COLOR4D::r, SetEditVals(), and KIGFX::COLOR4D::ToHSV().

Referenced by initDefinedColors(), and ~DIALOG_COLOR_PICKER().

◆ createHSVBitmap()

void DIALOG_COLOR_PICKER::createHSVBitmap ( )
private

generate the bitmap that shows the HSV color circle

Definition at line 308 of file dialog_color_picker.cpp.

309 {
310  wxMemoryDC bitmapDC;
311  wxSize bmsize = m_HsvBitmap->GetSize();
312  int half_size = std::min( bmsize.x, bmsize.y )/2;
313  delete m_bitmapHSV;
314  m_bitmapHSV = new wxBitmap( bmsize );
315  bitmapDC.SelectObject( *m_bitmapHSV );
316  wxPen pen;
317 
318  // clear background (set the window bd color)
319  wxBrush bgbrush( GetBackgroundColour() );
320  bitmapDC.SetBackground( bgbrush );
321  bitmapDC.Clear();
322 
323  // Use Y axis from bottom to top and origin to center
324  bitmapDC.SetAxisOrientation( true, true );
325  bitmapDC.SetDeviceOrigin( half_size, half_size );
326 
327  // Reserve room to draw cursors inside the bitmap
328  half_size -= m_cursorsSize/2;
329 
330  double hue, sat;
331  COLOR4D color;
332  int sq_radius = half_size*half_size;
333 
334  for( int xx = -half_size; xx < half_size; xx++ )
335  {
336  for( int yy = -half_size; yy < half_size; yy++ )
337  {
338  sat = double(xx*xx + yy*yy) / sq_radius;
339 
340  // sat is <= 1.0
341  // any value > 1.0 is not a valid HSB color:
342  if( sat > 1.0 )
343  continue;
344 
345  // sat is the distance from center
346  sat = sqrt( sat );
347  hue = atan2( (double)yy, (double)xx ) * 180 / M_PI;
348 
349  if( hue < 0.0 )
350  hue += 360.0;
351 
352  color.FromHSV( hue, sat, 1.0 );
353 
354  pen.SetColour( color.ToColour() );
355  bitmapDC.SetPen( pen );
356  bitmapDC.DrawPoint( xx, yy );
357  }
358  }
359 
360  /* Deselect the Tool Bitmap from DC,
361  * in order to delete the MemoryDC safely without deleting the bitmap
362  */
363  bitmapDC.SelectObject( wxNullBitmap );
364 }
int color
Definition: DXF_plotter.cpp:60
wxBitmap * m_bitmapHSV
the basic HUV palette
A color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:98

References color, m_bitmapHSV, m_cursorsSize, and DIALOG_COLOR_PICKER_BASE::m_HsvBitmap.

Referenced by drawHSVPalette().

◆ createRGBBitmap()

void DIALOG_COLOR_PICKER::createRGBBitmap ( )
private

generate the bitmap that shows the RVB color space

Definition at line 224 of file dialog_color_picker.cpp.

225 {
226  wxMemoryDC bitmapDC;
227  wxSize bmsize = m_RgbBitmap->GetSize();
228  int half_size = std::min( bmsize.x, bmsize.y )/2;
229  m_bitmapRGB = new wxBitmap( bmsize );
230  bitmapDC.SelectObject( *m_bitmapRGB );
231  wxPen pen;
232 
233  // clear background (set the window bg color)
234  wxBrush bgbrush( GetBackgroundColour() );
235  bitmapDC.SetBackground( bgbrush );
236  bitmapDC.Clear();
237 
238  // Use Y axis from bottom to top and origin to center
239  bitmapDC.SetAxisOrientation( true, true );
240  bitmapDC.SetDeviceOrigin( half_size, half_size );
241 
242  // Reserve room to draw cursors inside the bitmap
243  half_size -= m_cursorsSize/2;
244 
245  COLOR4D color;
246 
247  // Red blue area in X Z 3d axis
248  double inc = 1.0 / half_size;
249  #define SLOPE_AXIS 50.0
250  double slope = SLOPE_AXIS/half_size;
251  color.g = 0.0;
252 
253  for( int xx = 0; xx < half_size; xx++ ) // blue axis
254  {
255  color.b = inc * xx;
256 
257  for( int yy = 0; yy < half_size; yy++ ) // Red axis
258  {
259  color.r = inc * yy;
260 
261  pen.SetColour( color.ToColour() );
262  bitmapDC.SetPen( pen );
263  bitmapDC.DrawPoint( xx, yy - (slope*xx) );
264  }
265  }
266 
267  // Red green area in y Z 3d axis
268  color.b = 0.0;
269  for( int xx = 0; xx < half_size; xx++ ) // green axis
270  {
271  color.g = inc * xx;
272 
273  for( int yy = 0; yy < half_size; yy++ ) // Red axis
274  {
275  color.r = inc * yy;
276 
277  pen.SetColour( color.ToColour() );
278  bitmapDC.SetPen( pen );
279  bitmapDC.DrawPoint( -xx, yy - (slope*xx) );
280  }
281  }
282 
283  // Blue green area in x y 3d axis
284  color.r = 0.0;
285  for( int xx = 0; xx < half_size; xx++ ) // green axis
286  {
287  color.g = inc * xx;
288 
289  for( int yy = 0; yy < half_size; yy++ ) // blue axis
290  {
291  color.b = inc * yy;
292 
293  pen.SetColour( color.ToColour() );
294  bitmapDC.SetPen( pen );
295 
296  // Mapping the xx, yy color axis to draw coordinates is more tricky than previously
297  // in DC coordinates:
298  // the blue axis is the (0, 0) to half_size, (-yy - SLOPE_AXIS)
299  // the green axis is the (0, 0) to - half_size, (-yy - SLOPE_AXIS)
300  int drawX = -xx + yy;
301  int drawY = - std::min( xx,yy ) * 0.9;
302  bitmapDC.DrawPoint( drawX, drawY - std::abs( slope*drawX ) );
303  }
304  }
305 }
int color
Definition: DXF_plotter.cpp:60
wxBitmap * m_bitmapRGB
the basic RGB palette
#define SLOPE_AXIS
A color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:98

References color, m_bitmapRGB, m_cursorsSize, DIALOG_COLOR_PICKER_BASE::m_RgbBitmap, and SLOPE_AXIS.

Referenced by drawRGBPalette().

◆ drawAll()

void DIALOG_COLOR_PICKER::drawAll ( )
private

Definition at line 509 of file dialog_color_picker.cpp.

510 {
511  m_NewColorRect->Freeze(); // Avoid flicker
512  m_HsvBitmap->Freeze();
513  m_RgbBitmap->Freeze();
515  drawHSVPalette();
516  drawRGBPalette();
517  m_NewColorRect->Thaw();
518  m_HsvBitmap->Thaw();
519  m_RgbBitmap->Thaw();
520  m_NewColorRect->Refresh();
521  m_HsvBitmap->Refresh();
522  m_RgbBitmap->Refresh();
523 }
void drawRGBPalette()
draws the RVB color space
void drawHSVPalette()
draws the HSV color circle
KIGFX::COLOR4D m_newColor4D
the current color4d
void updatePreview(wxStaticBitmap *aStaticBitmap, KIGFX::COLOR4D &aColor4D)
Event handler from wxSlider: brightness (value) control.

References drawHSVPalette(), drawRGBPalette(), DIALOG_COLOR_PICKER_BASE::m_HsvBitmap, m_newColor4D, DIALOG_COLOR_PICKER_BASE::m_NewColorRect, DIALOG_COLOR_PICKER_BASE::m_RgbBitmap, and updatePreview().

Referenced by buttColorClick(), OnChangeBrightness(), OnChangeEditBlue(), OnChangeEditGreen(), OnChangeEditHue(), OnChangeEditRed(), OnChangeEditSat(), OnColorValueText(), onHSVMouseClick(), onHSVMouseDrag(), OnResetButton(), onRGBMouseDrag(), and TransferDataToWindow().

◆ drawHSVPalette()

void DIALOG_COLOR_PICKER::drawHSVPalette ( )
private

draws the HSV color circle

Definition at line 431 of file dialog_color_picker.cpp.

432 {
433  if( !m_bitmapHSV || m_bitmapHSV->GetSize() != m_HsvBitmap->GetSize() )
434  createHSVBitmap();
435 
436  wxMemoryDC bitmapDC;
437  wxSize bmsize = m_bitmapHSV->GetSize();
438  int half_size = std::min( bmsize.x, bmsize.y )/2;
439  wxBitmap newBm( *m_bitmapHSV );
440  bitmapDC.SelectObject( newBm );
441 
442  // Use Y axis from bottom to top and origin to center
443  bitmapDC.SetAxisOrientation( true, true );
444  bitmapDC.SetDeviceOrigin( half_size, half_size );
445 
446  // Reserve room to draw cursors inside the bitmap
447  half_size -= m_cursorsSize/2;
448 
449  // Draw the HSB cursor:
450  m_cursorBitmapHSV.x = cos( m_hue * M_PI / 180.0 ) * half_size * m_sat;
451  m_cursorBitmapHSV.y = sin( m_hue * M_PI / 180.0 ) * half_size * m_sat;
452 
453  wxPen pen( wxColor( 0, 0, 0 ) );
454  wxBrush brush( wxColor( 0, 0, 0 ), wxBRUSHSTYLE_TRANSPARENT );
455  bitmapDC.SetPen( pen );
456  bitmapDC.SetBrush( brush );
457 
458  int half_csize = m_cursorsSize/2;
459  bitmapDC.DrawRectangle( m_cursorBitmapHSV.x- half_csize,
460  m_cursorBitmapHSV.y-half_csize,
462 
463  m_HsvBitmap->SetBitmap( newBm );
464  /* Deselect the Tool Bitmap from DC,
465  * in order to delete the MemoryDC safely without deleting the bitmap
466  */
467  bitmapDC.SelectObject( wxNullBitmap );
468 }
double m_hue
the current hue, in degrees (0 ... 360)
double m_sat
the current saturation (0 ... 1.0)
void createHSVBitmap()
generate the bitmap that shows the HSV color circle
wxPoint m_cursorBitmapHSV
the cursor on the HSV bitmap palette.
wxBitmap * m_bitmapHSV
the basic HUV palette

References createHSVBitmap(), m_bitmapHSV, m_cursorBitmapHSV, m_cursorsSize, DIALOG_COLOR_PICKER_BASE::m_HsvBitmap, m_hue, and m_sat.

Referenced by drawAll().

◆ drawRGBPalette()

void DIALOG_COLOR_PICKER::drawRGBPalette ( )
private

draws the RVB color space

repaint a static bitmap with the aColor4D color

Definition at line 367 of file dialog_color_picker.cpp.

368 {
369  if( !m_bitmapRGB || m_bitmapRGB->GetSize() != m_RgbBitmap->GetSize() )
370  createRGBBitmap();
371 
372  wxMemoryDC bitmapDC;
373  wxSize bmsize = m_bitmapRGB->GetSize();
374  int half_size = std::min( bmsize.x, bmsize.y )/2;
375  wxBitmap newBm( *m_bitmapRGB );
376  bitmapDC.SelectObject( newBm );
377 
378  // Use Y axis from bottom to top and origin to center
379  bitmapDC.SetAxisOrientation( true, true );
380  bitmapDC.SetDeviceOrigin( half_size, half_size );
381 
382  // Reserve room to draw cursors inside the bitmap
383  half_size -= m_cursorsSize/2;
384 
385  // Draw the 3 RGB cursors, usiing white color to make them always visible:
386  wxPen pen( wxColor( 255, 255, 255 ) );
387  wxBrush brush( wxColor( 0, 0, 0 ), wxBRUSHSTYLE_TRANSPARENT );
388  bitmapDC.SetPen( pen );
389  bitmapDC.SetBrush( brush );
390  int half_csize = m_cursorsSize/2;
391 
392  #define SLOPE_AXIS 50.0
393  double slope = SLOPE_AXIS/half_size;
394 
395  // Red axis cursor (Z 3Daxis):
396  m_cursorBitmapRed.x = 0;
397  m_cursorBitmapRed.y = m_newColor4D.r * half_size;
398  bitmapDC.DrawRectangle( m_cursorBitmapRed.x - half_csize,
399  m_cursorBitmapRed.y - half_csize,
401 
402  // Blue axis cursor (X 3Daxis):
403  m_cursorBitmapBlue.x = m_newColor4D.b * half_size;
405  bitmapDC.DrawRectangle( m_cursorBitmapBlue.x - half_csize,
406  m_cursorBitmapBlue.y - half_csize,
408 
409  // Green axis cursor (Y 3Daxis):
410  m_cursorBitmapGreen.x = m_newColor4D.g * half_size;
413 
414  bitmapDC.DrawRectangle( m_cursorBitmapGreen.x - half_csize,
415  m_cursorBitmapGreen.y - half_csize,
417 
418  // Draw the 3 RGB axis:
419  half_size += half_size/5;
420  bitmapDC.DrawLine( 0, 0, 0, half_size ); // Red axis (Z 3D axis)
421  bitmapDC.DrawLine( 0, 0, half_size, - half_size*slope ); // Blue axis (X 3D axis)
422  bitmapDC.DrawLine( 0, 0, -half_size, - half_size*slope ); // green axis (Y 3D axis)
423 
424  m_RgbBitmap->SetBitmap( newBm );
425  /* Deselect the Tool Bitmap from DC,
426  * in order to delete the MemoryDC safely without deleting the bitmap */
427  bitmapDC.SelectObject( wxNullBitmap );
428 }
double g
Green component.
Definition: color4d.h:359
KIGFX::COLOR4D m_newColor4D
the current color4d
double b
Blue component.
Definition: color4d.h:360
void createRGBBitmap()
generate the bitmap that shows the RVB color space
wxPoint m_cursorBitmapRed
the red cursor on the RGB bitmap palette.
wxPoint m_cursorBitmapBlue
the blue cursor on the RGB bitmap palette.
wxBitmap * m_bitmapRGB
the basic RGB palette
double r
Red component.
Definition: color4d.h:358
#define SLOPE_AXIS
wxPoint m_cursorBitmapGreen
the green cursor on the RGB bitmap palette.

References KIGFX::COLOR4D::b, createRGBBitmap(), KIGFX::COLOR4D::g, m_bitmapRGB, m_cursorBitmapBlue, m_cursorBitmapGreen, m_cursorBitmapRed, m_cursorsSize, m_newColor4D, DIALOG_COLOR_PICKER_BASE::m_RgbBitmap, KIGFX::COLOR4D::r, and SLOPE_AXIS.

Referenced by drawAll().

◆ Enable()

bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 307 of file dialog_shim.cpp.

308 {
309  // so we can do logging of this state change:
310  return wxDialog::Enable( enable );
311 }

◆ EndQuasiModal()

void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 445 of file dialog_shim.cpp.

446 {
447  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
448  // handle validation in the same way as other dialogs.
449  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
450  return;
451 
452  SetReturnCode( retCode );
453 
454  if( !IsQuasiModal() )
455  {
456  wxFAIL_MSG( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal"
457  "wasn't called" );
458  return;
459  }
460 
461  if( m_qmodal_loop )
462  {
463  if( m_qmodal_loop->IsRunning() )
464  m_qmodal_loop->Exit( 0 );
465  else
466  m_qmodal_loop->ScheduleExit( 0 );
467 
469  }
470 
473 
474  Show( false );
475 }
bool IsQuasiModal() const
Definition: dialog_shim.h:107
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:212
#define NULL
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:215

References DIALOG_SHIM::IsQuasiModal(), DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, NULL, and DIALOG_SHIM::Show().

Referenced by HK_PROMPT_DIALOG::EndFlexible(), DIALOG_SHIM::OnButton(), DIALOG_EDIT_COMPONENTS_LIBID::onCancel(), DIALOG_LIB_SYMBOL_PROPERTIES::OnCancelButtonClick(), DIALOG_SYMBOL_PROPERTIES::OnCancelButtonClick(), DIALOG_LIB_EDIT_PIN_TABLE::OnClose(), DIALOG_PRINT_GENERIC::onCloseButton(), DIALOG_CHOOSE_FOOTPRINT::OnCloseTimer(), DIALOG_CHOOSE_SYMBOL::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), DIALOG_SYMBOL_PROPERTIES::OnEditLibrarySymbol(), DIALOG_SYMBOL_PROPERTIES::OnEditSymbol(), DIALOG_SYMBOL_PROPERTIES::OnExchangeSymbol(), HTML_MESSAGE_BOX::OnOKButtonClick(), DIALOG_SYMBOL_PROPERTIES::OnUpdateSymbol(), DIALOG_CHOOSE_FOOTPRINT::OnUseBrowser(), DIALOG_CHOOSE_SYMBOL::OnUseBrowser(), and DIALOG_SHIM::~DIALOG_SHIM().

◆ finishDialogSettings()

void DIALOG_SHIM::finishDialogSettings ( )
protectedinherited

In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls.

finishDialogSettings must be called from derived classes after all widgets have been initialized, and therefore their size fixed. If TransferDataToWindow() is used to initialize widgets, at the end of TransferDataToWindow, or better yet, at end of a wxInitDialogEvent handler.

Definition at line 148 of file dialog_shim.cpp.

149 {
150  // must be called from the constructor of derived classes,
151  // when all widgets are initialized, and therefore their size fixed
152 
153  // SetSizeHints fixes the minimal size of sizers in the dialog
154  // (SetSizeHints calls Fit(), so no need to call it)
155  GetSizer()->SetSizeHints( this );
156 }

Referenced by DIALOG_3D_VIEW_OPTIONS::DIALOG_3D_VIEW_OPTIONS(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOM::DIALOG_BOM(), DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS(), DIALOG_CLEANUP_TRACKS_AND_VIAS::DIALOG_CLEANUP_TRACKS_AND_VIAS(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DIMENSION_PROPERTIES::DIALOG_DIMENSION_PROPERTIES(), DIALOG_DRC::DIALOG_DRC(), DIALOG_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_ENUM_PADS::DIALOG_ENUM_PADS(), DIALOG_ERC::DIALOG_ERC(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_EXPORT_SVG::DIALOG_EXPORT_SVG(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FOOTPRINT_CHECKER::DIALOG_FOOTPRINT_CHECKER(), DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_GENCAD_EXPORT_OPTIONS::DIALOG_GENCAD_EXPORT_OPTIONS(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS(), DIALOG_GLOBAL_LIB_TABLE_CONFIG::DIALOG_GLOBAL_LIB_TABLE_CONFIG(), DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), DIALOG_GROUP_PROPERTIES::DIALOG_GROUP_PROPERTIES(), DIALOG_IMAGE_EDITOR::DIALOG_IMAGE_EDITOR(), DIALOG_IMPORTED_LAYERS::DIALOG_IMPORTED_LAYERS(), DIALOG_INSPECTOR::DIALOG_INSPECTOR(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_LIB_NEW_COMPONENT::DIALOG_LIB_NEW_COMPONENT(), DIALOG_LIB_SYMBOL_PROPERTIES::DIALOG_LIB_SYMBOL_PROPERTIES(), DIALOG_LIST_HOTKEYS::DIALOG_LIST_HOTKEYS(), DIALOG_LOCKED_ITEMS_QUERY::DIALOG_LOCKED_ITEMS_QUERY(), DIALOG_MOVE_EXACT::DIALOG_MOVE_EXACT(), DIALOG_NET_INSPECTOR::DIALOG_NET_INSPECTOR(), DIALOG_NETLIST::DIALOG_NETLIST(), DIALOG_NON_COPPER_ZONES_EDITOR::DIALOG_NON_COPPER_ZONES_EDITOR(), DIALOG_PAD_PRIMITIVE_POLY_PROPS::DIALOG_PAD_PRIMITIVE_POLY_PROPS(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PASTE_SPECIAL::DIALOG_PASTE_SPECIAL(), DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_PRINT_GENERIC::DIALOG_PRINT_GENERIC(), DIALOG_PRINT_USING_PRINTER::DIALOG_PRINT_USING_PRINTER(), DIALOG_PUSH_PAD_PROPERTIES::DIALOG_PUSH_PAD_PROPERTIES(), DIALOG_REGULATOR_FORM::DIALOG_REGULATOR_FORM(), DIALOG_RULE_AREA_PROPERTIES::DIALOG_RULE_AREA_PROPERTIES(), DIALOG_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SHEET_PIN_PROPERTIES::DIALOG_SHEET_PIN_PROPERTIES(), DIALOG_SHEET_PROPERTIES::DIALOG_SHEET_PROPERTIES(), DIALOG_SWAP_LAYERS::DIALOG_SWAP_LAYERS(), DIALOG_SYMBOL_PROPERTIES::DIALOG_SYMBOL_PROPERTIES(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_UNUSED_PAD_LAYERS::DIALOG_UNUSED_PAD_LAYERS(), DIALOG_UPDATE_FROM_PCB::DIALOG_UPDATE_FROM_PCB(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), DIALOG_UPDATE_SYMBOL_FIELDS::DIALOG_UPDATE_SYMBOL_FIELDS(), DLG_SELECT_3DMODEL::DLG_SELECT_3DMODEL(), DIALOG_CONSTRAINTS_REPORTER::FinishInitialization(), PAGED_DIALOG::finishInitialization(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_EDIT_LIBRARY_TABLES::InstallPanel(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_SHEET_PROPERTIES::OnInitDlg(), DIALOG_SYMBOL_PROPERTIES::OnInitDlg(), DIALOG_SPICE_MODEL::onInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), DIALOG_SIGNAL_LIST::TransferDataToWindow(), DIALOG_BOARD_STATISTICS::TransferDataToWindow(), and TransferDataToWindow().

◆ GetColor()

KIGFX::COLOR4D DIALOG_COLOR_PICKER::GetColor ( )
inline

◆ GetType()

HOLDER_TYPE KIWAY_HOLDER::GetType ( ) const
inlineinherited

Definition at line 49 of file kiway_holder.h.

49 { return m_type; }
HOLDER_TYPE m_type
Definition: kiway_holder.h:79

References KIWAY_HOLDER::m_type.

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ GetUserUnits()

◆ horizPixelsFromDU()

int DIALOG_SHIM::horizPixelsFromDU ( int  x) const
protectedinherited

Convert an integer number of dialog units to pixels, horizontally.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 166 of file dialog_shim.cpp.

167 {
168  wxSize sz( x, 0 );
169  return ConvertDialogToPixels( sz ).x;
170 }

Referenced by DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), and DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL().

◆ initDefinedColors()

void DIALOG_COLOR_PICKER::initDefinedColors ( CUSTOM_COLORS_LIST aPredefinedColors)
private

Create the bitmap buttons for each defined colors.

If aPredefinedColors is nullptr, a internal predefined list will be used.

Definition at line 151 of file dialog_color_picker.cpp.

152 {
153  #define ID_COLOR_BLACK 2000 // colors_id = ID_COLOR_BLACK a ID_COLOR_BLACK + NBCOLORS-1
154 
155  // Colors are built from the colorRefs() table (size NBCOLORS).
156  // The look is better when colorRefs() order is displayed in a grid matrix
157  // of 6 row and 5 columns, first filling a row, and after the next column.
158  // But the wxFlexGrid used here must be filled by columns, then next row
159  // the best interval colorRefs() from a matrix row to the next row is 6
160  // So when have to reorder the index used to explore colorRefs()
161  int grid_col = 0;
162  int grid_row = 0;
163  int table_row_count = 6;
164 
165  wxSize swatchSize = ConvertDialogToPixels( SWATCH_SIZE_LARGE_DU );
166  wxSize checkerboardSize = ConvertDialogToPixels( CHECKERBOARD_SIZE_DU );
167  COLOR4D checkboardBackground = m_OldColorRect->GetParent()->GetBackgroundColour();
168 
169  auto addSwatch =
170  [&]( int aId, COLOR4D aColor, const wxString& aColorName )
171  {
172  wxBitmap bm = COLOR_SWATCH::MakeBitmap( aColor, COLOR4D::WHITE, swatchSize,
173  checkerboardSize, checkboardBackground );
174  wxStaticBitmap* swatch = new wxStaticBitmap( m_panelDefinedColors, aId, bm );
175 
176  m_fgridColor->Add( swatch, 0, wxALIGN_CENTER_VERTICAL, 5 );
177 
178  wxStaticText* label = new wxStaticText( m_panelDefinedColors, wxID_ANY, aColorName,
179  wxDefaultPosition, wxDefaultSize, 0 );
180  m_fgridColor->Add( label, 1, wxALIGN_CENTER_VERTICAL | wxRIGHT, 15 );
181 
182  m_colorSwatches.push_back( swatch );
183 
184  swatch->Connect( wxEVT_LEFT_DOWN,
185  wxMouseEventHandler( DIALOG_COLOR_PICKER::buttColorClick ),
186  NULL, this );
187  };
188 
189  // If no predefined list is given, build the default predefined colors:
190  if( aPredefinedColors )
191  {
192  for( unsigned jj = 0; jj < aPredefinedColors->size() && jj < NBCOLORS; ++jj )
193  {
194  CUSTOM_COLOR_ITEM* item = & *aPredefinedColors->begin() + jj;
195  int butt_ID = ID_COLOR_BLACK + jj;
196 
197  addSwatch( butt_ID, item->m_Color, item->m_ColorName );
198  m_Color4DList.push_back( item->m_Color );
199  }
200  }
201  else
202  {
203  m_Color4DList.assign( NBCOLORS, COLOR4D( 0.0, 0.0, 0.0, 1.0 ) );
204 
205  for( int jj = 0; jj < NBCOLORS; ++jj, grid_col++ )
206  {
207  if( grid_col*table_row_count >= NBCOLORS )
208  { // the current grid row is filled, and we must fill the next grid row
209  grid_col = 0;
210  grid_row++;
211  }
212 
213  int ii = grid_row + (grid_col*table_row_count); // The index in colorRefs()
214  int butt_ID = ID_COLOR_BLACK + ii;
215  COLOR4D buttcolor = COLOR4D( colorRefs()[ii].m_Numcolor );
216 
217  addSwatch( butt_ID, buttcolor, wxGetTranslation( colorRefs()[ii].m_ColorName ) );
218  m_Color4DList[ butt_ID - ID_COLOR_BLACK ] = buttcolor;
219  }
220  }
221 }
std::vector< KIGFX::COLOR4D > m_Color4DList
the list of color4d ordered by button ID, for predefined colors
static wxBitmap MakeBitmap(KIGFX::COLOR4D aColor, KIGFX::COLOR4D aBackground, wxSize aSize, wxSize aCheckerboardSize, KIGFX::COLOR4D aCheckerboardBackground)
Make a simple color swatch bitmap.
static const wxSize SWATCH_SIZE_LARGE_DU(24, 16)
A class to handle a custom color (predefined color) for the color picker dialog.
Number of colors.
Definition: color4d.h:74
#define NULL
std::vector< wxStaticBitmap * > m_colorSwatches
list of defined colors buttons
const StructColors * colorRefs()
Global list of legacy color names, still used all over the place for constructing COLOR4D's.
Definition: color4d.cpp:37
void buttColorClick(wxMouseEvent &event)
called when creating the dialog
Definition: color4d.h:48
static const wxSize CHECKERBOARD_SIZE_DU(3, 3)
KIGFX::COLOR4D m_Color
#define ID_COLOR_BLACK
A color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:98

References buttColorClick(), CHECKERBOARD_SIZE_DU(), colorRefs(), ID_COLOR_BLACK, CUSTOM_COLOR_ITEM::m_Color, m_Color4DList, CUSTOM_COLOR_ITEM::m_ColorName, m_colorSwatches, DIALOG_COLOR_PICKER_BASE::m_fgridColor, DIALOG_COLOR_PICKER_BASE::m_OldColorRect, DIALOG_COLOR_PICKER_BASE::m_panelDefinedColors, COLOR_SWATCH::MakeBitmap(), NBCOLORS, NULL, SWATCH_SIZE_LARGE_DU(), and WHITE.

Referenced by DIALOG_COLOR_PICKER().

◆ IsCtrl()

static bool DIALOG_SHIM::IsCtrl ( int  aChar,
const wxKeyEvent &  e 
)
inlinestaticinherited

Definition at line 125 of file dialog_shim.h.

126  {
127  return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
128  !e.ShiftDown() && !e.MetaDown();
129  }

Referenced by DIALOG_TEXT_PROPERTIES::OnCharHook().

◆ IsQuasiModal()

◆ IsShiftCtrl()

static bool DIALOG_SHIM::IsShiftCtrl ( int  aChar,
const wxKeyEvent &  e 
)
inlinestaticinherited

Definition at line 131 of file dialog_shim.h.

132  {
133  return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
134  e.ShiftDown() && !e.MetaDown();
135  }

Referenced by DIALOG_TEXT_PROPERTIES::OnCharHook().

◆ Kiway()

KIWAY& KIWAY_HOLDER::Kiway ( ) const
inlineinherited

Return a reference to the KIWAY that this object has an opportunity to participate in.

A KIWAY_HOLDER is not necessarily a KIWAY_PLAYER.

Definition at line 56 of file kiway_holder.h.

57  {
58  wxASSERT( m_kiway ); // smoke out bugs in Debug build, then Release runs fine.
59  return *m_kiway;
60  }
KIWAY * m_kiway
Definition: kiway_holder.h:78

References KIWAY_HOLDER::m_kiway.

Referenced by PROJECT_TREE_ITEM::Activate(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PCB_BASE_EDIT_FRAME::AddLibrary(), SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic(), CVPCB_MAINFRAME::BuildLibrariesListBox(), SYMBOL_EDIT_FRAME::canCloseWindow(), SCH_EDIT_FRAME::canCloseWindow(), KICAD_MANAGER_FRAME::CloseProject(), COMMON_CONTROL::ConfigurePaths(), DIALOG_CHOOSE_FOOTPRINT::ConstructRightPanel(), DIALOG_CHOOSE_SYMBOL::ConstructRightPanel(), PCB_BASE_FRAME::CreateAndShow3D_Frame(), FOOTPRINT_EDITOR_CONTROL::CreateFootprint(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_SHIM::DIALOG_SHIM(), CVPCB_MAINFRAME::DisplayStatus(), FIELDS_GRID_TRICKS::doPopupSelection(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), BOARD_EDITOR_CONTROL::EditFpInFpEditor(), SCH_EDITOR_CONTROL::EditWithSymbolEditor(), BACK_ANNOTATE::FetchNetlistFromPCB(), DISPLAY_FOOTPRINTS_FRAME::GetFootprint(), KICAD_MANAGER_FRAME::ImportNonKiCadProject(), KICAD_MANAGER_FRAME::language_change(), KIWAY_PLAYER::language_change(), DIALOG_CHANGE_SYMBOLS::launchMatchIdSymbolBrowser(), DIALOG_CHANGE_SYMBOLS::launchNewIdSymbolBrowser(), LIB_TREE_MODEL_ADAPTER::LIB_TREE_MODEL_ADAPTER(), CVPCB_MAINFRAME::LoadFootprintFiles(), TEXT_BUTTON_SYMBOL_CHOOSER::OnButtonClick(), TEXT_BUTTON_FP_CHOOSER::OnButtonClick(), PL_EDITOR_FRAME::OnExit(), SCH_EDIT_FRAME::OnExit(), FOOTPRINT_EDIT_FRAME::OnExitKiCad(), FOOTPRINT_VIEWER_FRAME::OnExitKiCad(), SYMBOL_EDIT_FRAME::OnExitKiCad(), SAVE_AS_TRAVERSER::OnFile(), DIALOG_CHOOSE_SYMBOL::OnInitDialog(), SCH_EDIT_FRAME::OnOpenCvpcb(), SCH_EDIT_FRAME::OnOpenPcbnew(), EDA_BASE_FRAME::OnPreferences(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadFootprintFromBoard(), SCH_EDIT_FRAME::OnUpdatePCB(), FOOTPRINT_EDIT_FRAME::OnUpdateSaveFootprintToBoard(), PANEL_PCBNEW_COLOR_SETTINGS::PANEL_PCBNEW_COLOR_SETTINGS(), SCH_BASE_FRAME::PickSymbolFromLibBrowser(), KIWAY_HOLDER::Prj(), SCH_EDIT_TOOL::Properties(), BACK_ANNOTATE::PushNewLinksToPCB(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), SCH_EDITOR_CONTROL::rescueProject(), EE_INSPECTION_TOOL::RunSimulation(), SYMBOL_EDIT_FRAME::Save(), CVPCB_MAINFRAME::SaveFootprintAssociation(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), LIB_TREE_MODEL_ADAPTER::SavePinnedItems(), SCH_EDIT_FRAME::SendCrossProbeClearHighlight(), SCH_EDIT_FRAME::SendCrossProbeNetName(), PCB_EDIT_FRAME::SendCrossProbeNetName(), CVPCB_MAINFRAME::SendMessageToEESCHEMA(), PCB_EDIT_FRAME::SendMessageToEESCHEMA(), SCH_EDIT_FRAME::SendMessageToPCBNEW(), SCH_EDIT_FRAME::sendNetlistToCvpcb(), SCH_EDIT_FRAME::SetCrossProbeConnection(), SYMBOL_EDIT_FRAME::SetCurPart(), CVPCB_CONTROL::ShowFootprintViewer(), COMMON_CONTROL::ShowLibraryTable(), COMMON_CONTROL::ShowPlayer(), KICAD_MANAGER_CONTROL::ShowPlayer(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), BOARD_EDITOR_CONTROL::UpdateSchematicFromPCB(), and DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint().

◆ normalizeToInt()

int DIALOG_COLOR_PICKER::normalizeToInt ( double  aValue,
int  aValMax = 255 
)
inlineprivate

Definition at line 191 of file dialog_color_picker.h.

192  {
193  return ( aValue * aValMax ) + 0.5;
194  }

Referenced by SetEditVals().

◆ OnChangeAlpha()

void DIALOG_COLOR_PICKER::OnChangeAlpha ( wxScrollEvent &  event)
overrideprivatevirtual

Event handlers from wxSpinControl.

Reimplemented from DIALOG_COLOR_PICKER_BASE.

Definition at line 709 of file dialog_color_picker.cpp.

710 {
711  double alpha = (double)event.GetPosition() / ALPHA_MAX;
712  m_newColor4D.a = alpha;
713  m_NewColorRect->Freeze(); // Avoid flicker
715  m_NewColorRect->Thaw();
716  m_NewColorRect->Refresh();
717 }
KIGFX::COLOR4D m_newColor4D
the current color4d
double a
Alpha component.
Definition: color4d.h:361
#define ALPHA_MAX
void updatePreview(wxStaticBitmap *aStaticBitmap, KIGFX::COLOR4D &aColor4D)
Event handler from wxSlider: brightness (value) control.

References KIGFX::COLOR4D::a, ALPHA_MAX, m_newColor4D, DIALOG_COLOR_PICKER_BASE::m_NewColorRect, and updatePreview().

◆ OnChangeBrightness()

void DIALOG_COLOR_PICKER::OnChangeBrightness ( wxScrollEvent &  event)
overrideprivatevirtual

Event handler from wxSlider: alpha (transparency) control.

Reimplemented from DIALOG_COLOR_PICKER_BASE.

Definition at line 774 of file dialog_color_picker.cpp.

775 {
776  m_val = (double)event.GetPosition() / 255.0;
777 
779 
780  SetEditVals( VAL_CHANGED, true );
781 
782  drawAll();
783 }
double m_hue
the current hue, in degrees (0 ... 360)
double m_sat
the current saturation (0 ... 1.0)
KIGFX::COLOR4D m_newColor4D
the current color4d
void SetEditVals(CHANGED_COLOR aChanged, bool aCheckTransparency)
void FromHSV(double aInH, double aInS, double aInV)
Changes currently used color to the one given by hue, saturation and value parameters.
Definition: color4d.cpp:346
double m_val
the current value (0 ... 1.0)

References drawAll(), KIGFX::COLOR4D::FromHSV(), m_hue, m_newColor4D, m_sat, m_val, SetEditVals(), and VAL_CHANGED.

◆ OnChangeEditBlue()

void DIALOG_COLOR_PICKER::OnChangeEditBlue ( wxSpinEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_COLOR_PICKER_BASE.

Definition at line 740 of file dialog_color_picker.cpp.

741 {
742  double val = (double)event.GetPosition() / 255.0;
743  m_newColor4D.b = val;
744  SetEditVals( BLUE_CHANGED, true );
745 
746  drawAll();
747 }
KIGFX::COLOR4D m_newColor4D
the current color4d
double b
Blue component.
Definition: color4d.h:360
void SetEditVals(CHANGED_COLOR aChanged, bool aCheckTransparency)

References KIGFX::COLOR4D::b, BLUE_CHANGED, drawAll(), m_newColor4D, and SetEditVals().

◆ OnChangeEditGreen()

void DIALOG_COLOR_PICKER::OnChangeEditGreen ( wxSpinEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_COLOR_PICKER_BASE.

Definition at line 730 of file dialog_color_picker.cpp.

731 {
732  double val = (double)event.GetPosition() / 255.0;
733  m_newColor4D.g = val;
734  SetEditVals( GREEN_CHANGED, true );
735 
736  drawAll();
737 }
double g
Green component.
Definition: color4d.h:359
KIGFX::COLOR4D m_newColor4D
the current color4d
void SetEditVals(CHANGED_COLOR aChanged, bool aCheckTransparency)

References drawAll(), KIGFX::COLOR4D::g, GREEN_CHANGED, m_newColor4D, and SetEditVals().

◆ OnChangeEditHue()

void DIALOG_COLOR_PICKER::OnChangeEditHue ( wxSpinEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_COLOR_PICKER_BASE.

Definition at line 750 of file dialog_color_picker.cpp.

751 {
752  m_hue = (double)event.GetPosition();
753 
755 
756  SetEditVals( HUE_CHANGED, true );
757 
758  drawAll();
759 }
double m_hue
the current hue, in degrees (0 ... 360)
double m_sat
the current saturation (0 ... 1.0)
KIGFX::COLOR4D m_newColor4D
the current color4d
void SetEditVals(CHANGED_COLOR aChanged, bool aCheckTransparency)
void FromHSV(double aInH, double aInS, double aInV)
Changes currently used color to the one given by hue, saturation and value parameters.
Definition: color4d.cpp:346
double m_val
the current value (0 ... 1.0)

References drawAll(), KIGFX::COLOR4D::FromHSV(), HUE_CHANGED, m_hue, m_newColor4D, m_sat, m_val, and SetEditVals().

◆ OnChangeEditRed()

void DIALOG_COLOR_PICKER::OnChangeEditRed ( wxSpinEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_COLOR_PICKER_BASE.

Definition at line 720 of file dialog_color_picker.cpp.

721 {
722  double val = (double)event.GetPosition() / 255.0;
723  m_newColor4D.r = val;
724  SetEditVals( RED_CHANGED, true );
725 
726  drawAll();
727 }
KIGFX::COLOR4D m_newColor4D
the current color4d
void SetEditVals(CHANGED_COLOR aChanged, bool aCheckTransparency)
double r
Red component.
Definition: color4d.h:358

References drawAll(), m_newColor4D, KIGFX::COLOR4D::r, RED_CHANGED, and SetEditVals().

◆ OnChangeEditSat()

void DIALOG_COLOR_PICKER::OnChangeEditSat ( wxSpinEvent &  event)
overrideprivatevirtual

mouse handlers, when clicking on a palette bitmap

Reimplemented from DIALOG_COLOR_PICKER_BASE.

Definition at line 762 of file dialog_color_picker.cpp.

763 {
764  m_sat = (double)event.GetPosition() / 255.0;
765 
767 
768  SetEditVals( SAT_CHANGED, true );
769 
770  drawAll();
771 }
double m_hue
the current hue, in degrees (0 ... 360)
double m_sat
the current saturation (0 ... 1.0)
KIGFX::COLOR4D m_newColor4D
the current color4d
void SetEditVals(CHANGED_COLOR aChanged, bool aCheckTransparency)
void FromHSV(double aInH, double aInS, double aInV)
Changes currently used color to the one given by hue, saturation and value parameters.
Definition: color4d.cpp:346
double m_val
the current value (0 ... 1.0)

References drawAll(), KIGFX::COLOR4D::FromHSV(), m_hue, m_newColor4D, m_sat, m_val, SAT_CHANGED, and SetEditVals().

◆ OnCharHook()

void DIALOG_SHIM::OnCharHook ( wxKeyEvent &  aEvt)
protectedvirtualinherited

Reimplemented in DIALOG_CHOOSE_SYMBOL, HK_PROMPT_DIALOG, DIALOG_TEXT_PROPERTIES, and HTML_MESSAGE_BOX.

Definition at line 536 of file dialog_shim.cpp.

537 {
538  if( aEvt.GetKeyCode() == 'U' && aEvt.GetModifiers() == wxMOD_CONTROL )
539  {
540  if( m_parentFrame )
541  {
543  return;
544  }
545  }
546  // shift-return (Mac default) or Ctrl-Return (GTK) for OK
547  else if( aEvt.GetKeyCode() == WXK_RETURN && ( aEvt.ShiftDown() || aEvt.ControlDown() ) )
548  {
549  wxPostEvent( this, wxCommandEvent( wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK ) );
550  return;
551  }
552  else if( aEvt.GetKeyCode() == WXK_TAB && !aEvt.ControlDown() )
553  {
554  wxWindow* currentWindow = wxWindow::FindFocus();
555  int currentIdx = -1;
556  int delta = aEvt.ShiftDown() ? -1 : 1;
557 
558  auto advance = [&]( int& idx )
559  {
560  // Wrap-around modulus
561  int size = m_tabOrder.size();
562  idx = ( ( idx + delta ) % size + size ) % size;
563  };
564 
565  for( size_t i = 0; i < m_tabOrder.size(); ++i )
566  {
567  if( m_tabOrder[i] == currentWindow )
568  {
569  currentIdx = (int) i;
570  break;
571  }
572  }
573 
574  if( currentIdx >= 0 )
575  {
576  advance( currentIdx );
577 
578  //todo: We don't currently have non-textentry dialog boxes but this will break if
579  // we add them.
580 #ifdef __APPLE__
581  while( dynamic_cast<wxTextEntry*>( m_tabOrder[ currentIdx ] ) == nullptr )
582  advance( currentIdx );
583 #endif
584 
585  m_tabOrder[ currentIdx ]->SetFocus();
586  return;
587  }
588  }
589 
590  aEvt.Skip();
591 }
std::vector< wxWindow * > m_tabOrder
Definition: dialog_shim.h:219
EDA_BASE_FRAME * m_parentFrame
Definition: dialog_shim.h:217
virtual void ToggleUserUnits()

References DIALOG_SHIM::m_parentFrame, DIALOG_SHIM::m_tabOrder, and EDA_BASE_FRAME::ToggleUserUnits().

◆ OnColorValueText()

void DIALOG_COLOR_PICKER::OnColorValueText ( wxCommandEvent &  event)
overrideprivatevirtual

Event handler for the reset button press.

Reimplemented from DIALOG_COLOR_PICKER_BASE.

Definition at line 661 of file dialog_color_picker.cpp.

662 {
663  m_newColor4D.SetFromWxString( m_colorValue->GetValue() );
664  m_newColor4D.ToHSV( m_hue, m_sat, m_val, true );
665 
666  SetEditVals( HEX_CHANGED, true );
667  drawAll();
668 }
double m_hue
the current hue, in degrees (0 ... 360)
double m_sat
the current saturation (0 ... 1.0)
void ToHSV(double &aOutHue, double &aOutSaturation, double &aOutValue, bool aAlwaysDefineHue=false) const
Convert current color (stored in RGB) to HSV format.
Definition: color4d.cpp:293
KIGFX::COLOR4D m_newColor4D
the current color4d
void SetEditVals(CHANGED_COLOR aChanged, bool aCheckTransparency)
double m_val
the current value (0 ... 1.0)

References drawAll(), HEX_CHANGED, DIALOG_COLOR_PICKER_BASE::m_colorValue, m_hue, m_newColor4D, m_sat, m_val, SetEditVals(), and KIGFX::COLOR4D::ToHSV().

◆ onHSVMouseClick()

void DIALOG_COLOR_PICKER::onHSVMouseClick ( wxMouseEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_COLOR_PICKER_BASE.

Definition at line 642 of file dialog_color_picker.cpp.

643 {
644  m_allowMouseEvents = true;
645 
646  if( setHSvaluesFromCursor( event.GetPosition() ) )
647  drawAll();
648 }
bool setHSvaluesFromCursor(wxPoint aMouseCursor)
Manage the Hue and Saturation settings when the mouse cursor is at aMouseCursor.

References drawAll(), m_allowMouseEvents, and setHSvaluesFromCursor().

◆ onHSVMouseDrag()

void DIALOG_COLOR_PICKER::onHSVMouseDrag ( wxMouseEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_COLOR_PICKER_BASE.

Definition at line 651 of file dialog_color_picker.cpp.

652 {
653  if( !event.Dragging() || !m_allowMouseEvents )
654  return;
655 
656  if( setHSvaluesFromCursor( event.GetPosition() ) )
657  drawAll();
658 }
bool setHSvaluesFromCursor(wxPoint aMouseCursor)
Manage the Hue and Saturation settings when the mouse cursor is at aMouseCursor.

References drawAll(), m_allowMouseEvents, and setHSvaluesFromCursor().

◆ OnPaint()

void DIALOG_SHIM::OnPaint ( wxPaintEvent &  event)
inherited

Definition at line 352 of file dialog_shim.cpp.

353 {
354  if( m_firstPaintEvent )
355  {
357 
358  selectAllInTextCtrls( GetChildren() );
359 
362  else
363  KIPLATFORM::UI::ForceFocus( this ); // Focus the dialog itself
364 
365  m_firstPaintEvent = false;
366  }
367 
368  event.Skip();
369 }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:210
bool m_firstPaintEvent
Definition: dialog_shim.h:209
void ForceFocus(wxWindow *aWindow)
Pass the current focus to the window.
Definition: gtk/ui.cpp:44
void FixupCancelButtonCmdKeyCollision(wxWindow *aWindow)
Definition: gtk/ui.cpp:68
static void selectAllInTextCtrls(wxWindowList &children)

References KIPLATFORM::UI::FixupCancelButtonCmdKeyCollision(), KIPLATFORM::UI::ForceFocus(), DIALOG_SHIM::m_firstPaintEvent, DIALOG_SHIM::m_initialFocusTarget, and selectAllInTextCtrls().

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ OnResetButton()

void DIALOG_COLOR_PICKER::OnResetButton ( wxCommandEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_COLOR_PICKER_BASE.

Definition at line 786 of file dialog_color_picker.cpp.

787 {
792 
793  m_newColor4D.ToHSV( m_hue, m_sat, m_val, true );
794  SetEditVals( ALL_CHANGED, false );
795 
796  drawAll();
797 }
double m_hue
the current hue, in degrees (0 ... 360)
double m_sat
the current saturation (0 ... 1.0)
void ToHSV(double &aOutHue, double &aOutSaturation, double &aOutValue, bool aAlwaysDefineHue=false) const
Convert current color (stored in RGB) to HSV format.
Definition: color4d.cpp:293
double g
Green component.
Definition: color4d.h:359
KIGFX::COLOR4D m_newColor4D
the current color4d
double b
Blue component.
Definition: color4d.h:360
void SetEditVals(CHANGED_COLOR aChanged, bool aCheckTransparency)
double a
Alpha component.
Definition: color4d.h:361
double m_val
the current value (0 ... 1.0)
KIGFX::COLOR4D m_defaultColor
The default color4d.
double r
Red component.
Definition: color4d.h:358

References KIGFX::COLOR4D::a, ALL_CHANGED, KIGFX::COLOR4D::b, drawAll(), KIGFX::COLOR4D::g, m_defaultColor, m_hue, m_newColor4D, m_sat, m_val, KIGFX::COLOR4D::r, SetEditVals(), and KIGFX::COLOR4D::ToHSV().

◆ onRGBMouseClick()

void DIALOG_COLOR_PICKER::onRGBMouseClick ( wxMouseEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_COLOR_PICKER_BASE.

Definition at line 544 of file dialog_color_picker.cpp.

545 {
546  m_allowMouseEvents = true;
547  wxPoint mousePos = event.GetPosition();
548 
549  // The cursor position is relative to the m_bitmapHSV wxBitmap center
550  wxSize bmsize = m_bitmapRGB->GetSize();
551  int half_size = std::min( bmsize.x, bmsize.y )/2;
552  mousePos.x -= half_size;
553  mousePos.y -= half_size;
554  mousePos.y = -mousePos.y; // Use the bottom to top vertical axis
555 
556  wxPoint dist = m_cursorBitmapRed - mousePos;
557 
558  if( std::abs( dist.x ) <= m_cursorsSize/2 && std::abs( dist.y ) <= m_cursorsSize/2 )
559  {
561  return;
562  }
563 
564  dist = m_cursorBitmapGreen - mousePos;
565 
566  if( std::abs( dist.x ) <= m_cursorsSize/2 && std::abs( dist.y ) <= m_cursorsSize/2 )
567  {
569  return;
570  }
571 
572  dist = m_cursorBitmapBlue - mousePos;
573 
574  if( std::abs( dist.x ) <= m_cursorsSize/2 && std::abs( dist.y ) <= m_cursorsSize/2 )
575  {
577  return;
578  }
579 
580  m_selectedCursor = nullptr;
581 }
wxPoint m_cursorBitmapRed
the red cursor on the RGB bitmap palette.
wxPoint m_cursorBitmapBlue
the blue cursor on the RGB bitmap palette.
wxBitmap * m_bitmapRGB
the basic RGB palette
wxPoint m_cursorBitmapGreen
the green cursor on the RGB bitmap palette.
wxPoint * m_selectedCursor
the ref cursor to the selected cursor, if any, or null.

References m_allowMouseEvents, m_bitmapRGB, m_cursorBitmapBlue, m_cursorBitmapGreen, m_cursorBitmapRed, m_cursorsSize, and m_selectedCursor.

◆ onRGBMouseDrag()

void DIALOG_COLOR_PICKER::onRGBMouseDrag ( wxMouseEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_COLOR_PICKER_BASE.

Definition at line 584 of file dialog_color_picker.cpp.

585 {
586  if( !event.Dragging() || !m_allowMouseEvents )
587  {
588  m_selectedCursor = nullptr;
589  return;
590  }
591 
595  return;
596 
597  // Adjust the HSV cursor position to follow the mouse cursor
598  // The cursor position is relative to the m_bitmapHSV wxBitmap center
599  wxPoint mousePos = event.GetPosition();
600  wxSize bmsize = m_bitmapRGB->GetSize();
601  int half_size = std::min( bmsize.x, bmsize.y )/2;
602  mousePos.x -= half_size;
603  mousePos.y -= half_size;
604  mousePos.y = -mousePos.y; // Use the bottom to top vertical axis
605 
606  half_size -= m_cursorsSize/2; // the actual half_size of the palette area
607 
608  // Change colors according to the selected cursor:
610  {
611  if( mousePos.y >= 0 && mousePos.y <= half_size )
612  m_newColor4D.r = (double)mousePos.y / half_size;
613  else
614  return;
615  }
616 
618  {
619  mousePos.x = -mousePos.x;
620 
621  if( mousePos.x >= 0 && mousePos.x <= half_size )
622  m_newColor4D.g = (double)mousePos.x / half_size;
623  else
624  return;
625  }
626 
628  {
629  if( mousePos.x >= 0 && mousePos.x <= half_size )
630  m_newColor4D.b = (double)mousePos.x / half_size;
631  else
632  return;
633  }
634 
635  m_newColor4D.ToHSV( m_hue, m_sat, m_val, true );
636  SetEditVals( ALL_CHANGED, true );
637 
638  drawAll();
639 }
double m_hue
the current hue, in degrees (0 ... 360)
double m_sat
the current saturation (0 ... 1.0)
void ToHSV(double &aOutHue, double &aOutSaturation, double &aOutValue, bool aAlwaysDefineHue=false) const
Convert current color (stored in RGB) to HSV format.
Definition: color4d.cpp:293
double g
Green component.
Definition: color4d.h:359
KIGFX::COLOR4D m_newColor4D
the current color4d
double b
Blue component.
Definition: color4d.h:360
void SetEditVals(CHANGED_COLOR aChanged, bool aCheckTransparency)
double m_val
the current value (0 ... 1.0)
wxPoint m_cursorBitmapRed
the red cursor on the RGB bitmap palette.
wxPoint m_cursorBitmapBlue
the blue cursor on the RGB bitmap palette.
wxBitmap * m_bitmapRGB
the basic RGB palette
double r
Red component.
Definition: color4d.h:358
wxPoint m_cursorBitmapGreen
the green cursor on the RGB bitmap palette.
wxPoint * m_selectedCursor
the ref cursor to the selected cursor, if any, or null.

References ALL_CHANGED, KIGFX::COLOR4D::b, drawAll(), KIGFX::COLOR4D::g, m_allowMouseEvents, m_bitmapRGB, m_cursorBitmapBlue, m_cursorBitmapGreen, m_cursorBitmapRed, m_cursorsSize, m_hue, m_newColor4D, m_sat, m_selectedCursor, m_val, KIGFX::COLOR4D::r, SetEditVals(), and KIGFX::COLOR4D::ToHSV().

◆ Prj()

PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

Return a reference to the PROJECT associated with this KIWAY.

Definition at line 35 of file kiway_holder.cpp.

36 {
37  return Kiway().Prj();
38 }
KIWAY & Kiway() const
Return a reference to the KIWAY that this object has an opportunity to participate in.
Definition: kiway_holder.h:56
virtual PROJECT & Prj() const
Return the PROJECT associated with this KIWAY.
Definition: kiway.cpp:173

References KIWAY_HOLDER::Kiway(), and KIWAY::Prj().

Referenced by PCB_BASE_EDIT_FRAME::AddLibrary(), SYMBOL_LIBRARY_MANAGER::addLibrary(), SYMBOL_EDIT_FRAME::addLibTableEntry(), SCH_EDIT_FRAME::AppendSchematic(), AskSaveBoardFileName(), DIALOG_SYMBOL_REMAP::backupProject(), CVPCB_MAINFRAME::buildEquivalenceList(), CVPCB_MAINFRAME::BuildLibrariesListBox(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::Cfg3DPath(), DIALOG_FOOTPRINT_PROPERTIES::Cfg3DPath(), KICAD_MANAGER_FRAME::CloseProject(), DIALOG_GEN_FOOTPRINT_POSITION::CreateGerberFiles(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), SCH_EDIT_FRAME::CreateScreens(), FOOTPRINT_EDIT_FRAME::DeleteFootprintFromLibrary(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOARD_STATISTICS::DIALOG_BOARD_STATISTICS(), DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXPORT_SVG::DIALOG_EXPORT_SVG(), DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR(), DIALOG_GEN_FOOTPRINT_POSITION::DIALOG_GEN_FOOTPRINT_POSITION(), DIALOG_NETLIST::DIALOG_NETLIST(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_PLOT::DIALOG_PLOT(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), DIALOG_UPDATE_FROM_PCB::DIALOG_UPDATE_FROM_PCB(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), FOOTPRINT_PREVIEW_PANEL::DisplayFootprint(), SYMBOL_VIEWER_FRAME::DisplayLibInfos(), CVPCB_MAINFRAME::DisplayStatus(), PL_DRAW_PANEL_GAL::DisplayWorksheet(), PCB_EDIT_FRAME::doAutoSave(), SCH_EDIT_FRAME::doAutoSave(), PCB_BASE_EDIT_FRAME::doCloseWindow(), FOOTPRINT_EDIT_FRAME::doCloseWindow(), SCH_EDIT_FRAME::doCloseWindow(), FIELDS_GRID_TRICKS::doPopupSelection(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), KICAD_MANAGER_CONTROL::Execute(), PCB_EDIT_FRAME::Export_IDF3(), PCB_EDIT_FRAME::ExportFootprintsToLibrary(), BOARD_EDITOR_CONTROL::ExportNetlist(), DIALOG_EXPORT_SVG::ExportSVGFile(), SYMBOL_EDITOR_CONTROL::ExportSymbolAsSVG(), SYMBOL_EDITOR_CONTROL::ExportView(), PCB_EDIT_FRAME::ExportVRML_File(), BACK_ANNOTATE::FetchNetlistFromPCB(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::GenD356File(), DIALOG_GENDRILL::GenDrillAndMapFiles(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), SYMBOL_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), PCB_BASE_EDIT_FRAME::GetDesignRulesPath(), DISPLAY_FOOTPRINTS_FRAME::GetFootprint(), SCH_BASE_FRAME::GetLibPart(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), KICAD_MANAGER_FRAME::GetProjectFileName(), SYMBOL_VIEWER_FRAME::GetSelectedSymbol(), SCH_EDIT_FRAME::importFile(), SCH_EDITOR_CONTROL::ImportFPAssignments(), DIALOG_CONFIG_EQUFILES::Init(), FOOTPRINT_EDIT_FRAME::initLibraryTree(), SCH_EDIT_FRAME::KiwayMailIn(), SYMBOL_EDIT_FRAME::KiwayMailIn(), EDA_DRAW_FRAME::LibraryFileBrowser(), CVPCB_MAINFRAME::LoadFootprintFiles(), DIALOG_SPICE_MODEL::loadLibrary(), KICAD_MANAGER_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProjectSettings(), PCB_EDIT_FRAME::LoadProjectSettings(), SIM_PLOT_FRAME::LoadSettings(), SCH_EDIT_FRAME::LoadSheetFromFile(), SYMBOL_EDIT_FRAME::LoadSymbolFromCurrentLib(), EDA_BASE_FRAME::LoadWindowState(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::On3DModelCellChanged(), DIALOG_FOOTPRINT_PROPERTIES::On3DModelCellChanged(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::OnAdd3DModel(), DIALOG_FOOTPRINT_PROPERTIES::OnAdd3DModel(), DIALOG_BOARD_SETUP::OnAuxiliaryAction(), KICAD_MANAGER_FRAME::OnBrowseInFileExplorer(), TEXT_BUTTON_URL::OnButtonClick(), TEXT_BUTTON_FILE_BROWSER::OnButtonClick(), DIALOG_EDIT_COMPONENTS_LIBID::onClickOrphansButton(), DIALOG_GENDRILL::OnGenReportFile(), KICAD_MANAGER_FRAME::OnIdle(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_SYMBOL::OnInitDialog(), DIALOG_CONFIG_EQUFILES::OnOkClick(), SCH_EDIT_FRAME::OnOpenCvpcb(), KICAD_MANAGER_FRAME::OnOpenFileInTextEditor(), DIALOG_NETLIST::OnOpenNetlistClick(), SCH_EDIT_FRAME::OnOpenPcbnew(), DIALOG_EXPORT_SVG::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_BOARD_SETUP::OnPageChange(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_BOM::OnRunGenerator(), FOOTPRINT_EDIT_FRAME::OnSaveFootprintAsPng(), DIALOG_ERC::OnSaveReport(), DIALOG_DRC::OnSaveReport(), DIALOG_LABEL_EDITOR::onScintillaCharAdded(), PROPERTIES_FRAME::onScintillaCharAdded(), DIALOG_SCH_EDIT_ONE_FIELD::onScintillaCharAdded(), DIALOG_SPICE_MODEL::onSelectLibrary(), SYMBOL_VIEWER_FRAME::OnSelectSymbol(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), SCH_EDIT_FRAME::OnUpdatePCB(), PCB_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_FRAME::OpenProjectFiles(), PANEL_PREV_3D::PANEL_PREV_3D(), SCH_EDITOR_CONTROL::Paste(), FOOTPRINT_EDITOR_CONTROL::PasteFootprint(), SCH_BASE_FRAME::PickSymbolFromLibTree(), DIALOG_PLOT::Plot(), DIALOG_PLOT_SCHEMATIC::Plot_1_Page_HPGL(), DIALOG_PLOT_SCHEMATIC::PlotOneSheetDXF(), DIALOG_CHOOSE_SYMBOL::PopulateFootprintSelector(), SCH_EDITOR_CONTROL::Print(), EDA_DRAW_FRAME::PrintDrawingSheet(), SCH_EDIT_FRAME::PrintPage(), KICAD_MANAGER_FRAME::PrintPrjInfo(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), SYMBOL_VIEWER_FRAME::ReCreateLibList(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), SYMBOL_VIEWER_FRAME::ReCreateSymbolList(), EDA_3D_VIEWER::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), SYMBOL_EDIT_FRAME::replaceLibTableEntry(), SCH_EDITOR_CONTROL::RescueLegacyProject(), SCH_EDITOR_CONTROL::RescueSymbolLibTableProject(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), SCH_EDIT_FRAME::Save_File(), FOOTPRINT_EDITOR_CONTROL::SaveAs(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), SYMBOL_EDIT_FRAME::saveLibrary(), SYMBOL_EDIT_FRAME::savePartAs(), PCB_EDIT_FRAME::SavePcbCopy(), PCB_EDIT_FRAME::SavePcbFile(), SCH_EDIT_FRAME::SaveProject(), PCB_EDIT_FRAME::SaveProjectSettings(), DIALOG_BOARD_STATISTICS::saveReportClicked(), SIM_PLOT_FRAME::SaveSettings(), EDA_BASE_FRAME::SaveSettings(), SCH_BASE_FRAME::saveSymbolLibTables(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), PCB_BASE_FRAME::SelectLibrary(), SYMBOL_EDIT_FRAME::SelectLibraryFromList(), PCB_BASE_EDIT_FRAME::selectLibTable(), SYMBOL_EDIT_FRAME::selectSymLibTable(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), SYMBOL_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), SYMBOL_EDIT_FRAME::SetCurPart(), GERBVIEW_FRAME::SetPageSettings(), EE_INSPECTION_TOOL::ShowDatasheet(), DIALOG_CHOOSE_SYMBOL::ShowFootprintFor(), COMMON_CONTROL::ShowHelp(), SYMBOL_VIEWER_FRAME::ShowModal(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), SYMBOL_LIBRARY_MANAGER::symTable(), SYMBOL_TREE_SYNCHRONIZING_ADAPTER::Sync(), FOOTPRINT_EDIT_FRAME::SyncLibraryTree(), EDA_3D_VIEWER::takeScreenshot(), PANEL_SETUP_RULES::TransferDataFromWindow(), NETLIST_DIALOG::TransferDataFromWindow(), DIALOG_EDIT_COMPONENTS_LIBID::TransferDataFromWindow(), PANEL_SETUP_RULES::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::TransferDataToWindow(), DIALOG_FOOTPRINT_PROPERTIES::TransferDataToWindow(), DIALOG_PAGES_SETTINGS::UpdatePageLayoutExample(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), FOOTPRINT_EDIT_FRAME::UpdateTitle(), SCH_EDIT_FRAME::UpdateTitle(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_FOOTPRINT_PROPERTIES::~DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::~DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR(), and SCH_EDIT_FRAME::~SCH_EDIT_FRAME().

◆ resetSize()

void DIALOG_SHIM::resetSize ( )
protectedinherited

Clear the existing dialog size and position.

This will cause the dialog size to be clear so the next time the dialog is shown the sizers will layout the dialog accordingly. This useful when there are dialog windows that size changes due to layout dependency hidden controls.

Definition at line 282 of file dialog_shim.cpp.

283 {
284  const char* hash_key;
285 
286  if( m_hash_key.size() )
287  {
288  // a special case like EDA_LIST_DIALOG, which has multiple uses.
289  hash_key = m_hash_key.c_str();
290  }
291  else
292  {
293  hash_key = typeid(*this).name();
294  }
295 
296  RECT_MAP::iterator it = class_map.find( hash_key );
297 
298  if( it == class_map.end() )
299  return;
300 
301  EDA_RECT rect = it->second;
302  rect.SetSize( 0, 0 );
303  class_map[ hash_key ] = rect;
304 }
std::string m_hash_key
Definition: dialog_shim.h:200
static RECT_MAP class_map
void SetSize(const wxSize &size)
Definition: eda_rect.h:139
Handle the component boundary box.
Definition: eda_rect.h:42

References class_map, DIALOG_SHIM::m_hash_key, and EDA_RECT::SetSize().

Referenced by DIALOG_LIB_SYMBOL_PROPERTIES::DIALOG_LIB_SYMBOL_PROPERTIES().

◆ SetEditVals()

void DIALOG_COLOR_PICKER::SetEditVals ( CHANGED_COLOR  aChanged,
bool  aCheckTransparency 
)
private

Definition at line 471 of file dialog_color_picker.cpp.

472 {
473  if( aCheckTransparency )
474  {
475  // If they've changed the color, they probably don't want it to remain 100% transparent,
476  // and it looks like a bug when changing the color has no effect.
477  if( m_newColor4D.a == 0.0 )
478  m_newColor4D.a = 1.0;
479  }
480 
482 
483  if( aChanged == RED_CHANGED || aChanged == GREEN_CHANGED || aChanged == BLUE_CHANGED )
484  m_newColor4D.ToHSV( m_hue, m_sat, m_val, true );
485 
486  if( aChanged != RED_CHANGED )
487  m_spinCtrlRed->SetValue( normalizeToInt( m_newColor4D.r ) );
488 
489  if( aChanged != GREEN_CHANGED )
491 
492  if( aChanged != BLUE_CHANGED )
494 
495  if( aChanged != HUE_CHANGED )
496  m_spinCtrlHue->SetValue( (int)m_hue );
497 
498  if( aChanged != SAT_CHANGED )
499  m_spinCtrlSaturation->SetValue( m_sat * 255 );
500 
501  if( aChanged != VAL_CHANGED )
502  m_sliderBrightness->SetValue(normalizeToInt( m_val ) );
503 
504  if( aChanged != HEX_CHANGED )
505  m_colorValue->ChangeValue( m_newColor4D.ToWxString( wxC2S_CSS_SYNTAX ) );
506 }
double m_hue
the current hue, in degrees (0 ... 360)
double m_sat
the current saturation (0 ... 1.0)
void ToHSV(double &aOutHue, double &aOutSaturation, double &aOutValue, bool aAlwaysDefineHue=false) const
Convert current color (stored in RGB) to HSV format.
Definition: color4d.cpp:293
int normalizeToInt(double aValue, int aValMax=255)
double g
Green component.
Definition: color4d.h:359
KIGFX::COLOR4D m_newColor4D
the current color4d
double b
Blue component.
Definition: color4d.h:360
double a
Alpha component.
Definition: color4d.h:361
#define ALPHA_MAX
double m_val
the current value (0 ... 1.0)
double r
Red component.
Definition: color4d.h:358

References KIGFX::COLOR4D::a, ALPHA_MAX, KIGFX::COLOR4D::b, BLUE_CHANGED, KIGFX::COLOR4D::g, GREEN_CHANGED, HEX_CHANGED, HUE_CHANGED, DIALOG_COLOR_PICKER_BASE::m_colorValue, m_hue, m_newColor4D, m_sat, DIALOG_COLOR_PICKER_BASE::m_sliderBrightness, DIALOG_COLOR_PICKER_BASE::m_sliderTransparency, DIALOG_COLOR_PICKER_BASE::m_spinCtrlBlue, DIALOG_COLOR_PICKER_BASE::m_spinCtrlGreen, DIALOG_COLOR_PICKER_BASE::m_spinCtrlHue, DIALOG_COLOR_PICKER_BASE::m_spinCtrlRed, DIALOG_COLOR_PICKER_BASE::m_spinCtrlSaturation, m_val, normalizeToInt(), KIGFX::COLOR4D::r, RED_CHANGED, SAT_CHANGED, KIGFX::COLOR4D::ToHSV(), and VAL_CHANGED.

Referenced by buttColorClick(), OnChangeBrightness(), OnChangeEditBlue(), OnChangeEditGreen(), OnChangeEditHue(), OnChangeEditRed(), OnChangeEditSat(), OnColorValueText(), OnResetButton(), onRGBMouseDrag(), setHSvaluesFromCursor(), and TransferDataToWindow().

◆ setHSvaluesFromCursor()

bool DIALOG_COLOR_PICKER::setHSvaluesFromCursor ( wxPoint  aMouseCursor)
private

Manage the Hue and Saturation settings when the mouse cursor is at aMouseCursor.

Parameters
aMouseCursoris the mouse cursor position on the HSV bitmap
Returns
true if the Hue and Saturation can be set from aMouseCursor, if Saturation value computed from aMouseCursor is <= 1.0, and false if aMouseCursor is outside this area.Event handler for defined color buttons

Definition at line 671 of file dialog_color_picker.cpp.

672 {
673  wxPoint mousePos = aMouseCursor;
674  wxSize bmsize = m_bitmapHSV->GetSize();
675  int half_size = std::min( bmsize.x, bmsize.y )/2;
676  // Make the cursor position relative to the m_bitmapHSV wxBitmap center
677  mousePos.x -= half_size;
678  mousePos.y -= half_size;
679  mousePos.y = -mousePos.y; // Use the bottom to top vertical axis
680 
681  // The HS cursor position is restricted to a circle of radius half_size
682  double dist_from_centre = hypot( (double)mousePos.x, (double)mousePos.y );
683 
684  if( dist_from_centre > half_size )
685  // Saturation cannot be calculated:
686  return false;
687 
688  m_cursorBitmapHSV = mousePos;
689 
690  // Set saturation and hue from new cursor position:
691  half_size -= m_cursorsSize/2; // the actual half_size of the palette area
692  m_sat = dist_from_centre / half_size;
693 
694  if( m_sat > 1.0 )
695  m_sat = 1.0;
696 
697  m_hue = atan2( mousePos.y, mousePos.x ) / M_PI * 180.0;
698 
699  if( m_hue < 0 )
700  m_hue += 360.0;
701 
703  SetEditVals( ALL_CHANGED, true );
704 
705  return true;
706 }
double m_hue
the current hue, in degrees (0 ... 360)
double m_sat
the current saturation (0 ... 1.0)
KIGFX::COLOR4D m_newColor4D
the current color4d
wxPoint m_cursorBitmapHSV
the cursor on the HSV bitmap palette.
void SetEditVals(CHANGED_COLOR aChanged, bool aCheckTransparency)
wxBitmap * m_bitmapHSV
the basic HUV palette
void FromHSV(double aInH, double aInS, double aInV)
Changes currently used color to the one given by hue, saturation and value parameters.
Definition: color4d.cpp:346
double m_val
the current value (0 ... 1.0)

References ALL_CHANGED, KIGFX::COLOR4D::FromHSV(), m_bitmapHSV, m_cursorBitmapHSV, m_cursorsSize, m_hue, m_newColor4D, m_sat, m_val, and SetEditVals().

Referenced by onHSVMouseClick(), and onHSVMouseDrag().

◆ SetInitialFocus()

void DIALOG_SHIM::SetInitialFocus ( wxWindow *  aWindow)
inlineinherited

Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown.

Definition at line 98 of file dialog_shim.h.

99  {
100  m_initialFocusTarget = aWindow;
101  }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:210

References DIALOG_SHIM::m_initialFocusTarget.

Referenced by DIALOG_BOM::DIALOG_BOM(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL(), DIALOG_CONFIGURE_PATHS::DIALOG_CONFIGURE_PATHS(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FIND::DIALOG_FIND(), DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR(), DIALOG_FP_PLUGIN_OPTIONS::DIALOG_FP_PLUGIN_OPTIONS(), DIALOG_GRAPHIC_ITEM_PROPERTIES::DIALOG_GRAPHIC_ITEM_PROPERTIES(), DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), DIALOG_GROUP_PROPERTIES::DIALOG_GROUP_PROPERTIES(), DIALOG_IMPORT_GFX::DIALOG_IMPORT_GFX(), DIALOG_INSPECTION_REPORTER::DIALOG_INSPECTION_REPORTER(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_SCH_FIND::DIALOG_SCH_FIND(), DIALOG_SHEET_PIN_PROPERTIES::DIALOG_SHEET_PIN_PROPERTIES(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), EDA_VIEW_SWITCHER::EDA_VIEW_SWITCHER(), HK_PROMPT_DIALOG::HK_PROMPT_DIALOG(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchAllClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchIDClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchRefClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchSelectedClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchValueClicked(), PANEL_FP_LIB_TABLE::PANEL_FP_LIB_TABLE(), PANEL_SYM_LIB_TABLE::PANEL_SYM_LIB_TABLE(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), SYMBOL_EDIT_FRAME::savePartAs(), DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataToWindow(), DIALOG_RULE_AREA_PROPERTIES::TransferDataToWindow(), DIALOG_COPPER_ZONE::TransferDataToWindow(), and WX_TEXT_ENTRY_DIALOG::WX_TEXT_ENTRY_DIALOG().

◆ SetKiway()

void KIWAY_HOLDER::SetKiway ( wxWindow *  aDest,
KIWAY aKiway 
)
inherited

It is only used for debugging, since "this" is not a wxWindow*.

"this" is a KIWAY_HOLDER mix-in.

Parameters
aDestis the recipient of aKiway pointer.
aKiwayis often from a parent window or from KIFACE::CreateWindow().

Definition at line 42 of file kiway_holder.cpp.

43 {
44 #if defined(DEBUG)
45  // offer a trap point for debugging most any window
46  wxASSERT( aDest );
47  if( !strcmp( typeid(aDest).name(), "DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB" ) )
48  {
49  int breakhere=1;
50  (void) breakhere;
51  }
52 #endif
53 
54  (void) aDest;
55 
56  m_kiway = aKiway;
57 }
KIWAY * m_kiway
Definition: kiway_holder.h:78
const char * name
Definition: DXF_plotter.cpp:59

References KIWAY_HOLDER::m_kiway, and name.

Referenced by BM2CMP_FRAME::BM2CMP_FRAME(), PCB::IFACE::CreateWindow(), InvokePcbLibTableEditor(), InvokeSchEditSymbolLibTable(), PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME(), and SIM_PLOT_FRAME::SIM_PLOT_FRAME().

◆ SetPosition()

void DIALOG_SHIM::SetPosition ( const wxPoint &  aNewPosition)
inherited

Force the position of the dialog to a new position.

Parameters
aNewPositionis the new forced position

Definition at line 187 of file dialog_shim.cpp.

188 {
189  wxDialog::SetPosition( aNewPosition );
190 
191  // Now update the stored position:
192  const char* hash_key;
193 
194  if( m_hash_key.size() )
195  {
196  // a special case like EDA_LIST_DIALOG, which has multiple uses.
197  hash_key = m_hash_key.c_str();
198  }
199  else
200  {
201  hash_key = typeid(*this).name();
202  }
203 
204  RECT_MAP::iterator it = class_map.find( hash_key );
205 
206  if( it == class_map.end() )
207  return;
208 
209  EDA_RECT rect = it->second;
210  rect.SetOrigin( aNewPosition );
211 
212  class_map[ hash_key ] = rect;
213 }
void SetPosition(wxString aStr, const wxString &aDefaultMeasurementUnit, int *aX, int *aY, const wxString &aActualConversion)
std::string m_hash_key
Definition: dialog_shim.h:200
void SetOrigin(const wxPoint &pos)
Definition: eda_rect.h:126
static RECT_MAP class_map
Handle the component boundary box.
Definition: eda_rect.h:42

References class_map, DIALOG_SHIM::m_hash_key, EDA_RECT::SetOrigin(), and PCAD2KICAD::SetPosition().

Referenced by DIALOG_SCH_FIND::DIALOG_SCH_FIND(), and PCB_BASE_FRAME::SelectOneLayer().

◆ setSizeInDU()

void DIALOG_SHIM::setSizeInDU ( int  x,
int  y 
)
protectedinherited

Set the dialog to the given dimensions in "dialog units".

These are units equivalent to 4* the average character width and 8* the average character height, allowing a dialog to be sized in a way that scales it with the system font.

Definition at line 159 of file dialog_shim.cpp.

160 {
161  wxSize sz( x, y );
162  SetSize( ConvertDialogToPixels( sz ) );
163 }

Referenced by DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), HTML_MESSAGE_BOX::HTML_MESSAGE_BOX(), and HTML_MESSAGE_BOX::SetDialogSizeInDU().

◆ Show()

bool DIALOG_SHIM::Show ( bool  show)
overrideinherited

Definition at line 216 of file dialog_shim.cpp.

217 {
218  bool ret;
219  const char* hash_key;
220 
221  if( m_hash_key.size() )
222  {
223  // a special case like EDA_LIST_DIALOG, which has multiple uses.
224  hash_key = m_hash_key.c_str();
225  }
226  else
227  {
228  hash_key = typeid(*this).name();
229  }
230 
231  // Show or hide the window. If hiding, save current position and size.
232  // If showing, use previous position and size.
233  if( show )
234  {
235 #ifndef __WINDOWS__
236  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
237 #endif
238  ret = wxDialog::Show( show );
239 
240  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
241  EDA_RECT savedDialogRect = class_map[ hash_key ];
242 
243  if( savedDialogRect.GetSize().x != 0 && savedDialogRect.GetSize().y != 0 )
244  {
245  if( m_useCalculatedSize )
246  {
247  SetSize( savedDialogRect.GetPosition().x, savedDialogRect.GetPosition().y,
248  wxDialog::GetSize().x, wxDialog::GetSize().y, 0 );
249  }
250  else
251  {
252  SetSize( savedDialogRect.GetPosition().x, savedDialogRect.GetPosition().y,
253  std::max( wxDialog::GetSize().x, savedDialogRect.GetSize().x ),
254  std::max( wxDialog::GetSize().y, savedDialogRect.GetSize().y ),
255  0 );
256  }
257  }
258 
259  // Be sure that the dialog appears in a visible area
260  // (the dialog position might have been stored at the time when it was
261  // shown on another display)
262  if( wxDisplay::GetFromWindow( this ) == wxNOT_FOUND )
263  Centre();
264  }
265  else
266  {
267  // Save the dialog's position & size before hiding, using classname as key
268  class_map[ hash_key ] = EDA_RECT( wxDialog::GetPosition(), wxDialog::GetSize() );
269 
270 #ifdef __WXMAC__
271  if ( m_eventLoop )
272  m_eventLoop->Exit( GetReturnCode() ); // Needed for APP-MODAL dlgs on OSX
273 #endif
274 
275  ret = wxDialog::Show( show );
276  }
277 
278  return ret;
279 }
std::string m_hash_key
Definition: dialog_shim.h:200
static RECT_MAP class_map
const wxPoint GetPosition() const
Definition: eda_rect.h:107
Handle the component boundary box.
Definition: eda_rect.h:42
bool m_useCalculatedSize
Definition: dialog_shim.h:204
const wxSize GetSize() const
Definition: eda_rect.h:96

References class_map, EDA_RECT::GetPosition(), EDA_RECT::GetSize(), DIALOG_SHIM::m_hash_key, and DIALOG_SHIM::m_useCalculatedSize.

Referenced by FOOTPRINT_EDITOR_CONTROL::CheckFootprint(), DIALOG_SHIM::EndQuasiModal(), GROUP_TOOL::GroupProperties(), EE_INSPECTION_TOOL::NextMarker(), DRC_TOOL::NextMarker(), SCH_EDIT_FRAME::OnAnnotate(), DIALOG_DRC::OnDRCItemDClick(), DIALOG_ERC::OnERCItemDClick(), DIALOG_CLEANUP_GRAPHICS::OnLeftDClickItem(), DIALOG_CLEANUP_TRACKS_AND_VIAS::OnLeftDClickItem(), DIALOG_FOOTPRINT_CHECKER::OnLeftDClickItem(), GROUP_TOOL::PickNewMember(), POSITION_RELATIVE_TOOL::PositionRelative(), EE_INSPECTION_TOOL::PrevMarker(), DRC_TOOL::PrevMarker(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), EDA_VIEW_SWITCHER::Show(), DIALOG_PAD_PROPERTIES::Show(), DRC_TOOL::ShowDRCDialog(), EE_INSPECTION_TOOL::ShowERCDialog(), SCH_EDIT_FRAME::ShowFindReplaceDialog(), HTML_MESSAGE_BOX::ShowModeless(), DIALOG_SHIM::ShowQuasiModal(), DIALOG_POSITION_RELATIVE::UpdateAnchor(), and SCH_EDIT_FRAME::UpdateHierarchyNavigator().

◆ ShowQuasiModal()

int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 395 of file dialog_shim.cpp.

396 {
397  // This is an exception safe way to zero a pointer before returning.
398  // Yes, even though DismissModal() clears this first normally, this is
399  // here in case there's an exception before the dialog is dismissed.
400  struct NULLER
401  {
402  void*& m_what;
403  NULLER( void*& aPtr ) : m_what( aPtr ) {}
404  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
405  } clear_this( (void*&) m_qmodal_loop );
406 
407  // release the mouse if it's currently captured as the window having it
408  // will be disabled when this dialog is shown -- but will still keep the
409  // capture making it impossible to do anything in the modal dialog itself
410  wxWindow* win = wxWindow::GetCapture();
411  if( win )
412  win->ReleaseMouse();
413 
414  // Get the optimal parent
415  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
416 
417  wxASSERT_MSG( !m_qmodal_parent_disabler,
418  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
419 
420  // quasi-modal: disable only my "optimal" parent
422 
423  // Apple in its infinite wisdom will raise a disabled window before even passing
424  // us the event, so we have no way to stop it. Instead, we must set an order on
425  // the windows so that the quasi-modal will be pushed in front of the disabled
426  // window when it is raised.
428 
429  Show( true );
430 
431  m_qmodal_showing = true;
432 
433  WX_EVENT_LOOP event_loop;
434 
435  m_qmodal_loop = &event_loop;
436 
437  event_loop.Run();
438 
439  m_qmodal_showing = false;
440 
441  return GetReturnCode();
442 }
bool m_qmodal_showing
Definition: dialog_shim.h:214
#define WX_EVENT_LOOP
Definition: kiway_player.h:43
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:212
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:215
Toggle a window's "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:42
void ReparentQuasiModal(wxNonOwnedWindow *aWindow)
Move a window's parent to be the top-level window and force the window to be on top.
Definition: gtk/ui.cpp:62

References DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, DIALOG_SHIM::m_qmodal_showing, KIPLATFORM::UI::ReparentQuasiModal(), DIALOG_SHIM::Show(), and WX_EVENT_LOOP.

Referenced by SCH_EDIT_TOOL::ChangeSymbols(), S3D::Configure3DPaths(), COMMON_CONTROL::ConfigurePaths(), MICROWAVE_TOOL::createFootprint(), MICROWAVE_TOOL::createMicrowaveInductor(), SCH_DRAWING_TOOLS::createNewText(), SYMBOL_EDITOR_EDIT_TOOL::editFieldProperties(), SCH_EDIT_TOOL::editFieldText(), SCH_EDITOR_CONTROL::EditSymbolFields(), SYMBOL_EDITOR_EDIT_TOOL::editSymbolProperties(), GLOBAL_EDIT_TOOL::EditTracksAndVias(), GLOBAL_EDIT_TOOL::ExchangeFootprints(), InvokeCopperZonesEditor(), InvokeDialogCreateBOM(), InvokeDialogEditComponentsLibId(), InvokeDialogRescueEach(), InvokeNonCopperZonesEditor(), SYMBOL_VIEWER_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_TOOL::Properties(), EDIT_TOOL::Properties(), SCH_EDITOR_CONTROL::RemapSymbols(), S3D::Select3DModel(), PCB_BASE_FRAME::SelectFootprintFromLibTree(), PCB_EDIT_FRAME::ShowBoardSetupDialog(), PCB_EDIT_FRAME::ShowDimensionPropertiesDialog(), PCB_EDIT_FRAME::ShowExchangeFootprintsDialog(), PCB_EDIT_FRAME::ShowFootprintPropertiesDialog(), PCB_BASE_EDIT_FRAME::ShowGraphicItemPropertiesDialog(), PCB_BASE_FRAME::ShowPadPropertiesDialog(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), and PCB_BASE_EDIT_FRAME::ShowTextPropertiesDialog().

◆ TransferDataToWindow()

bool DIALOG_COLOR_PICKER::TransferDataToWindow ( )
overrideprivate

Definition at line 128 of file dialog_color_picker.cpp.

129 {
130  // Draw all bitmaps, with colors according to the color 4D
132  SetEditVals( ALL_CHANGED, false );
133  drawAll();
134 
135  // Configure the spin control sizes
141 
142  m_notebook->GetPage( 0 )->Layout();
143  m_notebook->GetPage( 1 )->Layout();
144 
146 
147  return true;
148 }
void configureSpinCtrl(wxSpinCtrl *aCtrl)
void SetEditVals(CHANGED_COLOR aChanged, bool aCheckTransparency)
KIGFX::COLOR4D m_previousColor4D
the initial color4d
void finishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
void updatePreview(wxStaticBitmap *aStaticBitmap, KIGFX::COLOR4D &aColor4D)
Event handler from wxSlider: brightness (value) control.

References ALL_CHANGED, configureSpinCtrl(), drawAll(), DIALOG_SHIM::finishDialogSettings(), DIALOG_COLOR_PICKER_BASE::m_notebook, DIALOG_COLOR_PICKER_BASE::m_OldColorRect, m_previousColor4D, DIALOG_COLOR_PICKER_BASE::m_spinCtrlBlue, DIALOG_COLOR_PICKER_BASE::m_spinCtrlGreen, DIALOG_COLOR_PICKER_BASE::m_spinCtrlHue, DIALOG_COLOR_PICKER_BASE::m_spinCtrlRed, DIALOG_COLOR_PICKER_BASE::m_spinCtrlSaturation, SetEditVals(), and updatePreview().

◆ updatePreview()

void DIALOG_COLOR_PICKER::updatePreview ( wxStaticBitmap *  aStaticBitmap,
KIGFX::COLOR4D aColor4D 
)
private

Event handler from wxSlider: brightness (value) control.

Definition at line 119 of file dialog_color_picker.cpp.

120 {
121  wxBitmap newBm = COLOR_SWATCH::MakeBitmap( aColor4D, COLOR4D::WHITE, aStaticBitmap->GetSize(),
122  ConvertDialogToPixels( CHECKERBOARD_SIZE_DU ),
123  aStaticBitmap->GetParent()->GetBackgroundColour() );
124  aStaticBitmap->SetBitmap( newBm );
125 }
static wxBitmap MakeBitmap(KIGFX::COLOR4D aColor, KIGFX::COLOR4D aBackground, wxSize aSize, wxSize aCheckerboardSize, KIGFX::COLOR4D aCheckerboardBackground)
Make a simple color swatch bitmap.
Definition: color4d.h:48
static const wxSize CHECKERBOARD_SIZE_DU(3, 3)

References CHECKERBOARD_SIZE_DU(), COLOR_SWATCH::MakeBitmap(), and WHITE.

Referenced by drawAll(), OnChangeAlpha(), and TransferDataToWindow().

◆ vertPixelsFromDU()

int DIALOG_SHIM::vertPixelsFromDU ( int  y) const
protectedinherited

Convert an integer number of dialog units to pixels, vertically.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 173 of file dialog_shim.cpp.

174 {
175  wxSize sz( 0, y );
176  return ConvertDialogToPixels( sz ).y;
177 }

Referenced by DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL().

Member Data Documentation

◆ m_allowMouseEvents

bool DIALOG_COLOR_PICKER::m_allowMouseEvents
private

◆ m_allowOpacityCtrl

bool DIALOG_COLOR_PICKER::m_allowOpacityCtrl
private

true to show the widget, false to keep alpha channel = 1.0

Definition at line 107 of file dialog_color_picker.h.

Referenced by DIALOG_COLOR_PICKER().

◆ m_bitmapHSV

wxBitmap* DIALOG_COLOR_PICKER::m_bitmapHSV
private

◆ m_bitmapRGB

wxBitmap* DIALOG_COLOR_PICKER::m_bitmapRGB
private

◆ m_Color4DList

std::vector<KIGFX::COLOR4D> DIALOG_COLOR_PICKER::m_Color4DList
private

the list of color4d ordered by button ID, for predefined colors

Definition at line 114 of file dialog_color_picker.h.

Referenced by buttColorClick(), and initDefinedColors().

◆ m_colorSwatches

std::vector<wxStaticBitmap*> DIALOG_COLOR_PICKER::m_colorSwatches
private

list of defined colors buttons

Definition at line 130 of file dialog_color_picker.h.

Referenced by initDefinedColors(), and ~DIALOG_COLOR_PICKER().

◆ m_colorValue

wxTextCtrl* DIALOG_COLOR_PICKER_BASE::m_colorValue
protectedinherited

◆ m_cursorBitmapBlue

wxPoint DIALOG_COLOR_PICKER::m_cursorBitmapBlue
private

the blue cursor on the RGB bitmap palette.

Definition at line 119 of file dialog_color_picker.h.

Referenced by drawRGBPalette(), onRGBMouseClick(), and onRGBMouseDrag().

◆ m_cursorBitmapGreen

wxPoint DIALOG_COLOR_PICKER::m_cursorBitmapGreen
private

the green cursor on the RGB bitmap palette.

Definition at line 118 of file dialog_color_picker.h.

Referenced by drawRGBPalette(), onRGBMouseClick(), and onRGBMouseDrag().

◆ m_cursorBitmapHSV

wxPoint DIALOG_COLOR_PICKER::m_cursorBitmapHSV
private

the cursor on the HSV bitmap palette.

Definition at line 120 of file dialog_color_picker.h.

Referenced by drawHSVPalette(), and setHSvaluesFromCursor().

◆ m_cursorBitmapRed

wxPoint DIALOG_COLOR_PICKER::m_cursorBitmapRed
private

the red cursor on the RGB bitmap palette.

Definition at line 117 of file dialog_color_picker.h.

Referenced by drawRGBPalette(), onRGBMouseClick(), and onRGBMouseDrag().

◆ m_cursorsSize

int DIALOG_COLOR_PICKER::m_cursorsSize
private

◆ m_defaultColor

KIGFX::COLOR4D DIALOG_COLOR_PICKER::m_defaultColor
private

The default color4d.

Definition at line 111 of file dialog_color_picker.h.

Referenced by DIALOG_COLOR_PICKER(), and OnResetButton().

◆ m_fgridColor

wxFlexGridSizer* DIALOG_COLOR_PICKER_BASE::m_fgridColor
protectedinherited

◆ m_firstPaintEvent

bool DIALOG_SHIM::m_firstPaintEvent
protectedinherited

Definition at line 209 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint().

◆ m_hash_key

◆ m_HsvBitmap

wxStaticBitmap* DIALOG_COLOR_PICKER_BASE::m_HsvBitmap
protectedinherited

◆ m_hue

double DIALOG_COLOR_PICKER::m_hue
private

◆ m_initialFocusTarget

wxWindow* DIALOG_SHIM::m_initialFocusTarget
protectedinherited

Definition at line 210 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint(), and DIALOG_SHIM::SetInitialFocus().

◆ m_newColor4D

◆ m_NewColorRect

wxStaticBitmap* DIALOG_COLOR_PICKER_BASE::m_NewColorRect
protectedinherited

◆ m_notebook

wxNotebook* DIALOG_COLOR_PICKER_BASE::m_notebook
protectedinherited

◆ m_OldColorRect

wxStaticBitmap* DIALOG_COLOR_PICKER_BASE::m_OldColorRect
protectedinherited

◆ m_opacityLabel

wxStaticText* DIALOG_COLOR_PICKER_BASE::m_opacityLabel
protectedinherited

◆ m_panelDefinedColors

wxPanel* DIALOG_COLOR_PICKER_BASE::m_panelDefinedColors
protectedinherited

◆ m_panelFreeColors

wxPanel* DIALOG_COLOR_PICKER_BASE::m_panelFreeColors
protectedinherited

◆ m_parentFrame

EDA_BASE_FRAME* DIALOG_SHIM::m_parentFrame
protectedinherited

Definition at line 217 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnCharHook().

◆ m_previousColor4D

KIGFX::COLOR4D DIALOG_COLOR_PICKER::m_previousColor4D
private

the initial color4d

Definition at line 109 of file dialog_color_picker.h.

Referenced by DIALOG_COLOR_PICKER(), and TransferDataToWindow().

◆ m_qmodal_loop

WX_EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

Definition at line 212 of file dialog_shim.h.

Referenced by DIALOG_SHIM::EndQuasiModal(), and DIALOG_SHIM::ShowQuasiModal().

◆ m_qmodal_parent_disabler

WDO_ENABLE_DISABLE* DIALOG_SHIM::m_qmodal_parent_disabler
protectedinherited

◆ m_qmodal_showing

bool DIALOG_SHIM::m_qmodal_showing
protectedinherited

Definition at line 214 of file dialog_shim.h.

Referenced by DIALOG_SHIM::IsQuasiModal(), and DIALOG_SHIM::ShowQuasiModal().

◆ m_resetToDefault

wxButton* DIALOG_COLOR_PICKER_BASE::m_resetToDefault
protectedinherited

◆ m_RgbBitmap

wxStaticBitmap* DIALOG_COLOR_PICKER_BASE::m_RgbBitmap
protectedinherited

◆ m_sat

double DIALOG_COLOR_PICKER::m_sat
private

◆ m_sdbSizer

wxStdDialogButtonSizer* DIALOG_COLOR_PICKER_BASE::m_sdbSizer
protectedinherited

◆ m_sdbSizerCancel

wxButton* DIALOG_COLOR_PICKER_BASE::m_sdbSizerCancel
protectedinherited

◆ m_sdbSizerOK

wxButton* DIALOG_COLOR_PICKER_BASE::m_sdbSizerOK
protectedinherited

◆ m_selectedCursor

wxPoint* DIALOG_COLOR_PICKER::m_selectedCursor
private

the ref cursor to the selected cursor, if any, or null.

Definition at line 121 of file dialog_color_picker.h.

Referenced by DIALOG_COLOR_PICKER(), onRGBMouseClick(), and onRGBMouseDrag().

◆ m_SizerDefinedColors

wxBoxSizer* DIALOG_COLOR_PICKER_BASE::m_SizerDefinedColors
protectedinherited

◆ m_SizerTransparency

wxBoxSizer* DIALOG_COLOR_PICKER_BASE::m_SizerTransparency
protectedinherited

◆ m_sliderBrightness

wxSlider* DIALOG_COLOR_PICKER_BASE::m_sliderBrightness
protectedinherited

◆ m_sliderTransparency

wxSlider* DIALOG_COLOR_PICKER_BASE::m_sliderTransparency
protectedinherited

◆ m_spinCtrlBlue

wxSpinCtrl* DIALOG_COLOR_PICKER_BASE::m_spinCtrlBlue
protectedinherited

◆ m_spinCtrlGreen

wxSpinCtrl* DIALOG_COLOR_PICKER_BASE::m_spinCtrlGreen
protectedinherited

◆ m_spinCtrlHue

wxSpinCtrl* DIALOG_COLOR_PICKER_BASE::m_spinCtrlHue
protectedinherited

◆ m_spinCtrlRed

wxSpinCtrl* DIALOG_COLOR_PICKER_BASE::m_spinCtrlRed
protectedinherited

◆ m_spinCtrlSaturation

wxSpinCtrl* DIALOG_COLOR_PICKER_BASE::m_spinCtrlSaturation
protectedinherited

◆ m_staticline

wxStaticLine* DIALOG_COLOR_PICKER_BASE::m_staticline
protectedinherited

◆ m_staticTextB

wxStaticText* DIALOG_COLOR_PICKER_BASE::m_staticTextB
protectedinherited

◆ m_staticTextBright

wxStaticText* DIALOG_COLOR_PICKER_BASE::m_staticTextBright
protectedinherited

◆ m_staticTextG

wxStaticText* DIALOG_COLOR_PICKER_BASE::m_staticTextG
protectedinherited

◆ m_staticTextHue

wxStaticText* DIALOG_COLOR_PICKER_BASE::m_staticTextHue
protectedinherited

◆ m_staticTextOldColor

wxStaticText* DIALOG_COLOR_PICKER_BASE::m_staticTextOldColor
protectedinherited

◆ m_staticTextR

wxStaticText* DIALOG_COLOR_PICKER_BASE::m_staticTextR
protectedinherited

◆ m_staticTextSat

wxStaticText* DIALOG_COLOR_PICKER_BASE::m_staticTextSat
protectedinherited

◆ m_tabOrder

◆ m_units

◆ m_useCalculatedSize

bool DIALOG_SHIM::m_useCalculatedSize
protectedinherited

◆ m_val

double DIALOG_COLOR_PICKER::m_val
private

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