Source code for timelinelib.wxgui.keyboard

# Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018  Rickard Lindberg, Roger Lindberg
#
# This file is part of Timeline.
#
# Timeline is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Timeline is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Timeline.  If not, see <http://www.gnu.org/licenses/>.


"""
A representation of the keyboard and it's control key states.
"""


[docs]class Keyboard: CTRL = 4 SHIFT = 2 ALT = 1 NONE = 0
[docs] def __init__(self, ctrl=False, shift=False, alt=False): self._ctrl = ctrl self._shift = shift self._alt = alt
@property def ctrl(self): return self._ctrl @property def shift(self): return self._shift @property def alt(self): return self._alt @property def keys_combination(self): """ This function returns a unique integer value for each combination of control keys. It may seem a little odd to use the if statements but that has been proven to be the most efficient way of converting a boolean to an int. """ return ((Keyboard.CTRL if self._ctrl else 0) + (Keyboard.SHIFT if self._shift else 0) + (Keyboard.ALT if self._alt else 0))