cgv
Loading...
Searching...
No Matches
shortcut.h
1#pragma once
2
3#include <string>
4#include <iostream>
5#include "lib_begin.h"
6
7namespace cgv {
8 namespace gui {
9
78
80extern CGV_API std::string get_key_string(unsigned short key);
81
83class CGV_API shortcut
84{
85protected:
87 unsigned short key;
89 unsigned char modifiers;
90public:
92 shortcut(unsigned short _key = 0, unsigned char _mod = 0);
94 void stream_out(std::ostream& os) const;
96 bool stream_in(std::istream& is);
98 unsigned short get_key() const { return key; }
100 unsigned char get_modifiers() const { return modifiers; }
102 void set_key(unsigned short _key) { key = _key; }
104 void set_modifiers(unsigned char _modifiers) { modifiers = _modifiers; }
106 void validate();
107};
108
110extern CGV_API std::ostream& operator << (std::ostream& os, const shortcut& sc);
111
113extern CGV_API std::istream& operator >> (std::istream& is, shortcut& sc);
114
115 }
116}
117
118#include <cgv/config/lib_end.h>
the shortcut class encapsulates a key with modifiers
Definition shortcut.h:84
unsigned short get_key() const
return the key
Definition shortcut.h:98
unsigned char get_modifiers() const
return the modifier set
Definition shortcut.h:100
void set_modifiers(unsigned char _modifiers)
set the modifier set
Definition shortcut.h:104
void set_key(unsigned short _key)
set the key
Definition shortcut.h:102
Keys
define the names of special keys
Definition shortcut.h:11
@ KEY_Num_4
num pad key 4
Definition shortcut.h:63
@ KEY_Enter
enter key
Definition shortcut.h:26
@ KEY_F4
F4 key.
Definition shortcut.h:15
@ KEY_F2
F2 key.
Definition shortcut.h:13
@ KEY_F5
F5 key.
Definition shortcut.h:16
@ KEY_Tab
tab key
Definition shortcut.h:27
@ KEY_Num_Lock
num lock key
Definition shortcut.h:56
@ KEY_Print
print key
Definition shortcut.h:28
@ KEY_F12
F12 key.
Definition shortcut.h:23
@ KEY_Left_Ctrl
left ctrl key
Definition shortcut.h:37
@ KEY_F1
F1 key.
Definition shortcut.h:12
@ KEY_Left
left arrow key
Definition shortcut.h:42
@ KEY_Num_0
num pad key 0
Definition shortcut.h:59
@ KEY_F9
F9 key.
Definition shortcut.h:20
@ KEY_Num_2
num pad key 2
Definition shortcut.h:61
@ KEY_F8
F8 key.
Definition shortcut.h:19
@ KEY_Num_3
num pad key 3
Definition shortcut.h:62
@ KEY_Num_Enter
num pad enter key
Definition shortcut.h:74
@ KEY_F10
F10 key.
Definition shortcut.h:21
@ KEY_Break
break key
Definition shortcut.h:30
@ KEY_Num_5
num pad key 5
Definition shortcut.h:64
@ KEY_Left_Meta
left meta key
Definition shortcut.h:39
@ KEY_Left_Alt
left alt key
Definition shortcut.h:35
@ KEY_Num_1
num pad key 1
Definition shortcut.h:60
@ KEY_Scroll_Lock
scroll lock key
Definition shortcut.h:57
@ KEY_Num_7
num pad key 7
Definition shortcut.h:66
@ KEY_Pause
pause key
Definition shortcut.h:29
@ KEY_Page_Up
page up key
Definition shortcut.h:48
@ KEY_Insert
insert key
Definition shortcut.h:53
@ KEY_Back_Space
back space key
Definition shortcut.h:51
@ KEY_Page_Down
page down key
Definition shortcut.h:49
@ KEY_Delete
delete key
Definition shortcut.h:52
@ KEY_Right_Shift
right shift key
Definition shortcut.h:34
@ KEY_Num_8
num pad key 8
Definition shortcut.h:67
@ KEY_Right_Meta
right meta key
Definition shortcut.h:40
@ KEY_Left_Shift
left shift key
Definition shortcut.h:33
@ KEY_Num_9
num pad key 9
Definition shortcut.h:68
@ KEY_End
end key
Definition shortcut.h:47
@ KEY_Escape
escape key
Definition shortcut.h:31
@ KEY_Num_Add
num pad key +
Definition shortcut.h:72
@ KEY_Right
right arrow key
Definition shortcut.h:43
@ KEY_Right_Alt
right alt key
Definition shortcut.h:36
@ KEY_Num_Div
num pad key /
Definition shortcut.h:69
@ KEY_Home
home key
Definition shortcut.h:46
@ KEY_Num_6
num pad key 6
Definition shortcut.h:65
@ KEY_Num_Mul
num pad key *
Definition shortcut.h:70
@ KEY_Up
up arrow key
Definition shortcut.h:44
@ KEY_Caps_Lock
caps lock key
Definition shortcut.h:55
@ KEY_F3
F3 key.
Definition shortcut.h:14
@ KEY_Right_Ctrl
right ctrl key
Definition shortcut.h:38
@ KEY_F7
F7 key.
Definition shortcut.h:18
@ KEY_F11
F11 key.
Definition shortcut.h:22
@ KEY_Num_Sub
num pad key -
Definition shortcut.h:71
@ KEY_F6
F6 key.
Definition shortcut.h:17
@ KEY_Num_Dot
num pad key .
Definition shortcut.h:73
@ KEY_Space
space key
Definition shortcut.h:25
@ KEY_Down
down arrow key
Definition shortcut.h:45
std::istream & operator>>(std::istream &is, shortcut &sc)
stream in a shortcut from an input stream
Definition shortcut.cxx:205
std::ostream & operator<<(std::ostream &os, const shortcut &sc)
stream a shortcut as text to an output stream
Definition shortcut.cxx:198
std::string get_key_string(unsigned short key)
convert a key code into a readable string
Definition shortcut.cxx:70
the cgv namespace
Definition print.h:11