navit 0.5.3-trunk
Loading...
Searching...
No Matches
gui_internal_widget.h
Go to the documentation of this file.
1
2#ifndef NAVIT_GUI_INTERNAL_GUI_INTERNAL_WIDGET_H
3#define NAVIT_GUI_INTERNAL_GUI_INTERNAL_WIDGET_H
4
10
11// ##############################################################################################################
12// # Description:
13// # Comment:
14// # Authors: Martin Schaller (04/2008)
15// ##############################################################################################################
16struct widget {
21 char *text;
28 void (*func)(struct gui_priv *priv, struct widget *widget, void *data);
33 void (*on_resize)(struct gui_priv *priv, struct widget *widget, void *data, int neww, int newh);
35 int datai;
36 void *data;
40 void (*data_free)(void *data);
41
48 void (*wfree)(struct gui_priv *this_, struct widget *w);
49 char *prefix;
50 char *name;
51 char *speech;
52 char *command;
53 struct pcoord c;
54 struct item item;
56 int state;
57 struct point p;
58 int wmin, hmin;
59 int w, h;
62 int bl, br, bt, bb, spx, spy;
63 int border;
64 int packed;
69 int cols;
71 int flags2;
72 void *instance;
73 int (*set_attr)(void *, struct attr *);
74 int (*get_attr)(void *, enum attr_type, struct attr *, struct attr_iter *);
75 void (*remove_cb)(void *, struct callback *cb);
76 struct callback *cb;
77 struct attr on;
78 struct attr off;
79 int deflt;
80 int is_on;
81 int redraw;
83 struct form *form;
84 GList *children;
85 struct widget *parent;
87};
88
113
128 GList *top_row;
134
136};
137
144
149
153 int width;
154};
155/* prototypes */
156enum flags;
157struct graphics_image;
158struct gui_priv;
159struct point;
160struct table_data;
161struct widget;
162void gui_internal_widget_swap(struct gui_priv *this, struct widget *first, struct widget *second);
163void gui_internal_widget_move(struct gui_priv *this, struct widget *dst, struct widget *src);
164struct widget *gui_internal_label_font_new(struct gui_priv *this, const char *text, int font);
165struct widget *gui_internal_label_new(struct gui_priv *this, const char *text);
166struct widget *gui_internal_label_new_abbrev(struct gui_priv *this, const char *text, int maxwidth);
167struct widget *gui_internal_image_new(struct gui_priv *this, struct graphics_image *image);
168struct widget *gui_internal_text_font_new(struct gui_priv *this, const char *text, int font, enum flags flags);
169struct widget *gui_internal_text_new(struct gui_priv *this, const char *text, enum flags flags);
171 struct gui_priv *this, const char *text, int font, struct graphics_image *image, enum flags flags,
172 void (*func)(struct gui_priv *priv, struct widget *widget, void *data), void *data);
174 struct gui_priv *this, const char *text, struct graphics_image *image, enum flags flags,
175 void (*func)(struct gui_priv *priv, struct widget *widget, void *data), void *data);
176struct widget *gui_internal_button_new(struct gui_priv *this, const char *text, struct graphics_image *image,
177 enum flags flags);
178struct widget *gui_internal_find_widget(struct widget *wi, struct point *p, int flags);
179void gui_internal_highlight_do(struct gui_priv *this, struct widget *found);
180void gui_internal_highlight(struct gui_priv *this);
181struct widget *gui_internal_box_new_with_label(struct gui_priv *this, enum flags flags, const char *label);
182struct widget *gui_internal_box_new(struct gui_priv *this, enum flags flags);
183void gui_internal_box_resize(struct gui_priv *this, struct widget *w, void *data, int wnew, int hnew);
184void gui_internal_widget_reset_pack(struct gui_priv *this, struct widget *w);
185void gui_internal_widget_append(struct widget *parent, struct widget *child);
186void gui_internal_widget_prepend(struct widget *parent, struct widget *child);
187void gui_internal_widget_insert_sorted(struct widget *parent, struct widget *child, GCompareFunc func);
188void gui_internal_widget_children_destroy(struct gui_priv *this, struct widget *w);
189void gui_internal_widget_destroy(struct gui_priv *this, struct widget *w);
190void gui_internal_widget_render(struct gui_priv *this, struct widget *w);
191void gui_internal_widget_resize(struct gui_priv *this, struct widget *w, int wnew, int hnew);
192void gui_internal_widget_pack(struct gui_priv *this, struct widget *w);
193struct widget *gui_internal_button_label(struct gui_priv *this, const char *label, int mode);
194struct widget *gui_internal_widget_table_new(struct gui_priv *this, enum flags flags, int buttons);
195void gui_internal_widget_table_clear(struct gui_priv *this, struct widget *table);
196GList *gui_internal_widget_table_next_row(GList *row);
197GList *gui_internal_widget_table_prev_row(GList *row);
198GList *gui_internal_widget_table_first_row(GList *row);
199GList *gui_internal_widget_table_top_row(struct gui_priv *this, struct widget *table);
200GList *gui_internal_widget_table_set_top_row(struct gui_priv *this, struct widget *table, struct widget *row);
202void gui_internal_table_pack(struct gui_priv *this, struct widget *w);
204void gui_internal_table_render(struct gui_priv *this, struct widget *w);
205void gui_internal_table_button_next(struct gui_priv *this, struct widget *wm, void *data);
206void gui_internal_table_button_prev(struct gui_priv *this, struct widget *wm, void *data);
208/* end of prototypes */
209#endif /* NAVIT_GUI_INTERNAL_GUI_INTERNAL_WIDGET_H */
attr_type
Definition attr_type_def.h:11
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_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_text_new(struct gui_priv *this, const char *text, enum flags flags)
Definition gui_internal_widget.c:225
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_widget_table_row_new(struct gui_priv *this, enum flags flags)
Creates a new table_row widget.
Definition gui_internal_widget.c:1092
void gui_internal_highlight(struct gui_priv *this)
Definition gui_internal_widget.c:320
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
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
gui_internal_reason
Definition gui_internal_widget.h:5
@ gui_internal_reason_keypress_finish
Definition gui_internal_widget.h:8
@ gui_internal_reason_click
Definition gui_internal_widget.h:6
@ gui_internal_reason_keypress
Definition gui_internal_widget.h:7
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
void gui_internal_widget_swap(struct gui_priv *this, struct widget *first, struct widget *second)
Swap two widgets.
Definition gui_internal_widget.c:58
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
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
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
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_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)
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_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
struct widget * gui_internal_image_new(struct gui_priv *this, struct graphics_image *image)
Definition gui_internal_widget.c:137
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
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_label_new(struct gui_priv *this, const char *text)
Definition gui_internal_widget.c:110
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
struct widget * gui_internal_button_label(struct gui_priv *this, const char *label, int mode)
Definition gui_internal_widget.c:896
struct widget * gui_internal_label_font_new(struct gui_priv *this, const char *text, int font)
Definition gui_internal_widget.c:84
struct widget * gui_internal_find_widget(struct widget *wi, struct point *p, int flags)
Definition gui_internal_widget.c:266
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_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
void gui_internal_widget_destroy(struct gui_priv *this, struct widget *w)
Destroys a widget.
Definition gui_internal_widget.c:829
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
struct widget * gui_internal_label_new_abbrev(struct gui_priv *this, const char *text, int maxwidth)
Definition gui_internal_widget.c:115
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
Definition config_.c:47
Definition attr.h:136
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:184
Definition graphics.h:194
Definition graphics_win32.h:52
Represents an object on a map.
Definition item.h:124
Definition gui_internal_priv.h:158
Definition gpx2navit_txt.h:51
Definition coord.h:52
Definition point.h:23
Definition gui_internal_widget.h:89
int button_box_hide
Definition gui_internal_widget.h:93
struct widget * button_box
Definition gui_internal_widget.h:98
struct widget * prev_button
Definition gui_internal_widget.h:106
struct widget * next_button
Definition gui_internal_widget.h:102
Definition gui_internal_widget.h:143
int width
Definition gui_internal_widget.h:153
int height
Definition gui_internal_widget.h:148
A structure to store information about a table.
Definition gui_internal_widget.h:123
GList * bottom_row
Definition gui_internal_widget.h:133
GList * top_row
Definition gui_internal_widget.h:128
Definition gui_internal_widget.h:16
void(* data_free)(void *data)
A function to deallocate data.
Definition gui_internal_widget.h:40
struct attr off
Definition gui_internal_widget.h:78
struct attr on
Definition gui_internal_widget.h:77
enum gui_internal_reason reason
Definition gui_internal_widget.h:34
enum flags flags
Definition gui_internal_widget.h:70
void * instance
Definition gui_internal_widget.h:72
int bb
Definition gui_internal_widget.h:62
struct point p
Definition gui_internal_widget.h:57
int hmin
Definition gui_internal_widget.h:58
void * data
Definition gui_internal_widget.h:36
char * prefix
Definition gui_internal_widget.h:49
void(* on_resize)(struct gui_priv *priv, struct widget *widget, void *data, int neww, int newh)
Definition gui_internal_widget.h:33
int redraw
Definition gui_internal_widget.h:81
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:48
int flags2
Definition gui_internal_widget.h:71
int textw
Definition gui_internal_widget.h:60
void(* remove_cb)(void *, struct callback *cb)
Definition gui_internal_widget.h:75
int spy
Definition gui_internal_widget.h:62
int state
Definition gui_internal_widget.h:56
char * command
Definition gui_internal_widget.h:52
struct graphics_gc * text_background
Definition gui_internal_widget.h:18
int(* get_attr)(void *, enum attr_type, struct attr *, struct attr_iter *)
Definition gui_internal_widget.h:74
struct pcoord c
Definition gui_internal_widget.h:53
struct scroll_buttons * scroll_buttons
Definition gui_internal_widget.h:86
struct form * form
Definition gui_internal_widget.h:83
int spx
Definition gui_internal_widget.h:62
struct graphics_image * img
Definition gui_internal_widget.h:22
int w
Definition gui_internal_widget.h:59
int deflt
Definition gui_internal_widget.h:79
struct graphics_gc * foreground
Definition gui_internal_widget.h:20
int bt
Definition gui_internal_widget.h:62
char * speech
Definition gui_internal_widget.h:51
int font_idx
Definition gui_internal_widget.h:61
int datai
Definition gui_internal_widget.h:35
int packed
Definition gui_internal_widget.h:64
int(* set_attr)(void *, struct attr *)
Definition gui_internal_widget.h:73
int texth
Definition gui_internal_widget.h:60
struct graphics_gc * background
Definition gui_internal_widget.h:18
int border
Definition gui_internal_widget.h:63
int cols
Definition gui_internal_widget.h:69
int wmin
Definition gui_internal_widget.h:58
int bl
Definition gui_internal_widget.h:62
int selection_id
Definition gui_internal_widget.h:55
int is_on
Definition gui_internal_widget.h:80
struct graphics_gc * foreground_frame
Definition gui_internal_widget.h:19
char * name
Definition gui_internal_widget.h:50
int h
Definition gui_internal_widget.h:59
GList * children
Definition gui_internal_widget.h:84
struct callback * cb
Definition gui_internal_widget.h:76
enum widget_type type
Definition gui_internal_widget.h:17
void(* func)(struct gui_priv *priv, struct widget *widget, void *data)
Definition gui_internal_widget.h:28
char * text
Definition gui_internal_widget.h:21
struct menu_data * menu_data
Definition gui_internal_widget.h:82
struct widget * parent
Definition gui_internal_widget.h:85
int br
Definition gui_internal_widget.h:62