Ejemplo n.º 1
0
static void
zoom_changed_cb (GtkWidget *widget,
                 GParamSpec *pspec,
                 EmerillonWindow *self)
{
  GtkAction *zoom_in_action;
  GtkAction *zoom_out_action;
  gint zoom_level;
  guint min_zoom_level = 0;
  guint max_zoom_level = 18;
  ChamplainMapSource *source = NULL;

  source = champlain_view_get_map_source (self->priv->view);
  min_zoom_level = champlain_map_source_get_min_zoom_level (source);
  max_zoom_level = champlain_map_source_get_max_zoom_level (source);

  zoom_in_action = gtk_action_group_get_action (self->priv->main_actions,
        "ViewZoomIn");
  zoom_out_action = gtk_action_group_get_action (self->priv->main_actions,
        "ViewZoomOut");

  g_object_get (self->priv->view, "zoom-level", &zoom_level, NULL);

  gtk_action_set_sensitive (zoom_in_action, zoom_level < max_zoom_level);
  gtk_action_set_sensitive (zoom_out_action, zoom_level > min_zoom_level);
}
static void
get_map_size (ChamplainView *view, gint *width, gint *height)
{
  gint size, rows, cols;
  ChamplainMapSource *map_source = champlain_view_get_map_source (view);
  gint zoom_level = champlain_view_get_zoom_level (view);
  size = champlain_map_source_get_tile_size (map_source);
  rows = champlain_map_source_get_row_count (map_source,
                                                zoom_level);
  cols = champlain_map_source_get_column_count (map_source,
                                                zoom_level);
  *width = size * rows;
  *height = size * cols;

}