1 /* gEDA - GPL Electronic Design Automation
2 * gschem - gEDA Schematic Capture
3 * Copyright (C) 1998-2010 Ales Hvezda
4 * Copyright (C) 1998-2010 gEDA Contributors (see ChangeLog for details)
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA
27 #ifdef HAVE_LIBDMALLOC
31 /*! \todo Finish function documentation!!!
33 * \par Function Description
36 void x_repaint_background_region (GSCHEM_TOPLEVEL
*w_current
,
37 int x
, int y
, int width
, int height
)
39 TOPLEVEL
*toplevel
= w_current
->toplevel
;
41 gdk_gc_set_foreground (w_current
->gc
,
42 x_get_color (toplevel
->background_color
));
44 gdk_draw_rectangle (w_current
->drawable
,
45 w_current
->gc
, TRUE
, x
, y
, width
, height
);
47 x_grid_draw_region (w_current
, x
, y
, width
, height
);
50 /*! \todo Finish function documentation!!!
52 * \par Function Description
55 void x_hscrollbar_set_ranges(GSCHEM_TOPLEVEL
*w_current
)
57 TOPLEVEL
*toplevel
= w_current
->toplevel
;
58 GtkAdjustment
*hadjustment
;
60 if (w_current
->scrollbars_flag
== FALSE
) {
65 gtk_range_get_adjustment(GTK_RANGE(w_current
->h_scrollbar
));
67 hadjustment
->lower
= toplevel
->init_left
;
68 hadjustment
->upper
= toplevel
->init_right
;
72 /*! \todo Finish function documentation!!!
74 * \par Function Description
77 void x_hscrollbar_update(GSCHEM_TOPLEVEL
*w_current
)
79 TOPLEVEL
*toplevel
= w_current
->toplevel
;
80 GtkAdjustment
*hadjustment
;
82 if (w_current
->scrollbars_flag
== FALSE
) {
86 if (w_current
->h_scrollbar
== NULL
) {
90 hadjustment
= gtk_range_get_adjustment (GTK_RANGE (
91 w_current
->h_scrollbar
));
93 hadjustment
->value
= toplevel
->page_current
->left
;
95 hadjustment
->page_size
= fabs(toplevel
->page_current
->right
-
96 toplevel
->page_current
->left
);
98 hadjustment
->page_increment
= hadjustment
->page_size
- 100.0;
101 printf("H %f %f\n", hadjustment
->lower
, hadjustment
->upper
);
102 printf("Hp %f\n", hadjustment
->page_size
);
105 gtk_signal_emit_by_name(GTK_OBJECT(hadjustment
), "changed");
106 gtk_signal_emit_by_name(GTK_OBJECT(hadjustment
), "value_changed");
109 /*! \todo Finish function documentation!!!
111 * \par Function Description
114 void x_vscrollbar_set_ranges(GSCHEM_TOPLEVEL
*w_current
)
116 TOPLEVEL
*toplevel
= w_current
->toplevel
;
117 GtkAdjustment
*vadjustment
;
119 if (w_current
->scrollbars_flag
== FALSE
) {
124 gtk_range_get_adjustment(GTK_RANGE(w_current
->v_scrollbar
));
126 vadjustment
->lower
= toplevel
->init_top
;
127 vadjustment
->upper
= toplevel
->init_bottom
;
130 /*! \todo Finish function documentation!!!
132 * \par Function Description
135 void x_vscrollbar_update(GSCHEM_TOPLEVEL
*w_current
)
137 TOPLEVEL
*toplevel
= w_current
->toplevel
;
138 GtkAdjustment
*vadjustment
;
140 if (w_current
->scrollbars_flag
== FALSE
) {
144 if (w_current
->v_scrollbar
== NULL
) {
149 gtk_range_get_adjustment(GTK_RANGE(w_current
->v_scrollbar
));
151 vadjustment
->page_size
= fabs(toplevel
->page_current
->bottom
-
152 toplevel
->page_current
->top
);
154 vadjustment
->page_increment
= vadjustment
->page_size
- 100.0;
157 toplevel
->init_bottom
- toplevel
->page_current
->bottom
;
160 printf("V %f %f\n", vadjustment
->lower
, vadjustment
->upper
);
161 printf("Vp %f\n", vadjustment
->page_size
);
164 gtk_signal_emit_by_name(GTK_OBJECT(vadjustment
), "changed");
165 gtk_signal_emit_by_name(GTK_OBJECT(vadjustment
), "value_changed");
168 /*! \todo Finish function documentation!!!
170 * \par Function Description
173 void x_scrollbars_update(GSCHEM_TOPLEVEL
*w_current
)
175 TOPLEVEL
*toplevel
= w_current
->toplevel
;
176 if (w_current
->scrollbars_flag
== FALSE
) {
180 toplevel
->DONT_REDRAW
= 1;
181 x_hscrollbar_update(w_current
);
182 x_vscrollbar_update(w_current
);
183 toplevel
->DONT_REDRAW
= 0;
187 /*! \todo Finish function documentation!!!
189 * \par Function Description
192 void x_basic_warp_cursor (GtkWidget
* widget
, gint x
, gint y
)
196 int window_x
, window_y
;
198 gdk_window_get_origin (widget
->window
, &window_x
, &window_y
);
200 screen
= gtk_widget_get_screen (widget
);
201 display
= gdk_screen_get_display (screen
);
203 gdk_display_warp_pointer (display
, screen
, window_x
+ x
, window_y
+ y
);