]> git.street.me.uk Git - andy/viking.git/blobdiff - src/vikaggregatelayer.c
Read hgt.zip files directly. Process correctly 1 arc sec hgt(.zip) files
[andy/viking.git] / src / vikaggregatelayer.c
index be4b2889d333d01455c4985fc0bb553150330e4e..2edf282ad033ed317a073ef8ec7c4e5fc4935841 100644 (file)
@@ -44,6 +44,8 @@ VikLayerInterface vik_aggregate_layer_interface = {
   NULL,
   0,
 
   NULL,
   0,
 
+  VIK_MENU_ITEM_ALL,
+
   (VikLayerFuncCreate)                  vik_aggregate_layer_create,
   (VikLayerFuncRealize)                 vik_aggregate_layer_realize,
   (VikLayerFuncPostRead)                NULL,
   (VikLayerFuncCreate)                  vik_aggregate_layer_create,
   (VikLayerFuncRealize)                 vik_aggregate_layer_realize,
   (VikLayerFuncPostRead)                NULL,
@@ -52,6 +54,9 @@ VikLayerInterface vik_aggregate_layer_interface = {
   (VikLayerFuncProperties)              NULL,
   (VikLayerFuncDraw)                    vik_aggregate_layer_draw,
   (VikLayerFuncChangeCoordMode)         aggregate_layer_change_coord_mode,
   (VikLayerFuncProperties)              NULL,
   (VikLayerFuncDraw)                    vik_aggregate_layer_draw,
   (VikLayerFuncChangeCoordMode)         aggregate_layer_change_coord_mode,
+  
+  (VikLayerFuncSetMenuItemsSelection)  NULL,
+  (VikLayerFuncGetMenuItemsSelection)  NULL,
 
   (VikLayerFuncAddMenuItems)            NULL,
   (VikLayerFuncSublayerAddMenuItems)    NULL,
 
   (VikLayerFuncAddMenuItems)            NULL,
   (VikLayerFuncSublayerAddMenuItems)    NULL,
@@ -69,6 +74,7 @@ VikLayerInterface vik_aggregate_layer_interface = {
   (VikLayerFuncReadFileData)            NULL,
   (VikLayerFuncWriteFileData)           NULL,
 
   (VikLayerFuncReadFileData)            NULL,
   (VikLayerFuncWriteFileData)           NULL,
 
+  (VikLayerFuncDeleteItem)              NULL,
   (VikLayerFuncCopyItem)                NULL,
   (VikLayerFuncPasteItem)               NULL,
   (VikLayerFuncFreeCopiedItem)          NULL,
   (VikLayerFuncCopyItem)                NULL,
   (VikLayerFuncPasteItem)               NULL,
   (VikLayerFuncFreeCopiedItem)          NULL,
@@ -394,6 +400,22 @@ VikLayer *vik_aggregate_layer_get_top_visible_layer_of_type ( VikAggregateLayer
   return NULL;
 }
 
   return NULL;
 }
 
+GList *vik_aggregate_layer_get_all_layers_of_type(VikAggregateLayer *val, GList *layers, gint type)
+{
+  GList *l = layers;
+  GList *children = val->children;
+  if (!children)
+    return layers;
+  while (children) {
+    if (VIK_LAYER(children->data)->type == VIK_LAYER_AGGREGATE)
+      l = vik_aggregate_layer_get_all_layers_of_type(VIK_AGGREGATE_LAYER(children->data), l, type); 
+    else if (VIK_LAYER(children->data)->type == type)
+      l = g_list_prepend(l, children->data); /* now in top down order */
+    children = children->next;
+  }
+  return l;
+}
+
 void vik_aggregate_layer_realize ( VikAggregateLayer *val, VikTreeview *vt, GtkTreeIter *layer_iter )
 {
   GList *i = val->children;
 void vik_aggregate_layer_realize ( VikAggregateLayer *val, VikTreeview *vt, GtkTreeIter *layer_iter )
 {
   GList *i = val->children;