mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-02-05 20:45:49 +01:00
gtk: save games list window size and position
This commit is contained in:
parent
25723bbb0f
commit
012b015f82
3 changed files with 37 additions and 0 deletions
|
@ -66,6 +66,7 @@ void deleteGame( sqlite3* pDb, sqlite3_int64 rowid );
|
||||||
#define KEY_LDEVID "LDEVID"
|
#define KEY_LDEVID "LDEVID"
|
||||||
#define KEY_SMSPHONE "SMSPHONE"
|
#define KEY_SMSPHONE "SMSPHONE"
|
||||||
#define KEY_SMSPORT "SMSPORT"
|
#define KEY_SMSPORT "SMSPORT"
|
||||||
|
#define KEY_WIN_LOC "WIN_LOC"
|
||||||
|
|
||||||
void db_store( sqlite3* dbp, const gchar* key, const gchar* value );
|
void db_store( sqlite3* dbp, const gchar* key, const gchar* value );
|
||||||
XP_Bool db_fetch( sqlite3* dbp, const gchar* key, gchar* buf, gint buflen );
|
XP_Bool db_fetch( sqlite3* dbp, const gchar* key, gchar* buf, gint buflen );
|
||||||
|
|
|
@ -418,6 +418,13 @@ handle_destroy( GtkWidget* XP_UNUSED(widget), gpointer data )
|
||||||
// freeGlobals( globals );
|
// freeGlobals( globals );
|
||||||
}
|
}
|
||||||
g_slist_free( apg->globalsList );
|
g_slist_free( apg->globalsList );
|
||||||
|
|
||||||
|
gchar buf[64];
|
||||||
|
sprintf( buf, "%d:%d:%d:%d", apg->lastConfigure.x,
|
||||||
|
apg->lastConfigure.y, apg->lastConfigure.width,
|
||||||
|
apg->lastConfigure.height );
|
||||||
|
db_store( apg->params->pDb, KEY_WIN_LOC, buf );
|
||||||
|
|
||||||
gtk_main_quit();
|
gtk_main_quit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -428,6 +435,16 @@ handle_quit_button( GtkWidget* XP_UNUSED(widget), gpointer data )
|
||||||
handle_destroy( NULL, apg );
|
handle_destroy( NULL, apg );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
window_configured( GtkWidget* XP_UNUSED(widget),
|
||||||
|
GdkEventConfigure* event, GtkAppGlobals* apg )
|
||||||
|
{
|
||||||
|
/* XP_LOGF( "%s(x=%d, y=%d, width=%d, height=%d)", __func__, */
|
||||||
|
/* event->x, event->y, event->width, event->height ); */
|
||||||
|
apg->lastConfigure = *event;
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
static GtkWidget*
|
static GtkWidget*
|
||||||
addButton( gchar* label, GtkWidget* parent, GCallback proc, void* closure )
|
addButton( gchar* label, GtkWidget* parent, GCallback proc, void* closure )
|
||||||
{
|
{
|
||||||
|
@ -462,6 +479,19 @@ setWindowTitle( GtkAppGlobals* apg )
|
||||||
gtk_window_set_title( GTK_WINDOW(window), title );
|
gtk_window_set_title( GTK_WINDOW(window), title );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
trySetWinConfig( GtkAppGlobals* apg )
|
||||||
|
{
|
||||||
|
gchar buf[64];
|
||||||
|
if ( db_fetch( apg->params->pDb, KEY_WIN_LOC, buf, sizeof(buf)) ) {
|
||||||
|
int xx, yy, width, height;
|
||||||
|
sscanf( buf, "%d:%d:%d:%d", &xx, &yy, &width, &height );
|
||||||
|
|
||||||
|
gtk_window_resize( GTK_WINDOW(apg->window), width, height );
|
||||||
|
gtk_window_move (GTK_WINDOW(apg->window), xx, yy );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
makeGamesWindow( GtkAppGlobals* apg )
|
makeGamesWindow( GtkAppGlobals* apg )
|
||||||
{
|
{
|
||||||
|
@ -471,9 +501,13 @@ makeGamesWindow( GtkAppGlobals* apg )
|
||||||
apg->window = window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
|
apg->window = window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
|
||||||
g_signal_connect( G_OBJECT(window), "destroy",
|
g_signal_connect( G_OBJECT(window), "destroy",
|
||||||
G_CALLBACK(handle_destroy), apg );
|
G_CALLBACK(handle_destroy), apg );
|
||||||
|
g_signal_connect( window, "configure_event",
|
||||||
|
G_CALLBACK(window_configured), apg );
|
||||||
|
|
||||||
setWindowTitle( apg );
|
setWindowTitle( apg );
|
||||||
|
|
||||||
|
trySetWinConfig( apg );
|
||||||
|
|
||||||
GtkWidget* swin = gtk_scrolled_window_new( NULL, NULL );
|
GtkWidget* swin = gtk_scrolled_window_new( NULL, NULL );
|
||||||
gtk_container_add( GTK_CONTAINER(window), swin );
|
gtk_container_add( GTK_CONTAINER(window), swin );
|
||||||
gtk_widget_show( swin );
|
gtk_widget_show( swin );
|
||||||
|
|
|
@ -249,6 +249,8 @@ typedef struct _GtkAppGlobals {
|
||||||
GtkWidget* openButton;
|
GtkWidget* openButton;
|
||||||
GtkWidget* rematchButton;
|
GtkWidget* rematchButton;
|
||||||
GtkWidget* deleteButton;
|
GtkWidget* deleteButton;
|
||||||
|
/* save window position */
|
||||||
|
GdkEventConfigure lastConfigure;
|
||||||
} GtkAppGlobals;
|
} GtkAppGlobals;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue