1 /* $Id$ $Revision$ */
2 /* vim:set shiftwidth=4 ts=8: */
3
4 /*************************************************************************
5 * Copyright (c) 2011 AT&T Intellectual Property
6 * All rights reserved. This program and the accompanying materials
7 * are made available under the terms of the Eclipse Public License v1.0
8 * which accompanies this distribution, and is available at
9 * http://www.eclipse.org/legal/epl-v10.html
10 *
11 * Contributors: See CVS logs. Details at http://www.graphviz.org/
12 *************************************************************************/
13
14 #include "toolboxcallbacks.h"
15 #include "viewport.h"
16
17 #include "gltemplate.h"
18 #include "glutils.h"
19 #include "glmotion.h"
20
21
22
23
24
btnToolZoomOut_clicked(GtkWidget * widget,gpointer user_data)25 void btnToolZoomOut_clicked(GtkWidget * widget, gpointer user_data)
26 {
27 glmotion_zoom_inc(0);
28 }
29
btnToolZoomFit_clicked(GtkWidget * widget,gpointer user_data)30 void btnToolZoomFit_clicked(GtkWidget * widget, gpointer user_data)
31 {
32
33 float z, GDX, SDX, GDY, SDY;
34 (view->active_camera >= 0)
35 ? (z = view->cameras[view->active_camera]->r) : (z =
36 view->zoom * -1);
37
38 GDX = (view->bdxRight / z - view->bdxLeft / z);
39 SDX = (view->clipX2 - view->clipX1);
40 GDY = (view->bdyTop / z - view->bdyBottom / z);
41 SDY = (view->clipY2 - view->clipY1);
42
43 if ((SDX / GDX) <= (SDY / GDY)) {
44 (view->active_camera >= 0) ?
45 (view->cameras[view->active_camera]->r =
46 view->cameras[view->active_camera]->r / (SDX /
47 GDX)) : (view->zoom =
48 view->zoom /
49 (SDX /
50 GDX));
51 } else {
52 (view->active_camera >= 0) ?
53 (view->cameras[view->active_camera]->r =
54 view->cameras[view->active_camera]->r / (SDY /
55 GDY)) : (view->zoom =
56 view->zoom /
57 (SDY /
58 GDY));
59
60 }
61 btnToolFit_clicked(NULL, NULL);
62 }
63
btnToolFit_clicked(GtkWidget * widget,gpointer user_data)64 void btnToolFit_clicked(GtkWidget * widget, gpointer user_data)
65 {
66 float scx, scy, gcx, gcy, z;
67
68
69
70 (view->active_camera >= 0)
71 ? (z = view->cameras[view->active_camera]->r) : (z =
72 view->zoom * -1);
73
74
75
76
77
78 gcx =
79 view->bdxLeft / z + (view->bdxRight / z -
80 view->bdxLeft / z) / (float) (2.0);
81 scx = view->clipX1 + (view->clipX2 - view->clipX1) / (float) (2.0);
82 gcy =
83 view->bdyBottom / z + (view->bdyTop / z -
84 view->bdyBottom / z) / (float) (2.0);
85 scy = view->clipY1 + (view->clipY2 - view->clipY1) / (float) (2.0);
86
87
88
89 if (view->active_camera >= 0) {
90
91 view->cameras[view->active_camera]->targetx += (gcx - scx);
92 view->cameras[view->active_camera]->targety += (gcx - scy);
93 } else {
94 view->panx += (gcx - scx);
95 view->pany += (gcy - scy);
96 }
97 view->Topview->fitin_zoom = view->zoom;
98
99 glexpose();
100 }
101
btnToolMove_clicked(GtkWidget * widget,gpointer user_data)102 void btnToolMove_clicked(GtkWidget * widget, gpointer user_data)
103 {
104 }
105
btnToolAddNode_clicked(GtkWidget * widget,gpointer user_data)106 void btnToolAddNode_clicked(GtkWidget * widget, gpointer user_data)
107 {
108 }
btnToolDeleteNode_clicked(GtkWidget * widget,gpointer user_data)109 void btnToolDeleteNode_clicked(GtkWidget * widget, gpointer user_data)
110 {
111 }
btnToolFindNode_clicked(GtkWidget * widget,gpointer user_data)112 void btnToolFindNode_clicked(GtkWidget * widget, gpointer user_data)
113 {
114 }
btnToolAddEdge_clicked(GtkWidget * widget,gpointer user_data)115 void btnToolAddEdge_clicked(GtkWidget * widget, gpointer user_data)
116 {
117 }
btnToolDeleteEdge_clicked(GtkWidget * widget,gpointer user_data)118 void btnToolDeleteEdge_clicked(GtkWidget * widget, gpointer user_data)
119 {
120 }
btnToolFindEdge_clicked(GtkWidget * widget,gpointer user_data)121 void btnToolFindEdge_clicked(GtkWidget * widget, gpointer user_data)
122 {
123 }
btnToolCursor_clicked(GtkWidget * widget,gpointer user_data)124 void btnToolCursor_clicked(GtkWidget * widget, gpointer user_data)
125 {
126 }
write_to_console(char * text)127 void write_to_console(char *text)
128 {
129 //init console text
130 GtkTextIter iter;
131 if (!view->consoleText)
132 view->consoleText = gtk_text_buffer_new(NULL);
133 gtk_text_buffer_get_end_iter(view->consoleText, &iter);
134 gtk_text_buffer_insert(view->consoleText, &iter, text, -1);
135 gtk_text_view_set_buffer((GtkTextView *)
136 glade_xml_get_widget(xml, "consoleText"),
137 view->consoleText);
138 }
139
on_btnActivateGraph_clicked(GtkWidget * widget,gpointer user_data)140 void on_btnActivateGraph_clicked(GtkWidget * widget, gpointer user_data)
141 {
142 int graphId;
143 graphId = gtk_combo_box_get_active(view->graphComboBox);
144 /* fprintf (stderr, "switch to graph %d\n",graphId); */
145 switch_graph(graphId);
146 }
147