Graphviz
13.1.3~dev.20250815.1023
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,
void
*user_data) {
20
(void)widget;
21
(void)user_data;
22
23
glmotion_zoom_inc
(0);
24
}
25
26
void
btnToolZoomFit_clicked
(GtkWidget *widget,
void
*user_data) {
27
(void)widget;
28
(void)user_data;
29
30
const
double
z
=
view
->
active_camera
!=
SIZE_MAX
31
?
view
->
cameras
[
view
->
active_camera
]->
r
32
: -
view
->
zoom
;
33
34
const
double
GDX =
view
->
bdxRight
/
z
-
view
->
bdxLeft
/
z
;
35
const
double
SDX =
view
->
clipX2
-
view
->
clipX1
;
36
const
double
GDY =
view
->
bdyTop
/
z
-
view
->
bdyBottom
/
z
;
37
const
double
SDY =
view
->
clipY2
-
view
->
clipY1
;
38
39
if
(SDX / GDX <= SDY / GDY) {
40
if
(
view
->
active_camera
!=
SIZE_MAX
) {
41
view
->
cameras
[
view
->
active_camera
]->
r
/= SDX / GDX;
42
}
else
{
43
view
->
zoom
/= SDX / GDX;
44
}
45
}
else
{
46
if
(
view
->
active_camera
!=
SIZE_MAX
) {
47
view
->
cameras
[
view
->
active_camera
]->
r
/= SDY / GDY;
48
}
else
{
49
view
->
zoom
/= SDY / GDY;
50
}
51
52
}
53
btnToolFit_clicked
(
NULL
,
NULL
);
54
}
55
56
void
btnToolFit_clicked
(GtkWidget *widget,
void
*user_data) {
57
(void)widget;
58
(void)user_data;
59
60
const
double
z
=
view
->
active_camera
!=
SIZE_MAX
61
?
view
->
cameras
[
view
->
active_camera
]->
r
62
:
view
->
zoom
* -1;
63
64
const
double
gcx =
view
->
bdxLeft
/
z
+ (
view
->
bdxRight
/
z
-
view
->
bdxLeft
/
z
) / 2.0;
65
const
double
scx =
view
->
clipX1
+ (
view
->
clipX2
-
view
->
clipX1
) / 2.0;
66
const
double
gcy =
view
->
bdyBottom
/
z
+ (
view
->
bdyTop
/
z
-
view
->
bdyBottom
/
z
) / 2.0;
67
const
double
scy =
view
->
clipY1
+ (
view
->
clipY2
-
view
->
clipY1
) / 2.0;
68
69
if
(
view
->
active_camera
!=
SIZE_MAX
) {
70
view
->
cameras
[
view
->
active_camera
]->
targetx
+= gcx - scx;
71
view
->
cameras
[
view
->
active_camera
]->
targety
+= gcx - scy;
72
}
else
{
73
view
->
panx
+= gcx - scx;
74
view
->
pany
+= gcy - scy;
75
}
76
view
->
Topview
->
fitin_zoom
=
view
->
zoom
;
77
78
glexpose
();
79
}
80
81
void
on_btnActivateGraph_clicked
(GtkWidget *widget,
void
*user_data) {
82
(void)widget;
83
(void)user_data;
84
85
int
graphId;
86
graphId = gtk_combo_box_get_active(
view
->
graphComboBox
);
87
/* fprintf (stderr, "switch to graph %d\n",graphId); */
88
switch_graph
(graphId);
89
}
glmotion_zoom_inc
void glmotion_zoom_inc(int zoomin)
Definition
glmotion.c:43
glmotion.h
gltemplate.h
glutils.h
SIZE_MAX
#define SIZE_MAX
Definition
gmlscan.c:347
NULL
node NULL
Definition
grammar.y:181
z
static int z
Definition
gvrender_core_pov.c:316
view
ViewInfo * view
Definition
viewport.c:37
glexpose
void glexpose(void)
Definition
viewport.c:520
_ViewInfo::Topview
topview * Topview
Definition
smyrnadefs.h:307
_ViewInfo::bdxRight
double bdxRight
Definition
smyrnadefs.h:285
_ViewInfo::clipX2
float clipX2
Definition
smyrnadefs.h:255
_ViewInfo::bdyBottom
double bdyBottom
Definition
smyrnadefs.h:285
_ViewInfo::zoom
double zoom
Definition
smyrnadefs.h:252
_ViewInfo::bdyTop
double bdyTop
Definition
smyrnadefs.h:284
_ViewInfo::graphComboBox
GtkComboBox * graphComboBox
Definition
smyrnadefs.h:332
_ViewInfo::cameras
viewport_camera ** cameras
Definition
smyrnadefs.h:299
_ViewInfo::bdxLeft
double bdxLeft
Definition
smyrnadefs.h:284
_ViewInfo::panx
double panx
Definition
smyrnadefs.h:250
_ViewInfo::pany
double pany
Definition
smyrnadefs.h:251
_ViewInfo::clipY1
float clipY1
Definition
smyrnadefs.h:255
_ViewInfo::clipX1
float clipX1
Definition
smyrnadefs.h:255
_ViewInfo::clipY2
float clipY2
Definition
smyrnadefs.h:255
_ViewInfo::active_camera
size_t active_camera
<number of cameras
Definition
smyrnadefs.h:301
topview::fitin_zoom
double fitin_zoom
Definition
smyrnadefs.h:231
viewport_camera::targetx
double targetx
Definition
smyrnadefs.h:132
viewport_camera::targety
double targety
Definition
smyrnadefs.h:133
viewport_camera::r
double r
Definition
smyrnadefs.h:135
btnToolZoomOut_clicked
void btnToolZoomOut_clicked(GtkWidget *widget, void *user_data)
Definition
toolboxcallbacks.c:19
btnToolFit_clicked
void btnToolFit_clicked(GtkWidget *widget, void *user_data)
Definition
toolboxcallbacks.c:56
btnToolZoomFit_clicked
void btnToolZoomFit_clicked(GtkWidget *widget, void *user_data)
Definition
toolboxcallbacks.c:26
on_btnActivateGraph_clicked
void on_btnActivateGraph_clicked(GtkWidget *widget, void *user_data)
Definition
toolboxcallbacks.c:81
toolboxcallbacks.h
switch_graph
void switch_graph(int graphId)
Definition
viewport.c:429
viewport.h
cmd
smyrna
gui
toolboxcallbacks.c
Generated by
1.9.8