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
5#include "attr.h"
6#include "coord.h"
7#include "gui_internal.h"
8#include "item.h"
9#include "point.h"
10#include <glib.h>
11
17
18// ##############################################################################################################
19// # Description:
20// # Comment:
21// # Authors: Martin Schaller (04/2008)
22// ##############################################################################################################
23struct widget {
28 char *text;
35 void (*func)(struct gui_priv *priv, struct widget *widget, void *data);
40 void (*on_resize)(struct gui_priv *priv, struct widget *widget, void *data, int neww, int newh);
42 int datai;
43 void *data;
47 void (*data_free)(void *data);
48
55 void (*wfree)(struct gui_priv *this_, struct widget *w);
56 char *prefix;
57 char *name;
58 char *speech;
59 char *command;
60 struct pcoord c;
61 struct item item;
63 int state;
64 struct point p;
65 int wmin, hmin;
66 int w, h;
69 int bl, br, bt, bb, spx, spy;
70 int border;
71 int packed;
76 int cols;
78 int flags2;
79 void *instance;
80 int (*set_attr)(void *, struct attr *);
81 int (*get_attr)(void *, enum attr_type, struct attr *, struct attr_iter *);
82 void (*remove_cb)(void *, struct callback *cb);
83 struct callback *cb;
84 struct attr on;
85 struct attr off;
86 int deflt;
87 int is_on;
88 int redraw;
90 struct form *form;
91 GList *children;
92 struct widget *parent;
94};
95
120
135 GList *top_row;
141
143};
144
151
156
160 int width;
161};
162/* prototypes */
163enum flags;
164struct graphics_image;
165struct gui_priv;
166struct point;
167struct table_data;
168struct widget;
169void gui_internal_widget_swap(struct gui_priv *this, struct widget *first, struct widget *second);
170void gui_internal_widget_move(struct gui_priv *this, struct widget *dst, struct widget *src);
171struct widget *gui_internal_label_font_new(struct gui_priv *this, const char *text, int font);
172struct widget *gui_internal_label_new(struct gui_priv *this, const char *text);
173struct widget *gui_internal_label_new_abbrev(struct gui_priv *this, const char *text, int maxwidth);
174struct widget *gui_internal_image_new(struct gui_priv *this, struct graphics_image *image);
175struct widget *gui_internal_text_font_new(struct gui_priv *this, const char *text, int font, enum flags flags);
176struct widget *gui_internal_text_new(struct gui_priv *this, const char *text, enum flags flags);
178 struct gui_priv *this, const char *text, int font, struct graphics_image *image, enum flags flags,
179 void (*func)(struct gui_priv *priv, struct widget *widget, void *data), void *data);
181 struct gui_priv *this, const char *text, struct graphics_image *image, enum flags flags,
182 void (*func)(struct gui_priv *priv, struct widget *widget, void *data), void *data);
183struct widget *gui_internal_button_new(struct gui_priv *this, const char *text, struct graphics_image *image,
184 enum flags flags);
185struct widget *gui_internal_find_widget(struct widget *wi, struct point *p, int flags);
186void gui_internal_highlight_do(struct gui_priv *this, struct widget *found);
187void gui_internal_highlight(struct gui_priv *this);
188struct widget *gui_internal_box_new_with_label(struct gui_priv *this, enum flags flags, const char *label);
189struct widget *gui_internal_box_new(struct gui_priv *this, enum flags flags);
190void gui_internal_box_resize(struct gui_priv *this, struct widget *w, void *data, int wnew, int hnew);
191void gui_internal_widget_reset_pack(struct gui_priv *this, struct widget *w);
192void gui_internal_widget_append(struct widget *parent, struct widget *child);
193void gui_internal_widget_prepend(struct widget *parent, struct widget *child);
194void gui_internal_widget_insert_sorted(struct widget *parent, struct widget *child, GCompareFunc func);
195void gui_internal_widget_children_destroy(struct gui_priv *this, struct widget *w);
196void gui_internal_widget_destroy(struct gui_priv *this, struct widget *w);
197void gui_internal_widget_render(struct gui_priv *this, struct widget *w);
198void gui_internal_widget_resize(struct gui_priv *this, struct widget *w, int wnew, int hnew);
199void gui_internal_widget_pack(struct gui_priv *this, struct widget *w);
200struct widget *gui_internal_button_label(struct gui_priv *this, const char *label, int mode);
201struct widget *gui_internal_widget_table_new(struct gui_priv *this, enum flags flags, int buttons);
202void gui_internal_widget_table_clear(struct gui_priv *this, struct widget *table);
203GList *gui_internal_widget_table_next_row(GList *row);
204GList *gui_internal_widget_table_prev_row(GList *row);
205GList *gui_internal_widget_table_first_row(GList *row);
206GList *gui_internal_widget_table_top_row(struct gui_priv *this, struct widget *table);
207GList *gui_internal_widget_table_set_top_row(struct gui_priv *this, struct widget *table, struct widget *row);
209void gui_internal_table_pack(struct gui_priv *this, struct widget *w);
211void gui_internal_table_render(struct gui_priv *this, struct widget *w);
212void gui_internal_table_button_next(struct gui_priv *this, struct widget *wm, void *data);
213void gui_internal_table_button_prev(struct gui_priv *this, struct widget *wm, void *data);
215/* end of prototypes */
216#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:32
widget_type
Definition gui_internal.h:23
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:257
struct widget * gui_internal_box_new(struct gui_priv *this, enum flags flags)
Definition gui_internal_widget.c:349
struct widget * gui_internal_text_new(struct gui_priv *this, const char *text, enum flags flags)
Definition gui_internal_widget.c:224
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:938
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:1079
void gui_internal_highlight(struct gui_priv *this)
Definition gui_internal_widget.c:315
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:1503
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:851
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:781
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:1261
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:12
@ gui_internal_reason_keypress_finish
Definition gui_internal_widget.h:15
@ gui_internal_reason_click
Definition gui_internal_widget.h:13
@ gui_internal_reason_keypress
Definition gui_internal_widget.h:14
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:1000
void gui_internal_widget_swap(struct gui_priv *this, struct widget *first, struct widget *second)
Swap two widgets.
Definition gui_internal_widget.c:60
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:1030
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:1468
void gui_internal_highlight_do(struct gui_priv *this, struct widget *found)
Definition gui_internal_widget.c:289
void gui_internal_table_data_free(void *p)
Deallocates a table_data structure.
Definition gui_internal_widget.c:1542
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:1045
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:251
void gui_internal_widget_pack(struct gui_priv *this, struct widget *w)
Definition gui_internal_widget.c:873
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:750
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:765
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:228
struct widget * gui_internal_image_new(struct gui_priv *this, struct graphics_image *image)
Definition gui_internal_widget.c:136
void gui_internal_table_hide_rows(struct table_data *table_data)
Invalidates coordinates for previously rendered table widget rows.
Definition gui_internal_widget.c:1240
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:1015
struct widget * gui_internal_label_new(struct gui_priv *this, const char *text)
Definition gui_internal_widget.c:111
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:1058
struct widget * gui_internal_button_label(struct gui_priv *this, const char *label, int mode)
Definition gui_internal_widget.c:885
struct widget * gui_internal_label_font_new(struct gui_priv *this, const char *text, int font)
Definition gui_internal_widget.c:86
struct widget * gui_internal_find_widget(struct widget *wi, struct point *p, int flags)
Definition gui_internal_widget.c:262
struct widget * gui_internal_box_new_with_label(struct gui_priv *this, enum flags flags, const char *label)
Definition gui_internal_widget.c:338
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:971
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:695
void gui_internal_widget_children_destroy(struct gui_priv *this, struct widget *w)
Destroys all child widgets.
Definition gui_internal_widget.c:797
void gui_internal_widget_destroy(struct gui_priv *this, struct widget *w)
Destroys a widget.
Definition gui_internal_widget.c:820
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:1184
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:728
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:72
unsigned char p[5]
Definition mg.h:2
Definition config_.c:45
Definition attr.h:138
Definition callback.c:26
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:185
Definition graphics.h:195
Definition graphics_win32.h:50
Represents an object on a map.
Definition item.h:122
Definition gui_internal_priv.h:162
Definition gpx2navit_txt.h:50
Definition coord.h:51
Definition point.h:23
Definition gui_internal_widget.h:96
int button_box_hide
Definition gui_internal_widget.h:100
struct widget * button_box
Definition gui_internal_widget.h:105
struct widget * prev_button
Definition gui_internal_widget.h:113
struct widget * next_button
Definition gui_internal_widget.h:109
Definition gui_internal_widget.h:150
int width
Definition gui_internal_widget.h:160
int height
Definition gui_internal_widget.h:155
A structure to store information about a table.
Definition gui_internal_widget.h:130
GList * bottom_row
Definition gui_internal_widget.h:140
GList * top_row
Definition gui_internal_widget.h:135
Definition gui_internal_widget.h:23
void(* data_free)(void *data)
A function to deallocate data.
Definition gui_internal_widget.h:47
struct attr off
Definition gui_internal_widget.h:85
struct attr on
Definition gui_internal_widget.h:84
enum gui_internal_reason reason
Definition gui_internal_widget.h:41
enum flags flags
Definition gui_internal_widget.h:77
void * instance
Definition gui_internal_widget.h:79
int bb
Definition gui_internal_widget.h:69
struct point p
Definition gui_internal_widget.h:64
int hmin
Definition gui_internal_widget.h:65
void * data
Definition gui_internal_widget.h:43
char * prefix
Definition gui_internal_widget.h:56
void(* on_resize)(struct gui_priv *priv, struct widget *widget, void *data, int neww, int newh)
Definition gui_internal_widget.h:40
int redraw
Definition gui_internal_widget.h:88
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:55
int flags2
Definition gui_internal_widget.h:78
int textw
Definition gui_internal_widget.h:67
void(* remove_cb)(void *, struct callback *cb)
Definition gui_internal_widget.h:82
int spy
Definition gui_internal_widget.h:69
int state
Definition gui_internal_widget.h:63
char * command
Definition gui_internal_widget.h:59
struct graphics_gc * text_background
Definition gui_internal_widget.h:25
int(* get_attr)(void *, enum attr_type, struct attr *, struct attr_iter *)
Definition gui_internal_widget.h:81
struct pcoord c
Definition gui_internal_widget.h:60
struct scroll_buttons * scroll_buttons
Definition gui_internal_widget.h:93
struct form * form
Definition gui_internal_widget.h:90
int spx
Definition gui_internal_widget.h:69
struct graphics_image * img
Definition gui_internal_widget.h:29
int w
Definition gui_internal_widget.h:66
int deflt
Definition gui_internal_widget.h:86
struct graphics_gc * foreground
Definition gui_internal_widget.h:27
int bt
Definition gui_internal_widget.h:69
char * speech
Definition gui_internal_widget.h:58
int font_idx
Definition gui_internal_widget.h:68
int datai
Definition gui_internal_widget.h:42
int packed
Definition gui_internal_widget.h:71
int(* set_attr)(void *, struct attr *)
Definition gui_internal_widget.h:80
int texth
Definition gui_internal_widget.h:67
struct graphics_gc * background
Definition gui_internal_widget.h:25
int border
Definition gui_internal_widget.h:70
int cols
Definition gui_internal_widget.h:76
int wmin
Definition gui_internal_widget.h:65
int bl
Definition gui_internal_widget.h:69
int selection_id
Definition gui_internal_widget.h:62
int is_on
Definition gui_internal_widget.h:87
struct graphics_gc * foreground_frame
Definition gui_internal_widget.h:26
char * name
Definition gui_internal_widget.h:57
int h
Definition gui_internal_widget.h:66
GList * children
Definition gui_internal_widget.h:91
struct callback * cb
Definition gui_internal_widget.h:83
enum widget_type type
Definition gui_internal_widget.h:24
void(* func)(struct gui_priv *priv, struct widget *widget, void *data)
Definition gui_internal_widget.h:35
char * text
Definition gui_internal_widget.h:28
struct menu_data * menu_data
Definition gui_internal_widget.h:89
struct widget * parent
Definition gui_internal_widget.h:92
int br
Definition gui_internal_widget.h:69