KiCad PCB EDA Suite
INDICATOR_ICON Class Reference

representing a row indicator icon for use in places like the layer widget More...

#include <indicator_icon.h>

Inheritance diagram for INDICATOR_ICON:

Classes

class  ICON_PROVIDER
 A simple object that can provide fixed bitmaps for use as row indicators. More...
 

Public Types

using ICON_ID = int
 An id that refers to a certain icon state. More...
 

Public Member Functions

 INDICATOR_ICON (wxWindow *aParent, ICON_PROVIDER &aIconProvider, ICON_ID aInitialIcon, int aID)
 
void SetIndicatorState (ICON_ID aIconId)
 Set the row indicator to the given state. More...
 
ICON_ID GetIndicatorState () const
 
void SetWindowID (wxWindowID aId)
 Updates the window ID of this control and its children. More...
 

Static Public Member Functions

static ICON_PROVIDERGetDefaultRowIconProvider (bool aAlternative)
 Accessor for the default icon providers, which take true and false for IDs, meaning on/off. More...
 

Private Attributes

ICON_PROVIDERm_iconProvider
 < An class that delivers icons for the indicator (currently just uses a default implementation). More...
 
wxStaticBitmap * m_bitmap
 Is the icon currently "on". More...
 
ICON_ID m_currentId
 

Detailed Description

representing a row indicator icon for use in places like the layer widget

Definition at line 36 of file indicator_icon.h.

Member Typedef Documentation

◆ ICON_ID

An id that refers to a certain icon state.

Exactly what that state might mean in terms of icons is up to the icon provider.

Definition at line 46 of file indicator_icon.h.

Constructor & Destructor Documentation

◆ INDICATOR_ICON()

INDICATOR_ICON::INDICATOR_ICON ( wxWindow *  aParent,
ICON_PROVIDER aIconProvider,
ICON_ID  aInitialIcon,
int  aID 
)
Parameters
aParentthe owning window
aIconProviderthe icon provider to get icons from
aInitialIconis the initial state of the icon (the meaning depends on what is the purpose of the icon)
aIDthe ID to use for the widgets - events will have this ID.

Definition at line 30 of file indicator_icon.cpp.

31 :
32 wxPanel( aParent, aID ),
33 m_iconProvider( aIconProvider ),
34 m_currentId( aInitialIcon )
35{
36 wxBoxSizer* sizer = new wxBoxSizer( wxHORIZONTAL );
37 SetSizer( sizer );
38
39 const wxBitmap& icon = m_iconProvider.GetIndicatorIcon( m_currentId );
40
41 m_bitmap = new wxStaticBitmap( this, aID, icon, wxDefaultPosition, icon.GetSize() );
42
43 sizer->Add( m_bitmap, 0, 0 );
44
45 auto evtSkipper = [this] ( wxEvent& aEvent )
46 {
47 wxPostEvent( this, aEvent );
48 };
49
50 m_bitmap->Bind( wxEVT_LEFT_DOWN, evtSkipper );
51}
virtual const wxBitmap & GetIndicatorIcon(ICON_ID aIconId) const =0
Get a reference to the row icon in the given mode.
ICON_PROVIDER & m_iconProvider
< An class that delivers icons for the indicator (currently just uses a default implementation).
wxStaticBitmap * m_bitmap
Is the icon currently "on".

References INDICATOR_ICON::ICON_PROVIDER::GetIndicatorIcon(), m_bitmap, m_currentId, and m_iconProvider.

Member Function Documentation

◆ GetDefaultRowIconProvider()

static ICON_PROVIDER & INDICATOR_ICON::GetDefaultRowIconProvider ( bool  aAlternative)
static

Accessor for the default icon providers, which take true and false for IDs, meaning on/off.

Parameters
aAlternativefalse for blue arrow/blank, true for the green diamond

◆ GetIndicatorState()

INDICATOR_ICON::ICON_ID INDICATOR_ICON::GetIndicatorState ( ) const
Returns
the current state of the indicator

Definition at line 67 of file indicator_icon.cpp.

68{
69 return m_currentId;
70}

References m_currentId.

◆ SetIndicatorState()

void INDICATOR_ICON::SetIndicatorState ( ICON_ID  aIconId)

Set the row indicator to the given state.

Parameters
aIconIdthe icon ID to pass to the provider.

Definition at line 54 of file indicator_icon.cpp.

55{
56 if( aIconId == m_currentId )
57 return;
58
59 m_currentId = aIconId;
60
61 const wxBitmap& icon = m_iconProvider.GetIndicatorIcon( m_currentId );
62 m_bitmap->SetBitmap( icon );
63 m_bitmap->SetSize( icon.GetSize() );
64}

References INDICATOR_ICON::ICON_PROVIDER::GetIndicatorIcon(), m_bitmap, m_currentId, and m_iconProvider.

Referenced by APPEARANCE_CONTROLS::OnLayerChanged(), LAYER_WIDGET::SelectLayerRow(), LAYER_WIDGET::UpdateLayerIcons(), and LAYER_WIDGET::updateLayerRow().

◆ SetWindowID()

void INDICATOR_ICON::SetWindowID ( wxWindowID  aId)
inline

Updates the window ID of this control and its children.

Parameters
aIdnew Window ID to set

Definition at line 104 of file indicator_icon.h.

105 {
106 SetId( aId );
107 m_bitmap->SetId( aId );
108 }

References m_bitmap.

Member Data Documentation

◆ m_bitmap

wxStaticBitmap* INDICATOR_ICON::m_bitmap
private

Is the icon currently "on".

Definition at line 117 of file indicator_icon.h.

Referenced by INDICATOR_ICON(), SetIndicatorState(), and SetWindowID().

◆ m_currentId

ICON_ID INDICATOR_ICON::m_currentId
private

Definition at line 120 of file indicator_icon.h.

Referenced by GetIndicatorState(), INDICATOR_ICON(), and SetIndicatorState().

◆ m_iconProvider

ICON_PROVIDER& INDICATOR_ICON::m_iconProvider
private

< An class that delivers icons for the indicator (currently just uses a default implementation).

Handle on the bitmap widget

Definition at line 114 of file indicator_icon.h.

Referenced by INDICATOR_ICON(), and SetIndicatorState().


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