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, 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 ()
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
void OnPaint (wxPaintEvent &event)
 
EDA_UNITS GetUserUnits () const
 
HOLDER_TYPE GetType ()
 
KIWAYKiway () const
 Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in. More...
 
PROJECTPrj () const
 Function Prj returns a reference to the PROJECT "associated with" this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 Function SetKiway. More...
 

Static Public Member Functions

static bool IsCtrl (int aChar, const wxKeyEvent &e)
 
static bool IsShiftCtrl (int aChar, const wxKeyEvent &e)
 
static void FixOSXCancelButtonIssue (wxWindow *aWindow)
 

Static Public Attributes

static int m_ActivePage = 0
 the active notebook page, stored during a session More...
 

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)
 Convert an integer number of dialog units to pixels, horizontally. More...
 
int VertPixelsFromDU (int y)
 Convert an integer number of dialog units to pixels, vertically. More...
 
void ResetSize ()
 Clear the existing dialog size and position. More...
 

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_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 drawRGBCursors ()
 
void setIconColor (wxStaticBitmap *aStaticBitmap, KIGFX::COLOR4D &aColor4D)
 

repaint a static bitmap with the aColor4D color

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
 
void onRGBMouseClick (wxMouseEvent &event) override
 

mouse handlers, when clicking on a palette bitmap

More...
 
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 (wxCommandEvent &event)
 

Event handler for defined color buttons

More...
 
bool TransferDataToWindow () override
 

called when creating the dialog

More...
 
void initDefinedColors (CUSTOM_COLORS_LIST *aPredefinedColors)
 creates the bitmap buttons for each defined colors if aPredefinedColors is nullptr, a internal predefined list will be used 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 inital 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...
 
wxPointm_selectedCursor
 the ref cursor to the selected curor, 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< wxBitmapButton * > m_buttonsColor
 list of defined colors buttons More...
 

Detailed Description

Definition at line 68 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,
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
aAllowOpacityControl= true 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

Definition at line 38 of file dialog_color_picker.cpp.

41  : DIALOG_COLOR_PICKER_BASE( aParent )
42 {
43  m_allowMouseEvents = false;
44  m_allowOpacityCtrl = aAllowOpacityControl;
45  m_previousColor4D = aCurrentColor;
46  m_newColor4D = aCurrentColor;
47  m_cursorsSize = 8; // Size of square cursors drawn on color bitmaps
48  m_newColor4D.ToHSV( m_hue, m_sat, m_val, true );
49  m_bitmapRGB = nullptr;
50  m_bitmapHSV = nullptr;
51  m_selectedCursor = nullptr;
52  m_defaultColor = aDefaultColor;
53 
54  if( !m_allowOpacityCtrl )
55  {
56  m_SizerTransparency->Show( false );
57  m_previousColor4D.a = 1.0;
58  m_newColor4D.a = 1.0;
59  }
60 
61  if( m_ActivePage >= 0 )
62  m_notebook->SetSelection( (unsigned) m_ActivePage );
63 
64  // Build the defined colors panel:
65  initDefinedColors( aUserColors );
66 
67  // If there is no default color, don't give the option to reset to default
68  if( aDefaultColor == KIGFX::COLOR4D::UNSPECIFIED )
69  m_resetToDefault->Hide();
70 
71  m_sdbSizerOK->SetDefault();
72 }
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
Function ToHSV() Converts 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)
KIGFX::COLOR4D m_newColor4D
the current color4d
static const COLOR4D UNSPECIFIED
For legacy support; used as a value to indicate color hasn't been set yet.
Definition: color4d.h:372
double a
Alpha component.
Definition: color4d.h:369
KIGFX::COLOR4D m_previousColor4D
the inital color4d
static int m_ActivePage
the active notebook page, stored during a session
wxBitmap * m_bitmapHSV
the basic HUV palette
double m_val
the current value (0 ... 1.0)
KIGFX::COLOR4D m_defaultColor
The default color4d.
void initDefinedColors(CUSTOM_COLORS_LIST *aPredefinedColors)
creates the bitmap buttons for each defined colors if aPredefinedColors is nullptr,...
wxBitmap * m_bitmapRGB
the basic RGB palette
wxPoint * m_selectedCursor
the ref cursor to the selected curor, if any, or null.

References KIGFX::COLOR4D::a, initDefinedColors(), m_ActivePage, m_allowMouseEvents, m_allowOpacityCtrl, m_bitmapHSV, m_bitmapRGB, 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, KIGFX::COLOR4D::ToHSV(), and KIGFX::COLOR4D::UNSPECIFIED.

◆ ~DIALOG_COLOR_PICKER()

DIALOG_COLOR_PICKER::~DIALOG_COLOR_PICKER ( )

Definition at line 77 of file dialog_color_picker.cpp.

78 {
79  delete m_bitmapRGB;
80  delete m_bitmapHSV;
81 
82  m_ActivePage = m_notebook->GetSelection();
83 
84  for( auto button : m_buttonsColor )
85  button->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED,
86  wxCommandEventHandler( DIALOG_COLOR_PICKER::buttColorClick ), NULL, this );
87 }
#define NULL
static int m_ActivePage
the active notebook page, stored during a session
wxBitmap * m_bitmapHSV
the basic HUV palette
void buttColorClick(wxCommandEvent &event)
Event handler for defined color buttons
std::vector< wxBitmapButton * > m_buttonsColor
list of defined colors buttons
wxBitmap * m_bitmapRGB
the basic RGB palette

References buttColorClick(), m_ActivePage, m_bitmapHSV, m_bitmapRGB, m_buttonsColor, DIALOG_COLOR_PICKER_BASE::m_notebook, and NULL.

Member Function Documentation

◆ buttColorClick()

void DIALOG_COLOR_PICKER::buttColorClick ( wxCommandEvent &  event)
private

Event handler for defined color buttons

Definition at line 584 of file dialog_color_picker.cpp.

585 {
586  int id = event.GetId();
587  KIGFX::COLOR4D color( m_Color4DList[id - ID_COLOR_BLACK] );//EDA_COLOR_T( id - ID_COLOR_BLACK ) );
588  m_newColor4D.r = color.r;
589  m_newColor4D.g = color.g;
590  m_newColor4D.b = color.b;
591  m_newColor4D.a = color.a;
592 
593  m_newColor4D.ToHSV( m_hue, m_sat, m_val, true );
594  SetEditVals( ALL_CHANGED, false );
595 
596  drawAll();
597 
598  event.Skip();
599 }
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
Function ToHSV() Converts 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:61
double g
Green component.
Definition: color4d.h:367
KIGFX::COLOR4D m_newColor4D
the current color4d
double b
Blue component.
Definition: color4d.h:368
void SetEditVals(CHANGED_COLOR aChanged, bool aCheckTransparency)
double a
Alpha component.
Definition: color4d.h:369
double m_val
the current value (0 ... 1.0)
double r
Red component.
Definition: color4d.h:366
#define ID_COLOR_BLACK
COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:99

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 366 of file dialog_color_picker.cpp.

367 {
368  wxMemoryDC bitmapDC;
369  wxSize bmsize = m_HsvBitmap->GetSize();
370  int half_size = std::min( bmsize.x, bmsize.y )/2;
371  delete m_bitmapHSV;
372  m_bitmapHSV = new wxBitmap( bmsize );
373  bitmapDC.SelectObject( *m_bitmapHSV );
374  wxPen pen;
375 
376  // clear background (set the window bd color)
377  wxBrush bgbrush( GetBackgroundColour() );
378  bitmapDC.SetBackground( bgbrush );
379  bitmapDC.Clear();
380 
381  // Use Y axis from bottom to top and origin to center
382  bitmapDC.SetAxisOrientation( true, true );
383  bitmapDC.SetDeviceOrigin( half_size, half_size );
384 
385  // Reserve room to draw cursors inside the bitmap
386  half_size -= m_cursorsSize/2;
387 
388  double hue, sat;
390  int sq_radius = half_size*half_size;
391 
392  for( int xx = -half_size; xx < half_size; xx++ )
393  {
394  for( int yy = -half_size; yy < half_size; yy++ )
395  {
396  sat = double(xx*xx + yy*yy) / sq_radius;
397 
398  // sat is <= 1.0
399  // any value > 1.0 is not a valid HSB color:
400  if( sat > 1.0 )
401  continue;
402 
403  // sat is the distance from center
404  sat = sqrt( sat );
405  hue = atan2( (double)yy, (double)xx ) * 180 / M_PI;
406 
407  if( hue < 0.0 )
408  hue += 360.0;
409 
410  color.FromHSV( hue, sat, 1.0 );
411 
412  pen.SetColour( color.ToColour() );
413  bitmapDC.SetPen( pen );
414  bitmapDC.DrawPoint( xx, yy );
415  }
416  }
417 
418  /* Deselect the Tool Bitmap from DC,
419  * in order to delete the MemoryDC safely without deleting the bitmap
420  */
421  bitmapDC.SelectObject( wxNullBitmap );
422 }
int color
Definition: DXF_plotter.cpp:61
wxBitmap * m_bitmapHSV
the basic HUV palette
COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:99

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 282 of file dialog_color_picker.cpp.

283 {
284  wxMemoryDC bitmapDC;
285  wxSize bmsize = m_RgbBitmap->GetSize();
286  int half_size = std::min( bmsize.x, bmsize.y )/2;
287  m_bitmapRGB = new wxBitmap( bmsize );
288  bitmapDC.SelectObject( *m_bitmapRGB );
289  wxPen pen;
290 
291  // clear background (set the window bg color)
292  wxBrush bgbrush( GetBackgroundColour() );
293  bitmapDC.SetBackground( bgbrush );
294  bitmapDC.Clear();
295 
296  // Use Y axis from bottom to top and origin to center
297  bitmapDC.SetAxisOrientation( true, true );
298  bitmapDC.SetDeviceOrigin( half_size, half_size );
299 
300  // Reserve room to draw cursors inside the bitmap
301  half_size -= m_cursorsSize/2;
302 
304 
305  // Red blue area in X Z 3d axis
306  double inc = 1.0 / half_size;
307  #define SLOPE_AXIS 50.0
308  double slope = SLOPE_AXIS/half_size;
309  color.g = 0.0;
310 
311  for( int xx = 0; xx < half_size; xx++ ) // blue axis
312  {
313  color.b = inc * xx;
314 
315  for( int yy = 0; yy < half_size; yy++ ) // Red axis
316  {
317  color.r = inc * yy;
318 
319  pen.SetColour( color.ToColour() );
320  bitmapDC.SetPen( pen );
321  bitmapDC.DrawPoint( xx, yy - (slope*xx) );
322  }
323  }
324 
325  // Red green area in y Z 3d axis
326  color.b = 0.0;
327  for( int xx = 0; xx < half_size; xx++ ) // green axis
328  {
329  color.g = inc * xx;
330 
331  for( int yy = 0; yy < half_size; yy++ ) // Red axis
332  {
333  color.r = inc * yy;
334 
335  pen.SetColour( color.ToColour() );
336  bitmapDC.SetPen( pen );
337  bitmapDC.DrawPoint( -xx, yy - (slope*xx) );
338  }
339  }
340 
341  // Blue green area in x y 3d axis
342  color.r = 0.0;
343  for( int xx = 0; xx < half_size; xx++ ) // green axis
344  {
345  color.g = inc * xx;
346 
347  for( int yy = 0; yy < half_size; yy++ ) // blue axis
348  {
349  color.b = inc * yy;
350 
351  pen.SetColour( color.ToColour() );
352  bitmapDC.SetPen( pen );
353 
354  // Mapping the xx, yy color axis to draw coordinates is more tricky than previously
355  // in DC coordinates:
356  // the blue axis is the (0, 0) to half_size, (-yy - SLOPE_AXIS)
357  // the green axis is the (0, 0) to - half_size, (-yy - SLOPE_AXIS)
358  int drawX = -xx + yy;
359  int drawY = - std::min( xx,yy ) * 0.9;
360  bitmapDC.DrawPoint( drawX, drawY - std::abs( slope*drawX ) );
361  }
362  }
363 }
int color
Definition: DXF_plotter.cpp:61
wxBitmap * m_bitmapRGB
the basic RGB palette
#define SLOPE_AXIS
COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:99

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 567 of file dialog_color_picker.cpp.

568 {
569  m_NewColorRect->Freeze(); // Avoid flicker
570  m_HsvBitmap->Freeze();
571  m_RgbBitmap->Freeze();
573  drawHSVPalette();
574  drawRGBPalette();
575  m_NewColorRect->Thaw();
576  m_HsvBitmap->Thaw();
577  m_RgbBitmap->Thaw();
578  m_NewColorRect->Refresh();
579  m_HsvBitmap->Refresh();
580  m_RgbBitmap->Refresh();
581 }
void drawRGBPalette()
draws the RVB color space
void drawHSVPalette()
draws the HSV color circle
void setIconColor(wxStaticBitmap *aStaticBitmap, KIGFX::COLOR4D &aColor4D)
repaint a static bitmap with the aColor4D color
KIGFX::COLOR4D m_newColor4D
the current color4d

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

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 489 of file dialog_color_picker.cpp.

490 {
491  if( !m_bitmapHSV || m_bitmapHSV->GetSize() != m_HsvBitmap->GetSize() )
492  createHSVBitmap();
493 
494  wxMemoryDC bitmapDC;
495  wxSize bmsize = m_bitmapHSV->GetSize();
496  int half_size = std::min( bmsize.x, bmsize.y )/2;
497  wxBitmap newBm( *m_bitmapHSV );
498  bitmapDC.SelectObject( newBm );
499 
500  // Use Y axis from bottom to top and origin to center
501  bitmapDC.SetAxisOrientation( true, true );
502  bitmapDC.SetDeviceOrigin( half_size, half_size );
503 
504  // Reserve room to draw cursors inside the bitmap
505  half_size -= m_cursorsSize/2;
506 
507  // Draw the HSB cursor:
508  m_cursorBitmapHSV.x = cos( m_hue * M_PI / 180.0 ) * half_size * m_sat;
509  m_cursorBitmapHSV.y = sin( m_hue * M_PI / 180.0 ) * half_size * m_sat;
510 
511  wxPen pen( wxColor( 0, 0, 0 ) );
512  wxBrush brush( wxColor( 0, 0, 0 ), wxBRUSHSTYLE_TRANSPARENT );
513  bitmapDC.SetPen( pen );
514  bitmapDC.SetBrush( brush );
515 
516  int half_csize = m_cursorsSize/2;
517  bitmapDC.DrawRectangle( m_cursorBitmapHSV.x- half_csize,
518  m_cursorBitmapHSV.y-half_csize,
520 
521  m_HsvBitmap->SetBitmap( newBm );
522  /* Deselect the Tool Bitmap from DC,
523  * in order to delete the MemoryDC safely without deleting the bitmap
524  */
525  bitmapDC.SelectObject( wxNullBitmap );
526 }
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, m_sat, wxPoint::x, and wxPoint::y.

Referenced by drawAll().

◆ drawRGBCursors()

void DIALOG_COLOR_PICKER::drawRGBCursors ( )
private

◆ drawRGBPalette()

void DIALOG_COLOR_PICKER::drawRGBPalette ( )
private

draws the RVB color space

Definition at line 425 of file dialog_color_picker.cpp.

426 {
427  if( !m_bitmapRGB || m_bitmapRGB->GetSize() != m_RgbBitmap->GetSize() )
428  createRGBBitmap();
429 
430  wxMemoryDC bitmapDC;
431  wxSize bmsize = m_bitmapRGB->GetSize();
432  int half_size = std::min( bmsize.x, bmsize.y )/2;
433  wxBitmap newBm( *m_bitmapRGB );
434  bitmapDC.SelectObject( newBm );
435 
436  // Use Y axis from bottom to top and origin to center
437  bitmapDC.SetAxisOrientation( true, true );
438  bitmapDC.SetDeviceOrigin( half_size, half_size );
439 
440  // Reserve room to draw cursors inside the bitmap
441  half_size -= m_cursorsSize/2;
442 
443  // Draw the 3 RGB cursors, usiing white color to make them always visible:
444  wxPen pen( wxColor( 255, 255, 255 ) );
445  wxBrush brush( wxColor( 0, 0, 0 ), wxBRUSHSTYLE_TRANSPARENT );
446  bitmapDC.SetPen( pen );
447  bitmapDC.SetBrush( brush );
448  int half_csize = m_cursorsSize/2;
449 
450  #define SLOPE_AXIS 50.0
451  double slope = SLOPE_AXIS/half_size;
452 
453  // Red axis cursor (Z 3Daxis):
454  m_cursorBitmapRed.x = 0;
455  m_cursorBitmapRed.y = m_newColor4D.r * half_size;
456  bitmapDC.DrawRectangle( m_cursorBitmapRed.x - half_csize,
457  m_cursorBitmapRed.y - half_csize,
459 
460  // Blue axis cursor (X 3Daxis):
461  m_cursorBitmapBlue.x = m_newColor4D.b * half_size;
463  bitmapDC.DrawRectangle( m_cursorBitmapBlue.x - half_csize,
464  m_cursorBitmapBlue.y - half_csize,
466 
467  // Green axis cursor (Y 3Daxis):
468  m_cursorBitmapGreen.x = m_newColor4D.g * half_size;
471 
472  bitmapDC.DrawRectangle( m_cursorBitmapGreen.x - half_csize,
473  m_cursorBitmapGreen.y - half_csize,
475 
476  // Draw the 3 RGB axis:
477  half_size += half_size/5;
478  bitmapDC.DrawLine( 0, 0, 0, half_size ); // Red axis (Z 3D axis)
479  bitmapDC.DrawLine( 0, 0, half_size, - half_size*slope ); // Blue axis (X 3D axis)
480  bitmapDC.DrawLine( 0, 0, -half_size, - half_size*slope ); // green axis (Y 3D axis)
481 
482  m_RgbBitmap->SetBitmap( newBm );
483  /* Deselect the Tool Bitmap from DC,
484  * in order to delete the MemoryDC safely without deleting the bitmap */
485  bitmapDC.SelectObject( wxNullBitmap );
486 }
double g
Green component.
Definition: color4d.h:367
KIGFX::COLOR4D m_newColor4D
the current color4d
double b
Blue component.
Definition: color4d.h:368
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:366
#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, SLOPE_AXIS, wxPoint::x, and wxPoint::y.

Referenced by drawAll().

◆ Enable()

bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 269 of file dialog_shim.cpp.

270 {
271  // so we can do logging of this state change:
272 
273 #if 0 && defined(DEBUG)
274  const char* type_id = typeid( *this ).name();
275  printf( "DIALOG_SHIM %s: %s\n", type_id, enable ? "enabled" : "disabled" );
276  fflush(0); //Needed on msys2 to immediately print the message
277 #endif
278 
279  return wxDialog::Enable( enable );
280 }

◆ EndQuasiModal()

void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 399 of file dialog_shim.cpp.

400 {
401  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
402  // handle validation in the same way as other dialogs.
403  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
404  return;
405 
406  SetReturnCode( retCode );
407 
408  if( !IsQuasiModal() )
409  {
410  wxFAIL_MSG( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal"
411  "wasn't called" );
412  return;
413  }
414 
415  if( m_qmodal_loop )
416  {
417  if( m_qmodal_loop->IsRunning() )
418  m_qmodal_loop->Exit( 0 );
419  else
420  m_qmodal_loop->ScheduleExit( 0 );
421 
423  }
424 
427 
428  Show( false );
429 }
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:206
#define NULL
bool IsQuasiModal()
Definition: dialog_shim.h:123
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:209

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_EDIT_COMPONENT_IN_SCHEMATIC::OnCancelButtonClick(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnCancelButtonClick(), DIALOG_LIB_EDIT_PIN_TABLE::OnClose(), DIALOG_PRINT_GENERIC::onCloseButton(), DIALOG_CHOOSE_FOOTPRINT::OnCloseTimer(), DIALOG_CHOOSE_COMPONENT::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), HTML_MESSAGE_BOX::OnOKButtonClick(), DIALOG_CHOOSE_FOOTPRINT::OnUseBrowser(), DIALOG_CHOOSE_COMPONENT::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, when all widgets are initialized, and therefore their size fixed. If TransferDataToWindow() is used to initialize widgets, at end of TransferDataToWindow, or better at end of a wxInitDialogEvent handler

In any case, the best way is to call it in a wxInitDialogEvent handler after calling TransfertDataToWindow(), which is the default wxInitDialogEvent handler wxDialog

Definition at line 144 of file dialog_shim.cpp.

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

References PCAD2KICAD::Center.

Referenced by DIALOG_3D_VIEW_OPTIONS::DIALOG_3D_VIEW_OPTIONS(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOM::DIALOG_BOM(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DRC::DIALOG_DRC(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC(), DIALOG_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_EDIT_SHEET_PIN::DIALOG_EDIT_SHEET_PIN(), DIALOG_EDITOR_DATA::DIALOG_EDITOR_DATA(), 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_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_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_IMAGE_EDITOR::DIALOG_IMAGE_EDITOR(), DIALOG_INSPECTOR::DIALOG_INSPECTOR(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), DIALOG_KEEPOUT_AREA_PROPERTIES::DIALOG_KEEPOUT_AREA_PROPERTIES(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_PIN::DIALOG_LIB_EDIT_PIN(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_LIB_NEW_COMPONENT::DIALOG_LIB_NEW_COMPONENT(), DIALOG_LIST_HOTKEYS::DIALOG_LIST_HOTKEYS(), DIALOG_MOVE_EXACT::DIALOG_MOVE_EXACT(), 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_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_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS(), DIALOG_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SELECT_NET_FROM_LIST::DIALOG_SELECT_NET_FROM_LIST(), DIALOG_SWAP_LAYERS::DIALOG_SWAP_LAYERS(), 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_UPDATE_FROM_PCB::DIALOG_UPDATE_FROM_PCB(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), DLG_SELECT_3DMODEL::DLG_SELECT_3DMODEL(), PAGED_DIALOG::finishInitialization(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_EDIT_LIBRARY_TABLES::InstallPanel(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_SCH_SHEET_PROPS::OnInitDlg(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), DIALOG_SPICE_MODEL::onInitDlg(), DIALOG_SIGNAL_LIST::TransferDataToWindow(), DIALOG_UPDATE_FIELDS::TransferDataToWindow(), TransferDataToWindow(), and DIALOG_BOARD_STATISTICS::TransferDataToWindow().

◆ FixOSXCancelButtonIssue()

static void DIALOG_SHIM::FixOSXCancelButtonIssue ( wxWindow *  aWindow)
staticinherited

◆ GetColor()

◆ GetType()

HOLDER_TYPE KIWAY_HOLDER::GetType ( )
inlineinherited

Definition at line 49 of file kiway_holder.h.

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

References KIWAY_HOLDER::m_type.

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ GetUserUnits()

◆ HorizPixelsFromDU()

int DIALOG_SHIM::HorizPixelsFromDU ( int  x)
protectedinherited

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

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 165 of file dialog_shim.cpp.

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

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

◆ initDefinedColors()

void DIALOG_COLOR_PICKER::initDefinedColors ( CUSTOM_COLORS_LIST aPredefinedColors)
private

creates the bitmap buttons for each defined colors if aPredefinedColors is nullptr, a internal predefined list will be used

Definition at line 168 of file dialog_color_picker.cpp.

169 {
170  #define ID_COLOR_BLACK 2000 // colors_id = ID_COLOR_BLACK a ID_COLOR_BLACK + NBCOLORS-1
171 
172  // Size of color swatches
173  const int w = 32, h = 32;
174 
175  // Colors are built from the colorRefs() table (size NBCOLORS).
176  // The look is better when colorRefs() order is displayed in a grid matrix
177  // of 6 row and 5 columns, first filling a row, and after the next column.
178  // But the wxFlexGrid used here must be filled by columns, then next row
179  // the best interval colorRefs() from a matrix row to the next row is 6
180  // So when have to reorder the index used to explore colorRefs()
181  int grid_col = 0;
182  int grid_row = 0;
183  int table_row_count = 6;
184 
185  // If no predefined list is given, build the default predefined colors:
186  if( aPredefinedColors )
187  {
188  for( unsigned jj = 0; jj < aPredefinedColors->size() && jj < NBCOLORS; ++jj )
189  {
190  CUSTOM_COLOR_ITEM* item = & *aPredefinedColors->begin() + jj;
191  int butt_ID = ID_COLOR_BLACK + jj;
192  wxMemoryDC iconDC;
193  wxBitmap ButtBitmap( w, h );
194  wxBrush brush;
195 
196  iconDC.SelectObject( ButtBitmap );
197 
198  KIGFX::COLOR4D buttcolor = item->m_Color;
199 
200  iconDC.SetPen( *wxBLACK_PEN );
201  brush.SetColour( buttcolor.ToColour() );
202  brush.SetStyle( wxBRUSHSTYLE_SOLID );
203 
204  iconDC.SetBrush( brush );
205  iconDC.SetBackground( *wxGREY_BRUSH );
206  iconDC.Clear();
207  iconDC.DrawRoundedRectangle( 0, 0, w, h, (double) h / 3 );
208 
209  wxBitmapButton* bitmapButton = new wxBitmapButton( m_panelDefinedColors, butt_ID, ButtBitmap,
210  wxDefaultPosition, wxSize( w+8, h+6 ) );
211  m_fgridColor->Add( bitmapButton, 0,
212  wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL |
213  wxLEFT | wxBOTTOM, 5 );
214 
215  wxStaticText* label = new wxStaticText( m_panelDefinedColors, -1,
216  item->m_ColorName,
217  wxDefaultPosition, wxDefaultSize, 0 );
218  m_fgridColor->Add( label, 1,
219  wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL |
220  wxLEFT | wxRIGHT | wxBOTTOM, 5 );
221  m_buttonsColor.push_back( bitmapButton );
222 
223  m_Color4DList.push_back( buttcolor );
224 
225  bitmapButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED,
226  wxCommandEventHandler( DIALOG_COLOR_PICKER::buttColorClick ), NULL, this );
227  }
228  }
229  else
230  {
231  m_Color4DList.assign( NBCOLORS, KIGFX::COLOR4D( 0.0, 0.0, 0.0, 1.0 ) );
232 
233  for( int jj = 0; jj < NBCOLORS; ++jj, grid_col++ )
234  {
235  if( grid_col*table_row_count >= NBCOLORS )
236  { // the current grid row is filled, and we must fill the next grid row
237  grid_col = 0;
238  grid_row++;
239  }
240 
241  int ii = grid_row + (grid_col*table_row_count); // The index in colorRefs()
242 
243  int butt_ID = ID_COLOR_BLACK + ii;
244  wxMemoryDC iconDC;
245  wxBitmap ButtBitmap( w, h );
246  wxBrush brush;
247 
248  iconDC.SelectObject( ButtBitmap );
249 
250  KIGFX::COLOR4D buttcolor = KIGFX::COLOR4D( colorRefs()[ii].m_Numcolor );
251  m_Color4DList[ butt_ID - ID_COLOR_BLACK ] = buttcolor;
252 
253  iconDC.SetPen( *wxBLACK_PEN );
254  brush.SetColour( buttcolor.ToColour() );
255  brush.SetStyle( wxBRUSHSTYLE_SOLID );
256 
257  iconDC.SetBrush( brush );
258  iconDC.SetBackground( *wxGREY_BRUSH );
259  iconDC.Clear();
260  iconDC.DrawRoundedRectangle( 0, 0, w, h, (double) h / 3 );
261 
262  wxBitmapButton* bitmapButton = new wxBitmapButton( m_panelDefinedColors, butt_ID, ButtBitmap,
263  wxDefaultPosition, wxSize( w+8, h+6 ) );
264  m_fgridColor->Add( bitmapButton, 0,
265  wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL |
266  wxLEFT | wxBOTTOM, 5 );
267 
268  wxStaticText* label = new wxStaticText( m_panelDefinedColors, -1,
269  wxGetTranslation( colorRefs()[ii].m_ColorName ),
270  wxDefaultPosition, wxDefaultSize, 0 );
271  m_fgridColor->Add( label, 1,
272  wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL |
273  wxLEFT | wxRIGHT | wxBOTTOM, 5 );
274  m_buttonsColor.push_back( bitmapButton );
275  bitmapButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED,
276  wxCommandEventHandler( DIALOG_COLOR_PICKER::buttColorClick ), NULL, this );
277  }
278  }
279 }
std::vector< KIGFX::COLOR4D > m_Color4DList
the list of color4d ordered by button ID, for predefined colors
a class to handle a custom color (predefined color) for the color picker dialog
Number of colors.
Definition: color4d.h:74
#define NULL
void buttColorClick(wxCommandEvent &event)
Event handler for defined color buttons
const StructColors * colorRefs()
Global list of legacy color names, still used all over the place for constructing COLOR4D's.
Definition: color4d.cpp:37
std::vector< wxBitmapButton * > m_buttonsColor
list of defined colors buttons
KIGFX::COLOR4D m_Color
#define ID_COLOR_BLACK
COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:99

References buttColorClick(), colorRefs(), ID_COLOR_BLACK, m_buttonsColor, CUSTOM_COLOR_ITEM::m_Color, m_Color4DList, CUSTOM_COLOR_ITEM::m_ColorName, DIALOG_COLOR_PICKER_BASE::m_fgridColor, DIALOG_COLOR_PICKER_BASE::m_panelDefinedColors, NBCOLORS, and NULL.

Referenced by DIALOG_COLOR_PICKER().

◆ IsCtrl()

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

Definition at line 136 of file dialog_shim.h.

137  {
138  return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
139  !e.ShiftDown() && !e.MetaDown();
140  }

Referenced by DIALOG_TEXT_PROPERTIES::OnCharHook().

◆ IsQuasiModal()

◆ IsShiftCtrl()

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

Definition at line 142 of file dialog_shim.h.

143  {
144  return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
145  e.ShiftDown() && !e.MetaDown();
146  }

Referenced by DIALOG_TEXT_PROPERTIES::OnCharHook().

◆ Kiway()

KIWAY& KIWAY_HOLDER::Kiway ( ) const
inlineinherited

Function Kiway returns 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:81

References KIWAY_HOLDER::m_kiway.

Referenced by TREEPROJECT_ITEM::Activate(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PCB_BASE_EDIT_FRAME::AddLibrary(), LIB_CONTROL::AddSymbolToSchematic(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), COMMON_CONTROL::ConfigurePaths(), DIALOG_CHOOSE_FOOTPRINT::ConstructRightPanel(), DIALOG_CHOOSE_COMPONENT::ConstructRightPanel(), PCB_BASE_FRAME::CreateAndShow3D_Frame(), 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(), PCB_EDITOR_CONTROL::EditFpInFpEditor(), SCH_EDITOR_CONTROL::EditWithLibEdit(), BACK_ANNOTATE::FetchNetlistFromPCB(), DISPLAY_FOOTPRINTS_FRAME::GetModule(), PCB_EDIT_FRAME::importFile(), KICAD_MANAGER_FRAME::language_change(), KIWAY_PLAYER::language_change(), LIB_TREE_MODEL_ADAPTER::LIB_TREE_MODEL_ADAPTER(), CVPCB_MAINFRAME::LoadFootprintFiles(), KICAD_MANAGER_FRAME::LoadProject(), TEXT_BUTTON_SYMBOL_CHOOSER::OnButtonClick(), TEXT_BUTTON_FP_CHOOSER::OnButtonClick(), KICAD_MANAGER_FRAME::OnCloseWindow(), SCH_EDIT_FRAME::OnCloseWindow(), PL_EDITOR_FRAME::OnExit(), SCH_EDIT_FRAME::OnExit(), FOOTPRINT_EDIT_FRAME::OnExitKiCad(), FOOTPRINT_VIEWER_FRAME::OnExitKiCad(), LIB_EDIT_FRAME::OnExitKiCad(), SAVE_AS_TRAVERSER::OnFile(), KICAD_MANAGER_FRAME::OnImportEagleFiles(), DIALOG_CHOOSE_COMPONENT::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::OnUpdateInsertModuleInBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadModuleFromBoard(), SCH_EDIT_FRAME::OnUpdatePCB(), KIWAY_HOLDER::Prj(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), LIB_EDIT_FRAME::refreshSchematic(), SCH_EDITOR_CONTROL::rescueProject(), EE_INSPECTION_TOOL::RunSimulation(), CVPCB_MAINFRAME::SaveFootprintAssociation(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), LIB_TREE_MODEL_ADAPTER::SavePinnedItems(), SCH_BASE_FRAME::SelectComponentFromLibBrowser(), 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(), CVPCB_CONTROL::ShowFootprintViewer(), COMMON_CONTROL::ShowLibraryTable(), COMMON_CONTROL::ShowPlayer(), KICAD_MANAGER_CONTROL::ShowPlayer(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), PCB_EDITOR_CONTROL::UpdateSchematicFromPCB(), and DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint().

◆ normalizeToInt()

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

Definition at line 178 of file dialog_color_picker.h.

179  {
180  return ( aValue * aValMax ) + 0.5;
181  }

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 767 of file dialog_color_picker.cpp.

768 {
769  double alpha = (double)event.GetPosition() / ALPHA_MAX;
770  m_newColor4D.a = alpha;
771  m_NewColorRect->Freeze(); // Avoid flicker
773  m_NewColorRect->Thaw();
774  m_NewColorRect->Refresh();
775 }
void setIconColor(wxStaticBitmap *aStaticBitmap, KIGFX::COLOR4D &aColor4D)
repaint a static bitmap with the aColor4D color
KIGFX::COLOR4D m_newColor4D
the current color4d
double a
Alpha component.
Definition: color4d.h:369
#define ALPHA_MAX

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

◆ 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 832 of file dialog_color_picker.cpp.

833 {
834  m_val = (double)event.GetPosition() / 255.0;
835 
837 
838  SetEditVals( VAL_CHANGED, true );
839 
840  drawAll();
841 }
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)
Function FromHSV() Changes currently used color to the one given by hue, saturation and value paramet...
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 798 of file dialog_color_picker.cpp.

799 {
800  double val = (double)event.GetPosition() / 255.0;
801  m_newColor4D.b = val;
802  SetEditVals( BLUE_CHANGED, true );
803 
804  drawAll();
805 }
KIGFX::COLOR4D m_newColor4D
the current color4d
double b
Blue component.
Definition: color4d.h:368
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 788 of file dialog_color_picker.cpp.

789 {
790  double val = (double)event.GetPosition() / 255.0;
791  m_newColor4D.g = val;
792  SetEditVals( GREEN_CHANGED, true );
793 
794  drawAll();
795 }
double g
Green component.
Definition: color4d.h:367
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 808 of file dialog_color_picker.cpp.

809 {
810  m_hue = (double)event.GetPosition();
811 
813 
814  SetEditVals( HUE_CHANGED, true );
815 
816  drawAll();
817 }
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)
Function FromHSV() Changes currently used color to the one given by hue, saturation and value paramet...
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 778 of file dialog_color_picker.cpp.

779 {
780  double val = (double)event.GetPosition() / 255.0;
781  m_newColor4D.r = val;
782  SetEditVals( RED_CHANGED, true );
783 
784  drawAll();
785 }
KIGFX::COLOR4D m_newColor4D
the current color4d
void SetEditVals(CHANGED_COLOR aChanged, bool aCheckTransparency)
double r
Red component.
Definition: color4d.h:366

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

◆ OnChangeEditSat()

void DIALOG_COLOR_PICKER::OnChangeEditSat ( wxSpinEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_COLOR_PICKER_BASE.

Definition at line 820 of file dialog_color_picker.cpp.

821 {
822  m_sat = (double)event.GetPosition() / 255.0;
823 
825 
826  SetEditVals( SAT_CHANGED, true );
827 
828  drawAll();
829 }
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)
Function FromHSV() Changes currently used color to the one given by hue, saturation and value paramet...
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().

◆ 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 719 of file dialog_color_picker.cpp.

720 {
721  m_newColor4D.SetFromWxString( m_colorValue->GetValue() );
722  m_newColor4D.ToHSV( m_hue, m_sat, m_val, true );
723 
724  SetEditVals( HEX_CHANGED, true );
725  drawAll();
726 }
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
Function ToHSV() Converts 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 700 of file dialog_color_picker.cpp.

701 {
702  m_allowMouseEvents = true;
703 
704  if( setHSvaluesFromCursor( event.GetPosition() ) )
705  drawAll();
706 }
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 709 of file dialog_color_picker.cpp.

710 {
711  if( !event.Dragging() || !m_allowMouseEvents )
712  return;
713 
714  if( setHSvaluesFromCursor( event.GetPosition() ) )
715  drawAll();
716 }
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 302 of file dialog_shim.cpp.

303 {
304  if( m_firstPaintEvent )
305  {
307 
308  selectAllInTextCtrls( GetChildren() );
309 
311  m_initialFocusTarget->SetFocus();
312  else
313  SetFocus(); // Focus the dialog itself
314 
315  m_firstPaintEvent = false;
316  }
317 
318  event.Skip();
319 }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:204
bool m_firstPaintEvent
Definition: dialog_shim.h:203
void FixupCancelButtonCmdKeyCollision(wxWindow *aWindow)
Definition: gtk/ui.cpp:38
static void selectAllInTextCtrls(wxWindowList &children)

References KIPLATFORM::UI::FixupCancelButtonCmdKeyCollision(), 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 844 of file dialog_color_picker.cpp.

845 {
850 
851  m_newColor4D.ToHSV( m_hue, m_sat, m_val, true );
852  SetEditVals( ALL_CHANGED, false );
853 
854  drawAll();
855 }
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
Function ToHSV() Converts current color (stored in RGB) to HSV format.
Definition: color4d.cpp:293
double g
Green component.
Definition: color4d.h:367
KIGFX::COLOR4D m_newColor4D
the current color4d
double b
Blue component.
Definition: color4d.h:368
void SetEditVals(CHANGED_COLOR aChanged, bool aCheckTransparency)
double a
Alpha component.
Definition: color4d.h:369
double m_val
the current value (0 ... 1.0)
KIGFX::COLOR4D m_defaultColor
The default color4d.
double r
Red component.
Definition: color4d.h:366

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

mouse handlers, when clicking on a palette bitmap

Reimplemented from DIALOG_COLOR_PICKER_BASE.

Definition at line 602 of file dialog_color_picker.cpp.

603 {
604  m_allowMouseEvents = true;
605  wxPoint mousePos = event.GetPosition();
606 
607  // The cursor position is relative to the m_bitmapHSV wxBitmap center
608  wxSize bmsize = m_bitmapRGB->GetSize();
609  int half_size = std::min( bmsize.x, bmsize.y )/2;
610  mousePos.x -= half_size;
611  mousePos.y -= half_size;
612  mousePos.y = -mousePos.y; // Use the bottom to top vertical axis
613 
614  wxPoint dist = m_cursorBitmapRed - mousePos;
615 
616  if( std::abs( dist.x ) <= m_cursorsSize/2 && std::abs( dist.y ) <= m_cursorsSize/2 )
617  {
619  return;
620  }
621 
622  dist = m_cursorBitmapGreen - mousePos;
623 
624  if( std::abs( dist.x ) <= m_cursorsSize/2 && std::abs( dist.y ) <= m_cursorsSize/2 )
625  {
627  return;
628  }
629 
630  dist = m_cursorBitmapBlue - mousePos;
631 
632  if( std::abs( dist.x ) <= m_cursorsSize/2 && std::abs( dist.y ) <= m_cursorsSize/2 )
633  {
635  return;
636  }
637 
638  m_selectedCursor = nullptr;
639 }
double dist(const double ax, const double ay, const double bx, const double by)
Definition: delauney.h:168
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 curor, if any, or null.

References dist(), m_allowMouseEvents, m_bitmapRGB, m_cursorBitmapBlue, m_cursorBitmapGreen, m_cursorBitmapRed, m_cursorsSize, m_selectedCursor, wxPoint::x, and wxPoint::y.

◆ onRGBMouseDrag()

void DIALOG_COLOR_PICKER::onRGBMouseDrag ( wxMouseEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_COLOR_PICKER_BASE.

Definition at line 642 of file dialog_color_picker.cpp.

643 {
644  if( !event.Dragging() || !m_allowMouseEvents )
645  {
646  m_selectedCursor = nullptr;
647  return;
648  }
649 
653  return;
654 
655  // Adjust the HSV cursor position to follow the mouse cursor
656  // The cursor position is relative to the m_bitmapHSV wxBitmap center
657  wxPoint mousePos = event.GetPosition();
658  wxSize bmsize = m_bitmapRGB->GetSize();
659  int half_size = std::min( bmsize.x, bmsize.y )/2;
660  mousePos.x -= half_size;
661  mousePos.y -= half_size;
662  mousePos.y = -mousePos.y; // Use the bottom to top vertical axis
663 
664  half_size -= m_cursorsSize/2; // the actual half_size of the palette area
665 
666  // Change colors according to the selected cursor:
668  {
669  if( mousePos.y >= 0 && mousePos.y <= half_size )
670  m_newColor4D.r = (double)mousePos.y / half_size;
671  else
672  return;
673  }
674 
676  {
677  mousePos.x = -mousePos.x;
678 
679  if( mousePos.x >= 0 && mousePos.x <= half_size )
680  m_newColor4D.g = (double)mousePos.x / half_size;
681  else
682  return;
683  }
684 
686  {
687  if( mousePos.x >= 0 && mousePos.x <= half_size )
688  m_newColor4D.b = (double)mousePos.x / half_size;
689  else
690  return;
691  }
692 
693  m_newColor4D.ToHSV( m_hue, m_sat, m_val, true );
694  SetEditVals( ALL_CHANGED, true );
695 
696  drawAll();
697 }
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
Function ToHSV() Converts current color (stored in RGB) to HSV format.
Definition: color4d.cpp:293
double g
Green component.
Definition: color4d.h:367
KIGFX::COLOR4D m_newColor4D
the current color4d
double b
Blue component.
Definition: color4d.h:368
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:366
wxPoint m_cursorBitmapGreen
the green cursor on the RGB bitmap palette.
wxPoint * m_selectedCursor
the ref cursor to the selected curor, 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(), KIGFX::COLOR4D::ToHSV(), wxPoint::x, and wxPoint::y.

◆ Prj()

PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

Function Prj returns 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
Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in...
Definition: kiway_holder.h:56
VTBL_ENTRY PROJECT & Prj() const
Function Prj returns the PROJECT associated with this KIWAY.
Definition: kiway.cpp:172

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

Referenced by PCB_BASE_EDIT_FRAME::AddLibrary(), LIB_MANAGER::addLibrary(), SCH_EDIT_FRAME::AppendSchematic(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), DIALOG_SYMBOL_REMAP::backupProject(), CVPCB_MAINFRAME::buildEquivalenceList(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_FOOTPRINT_FP_EDITOR::Cfg3DPath(), DIALOG_FOOTPRINT_BOARD_EDITOR::Cfg3DPath(), 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::DeleteModuleFromLibrary(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOARD_STATISTICS::DIALOG_BOARD_STATISTICS(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), LIB_VIEW_FRAME::DisplayLibInfos(), CVPCB_MAINFRAME::DisplayStatus(), PL_DRAW_PANEL_GAL::DisplayWorksheet(), PCB_EDIT_FRAME::doAutoSave(), FIELDS_GRID_TRICKS::doPopupSelection(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), KICAD_MANAGER_CONTROL::Execute(), PCB_EDIT_FRAME::Export_IDF3(), DIALOG_EXPORT_SVG::ExportSVGFile(), LIB_CONTROL::ExportSymbolAsSVG(), LIB_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(), LIB_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), SCH_BASE_FRAME::GetLibPart(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), DISPLAY_FOOTPRINTS_FRAME::GetModule(), KICAD_MANAGER_FRAME::GetProjectFileName(), LIB_VIEW_FRAME::GetSelectedSymbol(), FP_THREAD_IFACE::GetTable(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), SCH_EDITOR_CONTROL::ImportFPAssignments(), DIALOG_CONFIG_EQUFILES::Init(), FOOTPRINT_EDIT_FRAME::initLibraryTree(), SCH_EDIT_FRAME::KiwayMailIn(), LIB_EDIT_FRAME::KiwayMailIn(), EDA_DRAW_FRAME::LibraryFileBrowser(), LIB_EDIT_FRAME::LoadComponentFromCurrentLib(), CVPCB_MAINFRAME::LoadFootprintFiles(), DIALOG_SPICE_MODEL::loadLibrary(), LIB_EDIT_FRAME::LoadOneSymbol(), KICAD_MANAGER_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProjectSettings(), PCB_EDIT_FRAME::LoadProjectSettings(), DRC::LoadRules(), SCH_EDIT_FRAME::LoadSheetFromFile(), DIALOG_FOOTPRINT_FP_EDITOR::On3DModelCellChanged(), DIALOG_FOOTPRINT_BOARD_EDITOR::On3DModelCellChanged(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_FOOTPRINT_FP_EDITOR::OnAdd3DModel(), DIALOG_FOOTPRINT_BOARD_EDITOR::OnAdd3DModel(), KICAD_MANAGER_FRAME::OnBrowseInFileExplorer(), TEXT_BUTTON_URL::OnButtonClick(), TEXT_BUTTON_FILE_BROWSER::OnButtonClick(), DIALOG_EDIT_COMPONENTS_LIBID::onClickOrphansButton(), SCH_EDIT_FRAME::OnCloseWindow(), DIALOG_GENDRILL::OnGenReportFile(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_COMPONENT::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_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_BOM::OnRunGenerator(), FOOTPRINT_EDIT_FRAME::OnSaveFootprintAsPng(), DIALOG_ERC::OnSaveReport(), DIALOG_DRC::OnSaveReport(), PROPERTIES_FRAME::onScintillaCharAdded(), DIALOG_LABEL_EDITOR::onScintillaCharAdded(), DIALOG_SCH_EDIT_ONE_FIELD::onScintillaCharAdded(), DIALOG_SPICE_MODEL::onSelectLibrary(), LIB_VIEW_FRAME::OnSelectSymbol(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), SCH_EDIT_FRAME::OnUpdatePCB(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), PANEL_PREV_3D::PANEL_PREV_3D(), SCH_EDITOR_CONTROL::Paste(), FOOTPRINT_EDITOR_TOOLS::PasteFootprint(), PCB_BASE_EDIT_FRAME::PCB_BASE_EDIT_FRAME(), DIALOG_PLOT::Plot(), DIALOG_PLOT_SCHEMATIC::Plot_1_Page_HPGL(), DIALOG_PLOT_SCHEMATIC::PlotOneSheetDXF(), DIALOG_CHOOSE_COMPONENT::PopulateFootprintSelector(), SCH_EDITOR_CONTROL::Print(), SCH_EDIT_FRAME::PrintPage(), EDA_DRAW_FRAME::PrintWorkSheet(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), LIB_VIEW_FRAME::ReCreateListCmp(), LIB_VIEW_FRAME::ReCreateListLib(), SCH_EDIT_TOOL::RefreshSymbolFromLibrary(), EDA_3D_VIEWER::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), SCH_EDITOR_CONTROL::RescueLegacyProject(), SCH_EDITOR_CONTROL::RescueSymbolLibTableProject(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), DIALOG_EDIT_COMPONENTS_LIBID::revertChanges(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), LIB_EDIT_FRAME::saveLibrary(), LIB_EDIT_FRAME::SaveOneSymbol(), LIB_EDIT_FRAME::savePartAs(), PCB_EDIT_FRAME::SavePcbFile(), SCH_EDIT_FRAME::SaveProject(), PCB_EDIT_FRAME::SaveProjectSettings(), DIALOG_BOARD_STATISTICS::saveReportClicked(), SCH_BASE_FRAME::saveSymbolLibTables(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), SCH_BASE_FRAME::SelectCompFromLibTree(), PCB_BASE_FRAME::SelectLibrary(), LIB_EDIT_FRAME::SelectLibraryFromList(), LIB_EDIT_FRAME::selectSymLibTable(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), LIB_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), LIB_EDIT_FRAME::SetCurPart(), GERBVIEW_FRAME::SetPageSettings(), EE_INSPECTION_TOOL::ShowDatasheet(), DIALOG_CHOOSE_COMPONENT::ShowFootprintFor(), COMMON_CONTROL::ShowHelp(), LIB_VIEW_FRAME::ShowModal(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::symTable(), SYMBOL_TREE_SYNCHRONIZING_ADAPTER::Sync(), FOOTPRINT_EDIT_FRAME::SyncLibraryTree(), EDA_3D_VIEWER::takeScreenshot(), PANEL_SETUP_RULES::TransferDataFromWindow(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::TransferDataFromWindow(), NETLIST_DIALOG::TransferDataFromWindow(), DIALOG_EDIT_COMPONENTS_LIBID::TransferDataFromWindow(), PANEL_SETUP_RULES::TransferDataToWindow(), DIALOG_FOOTPRINT_FP_EDITOR::TransferDataToWindow(), DIALOG_FOOTPRINT_BOARD_EDITOR::TransferDataToWindow(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::UpdateFieldsFromLibrary(), DIALOG_PAGES_SETTINGS::UpdatePageLayoutExample(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), FOOTPRINT_EDIT_FRAME::updateTitle(), SCH_EDIT_FRAME::UpdateTitle(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::Validate(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_FOOTPRINT_BOARD_EDITOR::~DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::~DIALOG_FOOTPRINT_FP_EDITOR(), and PCB_BASE_EDIT_FRAME::~PCB_BASE_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 244 of file dialog_shim.cpp.

245 {
246  const char* hash_key;
247 
248  if( m_hash_key.size() )
249  {
250  // a special case like EDA_LIST_DIALOG, which has multiple uses.
251  hash_key = m_hash_key.c_str();
252  }
253  else
254  {
255  hash_key = typeid(*this).name();
256  }
257 
258  RECT_MAP::iterator it = class_map.find( hash_key );
259 
260  if( it == class_map.end() )
261  return;
262 
263  EDA_RECT rect = it->second;
264  rect.SetSize( 0, 0 );
265  class_map[ hash_key ] = rect;
266 }
std::string m_hash_key
Definition: dialog_shim.h:198
static RECT_MAP class_map
void SetSize(const wxSize &size)
Definition: eda_rect.h:144
EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44

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

Referenced by DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY().

◆ SetEditVals()

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

Definition at line 529 of file dialog_color_picker.cpp.

530 {
531  if( aCheckTransparency )
532  {
533  // If they've changed the color, they probably don't want it to remain 100% transparent,
534  // and it looks like a bug when changing the color has no effect.
535  if( m_newColor4D.a == 0.0 )
536  m_newColor4D.a = 1.0;
537  }
538 
540 
541  if( aChanged == RED_CHANGED || aChanged == GREEN_CHANGED || aChanged == BLUE_CHANGED )
542  m_newColor4D.ToHSV( m_hue, m_sat, m_val, true );
543 
544  if( aChanged != RED_CHANGED )
545  m_spinCtrlRed->SetValue( normalizeToInt( m_newColor4D.r ) );
546 
547  if( aChanged != GREEN_CHANGED )
549 
550  if( aChanged != BLUE_CHANGED )
552 
553  if( aChanged != HUE_CHANGED )
554  m_spinCtrlHue->SetValue( (int)m_hue );
555 
556  if( aChanged != SAT_CHANGED )
557  m_spinCtrlSaturation->SetValue( m_sat * 255 );
558 
559  if( aChanged != VAL_CHANGED )
560  m_sliderBrightness->SetValue(normalizeToInt( m_val ) );
561 
562  if( aChanged != HEX_CHANGED )
563  m_colorValue->SetValue( m_newColor4D.ToWxString( wxC2S_CSS_SYNTAX ) );
564 }
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
Function ToHSV() Converts 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:367
KIGFX::COLOR4D m_newColor4D
the current color4d
double b
Blue component.
Definition: color4d.h:368
double a
Alpha component.
Definition: color4d.h:369
#define ALPHA_MAX
double m_val
the current value (0 ... 1.0)
double r
Red component.
Definition: color4d.h:366

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.

Definition at line 729 of file dialog_color_picker.cpp.

730 {
731  wxPoint mousePos = aMouseCursor;
732  wxSize bmsize = m_bitmapHSV->GetSize();
733  int half_size = std::min( bmsize.x, bmsize.y )/2;
734  // Make the cursor position relative to the m_bitmapHSV wxBitmap center
735  mousePos.x -= half_size;
736  mousePos.y -= half_size;
737  mousePos.y = -mousePos.y; // Use the bottom to top vertical axis
738 
739  // The HS cursor position is restricted to a circle of radius half_size
740  double dist_from_centre = hypot( (double)mousePos.x, (double)mousePos.y );
741 
742  if( dist_from_centre > half_size )
743  // Saturation cannot be calculated:
744  return false;
745 
746  m_cursorBitmapHSV = mousePos;
747 
748  // Set saturation and hue from new cursor position:
749  half_size -= m_cursorsSize/2; // the actual half_size of the palette area
750  m_sat = dist_from_centre / half_size;
751 
752  if( m_sat > 1.0 )
753  m_sat = 1.0;
754 
755  m_hue = atan2( mousePos.y, mousePos.x ) / M_PI * 180.0;
756 
757  if( m_hue < 0 )
758  m_hue += 360.0;
759 
761  SetEditVals( ALL_CHANGED, true );
762 
763  return true;
764 }
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)
Function FromHSV() Changes currently used color to the one given by hue, saturation and value paramet...
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, SetEditVals(), wxPoint::x, and wxPoint::y.

Referenced by onHSVMouseClick(), and onHSVMouseDrag().

◆ setIconColor()

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

repaint a static bitmap with the aColor4D color

Event handler from wxSlider: brightness (value) control

Definition at line 90 of file dialog_color_picker.cpp.

91 {
92  // Draw the icon that shows the aColor4D,
93  // with colors according to the color 4D rgb and alpha
94  // for alpha = 1 (no tranparency, the icon is a full rgb color rect
95  // for alpha = 0 (100% tranparency, the icon is a grid of rgb color
96  // and background color small sub rect
97  wxMemoryDC bitmapDC;
98  wxSize size = aStaticBitmap->GetSize();
99  wxBitmap newBm( size );
100  bitmapDC.SelectObject( newBm );
101  wxPen pen( aColor4D.ToColour() );
102  wxBrush brush( aColor4D.ToColour() );
103 
104  // clear background (set bg color to aColor4D )
105  bitmapDC.SetBackground( brush );
106  bitmapDC.Clear();
107 
108 
109  // Draw the alpha subrect
110  int stepx = size.x/8;
111  int stepy = size.y/8;
112 
113  // build the alpha color for icon:
114  // the alpha color is the initial color modified to be
115  // the initial color for transparency = 0 ( alpha = 1 )
116  // and white color for transparency = 1( alpha = 0 )
117  KIGFX::COLOR4D bgcolor( GetBackgroundColour() );
118  KIGFX::COLOR4D alphacolor = aColor4D;
119  alphacolor.r = ( alphacolor.r * aColor4D.a ) + ( bgcolor.r * (1-aColor4D.a) );
120  alphacolor.g = ( alphacolor.g * aColor4D.a ) + ( bgcolor.g * (1-aColor4D.a) );
121  alphacolor.b = ( alphacolor.b * aColor4D.a ) + ( bgcolor.b * (1-aColor4D.a) );
122 
123  pen.SetColour( alphacolor.ToColour() );
124  brush.SetColour( alphacolor.ToColour() );
125  bitmapDC.SetPen( pen );
126  bitmapDC.SetBrush( brush );
127 
128  for( int ii = 0; ii < size.x/stepx; ii+=2 )
129  {
130  for( int jj = 0; jj < size.y/stepy; jj+= 2 )
131  {
132  wxPoint pos( stepx*ii + stepx/2, stepy*jj + stepy/2 );
133  bitmapDC.DrawRectangle( pos, wxSize( stepx, stepy ) );
134  }
135  }
136 
137  aStaticBitmap->SetBitmap( newBm );
138 
139  // Deselect the Tool Bitmap from DC, in order to delete the MemoryDC
140  // safely without deleting the bitmap
141  bitmapDC.SelectObject( wxNullBitmap );
142 }
double g
Green component.
Definition: color4d.h:367
double b
Blue component.
Definition: color4d.h:368
double a
Alpha component.
Definition: color4d.h:369
double r
Red component.
Definition: color4d.h:366
COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:99

References KIGFX::COLOR4D::a, KIGFX::COLOR4D::b, KIGFX::COLOR4D::g, and KIGFX::COLOR4D::r.

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

◆ 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 114 of file dialog_shim.h.

115  {
116  m_initialFocusTarget = aWindow;
117  }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:204

References DIALOG_SHIM::m_initialFocusTarget.

Referenced by DIALOG_BOM::DIALOG_BOM(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CONFIGURE_PATHS::DIALOG_CONFIGURE_PATHS(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_EDIT_SHEET_PIN::DIALOG_EDIT_SHEET_PIN(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FIND::DIALOG_FIND(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_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_IMPORT_GFX::DIALOG_IMPORT_GFX(), 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_PIN::DIALOG_LIB_EDIT_PIN(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_SCH_FIND::DIALOG_SCH_FIND(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), 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(), LIB_EDIT_FRAME::savePartAs(), DIALOG_KEEPOUT_AREA_PROPERTIES::TransferDataToWindow(), DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataToWindow(), and DIALOG_COPPER_ZONE::TransferDataToWindow().

◆ SetKiway()

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

Function SetKiway.

Parameters
aDestis the recipient of aKiway pointer. It is only used for debugging, since "this" is not a wxWindow*. "this" is a KIWAY_HOLDER mix-in.
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:81
const char * name
Definition: DXF_plotter.cpp:60

References KIWAY_HOLDER::m_kiway, and name.

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

◆ 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 158 of file dialog_shim.cpp.

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

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 185 of file dialog_shim.cpp.

186 {
187  bool ret;
188  const char* hash_key;
189 
190  if( m_hash_key.size() )
191  {
192  // a special case like EDA_LIST_DIALOG, which has multiple uses.
193  hash_key = m_hash_key.c_str();
194  }
195  else
196  {
197  hash_key = typeid(*this).name();
198  }
199 
200  // Show or hide the window. If hiding, save current position and size.
201  // If showing, use previous position and size.
202  if( show )
203  {
204 #ifndef __WINDOWS__
205  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
206 #endif
207  ret = wxDialog::Show( show );
208 
209  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
210  EDA_RECT savedDialogRect = class_map[ hash_key ];
211 
212  if( savedDialogRect.GetSize().x != 0 && savedDialogRect.GetSize().y != 0 )
213  {
214  SetSize( savedDialogRect.GetPosition().x,
215  savedDialogRect.GetPosition().y,
216  std::max( wxDialog::GetSize().x, savedDialogRect.GetSize().x ),
217  std::max( wxDialog::GetSize().y, savedDialogRect.GetSize().y ),
218  0 );
219  }
220 
221  // Be sure that the dialog appears in a visible area
222  // (the dialog position might have been stored at the time when it was
223  // shown on another display)
224  if( wxDisplay::GetFromWindow( this ) == wxNOT_FOUND )
225  Centre();
226  }
227  else
228  {
229  // Save the dialog's position & size before hiding, using classname as key
230  class_map[ hash_key ] = EDA_RECT( wxDialog::GetPosition(), wxDialog::GetSize() );
231 
232 #ifdef __WXMAC__
233  if ( m_eventLoop )
234  m_eventLoop->Exit( GetReturnCode() ); // Needed for APP-MODAL dlgs on OSX
235 #endif
236 
237  ret = wxDialog::Show( show );
238  }
239 
240  return ret;
241 }
std::string m_hash_key
Definition: dialog_shim.h:198
static RECT_MAP class_map
const wxPoint GetPosition() const
Definition: eda_rect.h:115
EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44
const wxSize GetSize() const
Definition: eda_rect.h:103

References class_map, EDA_RECT::GetPosition(), EDA_RECT::GetSize(), DIALOG_SHIM::m_hash_key, wxPoint::x, and wxPoint::y.

Referenced by DIALOG_SHIM::EndQuasiModal(), InvokeDialogERC(), SCH_EDIT_FRAME::OnAnnotate(), DIALOG_DRC::OnDRCItemDClick(), DIALOG_ERC::OnERCItemDClick(), DIALOG_CLEANUP_TRACKS_AND_VIAS::OnLeftDClickItem(), DIALOG_CLEANUP_GRAPHICS::OnLeftDClickItem(), POSITION_RELATIVE_TOOL::PositionRelative(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), DRC::ShowDRCDialog(), SCH_EDIT_FRAME::ShowFindReplaceDialog(), DIALOG_SHIM::ShowQuasiModal(), DIALOG_POSITION_RELATIVE::UpdateAnchor(), and SCH_EDIT_FRAME::UpdateHierarchyNavigator().

◆ ShowQuasiModal()

int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 345 of file dialog_shim.cpp.

346 {
347  // This is an exception safe way to zero a pointer before returning.
348  // Yes, even though DismissModal() clears this first normally, this is
349  // here in case there's an exception before the dialog is dismissed.
350  struct NULLER
351  {
352  void*& m_what;
353  NULLER( void*& aPtr ) : m_what( aPtr ) {}
354  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
355  } clear_this( (void*&) m_qmodal_loop );
356 
357  // release the mouse if it's currently captured as the window having it
358  // will be disabled when this dialog is shown -- but will still keep the
359  // capture making it impossible to do anything in the modal dialog itself
360  wxWindow* win = wxWindow::GetCapture();
361  if( win )
362  win->ReleaseMouse();
363 
364  // Get the optimal parent
365  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
366 
367  // Show the optimal parent
368  DBG( if( parent ) printf( "%s: optimal parent: %s\n", __func__, typeid(*parent).name() );)
369 
370  wxASSERT_MSG( !m_qmodal_parent_disabler,
371  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
372 
373  // quasi-modal: disable only my "optimal" parent
375 
376 
377  // Apple in its infinite wisdom will raise a disabled window before even passing
378  // us the event, so we have no way to stop it. Instead, we must set an order on
379  // the windows so that the quasi-modal will be pushed in front of the disabled
380  // window when it is raised.
382 
383  Show( true );
384 
385  m_qmodal_showing = true;
386 
387  WX_EVENT_LOOP event_loop;
388 
389  m_qmodal_loop = &event_loop;
390 
391  event_loop.Run();
392 
393  m_qmodal_showing = false;
394 
395  return GetReturnCode();
396 }
bool m_qmodal_showing
Definition: dialog_shim.h:208
#define WX_EVENT_LOOP
Definition: kiway_player.h:41
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:206
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:209
Toggle a window's "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:40
#define DBG(x)
Definition: fctsys.h:33
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:32

References DBG, 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 LIB_EDIT_TOOL::editFieldProperties(), SCH_EDITOR_CONTROL::EditSymbolFields(), LIB_EDIT_TOOL::editSymbolProperties(), GLOBAL_EDIT_TOOL::EditTracksAndVias(), GLOBAL_EDIT_TOOL::ExchangeFootprints(), PCB_EDIT_FRAME::InstallExchangeModuleFrame(), PCB_BASE_FRAME::InstallPadOptionsFrame(), InvokeDialogEditComponentsLibId(), InvokeDialogRescueEach(), InvokeDialogUpdateFields(), LIB_VIEW_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_TOOL::Properties(), EDIT_TOOL::Properties(), SCH_EDITOR_CONTROL::RemapSymbols(), SCH_BASE_FRAME::SelectCompFromLibTree(), PCB_BASE_FRAME::SelectFootprintFromLibTree(), PCB_EDIT_FRAME::ShowBoardSetupDialog(), and SCH_EDIT_FRAME::ShowSchematicSetupDialog().

◆ TransferDataToWindow()

bool DIALOG_COLOR_PICKER::TransferDataToWindow ( )
overrideprivate

called when creating the dialog

Definition at line 145 of file dialog_color_picker.cpp.

146 {
147  // Draw all bitmaps, with colors according to the color 4D
149  SetEditVals( ALL_CHANGED, false );
150  drawAll();
151 
152  // Configure the spin control sizes
158 
159  m_notebook->GetPage( 0 )->Layout();
160  m_notebook->GetPage( 1 )->Layout();
161 
163 
164  return true;
165 }
void configureSpinCtrl(wxSpinCtrl *aCtrl)
void FinishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
void setIconColor(wxStaticBitmap *aStaticBitmap, KIGFX::COLOR4D &aColor4D)
repaint a static bitmap with the aColor4D color
void SetEditVals(CHANGED_COLOR aChanged, bool aCheckTransparency)
KIGFX::COLOR4D m_previousColor4D
the inital color4d

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 setIconColor().

◆ VertPixelsFromDU()

int DIALOG_SHIM::VertPixelsFromDU ( int  y)
protectedinherited

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

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 172 of file dialog_shim.cpp.

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

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT().

Member Data Documentation

◆ m_ActivePage

int DIALOG_COLOR_PICKER::m_ActivePage = 0
static

the active notebook page, stored during a session

Definition at line 84 of file dialog_color_picker.h.

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

◆ 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 96 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_buttonsColor

std::vector<wxBitmapButton*> DIALOG_COLOR_PICKER::m_buttonsColor
private

list of defined colors buttons

Definition at line 119 of file dialog_color_picker.h.

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

◆ 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 103 of file dialog_color_picker.h.

Referenced by buttColorClick(), and initDefinedColors().

◆ 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 108 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 107 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 109 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 106 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 100 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 203 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 204 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 211 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnCharHook(), and DIALOG_DRC::OnDRCItemRClick().

◆ m_previousColor4D

KIGFX::COLOR4D DIALOG_COLOR_PICKER::m_previousColor4D
private

the inital color4d

Definition at line 98 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 206 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 208 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 curor, if any, or null.

Definition at line 110 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_val

double DIALOG_COLOR_PICKER::m_val
private

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