KiCad PCB EDA Suite
Loading...
Searching...
No Matches
cursors.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2019-2021 KiCad Developers, see AUTHORS.TXT for contributors.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, you may find one here:
18 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
19 * or you may search the http://www.gnu.org website for the version 2 license,
20 * or you may write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22 */
23
24#ifndef CURSOR_STORE__H
25#define CURSOR_STORE__H
26
27#include <wx/cursor.h>
28
29#include <map>
30#include <vector>
31
32
33enum class KICURSOR
34{
35 DEFAULT,
36 ARROW,
37 ARROW64,
38 MOVING,
40 PENCIL,
42 REMOVE,
44 HAND,
45 HAND64,
52 TUNE,
53 TUNE64,
54 TEXT,
55 TEXT64,
56 MEASURE,
58 ADD,
59 ADD64,
62 XOR,
63 XOR64,
64 ZOOM_IN,
88 PLACE,
90};
91
99{
100public:
105 {
108
110 const unsigned char* m_image_data;
111
113 const unsigned char* m_mask_data;
114
115 const char** m_xpm;
116
118 wxSize m_size;
119
121 wxPoint m_hotspot;
122 };
123
132 CURSOR_STORE( const std::vector<CURSOR_DEF>& aDefs );
133
139 const wxCursor& Get( KICURSOR aIdKey ) const;
140
141 static const wxCursor GetCursor( KICURSOR aCursorType );
142
143 static const wxCursor GetHiDPICursor( KICURSOR aCursorType );
144
145 static wxStockCursor GetStockCursor( KICURSOR aCursorType );
146
147private:
149 std::map<KICURSOR, wxCursor> m_store;
150};
151
152#endif // CURSOR_STORE__H
Simple class to construct and store cursors against unique ID keys.
Definition: cursors.h:99
const wxCursor & Get(KICURSOR aIdKey) const
Get a given cursor by its ID.
Definition: cursors.cpp:575
static wxStockCursor GetStockCursor(KICURSOR aCursorType)
Definition: cursors.cpp:616
static const wxCursor GetHiDPICursor(KICURSOR aCursorType)
Definition: cursors.cpp:602
static const wxCursor GetCursor(KICURSOR aCursorType)
Definition: cursors.cpp:588
std::map< KICURSOR, wxCursor > m_store
< Internal store of cursors by ID
Definition: cursors.h:149
KICURSOR
Definition: cursors.h:34
@ LABEL_GLOBAL64
@ LINE_GRAPHIC64
@ SELECT_LASSO64
@ LINE_WIRE_ADD64
@ VOLTAGE_PROBE64
@ CURRENT_PROBE64
@ SELECT_WINDOW64
Definition of a cursor.
Definition: cursors.h:105
const unsigned char * m_image_data
The mask data bitmap.
Definition: cursors.h:110
KICURSOR m_id_key
< The ID key used to uniquely identify a cursor in a given store
Definition: cursors.h:107
const char ** m_xpm
The image size in pixels.
Definition: cursors.h:115
const unsigned char * m_mask_data
Definition: cursors.h:113
wxSize m_size
The "hotspot" where the cursor "is" in the image.
Definition: cursors.h:118