ADDED: support for 45 degree crosshairs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6047
@ -448,6 +448,8 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
|
||||
aBitmapInfoCache[BITMAPS::convert].emplace_back( BITMAPS::convert, wxT( "convert_24.png" ), 24, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy].emplace_back( BITMAPS::copy, wxT( "copy_24.png" ), 24, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy_pad_settings].emplace_back( BITMAPS::copy_pad_settings, wxT( "copy_pad_settings_24.png" ), 24, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen].emplace_back( BITMAPS::cursor_fullscreen, wxT( "cursor_fullscreen_24.png" ), 24, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen45].emplace_back( BITMAPS::cursor_fullscreen45, wxT( "cursor_fullscreen45_24.png" ), 24, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_shape].emplace_back( BITMAPS::cursor_shape, wxT( "cursor_shape_24.png" ), 24, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor].emplace_back( BITMAPS::cursor, wxT( "cursor_24.png" ), 24, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::custom_pad_to_primitives].emplace_back( BITMAPS::custom_pad_to_primitives, wxT( "custom_pad_to_primitives_24.png" ), 24, wxT( "light" ) );
|
||||
@ -885,6 +887,8 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
|
||||
aBitmapInfoCache[BITMAPS::convert].emplace_back( BITMAPS::convert, wxT( "convert_dark_24.png" ), 24, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy].emplace_back( BITMAPS::copy, wxT( "copy_dark_24.png" ), 24, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy_pad_settings].emplace_back( BITMAPS::copy_pad_settings, wxT( "copy_pad_settings_dark_24.png" ), 24, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen].emplace_back( BITMAPS::cursor_fullscreen, wxT( "cursor_fullscreen_dark_24.png" ), 24, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen45].emplace_back( BITMAPS::cursor_fullscreen45, wxT( "cursor_fullscreen45_dark_24.png" ), 24, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_shape].emplace_back( BITMAPS::cursor_shape, wxT( "cursor_shape_dark_24.png" ), 24, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor].emplace_back( BITMAPS::cursor, wxT( "cursor_dark_24.png" ), 24, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::custom_pad_to_primitives].emplace_back( BITMAPS::custom_pad_to_primitives, wxT( "custom_pad_to_primitives_dark_24.png" ), 24, wxT( "dark" ) );
|
||||
@ -1322,6 +1326,8 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
|
||||
aBitmapInfoCache[BITMAPS::convert].emplace_back( BITMAPS::convert, wxT( "convert_16.png" ), 16, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy].emplace_back( BITMAPS::copy, wxT( "copy_16.png" ), 16, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy_pad_settings].emplace_back( BITMAPS::copy_pad_settings, wxT( "copy_pad_settings_16.png" ), 16, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen].emplace_back( BITMAPS::cursor_fullscreen, wxT( "cursor_fullscreen_16.png" ), 16, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen45].emplace_back( BITMAPS::cursor_fullscreen45, wxT( "cursor_fullscreen45_16.png" ), 16, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_shape].emplace_back( BITMAPS::cursor_shape, wxT( "cursor_shape_16.png" ), 16, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor].emplace_back( BITMAPS::cursor, wxT( "cursor_16.png" ), 16, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::custom_pad_to_primitives].emplace_back( BITMAPS::custom_pad_to_primitives, wxT( "custom_pad_to_primitives_16.png" ), 16, wxT( "light" ) );
|
||||
@ -1759,6 +1765,8 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
|
||||
aBitmapInfoCache[BITMAPS::convert].emplace_back( BITMAPS::convert, wxT( "convert_dark_16.png" ), 16, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy].emplace_back( BITMAPS::copy, wxT( "copy_dark_16.png" ), 16, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy_pad_settings].emplace_back( BITMAPS::copy_pad_settings, wxT( "copy_pad_settings_dark_16.png" ), 16, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen].emplace_back( BITMAPS::cursor_fullscreen, wxT( "cursor_fullscreen_dark_16.png" ), 16, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen45].emplace_back( BITMAPS::cursor_fullscreen45, wxT( "cursor_fullscreen45_dark_16.png" ), 16, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_shape].emplace_back( BITMAPS::cursor_shape, wxT( "cursor_shape_dark_16.png" ), 16, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor].emplace_back( BITMAPS::cursor, wxT( "cursor_dark_16.png" ), 16, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::custom_pad_to_primitives].emplace_back( BITMAPS::custom_pad_to_primitives, wxT( "custom_pad_to_primitives_dark_16.png" ), 16, wxT( "dark" ) );
|
||||
@ -2196,6 +2204,8 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
|
||||
aBitmapInfoCache[BITMAPS::convert].emplace_back( BITMAPS::convert, wxT( "convert_32.png" ), 32, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy].emplace_back( BITMAPS::copy, wxT( "copy_32.png" ), 32, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy_pad_settings].emplace_back( BITMAPS::copy_pad_settings, wxT( "copy_pad_settings_32.png" ), 32, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen].emplace_back( BITMAPS::cursor_fullscreen, wxT( "cursor_fullscreen_32.png" ), 32, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen45].emplace_back( BITMAPS::cursor_fullscreen45, wxT( "cursor_fullscreen45_32.png" ), 32, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_shape].emplace_back( BITMAPS::cursor_shape, wxT( "cursor_shape_32.png" ), 32, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor].emplace_back( BITMAPS::cursor, wxT( "cursor_32.png" ), 32, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::custom_pad_to_primitives].emplace_back( BITMAPS::custom_pad_to_primitives, wxT( "custom_pad_to_primitives_32.png" ), 32, wxT( "light" ) );
|
||||
@ -2633,6 +2643,8 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
|
||||
aBitmapInfoCache[BITMAPS::convert].emplace_back( BITMAPS::convert, wxT( "convert_dark_32.png" ), 32, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy].emplace_back( BITMAPS::copy, wxT( "copy_dark_32.png" ), 32, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy_pad_settings].emplace_back( BITMAPS::copy_pad_settings, wxT( "copy_pad_settings_dark_32.png" ), 32, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen].emplace_back( BITMAPS::cursor_fullscreen, wxT( "cursor_fullscreen_dark_32.png" ), 32, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen45].emplace_back( BITMAPS::cursor_fullscreen45, wxT( "cursor_fullscreen45_dark_32.png" ), 32, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_shape].emplace_back( BITMAPS::cursor_shape, wxT( "cursor_shape_dark_32.png" ), 32, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor].emplace_back( BITMAPS::cursor, wxT( "cursor_dark_32.png" ), 32, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::custom_pad_to_primitives].emplace_back( BITMAPS::custom_pad_to_primitives, wxT( "custom_pad_to_primitives_dark_32.png" ), 32, wxT( "dark" ) );
|
||||
@ -3070,6 +3082,8 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
|
||||
aBitmapInfoCache[BITMAPS::convert].emplace_back( BITMAPS::convert, wxT( "convert_48.png" ), 48, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy].emplace_back( BITMAPS::copy, wxT( "copy_48.png" ), 48, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy_pad_settings].emplace_back( BITMAPS::copy_pad_settings, wxT( "copy_pad_settings_48.png" ), 48, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen].emplace_back( BITMAPS::cursor_fullscreen, wxT( "cursor_fullscreen_48.png" ), 48, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen45].emplace_back( BITMAPS::cursor_fullscreen45, wxT( "cursor_fullscreen45_48.png" ), 48, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_shape].emplace_back( BITMAPS::cursor_shape, wxT( "cursor_shape_48.png" ), 48, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor].emplace_back( BITMAPS::cursor, wxT( "cursor_48.png" ), 48, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::custom_pad_to_primitives].emplace_back( BITMAPS::custom_pad_to_primitives, wxT( "custom_pad_to_primitives_48.png" ), 48, wxT( "light" ) );
|
||||
@ -3507,6 +3521,8 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
|
||||
aBitmapInfoCache[BITMAPS::convert].emplace_back( BITMAPS::convert, wxT( "convert_dark_48.png" ), 48, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy].emplace_back( BITMAPS::copy, wxT( "copy_dark_48.png" ), 48, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy_pad_settings].emplace_back( BITMAPS::copy_pad_settings, wxT( "copy_pad_settings_dark_48.png" ), 48, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen].emplace_back( BITMAPS::cursor_fullscreen, wxT( "cursor_fullscreen_dark_48.png" ), 48, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen45].emplace_back( BITMAPS::cursor_fullscreen45, wxT( "cursor_fullscreen45_dark_48.png" ), 48, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_shape].emplace_back( BITMAPS::cursor_shape, wxT( "cursor_shape_dark_48.png" ), 48, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor].emplace_back( BITMAPS::cursor, wxT( "cursor_dark_48.png" ), 48, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::custom_pad_to_primitives].emplace_back( BITMAPS::custom_pad_to_primitives, wxT( "custom_pad_to_primitives_dark_48.png" ), 48, wxT( "dark" ) );
|
||||
@ -3944,6 +3960,8 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
|
||||
aBitmapInfoCache[BITMAPS::convert].emplace_back( BITMAPS::convert, wxT( "convert_64.png" ), 64, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy].emplace_back( BITMAPS::copy, wxT( "copy_64.png" ), 64, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy_pad_settings].emplace_back( BITMAPS::copy_pad_settings, wxT( "copy_pad_settings_64.png" ), 64, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen].emplace_back( BITMAPS::cursor_fullscreen, wxT( "cursor_fullscreen_64.png" ), 64, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen45].emplace_back( BITMAPS::cursor_fullscreen45, wxT( "cursor_fullscreen45_64.png" ), 64, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_shape].emplace_back( BITMAPS::cursor_shape, wxT( "cursor_shape_64.png" ), 64, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor].emplace_back( BITMAPS::cursor, wxT( "cursor_64.png" ), 64, wxT( "light" ) );
|
||||
aBitmapInfoCache[BITMAPS::custom_pad_to_primitives].emplace_back( BITMAPS::custom_pad_to_primitives, wxT( "custom_pad_to_primitives_64.png" ), 64, wxT( "light" ) );
|
||||
@ -4381,6 +4399,8 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
|
||||
aBitmapInfoCache[BITMAPS::convert].emplace_back( BITMAPS::convert, wxT( "convert_dark_64.png" ), 64, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy].emplace_back( BITMAPS::copy, wxT( "copy_dark_64.png" ), 64, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::copy_pad_settings].emplace_back( BITMAPS::copy_pad_settings, wxT( "copy_pad_settings_dark_64.png" ), 64, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen].emplace_back( BITMAPS::cursor_fullscreen, wxT( "cursor_fullscreen_dark_64.png" ), 64, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_fullscreen45].emplace_back( BITMAPS::cursor_fullscreen45, wxT( "cursor_fullscreen45_dark_64.png" ), 64, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor_shape].emplace_back( BITMAPS::cursor_shape, wxT( "cursor_shape_dark_64.png" ), 64, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::cursor].emplace_back( BITMAPS::cursor, wxT( "cursor_dark_64.png" ), 64, wxT( "dark" ) );
|
||||
aBitmapInfoCache[BITMAPS::custom_pad_to_primitives].emplace_back( BITMAPS::custom_pad_to_primitives, wxT( "custom_pad_to_primitives_dark_64.png" ), 64, wxT( "dark" ) );
|
||||
|
@ -1203,11 +1203,20 @@ void CAIRO_GAL_BASE::blitCursor( wxMemoryDC& clientDC )
|
||||
255 );
|
||||
clientDC.SetPen( wxPen( color ) );
|
||||
|
||||
if( m_fullscreenCursor )
|
||||
if( m_crossHairMode == CROSS_HAIR_MODE::FULLSCREEN_CROSS )
|
||||
{
|
||||
clientDC.DrawLine( 0, p.y, m_screenSize.x, p.y );
|
||||
clientDC.DrawLine( p.x, 0, p.x, m_screenSize.y );
|
||||
}
|
||||
else if( m_crossHairMode == CROSS_HAIR_MODE::FULLSCREEN_DIAGONAL )
|
||||
{
|
||||
// Oversized but that's ok
|
||||
int diagonalSize = m_screenSize.x + m_screenSize.y;
|
||||
clientDC.DrawLine( p.x - diagonalSize, p.y - diagonalSize,
|
||||
p.x + diagonalSize, p.y + diagonalSize );
|
||||
clientDC.DrawLine( p.x - diagonalSize, p.y + diagonalSize,
|
||||
p.x + diagonalSize, p.y - diagonalSize );
|
||||
}
|
||||
else
|
||||
{
|
||||
const int cursorSize = 80;
|
||||
|
@ -50,7 +50,7 @@ GAL_DISPLAY_OPTIONS::GAL_DISPLAY_OPTIONS()
|
||||
m_gridLineWidth( 1.0 ),
|
||||
m_gridMinSpacing( 10.0 ),
|
||||
m_axesEnabled( false ),
|
||||
m_fullscreenCursor( false ),
|
||||
m_crossHairMode( CROSS_HAIR_MODE::SMALL_CROSS ),
|
||||
m_forceDisplayCursor( false ),
|
||||
m_scaleFactor( DPI_SCALING::GetDefaultScaleFactor() )
|
||||
{
|
||||
|
@ -79,7 +79,7 @@ GAL::GAL( GAL_DISPLAY_OPTIONS& aDisplayOptions ) :
|
||||
|
||||
// Initialize the cursor shape
|
||||
SetCursorColor( COLOR4D( 1.0, 1.0, 1.0, 1.0 ) );
|
||||
m_fullscreenCursor = false;
|
||||
m_crossHairMode = CROSS_HAIR_MODE::SMALL_CROSS;
|
||||
m_forceDisplayCursor = false;
|
||||
SetCursorEnabled( false );
|
||||
|
||||
@ -142,9 +142,9 @@ bool GAL::updatedGalDisplayOptions( const GAL_DISPLAY_OPTIONS& aOptions )
|
||||
refresh = true;
|
||||
}
|
||||
|
||||
if( m_options.m_fullscreenCursor != m_fullscreenCursor )
|
||||
if( m_options.GetCursorMode() != m_crossHairMode )
|
||||
{
|
||||
m_fullscreenCursor = m_options.m_fullscreenCursor;
|
||||
m_crossHairMode = m_options.GetCursorMode();
|
||||
refresh = true;
|
||||
}
|
||||
|
||||
|
@ -2648,12 +2648,12 @@ void OPENGL_GAL::blitCursor()
|
||||
VECTOR2D cursorEnd;
|
||||
VECTOR2D cursorCenter = m_cursorPosition;
|
||||
|
||||
if( m_fullscreenCursor )
|
||||
if( m_crossHairMode == CROSS_HAIR_MODE::FULLSCREEN_CROSS )
|
||||
{
|
||||
cursorBegin = m_screenWorldMatrix * VECTOR2D( 0.0, 0.0 );
|
||||
cursorEnd = m_screenWorldMatrix * VECTOR2D( m_screenSize );
|
||||
}
|
||||
else
|
||||
else if( m_crossHairMode == CROSS_HAIR_MODE::SMALL_CROSS )
|
||||
{
|
||||
const int cursorSize = 80;
|
||||
cursorBegin = m_cursorPosition - cursorSize / ( 2 * m_worldScale );
|
||||
@ -2671,11 +2671,46 @@ void OPENGL_GAL::blitCursor()
|
||||
glColor4d( color.r, color.g, color.b, color.a );
|
||||
|
||||
glBegin( GL_LINES );
|
||||
glVertex2d( cursorCenter.x, cursorBegin.y );
|
||||
glVertex2d( cursorCenter.x, cursorEnd.y );
|
||||
|
||||
glVertex2d( cursorBegin.x, cursorCenter.y );
|
||||
glVertex2d( cursorEnd.x, cursorCenter.y );
|
||||
if( m_crossHairMode == CROSS_HAIR_MODE::FULLSCREEN_DIAGONAL )
|
||||
{
|
||||
// Calculate screen bounds in world coordinates
|
||||
VECTOR2D screenTopLeft = m_screenWorldMatrix * VECTOR2D( 0.0, 0.0 );
|
||||
VECTOR2D screenBottomRight = m_screenWorldMatrix * VECTOR2D( m_screenSize );
|
||||
|
||||
// For 45-degree lines passing through cursor position
|
||||
// Line equation: y = x + (cy - cx) for positive slope
|
||||
// Line equation: y = -x + (cy + cx) for negative slope
|
||||
double cx = m_cursorPosition.x;
|
||||
double cy = m_cursorPosition.y;
|
||||
|
||||
// Calculate intersections for positive slope diagonal (y = x + offset)
|
||||
double offset1 = cy - cx;
|
||||
VECTOR2D pos_start( screenTopLeft.x, screenTopLeft.x + offset1 );
|
||||
VECTOR2D pos_end( screenBottomRight.x, screenBottomRight.x + offset1 );
|
||||
|
||||
// Draw positive slope diagonal
|
||||
glVertex2d( pos_start.x, pos_start.y );
|
||||
glVertex2d( pos_end.x, pos_end.y );
|
||||
|
||||
// Calculate intersections for negative slope diagonal (y = -x + offset)
|
||||
double offset2 = cy + cx;
|
||||
VECTOR2D neg_start( screenTopLeft.x, offset2 - screenTopLeft.x );
|
||||
VECTOR2D neg_end( screenBottomRight.x, offset2 - screenBottomRight.x );
|
||||
|
||||
// Draw negative slope diagonal
|
||||
glVertex2d( neg_start.x, neg_start.y );
|
||||
glVertex2d( neg_end.x, neg_end.y );
|
||||
}
|
||||
else
|
||||
{
|
||||
glVertex2d( cursorCenter.x, cursorBegin.y );
|
||||
glVertex2d( cursorCenter.x, cursorEnd.y );
|
||||
|
||||
glVertex2d( cursorBegin.x, cursorCenter.y );
|
||||
glVertex2d( cursorEnd.x, cursorCenter.y );
|
||||
}
|
||||
|
||||
glEnd();
|
||||
}
|
||||
|
||||
|
@ -71,7 +71,7 @@ void GAL_DISPLAY_OPTIONS_IMPL::ReadWindowSettings( WINDOW_SETTINGS& aCfg )
|
||||
m_gridMinSpacing = aCfg.grid.min_spacing;
|
||||
m_axesEnabled = aCfg.grid.axes_enabled;
|
||||
|
||||
m_fullscreenCursor = aCfg.cursor.fullscreen_cursor;
|
||||
m_crossHairMode = aCfg.cursor.cross_hair_mode;
|
||||
m_forceDisplayCursor = aCfg.cursor.always_show_cursor;
|
||||
|
||||
NotifyChanged();
|
||||
@ -112,7 +112,7 @@ void GAL_DISPLAY_OPTIONS_IMPL::WriteConfig( WINDOW_SETTINGS& aCfg )
|
||||
aCfg.grid.line_width = m_gridLineWidth;
|
||||
aCfg.grid.min_spacing = m_gridMinSpacing;
|
||||
aCfg.grid.axes_enabled = m_axesEnabled;
|
||||
aCfg.cursor.fullscreen_cursor = m_fullscreenCursor;
|
||||
aCfg.cursor.cross_hair_mode = m_crossHairMode;
|
||||
aCfg.cursor.always_show_cursor = m_forceDisplayCursor;
|
||||
}
|
||||
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <class_draw_panel_gal.h>
|
||||
#include <common.h>
|
||||
#include <eda_units.h>
|
||||
#include <gal/gal_display_options.h>
|
||||
#include <layer_ids.h>
|
||||
#include <pgm_base.h>
|
||||
#include <settings/app_settings.h>
|
||||
@ -386,8 +387,8 @@ bool APP_SETTINGS_BASE::migrateWindowConfig( wxConfigBase* aCfg, const std::stri
|
||||
|
||||
ret &= fromLegacy<bool>( aCfg, frameGDO + "ForceDisplayCursor",
|
||||
cursorPath + ".always_show_cursor" );
|
||||
ret &= fromLegacy<bool>( aCfg, frameGDO + "CursorFullscreen",
|
||||
cursorPath + ".fullscreen_cursor" );
|
||||
ret &= fromLegacy<int>( aCfg, frameGDO + "CursorFullscreen",
|
||||
cursorPath + ".cross_hair_mode" );
|
||||
|
||||
ret &= fromLegacy<int>( aCfg, aFrame + "_LastGridSize", gridPath + ".last_size" );
|
||||
|
||||
@ -539,8 +540,8 @@ void APP_SETTINGS_BASE::addParamsForWindow( WINDOW_SETTINGS* aWindow, const std:
|
||||
m_params.emplace_back( new PARAM<bool>( aJsonPath + ".cursor.always_show_cursor",
|
||||
&aWindow->cursor.always_show_cursor, true ) );
|
||||
|
||||
m_params.emplace_back( new PARAM<bool>( aJsonPath + ".cursor.fullscreen_cursor",
|
||||
&aWindow->cursor.fullscreen_cursor, false ) );
|
||||
m_params.emplace_back( new PARAM<KIGFX::CROSS_HAIR_MODE>( aJsonPath + ".cursor.cross_hair_mode",
|
||||
&aWindow->cursor.cross_hair_mode, KIGFX::CROSS_HAIR_MODE::SMALL_CROSS ) );
|
||||
}
|
||||
|
||||
|
||||
|
@ -651,6 +651,8 @@ template KICOMMON_API std::optional<wxRect>
|
||||
JSON_SETTINGS::Get<wxRect>( const std::string& aPath ) const;
|
||||
template KICOMMON_API std::optional<wxAuiPaneInfo>
|
||||
JSON_SETTINGS::Get<wxAuiPaneInfo>( const std::string& aPath ) const;
|
||||
template KICOMMON_API std::optional<KIGFX::CROSS_HAIR_MODE>
|
||||
JSON_SETTINGS::Get<KIGFX::CROSS_HAIR_MODE>( const std::string& aPath ) const;
|
||||
|
||||
template<typename ValueType>
|
||||
void JSON_SETTINGS::Set( const std::string& aPath, ValueType aVal )
|
||||
@ -688,6 +690,8 @@ template KICOMMON_API void JSON_SETTINGS::Set<wxSize>( const std::string& aPath,
|
||||
template KICOMMON_API void JSON_SETTINGS::Set<wxRect>( const std::string& aPath, wxRect aValue );
|
||||
template KICOMMON_API void JSON_SETTINGS::Set<wxAuiPaneInfo>( const std::string& aPath,
|
||||
wxAuiPaneInfo aValue );
|
||||
template KICOMMON_API void JSON_SETTINGS::Set<KIGFX::CROSS_HAIR_MODE>( const std::string& aPath,
|
||||
KIGFX::CROSS_HAIR_MODE aValue );
|
||||
|
||||
|
||||
void JSON_SETTINGS::registerMigration( int aOldSchemaVersion, int aNewSchemaVersion,
|
||||
|
@ -1169,14 +1169,30 @@ TOOL_ACTION ACTIONS::toggleCursor( TOOL_ACTION_ARGS()
|
||||
.Tooltip( _( "Display crosshairs even when not drawing objects" ) )
|
||||
.Icon( BITMAPS::cursor ) );
|
||||
|
||||
TOOL_ACTION ACTIONS::toggleCursorStyle( TOOL_ACTION_ARGS()
|
||||
.Name( "common.Control.toggleCursorStyle" )
|
||||
TOOL_ACTION ACTIONS::cursorSmallCrosshairs( TOOL_ACTION_ARGS()
|
||||
.Name( "common.Control.cursorSmallCrosshairs" )
|
||||
.Scope( AS_GLOBAL )
|
||||
.FriendlyName( _( "Full-Window Crosshairs" ) )
|
||||
.Tooltip( _( "Switch display of full-window crosshairs" ) )
|
||||
.FriendlyName( _( "Small crosshairs" ) )
|
||||
.Tooltip( _( "Use small crosshairs aligned at 0 and 90 degrees" ) )
|
||||
.ToolbarState( TOOLBAR_STATE::TOGGLE )
|
||||
.Icon( BITMAPS::cursor_shape ) );
|
||||
|
||||
TOOL_ACTION ACTIONS::cursorFullCrosshairs( TOOL_ACTION_ARGS()
|
||||
.Name( "common.Control.cursorFullCrosshairs" )
|
||||
.Scope( AS_GLOBAL )
|
||||
.FriendlyName( _( "Full-Window Crosshairs" ) )
|
||||
.Tooltip( _( "Display full-window crosshairs aligned at 0 and 90 degrees" ) )
|
||||
.ToolbarState( TOOLBAR_STATE::TOGGLE )
|
||||
.Icon( BITMAPS::cursor_fullscreen ) );
|
||||
|
||||
TOOL_ACTION ACTIONS::cursor45Crosshairs( TOOL_ACTION_ARGS()
|
||||
.Name( "common.Control.cursor45Crosshairs" )
|
||||
.Scope( AS_GLOBAL )
|
||||
.FriendlyName( _( "45 Degree Crosshairs" ) )
|
||||
.Tooltip( _( "Display full-window crosshairs aligned at 45 and 135 degrees" ) )
|
||||
.ToolbarState( TOOLBAR_STATE::TOGGLE )
|
||||
.Icon( BITMAPS::cursor_fullscreen45 ) );
|
||||
|
||||
TOOL_ACTION ACTIONS::highContrastMode( TOOL_ACTION_ARGS()
|
||||
.Name( "common.Control.highContrastMode" )
|
||||
.Scope( AS_GLOBAL )
|
||||
|
@ -710,11 +710,35 @@ int COMMON_TOOLS::ToggleCursor( const TOOL_EVENT& aEvent )
|
||||
}
|
||||
|
||||
|
||||
int COMMON_TOOLS::ToggleCursorStyle( const TOOL_EVENT& aEvent )
|
||||
int COMMON_TOOLS::CursorSmallCrosshairs( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
GAL_DISPLAY_OPTIONS_IMPL& galOpts = m_frame->GetGalDisplayOptions();
|
||||
|
||||
galOpts.m_fullscreenCursor = !galOpts.m_fullscreenCursor;
|
||||
galOpts.SetCursorMode( KIGFX::CROSS_HAIR_MODE::SMALL_CROSS );
|
||||
galOpts.WriteConfig( *m_frame->GetWindowSettings( m_toolMgr->GetSettings() ) );
|
||||
galOpts.NotifyChanged();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int COMMON_TOOLS::CursorFullCrosshairs( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
GAL_DISPLAY_OPTIONS_IMPL& galOpts = m_frame->GetGalDisplayOptions();
|
||||
|
||||
galOpts.SetCursorMode( KIGFX::CROSS_HAIR_MODE::FULLSCREEN_CROSS );
|
||||
galOpts.WriteConfig( *m_frame->GetWindowSettings( m_toolMgr->GetSettings() ) );
|
||||
galOpts.NotifyChanged();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int COMMON_TOOLS::Cursor45Crosshairs( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
GAL_DISPLAY_OPTIONS_IMPL& galOpts = m_frame->GetGalDisplayOptions();
|
||||
|
||||
galOpts.SetCursorMode( KIGFX::CROSS_HAIR_MODE::FULLSCREEN_DIAGONAL );
|
||||
galOpts.WriteConfig( *m_frame->GetWindowSettings( m_toolMgr->GetSettings() ) );
|
||||
galOpts.NotifyChanged();
|
||||
|
||||
@ -800,6 +824,8 @@ void COMMON_TOOLS::setTransitions()
|
||||
|
||||
// Misc
|
||||
Go( &COMMON_TOOLS::ToggleCursor, ACTIONS::toggleCursor.MakeEvent() );
|
||||
Go( &COMMON_TOOLS::ToggleCursorStyle, ACTIONS::toggleCursorStyle.MakeEvent() );
|
||||
Go( &COMMON_TOOLS::CursorSmallCrosshairs, ACTIONS::cursorSmallCrosshairs.MakeEvent() );
|
||||
Go( &COMMON_TOOLS::CursorFullCrosshairs, ACTIONS::cursorFullCrosshairs.MakeEvent() );
|
||||
Go( &COMMON_TOOLS::Cursor45Crosshairs, ACTIONS::cursor45Crosshairs.MakeEvent() );
|
||||
Go( &COMMON_TOOLS::ToggleBoundingBoxes, ACTIONS::toggleBoundingBoxes.MakeEvent() );
|
||||
}
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include <class_draw_panel_gal.h>
|
||||
#include <eda_base_frame.h>
|
||||
#include <eda_draw_frame.h>
|
||||
#include <gal/gal_display_options.h>
|
||||
#include <tool/editor_conditions.h>
|
||||
#include <tool/selection.h>
|
||||
|
||||
@ -106,14 +107,36 @@ SELECTION_CONDITION EDITOR_CONDITIONS::PolarCoordinates()
|
||||
}
|
||||
|
||||
|
||||
SELECTION_CONDITION EDITOR_CONDITIONS::FullscreenCursor()
|
||||
SELECTION_CONDITION EDITOR_CONDITIONS::CursorSmallCrosshairs()
|
||||
{
|
||||
// The fullscreen cursor requires a draw frame
|
||||
EDA_DRAW_FRAME* drwFrame = dynamic_cast<EDA_DRAW_FRAME*>( m_frame );
|
||||
|
||||
wxASSERT( drwFrame );
|
||||
|
||||
return std::bind( &EDITOR_CONDITIONS::cursorFunc, _1, drwFrame );
|
||||
return std::bind( &EDITOR_CONDITIONS::cursorFunc, _1, drwFrame,
|
||||
KIGFX::CROSS_HAIR_MODE::SMALL_CROSS );
|
||||
}
|
||||
|
||||
|
||||
SELECTION_CONDITION EDITOR_CONDITIONS::CursorFullCrosshairs()
|
||||
{
|
||||
EDA_DRAW_FRAME* drwFrame = dynamic_cast<EDA_DRAW_FRAME*>( m_frame );
|
||||
|
||||
wxASSERT( drwFrame );
|
||||
|
||||
return std::bind( &EDITOR_CONDITIONS::cursorFunc, _1, drwFrame,
|
||||
KIGFX::CROSS_HAIR_MODE::FULLSCREEN_CROSS );
|
||||
}
|
||||
|
||||
|
||||
SELECTION_CONDITION EDITOR_CONDITIONS::Cursor45Crosshairs()
|
||||
{
|
||||
EDA_DRAW_FRAME* drwFrame = dynamic_cast<EDA_DRAW_FRAME*>( m_frame );
|
||||
|
||||
wxASSERT( drwFrame );
|
||||
|
||||
return std::bind( &EDITOR_CONDITIONS::cursorFunc, _1, drwFrame,
|
||||
KIGFX::CROSS_HAIR_MODE::FULLSCREEN_DIAGONAL );
|
||||
}
|
||||
|
||||
|
||||
@ -193,9 +216,10 @@ bool EDITOR_CONDITIONS::polarCoordFunc( const SELECTION& aSelection, EDA_DRAW_FR
|
||||
}
|
||||
|
||||
|
||||
bool EDITOR_CONDITIONS::cursorFunc( const SELECTION& aSelection, EDA_DRAW_FRAME* aFrame )
|
||||
bool EDITOR_CONDITIONS::cursorFunc( const SELECTION& aSelection, EDA_DRAW_FRAME* aFrame,
|
||||
KIGFX::CROSS_HAIR_MODE aMode )
|
||||
{
|
||||
return aFrame->GetGalDisplayOptions().m_fullscreenCursor;
|
||||
return aFrame->GetGalDisplayOptions().GetCursorMode() == aMode;
|
||||
}
|
||||
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
#include <widgets/gal_options_panel.h>
|
||||
#include <settings/app_settings.h>
|
||||
#include <gal/gal_display_options.h>
|
||||
#include <eda_draw_frame.h>
|
||||
|
||||
#include <config_map.h>
|
||||
@ -92,10 +93,12 @@ bool GAL_OPTIONS_PANEL::TransferDataToWindow()
|
||||
|
||||
m_gridMinSpacing->SetValue( m_cfg->m_Window.grid.min_spacing );
|
||||
|
||||
if( m_cfg->m_Window.cursor.fullscreen_cursor )
|
||||
m_rbFullWindowCrosshairs->SetValue( true );
|
||||
else
|
||||
if( m_cfg->m_Window.cursor.cross_hair_mode == KIGFX::CROSS_HAIR_MODE::SMALL_CROSS )
|
||||
m_rbSmallCrosshairs->SetValue( true );
|
||||
else if( m_cfg->m_Window.cursor.cross_hair_mode == KIGFX::CROSS_HAIR_MODE::FULLSCREEN_DIAGONAL )
|
||||
m_rb45DegreeCrosshairs->SetValue( true );
|
||||
else
|
||||
m_rbFullWindowCrosshairs->SetValue( true );
|
||||
|
||||
m_forceCursorDisplay->SetValue( m_cfg->m_Window.cursor.always_show_cursor );
|
||||
|
||||
@ -119,7 +122,12 @@ bool GAL_OPTIONS_PANEL::TransferDataFromWindow()
|
||||
|
||||
m_cfg->m_Window.grid.min_spacing = m_gridMinSpacing->GetValue();
|
||||
|
||||
m_cfg->m_Window.cursor.fullscreen_cursor = m_rbFullWindowCrosshairs->GetValue();
|
||||
if( m_rbFullWindowCrosshairs->GetValue() )
|
||||
m_cfg->m_Window.cursor.cross_hair_mode = KIGFX::CROSS_HAIR_MODE::FULLSCREEN_CROSS;
|
||||
else if( m_rb45DegreeCrosshairs->GetValue() )
|
||||
m_cfg->m_Window.cursor.cross_hair_mode = KIGFX::CROSS_HAIR_MODE::FULLSCREEN_DIAGONAL;
|
||||
else
|
||||
m_cfg->m_Window.cursor.cross_hair_mode = KIGFX::CROSS_HAIR_MODE::SMALL_CROSS;
|
||||
m_cfg->m_Window.cursor.always_show_cursor = m_forceCursorDisplay->GetValue();
|
||||
|
||||
return true;
|
||||
|
@ -102,8 +102,11 @@ GAL_OPTIONS_PANEL_BASE::GAL_OPTIONS_PANEL_BASE( wxWindow* parent, wxWindowID id,
|
||||
m_rbSmallCrosshairs = new wxRadioButton( this, wxID_ANY, _("Small crosshairs"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
|
||||
fgSizer1->Add( m_rbSmallCrosshairs, 0, wxTOP|wxLEFT, 5 );
|
||||
|
||||
m_rbFullWindowCrosshairs = new wxRadioButton( this, wxID_ANY, _("Full window crosshairs"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
fgSizer1->Add( m_rbFullWindowCrosshairs, 0, wxLEFT, 5 );
|
||||
m_rbFullWindowCrosshairs = new wxRadioButton( this, wxID_ANY, _("Full window crosshairs"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
fgSizer1->Add( m_rbFullWindowCrosshairs, 0, wxLEFT, 5 );
|
||||
|
||||
m_rb45DegreeCrosshairs = new wxRadioButton( this, wxID_ANY, _("45 degree crosshairs"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
fgSizer1->Add( m_rb45DegreeCrosshairs, 0, wxLEFT, 5 );
|
||||
|
||||
|
||||
fgSizer1->Add( 0, 8, 0, wxEXPAND, 5 );
|
||||
|
@ -1267,6 +1267,71 @@
|
||||
<property name="value">0</property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="true">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxRadioButton" expanded="true">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer">0</property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position">0</property>
|
||||
<property name="aui_row">0</property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">45 degree crosshairs</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_rb45DegreeCrosshairs</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
<property name="validator_variable"></property>
|
||||
<property name="value">0</property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
</object>
|
||||
</object>
|
||||
|
@ -51,9 +51,10 @@ class GAL_OPTIONS_PANEL_BASE : public wxPanel
|
||||
wxChoice* m_gridSnapOptions;
|
||||
wxStaticText* m_stGridLabel;
|
||||
wxStaticLine* m_staticline2;
|
||||
wxRadioButton* m_rbSmallCrosshairs;
|
||||
wxRadioButton* m_rbFullWindowCrosshairs;
|
||||
wxCheckBox* m_forceCursorDisplay;
|
||||
wxRadioButton* m_rbSmallCrosshairs;
|
||||
wxRadioButton* m_rbFullWindowCrosshairs;
|
||||
wxRadioButton* m_rb45DegreeCrosshairs;
|
||||
wxCheckBox* m_forceCursorDisplay;
|
||||
|
||||
public:
|
||||
|
||||
|
@ -198,7 +198,9 @@ void DISPLAY_FOOTPRINTS_FRAME::setupUIConditions()
|
||||
mgr->SetConditions( ACTIONS::measureTool, CHECK( cond.CurrentTool( ACTIONS::measureTool ) ) );
|
||||
|
||||
mgr->SetConditions( ACTIONS::toggleGrid, CHECK( cond.GridVisible() ) );
|
||||
mgr->SetConditions( ACTIONS::toggleCursorStyle, CHECK( cond.FullscreenCursor() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorSmallCrosshairs, CHECK( cond.CursorSmallCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorFullCrosshairs, CHECK( cond.CursorFullCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursor45Crosshairs, CHECK( cond.Cursor45Crosshairs() ) );
|
||||
|
||||
mgr->SetConditions( ACTIONS::millimetersUnits, CHECK( cond.Units( EDA_UNITS::MM ) ) );
|
||||
mgr->SetConditions( ACTIONS::inchesUnits, CHECK( cond.Units( EDA_UNITS::INCH ) ) );
|
||||
|
@ -46,7 +46,10 @@ std::optional<TOOLBAR_CONFIGURATION> DISPLAY_FOOTPRINTS_TOOLBAR_SETTINGS::Defaul
|
||||
.AppendAction( ACTIONS::inchesUnits )
|
||||
.AppendAction( ACTIONS::milsUnits )
|
||||
.AppendAction( ACTIONS::millimetersUnits )
|
||||
.AppendAction( ACTIONS::toggleCursorStyle );
|
||||
.AppendGroup( TOOLBAR_GROUP_CONFIG( _( "Crosshair modes" ) )
|
||||
.AddAction( ACTIONS::cursorSmallCrosshairs )
|
||||
.AddAction( ACTIONS::cursorFullCrosshairs )
|
||||
.AddAction( ACTIONS::cursor45Crosshairs ) );
|
||||
|
||||
config.AppendSeparator()
|
||||
.AppendAction( PCB_ACTIONS::showPadNumbers )
|
||||
|
@ -637,7 +637,9 @@ void SCH_EDIT_FRAME::setupUIConditions()
|
||||
mgr->SetConditions( SCH_ACTIONS::showDesignBlockPanel, CHECK( designBlockCond ) );
|
||||
mgr->SetConditions( ACTIONS::toggleGrid, CHECK( cond.GridVisible() ) );
|
||||
mgr->SetConditions( ACTIONS::toggleGridOverrides, CHECK( cond.GridOverrides() ) );
|
||||
mgr->SetConditions( ACTIONS::toggleCursorStyle, CHECK( cond.FullscreenCursor() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorSmallCrosshairs, CHECK( cond.CursorSmallCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorFullCrosshairs, CHECK( cond.CursorFullCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursor45Crosshairs, CHECK( cond.Cursor45Crosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::millimetersUnits, CHECK( cond.Units( EDA_UNITS::MM ) ) );
|
||||
mgr->SetConditions( ACTIONS::inchesUnits, CHECK( cond.Units( EDA_UNITS::INCH ) ) );
|
||||
mgr->SetConditions( ACTIONS::milsUnits, CHECK( cond.Units( EDA_UNITS::MILS ) ) );
|
||||
|
@ -488,7 +488,9 @@ void SYMBOL_EDIT_FRAME::setupUIConditions()
|
||||
|
||||
mgr->SetConditions( ACTIONS::toggleGrid, CHECK( cond.GridVisible() ) );
|
||||
mgr->SetConditions( ACTIONS::toggleGridOverrides, CHECK( cond.GridOverrides() ) );
|
||||
mgr->SetConditions( ACTIONS::toggleCursorStyle, CHECK( cond.FullscreenCursor() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorSmallCrosshairs, CHECK( cond.CursorSmallCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorFullCrosshairs, CHECK( cond.CursorFullCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursor45Crosshairs, CHECK( cond.Cursor45Crosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::millimetersUnits, CHECK( cond.Units( EDA_UNITS::MM ) ) );
|
||||
mgr->SetConditions( ACTIONS::inchesUnits, CHECK( cond.Units( EDA_UNITS::INCH ) ) );
|
||||
mgr->SetConditions( ACTIONS::milsUnits, CHECK( cond.Units( EDA_UNITS::MILS ) ) );
|
||||
|
@ -62,7 +62,10 @@ std::optional<TOOLBAR_CONFIGURATION> SYMBOL_EDIT_TOOLBAR_SETTINGS::DefaultToolba
|
||||
.AppendAction( ACTIONS::inchesUnits )
|
||||
.AppendAction( ACTIONS::milsUnits )
|
||||
.AppendAction( ACTIONS::millimetersUnits )
|
||||
.AppendAction( ACTIONS::toggleCursorStyle );
|
||||
.AppendGroup( TOOLBAR_GROUP_CONFIG( _( "Crosshair modes" ) )
|
||||
.AddAction( ACTIONS::cursorSmallCrosshairs )
|
||||
.AddAction( ACTIONS::cursorFullCrosshairs )
|
||||
.AddAction( ACTIONS::cursor45Crosshairs ) );
|
||||
|
||||
config.AppendSeparator()
|
||||
.AppendAction( SCH_ACTIONS::showElectricalTypes )
|
||||
|
@ -61,7 +61,10 @@ std::optional<TOOLBAR_CONFIGURATION> SCH_EDIT_TOOLBAR_SETTINGS::DefaultToolbarCo
|
||||
.AppendAction( ACTIONS::inchesUnits )
|
||||
.AppendAction( ACTIONS::milsUnits )
|
||||
.AppendAction( ACTIONS::millimetersUnits )
|
||||
.AppendAction( ACTIONS::toggleCursorStyle );
|
||||
.AppendGroup( TOOLBAR_GROUP_CONFIG( _( "Crosshair modes" ) )
|
||||
.AddAction( ACTIONS::cursorSmallCrosshairs )
|
||||
.AddAction( ACTIONS::cursorFullCrosshairs )
|
||||
.AddAction( ACTIONS::cursor45Crosshairs ) );
|
||||
|
||||
config.AppendSeparator()
|
||||
.AppendAction( SCH_ACTIONS::toggleHiddenPins );
|
||||
|
@ -1103,7 +1103,9 @@ void GERBVIEW_FRAME::setupUIConditions()
|
||||
|
||||
mgr->SetConditions( ACTIONS::toggleGrid, CHECK( cond.GridVisible() ) );
|
||||
mgr->SetConditions( ACTIONS::togglePolarCoords, CHECK( cond.PolarCoordinates() ) );
|
||||
mgr->SetConditions( ACTIONS::toggleCursorStyle, CHECK( cond.FullscreenCursor() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorSmallCrosshairs, CHECK( cond.CursorSmallCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorFullCrosshairs, CHECK( cond.CursorFullCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursor45Crosshairs, CHECK( cond.Cursor45Crosshairs() ) );
|
||||
|
||||
mgr->SetConditions( ACTIONS::millimetersUnits, CHECK( cond.Units( EDA_UNITS::MM ) ) );
|
||||
mgr->SetConditions( ACTIONS::inchesUnits, CHECK( cond.Units( EDA_UNITS::INCH ) ) );
|
||||
|
@ -58,7 +58,10 @@ std::optional<TOOLBAR_CONFIGURATION> GERBVIEW_TOOLBAR_SETTINGS::DefaultToolbarCo
|
||||
.AppendAction( ACTIONS::inchesUnits )
|
||||
.AppendAction( ACTIONS::milsUnits )
|
||||
.AppendAction( ACTIONS::millimetersUnits )
|
||||
.AppendAction( ACTIONS::toggleCursorStyle );
|
||||
.AppendGroup( TOOLBAR_GROUP_CONFIG( _( "Crosshair modes" ) )
|
||||
.AddAction( ACTIONS::cursorSmallCrosshairs )
|
||||
.AddAction( ACTIONS::cursorFullCrosshairs )
|
||||
.AddAction( ACTIONS::cursor45Crosshairs ) );
|
||||
|
||||
config.AppendSeparator()
|
||||
.AppendAction( GERBVIEW_ACTIONS::flashedDisplayOutlines )
|
||||
|
@ -143,6 +143,8 @@ enum class BITMAPS : unsigned int
|
||||
cpw,
|
||||
cpw_back,
|
||||
cursor,
|
||||
cursor_fullscreen,
|
||||
cursor_fullscreen45,
|
||||
cursor_shape,
|
||||
curved_ratsnest,
|
||||
custom_pad_to_primitives,
|
||||
|
@ -64,6 +64,13 @@ namespace KIGFX
|
||||
NEVER
|
||||
};
|
||||
|
||||
enum class CROSS_HAIR_MODE : int
|
||||
{
|
||||
SMALL_CROSS,
|
||||
FULLSCREEN_CROSS,
|
||||
FULLSCREEN_DIAGONAL
|
||||
};
|
||||
|
||||
class GAL_DISPLAY_OPTIONS;
|
||||
|
||||
class GAL_API GAL_DISPLAY_OPTIONS_OBSERVER
|
||||
@ -101,8 +108,8 @@ namespace KIGFX
|
||||
///< Whether or not to draw the coordinate system axes
|
||||
bool m_axesEnabled;
|
||||
|
||||
///< Fullscreen crosshair or small cross
|
||||
bool m_fullscreenCursor;
|
||||
///< Crosshair drawing mode
|
||||
CROSS_HAIR_MODE m_crossHairMode;
|
||||
|
||||
///< Force cursor display
|
||||
bool m_forceDisplayCursor;
|
||||
@ -110,6 +117,10 @@ namespace KIGFX
|
||||
///< The pixel scale factor (>1 for hi-DPI scaled displays)
|
||||
double m_scaleFactor;
|
||||
|
||||
void SetCursorMode( CROSS_HAIR_MODE aMode ) { m_crossHairMode = aMode; }
|
||||
|
||||
CROSS_HAIR_MODE GetCursorMode() const { return m_crossHairMode; }
|
||||
|
||||
void NotifyChanged();
|
||||
};
|
||||
|
||||
|
@ -1113,7 +1113,7 @@ protected:
|
||||
bool m_isCursorEnabled; ///< Is the cursor enabled?
|
||||
bool m_forceDisplayCursor; ///< Always show cursor
|
||||
COLOR4D m_cursorColor; ///< Cursor color
|
||||
bool m_fullscreenCursor; ///< Shape of the cursor (fullscreen or small cross)
|
||||
KIGFX::CROSS_HAIR_MODE m_crossHairMode; ///< Crosshair drawing mode
|
||||
VECTOR2D m_cursorPosition; ///< Current cursor position (world coordinates)
|
||||
|
||||
KICURSOR m_currentNativeCursor; ///< Current cursor
|
||||
|
@ -36,13 +36,18 @@ struct KICOMMON_API CROSS_PROBING_SETTINGS
|
||||
bool auto_highlight; ///< Automatically turn on highlight mode in the target frame.
|
||||
};
|
||||
|
||||
namespace KIGFX
|
||||
{
|
||||
enum class CROSS_HAIR_MODE : int;
|
||||
}
|
||||
|
||||
/**
|
||||
* Common cursor settings, available to every frame.
|
||||
*/
|
||||
struct KICOMMON_API CURSOR_SETTINGS
|
||||
{
|
||||
bool always_show_cursor;
|
||||
bool fullscreen_cursor;
|
||||
KIGFX::CROSS_HAIR_MODE cross_hair_mode;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -22,6 +22,7 @@
|
||||
#define _JSON_SETTINGS_H
|
||||
|
||||
#include <core/wx_stl_compat.h>
|
||||
#include <gal/gal_display_options.h>
|
||||
|
||||
#include <utility>
|
||||
#include <wx/string.h>
|
||||
@ -388,5 +389,6 @@ extern template std::optional<wxPoint> JSON_SETTINGS::Get<wxPoint>( const std::s
|
||||
extern template std::optional<wxSize> JSON_SETTINGS::Get<wxSize>( const std::string& aPath ) const;
|
||||
extern template std::optional<wxRect> JSON_SETTINGS::Get<wxRect>( const std::string& aPath ) const;
|
||||
extern template std::optional<wxAuiPaneInfo> JSON_SETTINGS::Get<wxAuiPaneInfo>( const std::string& aPath ) const;
|
||||
extern template std::optional<KIGFX::CROSS_HAIR_MODE> JSON_SETTINGS::Get<KIGFX::CROSS_HAIR_MODE>( const std::string& aPath ) const;
|
||||
|
||||
#endif
|
||||
|
@ -148,7 +148,9 @@ public:
|
||||
static TOOL_ACTION centerContents;
|
||||
static TOOL_ACTION centerSelection;
|
||||
static TOOL_ACTION toggleCursor;
|
||||
static TOOL_ACTION toggleCursorStyle;
|
||||
static TOOL_ACTION cursorSmallCrosshairs;
|
||||
static TOOL_ACTION cursorFullCrosshairs;
|
||||
static TOOL_ACTION cursor45Crosshairs;
|
||||
static TOOL_ACTION highContrastMode;
|
||||
static TOOL_ACTION highContrastModeCycle;
|
||||
static TOOL_ACTION toggleBoundingBoxes;
|
||||
|
@ -64,7 +64,9 @@ public:
|
||||
// Cursor control
|
||||
int CursorControl( const TOOL_EVENT& aEvent );
|
||||
int ToggleCursor( const TOOL_EVENT& aEvent );
|
||||
int ToggleCursorStyle( const TOOL_EVENT& aEvent );
|
||||
int CursorSmallCrosshairs( const TOOL_EVENT& aEvent );
|
||||
int CursorFullCrosshairs( const TOOL_EVENT& aEvent );
|
||||
int Cursor45Crosshairs( const TOOL_EVENT& aEvent );
|
||||
|
||||
int ToggleBoundingBoxes( const TOOL_EVENT& aEvent );
|
||||
|
||||
|
@ -34,6 +34,11 @@ class EDA_BASE_FRAME;
|
||||
class EDA_DRAW_FRAME;
|
||||
class TOOL_ACTION;
|
||||
|
||||
namespace KIGFX
|
||||
{
|
||||
enum class CROSS_HAIR_MODE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Class that groups generic conditions for editor states.
|
||||
*/
|
||||
@ -125,7 +130,9 @@ public:
|
||||
*
|
||||
* @return Functor testing if the cursor is full screen
|
||||
*/
|
||||
SELECTION_CONDITION FullscreenCursor();
|
||||
SELECTION_CONDITION CursorSmallCrosshairs();
|
||||
SELECTION_CONDITION CursorFullCrosshairs();
|
||||
SELECTION_CONDITION Cursor45Crosshairs();
|
||||
|
||||
SELECTION_CONDITION BoundingBoxes();
|
||||
|
||||
@ -168,7 +175,8 @@ protected:
|
||||
static bool polarCoordFunc( const SELECTION& aSelection, EDA_DRAW_FRAME* aFrame );
|
||||
|
||||
/// Helper function used by FullscreenCursor().
|
||||
static bool cursorFunc( const SELECTION& aSelection, EDA_DRAW_FRAME* aFrame );
|
||||
static bool cursorFunc( const SELECTION& aSelection, EDA_DRAW_FRAME* aFrame,
|
||||
KIGFX::CROSS_HAIR_MODE aMode );
|
||||
|
||||
/// Helper function used by DrawBoundingBoxes().
|
||||
static bool bboxesFunc( const SELECTION& aSelection, EDA_DRAW_FRAME* aFrame );
|
||||
|
@ -313,7 +313,9 @@ void PL_EDITOR_FRAME::setupUIConditions()
|
||||
mgr->SetConditions( ACTIONS::redo, ENABLE( cond.RedoAvailable() ) );
|
||||
|
||||
mgr->SetConditions( ACTIONS::toggleGrid, CHECK( cond.GridVisible() ) );
|
||||
mgr->SetConditions( ACTIONS::toggleCursorStyle, CHECK( cond.FullscreenCursor() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorSmallCrosshairs, CHECK( cond.CursorSmallCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorFullCrosshairs, CHECK( cond.CursorFullCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursor45Crosshairs, CHECK( cond.Cursor45Crosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::millimetersUnits, CHECK( cond.Units( EDA_UNITS::MM ) ) );
|
||||
mgr->SetConditions( ACTIONS::inchesUnits, CHECK( cond.Units( EDA_UNITS::INCH ) ) );
|
||||
mgr->SetConditions( ACTIONS::milsUnits, CHECK( cond.Units( EDA_UNITS::MILS ) ) );
|
||||
|
@ -846,7 +846,9 @@ void FOOTPRINT_CHOOSER_FRAME::setupUIConditions()
|
||||
#define CHECK( x ) ACTION_CONDITIONS().Check( x )
|
||||
|
||||
mgr->SetConditions( ACTIONS::toggleGrid, CHECK( cond.GridVisible() ) );
|
||||
mgr->SetConditions( ACTIONS::toggleCursorStyle, CHECK( cond.FullscreenCursor() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorSmallCrosshairs, CHECK( cond.CursorSmallCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorFullCrosshairs, CHECK( cond.CursorFullCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursor45Crosshairs, CHECK( cond.Cursor45Crosshairs() ) );
|
||||
|
||||
mgr->SetConditions( ACTIONS::millimetersUnits, CHECK( cond.Units( EDA_UNITS::MM ) ) );
|
||||
mgr->SetConditions( ACTIONS::inchesUnits, CHECK( cond.Units( EDA_UNITS::INCH ) ) );
|
||||
|
@ -1340,7 +1340,9 @@ void FOOTPRINT_EDIT_FRAME::setupUIConditions()
|
||||
|
||||
mgr->SetConditions( ACTIONS::toggleGrid, CHECK( cond.GridVisible() ) );
|
||||
mgr->SetConditions( ACTIONS::toggleGridOverrides, CHECK( cond.GridOverrides() ) );
|
||||
mgr->SetConditions( ACTIONS::toggleCursorStyle, CHECK( cond.FullscreenCursor() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorSmallCrosshairs, CHECK( cond.CursorSmallCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorFullCrosshairs, CHECK( cond.CursorFullCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursor45Crosshairs, CHECK( cond.Cursor45Crosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::millimetersUnits, CHECK( cond.Units( EDA_UNITS::MM ) ) );
|
||||
mgr->SetConditions( ACTIONS::inchesUnits, CHECK( cond.Units( EDA_UNITS::INCH ) ) );
|
||||
mgr->SetConditions( ACTIONS::milsUnits, CHECK( cond.Units( EDA_UNITS::MILS ) ) );
|
||||
|
@ -349,7 +349,9 @@ void FOOTPRINT_VIEWER_FRAME::setupUIConditions()
|
||||
#define CHECK( x ) ACTION_CONDITIONS().Check( x )
|
||||
|
||||
mgr->SetConditions( ACTIONS::toggleGrid, CHECK( cond.GridVisible() ) );
|
||||
mgr->SetConditions( ACTIONS::toggleCursorStyle, CHECK( cond.FullscreenCursor() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorSmallCrosshairs, CHECK( cond.CursorSmallCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorFullCrosshairs, CHECK( cond.CursorFullCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursor45Crosshairs, CHECK( cond.Cursor45Crosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::millimetersUnits, CHECK( cond.Units( EDA_UNITS::MM ) ) );
|
||||
mgr->SetConditions( ACTIONS::inchesUnits, CHECK( cond.Units( EDA_UNITS::INCH ) ) );
|
||||
mgr->SetConditions( ACTIONS::milsUnits, CHECK( cond.Units( EDA_UNITS::MILS ) ) );
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include <pcb_draw_panel_gal.h>
|
||||
#include <pcb_edit_frame.h>
|
||||
#include <3d_viewer/eda_3d_viewer_frame.h>
|
||||
#include <gal/gal_display_options.h>
|
||||
#include <widgets/msgpanel.h>
|
||||
#include <bitmaps.h>
|
||||
#include <grid_tricks.h>
|
||||
@ -197,7 +198,7 @@ FOOTPRINT_WIZARD_FRAME::FOOTPRINT_WIZARD_FRAME( KIWAY* aKiway, wxWindow* aParent
|
||||
m_auimgr.AddPane( GetCanvas(), wxAuiPaneInfo().Name( "DrawFrame" ).CentrePane() );
|
||||
|
||||
auto& galOpts = GetGalDisplayOptions();
|
||||
galOpts.m_fullscreenCursor = true;
|
||||
galOpts.SetCursorMode( KIGFX::CROSS_HAIR_MODE::FULLSCREEN_CROSS );
|
||||
galOpts.m_forceDisplayCursor = true;
|
||||
galOpts.m_axesEnabled = true;
|
||||
|
||||
|
@ -823,7 +823,9 @@ void PCB_EDIT_FRAME::setupUIConditions()
|
||||
|
||||
mgr->SetConditions( ACTIONS::toggleGrid, CHECK( cond.GridVisible() ) );
|
||||
mgr->SetConditions( ACTIONS::toggleGridOverrides, CHECK( cond.GridOverrides() ) );
|
||||
mgr->SetConditions( ACTIONS::toggleCursorStyle, CHECK( cond.FullscreenCursor() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorSmallCrosshairs, CHECK( cond.CursorSmallCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursorFullCrosshairs, CHECK( cond.CursorFullCrosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::cursor45Crosshairs, CHECK( cond.Cursor45Crosshairs() ) );
|
||||
mgr->SetConditions( ACTIONS::togglePolarCoords, CHECK( cond.PolarCoordinates() ) );
|
||||
mgr->SetConditions( ACTIONS::millimetersUnits, CHECK( cond.Units( EDA_UNITS::MM ) ) );
|
||||
mgr->SetConditions( ACTIONS::inchesUnits, CHECK( cond.Units( EDA_UNITS::INCH ) ) );
|
||||
|
@ -54,7 +54,10 @@ std::optional<TOOLBAR_CONFIGURATION> FOOTPRINT_EDIT_TOOLBAR_SETTINGS::DefaultToo
|
||||
.AppendAction( ACTIONS::inchesUnits )
|
||||
.AppendAction( ACTIONS::milsUnits )
|
||||
.AppendAction( ACTIONS::millimetersUnits )
|
||||
.AppendAction( ACTIONS::toggleCursorStyle );
|
||||
.AppendGroup( TOOLBAR_GROUP_CONFIG( _( "Crosshair modes" ) )
|
||||
.AddAction( ACTIONS::cursorSmallCrosshairs )
|
||||
.AddAction( ACTIONS::cursorFullCrosshairs )
|
||||
.AddAction( ACTIONS::cursor45Crosshairs ) );
|
||||
|
||||
config.AppendSeparator()
|
||||
.AppendAction( PCB_ACTIONS::toggleHV45Mode );
|
||||
|
@ -80,7 +80,10 @@ std::optional<TOOLBAR_CONFIGURATION> FOOTPRINT_VIEWER_TOOLBAR_SETTINGS::DefaultT
|
||||
.AppendAction( ACTIONS::inchesUnits )
|
||||
.AppendAction( ACTIONS::milsUnits )
|
||||
.AppendAction( ACTIONS::millimetersUnits )
|
||||
.AppendAction( ACTIONS::toggleCursorStyle );
|
||||
.AppendGroup( TOOLBAR_GROUP_CONFIG( _( "Crosshair modes" ) )
|
||||
.AddAction( ACTIONS::cursorSmallCrosshairs )
|
||||
.AddAction( ACTIONS::cursorFullCrosshairs )
|
||||
.AddAction( ACTIONS::cursor45Crosshairs ) );
|
||||
|
||||
config.AppendSeparator()
|
||||
.AppendAction( PCB_ACTIONS::showPadNumbers )
|
||||
|
@ -140,7 +140,10 @@ std::optional<TOOLBAR_CONFIGURATION> PCB_EDIT_TOOLBAR_SETTINGS::DefaultToolbarCo
|
||||
.AppendAction( ACTIONS::inchesUnits )
|
||||
.AppendAction( ACTIONS::milsUnits )
|
||||
.AppendAction( ACTIONS::millimetersUnits )
|
||||
.AppendAction( ACTIONS::toggleCursorStyle );
|
||||
.AppendGroup( TOOLBAR_GROUP_CONFIG( _( "Crosshair modes" ) )
|
||||
.AddAction( ACTIONS::cursorSmallCrosshairs )
|
||||
.AddAction( ACTIONS::cursorFullCrosshairs )
|
||||
.AddAction( ACTIONS::cursor45Crosshairs ) );
|
||||
|
||||
config.AppendSeparator()
|
||||
.AppendAction( PCB_ACTIONS::toggleHV45Mode );
|
||||
|
@ -38,7 +38,9 @@ bool FOOTPRINT_CHOOSER_SELECTION_TOOL::Init()
|
||||
|
||||
menu.AddSeparator( 1 );
|
||||
menu.AddCheckItem( ACTIONS::toggleGrid, SELECTION_CONDITIONS::ShowAlways, 1 );
|
||||
menu.AddCheckItem( ACTIONS::toggleCursorStyle, SELECTION_CONDITIONS::ShowAlways, 1 );
|
||||
menu.AddCheckItem( ACTIONS::cursorSmallCrosshairs, SELECTION_CONDITIONS::ShowAlways, 1 );
|
||||
menu.AddCheckItem( ACTIONS::cursorFullCrosshairs, SELECTION_CONDITIONS::ShowAlways, 1 );
|
||||
menu.AddCheckItem( ACTIONS::cursor45Crosshairs, SELECTION_CONDITIONS::ShowAlways, 1 );
|
||||
|
||||
menu.AddSeparator( 10 );
|
||||
menu.AddCheckItem( ACTIONS::inchesUnits, SELECTION_CONDITIONS::ShowAlways, 10 );
|
||||
|
@ -227,7 +227,7 @@
|
||||
"window": {
|
||||
"cursor": {
|
||||
"always_show_cursor": true,
|
||||
"fullscreen_cursor": false
|
||||
"cross_hair_mode": 0
|
||||
},
|
||||
"display": 0,
|
||||
"grid": {
|
||||
|
@ -40,7 +40,7 @@
|
||||
"autozoom": true,
|
||||
"cursor": {
|
||||
"always_show_cursor": true,
|
||||
"fullscreen_cursor": false
|
||||
"cross_hair_mode": 0
|
||||
},
|
||||
"display": 0,
|
||||
"grid": {
|
||||
@ -257,7 +257,7 @@
|
||||
"window": {
|
||||
"cursor": {
|
||||
"always_show_cursor": true,
|
||||
"fullscreen_cursor": false
|
||||
"cross_hair_mode": 0
|
||||
},
|
||||
"display": 0,
|
||||
"grid": {
|
||||
|
@ -202,7 +202,7 @@
|
||||
"window": {
|
||||
"cursor": {
|
||||
"always_show_cursor": true,
|
||||
"fullscreen_cursor": false
|
||||
"cross_hair_mode": 0
|
||||
},
|
||||
"display": 0,
|
||||
"grid": {
|
||||
@ -362,7 +362,7 @@
|
||||
"window": {
|
||||
"cursor": {
|
||||
"always_show_cursor": true,
|
||||
"fullscreen_cursor": false
|
||||
"cross_hair_mode": 0
|
||||
},
|
||||
"display": 0,
|
||||
"grid": {
|
||||
@ -466,7 +466,7 @@
|
||||
"window": {
|
||||
"cursor": {
|
||||
"always_show_cursor": true,
|
||||
"fullscreen_cursor": false
|
||||
"cross_hair_mode": 0
|
||||
},
|
||||
"display": 0,
|
||||
"grid": {
|
||||
|
@ -171,7 +171,7 @@
|
||||
"window": {
|
||||
"cursor": {
|
||||
"always_show_cursor": true,
|
||||
"fullscreen_cursor": false
|
||||
"cross_hair_mode": 0
|
||||
},
|
||||
"display": 0,
|
||||
"footprint_text_shown_columns": "0 1 2 3 4 5 7",
|
||||
|
@ -107,7 +107,7 @@
|
||||
"window": {
|
||||
"cursor": {
|
||||
"always_show_cursor": true,
|
||||
"fullscreen_cursor": false
|
||||
"cross_hair_mode": 0
|
||||
},
|
||||
"display": 0,
|
||||
"grid": {
|
||||
|
@ -153,7 +153,7 @@
|
||||
"autozoom": true,
|
||||
"cursor": {
|
||||
"always_show_cursor": true,
|
||||
"fullscreen_cursor": false
|
||||
"cross_hair_mode": 0
|
||||
},
|
||||
"display": 0,
|
||||
"fp_list_width": 300,
|
||||
@ -326,7 +326,7 @@
|
||||
"footprint_wizard": {
|
||||
"cursor": {
|
||||
"always_show_cursor": true,
|
||||
"fullscreen_cursor": false
|
||||
"cross_hair_mode": 0
|
||||
},
|
||||
"display": 0,
|
||||
"grid": {
|
||||
@ -635,7 +635,7 @@
|
||||
"window": {
|
||||
"cursor": {
|
||||
"always_show_cursor": true,
|
||||
"fullscreen_cursor": false
|
||||
"cross_hair_mode": 0
|
||||
},
|
||||
"display": 0,
|
||||
"footprint_text_shown_columns": "0 1 2 3 4 5 7",
|
||||
|
@ -124,7 +124,7 @@
|
||||
"window": {
|
||||
"cursor": {
|
||||
"always_show_cursor": true,
|
||||
"fullscreen_cursor": false
|
||||
"cross_hair_mode": 0
|
||||
},
|
||||
"display": 0,
|
||||
"grid": {
|
||||
|
@ -239,6 +239,8 @@ set( BMAPS_MID
|
||||
convert
|
||||
copy
|
||||
copy_pad_settings
|
||||
cursor_fullscreen
|
||||
cursor_fullscreen45
|
||||
cursor_shape
|
||||
cursor
|
||||
custom_pad_to_primitives
|
||||
|
BIN
resources/bitmaps_png/png/cursor_fullscreen45_16.png
Normal file
After Width: | Height: | Size: 350 B |
BIN
resources/bitmaps_png/png/cursor_fullscreen45_24.png
Normal file
After Width: | Height: | Size: 466 B |
BIN
resources/bitmaps_png/png/cursor_fullscreen45_32.png
Normal file
After Width: | Height: | Size: 627 B |
BIN
resources/bitmaps_png/png/cursor_fullscreen45_48.png
Normal file
After Width: | Height: | Size: 829 B |
BIN
resources/bitmaps_png/png/cursor_fullscreen45_64.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
resources/bitmaps_png/png/cursor_fullscreen45_dark_16.png
Normal file
After Width: | Height: | Size: 332 B |
BIN
resources/bitmaps_png/png/cursor_fullscreen45_dark_24.png
Normal file
After Width: | Height: | Size: 480 B |
BIN
resources/bitmaps_png/png/cursor_fullscreen45_dark_32.png
Normal file
After Width: | Height: | Size: 610 B |
BIN
resources/bitmaps_png/png/cursor_fullscreen45_dark_48.png
Normal file
After Width: | Height: | Size: 842 B |
BIN
resources/bitmaps_png/png/cursor_fullscreen45_dark_64.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
resources/bitmaps_png/png/cursor_fullscreen_16.png
Normal file
After Width: | Height: | Size: 289 B |
BIN
resources/bitmaps_png/png/cursor_fullscreen_24.png
Normal file
After Width: | Height: | Size: 308 B |
BIN
resources/bitmaps_png/png/cursor_fullscreen_32.png
Normal file
After Width: | Height: | Size: 508 B |
BIN
resources/bitmaps_png/png/cursor_fullscreen_48.png
Normal file
After Width: | Height: | Size: 536 B |
BIN
resources/bitmaps_png/png/cursor_fullscreen_64.png
Normal file
After Width: | Height: | Size: 890 B |
BIN
resources/bitmaps_png/png/cursor_fullscreen_dark_16.png
Normal file
After Width: | Height: | Size: 293 B |
BIN
resources/bitmaps_png/png/cursor_fullscreen_dark_24.png
Normal file
After Width: | Height: | Size: 325 B |
BIN
resources/bitmaps_png/png/cursor_fullscreen_dark_32.png
Normal file
After Width: | Height: | Size: 519 B |
BIN
resources/bitmaps_png/png/cursor_fullscreen_dark_48.png
Normal file
After Width: | Height: | Size: 531 B |
BIN
resources/bitmaps_png/png/cursor_fullscreen_dark_64.png
Normal file
After Width: | Height: | Size: 910 B |
Before Width: | Height: | Size: 279 B After Width: | Height: | Size: 253 B |
Before Width: | Height: | Size: 303 B After Width: | Height: | Size: 278 B |
Before Width: | Height: | Size: 497 B After Width: | Height: | Size: 445 B |
Before Width: | Height: | Size: 526 B After Width: | Height: | Size: 491 B |
Before Width: | Height: | Size: 882 B After Width: | Height: | Size: 795 B |
Before Width: | Height: | Size: 287 B After Width: | Height: | Size: 260 B |
Before Width: | Height: | Size: 318 B After Width: | Height: | Size: 291 B |
Before Width: | Height: | Size: 507 B After Width: | Height: | Size: 460 B |
Before Width: | Height: | Size: 527 B After Width: | Height: | Size: 491 B |
Before Width: | Height: | Size: 906 B After Width: | Height: | Size: 815 B |
204
resources/bitmaps_png/sources/dark/cursor_fullscreen.svg
Normal file
@ -0,0 +1,204 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
id="Слой_1"
|
||||
data-name="Слой 1"
|
||||
viewBox="0 0 24 24"
|
||||
version="1.1"
|
||||
sodipodi:docname="cursor_fullscreen.svg"
|
||||
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||
inkscape:export-filename="/tmp/cursor_shape.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata2369">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title>cursor_shape</dc:title>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#545454"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2285"
|
||||
inkscape:window-height="1629"
|
||||
id="namedview2367"
|
||||
showgrid="true"
|
||||
inkscape:zoom="45.254834"
|
||||
inkscape:cx="10.551359"
|
||||
inkscape:cy="13.368738"
|
||||
inkscape:window-x="1453"
|
||||
inkscape:window-y="97"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Слой_1"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2947"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingy="1"
|
||||
spacingx="1"
|
||||
units="px" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs2348">
|
||||
<linearGradient
|
||||
id="linearGradient1556"
|
||||
x1="12.7662"
|
||||
y1="2.0027"
|
||||
x2="12.7662"
|
||||
y2="10.3611"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#ececec"
|
||||
id="stop1552"
|
||||
style="stop-opacity:0;stop-color:#ebebeb" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#c6c6c5"
|
||||
id="stop1554" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1550"
|
||||
x1="12.7662"
|
||||
y1="2.0027"
|
||||
x2="12.7662"
|
||||
y2="10.3611"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#ececec"
|
||||
id="stop1546" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#c6c6c5"
|
||||
id="stop1548"
|
||||
style="stop-opacity:0" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient2979"
|
||||
x1="12.7662"
|
||||
y1="2.0027"
|
||||
x2="12.7662"
|
||||
y2="10.3611"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#ececec"
|
||||
id="stop2975" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#c6c6c5"
|
||||
id="stop2977" />
|
||||
</linearGradient>
|
||||
<style
|
||||
id="style2338">.cls-1{fill:url(#Безымянный_градиент_19);}.cls-2{fill:url(#Безымянный_градиент_19-2);}.cls-3{fill:url(#Безымянный_градиент_19-3);}.cls-4{fill:url(#Безымянный_градиент_19-4);}.cls-5{fill:#42B8EB;}.cls-6{fill:#DED3DD;}</style>
|
||||
<linearGradient
|
||||
id="Безымянный_градиент_19"
|
||||
x1="12.7662"
|
||||
y1="2.0027"
|
||||
x2="12.7662"
|
||||
y2="10.3611"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#ececec"
|
||||
id="stop2340" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#c6c6c5"
|
||||
id="stop2342" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="Безымянный_градиент_19-2"
|
||||
x1="12.7525"
|
||||
y1="23.0164"
|
||||
x2="12.7525"
|
||||
y2="14.658"
|
||||
xlink:href="#Безымянный_градиент_19" />
|
||||
<linearGradient
|
||||
id="Безымянный_градиент_19-3"
|
||||
x1="15.5046"
|
||||
y1="2.2432"
|
||||
x2="15.5046"
|
||||
y2="10.6016"
|
||||
gradientTransform="translate(25.5094 -2.5136) rotate(90)"
|
||||
xlink:href="#Безымянный_градиент_19" />
|
||||
<linearGradient
|
||||
id="Безымянный_градиент_19-4"
|
||||
x1="15.4919"
|
||||
y1="23.5134"
|
||||
x2="15.4919"
|
||||
y2="14.8985"
|
||||
gradientTransform="translate(25.5094 -2.5136) rotate(90)"
|
||||
xlink:href="#Безымянный_градиент_19" />
|
||||
</defs>
|
||||
<title
|
||||
id="title2350">cursor_shape</title>
|
||||
<g
|
||||
id="g1564">
|
||||
<path
|
||||
style="fill:none;stroke:#8f8f8f;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 0.52,12.499724 22.972201,0"
|
||||
id="path1558"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#8f8f8f;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 12.5,23.497496 0,-22.97749515"
|
||||
id="path1560"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#42B8EB;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 8.5,12.5 h 8"
|
||||
id="path3015" />
|
||||
<path
|
||||
style="fill:none;stroke:#42B8EB;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 12.5,16.5 v -8"
|
||||
id="path3017" />
|
||||
<path
|
||||
class="cls-6"
|
||||
d="m 12,12 -9.32e-4,10.882159 2.415252,-2.312217 c 0.325669,0.741356 0.803185,1.836142 1.220872,2.791856 a 1.2338,1.2338 0 0 0 1.627633,0.634824 v 0 a 1.2337,1.2337 0 0 0 0.635719,-1.623937 c -0.417615,-0.955901 -0.895724,-2.05243 -1.222119,-2.796018 l 3.337183,-0.213478 z"
|
||||
id="path25"
|
||||
style="fill:#DED3DD" />
|
||||
</svg>
|
After Width: | Height: | Size: 6.7 KiB |
207
resources/bitmaps_png/sources/dark/cursor_fullscreen45.svg
Normal file
@ -0,0 +1,207 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
id="Слой_1"
|
||||
data-name="Слой 1"
|
||||
viewBox="0 0 24 24"
|
||||
version="1.1"
|
||||
sodipodi:docname="cursor_fullscreen45.svg"
|
||||
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||
inkscape:export-filename="/tmp/cursor_shape.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata2369">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title>cursor_shape</dc:title>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#545454"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2285"
|
||||
inkscape:window-height="1629"
|
||||
id="namedview2367"
|
||||
showgrid="true"
|
||||
inkscape:zoom="22.627417"
|
||||
inkscape:cx="11.114835"
|
||||
inkscape:cy="11.667262"
|
||||
inkscape:window-x="1453"
|
||||
inkscape:window-y="97"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g1564"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2947"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingy="1"
|
||||
spacingx="1"
|
||||
units="px" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs2348">
|
||||
<linearGradient
|
||||
id="linearGradient1556"
|
||||
x1="12.7662"
|
||||
y1="2.0027"
|
||||
x2="12.7662"
|
||||
y2="10.3611"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#ececec"
|
||||
id="stop1552"
|
||||
style="stop-opacity:0;stop-color:#ebebeb" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#c6c6c5"
|
||||
id="stop1554" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1550"
|
||||
x1="12.7662"
|
||||
y1="2.0027"
|
||||
x2="12.7662"
|
||||
y2="10.3611"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#ececec"
|
||||
id="stop1546" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#c6c6c5"
|
||||
id="stop1548"
|
||||
style="stop-opacity:0" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient2979"
|
||||
x1="12.7662"
|
||||
y1="2.0027"
|
||||
x2="12.7662"
|
||||
y2="10.3611"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#ececec"
|
||||
id="stop2975" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#c6c6c5"
|
||||
id="stop2977" />
|
||||
</linearGradient>
|
||||
<style
|
||||
id="style2338">.cls-1{fill:url(#Безымянный_градиент_19);}.cls-2{fill:url(#Безымянный_градиент_19-2);}.cls-3{fill:url(#Безымянный_градиент_19-3);}.cls-4{fill:url(#Безымянный_градиент_19-4);}.cls-5{fill:#42B8EB;}.cls-6{fill:#DED3DD;}</style>
|
||||
<linearGradient
|
||||
id="Безымянный_градиент_19"
|
||||
x1="12.7662"
|
||||
y1="2.0027"
|
||||
x2="12.7662"
|
||||
y2="10.3611"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#ececec"
|
||||
id="stop2340" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#c6c6c5"
|
||||
id="stop2342" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="Безымянный_градиент_19-2"
|
||||
x1="12.7525"
|
||||
y1="23.0164"
|
||||
x2="12.7525"
|
||||
y2="14.658"
|
||||
xlink:href="#Безымянный_градиент_19" />
|
||||
<linearGradient
|
||||
id="Безымянный_градиент_19-3"
|
||||
x1="15.5046"
|
||||
y1="2.2432"
|
||||
x2="15.5046"
|
||||
y2="10.6016"
|
||||
gradientTransform="translate(25.5094 -2.5136) rotate(90)"
|
||||
xlink:href="#Безымянный_градиент_19" />
|
||||
<linearGradient
|
||||
id="Безымянный_градиент_19-4"
|
||||
x1="15.4919"
|
||||
y1="23.5134"
|
||||
x2="15.4919"
|
||||
y2="14.8985"
|
||||
gradientTransform="translate(25.5094 -2.5136) rotate(90)"
|
||||
xlink:href="#Безымянный_градиент_19" />
|
||||
</defs>
|
||||
<title
|
||||
id="title2350">cursor_shape</title>
|
||||
<g
|
||||
id="g1564"
|
||||
transform="rotate(-45,12.006101,12.008748)">
|
||||
<path
|
||||
style="fill:none;stroke:#8f8f8f;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m -4.96259,11.998248 33.941125,0"
|
||||
id="path1558"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#8f8f8f;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 12.007973,28.968811 0,-33.9411256"
|
||||
id="path1560"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#42b8eb;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 9,15 15,9"
|
||||
id="path3015"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#42b8eb;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 15,15 9,9"
|
||||
id="path3017"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
class="cls-6"
|
||||
d="m 12,12 -9.32e-4,10.882159 2.415252,-2.312217 c 0.325669,0.741356 0.803185,1.836142 1.220872,2.791856 a 1.2338,1.2338 0 0 0 1.627633,0.634824 v 0 a 1.2337,1.2337 0 0 0 0.635719,-1.623937 c -0.417615,-0.955901 -0.895724,-2.05243 -1.222119,-2.796018 l 3.337183,-0.213478 z"
|
||||
id="path25"
|
||||
style="fill:#DED3DD" />
|
||||
</svg>
|
After Width: | Height: | Size: 6.8 KiB |
@ -1,22 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="Слой_1"
|
||||
data-name="Слой 1"
|
||||
viewBox="0 0 24 24"
|
||||
version="1.1"
|
||||
sodipodi:docname="cursor_shape.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||
inkscape:export-filename="/tmp/cursor_shape.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96">
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata2369">
|
||||
<rdf:RDF>
|
||||
@ -60,16 +60,24 @@
|
||||
id="namedview2367"
|
||||
showgrid="true"
|
||||
inkscape:zoom="45.254834"
|
||||
inkscape:cx="10.543725"
|
||||
inkscape:cy="13.371759"
|
||||
inkscape:cx="10.551359"
|
||||
inkscape:cy="13.368738"
|
||||
inkscape:window-x="1453"
|
||||
inkscape:window-y="97"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Слой_1"
|
||||
inkscape:document-rotation="0">
|
||||
inkscape:current-layer="g1564"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2947" />
|
||||
id="grid2947"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingy="1"
|
||||
spacingx="1"
|
||||
units="px" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs2348">
|
||||
@ -168,18 +176,7 @@
|
||||
<title
|
||||
id="title2350">cursor_shape</title>
|
||||
<g
|
||||
id="g1564">
|
||||
<path
|
||||
style="fill:none;stroke:#8f8f8f;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 0.52,12.499724 22.972201,0"
|
||||
id="path1558"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#8f8f8f;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 12.5,23.497496 0,-22.97749515"
|
||||
id="path1560"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
id="g1564" />
|
||||
<path
|
||||
style="fill:none;stroke:#42B8EB;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 8.5,12.5 h 8"
|
||||
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.1 KiB |
204
resources/bitmaps_png/sources/light/cursor_fullscreen.svg
Normal file
@ -0,0 +1,204 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
id="Слой_1"
|
||||
data-name="Слой 1"
|
||||
viewBox="0 0 24 24"
|
||||
version="1.1"
|
||||
sodipodi:docname="cursor_fullscreen.svg"
|
||||
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||
inkscape:export-filename="/tmp/cursor_shape.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata2369">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title>cursor_shape</dc:title>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#f5f5f5"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="3840"
|
||||
inkscape:window-height="2109"
|
||||
id="namedview2367"
|
||||
showgrid="true"
|
||||
inkscape:zoom="45.254834"
|
||||
inkscape:cx="10.54031"
|
||||
inkscape:cy="13.368738"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Слой_1"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2947"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingy="1"
|
||||
spacingx="1"
|
||||
units="px" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs2348">
|
||||
<linearGradient
|
||||
id="linearGradient1556"
|
||||
x1="12.7662"
|
||||
y1="2.0027"
|
||||
x2="12.7662"
|
||||
y2="10.3611"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#ececec"
|
||||
id="stop1552"
|
||||
style="stop-opacity:0;stop-color:#ebebeb" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#c6c6c5"
|
||||
id="stop1554" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1550"
|
||||
x1="12.7662"
|
||||
y1="2.0027"
|
||||
x2="12.7662"
|
||||
y2="10.3611"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#ececec"
|
||||
id="stop1546" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#c6c6c5"
|
||||
id="stop1548"
|
||||
style="stop-opacity:0" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient2979"
|
||||
x1="12.7662"
|
||||
y1="2.0027"
|
||||
x2="12.7662"
|
||||
y2="10.3611"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#ececec"
|
||||
id="stop2975" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#c6c6c5"
|
||||
id="stop2977" />
|
||||
</linearGradient>
|
||||
<style
|
||||
id="style2338">.cls-1{fill:url(#Безымянный_градиент_19);}.cls-2{fill:url(#Безымянный_градиент_19-2);}.cls-3{fill:url(#Безымянный_градиент_19-3);}.cls-4{fill:url(#Безымянный_градиент_19-4);}.cls-5{fill:#1a81c4;}.cls-6{fill:#545454;}</style>
|
||||
<linearGradient
|
||||
id="Безымянный_градиент_19"
|
||||
x1="12.7662"
|
||||
y1="2.0027"
|
||||
x2="12.7662"
|
||||
y2="10.3611"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#ececec"
|
||||
id="stop2340" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#c6c6c5"
|
||||
id="stop2342" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="Безымянный_градиент_19-2"
|
||||
x1="12.7525"
|
||||
y1="23.0164"
|
||||
x2="12.7525"
|
||||
y2="14.658"
|
||||
xlink:href="#Безымянный_градиент_19" />
|
||||
<linearGradient
|
||||
id="Безымянный_градиент_19-3"
|
||||
x1="15.5046"
|
||||
y1="2.2432"
|
||||
x2="15.5046"
|
||||
y2="10.6016"
|
||||
gradientTransform="translate(25.5094 -2.5136) rotate(90)"
|
||||
xlink:href="#Безымянный_градиент_19" />
|
||||
<linearGradient
|
||||
id="Безымянный_градиент_19-4"
|
||||
x1="15.4919"
|
||||
y1="23.5134"
|
||||
x2="15.4919"
|
||||
y2="14.8985"
|
||||
gradientTransform="translate(25.5094 -2.5136) rotate(90)"
|
||||
xlink:href="#Безымянный_градиент_19" />
|
||||
</defs>
|
||||
<title
|
||||
id="title2350">cursor_shape</title>
|
||||
<g
|
||||
id="g1564">
|
||||
<path
|
||||
style="fill:none;stroke:#b9b9b9;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 0.52,12.499724 22.972201,0"
|
||||
id="path1558"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#b9b9b9;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 12.5,23.497496 0,-22.97749515"
|
||||
id="path1560"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#1a81c4;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 8.5,12.5 h 8"
|
||||
id="path3015" />
|
||||
<path
|
||||
style="fill:none;stroke:#1a81c4;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 12.5,16.5 v -8"
|
||||
id="path3017" />
|
||||
<path
|
||||
class="cls-6"
|
||||
d="m 12,12 -9.32e-4,10.882159 2.415252,-2.312217 c 0.325669,0.741356 0.803185,1.836142 1.220872,2.791856 a 1.2338,1.2338 0 0 0 1.627633,0.634824 v 0 a 1.2337,1.2337 0 0 0 0.635719,-1.623937 c -0.417615,-0.955901 -0.895724,-2.05243 -1.222119,-2.796018 l 3.337183,-0.213478 z"
|
||||
id="path25"
|
||||
style="fill:#545454" />
|
||||
</svg>
|
After Width: | Height: | Size: 6.7 KiB |
206
resources/bitmaps_png/sources/light/cursor_fullscreen45.svg
Normal file
@ -0,0 +1,206 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
id="Слой_1"
|
||||
data-name="Слой 1"
|
||||
viewBox="0 0 24 24"
|
||||
version="1.1"
|
||||
sodipodi:docname="cursor_fullscreen45.svg"
|
||||
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||
inkscape:export-filename="/tmp/cursor_shape.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata2369">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title>cursor_shape</dc:title>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#f5f5f5"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="3840"
|
||||
inkscape:window-height="2109"
|
||||
id="namedview2367"
|
||||
showgrid="true"
|
||||
inkscape:zoom="45.254834"
|
||||
inkscape:cx="10.54031"
|
||||
inkscape:cy="13.368738"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Слой_1"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2947"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingy="1"
|
||||
spacingx="1"
|
||||
units="px" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs2348">
|
||||
<linearGradient
|
||||
id="linearGradient1556"
|
||||
x1="12.7662"
|
||||
y1="2.0027"
|
||||
x2="12.7662"
|
||||
y2="10.3611"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#ececec"
|
||||
id="stop1552"
|
||||
style="stop-opacity:0;stop-color:#ebebeb" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#c6c6c5"
|
||||
id="stop1554" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient1550"
|
||||
x1="12.7662"
|
||||
y1="2.0027"
|
||||
x2="12.7662"
|
||||
y2="10.3611"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#ececec"
|
||||
id="stop1546" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#c6c6c5"
|
||||
id="stop1548"
|
||||
style="stop-opacity:0" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient2979"
|
||||
x1="12.7662"
|
||||
y1="2.0027"
|
||||
x2="12.7662"
|
||||
y2="10.3611"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#ececec"
|
||||
id="stop2975" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#c6c6c5"
|
||||
id="stop2977" />
|
||||
</linearGradient>
|
||||
<style
|
||||
id="style2338">.cls-1{fill:url(#Безымянный_градиент_19);}.cls-2{fill:url(#Безымянный_градиент_19-2);}.cls-3{fill:url(#Безымянный_градиент_19-3);}.cls-4{fill:url(#Безымянный_градиент_19-4);}.cls-5{fill:#1a81c4;}.cls-6{fill:#545454;}</style>
|
||||
<linearGradient
|
||||
id="Безымянный_градиент_19"
|
||||
x1="12.7662"
|
||||
y1="2.0027"
|
||||
x2="12.7662"
|
||||
y2="10.3611"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#ececec"
|
||||
id="stop2340" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#c6c6c5"
|
||||
id="stop2342" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="Безымянный_градиент_19-2"
|
||||
x1="12.7525"
|
||||
y1="23.0164"
|
||||
x2="12.7525"
|
||||
y2="14.658"
|
||||
xlink:href="#Безымянный_градиент_19" />
|
||||
<linearGradient
|
||||
id="Безымянный_градиент_19-3"
|
||||
x1="15.5046"
|
||||
y1="2.2432"
|
||||
x2="15.5046"
|
||||
y2="10.6016"
|
||||
gradientTransform="translate(25.5094 -2.5136) rotate(90)"
|
||||
xlink:href="#Безымянный_градиент_19" />
|
||||
<linearGradient
|
||||
id="Безымянный_градиент_19-4"
|
||||
x1="15.4919"
|
||||
y1="23.5134"
|
||||
x2="15.4919"
|
||||
y2="14.8985"
|
||||
gradientTransform="translate(25.5094 -2.5136) rotate(90)"
|
||||
xlink:href="#Безымянный_градиент_19" />
|
||||
</defs>
|
||||
<title
|
||||
id="title2350">cursor_shape</title>
|
||||
<g
|
||||
id="g1564">
|
||||
<path
|
||||
style="fill:none;stroke:#b9b9b9;stroke-width:1.33839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 0,24 24,0"
|
||||
id="path1558"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#b9b9b9;stroke-width:1.33839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 24,24 0,0"
|
||||
id="path1560"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#1a81c4;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 9,15 15,9"
|
||||
id="path3015"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#1a81c4;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 15,15 9,9"
|
||||
id="path3017"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
class="cls-6"
|
||||
d="m 12,12 -9.32e-4,10.882159 2.415252,-2.312217 c 0.325669,0.741356 0.803185,1.836142 1.220872,2.791856 a 1.2338,1.2338 0 0 0 1.627633,0.634824 v 0 a 1.2337,1.2337 0 0 0 0.635719,-1.623937 c -0.417615,-0.955901 -0.895724,-2.05243 -1.222119,-2.796018 l 3.337183,-0.213478 z"
|
||||
id="path25"
|
||||
style="fill:#545454" />
|
||||
</svg>
|
After Width: | Height: | Size: 6.7 KiB |
@ -1,22 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="Слой_1"
|
||||
data-name="Слой 1"
|
||||
viewBox="0 0 24 24"
|
||||
version="1.1"
|
||||
sodipodi:docname="cursor_shape.svg"
|
||||
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||
inkscape:export-filename="/tmp/cursor_shape.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96">
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata2369">
|
||||
<rdf:RDF>
|
||||
@ -60,16 +60,24 @@
|
||||
id="namedview2367"
|
||||
showgrid="true"
|
||||
inkscape:zoom="45.254834"
|
||||
inkscape:cx="10.543725"
|
||||
inkscape:cy="13.371759"
|
||||
inkscape:cx="10.551359"
|
||||
inkscape:cy="13.368738"
|
||||
inkscape:window-x="1453"
|
||||
inkscape:window-y="97"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Слой_1"
|
||||
inkscape:document-rotation="0">
|
||||
inkscape:current-layer="g1564"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2947" />
|
||||
id="grid2947"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingy="1"
|
||||
spacingx="1"
|
||||
units="px" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs2348">
|
||||
@ -168,18 +176,7 @@
|
||||
<title
|
||||
id="title2350">cursor_shape</title>
|
||||
<g
|
||||
id="g1564">
|
||||
<path
|
||||
style="fill:none;stroke:#b9b9b9;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 0.52,12.499724 22.972201,0"
|
||||
id="path1558"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#b9b9b9;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 12.5,23.497496 0,-22.97749515"
|
||||
id="path1560"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
id="g1564" />
|
||||
<path
|
||||
style="fill:none;stroke:#1a81c4;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 8.5,12.5 h 8"
|
||||
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.1 KiB |