Detect if HiDPI cursors are needed

HiDPI cursors are twice as large as regular cursors, allowing them to be
more easily seen on a HiDPI system

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16231
This commit is contained in:
Seth Hillbrand 2024-02-20 16:14:02 -08:00
parent b2e0c2606f
commit ab0426d620
44 changed files with 1318 additions and 367 deletions

View File

@ -657,8 +657,12 @@ void EDA_DRAW_PANEL_GAL::onShowTimer( wxTimerEvent& aEvent )
void EDA_DRAW_PANEL_GAL::SetCurrentCursor( KICURSOR aCursor )
{
if( m_gal )
m_gal->SetNativeCursorStyle( aCursor );
if( !m_gal )
return;
DPI_SCALING_COMMON dpi( nullptr, m_parent );
m_gal->SetNativeCursorStyle( aCursor, dpi.GetContentScaleFactor() >= 2.0 );
}

View File

@ -1672,13 +1672,16 @@ bool CAIRO_GAL::updatedGalDisplayOptions( const GAL_DISPLAY_OPTIONS& aOptions )
}
bool CAIRO_GAL::SetNativeCursorStyle( KICURSOR aCursor )
bool CAIRO_GAL::SetNativeCursorStyle( KICURSOR aCursor, bool aHiDPI )
{
// Store the current cursor type and get the wxCursor for it
if( !GAL::SetNativeCursorStyle( aCursor ) )
if( !GAL::SetNativeCursorStyle( aCursor, aHiDPI ) )
return false;
m_currentwxCursor = CURSOR_STORE::GetCursor( m_currentNativeCursor );
if( aHiDPI )
m_currentwxCursor = CURSOR_STORE::GetHiDPICursor( m_currentNativeCursor );
else
m_currentwxCursor = CURSOR_STORE::GetCursor( m_currentNativeCursor );
// Update the cursor in the wx control
wxWindow::SetCursor( m_currentwxCursor );

View File

@ -44,85 +44,76 @@
#include <cursors/cursor-subtract.xpm>
#include <cursors/cursor-text.xpm>
#include <cursors/cursor-xor.xpm>
#include <cursors/cursor-zoom.xpm>
#include <cursors/cursor-zoom-in.xpm>
#include <cursors/cursor-zoom-out.xpm>
#include <cursors/cursor_tune.xpm>
#include <cursors/voltage_probe.xpm>
#include <cursors/current_probe.xpm>
// HiDPI cursor files
#include <cursors/cursor-add64.xpm>
#include <cursors/cursor-component64.xpm>
#include <cursors/cursor-eraser64.xpm>
#include <cursors/cursor-label-global64.xpm>
#include <cursors/cursor-label-hier64.xpm>
#include <cursors/cursor-label-net64.xpm>
#include <cursors/cursor-line-bus64.xpm>
#include <cursors/cursor-line-graphic64.xpm>
#include <cursors/cursor-line-wire64.xpm>
#include <cursors/cursor-line-wire-add64.xpm>
#include <cursors/cursor-measure64.xpm>
#include <cursors/cursor-pencil64.xpm>
#include <cursors/cursor-select-lasso64.xpm>
#include <cursors/cursor-select-window64.xpm>
#include <cursors/cursor-subtract64.xpm>
#include <cursors/cursor-text64.xpm>
#include <cursors/cursor-xor64.xpm>
#include <cursors/cursor-zoom-in64.xpm>
#include <cursors/cursor-zoom-out64.xpm>
#include <cursors/cursor_tune64.xpm>
#include <cursors/voltage_probe64.xpm>
#include <cursors/current_probe64.xpm>
// Under MSW, the standard cursor is white on black. Elsewhere it is black on white
#ifdef __WINDOWS__
#include <cursors/cursor-place.xpm>
#include <cursors/cursor-place64.xpm>
#include <cursors/cursor-select-m.xpm>
#include <cursors/cursor-select-m64.xpm>
#else
#include <cursors/cursor-place-black.xpm>
#include <cursors/cursor-place-black64.xpm>
#include <cursors/cursor-select-m-black.xpm>
#include <cursors/cursor-select-m-black64.xpm>
#endif
#include <wx/bitmap.h>
#include <wx/debug.h>
static const unsigned char voltage_probe[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00,
0x00, 0x30, 0x06, 0x00, 0x00, 0x18, 0x0c, 0x00, 0x00, 0x0e, 0x08, 0x00, 0x80, 0x07, 0x08, 0x00,
0xc0, 0x07, 0x18, 0x00, 0xe0, 0x07, 0x30, 0x00, 0xf0, 0x03, 0x60, 0x00, 0xf8, 0x01, 0x00, 0x00,
0xfc, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0xc0,
0x0f, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0xf0,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
static const unsigned char current_probe[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x60, 0x06, 0x00,
0x00, 0x30, 0x0c, 0x00, 0x00, 0x1c, 0x08, 0x00, 0x00, 0x0f, 0x08, 0x00, 0x80, 0x0f, 0x18, 0x00,
0xc0, 0x0f, 0x30, 0x80, 0xe1, 0x07, 0x60, 0x80, 0xf1, 0x03, 0x00, 0x80, 0xf9, 0x01, 0x00, 0x80,
0xfd, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0xc0,
0x0f, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, 0xc6, 0x01, 0x00, 0x00, 0x83,
0x01, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xfc,
0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00 };
static const unsigned char cursor_tune[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xc0, 0x0f, 0x00,
0x00, 0xe0, 0x1f, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0xfc, 0x07, 0x00,
0x00, 0xfe, 0x03, 0x00, 0x00, 0xff, 0x01, 0x00, 0x80, 0xff, 0x00, 0x00, 0xc0, 0x7f, 0x00, 0x00,
0xe0, 0x3f, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00,
0xfc, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x50,
0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x0a,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 };
static const unsigned char cursor_tune_mask[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xc0, 0x0f,
0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0xfc, 0x07,
0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, 0xff, 0x01, 0x00, 0x80, 0xff, 0x00, 0x00, 0xc0, 0x7f, 0x00,
0x00, 0xe0, 0x3f, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0xfc, 0x07, 0x00,
0x00, 0xfc, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00,
0x00, 0x07, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00,
0x70, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
0x0e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 };
static const std::vector<CURSOR_STORE::CURSOR_DEF> standard_cursors = {
{
KICURSOR::VOLTAGE_PROBE,
voltage_probe,
voltage_probe,
nullptr,
nullptr,
voltage_probe_xpm,
{ 32, 32 },
{ 1, 31 },
},
{
KICURSOR::CURRENT_PROBE,
current_probe,
current_probe,
nullptr,
nullptr,
current_probe_xpm,
{ 32, 32 },
{ 4, 27 },
},
{
KICURSOR::TUNE,
cursor_tune,
cursor_tune_mask,
nullptr,
nullptr,
cursor_tune_xpm,
{ 32, 32 },
{ 1, 30 },
},
@ -198,7 +189,7 @@ static const std::vector<CURSOR_STORE::CURSOR_DEF> standard_cursors = {
KICURSOR::ZOOM_IN,
nullptr,
nullptr,
cursor_zoom_xpm,
cursor_zoom_in_xpm,
{ 32, 32 },
{ 6, 6 },
},
@ -305,6 +296,209 @@ static const std::vector<CURSOR_STORE::CURSOR_DEF> standard_cursors = {
};
static const std::vector<CURSOR_STORE::CURSOR_DEF> hidpi_cursors = {
{
KICURSOR::VOLTAGE_PROBE,
nullptr,
nullptr,
voltage_probe64_xpm,
{ 64, 64 },
{ 1, 62 },
},
{
KICURSOR::CURRENT_PROBE,
nullptr,
nullptr,
current_probe64_xpm,
{ 64, 64 },
{ 8, 54 },
},
{
KICURSOR::TUNE,
nullptr,
nullptr,
cursor_tune64_xpm,
{ 64, 64 },
{ 2, 60 },
},
{
KICURSOR::PENCIL,
nullptr,
nullptr,
cursor_pencil64_xpm,
{ 64, 64 },
{ 8, 54 },
},
{
KICURSOR::MOVING,
nullptr,
nullptr,
#ifdef __WINDOWS__
cursor_select_m64_xpm,
#else
cursor_select_m_black64_xpm,
#endif
{ 64, 64 },
{ 2, 2 },
},
{
KICURSOR::REMOVE,
nullptr,
nullptr,
cursor_eraser64_xpm,
{ 64, 64 },
{ 8, 8 },
},
{
KICURSOR::TEXT,
nullptr,
nullptr,
cursor_text64_xpm,
{ 64, 64 },
{ 14, 14 },
},
{
KICURSOR::MEASURE,
nullptr,
nullptr,
cursor_measure64_xpm,
{ 64, 64 },
{ 8, 8 },
},
{
KICURSOR::ADD,
nullptr,
nullptr,
cursor_add64_xpm,
{ 64, 64 },
{ 14, 14 },
},
{
KICURSOR::SUBTRACT,
nullptr,
nullptr,
cursor_subtract64_xpm,
{ 64, 64 },
{ 14, 14 },
},
{
KICURSOR::XOR,
nullptr,
nullptr,
cursor_xor64_xpm,
{ 64, 64 },
{ 14, 14 },
},
{
KICURSOR::ZOOM_IN,
nullptr,
nullptr,
cursor_zoom_in64_xpm,
{ 64, 64 },
{ 12, 12 },
},
{
KICURSOR::ZOOM_OUT,
nullptr,
nullptr,
cursor_zoom_out64_xpm,
{ 64, 64 },
{ 12, 12 },
},
{
KICURSOR::LABEL_NET,
nullptr,
nullptr,
cursor_label_net64_xpm,
{ 64, 64 },
{ 14, 14 },
},
{
KICURSOR::LABEL_GLOBAL,
nullptr,
nullptr,
cursor_label_global64_xpm,
{ 64, 64 },
{ 14, 14 },
},
{
KICURSOR::COMPONENT,
nullptr,
nullptr,
cursor_component64_xpm,
{ 64, 64 },
{ 14, 14 },
},
{
KICURSOR::SELECT_LASSO,
nullptr,
nullptr,
cursor_select_lasso64_xpm,
{ 64, 64 },
{ 14, 14 },
},
{
KICURSOR::SELECT_WINDOW,
nullptr,
nullptr,
cursor_select_window64_xpm,
{ 64, 64 },
{ 14, 20 },
},
{
KICURSOR::LINE_BUS,
nullptr,
nullptr,
cursor_line_bus64_xpm,
{ 64, 64 },
{ 10, 52 },
},
{
KICURSOR::LINE_WIRE,
nullptr,
nullptr,
cursor_line_wire64_xpm,
{ 64, 64 },
{ 10, 52 },
},
{
KICURSOR::LINE_WIRE_ADD,
nullptr,
nullptr,
cursor_line_wire_add64_xpm,
{ 64, 64 },
{ 10, 52 },
},
{
KICURSOR::LINE_GRAPHIC,
nullptr,
nullptr,
cursor_line_graphic64_xpm,
{ 64, 64 },
{ 10, 52 },
},
{
KICURSOR::LABEL_HIER,
nullptr,
nullptr,
cursor_label_hier64_xpm,
{ 64, 64 },
{ 14, 14 },
},
{
KICURSOR::PLACE,
nullptr,
nullptr,
#ifdef __WINDOWS__
cursor_place64_xpm,
#else
cursor_place_black64_xpm,
#endif
{ 64, 64 },
{ 2, 2 },
},
};
/**
* Construct a cursor for the given definition.
*
@ -393,8 +587,8 @@ const wxCursor& CURSOR_STORE::Get( KICURSOR aIdKey ) const
const wxCursor CURSOR_STORE::GetCursor( KICURSOR aCursorType )
{
wxStockCursor stock =
GetStockCursor( aCursorType );
wxStockCursor stock = GetStockCursor( aCursorType );
if( stock != wxCURSOR_MAX )
{
return wxCursor( stock );
@ -405,6 +599,20 @@ const wxCursor CURSOR_STORE::GetCursor( KICURSOR aCursorType )
}
const wxCursor CURSOR_STORE::GetHiDPICursor( KICURSOR aCursorType )
{
wxStockCursor stock = GetStockCursor( aCursorType );
if( stock != wxCURSOR_MAX )
{
return wxCursor( stock );
}
static CURSOR_STORE store( hidpi_cursors );
return store.Get( aCursorType );
}
wxStockCursor CURSOR_STORE::GetStockCursor( KICURSOR aCursorType )
{
wxStockCursor stockCursor;

View File

@ -81,7 +81,7 @@ GAL::GAL( GAL_DISPLAY_OPTIONS& aDisplayOptions ) :
SetCursorEnabled( false );
// Initialize the native widget to an arrow cursor
SetNativeCursorStyle( KICURSOR::ARROW );
SetNativeCursorStyle( KICURSOR::ARROW, false );
// Initialize text properties
ResetTextAttributes();
@ -277,7 +277,7 @@ void GAL::BitmapText( const wxString& aText, const VECTOR2I& aPosition, const ED
}
bool GAL::SetNativeCursorStyle( KICURSOR aCursor )
bool GAL::SetNativeCursorStyle( KICURSOR aCursor, bool aHiDPI )
{
if( m_currentNativeCursor == aCursor )
return false;

View File

@ -2150,13 +2150,16 @@ void OPENGL_GAL::EndDiffLayer()
}
bool OPENGL_GAL::SetNativeCursorStyle( KICURSOR aCursor )
bool OPENGL_GAL::SetNativeCursorStyle( KICURSOR aCursor, bool aHiDPI )
{
// Store the current cursor type and get the wxCursor for it
if( !GAL::SetNativeCursorStyle( aCursor ) )
if( !GAL::SetNativeCursorStyle( aCursor, aHiDPI ) )
return false;
m_currentwxCursor = CURSOR_STORE::GetCursor( m_currentNativeCursor );
if( aHiDPI )
m_currentwxCursor = CURSOR_STORE::GetHiDPICursor( m_currentNativeCursor );
else
m_currentwxCursor = CURSOR_STORE::GetCursor( m_currentNativeCursor );
// Update the cursor in the wx control
HIDPI_GL_CANVAS::SetCursor( m_currentwxCursor );

View File

@ -444,7 +444,7 @@ public:
}
/// @copydoc GAL::SetNativeCursorStyle()
bool SetNativeCursorStyle( KICURSOR aCursor ) override;
bool SetNativeCursorStyle( KICURSOR aCursor, bool aHiDPI ) override;
/// @copydoc GAL::BeginDrawing()
void BeginDrawing() override;

View File

@ -34,32 +34,59 @@ enum class KICURSOR
{
DEFAULT,
ARROW,
ARROW64,
MOVING,
MOVING64,
PENCIL,
PENCIL64,
REMOVE,
REMOVE64,
HAND,
HAND64,
BULLSEYE,
BULLSEYE64,
VOLTAGE_PROBE,
VOLTAGE_PROBE64,
CURRENT_PROBE,
CURRENT_PROBE64,
TUNE,
TUNE64,
TEXT,
TEXT64,
MEASURE,
MEASURE64,
ADD,
ADD64,
SUBTRACT,
SUBTRACT64,
XOR,
XOR64,
ZOOM_IN,
ZOOM_IN64,
ZOOM_OUT,
ZOOM_OUT64,
LABEL_NET,
LABEL_NET64,
LABEL_GLOBAL,
LABEL_GLOBAL64,
COMPONENT,
COMPONENT64,
SELECT_WINDOW,
SELECT_WINDOW64,
SELECT_LASSO,
SELECT_LASSO64,
LINE_BUS,
LINE_BUS64,
LINE_GRAPHIC,
LINE_GRAPHIC64,
LINE_WIRE,
LINE_WIRE64,
LINE_WIRE_ADD,
LINE_WIRE_ADD64,
LABEL_HIER,
PLACE
LABEL_HIER64,
PLACE,
PLACE64
};
/**
@ -113,6 +140,8 @@ public:
static const wxCursor GetCursor( KICURSOR aCursorType );
static const wxCursor GetHiDPICursor( KICURSOR aCursorType );
static wxStockCursor GetStockCursor( KICURSOR aCursorType );
private:

View File

@ -886,7 +886,7 @@ public:
* @param aCursor is the cursor to use in the native panel
* @return true if the cursor was updated, false if the cursor given was already set
*/
virtual bool SetNativeCursorStyle( KICURSOR aCursor );
virtual bool SetNativeCursorStyle( KICURSOR aCursor, bool aHiDPI );
/**
* Enable/disable cursor.

View File

@ -276,7 +276,7 @@ public:
// -------
/// @copydoc GAL::SetNativeCursorStyle()
bool SetNativeCursorStyle( KICURSOR aCursor ) override;
bool SetNativeCursorStyle( KICURSOR aCursor, bool aHiDPI ) override;
/// @copydoc GAL::DrawCursor()
void DrawCursor( const VECTOR2D& aCursorPosition ) override;

View File

@ -0,0 +1,37 @@
/* XPM */
static char const* current_probe_xpm[] = {
"32 32 2 1",
" c None",
". c #000000",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" .... ",
" .. .. ",
" .. .. ",
" ... . ",
" .... . ",
" ..... .. ",
" ...... .. ",
" .. ...... .. ",
" .. ...... ",
" .. ...... ",
" .. ...... ",
" ........ ",
" ....... ",
" ...... ",
" ...... ",
" ........ ",
" ......... ",
" .. ... ",
".. .. ",
".. .. ",
".. .. ",
" . .. ",
" ...... ",
" ... "};

View File

@ -0,0 +1,70 @@
/* XPM */
static char const * current_probe64_xpm[] = {
"64 64 3 1",
" c None",
". c #FFFFFF",
"+ c #000000",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ...... ",
" .++++++. ",
" .++++++++. ",
" .+++....+++. ",
" .+++. .+++. ",
" .+++. .+++. ",
" ...+++. .+++. ",
" .+++++. .++. ",
" ...+++++. .++. ",
" .+++++++. .++. ",
" .++++++++. .++. ",
" .+++++++++. .+++. ",
" .++++++++++. .+++. ",
" .+++++++++++. .+++. ",
" .... .+++++++++++. .+++. ",
" .++++. .+++++++++++. .+++. ",
" .++++. .+++++++++++. .+++. ",
" .++++. .+++++++++++. ... ",
" .++++. .+++++++++++. ",
" .++++. .+++++++++++. ",
" .++++. .+++++++++++. ",
" .++++. .+++++++++++. ",
" .++++..+++++++++++. ",
" .++++.+++++++++++. ",
" .+++++++++++++++. ",
" .++++++++++++++. ",
" .+++++++++++++. ",
" .++++++++++++. ",
" ..+++++++++++. ",
" .++++++++++++. ",
" .....+++++++++++. ",
" .+++++++++++++++. ",
" ...+++++++++++++++. ",
" .+++++++++++++++++. ",
" .+++++++++++++++++. ",
" .++++......++++++. ",
" .+++. .+++++. ",
".+++. .++++. ",
".+++. .++++. ",
".+++. .++++. ",
".+++. .++++. ",
".+++. .++++. ",
".+++. .+++. ",
" .++. .+++. ",
" .+. .......++++. ",
" . .+++++++++++. ",
" .+++++++++++. ",
" ..++++++... ",
" ...... "};

View File

@ -1,5 +1,5 @@
/* XPM */
static char * cursor_add64_xpm[] = {
static char const * cursor_add64_xpm[] = {
"64 64 3 1",
" c None",
". c #000000",

View File

@ -1,5 +1,5 @@
/* XPM */
static char * cursor_component64_xpm[] = {
static char const * cursor_component64_xpm[] = {
"64 64 3 1",
" c None",
". c #000000",

View File

@ -1,5 +1,5 @@
/* XPM */
static char * cursor_eraser64_xpm[] = {
static char const * cursor_eraser64_xpm[] = {
"64 64 3 1",
" c None",
". c #000000",

View File

@ -1,70 +1,197 @@
/* XPM */
static char * cursor_label_global64_xpm[] = {
"64 64 3 1",
" c None",
". c #000000",
"+ c #FFFFFF",
" ",
" ++ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" ++++++++++++..++++++++++++ ",
" +............ ............+ ",
" +............ ............+ ",
" ++++++++++++..++++++++++++ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" ++ ++++++++++++++++++++++++++++ ",
" +............................+ ",
" +.............................+ ",
" +..+++++++++++++++++++++++++...+ ",
" +..+ ++++++++ +...+ ",
" +..+ +......+ +...+ ",
" +..+ +......+ +...+ ",
" +..+ +.......++ +...+ ",
" +..+ +........+ +...+ ",
" +..+ +.........++ +...+ ",
" +..+ +..........+ +...+ ",
" +..+ +..........+ +...+ ",
" +..+ +............+ +...+ ",
" +..+ +.....++.....+ +...+ ",
" +..+ +....+ +....++ +...+ ",
" +..+ +.....+ +.....+ +...+ ",
" +..+ +....+ +....+ +...+ ",
" +..+ +.....+ +.....+ +...+",
" +..+ +......++++......+ +...+",
" +..+ +................+ +...+ ",
" +..+ ++................++ +...+ ",
" +..+ +..................+ +...+ ",
" +..+ +....................+ +...+ ",
" +..+ +......++++++++......+ +...+ ",
" +..+ ++.....++ ++.....++ +...+ ",
" +..+ +.....++ ++.....+ +...+ ",
" +..+++.....+ +.....++ +...+ ",
" +..++......+ +......+ +...+ ",
" +..++......+ +......+ +...+ ",
" +..+ ++++++ ++++++ +...+ ",
" +..+ +...+ ",
" +..+ +...+ ",
" +..+++++++++++++++++++++++++...+ ",
" +.............................+ ",
" +............................+ ",
" +++++++++++++++++++++++++++++ "};
static char const * cursor_label_global64_xpm[] = {
"64 64 130 2",
" c None",
". c #FFFFFF",
"+ c #000000",
"@ c #E6E6E6",
"# c #E5E5E5",
"$ c #E4E4E4",
"% c #686868",
"& c #1E1E1E",
"* c #818181",
"= c #DFDFDF",
"- c #212121",
"; c #717171",
"> c #EEEEEE",
", c #ABABAB",
"' c #141414",
") c #565656",
"! c #B6B6B6",
"~ c #636363",
"{ c #070707",
"] c #181818",
"^ c #0D0D0D",
"/ c #303030",
"( c #696969",
"_ c #D3D3D3",
": c #353535",
"< c #707070",
"[ c #4C4C4C",
"} c #757575",
"| c #AEAEAE",
"1 c #2A2A2A",
"2 c #AAAAAA",
"3 c #797979",
"4 c #020202",
"5 c #676767",
"6 c #646464",
"7 c #131313",
"8 c #4D4D4D",
"9 c #CBCBCB",
"0 c #A1A1A1",
"a c #2F2F2F",
"b c #373737",
"c c #505050",
"d c #010101",
"e c #6D6D6D",
"f c #D5D5D5",
"g c #B8B8B8",
"h c #424242",
"i c #959595",
"j c #AFAFAF",
"k c #3C3C3C",
"l c #919191",
"m c #D8D8D8",
"n c #575757",
"o c #747474",
"p c #1F1F1F",
"q c #F1F1F1",
"r c #090909",
"s c #3E3E3E",
"t c #999999",
"u c #E3E3E3",
"v c #4A4A4A",
"w c #C2C2C2",
"x c #858585",
"y c #282828",
"z c #A9A9A9",
"A c #ADADAD",
"B c #4E4E4E",
"C c #727272",
"D c #D6D6D6",
"E c #B0B0B0",
"F c #3D3D3D",
"G c #808080",
"H c #8F8F8F",
"I c #242424",
"J c #8D8D8D",
"K c #EAEAEA",
"L c #FEFEFE",
"M c #FDFDFD",
"N c #DBDBDB",
"O c #7E7E7E",
"P c #868686",
"Q c #8E8E8E",
"R c #898989",
"S c #7B7B7B",
"T c #272727",
"U c #5E5E5E",
"V c #232323",
"W c #3B3B3B",
"X c #DADADA",
"Y c #E1E1E1",
"Z c #909090",
"` c #BFBFBF",
" . c #BCBCBC",
".. c #6B6B6B",
"+. c #474747",
"@. c #7C7C7C",
"#. c #7A7A7A",
"$. c #767676",
"%. c #737373",
"&. c #202020",
"*. c #191919",
"=. c #A2A2A2",
"-. c #FCFCFC",
";. c #030303",
">. c #484848",
",. c #EBEBEB",
"'. c #9F9F9F",
"). c #4F4F4F",
"!. c #C6C6C6",
"~. c #FBFBFB",
"{. c #B1B1B1",
"]. c #121212",
"^. c #C9C9C9",
"/. c #E0E0E0",
"(. c #DCDCDC",
"_. c #1C1C1C",
":. c #989898",
"<. c #F6F6F6",
"[. c #CACACA",
"}. c #787878",
"|. c #F4F4F4",
"1. c #E8E8E8",
"2. c #2D2D2D",
"3. c #ECECEC",
"4. c #F0F0F0",
"5. c #DDDDDD",
"6. c #E2E2E2",
"7. c #DEDEDE",
"8. c #D7D7D7",
"9. c #F9F9F9",
" ",
" . . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . . . . . . . . . . . . + + . . . . . . . . . . . . ",
" . + + + + + + + + + + + + + + + + + + + + + + + + . ",
" . + + + + + + + + + + + + + + + + + + + + + + + + . ",
" . . . . . . . . . . . . + + . . . . . . . . . . . . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . + + . ",
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + . ",
" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . ",
" . + + . . . . . . . . . . . . . . . . . . . . . . . . . + + + . ",
" . + + . . + + + . ",
" . + + . @ # # # # # # $ . + + + . ",
" . + + . % + + + + + + + & * . + + + . ",
" . + + . = - + + + + + + + + ; > . + + + . ",
" . + + . , ' + + + + + + + + ) ! . + + + . ",
" . + + . ~ { + + + ] ^ + + + / ( . + + + . ",
" . + + . _ : + + + + < [ + + + + } . + + + . ",
" . + + . | 1 + + + + 2 3 4 + + + 5 ! . + + + . ",
" . + + . 6 7 + + + 8 9 0 a + + + b < . + + + . ",
" . + + . = c d + + + e f g h + + + + i . + + + . ",
" . + + . j k + + + + l $ m n + + + + } . + + + . ",
" . + + . o p + + + + , q 5 r + + + s t . + + + . ",
" . + + . u % + + + + v w x y + + + + z . + + + . ",
" . + + . A B + + + + C D E F + + + + G . + + + . ",
" . + + . H I + + + + J K L M N v + + + + F w . + + + . ",
" . + + . u O + + + + + c P Q R S T + + + + + ! . + + + . ",
" . + + . | U + + + + + + + + + + + + + + + + R . + + + . ",
" . + + . 2 V + + + + + + + + + + + + + + + + W X . + + + . ",
" . + + . Y Z + + + + + + + + + + + + + + + + + + ` . + + + . ",
" . + + . ...+ + + + + +.@.#.$.%.} $.&.+ + + + + Z . + + + . ",
" . + + . ` y + + + + *.=.. . . . . -...;.+ + + + >.@ . + + + . ",
" . + + . ,.'.+ + + + + ).!.. ~.{.].+ + + + + ^. . + + + . ",
" . + + . /.+ + + + + + < K (._.+ + + + + :.<. . + + + . ",
" . + + . [.].+ + + + + }.|. 1.2.+ + + + + v 3. . + + + . ",
" . + + . 4.(.(.(.(.(.5.6. 7.8.(.(.(.(.5.9. . + + + . ",
" . + + . . + + + . ",
" . + + . . + + + . ",
" . + + . . + + + . ",
" . + + . . . . . . . . . . . . . . . . . . . . . . . . . + + + . ",
" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . ",
" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + . ",
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "};

View File

@ -1,67 +1,124 @@
/* XPM */
static char * cursor_label_hier64_xpm[] = {
"64 64 3 1",
static char const * cursor_label_hier64_xpm[] = {
"64 64 60 1",
" c None",
". c #000000",
"+ c #FFFFFF",
". c #FFFFFF",
"+ c #000000",
"@ c #868686",
"# c #FEFEFE",
"$ c #1C1C1C",
"% c #CFCFCF",
"& c #9A9A9A",
"* c #3D3D3D",
"= c #313131",
"- c #DCDCDC",
"; c #9D9D9D",
"> c #ABABAB",
", c #262626",
"' c #D7D7D7",
") c #5C5C5C",
"! c #767676",
"~ c #F0F0F0",
"{ c #E7E7E7",
"] c #939393",
"^ c #999999",
"/ c #BBBBBB",
"( c #BEBEBE",
"_ c #C5C5C5",
": c #787878",
"< c #E2E2E2",
"[ c #EBEBEB",
"} c #F1F1F1",
"| c #EAEAEA",
"1 c #C8C8C8",
"2 c #9C9C9C",
"3 c #FCFCFC",
"4 c #8E8E8E",
"5 c #BFBFBF",
"6 c #C3C3C3",
"7 c #F9F9F9",
"8 c #2A2A2A",
"9 c #DEDEDE",
"0 c #FAFAFA",
"a c #D5D5D5",
"b c #A1A1A1",
"c c #FDFDFD",
"d c #494949",
"e c #E0E0E0",
"f c #B2B2B2",
"g c #686868",
"h c #303030",
"i c #373737",
"j c #ECECEC",
"k c #818181",
"l c #8D8D8D",
"m c #C0C0C0",
"n c #D8D8D8",
"o c #828282",
"p c #F7F7F7",
"q c #F5F5F5",
"r c #161616",
"s c #464646",
"t c #F3F3F3",
"u c #484848",
" ",
" ++ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" ++++++++++++..++++++++++++ ",
" +............ ............+ ",
" +............ ............+ ",
" ++++++++++++..++++++++++++ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" ++ ",
" .. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" ............++............ ",
" .++++++++++++ ++++++++++++. ",
" .++++++++++++ ++++++++++++. ",
" ............++............ ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .. ",
" ",
" ",
" ",
" ++++++++ ",
" +........+ ",
" +........+ ",
" +..........+ +++++++++ ",
" +..........+ +........++ ",
" +............+ +.........++ ",
" +............+ +..+++++...++ ",
" +............+ +..+ +...++ ",
" ++.....++.....++ +..+ +...++ ",
" +.....+ +.....+ +..+ +...++ ",
" +.....+ +.....+ +..+ +...++ ",
" +......+ +......+ +..+ +...++ ",
" +......+ +......+ +..+ +...+ ",
" ++.....+ +.....++ +..+ +...+ ",
" +......++++++......+ +..+ +...++ ",
" +..................+ +..+ +...++ ",
" ++..................++ +..+ +...++ ",
" +....................+ +..+ +...++ ",
" ++....................++ +..+ +...++ ",
" +........++++++........+ +..+++++...++ ",
" ++......+++ +++......++ +.........++ ",
" +.......+ +.......+ +........++ ",
" +......++ ++......+ +++++++++ ",
" +......+ +......+ ",
" +.....++ ++.....+ ",
" +++++++ +++++++ ",
" ......... ",
" @+++++++++@ ",
" #$+++++++++$# ",
" %+++++++++++% ",
" &+++++++++++& ......... ",
" *+++++=+++++* .++++++++.. ",
" -++++++;++++++- .+++++++++.. ",
" >+++++,',+++++> .++.....+++.. ",
" )+++++!~!+++++) .++. .+++.. ",
" {++++++].^++++++{ .++. .+++.. ",
" /++++++(._++++++/ .++. .+++.. ",
" :++++++< [++++++: .++. .+++.. ",
" }++++++)| )++++++} .++. .+++.. ",
" 1++++++23 ;++++++1 .++. .+++. ",
" 4++++++5 6++++++4 .++. .+++. ",
" 78++++++9707<++++++87 .++. .+++.. ",
" a+++++++++++++++++++a .++. .+++.. ",
" b+++++++++++++++++++b .++. .+++.. ",
" cd+++++++++++++++++++dc .++. .+++.. ",
" e+++++++++++++++++++++e .++. .+++.. ",
" f+++++++++++++++++++++f .++.....+++.. ",
" .g++++++h.......i++++++g. .+++++++++.. ",
" j+++++++k. .l+++++++j .++++++++.. ",
" .m+++++++n 9+++++++m. ......... ",
" .o+++++++} p+++++++o. ",
" qr++++++st .u++++++rq ",
" ......... ......... ",
" ",
" ",
" ",

View File

@ -1,67 +1,124 @@
/* XPM */
static char * cursor_label_net64_xpm[] = {
"64 64 3 1",
static char const * cursor_label_net64_xpm[] = {
"64 64 60 1",
" c None",
". c #000000",
"+ c #FFFFFF",
". c #FFFFFF",
"+ c #000000",
"@ c #868686",
"# c #FEFEFE",
"$ c #1C1C1C",
"% c #CFCFCF",
"& c #9A9A9A",
"* c #3D3D3D",
"= c #313131",
"- c #DCDCDC",
"; c #9D9D9D",
"> c #ABABAB",
", c #262626",
"' c #D7D7D7",
") c #5C5C5C",
"! c #767676",
"~ c #F0F0F0",
"{ c #E7E7E7",
"] c #939393",
"^ c #999999",
"/ c #BBBBBB",
"( c #BEBEBE",
"_ c #C5C5C5",
": c #787878",
"< c #E2E2E2",
"[ c #EBEBEB",
"} c #F1F1F1",
"| c #EAEAEA",
"1 c #C8C8C8",
"2 c #9C9C9C",
"3 c #FCFCFC",
"4 c #8E8E8E",
"5 c #BFBFBF",
"6 c #C3C3C3",
"7 c #F9F9F9",
"8 c #2A2A2A",
"9 c #DEDEDE",
"0 c #FAFAFA",
"a c #D5D5D5",
"b c #A1A1A1",
"c c #FDFDFD",
"d c #494949",
"e c #E0E0E0",
"f c #B2B2B2",
"g c #686868",
"h c #303030",
"i c #373737",
"j c #ECECEC",
"k c #818181",
"l c #8D8D8D",
"m c #C0C0C0",
"n c #D8D8D8",
"o c #828282",
"p c #F7F7F7",
"q c #F5F5F5",
"r c #161616",
"s c #464646",
"t c #F3F3F3",
"u c #484848",
" ",
" ++ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" ++++++++++++..++++++++++++ ",
" +............ ............+ ",
" +............ ............+ ",
" ++++++++++++..++++++++++++ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ++++++++ ",
" +..+ +........+ ",
" +..+ +........+ ",
" +..+ +..........+ ",
" +..+ +..........+ ",
" ++ +............+ ",
" ++ +............+ ",
" +............+ ",
" ++.....++.....++ ",
" +.....+ +.....+ ",
" +.....+ +.....+ ",
" +......+ +......+ ",
" +......+ +......+ ",
" ++.....+ +.....++ ",
" +......++++++......+ ",
" +..................+ ",
" ++..................++ ",
" +....................+ ",
" ++....................++ ",
" +........++++++........+ ",
" ++......+++ +++......++ ",
" +.......+ +.......+ ",
" +......++ ++......+ ",
" +......+ +......+ ",
" +.....++ ++.....+ ",
" +++++++ +++++++ ",
" .. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" ............++............ ",
" .++++++++++++ ++++++++++++. ",
" .++++++++++++ ++++++++++++. ",
" ............++............ ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ......... ",
" .++. @+++++++++@ ",
" .++. #$+++++++++$# ",
" .++. %+++++++++++% ",
" .++. &+++++++++++& ",
" .++. *+++++=+++++* ",
" .. -++++++;++++++- ",
" .. >+++++,',+++++> ",
" )+++++!~!+++++) ",
" {++++++].^++++++{ ",
" /++++++(._++++++/ ",
" :++++++< [++++++: ",
" }++++++)| )++++++} ",
" 1++++++23 ;++++++1 ",
" 4++++++5 6++++++4 ",
" 78++++++9707<++++++87 ",
" a+++++++++++++++++++a ",
" b+++++++++++++++++++b ",
" cd+++++++++++++++++++dc ",
" e+++++++++++++++++++++e ",
" f+++++++++++++++++++++f ",
" .g++++++h.......i++++++g. ",
" j+++++++k. .l+++++++j ",
" .m+++++++n 9+++++++m. ",
" .o+++++++} p+++++++o. ",
" qr++++++st .u++++++rq ",
" ......... ......... ",
" ",
" ",
" ",
" ########################################## ",
" #++++++++++++++++++++++++++++++++++++++++++# ",
" #++++++++++++++++++++++++++++++++++++++++++# ",
" #++++++++++++++++++++++++++++++++++++++++++# ",
" .......................................... ",
" .......................................... ",
" .......................................... ",
" .......................................... ",
" ++++++++++++++++++++++++++++++++++++++++++ ",
" ++++++++++++++++++++++++++++++++++++++++++ ",
" ",
" ",
" ",
" ",

View File

@ -1,5 +1,5 @@
/* XPM */
static char * cursor_line_bus64_xpm[] = {
static char const * cursor_line_bus64_xpm[] = {
"64 64 4 1",
" c None",
". c #000000",

View File

@ -1,5 +1,5 @@
/* XPM */
static char * cursor_line_graphic64_xpm[] = {
static char const * cursor_line_graphic64_xpm[] = {
"64 64 3 1",
" c None",
". c #000000",

View File

@ -1,5 +1,5 @@
/* XPM */
static char * cursor_line_wire_add64_xpm[] = {
static char const * cursor_line_wire_add64_xpm[] = {
"64 64 4 1",
" c None",
". c #000000",

View File

@ -0,0 +1,71 @@
/* XPM */
static char const * cursor_line_wire64_xpm[] = {
"64 64 4 1",
" c None",
". c #FFFFFF",
"+ c #008000",
"@ c #000000",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" .. ",
" .... ",
" ..++.. ",
" ..++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..+++++.. ",
" ..++++.. ",
" ..++.. ",
" .. .... ",
" .@@. .. ",
" .@@. ",
" .@@. ",
" .@@. ",
" .@@. ",
" .@@. ",
" .@@. ",
" ........@@........ ",
" .@@@@@@@@ @@@@@@@@. ",
" .@@@@@@@@ @@@@@@@@. ",
" ........@@........ ",
" .@@. ",
" .@@. ",
" .@@. ",
" .@@. ",
" .@@. ",
" .@@. ",
" .@@. ",
" .. ",
" "};

View File

@ -1,5 +1,5 @@
/* XPM */
static char * cursor_measure64_xpm[] = {
static char const * cursor_measure64_xpm[] = {
"64 64 3 1",
" c None",
". c #000000",

View File

@ -1,5 +1,5 @@
/* XPM */
static char * cursor_pencil64_xpm[] = {
static char const * cursor_pencil64_xpm[] = {
"64 64 3 1",
" c None",
". c #000000",

View File

@ -1,5 +1,5 @@
/* XPM */
static char * cursor_place_black64_xpm[] = {
static char const * cursor_place_black64_xpm[] = {
"64 64 4 1",
" c None",
". c #000000",

View File

@ -1,5 +1,5 @@
/* XPM */
static char * cursor_place64_xpm[] = {
static char const * cursor_place64_xpm[] = {
"64 64 4 1",
" c None",
". c #000000",

View File

@ -1,5 +1,5 @@
/* XPM */
static char * cursor_select_lasso64_xpm[] = {
static char const * cursor_select_lasso64_xpm[] = {
"64 64 3 1",
" c None",
". c #000000",

View File

@ -1,5 +1,5 @@
/* XPM */
static char * cursor_select_m_black64_xpm[] = {
static char const * cursor_select_m_black64_xpm[] = {
"64 64 3 1",
" c None",
". c #000000",

View File

@ -1,5 +1,5 @@
/* XPM */
static char * cursor_select_m64_xpm[] = {
static char const * cursor_select_m64_xpm[] = {
"64 64 3 1",
" c None",
". c #000000",

View File

@ -1,5 +1,5 @@
/* XPM */
static char * cursor_select_window64_xpm[] = {
static char const * cursor_select_window64_xpm[] = {
"64 64 3 1",
" c None",
". c #000000",

View File

@ -1,5 +1,5 @@
/* XPM */
static char * cursor_subtract64_xpm[] = {
static char const * cursor_subtract64_xpm[] = {
"64 64 3 1",
" c None",
". c #000000",

View File

@ -1,60 +1,117 @@
/* XPM */
static char * cursor_text64_xpm[] = {
"64 64 3 1",
static char const * cursor_text64_xpm[] = {
"64 64 60 1",
" c None",
". c #000000",
"+ c #FFFFFF",
" ",
" ++ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" ++++++++++++..++++++++++++ ",
" +............ ............+ ",
" +............ ............+ ",
" ++++++++++++..++++++++++++ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ",
" +..+ ++++++++ ",
" +..+ +........+ ",
" +..+ +........+ ",
" +..+ +..........+ ",
" +..+ +..........+ ",
" +..+ +............+ ",
" +..+ +............+ ",
" ++ +............+ ",
" ++.....++.....++ ",
" +.....+ +.....+ ",
" +.....+ +.....+ ",
" +......+ +......+ ",
" +......+ +......+ ",
" ++.....+ +.....++ ",
" +......++++++......+ ",
" +..................+ ",
" ++..................++ ",
" +....................+ ",
" ++....................++ ",
" +........++++++........+ ",
" ++......+++ +++......++ ",
" +.......+ +.......+ ",
" +......++ ++......+ ",
" +......+ +......+ ",
" +.....++ ++.....+ ",
" +++++++ +++++++ ",
" ",
" ",
" ",
". c #FFFFFF",
"+ c #000000",
"@ c #868686",
"# c #FEFEFE",
"$ c #1C1C1C",
"% c #CFCFCF",
"& c #9A9A9A",
"* c #3D3D3D",
"= c #313131",
"- c #DCDCDC",
"; c #9D9D9D",
"> c #ABABAB",
", c #262626",
"' c #D7D7D7",
") c #5C5C5C",
"! c #767676",
"~ c #F0F0F0",
"{ c #E7E7E7",
"] c #939393",
"^ c #999999",
"/ c #BBBBBB",
"( c #BEBEBE",
"_ c #C5C5C5",
": c #787878",
"< c #E2E2E2",
"[ c #EBEBEB",
"} c #F1F1F1",
"| c #EAEAEA",
"1 c #C8C8C8",
"2 c #9C9C9C",
"3 c #FCFCFC",
"4 c #8E8E8E",
"5 c #BFBFBF",
"6 c #C3C3C3",
"7 c #F9F9F9",
"8 c #2A2A2A",
"9 c #DEDEDE",
"0 c #FAFAFA",
"a c #D5D5D5",
"b c #A1A1A1",
"c c #FDFDFD",
"d c #494949",
"e c #E0E0E0",
"f c #B2B2B2",
"g c #686868",
"h c #303030",
"i c #373737",
"j c #ECECEC",
"k c #818181",
"l c #8D8D8D",
"m c #C0C0C0",
"n c #D8D8D8",
"o c #828282",
"p c #F7F7F7",
"q c #F5F5F5",
"r c #161616",
"s c #464646",
"t c #F3F3F3",
"u c #484848",
" ",
" .. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" ............++............ ",
" .++++++++++++ ++++++++++++. ",
" .++++++++++++ ++++++++++++. ",
" ............++............ ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ",
" .++. ......... ",
" .++. @+++++++++@ ",
" .++. #$+++++++++$# ",
" .++. %+++++++++++% ",
" .. &+++++++++++& ",
" *+++++=+++++* ",
" -++++++;++++++- ",
" >+++++,',+++++> ",
" )+++++!~!+++++) ",
" {++++++].^++++++{ ",
" /++++++(._++++++/ ",
" :++++++< [++++++: ",
" }++++++)| )++++++} ",
" 1++++++23 ;++++++1 ",
" 4++++++5 6++++++4 ",
" 78++++++9707<++++++87 ",
" a+++++++++++++++++++a ",
" b+++++++++++++++++++b ",
" cd+++++++++++++++++++dc ",
" e+++++++++++++++++++++e ",
" f+++++++++++++++++++++f ",
" .g++++++h.......i++++++g. ",
" j+++++++k. .l+++++++j ",
" .m+++++++n 9+++++++m. ",
" .o+++++++} p+++++++o. ",
" qr++++++st .u++++++rq ",
" ......... ......... ",
" ",
" ",
" ",

View File

@ -1,5 +1,5 @@
/* XPM */
static char * cursor_xor64_xpm[] = {
static char const * cursor_xor64_xpm[] = {
"64 64 3 1",
" c None",
". c #000000",

View File

@ -1,6 +1,6 @@
/* XPM */
static char const *cursor_zoom_xpm[] = {
"32 32 3 1 6 6",
static char const * cursor_zoom_in_xpm[] = {
"32 32 3 1",
" c None",
". c #FFFFFF",
"+ c #000000",

View File

@ -1,49 +1,49 @@
/* XPM */
static char * cursor_zoom_in64_xpm[] = {
static char const * cursor_zoom_in64_xpm[] = {
"64 64 3 1",
" c None",
". c #000000",
"+ c #FFFFFF",
". c #FFFFFF",
"+ c #000000",
" ",
" ++++++++ ",
" +++......+++ ",
" +++... ...+++ ",
" ++... ...++ ",
" ++.. ..++ ",
" +.. ..+ ",
" ++. ++ .++ ",
" +.. +..+ ..+ ",
"++. +..+ .++ ",
"+.. +..+ ..+ ",
"+. ++++..++++ .+ ",
"+. +..........+ .+ ",
"+. +..........+ .+ ",
"+. ++++..++++ .+ ",
"+.. +..+ ..+ ",
"++. +..+ .++ ",
" +.. +..+ ..+ ",
" ++. ++ .++ ",
" +.. ..+++ ",
" ++.. ..++..+++ ",
" ++... ...++...+..+ ",
" +++... ...+++...+....+ ",
" +++......+++ +..+.. .++ ",
" ++++++++ ++.. ..+ ",
" +.. .++ ",
" +.. ..+ ",
" +.. .++ ",
" ++. ..+ ",
" +.. .++ ",
" ++. ..+ ",
" +.. .++ ",
" ++. ..+ ",
" +.. .++ ",
" ++. .++ ",
" +.. ..+ ",
" ++. .++ ",
" +....+ ",
" ++++ ",
" ++ ",
" ........ ",
" ...++++++... ",
" ...+++ +++... ",
" ..+++ +++.. ",
" ..++ ++.. ",
" .++ ++. ",
" ..+ .. +.. ",
" .++ .++. ++. ",
"..+ .++. +.. ",
".++ .++. ++. ",
".+ ....++.... +. ",
".+ .++++++++++. +. ",
".+ .++++++++++. +. ",
".+ ....++.... +. ",
".++ .++. ++. ",
"..+ .++. +.. ",
" .++ .++. ++. ",
" ..+ .. +.. ",
" .++ ++... ",
" ..++ ++..++... ",
" ..+++ +++..+++.++. ",
" ...+++ +++...+++.++++. ",
" ...++++++... .++.++ ++. ",
" ........ ..++ ++. ",
" .++ ++. ",
" .++ ++. ",
" .++ ++. ",
" .++ ++. ",
" .++ ++. ",
" .++ ++. ",
" .++ ++. ",
" .++ ++. ",
" .++ ++. ",
" .++ ++. ",
" .++ ++. ",
" .++ ++. ",
" .++++. ",
" .++. ",
" .. ",
" ",
" ",
" ",

View File

@ -1,5 +1,5 @@
/* XPM */
static char * cursor_zoom_out64_xpm[] = {
static char const * cursor_zoom_out64_xpm[] = {
"64 64 3 1",
" c None",
". c #000000",

View File

@ -0,0 +1,12 @@
#define voltage_probe_width 32
#define voltage_probe_height 32
static unsigned char voltage_probe_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xc0, 0x0f, 0x00,
0x00, 0xe0, 0x1f, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0xfc, 0x07, 0x00,
0x00, 0xfe, 0x03, 0x00, 0x00, 0xff, 0x01, 0x00, 0x80, 0xff, 0x00, 0x00, 0xc0, 0x7f, 0x00, 0x00,
0xe0, 0x3f, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00,
0xfc, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x50,
0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x0a,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,38 @@
/* XPM */
static char const* cursor_tune_xpm[] = {
"32 32 3 1",
" c None",
". c #000000",
"+ c #FFFFFF",
" ",
" ",
" ",
" .. ",
" .... ",
" ...... ",
" ........ ",
" ......... ",
" ......... ",
" ......... ",
" ......... ",
" ......... ",
" ......... ",
" ......... ",
" ......... ",
" ........ ",
" .......... ",
" ......... ",
" ........ ",
" ..... ",
" .+.... ",
" .+. ... ",
" .+. ",
" .+. ",
" .+. ",
" .+. ",
" .+. ",
" ..+. ",
" .++. ",
".+++. ",
" .+. ",
" . "};

View File

@ -0,0 +1,70 @@
/* XPM */
static char const * cursor_tune64_xpm[] = {
"64 64 3 1",
" c None",
". c #000000",
"+ c #FFFFFF",
" ",
" ",
" ",
" ",
" ",
" .. ",
" .... ",
" ...... ",
" ........ ",
" .......... ",
" ............ ",
" .............. ",
" ................ ",
" .................. ",
" ................... ",
" ................... ",
" ................... ",
" ................... ",
" ................... ",
" ................... ",
" ................... ",
" ................... ",
" ................... ",
" ................... ",
" ................... ",
" ................... ",
" ................... ",
" ................... ",
" ................... ",
" .................. ",
" ................. ",
" ................. ",
" ..................... ",
" .................... ",
" ................... ",
" .................. ",
" ................. ",
" ................ ",
" ........... ",
" ........... ",
" ..++........ ",
" ..+++........ ",
" ..+++.. ...... ",
" ..+++.. ...... ",
" ..+++.. ",
" ..+++.. ",
" ..+++.. ",
" ..+++.. ",
" ..+++.. ",
" ..+++.. ",
" ..+++.. ",
" ..+++.. ",
" ..+++.. ",
" ..+++.. ",
" ....+++.. ",
" ...++++.. ",
" ..+++++.. ",
" ..++++++. ",
"..++++++.. ",
"..++++++.. ",
" ..++++.. ",
" ..++.. ",
" .... ",
" .. "};

View File

@ -0,0 +1,38 @@
/* XPM */
static char const * voltage_probe_xpm[] = {
"32 32 3 1",
" c None",
". c #FFFFFF",
"+ c #000000",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ..... ",
" .+++++. ",
" .++...++. ",
" ..++. .++. ",
" ..+++. .+. ",
" .++++. .+. ",
" .+++++. .++. ",
" .++++++. .++. ",
" .++++++. .++.",
" .++++++. .. ",
" .++++++. ",
" .++++++. ",
" .++++++. ",
" .++++++. ",
" .++++++. ",
" .++++++. ",
" .++++++. ",
" .+++++. ",
" .++++. ",
" .++... ",
" .++. ",
".++. ",
".+. ",
" . "};

View File

@ -0,0 +1,70 @@
/* XPM */
static char const * voltage_probe64_xpm[] = {
"64 64 3 1",
" c None",
". c #FFFFFF",
"+ c #000000",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" .... ",
" ...++++... ",
" .++++++++++. ",
" .++++++++++++. ",
" .+++++....+++++. ",
" .+++++. .+++++. ",
" .+++++. .+++++. ",
" ...+++++. .++++. ",
" .+++++++. .+++. ",
" ...+++++++. .+++. ",
" .+++++++++. .++. ",
" .+++++++++. .+++. ",
" .++++++++++. .++++. ",
" .+++++++++++. .+++++. ",
" .++++++++++++. .+++++. ",
" .+++++++++++++. .+++++. ",
" .+++++++++++++. .+++++. ",
" .+++++++++++++. .++++. ",
" .+++++++++++++. .... ",
" .+++++++++++++. ",
" .+++++++++++++. ",
" .+++++++++++++. ",
" .+++++++++++++. ",
" .+++++++++++++. ",
" .+++++++++++++. ",
" .+++++++++++++. ",
" .+++++++++++++. ",
" .+++++++++++++. ",
" .+++++++++++++. ",
" .+++++++++++++. ",
" .+++++++++++++. ",
" .+++++++++++++. ",
" .+++++++++++++. ",
" .++++++++++++. ",
" .+++++++++++. ",
" .++++++++++. ",
" .+++++++++. ",
" .+++++++++. ",
" .+++++..... ",
" .+++++. ",
" .+++++. ",
" .+++++. ",
" .+++++. ",
" .++++. ",
" .+++. ",
" .+.. ",
" ",
" "};

View File

@ -1,5 +1,5 @@
/* XPM */
static char *icon_kicad[] = {
static char const *icon_kicad[] = {
/* columns rows colors chars-per-pixel */
"128 128 183 2 ",
" c #7C537B",

View File

@ -1,5 +1,5 @@
/* XPM */
static char *icon_kicad_64[] = {
static char const *icon_kicad_64[] = {
/* columns rows colors chars-per-pixel */
"64 64 146 2 ",
" c #FF6D00",