summaryrefslogtreecommitdiff
path: root/grc/gui/Actions.py
diff options
context:
space:
mode:
Diffstat (limited to 'grc/gui/Actions.py')
-rw-r--r--grc/gui/Actions.py76
1 files changed, 54 insertions, 22 deletions
diff --git a/grc/gui/Actions.py b/grc/gui/Actions.py
index 90e23d7fb7..96d133f8df 100644
--- a/grc/gui/Actions.py
+++ b/grc/gui/Actions.py
@@ -57,27 +57,13 @@ def get_all_actions(): return _all_actions_list
_accel_group = gtk.AccelGroup()
def get_accel_group(): return _accel_group
-class Action(gtk.Action):
+
+class _ActionBase(object):
"""
- A custom Action class based on gtk.Action.
- Pass additional arguments such as keypresses.
+ Base class for Action and ToggleAction
Register actions and keypresses with this module.
"""
-
- def __init__(self, keypresses=(), name=None, label=None, tooltip=None, stock_id=None):
- """
- Create a new Action instance.
-
- Args:
- key_presses: a tuple of (keyval1, mod_mask1, keyval2, mod_mask2, ...)
- the: regular gtk.Action parameters (defaults to None)
- """
- if name is None: name = label
- gtk.Action.__init__(self,
- name=name, label=label,
- tooltip=tooltip, stock_id=stock_id,
- )
- #register this action
+ def __init__(self, label, keypresses):
_all_actions_list.append(self)
for i in range(len(keypresses)/2):
keyval, mod_mask = keypresses[i*2:(i+1)*2]
@@ -111,6 +97,52 @@ class Action(gtk.Action):
"""
self.emit('activate')
+
+class Action(gtk.Action, _ActionBase):
+ """
+ A custom Action class based on gtk.Action.
+ Pass additional arguments such as keypresses.
+ """
+
+ def __init__(self, keypresses=(), name=None, label=None, tooltip=None, stock_id=None):
+ """
+ Create a new Action instance.
+
+ Args:
+ key_presses: a tuple of (keyval1, mod_mask1, keyval2, mod_mask2, ...)
+ the: regular gtk.Action parameters (defaults to None)
+ """
+ if name is None: name = label
+ gtk.Action.__init__(self,
+ name=name, label=label,
+ tooltip=tooltip, stock_id=stock_id,
+ )
+ #register this action
+ _ActionBase.__init__(self, label, keypresses)
+
+
+class ToggleAction(gtk.ToggleAction, _ActionBase):
+ """
+ A custom Action class based on gtk.ToggleAction.
+ Pass additional arguments such as keypresses.
+ """
+
+ def __init__(self, keypresses=(), name=None, label=None, tooltip=None, stock_id=None):
+ """
+ Create a new ToggleAction instance.
+
+ Args:
+ key_presses: a tuple of (keyval1, mod_mask1, keyval2, mod_mask2, ...)
+ the: regular gtk.Action parameters (defaults to None)
+ """
+ if name is None: name = label
+ gtk.ToggleAction.__init__(self,
+ name=name, label=label,
+ tooltip=tooltip, stock_id=stock_id,
+ )
+ #register this action
+ _ActionBase.__init__(self, label, keypresses)
+
########################################################################
# Actions
########################################################################
@@ -233,13 +265,13 @@ ERRORS_WINDOW_DISPLAY = Action(
tooltip='View flow graph errors',
stock_id=gtk.STOCK_DIALOG_ERROR,
)
-TOGGLE_REPORT_WIDGET = Action(
- label='_Reports',
+TOGGLE_REPORTS_WINDOW = ToggleAction(
+ label='Show _Reports',
tooltip='Toggle visibility of the Report widget',
keypresses=(gtk.keysyms.r, gtk.gdk.CONTROL_MASK),
)
-TOGGLE_BLOCKTREE_WIDGET = Action(
- label='_Block Tree',
+TOGGLE_BLOCKS_WINDOW = ToggleAction(
+ label='Show _Block Tree',
tooltip='Toggle visibility of the block tree widget',
keypresses=(gtk.keysyms.b, gtk.gdk.CONTROL_MASK),
)