]> Dogcows Code - chaz/openbox/blobdiff - src/python.hh
hack so text shows up
[chaz/openbox] / src / python.hh
index ac5bd3e1821f727cc4588a6ba870db1530beffdc..c1655503fafc25dc37dffa20c5577e4d23d97f71 100644 (file)
 
 extern "C" {
 #include <X11/Xlib.h>
-#include <Python.h>
 }
 
 #include <string>
 #include <vector>
 
+
 namespace ob {
 
 class Client;
@@ -30,56 +30,100 @@ struct MouseContext {
     Titlebar,
     Handle,
     Window,
+    IconButton,
     MaximizeButton,
     CloseButton,
     IconifyButton,
     AllDesktopsButton,
     Grip,
     Root,
-    MenuItem,
-    NUM_MOUSE_CONTEXT
+    MenuItem
+#ifndef DOXYGEN_IGNORE
+    , NUM_MOUSE_CONTEXT
+#endif
   };
 };
 
 struct MouseAction {
   enum MA {
     Press,
+    Release,
     Click,
     DoubleClick,
-    Motion,
-    NUM_MOUSE_ACTION
+    Motion
+#ifndef DOXYGEN_IGNORE
+    , NUM_MOUSE_ACTION
+#endif
   };
 };
 
 struct KeyContext {
   enum KC {
     Menu,
-    All,
-    NUM_KEY_CONTEXT
+    All
+#ifndef DOXYGEN_IGNORE
+    , NUM_KEY_CONTEXT
+#endif
   };
 };
 
 struct KeyAction {
   enum KA {
     Press,
-    Release,
-    NUM_KEY_ACTION
+    Release
+#ifndef DOXYGEN_IGNORE
+    , NUM_KEY_ACTION
+#endif
   };
 };
 
 struct EventAction {
   enum EA {
-    EnterWindow,
-    LeaveWindow,
+    EnterWindow,        //!< Occurs when the mouse enters a window
+    LeaveWindow,        //!< Occurs when the mouse leaves a window
+    //! Occurs while a window is being managed. The handler should call
+    //! Client::move on the window
     PlaceWindow,
+    //! Occurs while a window is being managed, just before the window is
+    //! displayed
+    /*!
+      Note that the window's state may not be completely stabilized by this
+      point. The NewWindow event should be used when possible.
+    */
+    DisplayingWindow,
+    //! Occurs when a window is finished being managed
     NewWindow,
+    //! Occurs when a window has been closed and is going to be unmanaged
     CloseWindow,
+    //! Occurs when the window manager manages a screen
+    /*!
+      This event occurs on each managed screen during startup.
+    */
     Startup,
+    //! Occurs when the window manager unmanages a screen
+    /*!
+      This event occurs on each managed screen during shutdown.
+    */
     Shutdown,
+    //! Occurs when the input focus target changes
+    /*!
+      The data.client will be None of no client is focused.
+    */
     Focus,
+    //! Occurs when the system is fired through X.
+    /*!
+      The data.client will hold the client associated with the bell if
+      one has been specified, or None.
+    */
     Bell,
-    UrgentWindow,
-    NUM_EVENTS
+    //! Occurs when a client toggles its urgent status.
+    /*!
+      The Client::urgent method can be used to get the status.
+    */
+    UrgentWindow
+#ifndef DOXYGEN_IGNORE
+    , NUM_EVENT_ACTION
+#endif
   };
 };
 
@@ -179,44 +223,20 @@ public:
   }
 };
 
-#ifndef SWIG
+// The void*'s will be used to hold the native language's function pointer
+typedef void (*MouseCallback)(MouseData*, void*);
+typedef void (*KeyCallback)(KeyData*, void*);
+typedef void (*EventCallback)(EventData*, void*);
 
 void python_init(char *argv0);
 void python_destroy();
-bool python_exec(const std::string &path);
+//! Returns 0 for success, 1 for failing to open the file, 2 for an exception
+int python_exec(const std::string &path);
 
 bool python_get_long(const char *name, long *value);
 bool python_get_string(const char *name, otk::ustring *value);
 bool python_get_stringlist(const char *name, std::vector<otk::ustring> *value);
 
-/***********************************************
- * These are found in openbox.i, not python.cc *
- ***********************************************/
-void python_callback(PyObject *func, MouseData *data);
-void python_callback(PyObject *func, EventData *data);
-void python_callback(PyObject *func, KeyData *data);
-
-#endif // SWIG
-
-PyObject *mbind(const std::string &button, ob::MouseContext::MC context,
-                ob::MouseAction::MA action, PyObject *func);
-
-PyObject *kbind(PyObject *keylist, ob::KeyContext::KC context, PyObject *func);
-
-PyObject *kgrab(int screen, PyObject *func);
-PyObject *kungrab();
-
-PyObject *ebind(ob::EventAction::EA action, PyObject *func);
-
-void set_reset_key(const std::string &key);
-
-PyObject *send_client_msg(Window target, Atom type, Window about,
-                          long data, long data1 = 0, long data2 = 0,
-                          long data3 = 0, long data4 = 0);
-
-
-void execute(const std::string &bin, int screen=0);
-
 }
 
 
This page took 0.028338 seconds and 4 git commands to generate.