#ifndef __binding_hh
#define __binding_hh
-/*! @file binding.hh
+/*! @file bindings.hh
@brief I dunno.. some binding stuff?
*/
typedef struct ButtonBinding {
Binding binding;
- typedef std::list<PyObject*> CallbackList;
- CallbackList callback[NUM_MOUSE_ACTION];
+ PyObject *callback[NUM_MOUSE_ACTION];
ButtonBinding() : binding(0, 0) {
+ for(int i=0; i<NUM_MOUSE_ACTION; ++i) callback[i] = 0;
}
};
PyObject *callback) const;
void assimilate(KeyBindingTree *node);
- static void reset(OBBindings *self); // the timer's timeout function
+ static void resetChains(OBBindings *self); // the timer's timeout function
typedef std::list <ButtonBinding*> ButtonBindingList;
ButtonBindingList _buttons[NUM_MOUSE_CONTEXT];
+ void grabButton(bool grab, const Binding &b, MouseContext context,
+ OBClient *client);
+
+ PyObject *_events[NUM_EVENTS];
+
public:
//! Initializes an OBBindings object
OBBindings();
a chain or not), or if any of the strings in the keylist are invalid.
@return true if the binding could be added; false if it could not.
*/
- bool add(const StringVect &keylist, PyObject *callback);
+ bool addKey(const StringVect &keylist, PyObject *callback);
//! Removes a key binding
/*!
@return The callbackid of the binding, or '< 0' if there was no binding to
be removed.
*/
- bool remove(const StringVect &keylist);
+ bool removeKey(const StringVect &keylist);
//! Removes all key bindings
- void removeAll();
+ void removeAllKeys();
- void fire(unsigned int modifiers,unsigned int key, Time time);
+ void fireKey(unsigned int modifiers,unsigned int key, Time time);
void setResetKey(const std::string &key);
void grabButtons(bool grab, OBClient *client);
- void fire(ButtonData *data);
+ //! Removes all button bindings
+ void removeAllButtons();
+
+ void fireButton(ButtonData *data);
+
+ //! Bind a callback for an event
+ bool addEvent(EventAction action, PyObject *callback);
+
+ //! Unbind the callback function from an event
+ bool removeEvent(EventAction action);
+
+ //! Remove all callback functions
+ void removeAllEvents();
+
+ void fireEvent(EventData *data);
};
}