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