3 * Copyright (C) 2001-2009 Jim Evins <evins@snaught.com>.
5 * This file is part of gLabels.
7 * gLabels is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
12 * gLabels is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with gLabels. If not, see <http://www.gnu.org/licenses/>.
25 #include "label-box.h"
27 #include "pixmaps/cursor_box.xbm"
28 #include "pixmaps/cursor_box_mask.xbm"
33 /*========================================================*/
34 /* Private macros and constants. */
35 /*========================================================*/
38 /*========================================================*/
40 /*========================================================*/
43 /*========================================================*/
44 /* Private globals. */
45 /*========================================================*/
48 /*========================================================*/
49 /* Private function prototypes. */
50 /*========================================================*/
53 /*****************************************************************************/
54 /* Return apropos cursor for create object mode. */
55 /*****************************************************************************/
57 gl_view_box_get_create_cursor (void)
59 GdkCursor *cursor = NULL;
60 GdkPixmap *pixmap_data, *pixmap_mask;
61 GdkColor fg = { 0, 0, 0, 0 };
62 GdkColor bg = { 0, 65535, 65535, 65535 };
64 gl_debug (DEBUG_VIEW, "START");
66 pixmap_data = gdk_bitmap_create_from_data (NULL,
67 (gchar *)cursor_box_bits,
70 pixmap_mask = gdk_bitmap_create_from_data (NULL,
71 (gchar *)cursor_box_mask_bits,
72 cursor_box_mask_width,
73 cursor_box_mask_height);
74 cursor = gdk_cursor_new_from_pixmap (pixmap_data, pixmap_mask, &fg,
75 &bg, cursor_box_x_hot,
78 gl_debug (DEBUG_VIEW, "END");
84 /*****************************************************************************/
85 /* Object creation handler: button press event. */
86 /*****************************************************************************/
88 gl_view_box_create_button_press_event (glView *view,
94 gl_label_unselect_all (view->label);
96 object = gl_label_box_new (view->label);
97 gl_label_object_set_position (GL_LABEL_OBJECT(object), x, y);
98 gl_label_object_set_size (GL_LABEL_OBJECT(object), 0.0, 0.0);
100 view->create_object = GL_LABEL_OBJECT (object);
106 /*****************************************************************************/
107 /* Object creation handler: motion event. */
108 /*****************************************************************************/
110 gl_view_box_create_motion_event (glView *view,
116 gl_label_object_set_position (GL_LABEL_OBJECT(view->create_object),
117 MIN (x, view->create_x0), MIN (y, view->create_y0));
118 w = MAX (x, view->create_x0) - MIN (x, view->create_x0);
119 h = MAX (y, view->create_y0) - MIN (y, view->create_y0);
120 gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h);
124 /*****************************************************************************/
125 /* Object creation handler: button relesase event. */
126 /*****************************************************************************/
128 gl_view_box_create_button_release_event (glView *view,
134 if ((view->create_x0 == x) && (view->create_y0 == y)) {
135 x = view->create_x0 + 36.0;
136 y = view->create_y0 + 36.0;
138 gl_label_object_set_position (GL_LABEL_OBJECT(view->create_object),
139 MIN (x, view->create_x0), MIN (y, view->create_y0));
140 w = MAX (x, view->create_x0) - MIN (x, view->create_x0);
141 h = MAX (y, view->create_y0) - MIN (y, view->create_y0);
142 gl_label_object_set_size (GL_LABEL_OBJECT(view->create_object), w, h);
148 * Local Variables: -- emacs
150 * c-basic-offset: 8 -- emacs
151 * tab-width: 8 -- emacs
152 * indent-tabs-mode: nil -- emacs