diff options
-rw-r--r-- | src/net_gui.c | 29 | ||||
-rw-r--r-- | textscreen/examples/guitest.c | 3 | ||||
-rw-r--r-- | textscreen/txt_strut.c | 5 | ||||
-rw-r--r-- | textscreen/txt_strut.h | 5 | ||||
-rw-r--r-- | textscreen/txt_table.c | 2 |
5 files changed, 28 insertions, 16 deletions
diff --git a/src/net_gui.c b/src/net_gui.c index 21000aa2..fa64b9d8 100644 --- a/src/net_gui.c +++ b/src/net_gui.c @@ -1,7 +1,7 @@ // Emacs style mode select -*- C++ -*- //----------------------------------------------------------------------------- // -// $Id: net_gui.c 539 2006-05-29 19:22:51Z fraggle $ +// $Id: net_gui.c 541 2006-05-29 19:54:11Z fraggle $ // // Copyright(C) 2005 Simon Howard // @@ -98,6 +98,7 @@ #include "txt_table.h" #include "txt_window.h" +static txt_window_t *window; static txt_label_t *player_labels[MAXPLAYERS]; static txt_label_t *ip_labels[MAXPLAYERS]; @@ -115,10 +116,8 @@ static void StartGame(TXT_UNCAST_ARG(widget), void *unused) static void BuildGUI(void) { char buf[50]; - txt_window_t *window; txt_table_t *table; txt_window_action_t *cancel; - txt_window_action_t *startgame; int i; TXT_SetDesktopTitle(PACKAGE_STRING); @@ -126,13 +125,12 @@ static void BuildGUI(void) window = TXT_NewWindow("Waiting for game start..."); table = TXT_NewTable(3); TXT_AddWidget(window, table); - TXT_AddWidget(window, NULL); // Add spacers TXT_AddWidget(table, NULL); - TXT_AddWidget(table, TXT_NewStrut(25)); - TXT_AddWidget(table, TXT_NewStrut(17)); + TXT_AddWidget(table, TXT_NewStrut(25, 1)); + TXT_AddWidget(table, TXT_NewStrut(17, 1)); // Player labels @@ -146,18 +144,17 @@ static void BuildGUI(void) TXT_AddWidget(table, ip_labels[i]); } + TXT_AddWidget(window, TXT_NewStrut(0, 1)); + cancel = TXT_NewWindowAction(KEY_ESCAPE, "Cancel"); TXT_SignalConnect(cancel, "pressed", EscapePressed, NULL); - startgame = TXT_NewWindowAction(' ', "Start game"); - TXT_SignalConnect(startgame, "pressed", StartGame, NULL); TXT_SetWindowAction(window, TXT_HORIZ_LEFT, cancel); - TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, startgame); } static void UpdateGUI(void) { - char buf[50]; + txt_window_action_t *startgame; int i; for (i=0; i<MAXPLAYERS; ++i) @@ -183,6 +180,18 @@ static void UpdateGUI(void) TXT_SetLabel(ip_labels[i], ""); } } + + if (net_client_controller) + { + startgame = TXT_NewWindowAction(' ', "Start game"); + TXT_SignalConnect(startgame, "pressed", StartGame, NULL); + } + else + { + startgame = NULL; + } + + TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, startgame); } void NET_WaitForStart(void) diff --git a/textscreen/examples/guitest.c b/textscreen/examples/guitest.c index 23df5282..73334b47 100644 --- a/textscreen/examples/guitest.c +++ b/textscreen/examples/guitest.c @@ -13,6 +13,7 @@ #include "txt_label.h" #include "txt_radiobutton.h" #include "txt_separator.h" +#include "txt_strut.h" #include "txt_table.h" #include "txt_window.h" @@ -104,7 +105,7 @@ void SetupWindow(void) TXT_AddWidget(table, TXT_NewButton(buf)); } - TXT_AddWidget(window, TXT_NewLabel("")); + TXT_AddWidget(window, TXT_NewStrut(0, 1)); value_label = TXT_NewLabel(""); TXT_AddWidget(window, value_label); diff --git a/textscreen/txt_strut.c b/textscreen/txt_strut.c index 47e80130..0d827b5a 100644 --- a/textscreen/txt_strut.c +++ b/textscreen/txt_strut.c @@ -16,7 +16,7 @@ static void TXT_StrutSizeCalc(TXT_UNCAST_ARG(strut), int *w, int *h) // Minimum width is the string length + two spaces for padding *w = strut->width; - *h = 0; + *h = strut->height; } static void TXT_StrutDrawer(TXT_UNCAST_ARG(strut), int w, int selected) @@ -40,7 +40,7 @@ txt_widget_class_t txt_strut_class = TXT_StrutDestructor, }; -txt_strut_t *TXT_NewStrut(int width) +txt_strut_t *TXT_NewStrut(int width, int height) { txt_strut_t *strut; @@ -49,6 +49,7 @@ txt_strut_t *TXT_NewStrut(int width) TXT_InitWidget(strut, &txt_strut_class); strut->widget.selectable = 0; strut->width = width; + strut->height = height; return strut; } diff --git a/textscreen/txt_strut.h b/textscreen/txt_strut.h index 5bf7b7e7..3f45b8db 100644 --- a/textscreen/txt_strut.h +++ b/textscreen/txt_strut.h @@ -30,7 +30,7 @@ typedef struct txt_strut_s txt_strut_t; #include "txt_widget.h" // -// A strut is used to force a table to a minimum width. It is not +// A strut is used to force a table to a minimum width/height. It is not // visible but it takes up space. // @@ -38,9 +38,10 @@ struct txt_strut_s { txt_widget_t widget; int width; + int height; }; -txt_strut_t *TXT_NewStrut(int width); +txt_strut_t *TXT_NewStrut(int width, int height); #endif /* #ifndef TXT_STRUT_H */ diff --git a/textscreen/txt_table.c b/textscreen/txt_table.c index b2055825..20c74b53 100644 --- a/textscreen/txt_table.c +++ b/textscreen/txt_table.c @@ -92,7 +92,7 @@ static void CalcRowColSizes(txt_table_t *table, // Empty spacer if widget is NULL ww = 0; - wh = 1; + wh = 0; } if (wh > row_heights[y]) |