1 /* Dia -- an diagram creation/manipulation program 2 * Copyright (C) 1998 Alexander Larsson 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or 7 * (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write to the Free Software 16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 */ 18 #ifndef MODIFY_TOOL_H 19 #define MODIFY_TOOL_H 20 21 #include "geometry.h" 22 #include "tool.h" 23 #include "time.h" 24 25 typedef struct _ModifyTool ModifyTool; 26 27 enum ModifyToolState { 28 STATE_NONE, 29 STATE_MOVE_OBJECT, 30 STATE_MOVE_HANDLE, 31 STATE_BOX_SELECT 32 }; 33 34 struct _ModifyTool { 35 Tool tool; 36 37 enum ModifyToolState state; 38 int break_connections; 39 Point move_compensate; 40 DiaObject *object; 41 Handle *handle; 42 Point last_to; 43 Point start_at; 44 time_t start_time; 45 46 GdkGC *gc; 47 48 int x1, y1, x2, y2; 49 Point start_box; 50 Point end_box; 51 52 gboolean auto_scrolled; /* TRUE if the diagram auto scrolled last time 53 modify_motion was called */ 54 /* Undo info: */ 55 Point *orig_pos; 56 }; 57 58 Tool *create_modify_tool(void); 59 void free_modify_tool(Tool *tool); 60 61 #endif /* MODIFY_TOOL_H */ 62