~ubuntu-branches/ubuntu/quantal/gnome-games/quantal-proposed

« back to all changes in this revision

Viewing changes to gnobots2/src/gnobots.c

  • Committer: Package Import Robot
  • Author(s): Robert Ancell, Jeremy Bicha, Robert Ancell
  • Date: 2012-11-06 10:56:12 UTC
  • mfrom: (170.1.5 quantal)
  • Revision ID: package-import@ubuntu.com-20121106105612-80ig0ec8l36noz2v
Tags: 1:3.6.0.2-0ubuntu1.1
[ Jeremy Bicha ]
* debian/patches/03_add-keywords.patch:
  - Dropped, already applied

[ Robert Ancell ]
* debian/scores/gnome-mahjongg.inst:
 - Fix name of score files (LP: #1074861)

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
#include <glib/gi18n.h>
30
30
#include <glib.h>
31
31
 
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>
37
34
 
38
35
#include "gbdefs.h"
39
36
#include "statusbar.h"
44
41
#include "properties.h"
45
42
#include "game.h"
46
43
#include "cursors.h"
 
44
#include "games-gridframe.h"
 
45
#include "games-stock.h"
47
46
 
48
47
/* Minimum sizes. */
49
48
#define MINIMUM_TILE_WIDTH   8
50
49
#define MINIMUM_TILE_HEIGHT  MINIMUM_TILE_WIDTH
51
50
 
52
 
#define DEFAULT_WIDTH 720
53
 
#define DEFAULT_HEIGHT 566
54
 
 
55
51
#define KEY_GEOMETRY_GROUP "geometry"
56
52
 
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
120
 
 
121
static gboolean
 
122
window_configure_event_cb (GtkWidget *widget, GdkEventConfigure *event)
 
123
{
 
124
  if (!window_is_maximized && !window_is_fullscreen)
 
125
  {
 
126
    window_width = event->width;
 
127
    window_height = event->height;
 
128
  }
 
129
  
 
130
  return FALSE;
 
131
}
 
132
 
 
133
static gboolean
 
134
window_state_event_cb (GtkWidget *widget, GdkEventWindowState *event)
 
135
{
 
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;
 
140
  return FALSE;
 
141
}
 
142
 
 
143
void
 
144
quit_game (void)
 
145
{
 
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);
 
150
  gtk_main_quit ();
 
151
}
 
152
 
123
153
/**
124
154
 * main
125
155
 * @argc: number of arguments
182
212
 
183
213
  app = gtk_window_new (GTK_WINDOW_TOPLEVEL);
184
214
  gtk_window_set_title (GTK_WINDOW (app), _("Robots"));
185
 
 
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));
188
222
 
189
223
  g_signal_connect (G_OBJECT (app), "delete_event",
190
 
                    G_CALLBACK (quit_game), NULL);
 
224
                   G_CALLBACK (quit_game), NULL);
191
225
 
192
226
  statusbar = gnobots_statusbar_new ();
193
227
  ui_manager = gtk_ui_manager_new ();