handle (display) the relay's new error message

This commit is contained in:
Eric House 2013-01-19 15:18:36 -08:00
parent 65e9789c3f
commit 0ef3549a4e
4 changed files with 17 additions and 3 deletions

View file

@ -26,6 +26,7 @@
#include "gtkboard.h" #include "gtkboard.h"
#include "linuxmain.h" #include "linuxmain.h"
#include "relaycon.h" #include "relaycon.h"
#include "gtkask.h"
static void onNewData( GtkAppGlobals* apg, sqlite3_int64 rowid, static void onNewData( GtkAppGlobals* apg, sqlite3_int64 rowid,
XP_Bool isNew ); XP_Bool isNew );
@ -443,6 +444,13 @@ gtkDevIDChanged( void* closure, const XP_UCHAR* devID )
} }
} }
static void
gtkErrorMsgRcvd( void* closure, const XP_UCHAR* msg )
{
GtkAppGlobals* apg = (GtkAppGlobals*)closure;
(void)gtkask( apg->window, msg, GTK_BUTTONS_OK );
}
void void
onGameSaved( void* closure, sqlite3_int64 rowid, onGameSaved( void* closure, sqlite3_int64 rowid,
XP_Bool firstTime ) XP_Bool firstTime )
@ -515,6 +523,7 @@ gtkmain( LaunchParams* params )
.msgReceived = gtkGotBuf, .msgReceived = gtkGotBuf,
.msgNoticeReceived = gtkNoticeRcvd, .msgNoticeReceived = gtkNoticeRcvd,
.devIDChanged = gtkDevIDChanged, .devIDChanged = gtkDevIDChanged,
.msgErrorMsg = gtkErrorMsgRcvd,
}; };
relaycon_init( params, &procs, &apg, relaycon_init( params, &procs, &apg,
@ -522,7 +531,7 @@ gtkmain( LaunchParams* params )
params->connInfo.relay.defaultSendPort ); params->connInfo.relay.defaultSendPort );
sendRelayReg( &apg ); sendRelayReg( &apg );
(void)makeGamesWindow( &apg ); apg.window = makeGamesWindow( &apg );
gtk_main(); gtk_main();
closeGamesDB( apg.pDb ); closeGamesDB( apg.pDb );

View file

@ -1,6 +1,6 @@
/* -*-mode: C; fill-column: 78; c-basic-offset: 4; -*- */ /* -*- compile-command: "make MEMDEBUG=TRUE -j3"; -*- */
/* /*
* Copyright 2001-2007 by Eric House (xwords@eehouse.org). All rights * Copyright 2001-2013 by Eric House (xwords@eehouse.org). All rights
* reserved. * reserved.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
@ -238,6 +238,7 @@ typedef struct _GtkAppGlobals {
LaunchParams* params; LaunchParams* params;
GSList* globalsList; GSList* globalsList;
GList* sources; GList* sources;
GtkWidget* window;
GtkWidget* listWidget; GtkWidget* listWidget;
GtkWidget* openButton; GtkWidget* openButton;
GtkWidget* deleteButton; GtkWidget* deleteButton;

View file

@ -189,6 +189,9 @@ relaycon_receive( void* closure, int socket )
(*storage->procs.msgNoticeReceived)( storage->procsClosure, ntohl(gameToken) ); (*storage->procs.msgNoticeReceived)( storage->procsClosure, ntohl(gameToken) );
break; break;
} }
case XWPDEV_MSGRSP:
(*storage->procs.msgErrorMsg)( storage->procsClosure, (XP_UCHAR*)ptr );
break;
default: default:
XP_LOGF( "%s: Unexpected cmd %d", __func__, cmd ); XP_LOGF( "%s: Unexpected cmd %d", __func__, cmd );
XP_ASSERT( 0 ); XP_ASSERT( 0 );

View file

@ -26,6 +26,7 @@ typedef struct _Procs {
void (*msgReceived)( void* closure, XP_U8* buf, XP_U16 len ); void (*msgReceived)( void* closure, XP_U8* buf, XP_U16 len );
void (*msgNoticeReceived)( void* closure, XP_U32 gameToken ); void (*msgNoticeReceived)( void* closure, XP_U32 gameToken );
void (*devIDChanged)( void* closure, const XP_UCHAR* devID ); void (*devIDChanged)( void* closure, const XP_UCHAR* devID );
void (*msgErrorMsg)( void* closure, const XP_UCHAR* msg );
} RelayConnProcs; } RelayConnProcs;
void relaycon_init( LaunchParams* params, const RelayConnProcs* procs, void relaycon_init( LaunchParams* params, const RelayConnProcs* procs,