From e60d3cb0ceb5da2f647df3d4878717673fdc1373 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=28=C2=B4=E3=83=BB=CF=89=E3=83=BB=EF=BD=80=29?= Date: Mon, 24 May 2021 01:43:16 +0900 Subject: [PATCH] CHG: If the menu bar is at the bottom, the status bar will be at the top --- display/simview.cc | 2 +- gui/simwin.cc | 16 ++++++++-------- simticker.cc | 8 ++++---- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/display/simview.cc b/display/simview.cc index b9cd38be37..7131face7a 100644 --- a/display/simview.cc +++ b/display/simview.cc @@ -112,7 +112,7 @@ void main_view_t::display(bool force_dirty) // rect default break; case MENU_BOTTOM: - clip_rr = scr_rect(0, 0, disp_width, disp_height - env_t::iconsize.h + 1); + clip_rr = scr_rect(0, win_get_statusbar_height() + (!ticker::empty() ? TICKER_HEIGHT : 0), disp_width, disp_height - env_t::iconsize.h + 1); break; case MENU_LEFT: clip_rr = scr_rect(env_t::iconsize.w, 0, disp_width - env_t::iconsize.w, disp_height); diff --git a/gui/simwin.cc b/gui/simwin.cc index 50191c2aee..959d950ac1 100644 --- a/gui/simwin.cc +++ b/gui/simwin.cc @@ -680,7 +680,7 @@ void win_clamp_xywh_position( scr_coord_val &x, scr_coord_val &y, scr_size wh, b // rect default break; case MENU_BOTTOM: - clip_rr = scr_rect(0, 0, display_get_width(), display_get_height() - add_menuheight - win_get_statusbar_height()); + clip_rr = scr_rect(0, win_get_statusbar_height(), display_get_width(), display_get_height() - add_menuheight); break; case MENU_LEFT: clip_rr = scr_rect(add_menuwidth, 0, display_get_width() - add_menuwidth, display_get_height() - win_get_statusbar_height()); @@ -1438,7 +1438,7 @@ bool check_pos_win(event_t *ev) } // click in main menu? - scr_coord menuoffset((env_t::menupos == MENU_RIGHT) * (display_get_width() - env_t::iconsize.w), (env_t::menupos == MENU_BOTTOM) * (display_get_height() - env_t::iconsize.h - win_get_statusbar_height()) - D_TITLEBAR_HEIGHT); + scr_coord menuoffset((env_t::menupos == MENU_RIGHT) * (display_get_width() - env_t::iconsize.w), (env_t::menupos == MENU_BOTTOM) * (display_get_height() - env_t::iconsize.h) - D_TITLEBAR_HEIGHT); if (!tool_t::toolbar_tool.empty() && tool_t::toolbar_tool[0]->get_tool_selector() && tool_t::toolbar_tool[0]->get_tool_selector()->is_hit(x-menuoffset.x, y-menuoffset.y) && @@ -1697,9 +1697,9 @@ void win_display_flush(double konto) // rect default break; case MENU_BOTTOM: - menu_pos = scr_coord(0, disp_height - env_t::iconsize.h - win_get_statusbar_height()); + menu_pos = scr_coord(0, disp_height - env_t::iconsize.h); // size default - clip_rr = scr_rect(0, 0, disp_width, disp_height - env_t::iconsize.h); + clip_rr = scr_rect(0, win_get_statusbar_height(), disp_width, disp_height - env_t::iconsize.h); break; case MENU_LEFT: // pos default (see above) @@ -1811,17 +1811,17 @@ void win_display_flush(double konto) // statusbar background scr_coord_val const status_bar_height = win_get_statusbar_height(); - scr_coord_val const status_bar_y = disp_height - status_bar_height; + scr_coord_val const status_bar_y = env_t::menupos == MENU_BOTTOM ? 0 : disp_height - status_bar_height; scr_coord_val const status_bar_text_y = status_bar_y + (status_bar_height - LINESPACE) / 2; scr_coord_val const status_bar_icon_y = status_bar_y + (status_bar_height - 15) / 2; display_set_clip_wh(0, 0, disp_width, disp_height); - display_fillbox_wh_rgb(0, status_bar_y - 1, disp_width, 1, SYSCOL_STATUSBAR_DIVIDER, false); + display_fillbox_wh_rgb(0, env_t::menupos == MENU_BOTTOM ? status_bar_height : status_bar_y-1, disp_width, 1, SYSCOL_STATUSBAR_DIVIDER, false); display_fillbox_wh_rgb(0, status_bar_y, disp_width, status_bar_height, SYSCOL_STATUSBAR_BACKGROUND, false); - bool tooltip_check = get_mouse_y() > status_bar_y; + bool tooltip_check = env_t::menupos == MENU_BOTTOM ? get_mouse_y() < status_bar_height : get_mouse_y() > status_bar_y; if( tooltip_check ) { tooltip_xpos = get_mouse_x(); - tooltip_ypos = status_bar_y-10-TICKER_HEIGHT*show_ticker; + tooltip_ypos = env_t::menupos == MENU_BOTTOM ? status_bar_height+10+TICKER_HEIGHT*show_ticker : status_bar_y-10-TICKER_HEIGHT*show_ticker; } // season color diff --git a/simticker.cc b/simticker.cc index 0512499ddc..21f5e10af9 100644 --- a/simticker.cc +++ b/simticker.cc @@ -141,7 +141,7 @@ void ticker::update() void ticker::draw() { - const int start_y = display_get_height() - TICKER_HEIGHT - win_get_statusbar_height() - (env_t::menupos == MENU_BOTTOM) * env_t::iconsize.h; + const int start_y = env_t::menupos == MENU_BOTTOM ? win_get_statusbar_height() : display_get_height() - TICKER_HEIGHT - win_get_statusbar_height(); if (redraw_all) { redraw(); return; @@ -150,7 +150,7 @@ void ticker::draw() // ticker not visible // mark everything at the bottom as dirty to clear also tooltips and compass - mark_rect_dirty_wc(0, start_y - 128, display_get_width(), start_y + 128 + TICKER_HEIGHT); + mark_rect_dirty_wc(0, env_t::menupos == MENU_BOTTOM ? 0 : start_y - 128, display_get_width(), start_y + 128 + TICKER_HEIGHT); return; } @@ -180,11 +180,11 @@ void ticker::redraw() { set_redraw_all(false); dx_since_last_draw = 0; - const int start_y = display_get_height() - TICKER_HEIGHT - win_get_statusbar_height() - ((env_t::menupos == MENU_BOTTOM) * env_t::iconsize.h); + const int start_y = env_t::menupos == MENU_BOTTOM ? win_get_statusbar_height() : display_get_height() - TICKER_HEIGHT - win_get_statusbar_height(); if (list.empty()) { // mark everything at the bottom as dirty to clear also tooltips and compass - mark_rect_dirty_wc(0, start_y-128, display_get_width(), start_y + 128 +TICKER_HEIGHT); + mark_rect_dirty_wc(0, env_t::menupos == MENU_BOTTOM ? 0 : start_y - 128, display_get_width(), start_y + 128 + TICKER_HEIGHT); return; }