trunk/src/emu/ui/menu.cpp
r253177 | r253178 | |
1363 | 1363 | float ud_arrow_width = line_height * machine().render().ui_aspect(); |
1364 | 1364 | float gutter_width = 0.4f * line_height * machine().render().ui_aspect() * 1.3f; |
1365 | 1365 | mouse_x = -1, mouse_y = -1; |
1366 | | float right_panel_size = (mewui_globals::panels_status == HIDE_BOTH || mewui_globals::panels_status == HIDE_RIGHT_PANEL) ? 2.0f * UI_BOX_LR_BORDER : 0.3f; |
| 1366 | float right_panel_size = (ui_globals::panels_status == HIDE_BOTH || ui_globals::panels_status == HIDE_RIGHT_PANEL) ? 2.0f * UI_BOX_LR_BORDER : 0.3f; |
1367 | 1367 | float visible_width = 1.0f - 4.0f * UI_BOX_LR_BORDER; |
1368 | 1368 | float primary_left = (1.0f - visible_width) * 0.5f; |
1369 | 1369 | float primary_width = visible_width; |
r253177 | r253178 | |
1397 | 1397 | visible_main_menu_height = (float)(visible_lines * line_height); |
1398 | 1398 | |
1399 | 1399 | if (!is_swlist) |
1400 | | mewui_globals::visible_main_lines = visible_lines; |
| 1400 | ui_globals::visible_main_lines = visible_lines; |
1401 | 1401 | else |
1402 | | mewui_globals::visible_sw_lines = visible_lines; |
| 1402 | ui_globals::visible_sw_lines = visible_lines; |
1403 | 1403 | |
1404 | 1404 | // compute top/left of inner menu area by centering |
1405 | 1405 | float visible_left = primary_left; |
r253177 | r253178 | |
1600 | 1600 | |
1601 | 1601 | // reset redraw icon stage |
1602 | 1602 | if (!is_swlist) |
1603 | | mewui_globals::redraw_icon = false; |
| 1603 | ui_globals::redraw_icon = false; |
1604 | 1604 | } |
1605 | 1605 | |
1606 | 1606 | //------------------------------------------------- |
r253177 | r253178 | |
1610 | 1610 | void ui_menu::get_title_search(std::string &snaptext, std::string &searchstr) |
1611 | 1611 | { |
1612 | 1612 | // get arts title text |
1613 | | snaptext.assign(arts_info[mewui_globals::curimage_view].title); |
| 1613 | snaptext.assign(arts_info[ui_globals::curimage_view].title); |
1614 | 1614 | |
1615 | 1615 | // get search path |
1616 | | path_iterator path(machine().options().value(arts_info[mewui_globals::curimage_view].path)); |
| 1616 | path_iterator path(machine().options().value(arts_info[ui_globals::curimage_view].path)); |
1617 | 1617 | std::string curpath; |
1618 | | searchstr.assign(machine().options().value(arts_info[mewui_globals::curimage_view].path)); |
| 1618 | searchstr.assign(machine().options().value(arts_info[ui_globals::curimage_view].path)); |
1619 | 1619 | |
1620 | 1620 | // iterate over path and add path for zipped formats |
1621 | 1621 | while (path.next(curpath)) |
1622 | 1622 | { |
1623 | | path_iterator path_iter(arts_info[mewui_globals::curimage_view].addpath); |
| 1623 | path_iterator path_iter(arts_info[ui_globals::curimage_view].addpath); |
1624 | 1624 | std::string c_path; |
1625 | 1625 | while (path_iter.next(c_path)) |
1626 | 1626 | searchstr.append(";").append(curpath).append(PATH_SEPARATOR).append(c_path); |
r253177 | r253178 | |
1664 | 1664 | validate_selection(1); |
1665 | 1665 | |
1666 | 1666 | // swallow left/right keys if they are not appropriate |
1667 | | bool ignoreleft = ((item[selected].flags & MENU_FLAG_LEFT_ARROW) == 0 || mewui_globals::panels_status == HIDE_BOTH || mewui_globals::panels_status == HIDE_RIGHT_PANEL); |
1668 | | bool ignoreright = ((item[selected].flags & MENU_FLAG_RIGHT_ARROW) == 0 || mewui_globals::panels_status == HIDE_BOTH || mewui_globals::panels_status == HIDE_RIGHT_PANEL); |
1669 | | bool ignoreup = (mewui_globals::panels_status == HIDE_BOTH || mewui_globals::panels_status == HIDE_LEFT_PANEL); |
1670 | | bool ignoredown = (mewui_globals::panels_status == HIDE_BOTH || mewui_globals::panels_status == HIDE_LEFT_PANEL); |
| 1667 | bool ignoreleft = ((item[selected].flags & MENU_FLAG_LEFT_ARROW) == 0 || ui_globals::panels_status == HIDE_BOTH || ui_globals::panels_status == HIDE_RIGHT_PANEL); |
| 1668 | bool ignoreright = ((item[selected].flags & MENU_FLAG_RIGHT_ARROW) == 0 || ui_globals::panels_status == HIDE_BOTH || ui_globals::panels_status == HIDE_RIGHT_PANEL); |
| 1669 | bool ignoreup = (ui_globals::panels_status == HIDE_BOTH || ui_globals::panels_status == HIDE_LEFT_PANEL); |
| 1670 | bool ignoredown = (ui_globals::panels_status == HIDE_BOTH || ui_globals::panels_status == HIDE_LEFT_PANEL); |
1671 | 1671 | |
1672 | 1672 | input_manager &minput = machine().input(); |
1673 | 1673 | // accept left/right keys as-is with repeat |
r253177 | r253178 | |
1893 | 1893 | topline_datsview -= right_visible_lines - 1; |
1894 | 1894 | else if (hover == HOVER_LPANEL_ARROW) |
1895 | 1895 | { |
1896 | | if (mewui_globals::panels_status == HIDE_LEFT_PANEL) |
1897 | | mewui_globals::panels_status = SHOW_PANELS; |
1898 | | else if (mewui_globals::panels_status == HIDE_BOTH) |
1899 | | mewui_globals::panels_status = HIDE_RIGHT_PANEL; |
1900 | | else if (mewui_globals::panels_status == SHOW_PANELS) |
1901 | | mewui_globals::panels_status = HIDE_LEFT_PANEL; |
1902 | | else if (mewui_globals::panels_status == HIDE_RIGHT_PANEL) |
1903 | | mewui_globals::panels_status = HIDE_BOTH; |
| 1896 | if (ui_globals::panels_status == HIDE_LEFT_PANEL) |
| 1897 | ui_globals::panels_status = SHOW_PANELS; |
| 1898 | else if (ui_globals::panels_status == HIDE_BOTH) |
| 1899 | ui_globals::panels_status = HIDE_RIGHT_PANEL; |
| 1900 | else if (ui_globals::panels_status == SHOW_PANELS) |
| 1901 | ui_globals::panels_status = HIDE_LEFT_PANEL; |
| 1902 | else if (ui_globals::panels_status == HIDE_RIGHT_PANEL) |
| 1903 | ui_globals::panels_status = HIDE_BOTH; |
1904 | 1904 | } |
1905 | 1905 | else if (hover == HOVER_RPANEL_ARROW) |
1906 | 1906 | { |
1907 | | if (mewui_globals::panels_status == HIDE_RIGHT_PANEL) |
1908 | | mewui_globals::panels_status = SHOW_PANELS; |
1909 | | else if (mewui_globals::panels_status == HIDE_BOTH) |
1910 | | mewui_globals::panels_status = HIDE_LEFT_PANEL; |
1911 | | else if (mewui_globals::panels_status == SHOW_PANELS) |
1912 | | mewui_globals::panels_status = HIDE_RIGHT_PANEL; |
1913 | | else if (mewui_globals::panels_status == HIDE_LEFT_PANEL) |
1914 | | mewui_globals::panels_status = HIDE_BOTH; |
| 1907 | if (ui_globals::panels_status == HIDE_RIGHT_PANEL) |
| 1908 | ui_globals::panels_status = SHOW_PANELS; |
| 1909 | else if (ui_globals::panels_status == HIDE_BOTH) |
| 1910 | ui_globals::panels_status = HIDE_LEFT_PANEL; |
| 1911 | else if (ui_globals::panels_status == SHOW_PANELS) |
| 1912 | ui_globals::panels_status = HIDE_RIGHT_PANEL; |
| 1913 | else if (ui_globals::panels_status == HIDE_LEFT_PANEL) |
| 1914 | ui_globals::panels_status = HIDE_BOTH; |
1915 | 1915 | } |
1916 | 1916 | else if (hover == HOVER_B_FAV) |
1917 | 1917 | { |
r253177 | r253178 | |
1958 | 1958 | } |
1959 | 1959 | else if (hover >= HOVER_RP_FIRST && hover <= HOVER_RP_LAST) |
1960 | 1960 | { |
1961 | | mewui_globals::rpanel = (HOVER_RP_FIRST - hover) * (-1); |
| 1961 | ui_globals::rpanel = (HOVER_RP_FIRST - hover) * (-1); |
1962 | 1962 | stop = true; |
1963 | 1963 | } |
1964 | 1964 | else if (hover >= HOVER_SW_FILTER_FIRST && hover <= HOVER_SW_FILTER_LAST) |
r253177 | r253178 | |
2116 | 2116 | |
2117 | 2117 | if (mouse_hit && x1 <= mouse_x && x1 + midl > mouse_x && y1 <= mouse_y && y1 + line_height > mouse_y) |
2118 | 2118 | { |
2119 | | if (mewui_globals::rpanel != cells) |
| 2119 | if (ui_globals::rpanel != cells) |
2120 | 2120 | { |
2121 | 2121 | bgcolor = UI_MOUSEOVER_BG_COLOR; |
2122 | 2122 | fgcolor = UI_MOUSEOVER_COLOR; |
r253177 | r253178 | |
2124 | 2124 | } |
2125 | 2125 | } |
2126 | 2126 | |
2127 | | if (mewui_globals::rpanel != cells) |
| 2127 | if (ui_globals::rpanel != cells) |
2128 | 2128 | { |
2129 | 2129 | container->add_line(x1, y1 + line_height, x1 + midl, y1 + line_height, UI_LINE_WIDTH, |
2130 | 2130 | UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA)); |
r253177 | r253178 | |
2168 | 2168 | machine().ui().draw_text_full(container, snaptext.c_str(), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER, WRAP_TRUNCATE, |
2169 | 2169 | DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr); |
2170 | 2170 | |
2171 | | draw_common_arrow(origx1, origy1, origx2, origy2, mewui_globals::curimage_view, FIRST_VIEW, LAST_VIEW, title_size); |
| 2171 | draw_common_arrow(origx1, origy1, origx2, origy2, ui_globals::curimage_view, FIRST_VIEW, LAST_VIEW, title_size); |
2172 | 2172 | |
2173 | 2173 | return searchstr; |
2174 | 2174 | } |
r253177 | r253178 | |
2272 | 2272 | int dest_yPixel = tmp_bitmap->height(); |
2273 | 2273 | |
2274 | 2274 | // force 4:3 ratio min |
2275 | | if (machine().options().forced_4x3_snapshot() && ratioI < 0.75f && mewui_globals::curimage_view == SNAPSHOT_VIEW) |
| 2275 | if (machine().options().forced_4x3_snapshot() && ratioI < 0.75f && ui_globals::curimage_view == SNAPSHOT_VIEW) |
2276 | 2276 | { |
2277 | 2277 | // smaller ratio will ensure that the image fits in the view |
2278 | 2278 | dest_yPixel = tmp_bitmap->width() * 0.75f; |
r253177 | r253178 | |
2387 | 2387 | if (driver == nullptr) |
2388 | 2388 | return; |
2389 | 2389 | |
2390 | | if (olddriver[linenum] != driver || mewui_globals::redraw_icon) |
| 2390 | if (olddriver[linenum] != driver || ui_globals::redraw_icon) |
2391 | 2391 | { |
2392 | 2392 | olddriver[linenum] = driver; |
2393 | 2393 | |
trunk/src/emu/ui/selgame.cpp
r253177 | r253178 | |
169 | 169 | moptions.set_value(OPTION_SNAPNAME, "%g/%i", OPTION_PRIORITY_CMDLINE, error_string); |
170 | 170 | moptions.set_value(OPTION_SOFTWARENAME, "", OPTION_PRIORITY_CMDLINE, error_string); |
171 | 171 | |
172 | | mewui_globals::curimage_view = FIRST_VIEW; |
173 | | mewui_globals::curdats_view = MEWUI_FIRST_LOAD; |
174 | | mewui_globals::switch_image = false; |
175 | | mewui_globals::default_image = true; |
| 172 | ui_globals::curimage_view = FIRST_VIEW; |
| 173 | ui_globals::curdats_view = MEWUI_FIRST_LOAD; |
| 174 | ui_globals::switch_image = false; |
| 175 | ui_globals::default_image = true; |
176 | 176 | ume_filters::actual = moptions.start_filter(); |
177 | | mewui_globals::panels_status = moptions.hide_panels(); |
| 177 | ui_globals::panels_status = moptions.hide_panels(); |
178 | 178 | } |
179 | 179 | |
180 | 180 | //------------------------------------------------- |
r253177 | r253178 | |
209 | 209 | mopt.set_value(OPTION_START_FILTER, ume_filters::actual, OPTION_PRIORITY_CMDLINE, error_string); |
210 | 210 | mopt.set_value(OPTION_LAST_USED_FILTER, filter.c_str(), OPTION_PRIORITY_CMDLINE, error_string); |
211 | 211 | mopt.set_value(OPTION_LAST_USED_MACHINE, last_driver.c_str(), OPTION_PRIORITY_CMDLINE, error_string); |
212 | | mopt.set_value(OPTION_HIDE_PANELS, mewui_globals::panels_status, OPTION_PRIORITY_CMDLINE, error_string); |
| 212 | mopt.set_value(OPTION_HIDE_PANELS, ui_globals::panels_status, OPTION_PRIORITY_CMDLINE, error_string); |
213 | 213 | save_game_options(machine()); |
214 | 214 | } |
215 | 215 | |
r253177 | r253178 | |
223 | 223 | bool enabled_dats = machine().options().enabled_dats(); |
224 | 224 | |
225 | 225 | // if i have to load datfile, performe an hard reset |
226 | | if (mewui_globals::reset) |
| 226 | if (ui_globals::reset) |
227 | 227 | { |
228 | | mewui_globals::reset = false; |
| 228 | ui_globals::reset = false; |
229 | 229 | machine().schedule_hard_reset(); |
230 | 230 | ui_menu::stack_reset(machine()); |
231 | 231 | return; |
r253177 | r253178 | |
263 | 263 | else if (m_event->iptkey == IPT_UI_LEFT) |
264 | 264 | { |
265 | 265 | // Images |
266 | | if (mewui_globals::rpanel == RP_IMAGES && mewui_globals::curimage_view > FIRST_VIEW) |
| 266 | if (ui_globals::rpanel == RP_IMAGES && ui_globals::curimage_view > FIRST_VIEW) |
267 | 267 | { |
268 | | mewui_globals::curimage_view--; |
269 | | mewui_globals::switch_image = true; |
270 | | mewui_globals::default_image = false; |
| 268 | ui_globals::curimage_view--; |
| 269 | ui_globals::switch_image = true; |
| 270 | ui_globals::default_image = false; |
271 | 271 | } |
272 | 272 | |
273 | 273 | // Infos |
274 | | else if (mewui_globals::rpanel == RP_INFOS && mewui_globals::curdats_view > MEWUI_FIRST_LOAD) |
| 274 | else if (ui_globals::rpanel == RP_INFOS && ui_globals::curdats_view > MEWUI_FIRST_LOAD) |
275 | 275 | { |
276 | | mewui_globals::curdats_view--; |
| 276 | ui_globals::curdats_view--; |
277 | 277 | topline_datsview = 0; |
278 | 278 | } |
279 | 279 | } |
r253177 | r253178 | |
282 | 282 | else if (m_event->iptkey == IPT_UI_RIGHT) |
283 | 283 | { |
284 | 284 | // Images |
285 | | if (mewui_globals::rpanel == RP_IMAGES && mewui_globals::curimage_view < LAST_VIEW) |
| 285 | if (ui_globals::rpanel == RP_IMAGES && ui_globals::curimage_view < LAST_VIEW) |
286 | 286 | { |
287 | | mewui_globals::curimage_view++; |
288 | | mewui_globals::switch_image = true; |
289 | | mewui_globals::default_image = false; |
| 287 | ui_globals::curimage_view++; |
| 288 | ui_globals::switch_image = true; |
| 289 | ui_globals::default_image = false; |
290 | 290 | } |
291 | 291 | |
292 | 292 | // Infos |
293 | | else if (mewui_globals::rpanel == RP_INFOS && mewui_globals::curdats_view < MEWUI_LAST_LOAD) |
| 293 | else if (ui_globals::rpanel == RP_INFOS && ui_globals::curdats_view < MEWUI_LAST_LOAD) |
294 | 294 | { |
295 | | mewui_globals::curdats_view++; |
| 295 | ui_globals::curdats_view++; |
296 | 296 | topline_datsview = 0; |
297 | 297 | } |
298 | 298 | } |
r253177 | r253178 | |
313 | 313 | |
314 | 314 | // handle UI_LEFT_PANEL |
315 | 315 | else if (m_event->iptkey == IPT_UI_LEFT_PANEL) |
316 | | mewui_globals::rpanel = RP_IMAGES; |
| 316 | ui_globals::rpanel = RP_IMAGES; |
317 | 317 | |
318 | 318 | // handle UI_RIGHT_PANEL |
319 | 319 | else if (m_event->iptkey == IPT_UI_RIGHT_PANEL) |
320 | | mewui_globals::rpanel = RP_INFOS; |
| 320 | ui_globals::rpanel = RP_INFOS; |
321 | 321 | |
322 | 322 | // escape pressed with non-empty text clears the text |
323 | 323 | else if (m_event->iptkey == IPT_UI_CANCEL && m_search[0] != 0) |
r253177 | r253178 | |
547 | 547 | |
548 | 548 | void ui_menu_select_game::populate() |
549 | 549 | { |
550 | | mewui_globals::redraw_icon = true; |
551 | | mewui_globals::switch_image = true; |
| 550 | ui_globals::redraw_icon = true; |
| 551 | ui_globals::switch_image = true; |
552 | 552 | int old_item_selected = -1; |
553 | 553 | |
554 | 554 | if (main_filters::actual != FILTER_FAVORITE_GAME) |
r253177 | r253178 | |
668 | 668 | if (old_item_selected != -1) |
669 | 669 | { |
670 | 670 | selected = old_item_selected; |
671 | | if (mewui_globals::visible_main_lines == 0) |
| 671 | if (ui_globals::visible_main_lines == 0) |
672 | 672 | top_line = (selected != 0) ? selected - 1 : 0; |
673 | 673 | else |
674 | | top_line = selected - (mewui_globals::visible_main_lines / 2); |
| 674 | top_line = selected - (ui_globals::visible_main_lines / 2); |
675 | 675 | |
676 | 676 | if (reselect_last::software.empty()) |
677 | 677 | reselect_last::reset(); |
r253177 | r253178 | |
1942 | 1942 | ui_manager &mui = machine().ui(); |
1943 | 1943 | float line_height = mui.get_line_height(); |
1944 | 1944 | |
1945 | | if (mewui_globals::panels_status == SHOW_PANELS || mewui_globals::panels_status == HIDE_RIGHT_PANEL) |
| 1945 | if (ui_globals::panels_status == SHOW_PANELS || ui_globals::panels_status == HIDE_RIGHT_PANEL) |
1946 | 1946 | { |
1947 | 1947 | float origy1 = y1; |
1948 | 1948 | float origy2 = y2; |
r253177 | r253178 | |
2131 | 2131 | float oy1 = origy1 + line_height; |
2132 | 2132 | |
2133 | 2133 | // MAMESCORE? Full size text |
2134 | | if (mewui_globals::curdats_view == MEWUI_STORY_LOAD) |
| 2134 | if (ui_globals::curdats_view == MEWUI_STORY_LOAD) |
2135 | 2135 | text_size = 1.0f; |
2136 | 2136 | |
2137 | | std::string snaptext(dats_info[mewui_globals::curdats_view]); |
| 2137 | std::string snaptext(dats_info[ui_globals::curdats_view]); |
2138 | 2138 | |
2139 | 2139 | // apply title to right panel |
2140 | 2140 | float title_size = 0.0f; |
r253177 | r253178 | |
2151 | 2151 | mui.draw_text_full(container, snaptext.c_str(), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER, |
2152 | 2152 | WRAP_TRUNCATE, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr); |
2153 | 2153 | |
2154 | | draw_common_arrow(origx1, origy1, origx2, origy2, mewui_globals::curdats_view, MEWUI_FIRST_LOAD, MEWUI_LAST_LOAD, title_size); |
| 2154 | draw_common_arrow(origx1, origy1, origx2, origy2, ui_globals::curdats_view, MEWUI_FIRST_LOAD, MEWUI_LAST_LOAD, title_size); |
2155 | 2155 | |
2156 | | if (driver != olddriver || mewui_globals::curdats_view != oldview) |
| 2156 | if (driver != olddriver || ui_globals::curdats_view != oldview) |
2157 | 2157 | { |
2158 | 2158 | buffer.clear(); |
2159 | 2159 | olddriver = driver; |
2160 | | oldview = mewui_globals::curdats_view; |
| 2160 | oldview = ui_globals::curdats_view; |
2161 | 2161 | topline_datsview = 0; |
2162 | 2162 | totallines = 0; |
2163 | 2163 | std::vector<std::string> m_item; |
2164 | 2164 | |
2165 | | if (mewui_globals::curdats_view == MEWUI_GENERAL_LOAD) |
| 2165 | if (ui_globals::curdats_view == MEWUI_GENERAL_LOAD) |
2166 | 2166 | general_info(driver, buffer); |
2167 | | else if (mewui_globals::curdats_view != MEWUI_COMMAND_LOAD) |
2168 | | machine().datfile().load_data_info(driver, buffer, mewui_globals::curdats_view); |
| 2167 | else if (ui_globals::curdats_view != MEWUI_COMMAND_LOAD) |
| 2168 | machine().datfile().load_data_info(driver, buffer, ui_globals::curdats_view); |
2169 | 2169 | else |
2170 | 2170 | machine().datfile().command_sub_menu(driver, m_item); |
2171 | 2171 | |
2172 | | if (!m_item.empty() && mewui_globals::curdats_view == MEWUI_COMMAND_LOAD) |
| 2172 | if (!m_item.empty() && ui_globals::curdats_view == MEWUI_COMMAND_LOAD) |
2173 | 2173 | { |
2174 | 2174 | for (size_t x = 0; x < m_item.size(); ++x) |
2175 | 2175 | { |
r253177 | r253178 | |
2189 | 2189 | WRAP_WORD, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr); |
2190 | 2190 | return; |
2191 | 2191 | } |
2192 | | else if (mewui_globals::curdats_view != MEWUI_STORY_LOAD && mewui_globals::curdats_view != MEWUI_COMMAND_LOAD) |
| 2192 | else if (ui_globals::curdats_view != MEWUI_STORY_LOAD && ui_globals::curdats_view != MEWUI_COMMAND_LOAD) |
2193 | 2193 | mui.wrap_text(container, buffer.c_str(), origx1, origy1, origx2 - origx1 - (2.0f * gutter_width), totallines, xstart, xend, text_size); |
2194 | 2194 | else |
2195 | 2195 | mui.wrap_text(container, buffer.c_str(), 0.0f, 0.0f, 1.0f - (2.0f * gutter_width), totallines, xstart, xend, text_size); |
r253177 | r253178 | |
2215 | 2215 | else if (r == r_visible_lines - 1 && itemline != totallines - 1) |
2216 | 2216 | info_arrow(1, origx1, origx2, oy1, line_height, text_size, ud_arrow_width); |
2217 | 2217 | // special case for mamescore |
2218 | | else if (mewui_globals::curdats_view == MEWUI_STORY_LOAD) |
| 2218 | else if (ui_globals::curdats_view == MEWUI_STORY_LOAD) |
2219 | 2219 | { |
2220 | 2220 | // check size |
2221 | 2221 | float textlen = mui.get_string_width_ex(tempbuf.c_str(), text_size); |
r253177 | r253178 | |
2245 | 2245 | } |
2246 | 2246 | |
2247 | 2247 | // special case for command |
2248 | | else if (mewui_globals::curdats_view == MEWUI_COMMAND_LOAD || mewui_globals::curdats_view == MEWUI_GENERAL_LOAD) |
| 2248 | else if (ui_globals::curdats_view == MEWUI_COMMAND_LOAD || ui_globals::curdats_view == MEWUI_GENERAL_LOAD) |
2249 | 2249 | { |
2250 | 2250 | // check size |
2251 | 2251 | float textlen = mui.get_string_width_ex(tempbuf.c_str(), text_size); |
2252 | 2252 | float tmp_size = (textlen > sc) ? text_size * (sc / textlen) : text_size; |
2253 | 2253 | |
2254 | | int first_dspace = (mewui_globals::curdats_view == MEWUI_COMMAND_LOAD) ? tempbuf.find(" ") : tempbuf.find(":"); |
| 2254 | int first_dspace = (ui_globals::curdats_view == MEWUI_COMMAND_LOAD) ? tempbuf.find(" ") : tempbuf.find(":"); |
2255 | 2255 | if (first_dspace > 0) |
2256 | 2256 | { |
2257 | 2257 | float effective_width = origx2 - origx1 - gutter_width; |
r253177 | r253178 | |
2290 | 2290 | { |
2291 | 2291 | mui.draw_text_full(container, "History", origx1, origy1, origx2 - origx1, JUSTIFY_CENTER, WRAP_TRUNCATE, |
2292 | 2292 | DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr); |
2293 | | mewui_globals::cur_sw_dats_view = 0; |
| 2293 | ui_globals::cur_sw_dats_view = 0; |
2294 | 2294 | } |
2295 | 2295 | else |
2296 | 2296 | { |
r253177 | r253178 | |
2308 | 2308 | title_size = MAX(txt_lenght, title_size); |
2309 | 2309 | } |
2310 | 2310 | |
2311 | | mui.draw_text_full(container, t_text[mewui_globals::cur_sw_dats_view].c_str(), origx1, origy1, origx2 - origx1, |
| 2311 | mui.draw_text_full(container, t_text[ui_globals::cur_sw_dats_view].c_str(), origx1, origy1, origx2 - origx1, |
2312 | 2312 | JUSTIFY_CENTER, WRAP_TRUNCATE, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr); |
2313 | 2313 | |
2314 | | draw_common_arrow(origx1, origy1, origx2, origy2, mewui_globals::cur_sw_dats_view, 0, 1, title_size); |
| 2314 | draw_common_arrow(origx1, origy1, origx2, origy2, ui_globals::cur_sw_dats_view, 0, 1, title_size); |
2315 | 2315 | } |
2316 | 2316 | |
2317 | | if (oldsoft != soft || old_sw_view != mewui_globals::cur_sw_dats_view) |
| 2317 | if (oldsoft != soft || old_sw_view != ui_globals::cur_sw_dats_view) |
2318 | 2318 | { |
2319 | 2319 | buffer.clear(); |
2320 | | old_sw_view = mewui_globals::cur_sw_dats_view; |
| 2320 | old_sw_view = ui_globals::cur_sw_dats_view; |
2321 | 2321 | oldsoft = soft; |
2322 | | if (mewui_globals::cur_sw_dats_view == 0) |
| 2322 | if (ui_globals::cur_sw_dats_view == 0) |
2323 | 2323 | { |
2324 | 2324 | if (soft->startempty == 1) |
2325 | 2325 | machine().datfile().load_data_info(soft->driver, buffer, MEWUI_HISTORY_LOAD); |
r253177 | r253178 | |
2375 | 2375 | float line_height = mui.get_line_height(); |
2376 | 2376 | float lr_arrow_width = 0.4f * line_height * machine().render().ui_aspect(); |
2377 | 2377 | rgb_t fgcolor = UI_TEXT_COLOR; |
2378 | | bool hide = (mewui_globals::panels_status == HIDE_RIGHT_PANEL || mewui_globals::panels_status == HIDE_BOTH); |
| 2378 | bool hide = (ui_globals::panels_status == HIDE_RIGHT_PANEL || ui_globals::panels_status == HIDE_BOTH); |
2379 | 2379 | float x2 = (hide) ? origx2 : origx1 + 2.0f * UI_BOX_LR_BORDER; |
2380 | 2380 | |
2381 | 2381 | // set left-right arrows dimension |
r253177 | r253178 | |
2403 | 2403 | origx1 = x2; |
2404 | 2404 | origy1 = draw_right_box_title(origx1, origy1, origx2, origy2); |
2405 | 2405 | |
2406 | | if (mewui_globals::rpanel == RP_IMAGES) |
| 2406 | if (ui_globals::rpanel == RP_IMAGES) |
2407 | 2407 | arts_render(selectedref, origx1, origy1, origx2, origy2); |
2408 | 2408 | else |
2409 | 2409 | infos_render(selectedref, origx1, origy1, origx2, origy2); |
r253177 | r253178 | |
2442 | 2442 | |
2443 | 2443 | if (driver) |
2444 | 2444 | { |
2445 | | if (mewui_globals::default_image) |
2446 | | ((driver->flags & MACHINE_TYPE_ARCADE) == 0) ? mewui_globals::curimage_view = CABINETS_VIEW : mewui_globals::curimage_view = SNAPSHOT_VIEW; |
| 2445 | if (ui_globals::default_image) |
| 2446 | ((driver->flags & MACHINE_TYPE_ARCADE) == 0) ? ui_globals::curimage_view = CABINETS_VIEW : ui_globals::curimage_view = SNAPSHOT_VIEW; |
2447 | 2447 | |
2448 | 2448 | std::string searchstr; |
2449 | 2449 | searchstr = arts_render_common(origx1, origy1, origx2, origy2); |
2450 | 2450 | |
2451 | 2451 | // loads the image if necessary |
2452 | | if (driver != olddriver || !snapx_bitmap->valid() || mewui_globals::switch_image) |
| 2452 | if (driver != olddriver || !snapx_bitmap->valid() || ui_globals::switch_image) |
2453 | 2453 | { |
2454 | 2454 | emu_file snapfile(searchstr.c_str(), OPEN_FLAG_READ); |
2455 | 2455 | bitmap_argb32 *tmp_bitmap; |
r253177 | r253178 | |
2501 | 2501 | } |
2502 | 2502 | |
2503 | 2503 | olddriver = driver; |
2504 | | mewui_globals::switch_image = false; |
| 2504 | ui_globals::switch_image = false; |
2505 | 2505 | arts_render_images(tmp_bitmap, origx1, origy1, origx2, origy2, false); |
2506 | 2506 | auto_free(machine(), tmp_bitmap); |
2507 | 2507 | } |
r253177 | r253178 | |
2522 | 2522 | { |
2523 | 2523 | std::string fullname, pathname; |
2524 | 2524 | |
2525 | | if (mewui_globals::default_image) |
2526 | | (soft->startempty == 0) ? mewui_globals::curimage_view = SNAPSHOT_VIEW : mewui_globals::curimage_view = CABINETS_VIEW; |
| 2525 | if (ui_globals::default_image) |
| 2526 | (soft->startempty == 0) ? ui_globals::curimage_view = SNAPSHOT_VIEW : ui_globals::curimage_view = CABINETS_VIEW; |
2527 | 2527 | |
2528 | 2528 | // arts title and searchpath |
2529 | 2529 | std::string searchstr; |
2530 | 2530 | searchstr = arts_render_common(origx1, origy1, origx2, origy2); |
2531 | 2531 | |
2532 | 2532 | // loads the image if necessary |
2533 | | if (soft != oldsoft || !snapx_bitmap->valid() || mewui_globals::switch_image) |
| 2533 | if (soft != oldsoft || !snapx_bitmap->valid() || ui_globals::switch_image) |
2534 | 2534 | { |
2535 | 2535 | emu_file snapfile(searchstr.c_str(), OPEN_FLAG_READ); |
2536 | 2536 | bitmap_argb32 *tmp_bitmap; |
r253177 | r253178 | |
2548 | 2548 | render_load_jpeg(*tmp_bitmap, snapfile, nullptr, fullname.c_str()); |
2549 | 2549 | } |
2550 | 2550 | } |
2551 | | else if (mewui_globals::curimage_view == TITLES_VIEW) |
| 2551 | else if (ui_globals::curimage_view == TITLES_VIEW) |
2552 | 2552 | { |
2553 | 2553 | // First attempt from name list |
2554 | 2554 | pathname.assign(soft->listname).append("_titles"); |
r253177 | r253178 | |
2590 | 2590 | } |
2591 | 2591 | |
2592 | 2592 | oldsoft = soft; |
2593 | | mewui_globals::switch_image = false; |
| 2593 | ui_globals::switch_image = false; |
2594 | 2594 | arts_render_images(tmp_bitmap, origx1, origy1, origx2, origy2, true); |
2595 | 2595 | auto_free(machine(), tmp_bitmap); |
2596 | 2596 | } |
trunk/src/emu/ui/selsoft.cpp
r253177 | r253178 | |
132 | 132 | build_software_list(); |
133 | 133 | load_sw_custom_filters(); |
134 | 134 | |
135 | | mewui_globals::curimage_view = SNAPSHOT_VIEW; |
136 | | mewui_globals::switch_image = true; |
137 | | mewui_globals::cur_sw_dats_view = MEWUI_FIRST_LOAD; |
| 135 | ui_globals::curimage_view = SNAPSHOT_VIEW; |
| 136 | ui_globals::switch_image = true; |
| 137 | ui_globals::cur_sw_dats_view = MEWUI_FIRST_LOAD; |
138 | 138 | |
139 | 139 | std::string error_string; |
140 | 140 | machine.options().set_value(OPTION_SOFTWARENAME, "", OPTION_PRIORITY_CMDLINE, error_string); |
r253177 | r253178 | |
146 | 146 | |
147 | 147 | ui_menu_select_software::~ui_menu_select_software() |
148 | 148 | { |
149 | | mewui_globals::curimage_view = CABINETS_VIEW; |
150 | | mewui_globals::switch_image = true; |
| 149 | ui_globals::curimage_view = CABINETS_VIEW; |
| 150 | ui_globals::switch_image = true; |
151 | 151 | } |
152 | 152 | |
153 | 153 | //------------------------------------------------- |
r253177 | r253178 | |
178 | 178 | else if (m_event->iptkey == IPT_UI_LEFT) |
179 | 179 | { |
180 | 180 | // Images |
181 | | if (mewui_globals::rpanel == RP_IMAGES && mewui_globals::curimage_view > FIRST_VIEW) |
| 181 | if (ui_globals::rpanel == RP_IMAGES && ui_globals::curimage_view > FIRST_VIEW) |
182 | 182 | { |
183 | | mewui_globals::curimage_view--; |
184 | | mewui_globals::switch_image = true; |
185 | | mewui_globals::default_image = false; |
| 183 | ui_globals::curimage_view--; |
| 184 | ui_globals::switch_image = true; |
| 185 | ui_globals::default_image = false; |
186 | 186 | } |
187 | 187 | |
188 | 188 | // Infos |
189 | | else if (mewui_globals::rpanel == RP_INFOS && mewui_globals::cur_sw_dats_view > 0) |
| 189 | else if (ui_globals::rpanel == RP_INFOS && ui_globals::cur_sw_dats_view > 0) |
190 | 190 | { |
191 | | mewui_globals::cur_sw_dats_view--; |
| 191 | ui_globals::cur_sw_dats_view--; |
192 | 192 | topline_datsview = 0; |
193 | 193 | } |
194 | 194 | } |
r253177 | r253178 | |
197 | 197 | else if (m_event->iptkey == IPT_UI_RIGHT) |
198 | 198 | { |
199 | 199 | // Images |
200 | | if (mewui_globals::rpanel == RP_IMAGES && mewui_globals::curimage_view < LAST_VIEW) |
| 200 | if (ui_globals::rpanel == RP_IMAGES && ui_globals::curimage_view < LAST_VIEW) |
201 | 201 | { |
202 | | mewui_globals::curimage_view++; |
203 | | mewui_globals::switch_image = true; |
204 | | mewui_globals::default_image = false; |
| 202 | ui_globals::curimage_view++; |
| 203 | ui_globals::switch_image = true; |
| 204 | ui_globals::default_image = false; |
205 | 205 | } |
206 | 206 | |
207 | 207 | // Infos |
208 | | else if (mewui_globals::rpanel == RP_INFOS && mewui_globals::cur_sw_dats_view < 1) |
| 208 | else if (ui_globals::rpanel == RP_INFOS && ui_globals::cur_sw_dats_view < 1) |
209 | 209 | { |
210 | | mewui_globals::cur_sw_dats_view++; |
| 210 | ui_globals::cur_sw_dats_view++; |
211 | 211 | topline_datsview = 0; |
212 | 212 | } |
213 | 213 | } |
r253177 | r253178 | |
237 | 237 | |
238 | 238 | // handle UI_LEFT_PANEL |
239 | 239 | else if (m_event->iptkey == IPT_UI_LEFT_PANEL) |
240 | | mewui_globals::rpanel = RP_IMAGES; |
| 240 | ui_globals::rpanel = RP_IMAGES; |
241 | 241 | |
242 | 242 | // handle UI_RIGHT_PANEL |
243 | 243 | else if (m_event->iptkey == IPT_UI_RIGHT_PANEL) |
244 | | mewui_globals::rpanel = RP_INFOS; |
| 244 | ui_globals::rpanel = RP_INFOS; |
245 | 245 | |
246 | 246 | // escape pressed with non-empty text clears the text |
247 | 247 | else if (m_event->iptkey == IPT_UI_CANCEL && m_search[0] != 0) |
r253177 | r253178 | |
444 | 444 | if (old_software != -1) |
445 | 445 | { |
446 | 446 | selected = old_software; |
447 | | top_line = selected - (mewui_globals::visible_sw_lines / 2); |
| 447 | top_line = selected - (ui_globals::visible_sw_lines / 2); |
448 | 448 | } |
449 | 449 | |
450 | 450 | reselect_last::reset(); |
r253177 | r253178 | |
1258 | 1258 | { |
1259 | 1259 | ui_manager &mui = machine().ui(); |
1260 | 1260 | |
1261 | | if (mewui_globals::panels_status == SHOW_PANELS || mewui_globals::panels_status == HIDE_RIGHT_PANEL) |
| 1261 | if (ui_globals::panels_status == SHOW_PANELS || ui_globals::panels_status == HIDE_RIGHT_PANEL) |
1262 | 1262 | { |
1263 | 1263 | float origy1 = y1; |
1264 | 1264 | float origy2 = y2; |
r253177 | r253178 | |
1431 | 1431 | { |
1432 | 1432 | mui.draw_text_full(container, "History", origx1, origy1, origx2 - origx1, JUSTIFY_CENTER, WRAP_TRUNCATE, |
1433 | 1433 | DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr); |
1434 | | mewui_globals::cur_sw_dats_view = 0; |
| 1434 | ui_globals::cur_sw_dats_view = 0; |
1435 | 1435 | } |
1436 | 1436 | else |
1437 | 1437 | { |
r253177 | r253178 | |
1449 | 1449 | title_size = MAX(txt_lenght, title_size); |
1450 | 1450 | } |
1451 | 1451 | |
1452 | | mui.draw_text_full(container, t_text[mewui_globals::cur_sw_dats_view].c_str(), origx1, origy1, origx2 - origx1, |
| 1452 | mui.draw_text_full(container, t_text[ui_globals::cur_sw_dats_view].c_str(), origx1, origy1, origx2 - origx1, |
1453 | 1453 | JUSTIFY_CENTER, WRAP_TRUNCATE, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, |
1454 | 1454 | nullptr, nullptr); |
1455 | 1455 | |
1456 | | draw_common_arrow(origx1, origy1, origx2, origy2, mewui_globals::cur_sw_dats_view, 0, 1, title_size); |
| 1456 | draw_common_arrow(origx1, origy1, origx2, origy2, ui_globals::cur_sw_dats_view, 0, 1, title_size); |
1457 | 1457 | } |
1458 | 1458 | |
1459 | | if (oldsoft != soft || old_sw_view != mewui_globals::cur_sw_dats_view) |
| 1459 | if (oldsoft != soft || old_sw_view != ui_globals::cur_sw_dats_view) |
1460 | 1460 | { |
1461 | 1461 | buffer.clear(); |
1462 | | old_sw_view = mewui_globals::cur_sw_dats_view; |
| 1462 | old_sw_view = ui_globals::cur_sw_dats_view; |
1463 | 1463 | oldsoft = soft; |
1464 | | if (mewui_globals::cur_sw_dats_view == 0) |
| 1464 | if (ui_globals::cur_sw_dats_view == 0) |
1465 | 1465 | { |
1466 | 1466 | if (soft->startempty == 1) |
1467 | 1467 | machine().datfile().load_data_info(soft->driver, buffer, MEWUI_HISTORY_LOAD); |
r253177 | r253178 | |
1536 | 1536 | |
1537 | 1537 | if (driver) |
1538 | 1538 | { |
1539 | | if (mewui_globals::default_image) |
1540 | | ((driver->flags & MACHINE_TYPE_ARCADE) == 0) ? mewui_globals::curimage_view = CABINETS_VIEW : mewui_globals::curimage_view = SNAPSHOT_VIEW; |
| 1539 | if (ui_globals::default_image) |
| 1540 | ((driver->flags & MACHINE_TYPE_ARCADE) == 0) ? ui_globals::curimage_view = CABINETS_VIEW : ui_globals::curimage_view = SNAPSHOT_VIEW; |
1541 | 1541 | |
1542 | 1542 | std::string searchstr; |
1543 | 1543 | searchstr = arts_render_common(origx1, origy1, origx2, origy2); |
1544 | 1544 | |
1545 | 1545 | // loads the image if necessary |
1546 | | if (driver != olddriver || !snapx_bitmap->valid() || mewui_globals::switch_image) |
| 1546 | if (driver != olddriver || !snapx_bitmap->valid() || ui_globals::switch_image) |
1547 | 1547 | { |
1548 | 1548 | emu_file snapfile(searchstr.c_str(), OPEN_FLAG_READ); |
1549 | 1549 | bitmap_argb32 *tmp_bitmap; |
r253177 | r253178 | |
1595 | 1595 | } |
1596 | 1596 | |
1597 | 1597 | olddriver = driver; |
1598 | | mewui_globals::switch_image = false; |
| 1598 | ui_globals::switch_image = false; |
1599 | 1599 | arts_render_images(tmp_bitmap, origx1, origy1, origx2, origy2, false); |
1600 | 1600 | auto_free(machine(), tmp_bitmap); |
1601 | 1601 | } |
r253177 | r253178 | |
1615 | 1615 | else if (soft) |
1616 | 1616 | { |
1617 | 1617 | std::string fullname, pathname; |
1618 | | if (mewui_globals::default_image) |
1619 | | (soft->startempty == 0) ? mewui_globals::curimage_view = SNAPSHOT_VIEW : mewui_globals::curimage_view = CABINETS_VIEW; |
| 1618 | if (ui_globals::default_image) |
| 1619 | (soft->startempty == 0) ? ui_globals::curimage_view = SNAPSHOT_VIEW : ui_globals::curimage_view = CABINETS_VIEW; |
1620 | 1620 | |
1621 | 1621 | // arts title and searchpath |
1622 | 1622 | std::string searchstr; |
1623 | 1623 | searchstr = arts_render_common(origx1, origy1, origx2, origy2); |
1624 | 1624 | |
1625 | 1625 | // loads the image if necessary |
1626 | | if (soft != oldsoft || !snapx_bitmap->valid() || mewui_globals::switch_image) |
| 1626 | if (soft != oldsoft || !snapx_bitmap->valid() || ui_globals::switch_image) |
1627 | 1627 | { |
1628 | 1628 | emu_file snapfile(searchstr.c_str(), OPEN_FLAG_READ); |
1629 | 1629 | bitmap_argb32 *tmp_bitmap; |
r253177 | r253178 | |
1641 | 1641 | render_load_jpeg(*tmp_bitmap, snapfile, nullptr, fullname.c_str()); |
1642 | 1642 | } |
1643 | 1643 | } |
1644 | | else if (mewui_globals::curimage_view == TITLES_VIEW) |
| 1644 | else if (ui_globals::curimage_view == TITLES_VIEW) |
1645 | 1645 | { |
1646 | 1646 | // First attempt from name list |
1647 | 1647 | pathname.assign(soft->listname).append("_titles"); |
r253177 | r253178 | |
1683 | 1683 | } |
1684 | 1684 | |
1685 | 1685 | oldsoft = soft; |
1686 | | mewui_globals::switch_image = false; |
| 1686 | ui_globals::switch_image = false; |
1687 | 1687 | arts_render_images(tmp_bitmap, origx1, origy1, origx2, origy2, true); |
1688 | 1688 | auto_free(machine(), tmp_bitmap); |
1689 | 1689 | } |
r253177 | r253178 | |
1708 | 1708 | float line_height = mui.get_line_height(); |
1709 | 1709 | float lr_arrow_width = 0.4f * line_height * machine().render().ui_aspect(); |
1710 | 1710 | rgb_t fgcolor = UI_TEXT_COLOR; |
1711 | | bool hide = (mewui_globals::panels_status == HIDE_RIGHT_PANEL || mewui_globals::panels_status == HIDE_BOTH); |
| 1711 | bool hide = (ui_globals::panels_status == HIDE_RIGHT_PANEL || ui_globals::panels_status == HIDE_BOTH); |
1712 | 1712 | float x2 = (hide) ? origx2 : origx1 + 2.0f * UI_BOX_LR_BORDER; |
1713 | 1713 | |
1714 | 1714 | // set left-right arrows dimension |
r253177 | r253178 | |
1736 | 1736 | origx1 = x2; |
1737 | 1737 | origy1 = draw_right_box_title(origx1, origy1, origx2, origy2); |
1738 | 1738 | |
1739 | | if (mewui_globals::rpanel == RP_IMAGES) |
| 1739 | if (ui_globals::rpanel == RP_IMAGES) |
1740 | 1740 | arts_render(selectedref, origx1, origy1, origx2, origy2); |
1741 | 1741 | else |
1742 | 1742 | infos_render(selectedref, origx1, origy1, origx2, origy2); |