navit  0.5.3-trunk
gui_internal_widget.h
Go to the documentation of this file.
5 };
6 
7 //##############################################################################################################
8 //# Description:
9 //# Comment:
10 //# Authors: Martin Schaller (04/2008)
11 //##############################################################################################################
12 struct widget {
13  enum widget_type type;
17  char *text;
24  void (*func)(struct gui_priv *priv, struct widget *widget, void *data);
29  void (*on_resize)(struct gui_priv *priv, struct widget *widget, void *data, int neww, int newh);
31  int datai;
32  void *data;
36  void (*data_free)(void *data);
37 
44  void (*wfree) (struct gui_priv *this_, struct widget * w);
45  char *prefix;
46  char *name;
47  char *speech;
48  char *command;
49  struct pcoord c;
50  struct item item;
52  int state;
53  struct point p;
54  int wmin,hmin;
55  int w,h;
56  int textw,texth;
57  int font_idx;
58  int bl,br,bt,bb,spx,spy;
59  int border;
60  int packed;
65  int cols;
66  enum flags flags;
67  int flags2;
68  void *instance;
69  int (*set_attr)(void *, struct attr *);
70  int (*get_attr)(void *, enum attr_type, struct attr *, struct attr_iter *);
71  void (*remove_cb)(void *, struct callback *cb);
72  struct callback *cb;
73  struct attr on;
74  struct attr off;
75  int deflt;
76  int is_on;
77  int redraw;
79  struct form *form;
81  struct widget *parent;
83 };
84 
94  struct widget * button_box;
98  struct widget * next_button;
102  struct widget * prev_button;
107  struct gui_priv * this;
108 };
109 
119 struct table_data {
130 
132 
133 };
134 
141 
145  int height;
146 
150  int width;
151 };
152 /* prototypes */
153 enum flags;
154 struct graphics_image;
155 struct gui_priv;
156 struct point;
157 struct table_data;
158 struct widget;
159 void gui_internal_widget_swap(struct gui_priv *this, struct widget *first, struct widget *second);
160 void gui_internal_widget_move(struct gui_priv *this, struct widget *dst, struct widget *src);
161 struct widget *gui_internal_label_font_new(struct gui_priv *this, const char *text, int font);
162 struct widget *gui_internal_label_new(struct gui_priv *this, const char *text);
163 struct widget *gui_internal_label_new_abbrev(struct gui_priv *this, const char *text, int maxwidth);
164 struct widget *gui_internal_image_new(struct gui_priv *this, struct graphics_image *image);
165 struct widget *gui_internal_text_font_new(struct gui_priv *this, const char *text, int font, enum flags flags);
166 struct widget *gui_internal_text_new(struct gui_priv *this, const char *text, enum flags flags);
167 struct widget *gui_internal_button_font_new_with_callback(struct gui_priv *this, const char *text, int font,
168  struct graphics_image *image, enum flags flags, void (*func)(struct gui_priv *priv, struct widget *widget, void *data),
169  void *data);
170 struct widget *gui_internal_button_new_with_callback(struct gui_priv *this, const char *text,
171  struct graphics_image *image, enum flags flags, void (*func)(struct gui_priv *priv, struct widget *widget, void *data),
172  void *data);
173 struct widget *gui_internal_button_new(struct gui_priv *this, const char *text, struct graphics_image *image,
174  enum flags flags);
175 struct widget *gui_internal_find_widget(struct widget *wi, struct point *p, int flags);
176 void gui_internal_highlight_do(struct gui_priv *this, struct widget *found);
177 void gui_internal_highlight(struct gui_priv *this);
178 struct widget *gui_internal_box_new_with_label(struct gui_priv *this, enum flags flags, const char *label);
179 struct widget *gui_internal_box_new(struct gui_priv *this, enum flags flags);
180 void gui_internal_box_resize(struct gui_priv *this, struct widget *w, void *data, int wnew, int hnew);
181 void gui_internal_widget_reset_pack(struct gui_priv *this, struct widget *w);
182 void gui_internal_widget_append(struct widget *parent, struct widget *child);
183 void gui_internal_widget_prepend(struct widget *parent, struct widget *child);
184 void gui_internal_widget_insert_sorted(struct widget *parent, struct widget *child, GCompareFunc func);
185 void gui_internal_widget_children_destroy(struct gui_priv *this, struct widget *w);
186 void gui_internal_widget_destroy(struct gui_priv *this, struct widget *w);
187 void gui_internal_widget_render(struct gui_priv *this, struct widget *w);
188 void gui_internal_widget_resize(struct gui_priv *this, struct widget *w, int wnew, int hnew);
189 void gui_internal_widget_pack(struct gui_priv *this, struct widget *w);
190 struct widget *gui_internal_button_label(struct gui_priv *this, const char *label, int mode);
191 struct widget *gui_internal_widget_table_new(struct gui_priv *this, enum flags flags, int buttons);
192 void gui_internal_widget_table_clear(struct gui_priv *this, struct widget *table);
196 GList *gui_internal_widget_table_top_row(struct gui_priv *this, struct widget *table);
197 GList *gui_internal_widget_table_set_top_row(struct gui_priv *this, struct widget * table, struct widget *row);
198 struct widget *gui_internal_widget_table_row_new(struct gui_priv *this, enum flags flags);
199 void gui_internal_table_pack(struct gui_priv *this, struct widget *w);
201 void gui_internal_table_render(struct gui_priv *this, struct widget *w);
202 void gui_internal_table_button_next(struct gui_priv *this, struct widget *wm, void *data);
203 void gui_internal_table_button_prev(struct gui_priv *this, struct widget *wm, void *data);
205 /* end of prototypes */
attr_type
Definition: attr.h:34
char data
Definition: garmin_img.c:2
struct label_data_offset label
Definition: garmin_img.c:1
flags
Definition: gui_internal.h:26
widget_type
Definition: gui_internal.h:17
struct widget * gui_internal_widget_table_row_new(struct gui_priv *this, enum flags flags)
Creates a new table_row widget.
Definition: gui_internal_widget.c:1092
struct widget * gui_internal_label_font_new(struct gui_priv *this, const char *text, int font)
Definition: gui_internal_widget.c:84
GList * gui_internal_widget_table_next_row(GList *row)
Moves GList pointer to the next table row, skipping other table children (button box,...
Definition: gui_internal_widget.c:1011
GList * gui_internal_widget_table_first_row(GList *row)
Moves GList pointer to the first table row, skipping other table children (button box,...
Definition: gui_internal_widget.c:1041
GList * gui_internal_widget_table_top_row(struct gui_priv *this, struct widget *table)
Gets GList pointer to the table row drawn on the top of the screen.
Definition: gui_internal_widget.c:1056
void gui_internal_highlight(struct gui_priv *this)
Definition: gui_internal_widget.c:320
struct widget * gui_internal_button_label(struct gui_priv *this, const char *label, int mode)
Definition: gui_internal_widget.c:896
void gui_internal_table_button_prev(struct gui_priv *this, struct widget *wm, void *data)
Handles the 'previous page' table event.
Definition: gui_internal_widget.c:1533
void gui_internal_widget_render(struct gui_priv *this, struct widget *w)
Renders widgets, preparing it for drawing on the display.
Definition: gui_internal_widget.c:861
void gui_internal_widget_insert_sorted(struct widget *parent, struct widget *child, GCompareFunc func)
Adds a child widget to a parent widget.
Definition: gui_internal_widget.c:788
void gui_internal_table_render(struct gui_priv *this, struct widget *w)
Renders a table widget, preparing it for drawing on the display.
Definition: gui_internal_widget.c:1289
gui_internal_reason
Definition: gui_internal_widget.h:1
@ gui_internal_reason_keypress_finish
Definition: gui_internal_widget.h:4
@ gui_internal_reason_click
Definition: gui_internal_widget.h:2
@ gui_internal_reason_keypress
Definition: gui_internal_widget.h:3
void gui_internal_widget_swap(struct gui_priv *this, struct widget *first, struct widget *second)
Swap two widgets.
Definition: gui_internal_widget.c:58
void gui_internal_table_button_next(struct gui_priv *this, struct widget *wm, void *data)
Handles the 'next page' table event.
Definition: gui_internal_widget.c:1498
void gui_internal_highlight_do(struct gui_priv *this, struct widget *found)
Definition: gui_internal_widget.c:294
void gui_internal_table_data_free(void *p)
Deallocates a table_data structure.
Definition: gui_internal_widget.c:1572
struct widget * gui_internal_label_new(struct gui_priv *this, const char *text)
Definition: gui_internal_widget.c:110
struct widget * gui_internal_widget_table_new(struct gui_priv *this, enum flags flags, int buttons)
Creates a new table widget.
Definition: gui_internal_widget.c:947
struct widget * gui_internal_image_new(struct gui_priv *this, struct graphics_image *image)
Definition: gui_internal_widget.c:137
void gui_internal_widget_pack(struct gui_priv *this, struct widget *w)
Definition: gui_internal_widget.c:883
void gui_internal_widget_resize(struct gui_priv *this, struct widget *w, int wnew, int hnew)
struct widget * gui_internal_text_new(struct gui_priv *this, const char *text, enum flags flags)
Definition: gui_internal_widget.c:225
GList * gui_internal_widget_table_prev_row(GList *row)
Moves GList pointer to the previous table row, skipping other table children (button box,...
Definition: gui_internal_widget.c:1026
struct widget * gui_internal_box_new_with_label(struct gui_priv *this, enum flags flags, const char *label)
Definition: gui_internal_widget.c:345
void gui_internal_widget_append(struct widget *parent, struct widget *child)
Adds a child widget to a parent widget, making it the last child.
Definition: gui_internal_widget.c:757
void gui_internal_widget_prepend(struct widget *parent, struct widget *child)
Adds a child widget to a parent widget, making it the first child.
Definition: gui_internal_widget.c:772
struct widget * gui_internal_find_widget(struct widget *wi, struct point *p, int flags)
Definition: gui_internal_widget.c:266
struct widget * gui_internal_text_font_new(struct gui_priv *this, const char *text, int font, enum flags flags)
Creates a text box.
Definition: gui_internal_widget.c:211
void gui_internal_table_hide_rows(struct table_data *table_data)
Invalidates coordinates for previously rendered table widget rows.
Definition: gui_internal_widget.c:1267
struct widget * gui_internal_button_new(struct gui_priv *this, const char *text, struct graphics_image *image, enum flags flags)
Definition: gui_internal_widget.c:261
struct widget * gui_internal_box_new(struct gui_priv *this, enum flags flags)
Definition: gui_internal_widget.c:357
struct widget * gui_internal_button_new_with_callback(struct gui_priv *this, const char *text, struct graphics_image *image, enum flags flags, void(*func)(struct gui_priv *priv, struct widget *widget, void *data), void *data)
Definition: gui_internal_widget.c:255
void gui_internal_widget_table_clear(struct gui_priv *this, struct widget *table)
Clears all the rows from the table.
Definition: gui_internal_widget.c:981
void gui_internal_box_resize(struct gui_priv *this, struct widget *w, void *data, int wnew, int hnew)
Resize a box widget.
Definition: gui_internal_widget.c:703
void gui_internal_widget_children_destroy(struct gui_priv *this, struct widget *w)
Destroys all child widgets.
Definition: gui_internal_widget.c:805
struct widget * gui_internal_button_font_new_with_callback(struct gui_priv *this, const char *text, int font, struct graphics_image *image, enum flags flags, void(*func)(struct gui_priv *priv, struct widget *widget, void *data), void *data)
Definition: gui_internal_widget.c:231
void gui_internal_widget_destroy(struct gui_priv *this, struct widget *w)
Destroys a widget.
Definition: gui_internal_widget.c:829
struct widget * gui_internal_label_new_abbrev(struct gui_priv *this, const char *text, int maxwidth)
Definition: gui_internal_widget.c:115
GList * gui_internal_widget_table_set_top_row(struct gui_priv *this, struct widget *table, struct widget *row)
Sets internal top row pointer of the table to point to a given row widget.
Definition: gui_internal_widget.c:1069
void gui_internal_table_pack(struct gui_priv *this, struct widget *w)
Computes the height and width for the table.
Definition: gui_internal_widget.c:1204
void gui_internal_widget_reset_pack(struct gui_priv *this, struct widget *w)
Definition: gui_internal_widget.c:735
void gui_internal_widget_move(struct gui_priv *this, struct widget *dst, struct widget *src)
Move the content of one widget into another one (the src widget is then deallocated and should be be ...
Definition: gui_internal_widget.c:69
unsigned char p[5]
Definition: mg.h:2
struct _GList GList
Definition: navit.h:30
Definition: config_.c:47
Definition: attr.h:157
Definition: callback.c:27
Definition: gui_internal_html.c:24
graphics context A graphics context encapsulates a set of drawing parameters, such as linewidth and d...
Definition: graphics.h:180
Definition: graphics.h:190
Definition: graphics_win32.h:52
Represents an object on a map.
Definition: item.h:115
Definition: gui_internal_priv.h:152
Definition: gpx2navit_txt.h:51
Definition: coord.h:52
Definition: point.h:23
Definition: gui_internal_widget.h:85
int button_box_hide
Definition: gui_internal_widget.h:89
struct widget * button_box
Definition: gui_internal_widget.h:94
struct widget * prev_button
Definition: gui_internal_widget.h:102
struct widget * next_button
Definition: gui_internal_widget.h:98
Definition: gui_internal_widget.h:140
int width
Definition: gui_internal_widget.h:150
int height
Definition: gui_internal_widget.h:145
A structure to store information about a table.
Definition: gui_internal_widget.h:119
GList * bottom_row
Definition: gui_internal_widget.h:129
GList * top_row
Definition: gui_internal_widget.h:124
Definition: gui_internal_widget.h:12
void(* data_free)(void *data)
A function to deallocate data.
Definition: gui_internal_widget.h:36
struct attr off
Definition: gui_internal_widget.h:74
struct attr on
Definition: gui_internal_widget.h:73
enum gui_internal_reason reason
Definition: gui_internal_widget.h:30
enum flags flags
Definition: gui_internal_widget.h:66
void * instance
Definition: gui_internal_widget.h:68
int bb
Definition: gui_internal_widget.h:58
struct point p
Definition: gui_internal_widget.h:53
int hmin
Definition: gui_internal_widget.h:54
void * data
Definition: gui_internal_widget.h:32
char * prefix
Definition: gui_internal_widget.h:45
void(* on_resize)(struct gui_priv *priv, struct widget *widget, void *data, int neww, int newh)
Definition: gui_internal_widget.h:29
int redraw
Definition: gui_internal_widget.h:77
void(* wfree)(struct gui_priv *this_, struct widget *w)
a function that will be called as the widget is being destroyed. This function can act as a destructo...
Definition: gui_internal_widget.h:44
int flags2
Definition: gui_internal_widget.h:67
int textw
Definition: gui_internal_widget.h:56
void(* remove_cb)(void *, struct callback *cb)
Definition: gui_internal_widget.h:71
int spy
Definition: gui_internal_widget.h:58
int state
Definition: gui_internal_widget.h:52
char * command
Definition: gui_internal_widget.h:48
struct graphics_gc * text_background
Definition: gui_internal_widget.h:14
int(* get_attr)(void *, enum attr_type, struct attr *, struct attr_iter *)
Definition: gui_internal_widget.h:70
struct pcoord c
Definition: gui_internal_widget.h:49
struct scroll_buttons * scroll_buttons
Definition: gui_internal_widget.h:82
struct form * form
Definition: gui_internal_widget.h:79
int spx
Definition: gui_internal_widget.h:58
struct graphics_image * img
Definition: gui_internal_widget.h:18
int w
Definition: gui_internal_widget.h:55
int deflt
Definition: gui_internal_widget.h:75
struct graphics_gc * foreground
Definition: gui_internal_widget.h:16
int bt
Definition: gui_internal_widget.h:58
char * speech
Definition: gui_internal_widget.h:47
int font_idx
Definition: gui_internal_widget.h:57
int datai
Definition: gui_internal_widget.h:31
int packed
Definition: gui_internal_widget.h:60
int(* set_attr)(void *, struct attr *)
Definition: gui_internal_widget.h:69
int texth
Definition: gui_internal_widget.h:56
struct graphics_gc * background
Definition: gui_internal_widget.h:14
int border
Definition: gui_internal_widget.h:59
int cols
Definition: gui_internal_widget.h:65
int wmin
Definition: gui_internal_widget.h:54
int bl
Definition: gui_internal_widget.h:58
int selection_id
Definition: gui_internal_widget.h:51
int is_on
Definition: gui_internal_widget.h:76
struct graphics_gc * foreground_frame
Definition: gui_internal_widget.h:15
char * name
Definition: gui_internal_widget.h:46
int h
Definition: gui_internal_widget.h:55
GList * children
Definition: gui_internal_widget.h:80
struct callback * cb
Definition: gui_internal_widget.h:72
enum widget_type type
Definition: gui_internal_widget.h:13
void(* func)(struct gui_priv *priv, struct widget *widget, void *data)
Definition: gui_internal_widget.h:24
char * text
Definition: gui_internal_widget.h:17
struct menu_data * menu_data
Definition: gui_internal_widget.h:78
struct widget * parent
Definition: gui_internal_widget.h:81
int br
Definition: gui_internal_widget.h:58