1 /* 2 * (SLIK) SimpLIstic sKin functions 3 * (C) 2005 John Ellis 4 * 5 * Author: John Ellis 6 * 7 * This software is released under the GNU General Public License (GNU GPL). 8 * Please read the included file COPYING for more information. 9 * This software comes with no warranty of any kind, use at your own risk! 10 */ 11 12 #ifndef UI2_WIDGET_H 13 #define UI2_WIDGET_H 14 15 16 #define UI_WIDGET_PRIORITY_NORMAL 0 17 #define UI_WIDGET_PRIORITY_HIGH 1 18 19 20 void ui_widget_free(WidgetData *wd); 21 WidgetData *ui_widget_new(const gchar *key, const gchar *text_id, WidgetType type, gpointer widget); 22 23 24 void ui_widget_motion(UIData *ui, WidgetData *wd, gint x, gint y); 25 gint ui_widget_press(UIData *ui, WidgetData *wd, gint x, gint y); 26 void ui_widget_release(UIData *ui, WidgetData *wd, gint x, gint y); 27 28 void ui_widget_draw(UIData *ui, WidgetData *wd, gint update, gint force); 29 void ui_widget_reset(UIData *ui, WidgetData *wd); 30 void ui_widget_sync_back(UIData *ui, WidgetData *wd); 31 32 void ui_widget_hide(UIData *ui, WidgetData *wd); 33 void ui_widget_show(UIData *ui, WidgetData *wd); 34 35 gint ui_widget_focus_draw(UIData *ui, WidgetData *wd, gint x, gint y, gint w, gint h); 36 gint ui_widget_focus_key_event(UIData *ui, WidgetData *wd, GdkEventKey *event); 37 38 gint ui_widget_can_focus(WidgetData *wd); 39 40 void ui_widget_hide_by_key(UIData *ui, const gchar *key, WidgetType type); 41 void ui_widget_show_by_key(UIData *ui, const gchar *key, WidgetType type); 42 43 gint ui_widget_get_geometry(WidgetData *wd, gint *x, gint *y, gint *w, gint *h); 44 void ui_widget_set_coord(UIData *ui, WidgetData *wd, gint x, gint y, gint redraw); 45 void ui_widget_set_size(UIData *ui, WidgetData *wd, gint dev_w, gint dev_h, gint redraw); 46 void ui_widget_set_anchor(WidgetData *wd, gint right, gint bottom); 47 48 gint ui_widget_for_each_key(UIData *ui, const gchar *key, WidgetType type, 49 void (*func)(WidgetData *wd, gpointer data, UIData *ui), 50 gpointer data); 51 /* this one stays within the ui, (no parent/child propogation) */ 52 gint ui_widget_for_each_key_one(UIData *ui, const gchar *key, WidgetType type, 53 void (*func)(WidgetData *wd, gpointer data, UIData *ui), 54 gpointer data); 55 56 WidgetData *ui_widget_find_by_coord(UIData *ui, gint x, gint y); 57 gint ui_widget_contacts_area(WidgetData *wd, gint x, gint y, gint w, gint h); 58 59 /* manipulate key/data pairs stored in GLists */ 60 GList *widget_data_list_find(GList *list, const gchar *key); 61 GList *widget_data_list_set(GList *list, const gchar *key, const gchar *data); 62 63 void ui_widget_set_data(WidgetData *wd, const gchar *key, const gchar *data); 64 const gchar *ui_widget_get_data(WidgetData *wd, const gchar *key); 65 66 const gchar *ui_widget_get_data_by_widget(UIData *ui, gpointer widget); 67 68 WidgetObjectData *ui_widget_type_new(const gchar *description); 69 WidgetObjectData *ui_widget_object_by_type(WidgetType type); 70 WidgetObjectData *ui_widget_object_by_text(const gchar *description); 71 const gchar *ui_widget_type_to_text(WidgetType type); 72 WidgetObjectData *ui_widget_object_copy(WidgetObjectData *src); 73 74 #endif 75 76 77