Mercurial > hg > openttd
comparison src/network/network_gui.cpp @ 11462:043d6b6bf604 draft
(svn r15820) -Codechange: Some windows using nested widgets
author | alberth <alberth@openttd.org> |
---|---|
date | Sun, 22 Mar 2009 21:16:57 +0000 |
parents | 9bfb4cdd8e22 |
children | 56ddb993f77d |
comparison
equal
deleted
inserted
replaced
11461:0ec1833138f7 | 11462:043d6b6bf604 |
---|---|
305 } | 305 } |
306 | 306 |
307 public: | 307 public: |
308 NetworkGameWindow(const WindowDesc *desc) : QueryStringBaseWindow(NETWORK_NAME_LENGTH, desc) | 308 NetworkGameWindow(const WindowDesc *desc) : QueryStringBaseWindow(NETWORK_NAME_LENGTH, desc) |
309 { | 309 { |
310 this->widget[NGWW_CLIENTS].left = this->widget[NGWW_NAME].right + 1; | |
311 this->widget[NGWW_MAPSIZE].left = this->widget[NGWW_NAME].right + 1; | |
312 this->widget[NGWW_DATE].left = this->widget[NGWW_NAME].right + 1; | |
313 this->widget[NGWW_YEARS].left = this->widget[NGWW_NAME].right + 1; | |
314 | |
315 this->widget[NGWW_CLIENTS].right = this->widget[NGWW_INFO].left - 1; | |
316 this->widget[NGWW_MAPSIZE].right = this->widget[NGWW_INFO].left - 1; | |
317 this->widget[NGWW_DATE].right = this->widget[NGWW_INFO].left - 1 - 20; | |
318 this->widget[NGWW_YEARS].right = this->widget[NGWW_INFO].left - 1 - 20; | |
319 | |
320 this->widget[NGWW_NAME].display_flags &= ~RESIZE_LRTB; | |
321 this->widget[NGWW_CLIENTS].display_flags &= ~RESIZE_LRTB; | |
322 this->widget[NGWW_MAPSIZE].display_flags &= ~RESIZE_LRTB; | |
323 this->widget[NGWW_DATE].display_flags &= ~RESIZE_LRTB; | |
324 this->widget[NGWW_YEARS].display_flags &= ~RESIZE_LRTB; | |
325 | |
310 ttd_strlcpy(this->edit_str_buf, _settings_client.network.client_name, this->edit_str_size); | 326 ttd_strlcpy(this->edit_str_buf, _settings_client.network.client_name, this->edit_str_size); |
311 this->afilter = CS_ALPHANUMERAL; | 327 this->afilter = CS_ALPHANUMERAL; |
312 InitializeTextBuffer(&this->text, this->edit_str_buf, this->edit_str_size, 120); | 328 InitializeTextBuffer(&this->text, this->edit_str_buf, this->edit_str_size, 120); |
313 this->SetFocusedWidget(NGWW_CLIENT); | 329 this->SetFocusedWidget(NGWW_CLIENT); |
314 | 330 |
811 { WWT_RESIZEBOX, RESIZE_LRTB, COLOUR_LIGHT_BLUE, 438, 449, 252, 263, 0x0, STR_RESIZE_BUTTON }, // NGWW_RESIZE | 827 { WWT_RESIZEBOX, RESIZE_LRTB, COLOUR_LIGHT_BLUE, 438, 449, 252, 263, 0x0, STR_RESIZE_BUTTON }, // NGWW_RESIZE |
812 | 828 |
813 { WIDGETS_END}, | 829 { WIDGETS_END}, |
814 }; | 830 }; |
815 | 831 |
832 /* Generates incorrect display_flags for widgets NGWW_NAME, and incorrect | |
833 * display_flags and/or left/right side for the overlapping widgets | |
834 * NGWW_CLIENTS through NGWW_YEARS. | |
835 */ | |
836 NWidgetPart _nested_network_game_widgets[] = { | |
837 /* TOP */ | |
838 NWidget(NWID_HORIZONTAL), | |
839 NWidget(WWT_CLOSEBOX, COLOUR_LIGHT_BLUE, NGWW_CLOSE), | |
840 NWidget(WWT_CAPTION, COLOUR_LIGHT_BLUE, NGWW_CAPTION), SetMinimalSize(439, 14), SetDataTip(STR_NETWORK_MULTIPLAYER, STR_NULL), // XXX Add default caption tooltip! | |
841 EndContainer(), | |
842 NWidget(WWT_PANEL, COLOUR_LIGHT_BLUE, NGWW_MAIN), | |
843 NWidget(NWID_SPACER), SetMinimalSize(0, 8), SetResize(1, 0), | |
844 NWidget(NWID_HORIZONTAL), | |
845 NWidget(NWID_SPACER), SetMinimalSize(9, 0), | |
846 NWidget(NWID_VERTICAL), | |
847 NWidget(NWID_SPACER), SetMinimalSize(0,1), // Text is one pixel further down | |
848 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NGWW_CONNECTION), SetMinimalSize(77, 13), SetDataTip(STR_NETWORK_CONNECTION, STR_NULL), | |
849 EndContainer(), | |
850 NWidget(NWID_SPACER), SetMinimalSize(4, 0), | |
851 NWidget(NWID_VERTICAL), | |
852 NWidget(WWT_DROPDOWNIN, COLOUR_LIGHT_BLUE, NGWW_CONN_BTN), SetMinimalSize(92, 12), | |
853 SetDataTip(STR_NETWORK_LAN_INTERNET_COMBO, STR_NETWORK_CONNECTION_TIP), | |
854 NWidget(NWID_SPACER), SetMinimalSize(0,2), // Text ends two pixels further down | |
855 EndContainer(), | |
856 NWidget(NWID_SPACER), SetMinimalSize(108, 0), SetFill(1,0), SetResize(1,0), | |
857 NWidget(NWID_VERTICAL), | |
858 NWidget(WWT_EDITBOX, COLOUR_LIGHT_BLUE, NGWW_CLIENT), SetMinimalSize(151, 12), | |
859 SetDataTip(STR_NETWORK_PLAYER_NAME_OSKTITLE, STR_NETWORK_ENTER_NAME_TIP), | |
860 NWidget(NWID_SPACER), SetMinimalSize(0,2), // Text ends two pixels further down | |
861 EndContainer(), | |
862 NWidget(NWID_SPACER), SetMinimalSize(9, 0), | |
863 EndContainer(), | |
864 NWidget(NWID_SPACER), SetMinimalSize(0, 6), SetResize(1, 0), | |
865 NWidget(NWID_HORIZONTAL), | |
866 /* LEFT SIDE */ | |
867 NWidget(NWID_SPACER), SetMinimalSize(10, 0), SetResize(0, 1), | |
868 NWidget(NWID_VERTICAL), | |
869 NWidget(NWID_HORIZONTAL), | |
870 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_NAME), SetMinimalSize(61, 12), SetResize(1, 0), | |
871 SetDataTip(STR_NETWORK_GAME_NAME, STR_NETWORK_GAME_NAME_TIP), | |
872 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_CLIENTS), SetMinimalSize(20, 12), | |
873 SetDataTip(STR_NETWORK_CLIENTS_CAPTION, STR_NETWORK_CLIENTS_CAPTION_TIP), | |
874 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_MAPSIZE), SetMinimalSize(20, 12), | |
875 SetDataTip(STR_NETWORK_MAP_SIZE_CAPTION, STR_NETWORK_MAP_SIZE_CAPTION_TIP), | |
876 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_DATE), SetMinimalSize(20, 12), SetDataTip(STR_NETWORK_DATE_CAPTION, STR_NETWORK_DATE_CAPTION_TIP), | |
877 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_YEARS), SetMinimalSize(20, 12), SetDataTip(STR_NETWORK_YEARS_CAPTION, STR_NETWORK_YEARS_CAPTION_TIP), | |
878 NWidget(NWID_SPACER), SetMinimalSize(0, 0), SetFill(0, 0), SetResize(1, 0), | |
879 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_INFO), SetMinimalSize(40, 12), SetDataTip(STR_EMPTY, STR_NETWORK_INFO_ICONS_TIP), | |
880 EndContainer(), | |
881 NWidget(WWT_MATRIX, COLOUR_LIGHT_BLUE, NGWW_MATRIX), SetMinimalSize(181, 155), SetResize(1,1), | |
882 SetDataTip((11 << 8) + 1, STR_NETWORK_CLICK_GAME_TO_SELECT), | |
883 NWidget(NWID_SPACER), SetMinimalSize(0, 2), SetResize(1, 0), | |
884 NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, NGWW_LASTJOINED_LABEL), SetMinimalSize(181, 12), SetFill(1,0), | |
885 SetDataTip(STR_NETWORK_LAST_JOINED_SERVER, STR_NULL), SetResize(1, 0), | |
886 NWidget(WWT_PANEL, COLOUR_LIGHT_BLUE, NGWW_LASTJOINED), SetMinimalSize(181, 14), SetFill(1,0), SetResize(1, 0), | |
887 SetDataTip(0x0, STR_NETWORK_CLICK_TO_SELECT_LAST), | |
888 EndContainer(), | |
889 EndContainer(), | |
890 NWidget(NWID_VERTICAL), | |
891 NWidget(WWT_SCROLLBAR, COLOUR_LIGHT_BLUE, NGWW_SCROLLBAR), SetMinimalSize(12, 165), | |
892 NWidget(NWID_SPACER), SetMinimalSize(0,28), | |
893 EndContainer(), | |
894 NWidget(NWID_SPACER), SetMinimalSize(7, 0), SetResize(0, 1), | |
895 /* RIGHT SIDE */ | |
896 NWidget(WWT_PANEL, COLOUR_LIGHT_BLUE, NGWW_DETAILS), | |
897 NWidget(NWID_SPACER), SetMinimalSize(0, 155), SetResize(0, 1), | |
898 NWidget(NWID_HORIZONTAL), | |
899 NWidget(NWID_SPACER), SetMinimalSize(120, 0), | |
900 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_NEWGRF), SetMinimalSize(106, 12), SetDataTip(STR_NEWGRF_SETTINGS_BUTTON, STR_NULL), | |
901 NWidget(NWID_SPACER), SetMinimalSize(5, 0), | |
902 EndContainer(), | |
903 NWidget(NWID_SPACER), SetMinimalSize(0, 6), | |
904 NWidget(NWID_HORIZONTAL), | |
905 NWidget(NWID_SPACER), SetMinimalSize(5, 0), | |
906 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_JOIN), SetMinimalSize(101, 12), SetDataTip(STR_NETWORK_JOIN_GAME, STR_NULL), | |
907 NWidget(NWID_SPACER), SetMinimalSize(14, 0), | |
908 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_REFRESH), SetMinimalSize(106, 12), SetDataTip(STR_NETWORK_REFRESH, STR_NETWORK_REFRESH_TIP), | |
909 NWidget(NWID_SPACER), SetMinimalSize(5, 0), | |
910 EndContainer(), | |
911 NWidget(NWID_SPACER), SetMinimalSize(0, 10), | |
912 EndContainer(), | |
913 NWidget(NWID_SPACER), SetMinimalSize(9, 0), SetResize(0, 1), | |
914 EndContainer(), | |
915 NWidget(NWID_SPACER), SetMinimalSize(0, 9), SetResize(1, 0), | |
916 /* BOTTOM */ | |
917 NWidget(NWID_HORIZONTAL), | |
918 NWidget(NWID_SPACER), SetMinimalSize(10, 0), | |
919 NWidget(NWID_VERTICAL), | |
920 NWidget(NWID_HORIZONTAL), | |
921 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_FIND), SetMinimalSize(101, 12), SetDataTip(STR_NETWORK_FIND_SERVER, STR_NETWORK_FIND_SERVER_TIP), | |
922 NWidget(NWID_SPACER), SetMinimalSize(7, 0), | |
923 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_ADD), SetMinimalSize(101, 12), SetDataTip(STR_NETWORK_ADD_SERVER, STR_NETWORK_ADD_SERVER_TIP), | |
924 NWidget(NWID_SPACER), SetMinimalSize(7, 0), | |
925 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_START), SetMinimalSize(101, 12), SetDataTip(STR_NETWORK_START_SERVER, STR_NETWORK_START_SERVER_TIP), | |
926 NWidget(NWID_SPACER), SetMinimalSize(7, 0), | |
927 NWidget(WWT_PUSHTXTBTN, COLOUR_WHITE, NGWW_CANCEL), SetMinimalSize(101, 12), SetDataTip(STR_012E_CANCEL, STR_NULL), | |
928 EndContainer(), | |
929 NWidget(NWID_SPACER), SetMinimalSize(0,6), | |
930 EndContainer(), | |
931 NWidget(NWID_SPACER), SetMinimalSize(3, 0), SetResize(1, 0), | |
932 NWidget(NWID_VERTICAL), | |
933 NWidget(NWID_SPACER), SetMinimalSize(0, 6), | |
934 NWidget(WWT_RESIZEBOX, COLOUR_LIGHT_BLUE, NGWW_RESIZE), | |
935 EndContainer(), | |
936 EndContainer(), | |
937 EndContainer(), | |
938 }; | |
939 | |
816 static const WindowDesc _network_game_window_desc( | 940 static const WindowDesc _network_game_window_desc( |
817 WDP_CENTER, WDP_CENTER, 450, 264, 780, 264, | 941 WDP_CENTER, WDP_CENTER, 450, 264, 780, 264, |
818 WC_NETWORK_WINDOW, WC_NONE, | 942 WC_NETWORK_WINDOW, WC_NONE, |
819 WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE, | 943 WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE, |
820 _network_game_window_widgets | 944 _network_game_window_widgets, _nested_network_game_widgets, lengthof(_nested_network_game_widgets) |
821 ); | 945 ); |
822 | 946 |
823 void ShowNetworkGameWindow() | 947 void ShowNetworkGameWindow() |
824 { | 948 { |
825 static bool first = true; | 949 static bool first = true; |