Package Gnumed :: Package timelinelib :: Package wxgui :: Module keyboard
[frames] | no frames]

Source Code for Module Gnumed.timelinelib.wxgui.keyboard

 1  # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018  Rickard Lindberg, Roger Lindberg 
 2  # 
 3  # This file is part of Timeline. 
 4  # 
 5  # Timeline is free software: you can redistribute it and/or modify 
 6  # it under the terms of the GNU General Public License as published by 
 7  # the Free Software Foundation, either version 3 of the License, or 
 8  # (at your option) any later version. 
 9  # 
10  # Timeline is distributed in the hope that it will be useful, 
11  # but WITHOUT ANY WARRANTY; without even the implied warranty of 
12  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
13  # GNU General Public License for more details. 
14  # 
15  # You should have received a copy of the GNU General Public License 
16  # along with Timeline.  If not, see <http://www.gnu.org/licenses/>. 
17   
18   
19  """ 
20  A representation of the keyboard and it's control key states. 
21  """ 
22 23 24 -class Keyboard(object):
25 26 CTRL = 4 27 SHIFT = 2 28 ALT = 1 29 NONE = 0 30
31 - def __init__(self, ctrl=False, shift=False, alt=False):
32 self._ctrl = ctrl 33 self._shift = shift 34 self._alt = alt
35 36 @property
37 - def ctrl(self):
38 return self._ctrl
39 40 @property
41 - def shift(self):
42 return self._shift
43 44 @property
45 - def alt(self):
46 return self._alt
47 48 @property
49 - def keys_combination(self):
50 """ 51 This function returns a unique integer value for each combination 52 of control keys. It may seem a little odd to use the if statements 53 but that has been proven to be the most efficient way of converting 54 a boolean to an int. 55 """ 56 return ((Keyboard.CTRL if self._ctrl else 0) + 57 (Keyboard.SHIFT if self._shift else 0) + 58 (Keyboard.ALT if self._alt else 0))
59