1 #define __SP_WINDOW_C__
3 /*
4 * Generic window implementation
5 *
6 * Author:
7 * Lauris Kaplinski <lauris@kaplinski.com>
8 *
9 * This code is in public domain
10 */
12 #ifdef HAVE_CONFIG_H
13 # include <config.h>
14 #endif
15 #include <gtk/gtkwindow.h>
17 #include "inkscape.h"
18 #include "shortcuts.h"
19 #include "desktop.h"
20 #include "event-context.h"
22 static gboolean
23 sp_window_key_press (GtkWidget *widget, GdkEventKey *event)
24 {
25 unsigned int shortcut;
26 shortcut = get_group0_keyval (event) |
27 ( event->state & GDK_SHIFT_MASK ?
28 SP_SHORTCUT_SHIFT_MASK : 0 ) |
29 ( event->state & GDK_CONTROL_MASK ?
30 SP_SHORTCUT_CONTROL_MASK : 0 ) |
31 ( event->state & GDK_MOD1_MASK ?
32 SP_SHORTCUT_ALT_MASK : 0 );
33 return sp_shortcut_invoke (shortcut, SP_ACTIVE_DESKTOP);
34 }
36 GtkWidget *
37 sp_window_new (const gchar *title, unsigned int resizeable)
38 {
39 GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
40 gtk_window_set_title ((GtkWindow *) window, title);
41 gtk_window_set_resizable ((GtkWindow *) window, resizeable);
42 g_signal_connect_after ((GObject *) window, "key_press_event", (GCallback) sp_window_key_press, NULL);
44 return window;
45 }