29
29
#include <glib/gi18n.h>
32
#include <libgames-support/games-gridframe.h>
33
32
#include <libgames-support/games-scores.h>
34
33
#include <libgames-support/games-scores-dialog.h>
35
#include <libgames-support/games-settings.h>
36
#include <libgames-support/games-stock.h>
38
35
#include "gbdefs.h"
39
36
#include "statusbar.h"
44
41
#include "properties.h"
46
43
#include "cursors.h"
44
#include "games-gridframe.h"
45
#include "games-stock.h"
48
47
/* Minimum sizes. */
49
48
#define MINIMUM_TILE_WIDTH 8
50
49
#define MINIMUM_TILE_HEIGHT MINIMUM_TILE_WIDTH
52
#define DEFAULT_WIDTH 720
53
#define DEFAULT_HEIGHT 566
55
51
#define KEY_GEOMETRY_GROUP "geometry"
57
53
/**********************************************************************/
58
54
/* Exported Variables */
59
55
/**********************************************************************/
60
56
GtkWidget *app = NULL;
57
static gint window_width = 0, window_height = 0;
58
static gboolean window_is_fullscreen = FALSE, window_is_maximized = FALSE;
61
59
GtkWidget *game_area = NULL;
62
60
GamesScores *highscores;
63
61
GSettings *settings;
120
118
/* Function Definitions */
121
119
/**********************************************************************/
122
window_configure_event_cb (GtkWidget *widget, GdkEventConfigure *event)
124
if (!window_is_maximized && !window_is_fullscreen)
126
window_width = event->width;
127
window_height = event->height;
134
window_state_event_cb (GtkWidget *widget, GdkEventWindowState *event)
136
if ((event->changed_mask & GDK_WINDOW_STATE_MAXIMIZED) != 0)
137
window_is_maximized = (event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED) != 0;
138
if ((event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN) != 0)
139
window_is_fullscreen = (event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN) != 0;
146
g_settings_set_int (settings, "window-width", window_width);
147
g_settings_set_int (settings, "window-height", window_height);
148
g_settings_set_boolean (settings, "window-is-maximized", window_is_maximized);
149
g_settings_set_boolean (settings, "window-is-fullscreen", window_is_fullscreen);
125
155
* @argc: number of arguments
183
213
app = gtk_window_new (GTK_WINDOW_TOPLEVEL);
184
214
gtk_window_set_title (GTK_WINDOW (app), _("Robots"));
186
gtk_window_set_default_size (GTK_WINDOW (app), DEFAULT_WIDTH, DEFAULT_HEIGHT);
187
games_settings_bind_window_state ("/org/gnome/gnobots2/", GTK_WINDOW (app));
215
g_signal_connect (GTK_WINDOW (app), "configure-event", G_CALLBACK (window_configure_event_cb), NULL);
216
g_signal_connect (GTK_WINDOW (app), "window-state-event", G_CALLBACK (window_state_event_cb), NULL);
217
gtk_window_set_default_size (GTK_WINDOW (app), g_settings_get_int (settings, "window-width"), g_settings_get_int (settings, "window-height"));
218
if (g_settings_get_boolean (settings, "window-is-fullscreen"))
219
gtk_window_fullscreen (GTK_WINDOW (app));
220
if (g_settings_get_boolean (settings, "window-is-maximized"))
221
gtk_window_maximize (GTK_WINDOW (app));
189
223
g_signal_connect (G_OBJECT (app), "delete_event",
190
G_CALLBACK (quit_game), NULL);
224
G_CALLBACK (quit_game), NULL);
192
226
statusbar = gnobots_statusbar_new ();
193
227
ui_manager = gtk_ui_manager_new ();