Updated copyright text/header in most source files.
[geda-gaf/peter-b.git] / gschem / src / x_basic.c
blob6a3a78a8580eb80375dee3fa4318c5d5bdc311cb
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
20 #include <config.h>
22 #include <stdio.h>
23 #include <math.h>
25 #include "gschem.h"
27 #ifdef HAVE_LIBDMALLOC
28 #include <dmalloc.h>
29 #endif
31 /*! \todo Finish function documentation!!!
32 * \brief
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!!!
51 * \brief
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) {
61 return;
64 hadjustment =
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!!!
73 * \brief
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) {
83 return;
86 if (w_current->h_scrollbar == NULL) {
87 return;
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;
100 #if DEBUG
101 printf("H %f %f\n", hadjustment->lower, hadjustment->upper);
102 printf("Hp %f\n", hadjustment->page_size);
103 #endif
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!!!
110 * \brief
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) {
120 return;
123 vadjustment =
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!!!
131 * \brief
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) {
141 return;
144 if (w_current->v_scrollbar == NULL) {
145 return;
148 vadjustment =
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;
156 vadjustment->value =
157 toplevel->init_bottom - toplevel->page_current->bottom;
159 #if DEBUG
160 printf("V %f %f\n", vadjustment->lower, vadjustment->upper);
161 printf("Vp %f\n", vadjustment->page_size);
162 #endif
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!!!
169 * \brief
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) {
177 return;
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!!!
188 * \brief
189 * \par Function Description
192 void x_basic_warp_cursor (GtkWidget* widget, gint x, gint y)
194 GdkScreen *screen;
195 GdkDisplay *display;
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);