network_gui.c
branchcustombridgeheads
changeset 5623 ef2a8a524a95
parent 5352 82a50c80b0c4
--- a/network_gui.c	Mon Jan 01 16:10:01 2007 +0000
+++ b/network_gui.c	Mon Jan 01 16:31:13 2007 +0000
@@ -424,8 +424,7 @@
 				STR_NETWORK_ENTER_IP,
 				31 | 0x1000,  // maximum number of characters OR
 				250, // characters up to this width pixels, whichever is satisfied first
-				w->window_class,
-				w->window_number, CS_ALPHANUMERAL);
+				w, CS_ALPHANUMERAL);
 		} break;
 		case 13: /* Start server */
 			ShowNetworkStartServerWindow();
@@ -648,8 +647,7 @@
 			break;
 
 		case 4: /* Set password button */
-			ShowQueryString(BindCString(_network_server_password),
-				STR_NETWORK_SET_PASSWORD, 20, 250, w->window_class, w->window_number, CS_ALPHANUMERAL);
+			ShowQueryString(BindCString(_network_server_password), STR_NETWORK_SET_PASSWORD, 20, 250, w, CS_ALPHANUMERAL);
 			break;
 
 		case 5: { /* Select map */
@@ -1381,7 +1379,7 @@
 		case NETWORK_GAME_PASSWORD:    caption = STR_NETWORK_NEED_GAME_PASSWORD_CAPTION; break;
 		case NETWORK_COMPANY_PASSWORD: caption = STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION; break;
 	}
-	ShowQueryString(STR_EMPTY, caption, 20, 180, WC_NETWORK_STATUS_WINDOW, 0, CS_ALPHANUMERAL);
+	ShowQueryString(STR_EMPTY, caption, 20, 180, FindWindowById(WC_NETWORK_STATUS_WINDOW, 0), CS_ALPHANUMERAL);
 }
 
 
@@ -1418,16 +1416,16 @@
 
 	case WE_CLICK:
 		switch (e->we.click.widget) {
-			case 0: /* Close 'X' */
-			case 3: /* Disconnect button */
+			case 2: /* Disconnect button */
 				NetworkDisconnect();
-				DeleteWindowById(WC_NETWORK_STATUS_WINDOW, 0);
+				DeleteWindow(w);
 				SwitchMode(SM_MENU);
 				ShowNetworkGameWindow();
 				break;
 		}
 		break;
 
+		/* If the server asks for a password, we need to fill it in */
 		case WE_ON_EDIT_TEXT_CANCEL:
 			NetworkDisconnect();
 			ShowNetworkGameWindow();
@@ -1440,8 +1438,7 @@
 }
 
 static const Widget _network_join_status_window_widget[] = {
-{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,               STR_018B_CLOSE_WINDOW},
-{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   249,     0,    13, STR_NETWORK_CONNECTING, STR_018C_WINDOW_TITLE_DRAG_THIS},
+{    WWT_CAPTION,   RESIZE_NONE,    14,     0,   249,     0,    13, STR_NETWORK_CONNECTING, STR_018C_WINDOW_TITLE_DRAG_THIS},
 {      WWT_PANEL,   RESIZE_NONE,    14,     0,   249,    14,    84, 0x0,                    STR_NULL},
 { WWT_PUSHTXTBTN,   RESIZE_NONE,   BTC,    75,   175,    69,    80, STR_NETWORK_DISCONNECT, STR_NULL},
 {   WIDGETS_END},
@@ -1450,26 +1447,18 @@
 static const WindowDesc _network_join_status_window_desc = {
 	WDP_CENTER, WDP_CENTER, 250, 85,
 	WC_NETWORK_STATUS_WINDOW, 0,
-	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET,
+	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_MODAL,
 	_network_join_status_window_widget,
 	NetworkJoinStatusWindowWndProc,
 };
 
 void ShowJoinStatusWindow(void)
 {
+	Window *w;
 	DeleteWindowById(WC_NETWORK_STATUS_WINDOW, 0);
-	_network_join_status = NETWORK_JOIN_STATUS_CONNECTING;
-	AllocateWindowDesc(&_network_join_status_window_desc);
-}
-
-void ShowJoinStatusWindowAfterJoin(void)
-{
-	/* This is a special instant of ShowJoinStatusWindow, because
-	    it is opened after the map is loaded, but the client maybe is not
-	    done registering itself to the server */
-	DeleteWindowById(WC_NETWORK_STATUS_WINDOW, 0);
-	_network_join_status = NETWORK_JOIN_STATUS_REGISTERING;
-	AllocateWindowDesc(&_network_join_status_window_desc);
+	w = AllocateWindowDesc(&_network_join_status_window_desc);
+	/* Parent the status window to the lobby */
+	if (w != NULL) w->parent = FindWindowById(WC_NETWORK_WINDOW, 0);
 }
 
 static void SendChat(const char *buf, DestType type, byte dest)
@@ -1709,10 +1698,8 @@
 	w = AllocateWindowDesc(&_chat_window_desc);
 
 	LowerWindowWidget(w, 2);
-	WP(w,querystr_d).caption = GB(type, 0, 8) | (dest << 8); // Misuse of caption
-	WP(w,querystr_d).wnd_class = WC_MAIN_TOOLBAR;
-	WP(w,querystr_d).wnd_num = 0;
-	WP(w,querystr_d).afilter = CS_ALPHANUMERAL;
+	WP(w, querystr_d).caption = GB(type, 0, 8) | (dest << 8); // Misuse of caption
+	WP(w, querystr_d).afilter = CS_ALPHANUMERAL;
 	InitializeTextBuffer(&WP(w, querystr_d).text, _edit_str_buf, lengthof(_edit_str_buf), 0);
 }