/* (C) Universitaet Passau 1986-1991 */
/* GraphEd Source, 1986-1991 by Michael Himsolt	*/

typedef	enum {
		/* Action allgemein					*/
		
		NO_ACTION,	         /* Dummy, ggf. Fehlermeldung	*/
		CREATE_MODE,	         /* Erzeuge Knoten und Kanten	*/
		SELECT_MODE,	         /* 				*/
		EDIT_SELECTION,          /* Editiere Knoten/Kante/Goup	*/
		EDIT_GRAGRA,
		EDIT_GRAPH_OF_SELECTION,
		
		CREATE_GRAPH,
		CREATE_DIRECTED_GRAPH,
		CREATE_UNDIRECTED_GRAPH,
		
		CREATE_PRODUCTION,       /* Erzeuge GraGra-Produktion	*/
		CREATE_DIRECTED_PRODUCTION,
		CREATE_UNDIRECTED_PRODUCTION,
				
		CREATE_EMBEDDING,       /* Erzeuge GraGra-Einbettung	*/
		CREATE_DIRECTED_EMBEDDING,
		CREATE_UNDIRECTED_EMBEDDING,
		
		CREATE_NODE,
		CREATE_EDGE,
				
		CREATE_BUFFER,
		
		/* SELECTION Management					*/
		
		SELECT,
		SELECT_NODE,
		SELECT_EDGE,
		SELECT_GROUP,
		SELECT_GRAPH,
		SELECT_GRAPH_OF_SELECTION,
		SELECT_ALL,
		
		EXTEND_SELECTION,
		EXTEND_SELECTION_WITH_NODE,
		EXTEND_SELECTION_WITH_EDGE,
		EXTEND_SELECTION_WITH_GROUP,
		EXTEND_SELECTION_WITH_GRAPH,
		
		UNSELECT,
				
		MOVE_SELECTION,
		RESIZE_SELECTION,	/* Nodes and groups		*/
		EXTEND_EDGE,
		MOVE_EDGE,
		COMPRIME_EDGE,
		
		PUT_SELECTION,
		PUT_WHOLE_GRAPH,
		GET_SELECTION,
		GET_AS_GRAPH,
		
		ZOOM_SELECTION_DOWN,
		ZOOM_SELECTION_UP,
#define SHRINK_SELECTION ZOOM_SELECTION_DOWN
#define EXPAND_SELECTION ZOOM_SELECTION_UP
		
		SPLIT_EDGE,
		SPLIT_SELECTION,
		MERGE_SELECTION,
		
		REVERSE_EDGE,
		SWAP_SELECTED_GRAPH_DIRECTEDNESS,
		SET_GRAPH_DIRECTEDNESS,
		
		LABEL_SELECTION,
		
		/* Gragra in action					*/
		
		COMPILE_PRODUCTION,
		COMPILE_ALL_PRODUCTIONS,
		PRETTY_PRINT_PRODUCTION,
		PRETTY_PRINT_CURRENT_PRODUCTION,
		PRETTY_PRINT_ALL_PRODUCTIONS,
		SET_CURRENT_PRODUCTION,
		APPLY_CURRENT_PRODUCTION,
		APPLY_PRODUCTION,
		
		CENTER_SELECTION,
		
		SELECTION_STATISTICS,
		BUFFER_STATISTICS,
		ALL_STATISTICS,
		
		ABOUT_GRAPHED,
		
		/* Loeschen						*/
		
		DELETE_SELECTION,
		DELETE_ALL,
		
		/*							*/
		/* Defaultwerte fuer Knoten und Kanten			*/
		/*							*/
		
		NODE_DEFAULTS,
		EDGE_DEFAULTS,
		
		/* The following are mainly used for the menu		*/
		
		/* Node_edge_interface					*/
		
		SET_NEI,
		NEI_NO_NODE_EDGE_INTERFACE,	/*         Wie		*/
		NEI_TO_BORDER_OF_BOUNDING_BOX,	/* Node_edge_interface	*/
		NEI_TO_CORNER_OF_BOUNDING_BOX,	/*			*/
		NEI_CLIPPED_TO_MIDDLE_OF_NODE,	/*			*/
		NEI_SPECIAL,
		
		/* Nodelabel_placement					*/
		
		SET_NLP,
		NLP_MIDDLE,			/*         		*/
		NLP_UPPERLEFT,			/*         Wie		*/
		NLP_UPPERRIGHT,			/* Nodelabel_placement	*/
		NLP_LOWERLEFT,			/*			*/
		NLP_LOWERRIGHT,			/*			*/
		
		/* Nodesize						*/
		
		SCALE_NODESIZE,
		SCALE_NODESIZE_16_16,
		SCALE_NODESIZE_32_32,
		SCALE_NODESIZE_64_64,
		SCALE_NODESIZE_128_128,
		SCALE_NODESIZE_AS_SELECTED,
		
		/* Edgelabelsize					*/
		
		SCALE_EDGELABELSIZE,
		SCALE_EDGELABELSIZE_64_64,
		SCALE_EDGELABELSIZE_256_64,
		SCALE_EDGELABELSIZE_UNCONSTRAINED,
		
		/* Label visibility					*/
		
		SET_NODELABEL_VISIBILITY,
		SET_NODELABEL_VISIBLE,
		SET_NODELABEL_INVISIBLE,
		SET_EDGELABEL_VISIBILITY,
		SET_EDGELABEL_VISIBLE,
		SET_EDGELABEL_INVISIBLE,
		
		SET_ALL_NODELABEL_VISIBILITY,
		SET_ALL_NODELABEL_VISIBLE,
		SET_ALL_NODELABEL_INVISIBLE,
		SET_ALL_EDGELABEL_VISIBILITY,
		SET_ALL_EDGELABEL_VISIBLE,
		SET_ALL_EDGELABEL_INVISIBLE,
		
		/* Arrow length						*/
		
		SCALE_ARROWLENGTH,
		SCALE_ARROWLENGTH_0,
		SCALE_ARROWLENGTH_8,
		SCALE_ARROWLENGTH_12,
		SCALE_ARROWLENGTH_16,
		SCALE_ARROWLENGTH_AS_SELECTED,
		
		/* Arrow angle						*/
		
		SCALE_ARROWANGLE,
		SCALE_ARROWANGLE_30,
		SCALE_ARROWANGLE_45,
		SCALE_ARROWANGLE_60,
		SCALE_ARROWANGLE_AS_SELECTED,
		
		/* Gragra type						*/
		
		SET_GRAGRA_TYPE,
		SET_GRAGRA_TYPE_NCE_1,
		SET_GRAGRA_TYPE_NLC,
		SET_GRAGRA_TYPE_BNLC,
		SET_GRAGRA_TYPE_ENCE_1,

		
		/* Misc	*/
				
		SET_NODEFONT,
		SET_EDGEFONT,
		SET_NODETYPE,
		SET_EDGETYPE,
		SET_NODECOLOR,
		SET_EDGECOLOR,

		EDIT_NODETYPES,
		EDIT_EDGETYPES,
		EDIT_NODEFONTS,
		EDIT_EDGEFONTS,
		
		/* Graph laden und speichern				*/
		
		LOAD_BY_SUBFRAME,
		LOAD_AGAIN,
		STORE_BY_SUBFRAME,
		STORE_TO_SAME_FILE,
		

		/* Spezial						*/
		
		REDRAW_ALL,
		SAVE_STATE,
		PRINT,
		SET_GRID,
		SET_GRID_8_8,
		SET_GRID_16_16,
		SET_GRID_32_32,
		SET_GRID_64_64,
		SET_GRID_128_128,
		SET_GRID_OFF,
		EXPAND_WORKING_AREA,
		SHRINK_WORKING_AREA,
		
		SET_CONSTRAINED,
		RESET_CONSTRAINED,
		TOGGLE_CONSTRAINED,
		
		GROUP_LABELLING_OPERATION_GOES_TO_NODE,
		GROUP_LABELLING_OPERATION_GOES_TO_EDGE,
		TOGGLE_GROUP_LABELLING_OPERATION,
		
		/* some internal routines follow	*/
		
		_CREATE_GRAPH,
		
		/* Dummy						*/
		
		NUMBER_OF_WORKING_AREA_MENU_ACTIONS	/* Dummy	*/
	}
	User_action;

