X-Git-Url: https://git.street.me.uk/andy/viking.git/blobdiff_plain/82aa018d355d4cad72d46862f98e24566c46acb7..0925261ec4dde3b142e88a2e8ad5dfb74195d619:/src/vikviewport.h diff --git a/src/vikviewport.h b/src/vikviewport.h index 0771e151..27f291da 100644 --- a/src/vikviewport.h +++ b/src/vikviewport.h @@ -36,11 +36,11 @@ G_BEGIN_DECLS #define VIK_VIEWPORT_TYPE (vik_viewport_get_type ()) #define VIK_VIEWPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIK_VIEWPORT_TYPE, VikViewport)) #define VIK_VIEWPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIK_VIEWPORT_TYPE, VikViewportClass)) -#define IS_VIK_VIEWPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIK_VIEWPORT_TYPE)) -#define IS_VIK_VIEWPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIK_VIEWPORT_TYPE)) +#define VIK_IS_VIEWPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIK_VIEWPORT_TYPE)) +#define VIK_IS_VIEWPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIK_VIEWPORT_TYPE)) #define VIK_VIEWPORT_MAX_ZOOM 32768.0 -#define VIK_VIEWPORT_MIN_ZOOM 0.125 +#define VIK_VIEWPORT_MIN_ZOOM (1 / 32.0) /* used for coord to screen etc, screen to coord */ #define VIK_VIEWPORT_UTM_WRONG_ZONE -9999999 @@ -138,16 +138,20 @@ gint vik_viewport_get_height ( VikViewport *vvp ); void vik_viewport_reset_copyrights ( VikViewport *vp ); void vik_viewport_add_copyright ( VikViewport *vp, const gchar *copyright ); +void vik_viewport_reset_logos ( VikViewport *vp ); +void vik_viewport_add_logo ( VikViewport *vp, const GdkPixbuf *logo ); + /* Viewport features */ void vik_viewport_draw_scale ( VikViewport *vvp ); void vik_viewport_set_draw_scale ( VikViewport *vvp, gboolean draw_scale ); gboolean vik_viewport_get_draw_scale ( VikViewport *vvp ); -void vik_viewport_set_draw_copyright ( VikViewport *vvp, gboolean draw_copyright ); -gboolean vik_viewport_get_draw_copyright ( VikViewport *vvp ); void vik_viewport_draw_copyright ( VikViewport *vvp ); void vik_viewport_draw_centermark ( VikViewport *vvp ); void vik_viewport_set_draw_centermark ( VikViewport *vvp, gboolean draw_centermark ); gboolean vik_viewport_get_draw_centermark ( VikViewport *vvp ); +void vik_viewport_draw_logo ( VikViewport *vvp ); +void vik_viewport_set_draw_highlight ( VikViewport *vvp, gboolean draw_highlight ); +gboolean vik_viewport_get_draw_highlight ( VikViewport *vvp ); /* Color/graphics context management */ void vik_viewport_set_background_color ( VikViewport *vvp, const gchar *color ); @@ -159,6 +163,13 @@ GdkGC *vik_viewport_new_gc ( VikViewport *vvp, const gchar *colorname, gint thic GdkGC *vik_viewport_new_gc_from_color ( VikViewport *vvp, GdkColor *color, gint thickness ); GdkFunction vik_gc_get_function ( GdkGC *gc ); +void vik_viewport_set_highlight_color ( VikViewport *vvp, const gchar *color ); +const gchar *vik_viewport_get_highlight_color ( VikViewport *vvp ); +GdkColor *vik_viewport_get_highlight_gdkcolor ( VikViewport *vvp ); +void vik_viewport_set_highlight_gdkcolor ( VikViewport *vvp, GdkColor * ); +GdkGC* vik_viewport_get_gc_highlight ( VikViewport *vvp ); +void vik_viewport_set_highlight_thickness ( VikViewport *vvp, gint thickness ); + /* Drawing primitives */ void a_viewport_clip_line ( gint *x1, gint *y1, gint *x2, gint *y2 ); /* run this before drawing a line. vik_viewport_draw_line runs it for you */ void vik_viewport_draw_line ( VikViewport *vvp, GdkGC *gc, gint x1, gint y1, gint x2, gint y2 ); @@ -168,7 +179,8 @@ void vik_viewport_draw_arc ( VikViewport *vvp, GdkGC *gc, gboolean filled, gint void vik_viewport_draw_polygon ( VikViewport *vvp, GdkGC *gc, gboolean filled, GdkPoint *points, gint npoints ); void vik_viewport_draw_layout ( VikViewport *vvp, GdkGC *gc, gint x, gint y, PangoLayout *layout ); - +/* Utilities */ +void vik_viewport_compute_bearing ( VikViewport *vp, gint x1, gint y1, gint x2, gint y2, gdouble *angle, gdouble *baseangle ); G_END_DECLS