ply_window_enter_handler_t enter_handler;
void *enter_handler_user_data;
+
+ ply_window_draw_handler_t draw_handler;
+ void *draw_handler_user_data;
+
+ ply_window_erase_handler_t erase_handler;
+ void *erase_handler_user_data;
};
ply_window_t *
return window->foreground_color;
}
+void
+ply_window_draw_area (ply_window_t *window,
+ int x,
+ int y,
+ int width,
+ int height)
+{
+ if (window->draw_handler != NULL)
+ window->draw_handler (window->draw_handler_user_data,
+ x, y, width, height);
+}
+
+void
+ply_window_erase_area (ply_window_t *window,
+ int x,
+ int y,
+ int width,
+ int height)
+{
+ if (window->erase_handler != NULL)
+ window->erase_handler (window->erase_handler_user_data,
+ x, y, width, height);
+}
+
uint32_t
ply_window_get_color_hex_value (ply_window_t *window,
ply_window_color_t color)
window->enter_handler_user_data = user_data;
}
+void
+ply_window_set_draw_handler (ply_window_t *window,
+ ply_window_draw_handler_t draw_handler,
+ void *user_data)
+{
+ assert (window != NULL);
+
+ window->draw_handler = draw_handler;
+ window->draw_handler_user_data = user_data;
+}
+
+void
+ply_window_set_erase_handler (ply_window_t *window,
+ ply_window_erase_handler_t erase_handler,
+ void *user_data)
+{
+ assert (window != NULL);
+
+ window->erase_handler = erase_handler;
+ window->erase_handler_user_data = user_data;
+}
+
void
ply_window_attach_to_event_loop (ply_window_t *window,
ply_event_loop_t *loop)
typedef void (* ply_window_enter_handler_t) (void *user_data,
const char *line);
+typedef void (* ply_window_draw_handler_t) (void *user_data,
+ int x,
+ int y,
+ int width,
+ int height);
+typedef void (* ply_window_erase_handler_t) (void *user_data,
+ int x,
+ int y,
+ int width,
+ int height);
+
typedef enum
{
PLY_WINDOW_MODE_TEXT,
void ply_window_set_enter_handler (ply_window_t *window,
ply_window_enter_handler_t enter_handler,
void *user_data);
+void ply_window_set_draw_handler (ply_window_t *window,
+ ply_window_draw_handler_t draw_handler,
+ void *user_data);
+void ply_window_set_erase_handler (ply_window_t *window,
+ ply_window_erase_handler_t erase_handler,
+ void *user_data);
bool ply_window_open (ply_window_t *window);
bool ply_window_take_console (ply_window_t *window);
ply_window_color_t ply_window_get_background_color (ply_window_t *window);
ply_window_color_t ply_window_get_foreground_color (ply_window_t *window);
+void ply_window_draw_area (ply_window_t *window,
+ int x,
+ int y,
+ int width,
+ int height);
+
+void ply_window_erase_area (ply_window_t *window,
+ int x,
+ int y,
+ int width,
+ int height);
+
uint32_t ply_window_get_color_hex_value (ply_window_t *window,
ply_window_color_t color);
void ply_window_set_color_hex_value (ply_window_t *window,