add recent messages to toolbar, closes #1423

This commit is contained in:
IntelOrca 2015-07-22 18:13:35 +01:00
parent 18e492b898
commit 1f2502c8c2
8 changed files with 48 additions and 10 deletions

View File

@ -3801,3 +3801,4 @@ STR_5464 :General
STR_5465 :Climate
STR_5466 :Staff
STR_5467 :ALT +
STR_5468 :Show recent messages button on toolbar

BIN
resources/g2/58.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 B

View File

@ -190,7 +190,8 @@ config_property_definition _interfaceDefinitions[] = {
{ offsetof(interface_configuration, toolbar_show_finances), "toolbar_show_finances", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL },
{ offsetof(interface_configuration, toolbar_show_research), "toolbar_show_research", CONFIG_VALUE_TYPE_BOOLEAN, true, NULL },
{ offsetof(interface_configuration, toolbar_show_cheats), "toolbar_show_cheats", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL },
{ offsetof(interface_configuration, select_by_track_type), "select_by_track_type", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL },
{ offsetof(interface_configuration, toolbar_show_news), "toolbar_show_news", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL },
{ offsetof(interface_configuration, select_by_track_type), "select_by_track_type", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL },
{ offsetof(interface_configuration, console_small_font), "console_small_font", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL },
{ offsetof(interface_configuration, current_theme_preset), "current_theme", CONFIG_VALUE_TYPE_STRING, { .value_string = "*RCT2" }, NULL },
{ offsetof(interface_configuration, current_title_sequence_preset), "current_title_sequence", CONFIG_VALUE_TYPE_STRING, { .value_string = "*OPENRCT2" },NULL },

View File

@ -163,6 +163,7 @@ typedef struct {
uint8 toolbar_show_finances;
uint8 toolbar_show_research;
uint8 toolbar_show_cheats;
uint8 toolbar_show_news;
uint8 select_by_track_type;
uint8 console_small_font;
utf8string current_theme_preset;

View File

@ -1796,6 +1796,7 @@ enum {
STR_CHEAT_STAFF_GROUP = 5466,
STR_ALT_PLUS = 5467,
STR_SHOW_RECENT_MESSAGES_ON_TOOLBAR = 5468,
// Have to include resource strings (from scenarios and objects) for the time being now that language is partially working
STR_COUNT = 32768

View File

@ -387,6 +387,8 @@ enum {
SPR_G2_TITLE_SKIP = SPR_G2_BEGIN + 32,
SPR_G2_SANDBOX = SPR_G2_BEGIN + 33,
SPR_G2_TAB_NEWS = SPR_G2_BEGIN + 58,
};
#endif

View File

@ -117,6 +117,7 @@ enum WINDOW_OPTIONS_WIDGET_IDX {
WIDX_TOOLBAR_SHOW_FINANCES,
WIDX_TOOLBAR_SHOW_RESEARCH,
WIDX_TOOLBAR_SHOW_CHEATS,
WIDX_TOOLBAR_SHOW_NEWS,
// Misc
WIDX_REAL_NAME_CHECKBOX = WIDX_PAGE_START,
@ -206,12 +207,13 @@ static rct_widget window_options_audio_widgets[] = {
static rct_widget window_options_controls_widgets[] = {
MAIN_OPTIONS_WIDGETS,
{ WWT_CHECKBOX, 2, 10, 299, 54, 65, STR_SCREEN_EDGE_SCROLLING, STR_SCREEN_EDGE_SCROLLING_TIP },
{ WWT_CHECKBOX, 2, 10, 299, 69, 80, STR_INVERT_RIGHT_MOUSE_DRAG,STR_NONE },
{ WWT_DROPDOWN_BUTTON, 1, 26, 185, 84, 95, STR_HOTKEY, STR_HOTKEY_TIP },
{ WWT_CHECKBOX, 2, 10, 299, 99, 110, 5120, STR_NONE },
{ WWT_CHECKBOX, 2, 10, 299, 114, 125, 5121, STR_NONE },
{ WWT_CHECKBOX, 2, 10, 299, 129, 140, 5147, STR_NONE },
{ WWT_CHECKBOX, 2, 10, 299, 54, 65, STR_SCREEN_EDGE_SCROLLING, STR_SCREEN_EDGE_SCROLLING_TIP },
{ WWT_CHECKBOX, 2, 10, 299, 69, 80, STR_INVERT_RIGHT_MOUSE_DRAG, STR_NONE },
{ WWT_DROPDOWN_BUTTON, 1, 26, 185, 84, 95, STR_HOTKEY, STR_HOTKEY_TIP },
{ WWT_CHECKBOX, 2, 10, 299, 99, 110, 5120, STR_NONE },
{ WWT_CHECKBOX, 2, 10, 299, 114, 125, 5121, STR_NONE },
{ WWT_CHECKBOX, 2, 10, 299, 129, 140, 5147, STR_NONE },
{ WWT_CHECKBOX, 2, 10, 299, 144, 155, STR_SHOW_RECENT_MESSAGES_ON_TOOLBAR, STR_NONE },
{ WIDGETS_END },
};
@ -363,7 +365,8 @@ static uint32 window_options_page_enabled_widgets[] = {
(1 << WIDX_HOTKEY_DROPDOWN) |
(1 << WIDX_TOOLBAR_SHOW_FINANCES) |
(1 << WIDX_TOOLBAR_SHOW_RESEARCH) |
(1 << WIDX_TOOLBAR_SHOW_CHEATS),
(1 << WIDX_TOOLBAR_SHOW_CHEATS) |
(1 << WIDX_TOOLBAR_SHOW_NEWS),
MAIN_OPTIONS_ENABLED_WIDGETS |
(1 << WIDX_REAL_NAME_CHECKBOX) |
@ -526,6 +529,12 @@ static void window_options_mouseup(rct_window *w, int widgetIndex)
window_invalidate(w);
window_invalidate_by_class(WC_TOP_TOOLBAR);
break;
case WIDX_TOOLBAR_SHOW_NEWS:
gConfigInterface.toolbar_show_news ^= 1;
config_save_default();
window_invalidate(w);
window_invalidate_by_class(WC_TOP_TOOLBAR);
break;
case WIDX_INVERT_DRAG:
gConfigGeneral.invert_viewport_drag ^= 1;
config_save_default();
@ -1157,12 +1166,14 @@ static void window_options_invalidate(rct_window *w)
widget_set_checkbox_value(w, WIDX_TOOLBAR_SHOW_FINANCES, gConfigInterface.toolbar_show_finances);
widget_set_checkbox_value(w, WIDX_TOOLBAR_SHOW_RESEARCH, gConfigInterface.toolbar_show_research);
widget_set_checkbox_value(w, WIDX_TOOLBAR_SHOW_CHEATS, gConfigInterface.toolbar_show_cheats);
widget_set_checkbox_value(w, WIDX_TOOLBAR_SHOW_NEWS, gConfigInterface.toolbar_show_news);
window_options_controls_widgets[WIDX_SCREEN_EDGE_SCROLLING].type = WWT_CHECKBOX;
window_options_controls_widgets[WIDX_HOTKEY_DROPDOWN].type = WWT_DROPDOWN_BUTTON;
window_options_controls_widgets[WIDX_TOOLBAR_SHOW_FINANCES].type = WWT_CHECKBOX;
window_options_controls_widgets[WIDX_TOOLBAR_SHOW_RESEARCH].type = WWT_CHECKBOX;
window_options_controls_widgets[WIDX_TOOLBAR_SHOW_CHEATS].type = WWT_CHECKBOX;
window_options_controls_widgets[WIDX_TOOLBAR_SHOW_NEWS].type = WWT_CHECKBOX;
break;
case WINDOW_OPTIONS_PAGE_MISC:

View File

@ -64,6 +64,7 @@ enum {
WIDX_DEBUG,
WIDX_FINANCES,
WIDX_RESEARCH,
WIDX_NEWS,
WIDX_SEPARATOR,
};
@ -130,6 +131,7 @@ static const int left_aligned_widgets_order[] = {
// from right to left
static const int right_aligned_widgets_order[] = {
WIDX_NEWS,
WIDX_GUESTS,
WIDX_STAFF,
WIDX_PARK,
@ -144,7 +146,7 @@ static const int right_aligned_widgets_order[] = {
WIDX_SCENERY,
WIDX_WATER,
WIDX_LAND,
WIDX_CLEAR_SCENERY,
WIDX_CLEAR_SCENERY
};
#pragma endregion
@ -174,6 +176,7 @@ static rct_widget window_top_toolbar_widgets[] = {
{ WWT_TRNBTN, 0, 0x001E, 0x003B, 0, 27, 0x20000000 | 0x15F9, STR_DEBUG_TIP }, // Debug
{ WWT_TRNBTN, 3, 0x001E, 0x003B, 0, 27, 0x20000000 | 0x15F9, 3235 }, // Finances
{ WWT_TRNBTN, 3, 0x001E, 0x003B, 0, 27, 0x20000000 | 0x15F9, 2275 }, // Research
{ WWT_TRNBTN, 3, 0x001E, 0x003B, 0, 27, 0x20000000 | 0x15F9, 2522 }, // News
{ WWT_EMPTY, 0, 0, 10-1, 0, 0, 0xFFFFFFFF, STR_NONE }, // Artificial widget separator
{ WIDGETS_END },
@ -319,6 +322,9 @@ static void window_top_toolbar_mouseup(rct_window *w, int widgetIndex)
case WIDX_RESEARCH:
window_research_open();
break;
case WIDX_NEWS:
window_news_open();
break;
}
}
@ -589,6 +595,7 @@ static void window_top_toolbar_invalidate(rct_window *w)
window_top_toolbar_widgets[WIDX_FASTFORWARD].type = WWT_TRNBTN;
window_top_toolbar_widgets[WIDX_CHEATS].type = WWT_TRNBTN;
window_top_toolbar_widgets[WIDX_DEBUG].type = gConfigGeneral.debugging_tools ? WWT_TRNBTN : WWT_EMPTY;
window_top_toolbar_widgets[WIDX_NEWS].type = WWT_TRNBTN;
if (RCT2_GLOBAL(RCT2_ADDRESS_SCREEN_FLAGS, uint8) & (SCREEN_FLAGS_SCENARIO_EDITOR | SCREEN_FLAGS_TRACK_DESIGNER | SCREEN_FLAGS_TRACK_MANAGER)) {
window_top_toolbar_widgets[WIDX_PAUSE].type = WWT_EMPTY;
@ -599,6 +606,7 @@ static void window_top_toolbar_invalidate(rct_window *w)
window_top_toolbar_widgets[WIDX_FINANCES].type = WWT_EMPTY;
window_top_toolbar_widgets[WIDX_RESEARCH].type = WWT_EMPTY;
window_top_toolbar_widgets[WIDX_CHEATS].type = WWT_EMPTY;
window_top_toolbar_widgets[WIDX_NEWS].type = WWT_EMPTY;
if (g_editor_step != EDITOR_STEP_LANDSCAPE_EDITOR) {
window_top_toolbar_widgets[WIDX_MAP].type = WWT_EMPTY;
@ -629,10 +637,13 @@ static void window_top_toolbar_invalidate(rct_window *w)
if (!gConfigInterface.toolbar_show_cheats)
window_top_toolbar_widgets[WIDX_CHEATS].type = WWT_EMPTY;
if (!gConfigInterface.toolbar_show_news)
window_top_toolbar_widgets[WIDX_NEWS].type = WWT_EMPTY;
}
enabledWidgets = 0;
for (i = WIDX_PAUSE; i <= WIDX_RESEARCH; i++)
for (i = WIDX_PAUSE; i <= WIDX_NEWS; i++)
if (window_top_toolbar_widgets[i].type != WWT_EMPTY)
enabledWidgets |= (1 << i);
w->enabled_widgets = enabledWidgets;
@ -785,6 +796,16 @@ static void window_top_toolbar_paint(rct_window *w, rct_drawpixelinfo *dpi)
imgId = SPR_FINANCE;
gfx_draw_sprite(dpi, imgId, x, y, 0);
}
// Draw news button
if (window_top_toolbar_widgets[WIDX_NEWS].type != WWT_EMPTY) {
x = w->x + window_top_toolbar_widgets[WIDX_NEWS].left + 3;
y = w->y + window_top_toolbar_widgets[WIDX_NEWS].top + 0;
if (widget_is_pressed(w, WIDX_NEWS))
y++;
imgId = SPR_G2_TAB_NEWS;
gfx_draw_sprite(dpi, imgId, x, y, 0);
}
}
/* rct2: 0x006E3158 */