X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=util%2Fepist%2Fkeytree.hh;h=172195ad2f58b3a9aefcdc3602f24e5b0bb00f35;hb=eb19a6b69e89c6adae1b99705b0a26edc344c87a;hp=d394266728758fcf62b8cc1072d6c2e99e16f9ad;hpb=5b088be950ce6e6a496b573e81dabeb54bd740ef;p=chaz%2Fopenbox diff --git a/util/epist/keytree.hh b/util/epist/keytree.hh index d3942667..172195ad 100644 --- a/util/epist/keytree.hh +++ b/util/epist/keytree.hh @@ -1,4 +1,4 @@ -// -*- mode: C++; indent-tabs-mode: nil; -*- +// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- // keytree.hh for Epistrophy - a key handler for NETWM/EWMH window managers. // Copyright (c) 2002 - 2002 Ben Jansens // @@ -24,6 +24,7 @@ #define _keytree_hh #include +#include "../../src/timer.hh" #include "actions.hh" #include "screen.hh" @@ -31,42 +32,49 @@ struct keynode; // forward declaration typedef std::list ChildList; struct keynode { - Action *action; - keynode *parent; - ChildList children; + Action *action; + keynode *parent; + ChildList children; }; -class keytree { +class keytree : public TimeoutHandler { public: - keytree(Display *); - ~keytree(); + keytree(Display *, epist *); + virtual ~keytree(); - void grabDefaults(screen *); - const Action * getAction(const XEvent&, unsigned int, screen *); + void grabDefaults(screen *); + void ungrabDefaults(screen *); + const Action * getAction(const XEvent&, unsigned int, screen *); + void unloadBindings(); + void timeout(); private: - // only mister parser needs to know about our sekrets (BUMMY) - friend class parser; + // only mister parser needs to know about our sekrets (BUMMY) + friend class parser; - void grabChildren(keynode *, screen *); - void ungrabChildren(keynode *, screen *); + void grabChildren(keynode *, screen *); + void ungrabChildren(keynode *, screen *); - void addAction(Action::ActionType, unsigned int, std::string, std::string); - void advanceOnNewNode(); - void retract(); - void setCurrentNodeProps(Action::ActionType, unsigned int, std::string, std::string); + void addAction(Action::ActionType, unsigned int, std::string, std::string); + void advanceOnNewNode(); + void retract(); + void setCurrentNodeProps(Action::ActionType, unsigned int, std::string, std::string); + void initialize(); - void reset() - { _current = _head; } + void reset() + { _current = _head; } - bool isLeaf(keynode *node) - { return node->children.empty(); } + bool isLeaf(keynode *node) + { return node->children.empty(); } - void clearTree(keynode *); + void clearTree(keynode *); - keynode *_head; - keynode *_current; - Display *_display; + keynode *_head; + keynode *_current; + Display *_display; + screen *_timeout_screen; + BTimer *_timer; + epist *_epist; }; #endif // _keytree_hh