]> git.street.me.uk Git - andy/viking.git/blobdiff - src/viklayer.h
Some explicit setting of dirpath values to NULL.
[andy/viking.git] / src / viklayer.h
index 1933fb4874cf3a7f3cdcd19b5d43e74a0f73794d..8a55f936f51d47997e5c9c3039ee27b29bafd87a 100644 (file)
@@ -56,6 +56,7 @@ struct _VikLayer {
   gboolean visible;
 
   gboolean realized;
+  VikViewport *vvp;/* simply a reference */
   VikTreeview *vt; /* simply a reference */
   GtkTreeIter iter;
 
@@ -90,6 +91,7 @@ typedef gboolean (*VikToolKeyFunc) (VikLayer *, GdkEventKey *, gpointer);
 
 typedef struct _VikToolInterface VikToolInterface;
 struct _VikToolInterface {
+  const GdkPixdata *icon;
   GtkRadioActionEntry radioActionEntry;
   VikToolConstructorFunc create;
   VikToolDestructorFunc destroy;
@@ -108,7 +110,6 @@ struct _VikToolInterface {
 /* Parameters (for I/O and Properties) */
 /* --> moved to uibuilder.h */
 
-
 /* layer interface functions */
 
 /* Create a new layer of a certain type. Should be filled with defaults */
@@ -149,15 +150,16 @@ typedef void          (*VikLayerFuncMarshall)              (VikLayer *, guint8 *
 typedef VikLayer *    (*VikLayerFuncUnmarshall)            (guint8 *, gint, VikViewport *);
 
 /* returns TRUE if needs to redraw due to changed param */
-/* in parameter gboolean denotes if for file I/O, as opposed to display/cut/copy etc... operations */
-typedef gboolean      (*VikLayerFuncSetParam)              (VikLayer *, guint16, VikLayerParamData, VikViewport *, gboolean);
+typedef gboolean      (*VikLayerFuncSetParam)              (VikLayer *, VikLayerSetParam* );
 
 /* in parameter gboolean denotes if for file I/O, as opposed to display/cut/copy etc... operations */
 typedef VikLayerParamData
                       (*VikLayerFuncGetParam)              (VikLayer *, guint16, gboolean);
 
-typedef gboolean      (*VikLayerFuncReadFileData)          (VikLayer *, FILE *); // Should report success or failure
-typedef void          (*VikLayerFuncWriteFileData)         (VikLayer *, FILE *);
+typedef void          (*VikLayerFuncChangeParam)           (GtkWidget *, ui_change_values );
+
+typedef gboolean      (*VikLayerFuncReadFileData)          (VikLayer *, FILE *, const gchar *); // gchar* is the directory path. Function should report success or failure
+typedef void          (*VikLayerFuncWriteFileData)         (VikLayer *, FILE *, const gchar *); // gchar* is the directory path.
 
 /* item manipulation */
 typedef void          (*VikLayerFuncDeleteItem)            (VikLayer *, gint, gpointer);
@@ -174,10 +176,12 @@ typedef void          (*VikLayerFuncFreeCopiedItem)        (gint, gpointer);
 typedef void         (*VikLayerFuncDragDropRequest)       (VikLayer *, VikLayer *, GtkTreeIter *, GtkTreePath *);
 
 typedef gboolean      (*VikLayerFuncSelectClick)           (VikLayer *, GdkEventButton *, VikViewport *, tool_ed_t*);
-typedef gboolean      (*VikLayerFuncSelectMove)            (VikLayer *, GdkEventButton *, VikViewport *, tool_ed_t*);
+typedef gboolean      (*VikLayerFuncSelectMove)            (VikLayer *, GdkEventMotion *, VikViewport *, tool_ed_t*);
 typedef gboolean      (*VikLayerFuncSelectRelease)         (VikLayer *, GdkEventButton *, VikViewport *, tool_ed_t*);
 typedef gboolean      (*VikLayerFuncSelectedViewportMenu)  (VikLayer *, GdkEventButton *, VikViewport *);
 
+typedef time_t        (*VikLayerFuncGetTimestamp)          (VikLayer *);
+
 typedef enum {
   VIK_MENU_ITEM_PROPERTY=1,
   VIK_MENU_ITEM_CUT=2,
@@ -217,6 +221,8 @@ struct _VikLayerInterface {
   VikLayerFuncDraw                  draw;
   VikLayerFuncChangeCoordMode       change_coord_mode;
 
+  VikLayerFuncGetTimestamp          get_timestamp;
+
   VikLayerFuncSetMenuItemsSelection set_menu_selection;
   VikLayerFuncGetMenuItemsSelection get_menu_selection;
 
@@ -234,6 +240,7 @@ struct _VikLayerInterface {
   /* for I/O */
   VikLayerFuncSetParam              set_param;
   VikLayerFuncGetParam              get_param;
+  VikLayerFuncChangeParam           change_param;
 
   /* for I/O -- extra non-param data like TrwLayer data */
   VikLayerFuncReadFileData          read_file_data;
@@ -263,7 +270,9 @@ void vik_layer_rename ( VikLayer *l, const gchar *new_name );
 void vik_layer_rename_no_copy ( VikLayer *l, gchar *new_name );
 const gchar *vik_layer_get_name ( VikLayer *l );
 
-gboolean vik_layer_set_param (VikLayer *layer, guint16 id, VikLayerParamData data, gpointer vp, gboolean is_file_operation);
+time_t vik_layer_get_timestamp ( VikLayer *vl );
+
+gboolean vik_layer_set_param ( VikLayer *vl, VikLayerSetParam *vlsp );
 
 void vik_layer_set_defaults ( VikLayer *vl, VikViewport *vvp );
 
@@ -273,8 +282,8 @@ void vik_layer_emit_update ( VikLayer *vl );
 void vik_layer_set_menu_items_selection(VikLayer *l, guint16 selection);
 guint16 vik_layer_get_menu_items_selection(VikLayer *l);
 void vik_layer_add_menu_items ( VikLayer *l, GtkMenu *menu, gpointer vlp );
-VikLayer *vik_layer_create ( VikLayerTypeEnum type, gpointer vp, GtkWindow *w, gboolean interactive );
-gboolean vik_layer_properties ( VikLayer *layer, gpointer vp );
+VikLayer *vik_layer_create ( VikLayerTypeEnum type, VikViewport *vp, gboolean interactive );
+gboolean vik_layer_properties ( VikLayer *layer, VikViewport *vp );
 
 void vik_layer_realize ( VikLayer *l, VikTreeview *vt, GtkTreeIter * layer_iter );
 void vik_layer_post_read ( VikLayer *layer, VikViewport *vp, gboolean from_file );
@@ -304,6 +313,8 @@ VikLayer *vik_layer_get_and_reset_trigger();
 void vik_layer_emit_update_secondary ( VikLayer *vl ); /* to be called by aggregate layer only. doesn't set the trigger */
 void vik_layer_emit_update_although_invisible ( VikLayer *vl );
 
+void vik_layer_expand_tree ( VikLayer *vl );
+
 VikLayerTypeEnum vik_layer_type_from_string ( const gchar *str );
 
 typedef struct {