VikViewport

VikViewport

Functions

VikViewport * vik_viewport_new ()
void vik_viewport_configure_manually ()
gboolean vik_viewport_configure ()
void vik_viewport_screen_to_coord ()
void vik_viewport_coord_to_screen ()
void vik_viewport_set_ympp ()
void vik_viewport_set_xmpp ()
gdouble vik_viewport_get_ympp ()
gdouble vik_viewport_get_xmpp ()
void vik_viewport_set_zoom ()
gdouble vik_viewport_get_zoom ()
void vik_viewport_zoom_in ()
void vik_viewport_zoom_out ()
const VikCoord * vik_viewport_get_center ()
void vik_viewport_set_center_coord ()
void vik_viewport_set_center_screen ()
void vik_viewport_center_for_zonen ()
gchar vik_viewport_leftmost_zone ()
gchar vik_viewport_rightmost_zone ()
void vik_viewport_set_center_utm ()
void vik_viewport_set_center_latlon ()
void vik_viewport_corners_for_zonen ()
void vik_viewport_get_min_max_lat_lon ()
gboolean vik_viewport_go_back ()
gboolean vik_viewport_go_forward ()
gboolean vik_viewport_back_available ()
gboolean vik_viewport_forward_available ()
void vik_viewport_show_centers ()
VikCoordMode vik_viewport_get_coord_mode ()
gboolean vik_viewport_is_one_zone ()
const gchar * vik_viewport_get_drawmode_name ()
void vik_viewport_set_drawmode ()
VikViewportDrawMode vik_viewport_get_drawmode ()
void vik_viewport_set_trigger ()
gpointer vik_viewport_get_trigger ()
void vik_viewport_snapshot_save ()
void vik_viewport_snapshot_load ()
void vik_viewport_set_half_drawn ()
gboolean vik_viewport_get_half_drawn ()
GdkPixmap * vik_viewport_get_pixmap ()
void vik_viewport_sync ()
void vik_viewport_clear ()
void vik_viewport_draw_pixbuf ()
gint vik_viewport_get_width ()
gint vik_viewport_get_height ()
void vik_viewport_reset_copyrights ()
void vik_viewport_add_copyright ()
void vik_viewport_reset_logos ()
void vik_viewport_add_logo ()
void vik_viewport_draw_scale ()
void vik_viewport_set_draw_scale ()
gboolean vik_viewport_get_draw_scale ()
void vik_viewport_draw_copyright ()
void vik_viewport_draw_centermark ()
void vik_viewport_set_draw_centermark ()
gboolean vik_viewport_get_draw_centermark ()
void vik_viewport_draw_logo ()
void vik_viewport_set_draw_highlight ()
gboolean vik_viewport_get_draw_highlight ()
void vik_viewport_set_background_color ()
const gchar * vik_viewport_get_background_color ()
GdkColor vik_viewport_get_background_gdkcolor ()
void vik_viewport_set_background_gdkcolor ()
GdkGC * vik_viewport_new_gc ()
GdkGC * vik_viewport_new_gc_from_color ()
void vik_viewport_set_highlight_color ()
const gchar * vik_viewport_get_highlight_color ()
GdkColor vik_viewport_get_highlight_gdkcolor ()
void vik_viewport_set_highlight_gdkcolor ()
GdkGC * vik_viewport_get_gc_highlight ()
void vik_viewport_set_highlight_thickness ()
void a_viewport_clip_line ()
void vik_viewport_draw_line ()
void vik_viewport_draw_rectangle ()
void vik_viewport_draw_arc ()
void vik_viewport_draw_polygon ()
void vik_viewport_draw_layout ()
void vik_viewport_compute_bearing ()

Signals

Types and Values

Object Hierarchy

    GEnum
    ╰── VikViewportDrawMode
    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkDrawingArea
                ╰── VikViewport

Description

Functions

vik_viewport_new ()

VikViewport *
vik_viewport_new ();

vik_viewport_configure_manually ()

void
vik_viewport_configure_manually (VikViewport *vvp,
                                 gint width,
                                 guint height);

vik_viewport_configure ()

gboolean
vik_viewport_configure (VikViewport *vp);

vik_viewport_screen_to_coord ()

void
vik_viewport_screen_to_coord (VikViewport *vvp,
                              int x,
                              int y,
                              VikCoord *coord);

vik_viewport_coord_to_screen ()

void
vik_viewport_coord_to_screen (VikViewport *vvp,
                              const VikCoord *coord,
                              int *x,
                              int *y);

vik_viewport_set_ympp ()

void
vik_viewport_set_ympp (VikViewport *vvp,
                       gdouble ympp);

vik_viewport_set_xmpp ()

void
vik_viewport_set_xmpp (VikViewport *vvp,
                       gdouble xmpp);

vik_viewport_get_ympp ()

gdouble
vik_viewport_get_ympp (VikViewport *vvp);

vik_viewport_get_xmpp ()

gdouble
vik_viewport_get_xmpp (VikViewport *vvp);

vik_viewport_set_zoom ()

void
vik_viewport_set_zoom (VikViewport *vvp,
                       gdouble mpp);

vik_viewport_get_zoom ()

gdouble
vik_viewport_get_zoom (VikViewport *vvp);

vik_viewport_zoom_in ()

void
vik_viewport_zoom_in (VikViewport *vvp);

vik_viewport_zoom_out ()

void
vik_viewport_zoom_out (VikViewport *vvp);

vik_viewport_get_center ()

const VikCoord *
vik_viewport_get_center (VikViewport *vvp);

vik_viewport_set_center_coord ()

void
vik_viewport_set_center_coord (VikViewport *vvp,
                               const VikCoord *coord,
                               gboolean save_position);

Parameters

vvp

The viewport to reposition.

 

coord

The new center position in a VikCoord type

 

save_position

Whether this new position should be saved into the history of positions Normally only specific user requests should be saved (i.e. to not include Pan and Zoom repositions)

 

vik_viewport_set_center_screen ()

void
vik_viewport_set_center_screen (VikViewport *vvp,
                                int x,
                                int y);

vik_viewport_center_for_zonen ()

void
vik_viewport_center_for_zonen (VikViewport *vvp,
                               struct UTM *center,
                               int zone);

vik_viewport_leftmost_zone ()

gchar
vik_viewport_leftmost_zone (VikViewport *vvp);

vik_viewport_rightmost_zone ()

gchar
vik_viewport_rightmost_zone (VikViewport *vvp);

vik_viewport_set_center_utm ()

void
vik_viewport_set_center_utm (VikViewport *vvp,
                             const struct UTM *utm,
                             gboolean save_position);

Parameters

vvp

The viewport to reposition.

 

utm

The new center position in UTM format

 

save_position

Whether this new position should be saved into the history of positions Normally only specific user requests should be saved (i.e. to not include Pan and Zoom repositions)

 

vik_viewport_set_center_latlon ()

void
vik_viewport_set_center_latlon (VikViewport *vvp,
                                const struct LatLon *ll,
                                gboolean save_position);

Parameters

vvp

The viewport to reposition.

 

ll

The new center position in Lat/Lon format

 

save_position

Whether this new position should be saved into the history of positions Normally only specific user requests should be saved (i.e. to not include Pan and Zoom repositions)

 

vik_viewport_corners_for_zonen ()

void
vik_viewport_corners_for_zonen (VikViewport *vvp,
                                int zone,
                                VikCoord *ul,
                                VikCoord *br);

vik_viewport_get_min_max_lat_lon ()

void
vik_viewport_get_min_max_lat_lon (VikViewport *vp,
                                  gdouble *min_lat,
                                  gdouble *max_lat,
                                  gdouble *min_lon,
                                  gdouble *max_lon);

vik_viewport_go_back ()

gboolean
vik_viewport_go_back (VikViewport *vvp);

Move back in the position history

Returns

TRUE one success


vik_viewport_go_forward ()

gboolean
vik_viewport_go_forward (VikViewport *vvp);

Move forward in the position history

Returns

TRUE one success


vik_viewport_back_available ()

gboolean
vik_viewport_back_available (const VikViewport *vvp);

Returns

TRUE when a previous position in the history is available


vik_viewport_forward_available ()

gboolean
vik_viewport_forward_available (const VikViewport *vvp);

Returns

TRUE when a next position in the history is available


vik_viewport_show_centers ()

void
vik_viewport_show_centers (VikViewport *vvp,
                           GtkWindow *parent);

vik_viewport_get_coord_mode ()

VikCoordMode
vik_viewport_get_coord_mode (const VikViewport *vvp);

vik_viewport_is_one_zone ()

gboolean
vik_viewport_is_one_zone (VikViewport *vvp);

vik_viewport_get_drawmode_name ()

const gchar *
vik_viewport_get_drawmode_name (VikViewport *vv,
                                VikViewportDrawMode mode);

vik_viewport_set_drawmode ()

void
vik_viewport_set_drawmode (VikViewport *vvp,
                           VikViewportDrawMode drawmode);

vik_viewport_get_drawmode ()

VikViewportDrawMode
vik_viewport_get_drawmode (VikViewport *vvp);

vik_viewport_set_trigger ()

void
vik_viewport_set_trigger (VikViewport *vp,
                          gpointer trigger);

vik_viewport_get_trigger ()

gpointer
vik_viewport_get_trigger (VikViewport *vp);

vik_viewport_snapshot_save ()

void
vik_viewport_snapshot_save (VikViewport *vp);

vik_viewport_snapshot_load ()

void
vik_viewport_snapshot_load (VikViewport *vp);

vik_viewport_set_half_drawn ()

void
vik_viewport_set_half_drawn (VikViewport *vp,
                             gboolean half_drawn);

vik_viewport_get_half_drawn ()

gboolean
vik_viewport_get_half_drawn (VikViewport *vp);

vik_viewport_get_pixmap ()

GdkPixmap *
vik_viewport_get_pixmap (VikViewport *vvp);

vik_viewport_sync ()

void
vik_viewport_sync (VikViewport *vvp,
                   GdkGC *cr);

vik_viewport_clear ()

void
vik_viewport_clear (VikViewport *vvp);

Clear the whole viewport.

Parameters

vvp

self object

 

vik_viewport_draw_pixbuf ()

void
vik_viewport_draw_pixbuf (VikViewport *vvp,
                          GdkPixbuf *pixbuf,
                          gint src_x,
                          gint src_y,
                          gint dest_x,
                          gint dest_y,
                          gint w,
                          gint h);

vik_viewport_get_width ()

gint
vik_viewport_get_width (VikViewport *vvp);

vik_viewport_get_height ()

gint
vik_viewport_get_height (VikViewport *vvp);

vik_viewport_reset_copyrights ()

void
vik_viewport_reset_copyrights (VikViewport *vp);

vik_viewport_add_copyright ()

void
vik_viewport_add_copyright (VikViewport *vp,
                            const gchar *copyright);

Add a copyright to display on viewport.

Parameters

vp

self object

 

copyright

new copyright to display

 

vik_viewport_reset_logos ()

void
vik_viewport_reset_logos (VikViewport *vp);

vik_viewport_add_logo ()

void
vik_viewport_add_logo (VikViewport *vp,
                       const GdkPixbuf *logo);

vik_viewport_draw_scale ()

void
vik_viewport_draw_scale (VikViewport *vvp);

vik_viewport_set_draw_scale ()

void
vik_viewport_set_draw_scale (VikViewport *vvp,
                             gboolean draw_scale);

Enable/Disable display of scale.

Parameters

vvp

self

 

draw_scale

new value

 

vik_viewport_get_draw_scale ()

gboolean
vik_viewport_get_draw_scale (VikViewport *vvp);

vik_viewport_draw_copyright ()

void
vik_viewport_draw_copyright (VikViewport *vvp);

vik_viewport_draw_centermark ()

void
vik_viewport_draw_centermark (VikViewport *vvp);

vik_viewport_set_draw_centermark ()

void
vik_viewport_set_draw_centermark (VikViewport *vvp,
                                  gboolean draw_centermark);

Enable/Disable display of center mark.

Parameters

vvp

self object

 

draw_centermark

new value

 

vik_viewport_get_draw_centermark ()

gboolean
vik_viewport_get_draw_centermark (VikViewport *vvp);

vik_viewport_draw_logo ()

void
vik_viewport_draw_logo (VikViewport *vvp);

vik_viewport_set_draw_highlight ()

void
vik_viewport_set_draw_highlight (VikViewport *vvp,
                                 gboolean draw_highlight);

vik_viewport_get_draw_highlight ()

gboolean
vik_viewport_get_draw_highlight (VikViewport *vvp);

vik_viewport_set_background_color ()

void
vik_viewport_set_background_color (VikViewport *vvp,
                                   const gchar *color);

vik_viewport_get_background_color ()

const gchar *
vik_viewport_get_background_color (VikViewport *vvp);

vik_viewport_get_background_gdkcolor ()

GdkColor
vik_viewport_get_background_gdkcolor (VikViewport *vvp);

vik_viewport_set_background_gdkcolor ()

void
vik_viewport_set_background_gdkcolor (VikViewport *vvp,
                                      GdkColor color);

vik_viewport_new_gc ()

GdkGC *
vik_viewport_new_gc (VikViewport *vvp,
                     const gchar *colorname,
                     gint thickness);

vik_viewport_new_gc_from_color ()

GdkGC *
vik_viewport_new_gc_from_color (VikViewport *vvp,
                                GdkColor *color,
                                gint thickness);

vik_viewport_set_highlight_color ()

void
vik_viewport_set_highlight_color (VikViewport *vvp,
                                  const gchar *color);

vik_viewport_get_highlight_color ()

const gchar *
vik_viewport_get_highlight_color (VikViewport *vvp);

vik_viewport_get_highlight_gdkcolor ()

GdkColor
vik_viewport_get_highlight_gdkcolor (VikViewport *vvp);

vik_viewport_set_highlight_gdkcolor ()

void
vik_viewport_set_highlight_gdkcolor (VikViewport *vvp,
                                     GdkColor color);

vik_viewport_get_gc_highlight ()

GdkGC *
vik_viewport_get_gc_highlight (VikViewport *vvp);

vik_viewport_set_highlight_thickness ()

void
vik_viewport_set_highlight_thickness (VikViewport *vvp,
                                      gint thickness);

a_viewport_clip_line ()

void
a_viewport_clip_line (gint *x1,
                      gint *y1,
                      gint *x2,
                      gint *y2);

Due to the seemingly undocumented behaviour of gdk_draw_line(), we need to restrict the range of values passed in. So despite it accepting gints, the effective range seems to be the actually the minimum C int range (2^16). This seems to be limitations coming from the X Window System.

See http://www.rahul.net/kenton/40errs.html ERROR 7. Boundary conditions. "The X coordinate space is not infinite. Most drawing functions limit position, width, and height to 16 bit integers (sometimes signed, sometimes unsigned) of accuracy. Because most C compilers use 32 bit integers, Xlib will not complain if you exceed the 16 bit limit, but your results will usually not be what you expected. You should be especially careful of this if you are implementing higher level scalable graphics packages."

This function should be called before calling gdk_draw_line().

Parameters

x1

screen coord

 

y1

screen coord

 

x2

screen coord

 

y2

screen coord

 

vik_viewport_draw_line ()

void
vik_viewport_draw_line (VikViewport *vvp,
                        GdkGC *gc,
                        gint x1,
                        gint y1,
                        gint x2,
                        gint y2,
                        GdkColor *gcolor,
                        guint thickness);

vik_viewport_draw_rectangle ()

void
vik_viewport_draw_rectangle (VikViewport *vvp,
                             GdkGC *gc,
                             gboolean filled,
                             gint x1,
                             gint y1,
                             gint x2,
                             gint y2,
                             GdkColor *gcolor);

vik_viewport_draw_arc ()

void
vik_viewport_draw_arc (VikViewport *vvp,
                       GdkGC *gc,
                       gboolean filled,
                       gint x,
                       gint y,
                       gint width,
                       gint height,
                       gint angle1,
                       gint angle2,
                       GdkColor *gcolor);

vik_viewport_draw_polygon ()

void
vik_viewport_draw_polygon (VikViewport *vvp,
                           GdkGC *gc,
                           gboolean filled,
                           GdkPoint *points,
                           gint npoints,
                           GdkColor *gcolor);

vik_viewport_draw_layout ()

void
vik_viewport_draw_layout (VikViewport *vvp,
                          GdkGC *gc,
                          gint x,
                          gint y,
                          PangoLayout *layout,
                          GdkColor *gcolor);

vik_viewport_compute_bearing ()

void
vik_viewport_compute_bearing (VikViewport *vp,
                              gint x1,
                              gint y1,
                              gint x2,
                              gint y2,
                              gdouble *angle,
                              gdouble *baseangle);

Compute bearing.

Parameters

vp

self object

 

x1

screen coord

 

y1

screen coord

 

x2

screen coord

 

y2

screen coord

 

angle

bearing in Radian (output)

 

baseangle

UTM base angle in Radian (output)

 

Types and Values

VIK_VIEWPORT_TYPE

#define VIK_VIEWPORT_TYPE            (vik_viewport_get_type ())

VIK_VIEWPORT_MAX_ZOOM

#define VIK_VIEWPORT_MAX_ZOOM 32768.0

VIK_VIEWPORT_MIN_ZOOM

#define VIK_VIEWPORT_MIN_ZOOM (1 / 32.0)

VIK_VIEWPORT_UTM_WRONG_ZONE

#define VIK_VIEWPORT_UTM_WRONG_ZONE -9999999

VIK_VIEWPORT_OFF_SCREEN_DOUBLE

#define VIK_VIEWPORT_OFF_SCREEN_DOUBLE -9999999.9

enum VikViewportDrawMode

Members

VIK_VIEWPORT_DRAWMODE_UTM

   

VIK_VIEWPORT_DRAWMODE_EXPEDIA

   

VIK_VIEWPORT_DRAWMODE_MERCATOR

   

VIK_VIEWPORT_DRAWMODE_LATLON

   

VIK_VIEWPORT_NUM_DRAWMODES

   

Signal Details

The “updated-center” signal

void
user_function (VikViewport *vikviewport,
               gpointer     user_data)

Flags: Action