* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
-#include <stdio.h>
-#include "vikwindow.h"
-
#ifndef _VIKING_LAYER_H
#define _VIKING_LAYER_H
+#include <stdio.h>
+#include <glib.h>
+#include <gtk/gtk.h>
+#include <gdk-pixbuf/gdk-pixdata.h>
+
+#include "vikwindow.h"
+#include "viktreeview.h"
+#include "vikviewport.h"
+
#define VIK_LAYER_TYPE (vik_layer_get_type ())
#define VIK_LAYER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIK_LAYER_TYPE, VikLayer))
#define VIK_LAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIK_LAYER_TYPE, VikLayerClass))
gint16 group;
const gchar *title;
guint8 widget_type;
- const gpointer widget_data;
- const gpointer extra_widget_data;
+ gpointer widget_data;
+ gpointer extra_widget_data;
} VikLayerParam;
enum {
typedef void (*VikLayerFuncDraw) (VikLayer *,VikViewport *);
typedef void (*VikLayerFuncChangeCoordMode) (VikLayer *,VikCoordMode);
+typedef void (*VikLayerFuncSetMenuItemsSelection) (VikLayer *,guint16);
+typedef guint16 (*VikLayerFuncGetMenuItemsSelection) (VikLayer *);
typedef void (*VikLayerFuncAddMenuItems) (VikLayer *,GtkMenu *,gpointer); /* gpointer is a VikLayersPanel */
typedef gboolean (*VikLayerFuncSublayerAddMenuItems) (VikLayer *,GtkMenu *,gpointer, /* first gpointer is a VikLayersPanel */
gint,gpointer,GtkTreeIter *);
*/
typedef void (*VikLayerFuncDragDropRequest) (VikLayer *, VikLayer *, GtkTreeIter *, GtkTreePath *);
+typedef enum {
+ VIK_MENU_ITEM_PROPERTY=1,
+ VIK_MENU_ITEM_CUT=2,
+ VIK_MENU_ITEM_COPY=4,
+ VIK_MENU_ITEM_PASTE=8,
+ VIK_MENU_ITEM_DELETE=16,
+ VIK_MENU_ITEM_ALL=0xff
+} VikStdLayerMenuItem;
typedef struct _VikLayerInterface VikLayerInterface;
gchar ** params_groups;
guint8 params_groups_count;
+ /* menu items to be created */
+ VikStdLayerMenuItem menu_items_selection;
+
VikLayerFuncCreate create;
VikLayerFuncRealize realize;
VikLayerFuncPostRead post_read;
VikLayerFuncDraw draw;
VikLayerFuncChangeCoordMode change_coord_mode;
+ VikLayerFuncSetMenuItemsSelection set_menu_selection;
+ VikLayerFuncGetMenuItemsSelection get_menu_selection;
+
VikLayerFuncAddMenuItems add_menu_items;
VikLayerFuncSublayerAddMenuItems sublayer_add_menu_items;
VikLayerFuncSublayerRenameRequest sublayer_rename_request;
void vik_layer_emit_update ( VikLayer *vl );
/* GUI */
+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 ( gint type, gpointer vp, GtkWindow *w, gboolean interactive );
gboolean vik_layer_properties ( VikLayer *layer, gpointer vp );