mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2024-12-27 09:58:45 +01:00
Display relay state on board, horizontal scoreboard mode only for now.
This commit is contained in:
parent
a5556469ef
commit
1da25307e5
5 changed files with 50 additions and 4 deletions
|
@ -73,7 +73,7 @@ gtkFillRect( GtkDrawCtx* dctx, const XP_Rect* rect, const GdkColor* color )
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gtkEraseRect( GtkDrawCtx* dctx, const XP_Rect* rect )
|
gtkEraseRect( const GtkDrawCtx* dctx, const XP_Rect* rect )
|
||||||
{
|
{
|
||||||
gdk_draw_rectangle( DRAW_WHAT(dctx),
|
gdk_draw_rectangle( DRAW_WHAT(dctx),
|
||||||
dctx->drawing_area->style->white_gc,
|
dctx->drawing_area->style->white_gc,
|
||||||
|
@ -1141,5 +1141,24 @@ gtkDrawCtxtMake( GtkWidget* drawing_area, GtkAppGlobals* globals )
|
||||||
return (DrawCtx*)dctx;
|
return (DrawCtx*)dctx;
|
||||||
} /* gtkDrawCtxtMake */
|
} /* gtkDrawCtxtMake */
|
||||||
|
|
||||||
|
void
|
||||||
|
draw_gtk_status( GtkDrawCtx* dctx, char ch )
|
||||||
|
{
|
||||||
|
GtkAppGlobals* globals = dctx->globals;
|
||||||
|
|
||||||
|
XP_Rect rect = {
|
||||||
|
.left = globals->netStatLeft,
|
||||||
|
.top = globals->netStatTop,
|
||||||
|
.width = GTK_NETSTAT_WIDTH,
|
||||||
|
.height = GTK_HOR_SCORE_HEIGHT
|
||||||
|
};
|
||||||
|
gtkEraseRect( dctx, &rect );
|
||||||
|
|
||||||
|
const XP_UCHAR str[2] = { ch, '\0' };
|
||||||
|
draw_string_at( dctx, NULL, str, GTKMIN_W_HT,
|
||||||
|
&rect, XP_GTK_JUST_CENTER,
|
||||||
|
&dctx->black, NULL );
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* PLATFORM_GTK */
|
#endif /* PLATFORM_GTK */
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* -*-mode: C; fill-column: 78; c-basic-offset: 4; compile-command: "make debug"; -*- */
|
/* -*-mode: C; fill-column: 78; c-basic-offset: 4; -*- */
|
||||||
/*
|
/*
|
||||||
* Copyright 1997 - 2000 by Eric House (xwords@eehouse.org). All rights reserved.
|
* Copyright 1997 - 2000 by Eric House (xwords@eehouse.org). All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -24,4 +24,6 @@
|
||||||
|
|
||||||
DrawCtx* gtkDrawCtxtMake( GtkWidget *widget, GtkAppGlobals* globals );
|
DrawCtx* gtkDrawCtxtMake( GtkWidget *widget, GtkAppGlobals* globals );
|
||||||
|
|
||||||
|
void draw_gtk_status( GtkDrawCtx* draw, char ch );
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -292,9 +292,13 @@ key_release_event( GtkWidget* XP_UNUSED(widget), GdkEventKey* event,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
relay_status_gtk( void* XP_UNUSED(closure), CommsRelayState state )
|
relay_status_gtk( void* closure, CommsRelayState state )
|
||||||
{
|
{
|
||||||
XP_LOGF( "%s got status: %s", __func__, CommsRelayState2Str(state) );
|
XP_LOGF( "%s got status: %s", __func__, CommsRelayState2Str(state) );
|
||||||
|
GtkAppGlobals* globals = (GtkAppGlobals*)closure;
|
||||||
|
globals->cGlobals.state = state;
|
||||||
|
globals->stateChar = 'A' + COMMS_RELAYSTATE_ALLCONNECTED - state;
|
||||||
|
draw_gtk_status( globals->draw, globals->stateChar );
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -436,6 +440,7 @@ configure_event( GtkWidget* widget, GdkEventConfigure* XP_UNUSED(event),
|
||||||
gint hscale, vscale;
|
gint hscale, vscale;
|
||||||
gint trayTop;
|
gint trayTop;
|
||||||
gint boardTop = 0;
|
gint boardTop = 0;
|
||||||
|
XP_U16 netStatWidth = 0;
|
||||||
|
|
||||||
if ( globals->draw == NULL ) {
|
if ( globals->draw == NULL ) {
|
||||||
createOrLoadObjects( globals );
|
createOrLoadObjects( globals );
|
||||||
|
@ -469,6 +474,10 @@ configure_event( GtkWidget* widget, GdkEventConfigure* XP_UNUSED(event),
|
||||||
board_setShowColors( globals->cGlobals.game.board, XP_TRUE );
|
board_setShowColors( globals->cGlobals.game.board, XP_TRUE );
|
||||||
globals->gridOn = XP_TRUE;
|
globals->gridOn = XP_TRUE;
|
||||||
|
|
||||||
|
if ( !!globals->cGlobals.game.comms ) {
|
||||||
|
netStatWidth = GTK_NETSTAT_WIDTH;
|
||||||
|
}
|
||||||
|
|
||||||
timerTop = GTK_TIMER_TOP;
|
timerTop = GTK_TIMER_TOP;
|
||||||
if ( globals->cGlobals.params->verticalScore ) {
|
if ( globals->cGlobals.params->verticalScore ) {
|
||||||
timerLeft = GTK_BOARD_LEFT + (hscale*GTK_NUM_COLS) + 1;
|
timerLeft = GTK_BOARD_LEFT + (hscale*GTK_NUM_COLS) + 1;
|
||||||
|
@ -480,7 +489,8 @@ configure_event( GtkWidget* widget, GdkEventConfigure* XP_UNUSED(event),
|
||||||
XP_FALSE );
|
XP_FALSE );
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
timerLeft = GTK_BOARD_LEFT + (hscale*GTK_NUM_COLS) - GTK_TIMER_WIDTH;
|
timerLeft = GTK_BOARD_LEFT + (hscale*GTK_NUM_COLS)
|
||||||
|
- GTK_TIMER_WIDTH - netStatWidth;
|
||||||
board_setScoreboardLoc( globals->cGlobals.game.board,
|
board_setScoreboardLoc( globals->cGlobals.game.board,
|
||||||
GTK_BOARD_LEFT, GTK_HOR_SCORE_TOP,
|
GTK_BOARD_LEFT, GTK_HOR_SCORE_TOP,
|
||||||
timerLeft-GTK_BOARD_LEFT,
|
timerLeft-GTK_BOARD_LEFT,
|
||||||
|
@ -489,6 +499,12 @@ configure_event( GtkWidget* widget, GdkEventConfigure* XP_UNUSED(event),
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Still pending: do this for the vertical score case */
|
||||||
|
if ( globals->cGlobals.game.comms ) {
|
||||||
|
globals->netStatLeft = timerLeft + GTK_TIMER_WIDTH;
|
||||||
|
globals->netStatTop = 0;
|
||||||
|
}
|
||||||
|
|
||||||
board_setTimerLoc( globals->cGlobals.game.board, timerLeft, timerTop,
|
board_setTimerLoc( globals->cGlobals.game.board, timerLeft, timerTop,
|
||||||
GTK_TIMER_WIDTH, GTK_HOR_SCORE_HEIGHT );
|
GTK_TIMER_WIDTH, GTK_HOR_SCORE_HEIGHT );
|
||||||
|
|
||||||
|
@ -524,6 +540,7 @@ expose_event( GtkWidget* XP_UNUSED(widget),
|
||||||
|
|
||||||
board_invalAll( globals->cGlobals.game.board );
|
board_invalAll( globals->cGlobals.game.board );
|
||||||
board_draw( globals->cGlobals.game.board );
|
board_draw( globals->cGlobals.game.board );
|
||||||
|
draw_gtk_status( globals->draw, globals->stateChar );
|
||||||
|
|
||||||
/* gdk_draw_pixmap( widget->window, */
|
/* gdk_draw_pixmap( widget->window, */
|
||||||
/* widget->style->fg_gc[GTK_WIDGET_STATE (widget)], */
|
/* widget->style->fg_gc[GTK_WIDGET_STATE (widget)], */
|
||||||
|
|
|
@ -92,6 +92,11 @@ typedef struct GtkAppGlobals {
|
||||||
|
|
||||||
guint timerSources[NUM_TIMERS_PLUS_ONE - 1];
|
guint timerSources[NUM_TIMERS_PLUS_ONE - 1];
|
||||||
|
|
||||||
|
#ifndef XWFEATURE_STANDALONE_ONLY
|
||||||
|
XP_U16 netStatLeft, netStatTop;
|
||||||
|
XP_UCHAR stateChar;
|
||||||
|
#endif
|
||||||
|
|
||||||
CommonPrefs cp;
|
CommonPrefs cp;
|
||||||
|
|
||||||
XP_Bool gridOn;
|
XP_Bool gridOn;
|
||||||
|
@ -128,6 +133,7 @@ int gtkmain( LaunchParams* params, int argc, char *argv[] );
|
||||||
#define GTK_VERT_SCORE_HEIGHT ((MIN_SCALE*MAX_COLS) - GTK_TIMER_HEIGHT - \
|
#define GTK_VERT_SCORE_HEIGHT ((MIN_SCALE*MAX_COLS) - GTK_TIMER_HEIGHT - \
|
||||||
GTK_TIMER_PAD)
|
GTK_TIMER_PAD)
|
||||||
#define GTK_TIMER_WIDTH 40
|
#define GTK_TIMER_WIDTH 40
|
||||||
|
#define GTK_NETSTAT_WIDTH 20
|
||||||
#define GTK_TIMER_TOP GTK_HOR_SCORE_TOP
|
#define GTK_TIMER_TOP GTK_HOR_SCORE_TOP
|
||||||
#define GTK_HOR_SCORE_WIDTH ((GTK_MIN_SCALE*MAX_COLS)-GTK_TIMER_PAD)
|
#define GTK_HOR_SCORE_WIDTH ((GTK_MIN_SCALE*MAX_COLS)-GTK_TIMER_PAD)
|
||||||
#define GTK_VERT_SCORE_WIDTH 40
|
#define GTK_VERT_SCORE_WIDTH 40
|
||||||
|
|
|
@ -135,6 +135,8 @@ struct CommonGlobals {
|
||||||
SocketChangedFunc socketChanged;
|
SocketChangedFunc socketChanged;
|
||||||
void* socketChangedClosure;
|
void* socketChangedClosure;
|
||||||
|
|
||||||
|
CommsRelayState state;
|
||||||
|
|
||||||
/* Allow listener sockets to be installed in either gtk or ncurses'
|
/* Allow listener sockets to be installed in either gtk or ncurses'
|
||||||
* polling mechanism.*/
|
* polling mechanism.*/
|
||||||
AddAcceptorFunc addAcceptor;
|
AddAcceptorFunc addAcceptor;
|
||||||
|
|
Loading…
Reference in a new issue