* fix conffiles
[navit-package] / navit / graphics.h
index 191fc70..2d1edcb 100644 (file)
@@ -32,9 +32,10 @@ struct graphics_font;
 struct graphics_image;
 struct transformation;
 struct display_list;
+struct mapset;
 
 enum draw_mode_num {
-       draw_mode_begin, draw_mode_end, draw_mode_cursor
+       draw_mode_begin, draw_mode_begin_clear, draw_mode_end, draw_mode_cursor, draw_mode_end_lazy
 };
 
 struct graphics_priv;
@@ -56,19 +57,18 @@ struct graphics_methods {
        void (*draw_image)(struct graphics_priv *gr, struct graphics_gc_priv *fg, struct point *p, struct graphics_image_priv *img);
        void (*draw_image_warp)(struct graphics_priv *gr, struct graphics_gc_priv *fg, struct point *p, int count, char *data);
        void (*draw_restore)(struct graphics_priv *gr, struct point *p, int w, int h);
-       struct graphics_font_priv *(*font_new)(struct graphics_priv *gr, struct graphics_font_methods *meth, int size, int flags);
+       void (*draw_drag)(struct graphics_priv *gr, struct point *p);
+       struct graphics_font_priv *(*font_new)(struct graphics_priv *gr, struct graphics_font_methods *meth, char *font,  int size, int flags);
        struct graphics_gc_priv *(*gc_new)(struct graphics_priv *gr, struct graphics_gc_methods *meth);
        void (*background_gc)(struct graphics_priv *gr, struct graphics_gc_priv *gc);
-       struct graphics_priv *(*overlay_new)(struct graphics_priv *gr, struct graphics_methods *meth, struct point *p, int w, int h);
-       struct graphics_image_priv *(*image_new)(struct graphics_priv *gr, struct graphics_image_methods *meth, char *path, int *w, int *h, struct point *hot);
+       struct graphics_priv *(*overlay_new)(struct graphics_priv *gr, struct graphics_methods *meth, struct point *p, int w, int h, int alpha, int wraparound);
+       struct graphics_image_priv *(*image_new)(struct graphics_priv *gr, struct graphics_image_methods *meth, char *path, int *w, int *h, struct point *hot, int rotation);
        void *(*get_data)(struct graphics_priv *gr, char *type);
-       void (*register_resize_callback)(struct graphics_priv *gr, void (*callback)(void *data, int w, int h), void *data);
-       void (*register_button_callback)(struct graphics_priv *gr, void (*callback)(void *data, int pressed, int button, struct point *p), void *data);
-       void (*register_motion_callback)(struct graphics_priv *gr, void (*callback)(void *data, struct point *p), void *data);
        void (*image_free)(struct graphics_priv *gr, struct graphics_image_priv *priv);
-       void (*get_text_bbox)(struct graphics_priv *gr, struct graphics_font_priv *font, char *text, int dx, int dy, struct point *ret);
+       void (*get_text_bbox)(struct graphics_priv *gr, struct graphics_font_priv *font, char *text, int dx, int dy, struct point *ret, int estimate);
        void (*overlay_disable)(struct graphics_priv *gr, int disable);
-       void (*register_key_callback)(struct graphics_priv *gr, void (*callback)(void *data, struct point *p), void *data);
+       void (*overlay_resize)(struct graphics_priv *gr, struct point *p, int w, int h, int alpha, int wraparound);
+       int (*set_attr)(struct graphics_priv *gr, struct attr *attr);
 };
 
 
@@ -87,11 +87,13 @@ struct graphics_gc_methods {
        void (*gc_set_dashes)(struct graphics_gc_priv *gc, int width, int offset, unsigned char dash_list[], int n);
        void (*gc_set_foreground)(struct graphics_gc_priv *gc, struct color *c);
        void (*gc_set_background)(struct graphics_gc_priv *gc, struct color *c);
+       void (*gc_set_stipple)(struct graphics_gc_priv *gc, struct graphics_image_priv *img);
 };
 
 struct graphics_gc {
        struct graphics_gc_priv *priv;
        struct graphics_gc_methods meth;
+       struct graphics *gra;
 };
 
 struct graphics_image_methods {
@@ -106,11 +108,18 @@ struct graphics_image {
        struct point hot;
 };
 
+struct graphics_data_image {
+       void *data;
+       int size;
+};
+
 /* prototypes */
 enum attr_type;
+enum item_type;
 enum draw_mode_num;
 struct attr;
 struct attr_iter;
+struct callback;
 struct color;
 struct displayitem;
 struct displaylist;
@@ -120,25 +129,33 @@ struct graphics_font;
 struct graphics_gc;
 struct graphics_image;
 struct item;
+struct itemgra;
 struct layout;
+struct mapset;
 struct point;
+struct point_rect;
 struct transformation;
+int graphics_set_attr(struct graphics *gra, struct attr *attr);
+void graphics_set_rect(struct graphics *gra, struct point_rect *pr);
 struct graphics *graphics_new(struct attr *parent, struct attr **attrs);
 int graphics_get_attr(struct graphics *this_, enum attr_type type, struct attr *attr, struct attr_iter *iter);
-struct graphics *graphics_overlay_new(struct graphics *parent, struct point *p, int w, int h);
+struct graphics *graphics_overlay_new(struct graphics *parent, struct point *p, int w, int h, int alpha, int wraparound);
+void graphics_overlay_resize(struct graphics *this_, struct point *p, int w, int h, int alpha, int wraparound);
 void graphics_init(struct graphics *this_);
 void *graphics_get_data(struct graphics *this_, char *type);
-void graphics_register_resize_callback(struct graphics *this_, void (*callback)(void *data, int w, int h), void *data);
-void graphics_register_button_callback(struct graphics *this_, void (*callback)(void *data, int pressed, int button, struct point *p), void *data);
-void graphics_register_motion_callback(struct graphics *this_, void (*callback)(void *data, struct point *p), void *data);
+void graphics_add_callback(struct graphics *this_, struct callback *cb);
+void graphics_remove_callback(struct graphics *this_, struct callback *cb);
 struct graphics_font *graphics_font_new(struct graphics *gra, int size, int flags);
+void graphics_font_destroy_all(struct graphics *gra);
 struct graphics_gc *graphics_gc_new(struct graphics *gra);
 void graphics_gc_destroy(struct graphics_gc *gc);
 void graphics_gc_set_foreground(struct graphics_gc *gc, struct color *c);
 void graphics_gc_set_background(struct graphics_gc *gc, struct color *c);
+void graphics_gc_set_stipple(struct graphics_gc *gc, struct graphics_image *img);
 void graphics_gc_set_linewidth(struct graphics_gc *gc, int width);
 void graphics_gc_set_dashes(struct graphics_gc *gc, int width, int offset, unsigned char dash_list[], int n);
-struct graphics_image * graphics_image_new_scaled(struct graphics *gra, char *path, int w, int h);
+struct graphics_image *graphics_image_new_scaled(struct graphics *gra, char *path, int w, int h);
+struct graphics_image *graphics_image_new_scaled_rotated(struct graphics *gra, char *path, int w, int h, int rotate);
 struct graphics_image *graphics_image_new(struct graphics *gra, char *path);
 void graphics_image_free(struct graphics *gra, struct graphics_image *img);
 void graphics_draw_restore(struct graphics *this_, struct point *p, int w, int h);
@@ -146,22 +163,29 @@ void graphics_draw_mode(struct graphics *this_, enum draw_mode_num mode);
 void graphics_draw_lines(struct graphics *this_, struct graphics_gc *gc, struct point *p, int count);
 void graphics_draw_circle(struct graphics *this_, struct graphics_gc *gc, struct point *p, int r);
 void graphics_draw_rectangle(struct graphics *this_, struct graphics_gc *gc, struct point *p, int w, int h);
+void graphics_draw_rectangle_rounded(struct graphics *this_, struct graphics_gc *gc, struct point *plu, int w, int h, int r, int fill);
 void graphics_draw_text(struct graphics *this_, struct graphics_gc *gc1, struct graphics_gc *gc2, struct graphics_font *font, char *text, struct point *p, int dx, int dy);
-void graphics_get_text_bbox(struct graphics *this_, struct graphics_font *font, char *text, int dx, int dy, struct point *ret);
+void graphics_get_text_bbox(struct graphics *this_, struct graphics_font *font, char *text, int dx, int dy, struct point *ret, int estimate);
 void graphics_overlay_disable(struct graphics *this_, int disable);
 void graphics_draw_image(struct graphics *this_, struct graphics_gc *gc, struct point *p, struct graphics_image *img);
-void display_add(struct displaylist *displaylist, struct item *item, int count, struct point *pnt, char *label);
-int graphics_ready(struct graphics *this_);
-void graphics_displaylist_draw(struct graphics *gra, struct displaylist *displaylist, struct transformation *trans, struct layout *l);
-void graphics_displaylist_move(struct displaylist *displaylist, int dx, int dy);
-void graphics_draw(struct graphics *gra, struct displaylist *displaylist, GList *mapsets, struct transformation *trans, struct layout *l);
+int graphics_draw_drag(struct graphics *this_, struct point *p);
+void graphics_background_gc(struct graphics *this_, struct graphics_gc *gc);
+char *graphics_icon_path(char *icon);
+void graphics_draw_itemgra(struct graphics *gra, struct itemgra *itm, struct transformation *t);
+void graphics_displaylist_draw(struct graphics *gra, struct displaylist *displaylist, struct transformation *trans, struct layout *l, int flags);
+void graphics_draw(struct graphics *gra, struct displaylist *displaylist, struct mapset *mapset, struct transformation *trans, struct layout *l, int async, struct callback *cb, int flags);
+int graphics_draw_cancel(struct graphics *gra, struct displaylist *displaylist);
 struct displaylist_handle *graphics_displaylist_open(struct displaylist *displaylist);
 struct displayitem *graphics_displaylist_next(struct displaylist_handle *dlh);
 void graphics_displaylist_close(struct displaylist_handle *dlh);
 struct displaylist *graphics_displaylist_new(void);
 struct item *graphics_displayitem_get_item(struct displayitem *di);
 char *graphics_displayitem_get_label(struct displayitem *di);
-int graphics_displayitem_within_dist(struct displayitem *di, struct point *p, int dist);
+int graphics_displayitem_get_displayed(struct displayitem *di);
+int graphics_displayitem_within_dist(struct displaylist *displaylist, struct displayitem *di, struct point *p, int dist);
+void graphics_add_selection(struct graphics *gra, struct item *item, enum item_type type, struct displaylist *dl);
+void graphics_remove_selection(struct graphics *gra, struct item *item, enum item_type type, struct displaylist *dl);
+void graphics_clear_selection(struct graphics *gra, struct displaylist *dl);
 /* end of prototypes */
 #ifdef __cplusplus
 }