ltkx

GUI toolkit for X11 (WIP)
git clone git://lumidify.org/ltkx.git
Log | Files | Refs | README | LICENSE

commit 38950329b35f33dd3bc8ccbe565cde6512ff2b51
parent 317ac4bf8168d5b1479ff4e0232704384e6e1df0
Author: lumidify <nobody@lumidify.org>
Date:   Wed,  4 Jan 2017 09:06:21 +0100

Add some more documentation

Diffstat:
D.window.c.swp | 0
MREADME.md | 2+-
Mbutton.c | 21+--------------------
Mbutton.h | 37+++++++++++++++++++++++++++++++++++--
Mcommon.h | 18++++++++++++++++++
5 files changed, 55 insertions(+), 23 deletions(-)

diff --git a/.window.c.swp b/.window.c.swp Binary files differ. diff --git a/README.md b/README.md @@ -1,4 +1,4 @@ -# LTK - Lumidify Toolkit +# LTK - Lumidify ToolKit This is work in progress. diff --git a/button.c b/button.c @@ -23,12 +23,6 @@ #include "ltk.h" -/* - * Purpose: Extract style information for buttons. - * Parameters: - * button_json: A cJSON struct containing the JSON for the button style. - * Returns: An LtkButtonTheme struct containing the style for a button. - */ LtkButtonTheme *ltk_parse_button_theme(cJSON *button_json) { LtkButtonTheme *button_theme = malloc(sizeof(LtkButtonTheme)); @@ -118,11 +112,6 @@ LtkButtonTheme *ltk_parse_button_theme(cJSON *button_json) return button_theme; } -/* - * Purpose: Draw a button in its current state. - * Parameters: - * button: Pointer to the button to draw. - */ void ltk_draw_button(LtkButton *button) { LtkButtonTheme *theme = ltk_global->theme->button; @@ -170,15 +159,6 @@ void ltk_draw_button(LtkButton *button) XDrawRectangle(ltk_global->display, window->xwindow, window->gc, rect.x, rect.y, rect.w, rect.h); } -/* - * Purpose: Create a button widget. - * Parameters: - * window: The window the button will be shown on. - * text: The text to be shown on the button. - * callback: A function with no parameters or return - * type to be called when the button is clicked. - * Returns: A pointer to the newly created button. - */ LtkButton *ltk_create_button(LtkWindow *window, const char *text, void (*callback)(void)) { LtkButton *button = malloc(sizeof(LtkButton)); @@ -209,6 +189,7 @@ void ltk_destroy_button(void *widget) free(button); } +/* FIXME: ungrid button if gridded */ void ltk_button_mouse_release(void *widget, XEvent event) { LtkButton *button = widget; diff --git a/button.h b/button.h @@ -26,6 +26,9 @@ #include "widget.h" +/* + * Struct to represent a button widget. + */ typedef struct { LtkWidget widget; @@ -33,6 +36,9 @@ typedef struct char *text; } LtkButton; +/* + * Struct to contain all style information for buttons. + */ typedef struct LtkButtonTheme { int border_width; @@ -66,12 +72,39 @@ typedef struct LtkButtonTheme } LtkButtonTheme; +/* + * Extract style information for buttons. + * button_json: A cJSON struct containing the JSON for the button style. + * Returns: An LtkButtonTheme struct containing the style for a button. + */ LtkButtonTheme *ltk_parse_button_theme(cJSON *button_json); + +/* + * Draw a button in its current state. + * button: Pointer to the button to draw. + */ void ltk_draw_button(LtkButton *button); + +/* + * Create a button widget. + * window: The window the button will be shown on. + * text: The text to be shown on the button. + * callback: The function to be called when the button is clicked. + * Returns: A pointer to the newly created button. + */ LtkButton *ltk_create_button(LtkWindow *window, const char *text, void (*callback)(void)); -void ltk_button_key_event(void *widget, XEvent event); -void ltk_button_mouse_event(void *widget, XEvent event); + +/* + * Destroy a button. + * widget: Pointer to the button. + */ void ltk_destroy_button(void *widget); + +/* + * Default mouse button release handler for buttons. + * widget: Pointer to the button. + * event: The event to be handled. + */ void ltk_button_mouse_release(void *widget, XEvent event); #endif diff --git a/common.h b/common.h @@ -27,6 +27,9 @@ typedef void (*LTK_VOID_FUNC)(void *); typedef struct LtkWidget LtkWidget; +/* + * An enumeration of all widget states. + */ typedef enum { LTK_NORMAL, @@ -37,6 +40,9 @@ typedef enum LTK_DISABLED } LtkWidgetState; +/* + * Struct to represent a rectangle. + */ typedef struct { int x; @@ -45,8 +51,20 @@ typedef struct int h; } LtkRect; +/* + * Check if a rectangle collides with a point. + * rect: The rectangle. + * x: The x coordinate of the point. + * y: The y coordinate of the point. + */ int ltk_collide_rect(LtkRect rect, int x, int y); + +/* + * Read a file and return a null-terminated string with the contents. + * path: The path to the file. + */ char *ltk_read_file(const char *path); + void ltk_change_active_widget_state(void *widget, LtkWidgetState state); void ltk_remove_active_widget(void *widget); void ltk_remove_hover_widget(void *widget);