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