Graphviz
12.0.1~dev.20240716.0800
Loading...
Searching...
No Matches
toolboxcallbacks.c
Go to the documentation of this file.
1
/*************************************************************************
2
* Copyright (c) 2011 AT&T Intellectual Property
3
* All rights reserved. This program and the accompanying materials
4
* are made available under the terms of the Eclipse Public License v1.0
5
* which accompanies this distribution, and is available at
6
* https://www.eclipse.org/legal/epl-v10.html
7
*
8
* Contributors: Details at https://graphviz.org
9
*************************************************************************/
10
11
#include "
toolboxcallbacks.h
"
12
#include "
viewport.h
"
13
14
#include "
gltemplate.h
"
15
#include <
glcomp/glutils.h
>
16
#include "
glmotion.h
"
17
#include <stdint.h>
18
19
void
btnToolZoomOut_clicked
(GtkWidget * widget, gpointer user_data)
20
{
21
(void)widget;
22
(void)user_data;
23
24
glmotion_zoom_inc
(0);
25
}
26
27
void
btnToolZoomFit_clicked
(GtkWidget * widget, gpointer user_data)
28
{
29
(void)widget;
30
(void)user_data;
31
32
float
z
=
view
->
active_camera
!=
SIZE_MAX
33
?
view
->
cameras
[
view
->
active_camera
]->
r
34
: -
view
->
zoom
;
35
36
float
GDX =
view
->
bdxRight
/
z
-
view
->
bdxLeft
/
z
;
37
float
SDX =
view
->
clipX2
-
view
->
clipX1
;
38
float
GDY =
view
->
bdyTop
/
z
-
view
->
bdyBottom
/
z
;
39
float
SDY =
view
->
clipY2
-
view
->
clipY1
;
40
41
if
(SDX / GDX <= SDY / GDY) {
42
if
(
view
->
active_camera
!=
SIZE_MAX
) {
43
view
->
cameras
[
view
->
active_camera
]->
r
/= SDX / GDX;
44
}
else
{
45
view
->
zoom
/= SDX / GDX;
46
}
47
}
else
{
48
if
(
view
->
active_camera
!=
SIZE_MAX
) {
49
view
->
cameras
[
view
->
active_camera
]->
r
/= SDY / GDY;
50
}
else
{
51
view
->
zoom
/= SDY / GDY;
52
}
53
54
}
55
btnToolFit_clicked
(
NULL
,
NULL
);
56
}
57
58
void
btnToolFit_clicked
(GtkWidget * widget, gpointer user_data)
59
{
60
(void)widget;
61
(void)user_data;
62
63
float
scx, scy, gcx, gcy,
z
;
64
65
(
view
->
active_camera
!=
SIZE_MAX
)
66
? (
z
=
view
->
cameras
[
view
->
active_camera
]->
r
) : (
z
=
67
view
->
zoom
* -1);
68
69
gcx =
view
->
bdxLeft
/
z
+ (
view
->
bdxRight
/
z
-
view
->
bdxLeft
/
z
) / 2.0f;
70
scx =
view
->
clipX1
+ (
view
->
clipX2
-
view
->
clipX1
) / 2.0f;
71
gcy =
view
->
bdyBottom
/
z
+ (
view
->
bdyTop
/
z
-
view
->
bdyBottom
/
z
) / 2.0f;
72
scy =
view
->
clipY1
+ (
view
->
clipY2
-
view
->
clipY1
) / 2.0f;
73
74
if
(
view
->
active_camera
!=
SIZE_MAX
) {
75
view
->
cameras
[
view
->
active_camera
]->
targetx
+= (gcx - scx);
76
view
->
cameras
[
view
->
active_camera
]->
targety
+= (gcx - scy);
77
}
else
{
78
view
->
panx
+= gcx - scx;
79
view
->
pany
+= gcy - scy;
80
}
81
view
->
Topview
->
fitin_zoom
=
view
->
zoom
;
82
83
glexpose
();
84
}
85
86
void
on_btnActivateGraph_clicked
(GtkWidget * widget, gpointer user_data)
87
{
88
(void)widget;
89
(void)user_data;
90
91
int
graphId;
92
graphId = gtk_combo_box_get_active(
view
->
graphComboBox
);
93
/* fprintf (stderr, "switch to graph %d\n",graphId); */
94
switch_graph
(graphId);
95
}
glmotion_zoom_inc
void glmotion_zoom_inc(int zoomin)
Definition
glmotion.c:44
glmotion.h
gltemplate.h
glutils.h
SIZE_MAX
#define SIZE_MAX
Definition
gmlscan.c:347
NULL
node NULL
Definition
grammar.y:149
z
static int z
Definition
gvrender_core_pov.c:318
view
ViewInfo * view
Definition
viewport.c:38
glexpose
void glexpose(void)
Definition
viewport.c:543
_ViewInfo::bdxLeft
float bdxLeft
Definition
smyrnadefs.h:307
_ViewInfo::Topview
topview * Topview
Definition
smyrnadefs.h:334
_ViewInfo::pany
float pany
Definition
smyrnadefs.h:273
_ViewInfo::clipX2
float clipX2
Definition
smyrnadefs.h:278
_ViewInfo::bdyTop
float bdyTop
Definition
smyrnadefs.h:307
_ViewInfo::graphComboBox
GtkComboBox * graphComboBox
Definition
smyrnadefs.h:364
_ViewInfo::panx
float panx
Definition
smyrnadefs.h:272
_ViewInfo::cameras
viewport_camera ** cameras
Definition
smyrnadefs.h:326
_ViewInfo::bdxRight
float bdxRight
Definition
smyrnadefs.h:308
_ViewInfo::bdyBottom
float bdyBottom
Definition
smyrnadefs.h:308
_ViewInfo::zoom
float zoom
Definition
smyrnadefs.h:275
_ViewInfo::clipY1
float clipY1
Definition
smyrnadefs.h:278
_ViewInfo::clipX1
float clipX1
Definition
smyrnadefs.h:278
_ViewInfo::clipY2
float clipY2
Definition
smyrnadefs.h:278
_ViewInfo::active_camera
size_t active_camera
<number of cameras
Definition
smyrnadefs.h:328
_viewport_camera::targetx
float targetx
Definition
smyrnadefs.h:154
_viewport_camera::targety
float targety
Definition
smyrnadefs.h:155
_viewport_camera::r
float r
Definition
smyrnadefs.h:158
topview::fitin_zoom
float fitin_zoom
Definition
smyrnadefs.h:253
on_btnActivateGraph_clicked
void on_btnActivateGraph_clicked(GtkWidget *widget, gpointer user_data)
Definition
toolboxcallbacks.c:86
btnToolZoomOut_clicked
void btnToolZoomOut_clicked(GtkWidget *widget, gpointer user_data)
Definition
toolboxcallbacks.c:19
btnToolFit_clicked
void btnToolFit_clicked(GtkWidget *widget, gpointer user_data)
Definition
toolboxcallbacks.c:58
btnToolZoomFit_clicked
void btnToolZoomFit_clicked(GtkWidget *widget, gpointer user_data)
Definition
toolboxcallbacks.c:27
toolboxcallbacks.h
switch_graph
void switch_graph(int graphId)
Definition
viewport.c:452
viewport.h
cmd
smyrna
gui
toolboxcallbacks.c
Generated by
1.9.8