src/news_gui.cpp
changeset 6283 f9d97d412b0f
parent 6279 fdae79bd4dc7
child 6302 b7d7554b7418
equal deleted inserted replaced
6282:861f9a1108bb 6283:f9d97d412b0f
   353 	WDF_DEF_WIDGET,
   353 	WDF_DEF_WIDGET,
   354 	_news_type0_widgets,
   354 	_news_type0_widgets,
   355 	NewsWindowProc
   355 	NewsWindowProc
   356 };
   356 };
   357 
   357 
   358 static const SoundFx _news_sounds[] = {
   358 static const SoundFx _news_sounds[NT_END] = {
   359 	SND_1D_APPLAUSE,
   359 	SND_1D_APPLAUSE,
   360 	SND_1D_APPLAUSE,
   360 	SND_1D_APPLAUSE,
       
   361 	SND_BEGIN,
   361 	SND_BEGIN,
   362 	SND_BEGIN,
   362 	SND_BEGIN,
   363 	SND_BEGIN,
   363 	SND_BEGIN,
   364 	SND_BEGIN,
   364 	SND_BEGIN,
   365 	SND_BEGIN,
   365 	SND_1E_OOOOH,
   366 	SND_1E_OOOOH,
   366 	SND_BEGIN,
   367 	SND_BEGIN,
   367 	SND_BEGIN,
   368 	SND_BEGIN,
   368 	SND_BEGIN
   369 	SND_BEGIN,
       
   370 };
       
   371 
       
   372 const char *_news_display_name[NT_END] = {
       
   373 	"arrival_player",
       
   374 	"arrival_other",
       
   375 	"accident",
       
   376 	"company_info",
       
   377 	"openclose",
       
   378 	"economy",
       
   379 	"advice",
       
   380 	"new_vehicles",
       
   381 	"acceptance",
       
   382 	"subsidies",
       
   383 	"general",
   369 };
   384 };
   370 
   385 
   371 /** Get the value of an item of the news-display settings. This is
   386 /** Get the value of an item of the news-display settings. This is
   372  * a little tricky since on/off/summary must use 2 bits to store the value
   387  * a little tricky since on/off/summary must use 2 bits to store the value
   373  * @param item the item whose value is requested
   388  * @param item the item whose value is requested
   759 				 * which will give centered position */
   774 				 * which will give centered position */
   760 				DrawStringCentered(51, y + 1, message_opt[val & 0x3], 0x10);
   775 				DrawStringCentered(51, y + 1, message_opt[val & 0x3], 0x10);
   761 			}
   776 			}
   762 
   777 
   763 			/* Draw the general bottom button string as well */
   778 			/* Draw the general bottom button string as well */
   764 			DrawString(8, y + 10, message_opt[WP(w, def_d).data_1], 0x10);
   779 			DrawStringCentered(51, y + 10, message_opt[WP(w, def_d).data_1], 0x10);
   765 		} break;
   780 		} break;
   766 
   781 
   767 		case WE_CLICK:
   782 		case WE_CLICK:
   768 			switch (e->we.click.widget) {
   783 			switch (e->we.click.widget) {
   769 				case WIDGET_NEWSOPT_BTN_SUMMARY:
   784 				case WIDGET_NEWSOPT_BTN_SUMMARY:
   794 			int i;
   809 			int i;
   795 
   810 
   796 			WP(w, def_d).data_1 = e->we.dropdown.index;
   811 			WP(w, def_d).data_1 = e->we.dropdown.index;
   797 
   812 
   798 			for (i = 0; i < NT_END; i++) {
   813 			for (i = 0; i < NT_END; i++) {
       
   814 				SetMessageButtonStates(w, e->we.dropdown.index, i);
   799 				SetNewsDisplayValue(i, e->we.dropdown.index);
   815 				SetNewsDisplayValue(i, e->we.dropdown.index);
   800 				SetMessageButtonStates(w, e->we.dropdown.index, i);
       
   801 			}
   816 			}
   802 			SetWindowDirty(w);
   817 			SetWindowDirty(w);
   803 		} break;
   818 		} break;
   804 	}
   819 	}
   805 }
   820 }
   806 
   821 
   807 static const Widget _message_options_widgets[] = {
   822 static const Widget _message_options_widgets[] = {
   808 {   WWT_CLOSEBOX,   RESIZE_NONE,    13,     0,   10,     0,    13, STR_00C5,                              STR_018B_CLOSE_WINDOW},
   823 {   WWT_CLOSEBOX,   RESIZE_NONE,    13,     0,   10,     0,    13, STR_00C5,                              STR_018B_CLOSE_WINDOW},
   809 {    WWT_CAPTION,   RESIZE_NONE,    13,    11,  409,     0,    13, STR_0204_MESSAGE_OPTIONS,              STR_018C_WINDOW_TITLE_DRAG_THIS},
   824 {    WWT_CAPTION,   RESIZE_NONE,    13,    11,  409,     0,    13, STR_0204_MESSAGE_OPTIONS,              STR_018C_WINDOW_TITLE_DRAG_THIS},
   810 {      WWT_PANEL,   RESIZE_NONE,    13,     0,  409,    14,   184, 0x0,                                   STR_NULL},
   825 {      WWT_PANEL,   RESIZE_NONE,    13,     0,  409,    14,   196, 0x0,                                   STR_NULL},
   811 
   826 
   812 /* Text at the top of the main panel, in black */
   827 /* Text at the top of the main panel, in black */
   813 {      WWT_LABEL,   RESIZE_NONE,    13,     0,  409,    13,    26, STR_0205_MESSAGE_TYPES,                STR_NULL},
   828 {      WWT_LABEL,   RESIZE_NONE,    13,     0,  409,    13,    26, STR_0205_MESSAGE_TYPES,                STR_NULL},
   814 
   829 
   815 /* General drop down and sound button */
   830 /* General drop down and sound button */
   816 {      WWT_PANEL,   RESIZE_NONE,     3,     4,   86,   154,   165, 0x0,                                   STR_NULL},
   831 {      WWT_PANEL,   RESIZE_NONE,     3,     4,   86,   166,   177, 0x0,                                   STR_NULL},
   817 {    WWT_TEXTBTN,   RESIZE_NONE,     3,    87,   98,   154,   165, STR_0225,                              STR_NULL},
   832 {    WWT_TEXTBTN,   RESIZE_NONE,     3,    87,   98,   166,   177, STR_0225,                              STR_NULL},
   818 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,   155,   167, STR_MESSAGES_ALL,                      STR_NULL},
   833 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,   167,   179, STR_MESSAGES_ALL,                      STR_NULL},
   819 
   834 
   820 {  WWT_TEXTBTN_2,   RESIZE_NONE,     3,     4,   98,   166,   177, STR_02DB_OFF,                          STR_NULL},
   835 {  WWT_TEXTBTN_2,   RESIZE_NONE,     3,     4,   98,   178,   189, STR_02DB_OFF,                          STR_NULL},
   821 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,   167,   179, STR_MESSAGE_SOUND,                     STR_NULL},
   836 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,   179,   191, STR_MESSAGE_SOUND,                     STR_NULL},
   822 
   837 
   823 /* Each four group is composed of the buttons [<] [..] [>] and the descriptor of the setting */
   838 /* Each four group is composed of the buttons [<] [..] [>] and the descriptor of the setting */
   824 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,    26,    37, SPR_ARROW_LEFT,                        STR_HSCROLL_BAR_SCROLLS_LIST},
   839 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,    26,    37, SPR_ARROW_LEFT,                        STR_HSCROLL_BAR_SCROLLS_LIST},
   825 { WWT_PUSHTXTBTN,   RESIZE_NONE,     3,    13,   89,    26,    37, STR_EMPTY,                             STR_NULL},
   840 { WWT_PUSHTXTBTN,   RESIZE_NONE,     3,    13,   89,    26,    37, STR_EMPTY,                             STR_NULL},
   826 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,    26,    37, SPR_ARROW_RIGHT,                       STR_HSCROLL_BAR_SCROLLS_LIST},
   841 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,    26,    37, SPR_ARROW_RIGHT,                       STR_HSCROLL_BAR_SCROLLS_LIST},
   842 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,    63,    75, STR_0209_COMPANY_INFORMATION,          STR_NULL},
   857 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,    63,    75, STR_0209_COMPANY_INFORMATION,          STR_NULL},
   843 
   858 
   844 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,    74,    85, SPR_ARROW_LEFT,                        STR_HSCROLL_BAR_SCROLLS_LIST},
   859 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,    74,    85, SPR_ARROW_LEFT,                        STR_HSCROLL_BAR_SCROLLS_LIST},
   845 { WWT_PUSHTXTBTN,   RESIZE_NONE,     3,    13,   89,    74,    85, STR_EMPTY,                             STR_NULL},
   860 { WWT_PUSHTXTBTN,   RESIZE_NONE,     3,    13,   89,    74,    85, STR_EMPTY,                             STR_NULL},
   846 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,    74,    85, SPR_ARROW_RIGHT,                       STR_HSCROLL_BAR_SCROLLS_LIST},
   861 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,    74,    85, SPR_ARROW_RIGHT,                       STR_HSCROLL_BAR_SCROLLS_LIST},
   847 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,    75,    87, STR_020A_ECONOMY_CHANGES,              STR_NULL},
   862 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,    75,    87, STR_NEWS_OPEN_CLOSE,                   STR_NULL},
   848 
   863 
   849 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,    86,    97, SPR_ARROW_LEFT,                        STR_HSCROLL_BAR_SCROLLS_LIST},
   864 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,    86,    97, SPR_ARROW_LEFT,                        STR_HSCROLL_BAR_SCROLLS_LIST},
   850 { WWT_PUSHTXTBTN,   RESIZE_NONE,     3,    13,   89,    86,    97, STR_EMPTY,                             STR_NULL},
   865 { WWT_PUSHTXTBTN,   RESIZE_NONE,     3,    13,   89,    86,    97, STR_EMPTY,                             STR_NULL},
   851 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,    86,    97, SPR_ARROW_RIGHT,                       STR_HSCROLL_BAR_SCROLLS_LIST},
   866 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,    86,    97, SPR_ARROW_RIGHT,                       STR_HSCROLL_BAR_SCROLLS_LIST},
   852 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,    87,    99, STR_020B_ADVICE_INFORMATION_ON_PLAYER, STR_NULL},
   867 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,    87,    99, STR_020A_ECONOMY_CHANGES,              STR_NULL},
   853 
   868 
   854 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,    98,   109, SPR_ARROW_LEFT,                        STR_HSCROLL_BAR_SCROLLS_LIST},
   869 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,    98,   109, SPR_ARROW_LEFT,                        STR_HSCROLL_BAR_SCROLLS_LIST},
   855 { WWT_PUSHTXTBTN,   RESIZE_NONE,     3,    13,   89,    98,   109, STR_EMPTY,                             STR_NULL},
   870 { WWT_PUSHTXTBTN,   RESIZE_NONE,     3,    13,   89,    98,   109, STR_EMPTY,                             STR_NULL},
   856 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,    98,   109, SPR_ARROW_RIGHT,                       STR_HSCROLL_BAR_SCROLLS_LIST},
   871 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,    98,   109, SPR_ARROW_RIGHT,                       STR_HSCROLL_BAR_SCROLLS_LIST},
   857 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,    99,   111, STR_020C_NEW_VEHICLES,                 STR_NULL},
   872 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,    99,   111, STR_020B_ADVICE_INFORMATION_ON_PLAYER, STR_NULL},
   858 
   873 
   859 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,   110,   121, SPR_ARROW_LEFT,                        STR_HSCROLL_BAR_SCROLLS_LIST},
   874 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,   110,   121, SPR_ARROW_LEFT,                        STR_HSCROLL_BAR_SCROLLS_LIST},
   860 { WWT_PUSHTXTBTN,   RESIZE_NONE,     3,    13,   89,   110,   121, STR_EMPTY,                             STR_NULL},
   875 { WWT_PUSHTXTBTN,   RESIZE_NONE,     3,    13,   89,   110,   121, STR_EMPTY,                             STR_NULL},
   861 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,   110,   121, SPR_ARROW_RIGHT,                       STR_HSCROLL_BAR_SCROLLS_LIST},
   876 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,   110,   121, SPR_ARROW_RIGHT,                       STR_HSCROLL_BAR_SCROLLS_LIST},
   862 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,   111,   123, STR_020D_CHANGES_OF_CARGO_ACCEPTANCE,  STR_NULL},
   877 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,   111,   123, STR_020C_NEW_VEHICLES,                 STR_NULL},
   863 
   878 
   864 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,   122,   133, SPR_ARROW_LEFT,                        STR_HSCROLL_BAR_SCROLLS_LIST},
   879 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,   122,   133, SPR_ARROW_LEFT,                        STR_HSCROLL_BAR_SCROLLS_LIST},
   865 { WWT_PUSHTXTBTN,   RESIZE_NONE,     3,    13,   89,   122,   133, STR_EMPTY,                             STR_NULL},
   880 { WWT_PUSHTXTBTN,   RESIZE_NONE,     3,    13,   89,   122,   133, STR_EMPTY,                             STR_NULL},
   866 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,   122,   133, SPR_ARROW_RIGHT,                       STR_HSCROLL_BAR_SCROLLS_LIST},
   881 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,   122,   133, SPR_ARROW_RIGHT,                       STR_HSCROLL_BAR_SCROLLS_LIST},
   867 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,   123,   135, STR_020E_SUBSIDIES,                    STR_NULL},
   882 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,   123,   135, STR_020D_CHANGES_OF_CARGO_ACCEPTANCE,  STR_NULL},
   868 
   883 
   869 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,   134,   145, SPR_ARROW_LEFT,                        STR_HSCROLL_BAR_SCROLLS_LIST},
   884 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,   134,   145, SPR_ARROW_LEFT,                        STR_HSCROLL_BAR_SCROLLS_LIST},
   870 { WWT_PUSHTXTBTN,   RESIZE_NONE,     3,    13,   89,   134,   145, STR_EMPTY,                             STR_NULL},
   885 { WWT_PUSHTXTBTN,   RESIZE_NONE,     3,    13,   89,   134,   145, STR_EMPTY,                             STR_NULL},
   871 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,   134,   145, SPR_ARROW_RIGHT,                       STR_HSCROLL_BAR_SCROLLS_LIST},
   886 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,   134,   145, SPR_ARROW_RIGHT,                       STR_HSCROLL_BAR_SCROLLS_LIST},
   872 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,   135,   147, STR_020F_GENERAL_INFORMATION,          STR_NULL},
   887 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,   135,   147, STR_020E_SUBSIDIES,                    STR_NULL},
       
   888 
       
   889 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,     4,   12,   146,   157, SPR_ARROW_LEFT,                        STR_HSCROLL_BAR_SCROLLS_LIST},
       
   890 { WWT_PUSHTXTBTN,   RESIZE_NONE,     3,    13,   89,   146,   157, STR_EMPTY,                             STR_NULL},
       
   891 { WWT_PUSHIMGBTN,   RESIZE_NONE,     3,    90,   98,   146,   157, SPR_ARROW_RIGHT,                       STR_HSCROLL_BAR_SCROLLS_LIST},
       
   892 {       WWT_TEXT,   RESIZE_NONE,     3,    103, 409,   147,   159, STR_020F_GENERAL_INFORMATION,          STR_NULL},
   873 
   893 
   874 {   WIDGETS_END},
   894 {   WIDGETS_END},
   875 };
   895 };
   876 
   896 
   877 static const WindowDesc _message_options_desc = {
   897 static const WindowDesc _message_options_desc = {
   878 	270, 22, 410, 185,
   898 	270, 22, 410, 197,
   879 	WC_GAME_OPTIONS, WC_NONE,
   899 	WC_GAME_OPTIONS, WC_NONE,
   880 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
   900 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
   881 	_message_options_widgets,
   901 	_message_options_widgets,
   882 	MessageOptionsWndProc
   902 	MessageOptionsWndProc
   883 };
   903 };