/*
* viking -- GPS Data and Topo Analyzer, Explorer, and Manager
*
- * Copyright (C) 2003-2005, Evan Battaglia <gtoevan@gmx.net>
+ * Copyright (C) 2005, Alex Foobarian <foobarian@gmail.com>
+ * Copyright (C) 2003-2007, Evan Battaglia <gtoevan@gmx.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
guint16 i, params_count = vik_layer_get_interface(vl->type)->params_count;
for ( i = 0; i < params_count; i++ )
{
- d = get_param(vl, i);
+ g_debug("%s: %s", __FUNCTION__, params[i].name);
+ d = get_param(vl, i, FALSE);
switch ( params[i].type )
{
case VIK_LAYER_PARAM_STRING:
guint16 i, params_count = vik_layer_get_interface(vl->type)->params_count;
for ( i = 0; i < params_count; i++ )
{
+ g_debug("%s: %s", __FUNCTION__, params[i].name);
switch ( params[i].type )
{
case VIK_LAYER_PARAM_STRING:
s[vlm_size]=0;
vlm_read(s);
d.s = s;
- set_param(vl, i, d, vvp);
+ set_param(vl, i, d, vvp, FALSE);
g_free(s);
break;
case VIK_LAYER_PARAM_STRING_LIST: {
list = g_list_append ( list, s );
}
d.sl = list;
- set_param ( vl, i, d, vvp );
+ set_param(vl, i, d, vvp, FALSE);
/* don't free -- string list is responsibility of the layer */
break;
}
default:
vlm_read(&d);
- set_param(vl, i, d, vvp);
+ set_param(vl, i, d, vvp, FALSE);
break;
}
}
return NULL;
}
+const gchar* vik_layer_sublayer_tooltip ( VikLayer *l, gint subtype, gpointer sublayer )
+{
+ if ( vik_layer_interfaces[l->type]->sublayer_tooltip )
+ return vik_layer_interfaces[l->type]->sublayer_tooltip ( l, subtype, sublayer );
+ return NULL;
+}
+
+const gchar* vik_layer_layer_tooltip ( VikLayer *l )
+{
+ if ( vik_layer_interfaces[l->type]->layer_tooltip )
+ return vik_layer_interfaces[l->type]->layer_tooltip ( l );
+ return NULL;
+}
+
GdkPixbuf *vik_layer_load_icon ( gint type )
{
g_assert ( type < VIK_LAYER_NUM_TYPES );
return NULL;
}
-gboolean vik_layer_set_param ( VikLayer *layer, guint16 id, VikLayerParamData data, gpointer vp )
+gboolean vik_layer_set_param ( VikLayer *layer, guint16 id, VikLayerParamData data, gpointer vp, gboolean is_file_operation )
{
if ( vik_layer_interfaces[layer->type]->set_param )
- return vik_layer_interfaces[layer->type]->set_param ( layer, id, data, vp );
+ return vik_layer_interfaces[layer->type]->set_param ( layer, id, data, vp, is_file_operation );
return FALSE;
}
static gboolean layer_properties_factory ( VikLayer *vl, VikViewport *vp )
{
- switch ( a_uibuilder_properties_factory ( VIK_GTK_WINDOW_FROM_WIDGET(vp),
- vik_layer_interfaces[vl->type]->params,
- vik_layer_interfaces[vl->type]->params_count,
- vik_layer_interfaces[vl->type]->params_groups,
- vik_layer_interfaces[vl->type]->params_groups_count,
- vik_layer_interfaces[vl->type]->set_param, vl, vp,
- vik_layer_interfaces[vl->type]->get_param, vl) ) {
+ switch ( a_uibuilder_properties_factory ( _("Layer Properties"),
+ VIK_GTK_WINDOW_FROM_WIDGET(vp),
+ vik_layer_interfaces[vl->type]->params,
+ vik_layer_interfaces[vl->type]->params_count,
+ vik_layer_interfaces[vl->type]->params_groups,
+ vik_layer_interfaces[vl->type]->params_groups_count,
+ (gpointer) vik_layer_interfaces[vl->type]->set_param,
+ vl,
+ vp,
+ (gpointer) vik_layer_interfaces[vl->type]->get_param,
+ vl) ) {
case 0:
- return FALSE;
case 3:
+ return FALSE;
/* redraw (?) */
case 2:
vik_layer_post_read ( vl, vp, FALSE ); /* update any gc's */
}
}
-static GdkCursor ***layers_cursors;
-
-GdkCursor *vik_layer_get_tool_cursor ( gint layer_id, gint tool_id )
-{
- if ( layer_id >= VIK_LAYER_NUM_TYPES )
- return NULL;
- if ( tool_id >= vik_layer_interfaces[layer_id]->tools_count )
- return NULL;
- return layers_cursors[layer_id][tool_id];
-}
-
-void vik_layer_cursors_init()
-{
- gint i, j;
- layers_cursors = g_malloc ( sizeof(GdkCursor **) * VIK_LAYER_NUM_TYPES );
- for ( i = 0 ; i < VIK_LAYER_NUM_TYPES; i++ ) {
- if ( vik_layer_interfaces[i]->tools_count ) {
- layers_cursors[i] = g_malloc ( sizeof(GdkCursor *) * vik_layer_interfaces[i]->tools_count );
- for ( j = 0; j < vik_layer_interfaces[i]->tools_count; j++ ) {
- if ( vik_layer_interfaces[i]->tools[j].cursor ) {
- const GdkPixdata *cursor_pixdata = vik_layer_interfaces[i]->tools[j].cursor;
- GError *cursor_load_err = NULL;
- GdkPixbuf *cursor_pixbuf = gdk_pixbuf_from_pixdata (cursor_pixdata, FALSE, &cursor_load_err);
- /* TODO: settable offeset */
- GdkCursor *cursor = gdk_cursor_new_from_pixbuf ( gdk_display_get_default(), cursor_pixbuf, 3, 3 );
- layers_cursors[i][j] = cursor;
-
- g_object_unref ( G_OBJECT(cursor_pixbuf) );
- }
- else
- layers_cursors[i][j] = NULL;
- }
- } else
- layers_cursors[i] = NULL;
- }
-}
-
-void vik_layer_cursors_uninit()
-{
- gint i, j;
- for ( i = 0 ; i < VIK_LAYER_NUM_TYPES; i++ ) {
- if ( vik_layer_interfaces[i]->tools_count ) {
- for ( j = 0; j < vik_layer_interfaces[i]->tools_count; j++ ) {
- if ( layers_cursors[i][j] )
- gdk_cursor_unref ( layers_cursors[i][j] );
- }
- g_free ( layers_cursors[i] );
- }
- }
- g_free ( layers_cursors );
-}