Usermode/AxWin3 - Bugfixing rendering/layout issues
[tpg/acess2.git] / Usermode / Applications / axwin3_src / WM / include / wm_renderer.h
index ba8ce04..5882549 100644 (file)
@@ -1,14 +1,17 @@
 /*
-* Acess2 Window Manager v3 (axwin3)
-* - By John Hodge (thePowersGang)
-*
-* include/wm_renderer.h
-* - Window renderer API
-*/
+ * Acess2 Window Manager v3 (axwin3)
+ * - By John Hodge (thePowersGang)
+ *
+ * include/wm_renderer.h
+ * - Window renderer API
+ */
 #ifndef _WM_RENDERER_H_
 #define _WM_RENDERER_H_
 
-typedef struct sWMRenderer
+#include <wm.h>
+#include <wm_internals.h>
+
+struct sWMRenderer
 {
        /**
         * \brief Internal pointer to next loaded renderer
@@ -22,14 +25,12 @@ typedef struct sWMRenderer
 
        /**
         * \brief Initialise a window structure for the renderer
-        * \param W     Width of the new window
-        * \param H     Height of the new window
         * \param Flags Flags for the window
         * \return malloc()'d window structure, or NULL on error
-        * \note Only the fields \a W and \a H need be filled in the window
-        *       structure, the rest will be filled by the caller.
+        * \note \a Flags is provided for convinience, the caller will
+        *       set the copy in the window structure.
         */
-       tWindow (*InitWindow)(int W, int H, int Flags);
+       tWindow *(*CreateWindow)(int Arg);
 
        /**
         * \brief Redraw a window on the screen
@@ -48,8 +49,12 @@ typedef struct sWMRenderer
         * \param MessageID     Implementation defined message ID (usually the command)
         * \param Length        Length of the buffer \a Data
         * \param Data          Implementation defined data buffer
+        * \return Boolean failure (0: Handled, 1: Unhandled)
         */
-        int    (*SendMessage)(tWindow *Window, int MessageID, int Length, void *Data);
-}      tWMRenderer;
+        int    (*HandleMessage)(tWindow *Window, int MessageID, int Length, const void *Data);
+};
+
+extern void    WM_RegisterRenderer(tWMRenderer *Renderer);
+extern tWindow *WM_CreateWindowStruct(size_t ExtraBytes);
 
 #endif

UCC git Repository :: git.ucc.asn.au