Merge branch 'master' of git://github.com/thepowersgang/acess2
[tpg/acess2.git] / Usermode / Libraries / libaxwin4.so_src / include_exp / axwin4 / axwin.h
index d4a3004..255b0e1 100644 (file)
@@ -28,6 +28,14 @@ extern void  AxWin4_GetScreenDimensions(unsigned int ScreenIndex, unsigned int *W
 
 extern tAxWin4_Window  *AxWin4_CreateWindow(const char *Name);
 extern void    AxWin4_DestroyWindow(tAxWin4_Window *Window);
+
+// Callbacks
+typedef int tAxWin4_KeyCallback(tAxWin4_Window* Winow, unsigned int Key, const char *Translated);
+extern void    AxWin4_SetCallback_Key(tAxWin4_Window* Window, tAxWin4_KeyCallback* cb);
+typedef int tAxWin4_MouseBtnCallback(tAxWin4_Window* Winow, unsigned int Mouse, unsigned int X, unsigned int Y, unsigned int Button, bool IsPress);
+extern void    AxWin4_SetCallback_MouseBtn(tAxWin4_Window* Window, tAxWin4_MouseBtnCallback* cb);
+typedef int tAxWin4_MouseMoveCallback(tAxWin4_Window* Winow, unsigned int Mouse, unsigned int X, unsigned int Y);
+
 extern void    AxWin4_ShowWindow(tAxWin4_Window *Window, bool Shown);
 extern void    AxWin4_SetWindowFlags(tAxWin4_Window *Window, unsigned int NewFlags);
 extern void    AxWin4_SetTitle(tAxWin4_Window *Window, const char *Title);
@@ -37,10 +45,40 @@ extern void AxWin4_ResizeWindow(tAxWin4_Window *Window, unsigned int W, unsigned
 extern void    AxWin4_DamageRect(tAxWin4_Window *Window, unsigned int X, unsigned int Y, unsigned int W, unsigned int H);
 extern void*   AxWin4_GetWindowBuffer(tAxWin4_Window *Window);
 
+/**
+ * \brief Set the render clipping region. Any attempts to render outside this area will silently fail
+ * \param Window       Target window
+ *
+ * \note Allows clipping other render functions to avoid excessive redraws
+ * \note Cleared when \a AxWin4_DamageRect is called, or when called with a zero width or height
+ */
+extern void    AxWin4_SetRenderClip(tAxWin4_Window *Window, int X, int Y, unsigned int W, unsigned int H);
+
+/**
+ * \brief Draw a user-supplied bitmap to the window
+ * \param Data Bitmap data in the same format as the window's back buffer
+ * \note VERY SLOW
+ */
 extern void    AxWin4_DrawBitmap(tAxWin4_Window *Window, int X, int Y, unsigned int W, unsigned int H, void *Data);
+/**
+ * \brief Draw a "control" to the window
+ * \param Window       Target window
+ * \param X    Destination X
+ * \param Y    Destination Y
+ * \param W    Control width
+ * \param H    Control height
+ * \param ControlID    Specifies which control to use. Can be a global or application-registered (See eAxWin4_GlobalControls)
+ * \param Frame        Control frame number. Used to specify a variant of the control (e.g. hovered/pressed)
+ *
+ * Controls are server-side bitmaps that can be arbitarily scaled to fit a region.
+ */
+extern void    AxWin4_DrawControl(tAxWin4_Window *Window, int X, int Y, unsigned int W, unsigned int H, uint16_t ControlID, unsigned int Frame);
 
-#include "definitions.h"
+extern void    AxWin4_FillRect(tAxWin4_Window *Window, int X, int Y, unsigned int W, unsigned int H, uint32_t Colour);
 
+extern void    AxWin4_DrawText(tAxWin4_Window *Window, int X, int Y, unsigned int W, unsigned int H, uint16_t FontID, const char *String);
+
+#include "definitions.h"
 
 #ifdef __cplusplus
 }

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