mirror of
https://github.com/holub/mame
synced 2025-04-24 09:20:02 +03:00
Encapsulate a bit more of the menu base class to control when layout changes can happen
This commit is contained in:
parent
f4871c88cb
commit
32c256eccc
@ -166,7 +166,7 @@ void menu_audit::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_audit::populate()
|
||||
void menu_audit::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
item_append("Dummy", "", 0, (void *)(uintptr_t)1);
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ public:
|
||||
virtual ~menu_audit() override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
void save_available_machines();
|
||||
|
@ -50,7 +50,7 @@ menu_barcode_reader::~menu_barcode_reader()
|
||||
// populate - populates the barcode input menu
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_barcode_reader::populate()
|
||||
void menu_barcode_reader::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
if (current_device())
|
||||
{
|
||||
@ -89,8 +89,7 @@ void menu_barcode_reader::populate()
|
||||
void menu_barcode_reader::handle()
|
||||
{
|
||||
// rebuild the menu (so to update the selected device, if the user has pressed L or R)
|
||||
reset(reset_options::REMEMBER_POSITION);
|
||||
populate();
|
||||
repopulate(reset_options::REMEMBER_POSITION);
|
||||
|
||||
// process the menu
|
||||
const event *event = process(PROCESS_LR_REPEAT);
|
||||
|
@ -8,11 +8,11 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef MAME_FRONTEND_UI_BARCODE_H
|
||||
#define MAME_FRONTEND_UI_BARCODE_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "machine/bcreader.h"
|
||||
#include "ui/devctrl.h"
|
||||
|
||||
@ -23,7 +23,7 @@ public:
|
||||
virtual ~menu_barcode_reader() override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
std::string m_barcode_buffer;
|
||||
|
@ -126,7 +126,7 @@ menu_cheat::menu_cheat(mame_ui_manager &mui, render_container &container) : menu
|
||||
{
|
||||
}
|
||||
|
||||
void menu_cheat::populate()
|
||||
void menu_cheat::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
/* iterate over cheats */
|
||||
std::string text;
|
||||
@ -264,7 +264,7 @@ void menu_autofire::handle()
|
||||
menu
|
||||
-------------------------------------------------*/
|
||||
|
||||
void menu_autofire::populate()
|
||||
void menu_autofire::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
char temp_text[64];
|
||||
|
||||
|
@ -23,7 +23,7 @@ public:
|
||||
virtual ~menu_cheat() override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
};
|
||||
|
||||
@ -35,7 +35,7 @@ public:
|
||||
virtual ~menu_autofire() override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
float refresh;
|
||||
|
@ -152,7 +152,7 @@ void menu_custom_filter::handle()
|
||||
//-------------------------------------------------
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
void menu_custom_filter::populate()
|
||||
void menu_custom_filter::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
// add main filter
|
||||
uint32_t arrow_flags = get_arrow_flags<uint16_t>(FILTER_ALL, FILTER_UNAVAILABLE, custfltr::main);
|
||||
@ -439,7 +439,7 @@ void menu_swcustom_filter::handle()
|
||||
//-------------------------------------------------
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
void menu_swcustom_filter::populate()
|
||||
void menu_swcustom_filter::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
// add main filter
|
||||
uint32_t arrow_flags = get_arrow_flags<uint16_t>(UI_SW_ALL, UI_SW_UNAVAILABLE, sw_custfltr::main);
|
||||
|
@ -95,7 +95,7 @@ private:
|
||||
OTHER_FILTER = LIST_FILTER + MAX_CUST_FILTER + 1
|
||||
};
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
void save_sw_custom_filters();
|
||||
@ -128,7 +128,7 @@ private:
|
||||
SCREEN_FILTER = YEAR_FILTER + MAX_CUST_FILTER + 1,
|
||||
OTHER_FILTER = SCREEN_FILTER + MAX_CUST_FILTER + 1
|
||||
};
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
void save_custom_filters();
|
||||
|
@ -137,7 +137,7 @@ void menu_custom_ui::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_custom_ui::populate()
|
||||
void menu_custom_ui::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
uint32_t arrow_flags;
|
||||
item_append(_("Fonts"), "", 0, (void *)(uintptr_t)FONT_MENU);
|
||||
@ -338,7 +338,7 @@ void menu_font_ui::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_font_ui::populate()
|
||||
void menu_font_ui::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
// set filter arrow
|
||||
uint32_t arrow_flags;
|
||||
@ -501,7 +501,7 @@ void menu_colors_ui::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_colors_ui::populate()
|
||||
void menu_colors_ui::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
item_append(_("Normal text"), "", 0, (void *)(uintptr_t)MUI_TEXT_COLOR);
|
||||
item_append(_("Selected color"), "", 0, (void *)(uintptr_t)MUI_SELECTED_COLOR);
|
||||
@ -824,7 +824,7 @@ void menu_rgb_ui::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_rgb_ui::populate()
|
||||
void menu_rgb_ui::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
// set filter arrow
|
||||
uint32_t arrow_flags = FLAG_LEFT_ARROW | FLAG_RIGHT_ARROW;
|
||||
@ -1035,7 +1035,7 @@ void menu_palette_sel::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_palette_sel::populate()
|
||||
void menu_palette_sel::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
for (unsigned x = 0; x < ARRAY_LENGTH(s_palette); ++x)
|
||||
item_append(_(s_palette[x].first), s_palette[x].second, 0, (void *)(uintptr_t)(x + 1));
|
||||
@ -1087,7 +1087,7 @@ void menu_palette_sel::draw(uint32_t flags)
|
||||
}
|
||||
|
||||
// account for extra space at the top and bottom
|
||||
auto visible_extra_menu_height = customtop + custombottom;
|
||||
auto visible_extra_menu_height = get_customtop() + get_custombottom();
|
||||
|
||||
// add a little bit of slop for rounding
|
||||
visible_width += 0.01f;
|
||||
@ -1109,7 +1109,7 @@ void menu_palette_sel::draw(uint32_t flags)
|
||||
float visible_top = (1.0f - (visible_main_menu_height + visible_extra_menu_height)) * 0.5f;
|
||||
|
||||
// if the menu is at the bottom of the extra, adjust
|
||||
visible_top += customtop;
|
||||
visible_top += get_customtop();
|
||||
|
||||
// first add us a box
|
||||
float x1 = visible_left - UI_BOX_LR_BORDER;
|
||||
@ -1231,7 +1231,7 @@ void menu_palette_sel::draw(uint32_t flags)
|
||||
}
|
||||
|
||||
// if there is something special to add, do it by calling the virtual method
|
||||
custom_render(get_selection_ref(), customtop, custombottom, x1, y1, x2, y2);
|
||||
custom_render(get_selection_ref(), get_customtop(), get_custombottom(), x1, y1, x2, y2);
|
||||
|
||||
// return the number of visible lines, minus 1 for top arrow and 1 for bottom arrow
|
||||
m_visible_items = visible_lines - (top_line != 0) - (top_line + visible_lines != item.size());
|
||||
|
@ -8,11 +8,11 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef MAME_FRONTEND_UI_CUSTUI_H
|
||||
#define MAME_FRONTEND_UI_CUSTUI_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ui/menu.h"
|
||||
|
||||
namespace ui {
|
||||
@ -38,7 +38,7 @@ private:
|
||||
HIDE_MENU
|
||||
};
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
static const char *const HIDE_STATUS[];
|
||||
@ -70,7 +70,7 @@ private:
|
||||
MUI_ITALIC
|
||||
};
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
void list();
|
||||
@ -126,7 +126,7 @@ private:
|
||||
const char *option;
|
||||
};
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
s_color_table m_color_table[MUI_RESTORE];
|
||||
@ -156,7 +156,7 @@ private:
|
||||
PALETTE_CHOOSE
|
||||
};
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
void inkey_special(const event *menu_event);
|
||||
@ -185,7 +185,7 @@ private:
|
||||
// draw palette menu
|
||||
virtual void draw(uint32_t flags) override;
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
static std::pair<const char *, const char *> const s_palette[];
|
||||
|
@ -126,7 +126,7 @@ void menu_dats_view::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_dats_view::populate()
|
||||
void menu_dats_view::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
bool paused = machine().paused();
|
||||
if (!paused)
|
||||
@ -160,7 +160,7 @@ void menu_dats_view::draw(uint32_t flags)
|
||||
hover = item.size() + 1;
|
||||
visible_items = item.size() - 2;
|
||||
float extra_height = 2.0f * line_height;
|
||||
float visible_extra_menu_height = customtop + custombottom + extra_height;
|
||||
float visible_extra_menu_height = get_customtop() + get_custombottom() + extra_height;
|
||||
|
||||
// locate mouse
|
||||
mouse_hit = false;
|
||||
@ -179,7 +179,7 @@ void menu_dats_view::draw(uint32_t flags)
|
||||
float visible_top = (1.0f - (visible_main_menu_height + visible_extra_menu_height)) * 0.5f;
|
||||
|
||||
// if the menu is at the bottom of the extra, adjust
|
||||
visible_top += customtop;
|
||||
visible_top += get_customtop();
|
||||
|
||||
// compute left box size
|
||||
float x1 = visible_left;
|
||||
@ -277,7 +277,7 @@ void menu_dats_view::draw(uint32_t flags)
|
||||
}
|
||||
|
||||
// if there is something special to add, do it by calling the virtual method
|
||||
custom_render(get_selection_ref(), customtop, custombottom, x1, y1, x2, y2);
|
||||
custom_render(get_selection_ref(), get_customtop(), get_custombottom(), x1, y1, x2, y2);
|
||||
|
||||
// return the number of visible lines, minus 1 for top arrow and 1 for bottom arrow
|
||||
m_visible_items = m_visible_lines - (top_line != 0) - (top_line + m_visible_lines != visible_items);
|
||||
|
@ -9,11 +9,11 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef MAME_FRONTEND_UI_DATMENU_H
|
||||
#define MAME_FRONTEND_UI_DATMENU_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ui/menu.h"
|
||||
|
||||
#include <string>
|
||||
@ -23,6 +23,7 @@
|
||||
struct ui_software_info;
|
||||
|
||||
namespace ui {
|
||||
|
||||
//-------------------------------------------------
|
||||
// class dats menu
|
||||
//-------------------------------------------------
|
||||
@ -41,7 +42,7 @@ private:
|
||||
// draw dats menu
|
||||
virtual void draw(uint32_t flags) override;
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
int visible_items;
|
||||
|
@ -26,7 +26,7 @@ menu_device_config::menu_device_config(mame_ui_manager &mui, render_container &c
|
||||
m_mounted = slot->device().subdevice(option->name()) != nullptr;
|
||||
}
|
||||
|
||||
void menu_device_config::populate()
|
||||
void menu_device_config::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
std::ostringstream str;
|
||||
device_t *dev;
|
||||
|
@ -23,7 +23,7 @@ public:
|
||||
virtual ~menu_device_config() override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
device_slot_interface *m_owner;
|
||||
|
@ -98,7 +98,7 @@ void menu_directory::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_directory::populate()
|
||||
void menu_directory::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
for (auto & elem : s_folders)
|
||||
item_append(_(elem.name), "", 0, (void *)(uintptr_t)elem.action);
|
||||
@ -181,7 +181,7 @@ void menu_display_actual::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_display_actual::populate()
|
||||
void menu_display_actual::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
m_tempbuf = string_format(_("Current %1$s Folders"), _(s_folders[m_ref].name));
|
||||
if (ui().options().exists(s_folders[m_ref].option))
|
||||
@ -446,7 +446,7 @@ void menu_add_change_folder::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_add_change_folder::populate()
|
||||
void menu_add_change_folder::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
// open a path
|
||||
const char *volume_name = nullptr;
|
||||
@ -608,7 +608,7 @@ void menu_remove_folder::handle()
|
||||
// populate menu
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_remove_folder::populate()
|
||||
void menu_remove_folder::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
int folders_count = 0;
|
||||
for (auto & elem : m_folders)
|
||||
|
@ -33,7 +33,7 @@ protected:
|
||||
virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2) override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
};
|
||||
|
||||
@ -57,7 +57,7 @@ private:
|
||||
REMOVE,
|
||||
};
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
std::string m_tempbuf, m_searchpath;
|
||||
@ -79,7 +79,7 @@ protected:
|
||||
virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2) override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
std::string m_searchpath;
|
||||
@ -103,7 +103,7 @@ protected:
|
||||
virtual bool menu_has_search_active() override { return (m_search[0] != 0); }
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
int m_ref;
|
||||
|
@ -74,7 +74,7 @@ menu_confirm_save_as::~menu_confirm_save_as()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_confirm_save_as::populate()
|
||||
void menu_confirm_save_as::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
item_append(_("File Already Exists - Override?"), "", FLAG_DISABLE, nullptr);
|
||||
item_append(menu_item_type::SEPARATOR);
|
||||
@ -152,7 +152,7 @@ void menu_file_create::custom_render(void *selectedref, float top, float bottom,
|
||||
// populate - populates the file creator menu
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_file_create::populate()
|
||||
void menu_file_create::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
std::string buffer;
|
||||
const image_device_format *format;
|
||||
@ -261,7 +261,7 @@ menu_select_format::~menu_select_format()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_select_format::populate()
|
||||
void menu_select_format::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
item_append(_("Select image format"), "", FLAG_DISABLE, nullptr);
|
||||
for (int i = 0; i < m_total_usable; i++)
|
||||
|
@ -8,11 +8,11 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef MAME_FRONTEND_UI_FILECREATE_H
|
||||
#define MAME_FRONTEND_UI_FILECREATE_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ui/menu.h"
|
||||
|
||||
class floppy_image_format_t;
|
||||
@ -27,7 +27,7 @@ public:
|
||||
virtual ~menu_confirm_save_as() override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
bool *m_yes;
|
||||
@ -46,7 +46,7 @@ protected:
|
||||
virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2) override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
bool & m_ok;
|
||||
@ -67,7 +67,7 @@ public:
|
||||
virtual ~menu_select_format() override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
// internal state
|
||||
|
@ -103,7 +103,7 @@ void menu_file_manager::fill_image_line(device_image_interface *img, std::string
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_file_manager::populate()
|
||||
void menu_file_manager::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
std::string tmp_inst, tmp_name;
|
||||
bool first_entry = true;
|
||||
|
@ -30,7 +30,7 @@ protected:
|
||||
virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2) override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
void fill_image_line(device_image_interface *img, std::string &instance, std::string &filename);
|
||||
|
@ -288,7 +288,7 @@ void menu_file_selector::append_entry_menu_item(const file_selector_entry *entry
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_file_selector::populate()
|
||||
void menu_file_selector::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
util::zippath_directory *directory = nullptr;
|
||||
osd_file::error err;
|
||||
@ -507,7 +507,7 @@ menu_select_rw::~menu_select_rw()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_select_rw::populate()
|
||||
void menu_select_rw::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
item_append(_("Select access mode"), "", FLAG_DISABLE, nullptr);
|
||||
item_append(_("Read-only"), "", 0, itemref_from_result(result::READONLY));
|
||||
|
@ -8,11 +8,11 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef MAME_FRONTEND_UI_FILESEL_H
|
||||
#define MAME_FRONTEND_UI_FILESEL_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ui/menu.h"
|
||||
|
||||
namespace ui {
|
||||
@ -67,7 +67,7 @@ private:
|
||||
std::string m_hover_directory;
|
||||
std::string m_filename;
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
// methods
|
||||
@ -95,7 +95,7 @@ public:
|
||||
menu_select_rw(mame_ui_manager &mui, render_container &container,
|
||||
bool can_in_place, result &result);
|
||||
virtual ~menu_select_rw() override;
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
static void *itemref_from_result(result result);
|
||||
|
@ -168,7 +168,7 @@ void menu_control_device_image::hook_load(const std::string &name)
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_control_device_image::populate()
|
||||
void menu_control_device_image::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -65,7 +65,7 @@ private:
|
||||
std::string m_software_info_name;
|
||||
|
||||
// methods
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
void test_create(bool &can_create, bool &need_confirm);
|
||||
void load_software_part();
|
||||
};
|
||||
|
@ -353,7 +353,7 @@ menu_game_info::~menu_game_info()
|
||||
{
|
||||
}
|
||||
|
||||
void menu_game_info::populate()
|
||||
void menu_game_info::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
std::string tempstring = ui().machine_info().game_info_string();
|
||||
item_append(std::move(tempstring), "", FLAG_MULTILINE, nullptr);
|
||||
@ -379,7 +379,7 @@ menu_image_info::~menu_image_info()
|
||||
{
|
||||
}
|
||||
|
||||
void menu_image_info::populate()
|
||||
void menu_image_info::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
item_append(machine().system().description, "", FLAG_DISABLE, nullptr);
|
||||
item_append("", "", FLAG_DISABLE, nullptr);
|
||||
|
@ -8,14 +8,15 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef MAME_FRONTEND_UI_INFO_H
|
||||
#define MAME_FRONTEND_UI_INFO_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ui/menu.h"
|
||||
|
||||
namespace ui {
|
||||
|
||||
class machine_info
|
||||
{
|
||||
public:
|
||||
@ -54,7 +55,7 @@ public:
|
||||
virtual ~menu_game_info() override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
};
|
||||
|
||||
@ -66,7 +67,7 @@ public:
|
||||
virtual ~menu_image_info() override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
void image_info(device_image_interface *image);
|
||||
};
|
||||
|
@ -23,7 +23,7 @@ menu_pty_info::~menu_pty_info()
|
||||
{
|
||||
}
|
||||
|
||||
void menu_pty_info::populate()
|
||||
void menu_pty_info::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
item_append(_("Pseudo terminals"), "", FLAG_DISABLE, nullptr);
|
||||
item_append("", "", FLAG_DISABLE, nullptr);
|
||||
|
@ -8,11 +8,11 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef MAME_FRONTEND_UI_INFO_PTY_H
|
||||
#define MAME_FRONTEND_UI_INFO_PTY_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ui/menu.h"
|
||||
|
||||
namespace ui {
|
||||
@ -23,7 +23,7 @@ public:
|
||||
virtual ~menu_pty_info() override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
};
|
||||
|
||||
|
@ -45,7 +45,7 @@ menu_input_groups::menu_input_groups(mame_ui_manager &mui, render_container &con
|
||||
{
|
||||
}
|
||||
|
||||
void menu_input_groups::populate()
|
||||
void menu_input_groups::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
int player;
|
||||
|
||||
@ -88,7 +88,7 @@ menu_input_general::menu_input_general(mame_ui_manager &mui, render_container &c
|
||||
group = _group;
|
||||
}
|
||||
|
||||
void menu_input_general::populate()
|
||||
void menu_input_general::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
input_item_data *itemlist = nullptr;
|
||||
int suborder[SEQ_TYPE_TOTAL];
|
||||
@ -151,7 +151,7 @@ menu_input_specific::menu_input_specific(mame_ui_manager &mui, render_container
|
||||
{
|
||||
}
|
||||
|
||||
void menu_input_specific::populate()
|
||||
void menu_input_specific::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
input_item_data *itemlist = nullptr;
|
||||
int suborder[SEQ_TYPE_TOTAL];
|
||||
@ -538,7 +538,7 @@ menu_settings::menu_settings(mame_ui_manager &mui, render_container &container,
|
||||
type = _type;
|
||||
}
|
||||
|
||||
void menu_settings::populate()
|
||||
void menu_settings::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
dip_descriptor **diplist_tailptr;
|
||||
std::string prev_owner;
|
||||
@ -812,7 +812,7 @@ menu_analog::menu_analog(mame_ui_manager &mui, render_container &container) : me
|
||||
{
|
||||
}
|
||||
|
||||
void menu_analog::populate()
|
||||
void menu_analog::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
std::string prev_owner;
|
||||
bool first_entry = true;
|
||||
|
@ -8,11 +8,11 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef MAME_FRONTEND_UI_INPUTMAP_H
|
||||
#define MAME_FRONTEND_UI_INPUTMAP_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ui/menu.h"
|
||||
|
||||
|
||||
@ -24,7 +24,7 @@ public:
|
||||
virtual ~menu_input_groups() override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
};
|
||||
|
||||
@ -83,7 +83,7 @@ public:
|
||||
virtual ~menu_input_general() override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void update_input(struct input_item_data *seqchangeditem) override;
|
||||
|
||||
int group;
|
||||
@ -96,7 +96,7 @@ public:
|
||||
virtual ~menu_input_specific() override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void update_input(struct input_item_data *seqchangeditem) override;
|
||||
};
|
||||
|
||||
@ -121,7 +121,7 @@ protected:
|
||||
int type;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
};
|
||||
|
||||
@ -169,7 +169,7 @@ private:
|
||||
int defvalue;
|
||||
};
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
};
|
||||
|
||||
|
@ -49,7 +49,7 @@ menu_main::menu_main(mame_ui_manager &mui, render_container &container) : menu(m
|
||||
{
|
||||
}
|
||||
|
||||
void menu_main::populate()
|
||||
void menu_main::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
/* add input menu items */
|
||||
item_append(_("Input (general)"), "", 0, (void *)INPUT_GROUPS);
|
||||
|
@ -51,7 +51,7 @@ private:
|
||||
QUIT_GAME
|
||||
};
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
};
|
||||
|
||||
|
@ -233,6 +233,8 @@ menu::menu(mame_ui_manager &mui, render_container &container)
|
||||
, m_parent()
|
||||
, m_event()
|
||||
, m_pool(nullptr)
|
||||
, m_customtop(0.0f)
|
||||
, m_custombottom(0.0f)
|
||||
, m_resetpos(0)
|
||||
, m_resetref(nullptr)
|
||||
{
|
||||
@ -399,6 +401,17 @@ void menu::item_append(std::string &&text, std::string &&subtext, uint32_t flags
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// repopulate - repopulate menu items
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu::repopulate(reset_options options)
|
||||
{
|
||||
reset(options);
|
||||
populate(m_customtop, m_custombottom);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// process - process a menu, drawing it
|
||||
// and returning any interesting events
|
||||
@ -541,7 +554,7 @@ void menu::draw(uint32_t flags)
|
||||
}
|
||||
|
||||
// account for extra space at the top and bottom
|
||||
float const visible_extra_menu_height = customtop + custombottom;
|
||||
float const visible_extra_menu_height = m_customtop + m_custombottom;
|
||||
|
||||
// add a little bit of slop for rounding
|
||||
visible_width += 0.01f;
|
||||
@ -560,7 +573,7 @@ void menu::draw(uint32_t flags)
|
||||
|
||||
// compute top/left of inner menu area by centering
|
||||
float const visible_left = (1.0f - visible_width) * 0.5f;
|
||||
float const visible_top = ((1.0f - visible_main_menu_height - visible_extra_menu_height) * 0.5f) + customtop;
|
||||
float const visible_top = ((1.0f - visible_main_menu_height - visible_extra_menu_height) * 0.5f) + m_customtop;
|
||||
|
||||
// first add us a box
|
||||
float const x1 = visible_left - UI_BOX_LR_BORDER;
|
||||
@ -776,7 +789,7 @@ void menu::draw(uint32_t flags)
|
||||
}
|
||||
|
||||
// if there is something special to add, do it by calling the virtual method
|
||||
custom_render(get_selection_ref(), customtop, custombottom, x1, y1, x2, y2);
|
||||
custom_render(get_selection_ref(), m_customtop, m_custombottom, x1, y1, x2, y2);
|
||||
}
|
||||
|
||||
void menu::custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2)
|
||||
@ -1135,7 +1148,7 @@ void menu::validate_selection(int scandir)
|
||||
void menu::do_handle()
|
||||
{
|
||||
if (item.size() < 2)
|
||||
populate();
|
||||
populate(m_customtop, m_custombottom);
|
||||
handle();
|
||||
}
|
||||
|
||||
|
@ -51,8 +51,6 @@ public:
|
||||
virtual ~menu();
|
||||
|
||||
int hover; // which item is being hovered over
|
||||
float customtop; // amount of extra height to add at the top
|
||||
float custombottom; // amount of extra height to add at the bottom
|
||||
std::vector<menu_item> item; // array of items
|
||||
|
||||
// append a new item to the end of the menu
|
||||
@ -136,7 +134,7 @@ protected:
|
||||
void *itemref; // reference for the selected item
|
||||
menu_item_type type; // item type (eventually will go away when itemref is proper ui_menu_item class rather than void*)
|
||||
int iptkey; // one of the IPT_* values from inptport.h
|
||||
char32_t unichar; // unicode character if iptkey == IPT_SPECIAL
|
||||
char32_t unichar; // unicode character if iptkey == IPT_SPECIAL
|
||||
render_bounds mouse; // mouse position if iptkey == IPT_CUSTOM
|
||||
};
|
||||
|
||||
@ -170,6 +168,9 @@ protected:
|
||||
|
||||
void add_cleanup_callback(cleanup_callback &&callback) { m_global_state->add_cleanup_callback(std::move(callback)); }
|
||||
|
||||
// repopulate the menu items
|
||||
void repopulate(reset_options options);
|
||||
|
||||
// process a menu, drawing it and returning any interesting events
|
||||
const event *process(uint32_t flags, float x0 = 0.0f, float y0 = 0.0f);
|
||||
void process_parent() { m_parent->process(PROCESS_NOINPUT); }
|
||||
@ -189,6 +190,10 @@ protected:
|
||||
// test if the given key is pressed and we haven't already reported a key
|
||||
bool exclusive_input_pressed(int &iptkey, int key, int repeat);
|
||||
|
||||
// layout
|
||||
float get_customtop() const { return m_customtop; }
|
||||
float get_custombottom() const { return m_custombottom; }
|
||||
|
||||
// highlight
|
||||
void highlight(float x0, float y0, float x1, float y1, rgb_t bgcolor);
|
||||
render_texture *hilight_main_texture() { return m_global_state->hilight_main_texture(); }
|
||||
@ -226,8 +231,6 @@ protected:
|
||||
return ((actual > min) ? FLAG_LEFT_ARROW : 0) | ((actual < max) ? FLAG_RIGHT_ARROW : 0);
|
||||
}
|
||||
|
||||
int right_visible_lines; // right box lines
|
||||
|
||||
private:
|
||||
class global_state : public widgets_manager
|
||||
{
|
||||
@ -270,9 +273,9 @@ private:
|
||||
|
||||
struct pool
|
||||
{
|
||||
pool *next; // chain to next one
|
||||
uint8_t *top; // top of the pool
|
||||
uint8_t *end; // end of the pool
|
||||
pool *next; // chain to next one
|
||||
uint8_t *top; // top of the pool
|
||||
uint8_t *end; // end of the pool
|
||||
};
|
||||
|
||||
// request the specific handling of the game selection main menu
|
||||
@ -280,7 +283,7 @@ private:
|
||||
void set_special_main_menu(bool disable);
|
||||
|
||||
// To be reimplemented in the menu subclass
|
||||
virtual void populate() = 0;
|
||||
virtual void populate(float &customtop, float &custombottom) = 0;
|
||||
|
||||
// To be reimplemented in the menu subclass
|
||||
virtual void handle() = 0;
|
||||
@ -304,6 +307,9 @@ private:
|
||||
event m_event; // the UI event that occurred
|
||||
pool *m_pool; // list of memory pools
|
||||
|
||||
float m_customtop; // amount of extra height to add at the top
|
||||
float m_custombottom; // amount of extra height to add at the bottom
|
||||
|
||||
int m_resetpos; // reset position
|
||||
void *m_resetref; // reset reference
|
||||
|
||||
|
@ -37,7 +37,7 @@ menu_keyboard_mode::menu_keyboard_mode(mame_ui_manager &mui, render_container &c
|
||||
{
|
||||
}
|
||||
|
||||
void menu_keyboard_mode::populate()
|
||||
void menu_keyboard_mode::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
bool natural = machine().ioport().natkeyboard().in_use();
|
||||
item_append(_("Keyboard Mode:"), natural ? _("Natural") : _("Emulated"), natural ? FLAG_LEFT_ARROW : FLAG_RIGHT_ARROW, nullptr);
|
||||
@ -74,7 +74,7 @@ menu_bios_selection::menu_bios_selection(mame_ui_manager &mui, render_container
|
||||
{
|
||||
}
|
||||
|
||||
void menu_bios_selection::populate()
|
||||
void menu_bios_selection::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
/* cycle through all devices for this system */
|
||||
for (device_t &device : device_iterator(machine().root_device()))
|
||||
@ -156,7 +156,7 @@ menu_network_devices::~menu_network_devices()
|
||||
network device menu
|
||||
-------------------------------------------------*/
|
||||
|
||||
void menu_network_devices::populate()
|
||||
void menu_network_devices::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
/* cycle through all devices for this system */
|
||||
for (device_network_interface &network : network_interface_iterator(machine().root_device()))
|
||||
@ -211,9 +211,8 @@ void menu_bookkeeping::handle()
|
||||
curtime = machine().time();
|
||||
if (prevtime.seconds() != curtime.seconds())
|
||||
{
|
||||
reset(reset_options::SELECT_FIRST);
|
||||
prevtime = curtime;
|
||||
populate();
|
||||
repopulate(reset_options::SELECT_FIRST);
|
||||
}
|
||||
|
||||
/* process the menu */
|
||||
@ -233,7 +232,7 @@ menu_bookkeeping::~menu_bookkeeping()
|
||||
{
|
||||
}
|
||||
|
||||
void menu_bookkeeping::populate()
|
||||
void menu_bookkeeping::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
int tickets = machine().bookkeeping().get_dispensed_tickets();
|
||||
std::ostringstream tempstring;
|
||||
@ -375,7 +374,7 @@ menu_crosshair::menu_crosshair(mame_ui_manager &mui, render_container &container
|
||||
{
|
||||
}
|
||||
|
||||
void menu_crosshair::populate()
|
||||
void menu_crosshair::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
crosshair_item_data *data;
|
||||
char temp_text[16];
|
||||
@ -532,7 +531,7 @@ menu_quit_game::~menu_quit_game()
|
||||
{
|
||||
}
|
||||
|
||||
void menu_quit_game::populate()
|
||||
void menu_quit_game::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
}
|
||||
|
||||
@ -662,7 +661,7 @@ void menu_export::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_export::populate()
|
||||
void menu_export::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
// add options items
|
||||
item_append(_("Export list in XML format (like -listxml)"), "", 0, (void *)(uintptr_t)1);
|
||||
@ -769,7 +768,7 @@ void menu_machine_configure::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_machine_configure::populate()
|
||||
void menu_machine_configure::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
// add options items
|
||||
item_append(_("Bios"), "", FLAG_DISABLE | FLAG_UI_HEADING, nullptr);
|
||||
@ -934,7 +933,7 @@ void menu_plugins_configure::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_plugins_configure::populate()
|
||||
void menu_plugins_configure::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
plugin_options& plugins = mame_machine_manager::instance()->plugins();
|
||||
|
||||
|
@ -8,11 +8,11 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef MAME_FRONTEND_UI_MISCMENU_H
|
||||
#define MAME_FRONTEND_UI_MISCMENU_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "crsshair.h"
|
||||
#include "emuopts.h"
|
||||
|
||||
@ -28,7 +28,7 @@ public:
|
||||
virtual ~menu_keyboard_mode();
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
};
|
||||
|
||||
@ -39,7 +39,7 @@ public:
|
||||
virtual ~menu_network_devices();
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
};
|
||||
|
||||
@ -50,7 +50,7 @@ public:
|
||||
virtual ~menu_bookkeeping();
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
attotime prevtime;
|
||||
@ -84,7 +84,7 @@ private:
|
||||
char next_name[CROSSHAIR_PIC_NAME_LENGTH + 1];
|
||||
};
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
};
|
||||
|
||||
@ -95,7 +95,7 @@ public:
|
||||
virtual ~menu_quit_game();
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
};
|
||||
|
||||
@ -106,7 +106,7 @@ public:
|
||||
virtual ~menu_bios_selection();
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
};
|
||||
|
||||
@ -122,7 +122,7 @@ public:
|
||||
virtual ~menu_export();
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
std::vector<const game_driver*> m_list;
|
||||
@ -156,7 +156,7 @@ private:
|
||||
LAST = ADVANCED
|
||||
};
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
const game_driver *m_drv;
|
||||
@ -179,7 +179,7 @@ public:
|
||||
virtual ~menu_plugins_configure();
|
||||
|
||||
protected:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2) override;
|
||||
|
@ -220,7 +220,7 @@ void menu_game_options::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_game_options::populate()
|
||||
void menu_game_options::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
if (machine().options().ui() != emu_options::UI_SIMPLE)
|
||||
{
|
||||
|
@ -46,7 +46,7 @@ private:
|
||||
SAVE_CONFIG
|
||||
};
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
uint16_t m_main;
|
||||
|
@ -34,7 +34,7 @@ menu_plugin::menu_plugin(mame_ui_manager &mui, render_container &container) :
|
||||
{
|
||||
}
|
||||
|
||||
void menu_plugin::populate()
|
||||
void menu_plugin::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
for (auto &curplugin : m_plugins)
|
||||
item_append(curplugin, "", 0, (void *)curplugin.c_str());
|
||||
@ -104,7 +104,7 @@ void menu_plugin_opt::handle()
|
||||
}
|
||||
}
|
||||
|
||||
void menu_plugin_opt::populate()
|
||||
void menu_plugin_opt::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
std::vector<std::tuple<std::string, std::string, std::string>> menu_list;
|
||||
mame_machine_manager::instance()->lua()->menu_populate(m_menu, menu_list);
|
||||
|
@ -31,7 +31,7 @@ public:
|
||||
virtual ~menu_plugin();
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
std::vector<std::string> &m_plugins;
|
||||
@ -44,7 +44,7 @@ public:
|
||||
virtual ~menu_plugin_opt();
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
std::string m_menu;
|
||||
|
@ -116,7 +116,7 @@ void menu_selector::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_selector::populate()
|
||||
void menu_selector::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
if (!m_search.empty())
|
||||
{
|
||||
|
@ -42,7 +42,7 @@ protected:
|
||||
private:
|
||||
enum { VISIBLE_GAMES_IN_SEARCH = 200 };
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
void find_matches(const char *str);
|
||||
|
@ -493,7 +493,7 @@ void menu_select_game::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_select_game::populate()
|
||||
void menu_select_game::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
ui_globals::redraw_icon = true;
|
||||
ui_globals::switch_image = true;
|
||||
|
@ -50,7 +50,7 @@ private:
|
||||
|
||||
const game_driver *m_searchlist[VISIBLE_GAMES_IN_SEARCH + 1];
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
// draw left panel
|
||||
|
@ -163,6 +163,7 @@ menu_select_launch::menu_select_launch(mame_ui_manager &mui, render_container &c
|
||||
, m_focus(focused_menu::main)
|
||||
, m_pressed(false)
|
||||
, m_repeat(0)
|
||||
, m_right_visible_lines(0)
|
||||
{
|
||||
// set up persistent cache for machine run
|
||||
{
|
||||
@ -876,7 +877,7 @@ void menu_select_launch::handle_keys(uint32_t flags, int &iptkey)
|
||||
if (!rightclose && m_focus == focused_menu::rightbottom)
|
||||
{
|
||||
iptkey = IPT_UI_DOWN_PANEL;
|
||||
m_topline_datsview -= right_visible_lines - 1;
|
||||
m_topline_datsview -= m_right_visible_lines - 1;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -898,7 +899,7 @@ void menu_select_launch::handle_keys(uint32_t flags, int &iptkey)
|
||||
if (!rightclose && m_focus == focused_menu::rightbottom)
|
||||
{
|
||||
iptkey = IPT_UI_DOWN_PANEL;
|
||||
m_topline_datsview += right_visible_lines - 1;
|
||||
m_topline_datsview += m_right_visible_lines - 1;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1041,9 +1042,9 @@ void menu_select_launch::handle_events(uint32_t flags, event &ev)
|
||||
else if (hover == HOVER_UI_LEFT)
|
||||
ev.iptkey = IPT_UI_LEFT;
|
||||
else if (hover == HOVER_DAT_DOWN)
|
||||
m_topline_datsview += right_visible_lines - 1;
|
||||
m_topline_datsview += m_right_visible_lines - 1;
|
||||
else if (hover == HOVER_DAT_UP)
|
||||
m_topline_datsview -= right_visible_lines - 1;
|
||||
m_topline_datsview -= m_right_visible_lines - 1;
|
||||
else if (hover == HOVER_LPANEL_ARROW)
|
||||
{
|
||||
if (ui_globals::panels_status == HIDE_LEFT_PANEL)
|
||||
@ -1200,7 +1201,7 @@ void menu_select_launch::draw(uint32_t flags)
|
||||
hover = item.size() + 1;
|
||||
visible_items = (m_is_swlist) ? item.size() - 2 : item.size() - 2 - skip_main_items;
|
||||
float extra_height = (m_is_swlist) ? 2.0f * line_height : (2.0f + skip_main_items) * line_height;
|
||||
float visible_extra_menu_height = customtop + custombottom + extra_height;
|
||||
float visible_extra_menu_height = get_customtop() + get_custombottom() + extra_height;
|
||||
|
||||
// locate mouse
|
||||
mouse_hit = false;
|
||||
@ -1228,7 +1229,7 @@ void menu_select_launch::draw(uint32_t flags)
|
||||
float visible_top = (1.0f - (visible_main_menu_height + visible_extra_menu_height)) * 0.5f;
|
||||
|
||||
// if the menu is at the bottom of the extra, adjust
|
||||
visible_top += customtop;
|
||||
visible_top += get_customtop();
|
||||
|
||||
// compute left box size
|
||||
float x1 = visible_left - UI_BOX_LR_BORDER;
|
||||
@ -1408,7 +1409,7 @@ void menu_select_launch::draw(uint32_t flags)
|
||||
x2 = primary_left + primary_width + UI_BOX_LR_BORDER;
|
||||
|
||||
// if there is something special to add, do it by calling the virtual method
|
||||
custom_render(get_selection_ref(), customtop, custombottom, x1, y1, x2, y2);
|
||||
custom_render(get_selection_ref(), get_customtop(), get_custombottom(), x1, y1, x2, y2);
|
||||
|
||||
// return the number of visible lines, minus 1 for top arrow and 1 for bottom arrow
|
||||
m_visible_items = m_visible_lines - (top_line != 0) - (top_line + m_visible_lines != visible_items);
|
||||
@ -2066,7 +2067,7 @@ void menu_select_launch::infos_render(float origx1, float origy1, float origx2,
|
||||
oy1 += (line_height * text_size);
|
||||
}
|
||||
// return the number of visible lines, minus 1 for top arrow and 1 for bottom arrow
|
||||
right_visible_lines = r_visible_lines - (m_topline_datsview != 0) - (m_topline_datsview + r_visible_lines != m_total_lines);
|
||||
m_right_visible_lines = r_visible_lines - (m_topline_datsview != 0) - (m_topline_datsview + r_visible_lines != m_total_lines);
|
||||
}
|
||||
|
||||
} // namespace ui
|
||||
|
@ -182,9 +182,12 @@ private:
|
||||
cache_ptr m_cache;
|
||||
bool m_is_swlist;
|
||||
focused_menu m_focus;
|
||||
bool m_pressed; // mouse button held down
|
||||
bool m_pressed; // mouse button held down
|
||||
osd_ticks_t m_repeat;
|
||||
|
||||
int m_right_visible_lines; // right box lines
|
||||
|
||||
|
||||
render_texture *m_icons_texture[MAX_ICONS_RENDER];
|
||||
bitmap_ptr m_icons_bitmap[MAX_ICONS_RENDER];
|
||||
game_driver const *m_old_icons[MAX_ICONS_RENDER];
|
||||
|
@ -417,7 +417,7 @@ void menu_select_software::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_select_software::populate()
|
||||
void menu_select_software::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
uint32_t flags_ui = FLAG_LEFT_ARROW | FLAG_RIGHT_ARROW;
|
||||
m_has_empty_start = true;
|
||||
@ -1265,7 +1265,7 @@ software_parts::~software_parts()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void software_parts::populate()
|
||||
void software_parts::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
for (auto & elem : m_parts)
|
||||
item_append(elem.first, elem.second, 0, (void *)&elem);
|
||||
@ -1363,7 +1363,7 @@ bios_selection::~bios_selection()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void bios_selection::populate()
|
||||
void bios_selection::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
for (auto & elem : m_bios)
|
||||
item_append(elem.first, "", 0, (void *)&elem.first);
|
||||
|
@ -7,11 +7,11 @@
|
||||
UI software menu.
|
||||
|
||||
***************************************************************************/
|
||||
#pragma once
|
||||
|
||||
#ifndef MAME_FRONTEND_UI_SELSOFT_H
|
||||
#define MAME_FRONTEND_UI_SELSOFT_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ui/custmenu.h"
|
||||
#include "ui/selmenu.h"
|
||||
|
||||
@ -37,7 +37,7 @@ private:
|
||||
s_filter m_filter;
|
||||
int highlight;
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
// draw left panel
|
||||
@ -78,7 +78,7 @@ protected:
|
||||
virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2) override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
ui_software_info *m_uiinfo;
|
||||
@ -95,7 +95,7 @@ protected:
|
||||
virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2) override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
void *m_driver;
|
||||
|
@ -214,7 +214,7 @@ void simple_menu_select_game::inkey_special(const event *menu_event)
|
||||
// populate - populate the game select menu
|
||||
//-------------------------------------------------
|
||||
|
||||
void simple_menu_select_game::populate()
|
||||
void simple_menu_select_game::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
int matchcount;
|
||||
int curitem;
|
||||
|
@ -8,11 +8,11 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef MAME_FRONTEND_UI_SIMPLESELGAME_H
|
||||
#define MAME_FRONTEND_UI_SIMPLESELGAME_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "menu.h"
|
||||
|
||||
class driver_enumerator;
|
||||
@ -33,7 +33,7 @@ protected:
|
||||
private:
|
||||
enum { VISIBLE_GAMES_IN_LIST = 15 };
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
// internal methods
|
||||
|
@ -135,7 +135,7 @@ void menu_sliders::handle()
|
||||
// menu
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_sliders::populate()
|
||||
void menu_sliders::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
std::string tempstring;
|
||||
|
||||
|
@ -33,7 +33,7 @@ private:
|
||||
INPUT_SPECIFIC,
|
||||
};
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
bool m_menuless_mode;
|
||||
|
@ -151,7 +151,7 @@ menu_slot_devices::menu_slot_devices(mame_ui_manager &mui, render_container &con
|
||||
{
|
||||
}
|
||||
|
||||
void menu_slot_devices::populate()
|
||||
void menu_slot_devices::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
/* cycle through all devices for this system */
|
||||
for (device_slot_interface &slot : slot_interface_iterator(machine().root_device()))
|
||||
|
@ -24,7 +24,7 @@ public:
|
||||
virtual ~menu_slot_devices() override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
device_slot_option *slot_get_current_option(device_slot_interface &slot);
|
||||
|
@ -124,7 +124,7 @@ void menu_sound_options::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_sound_options::populate()
|
||||
void menu_sound_options::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
uint32_t arrow_flags = get_arrow_flags(uint16_t(0), uint16_t(ARRAY_LENGTH(m_sound_rate) - 1), m_cur_rates);
|
||||
m_sample_rate = m_sound_rate[m_cur_rates];
|
||||
|
@ -8,11 +8,11 @@
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef MAME_FRONTEND_UI_SNDMENU_H
|
||||
#define MAME_FRONTEND_UI_SNDMENU_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ui/menu.h"
|
||||
|
||||
namespace ui {
|
||||
@ -36,10 +36,10 @@ private:
|
||||
ENABLE_SAMPLES
|
||||
};
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
uint16_t m_cur_rates;
|
||||
uint16_t m_cur_rates;
|
||||
static const int m_sound_rate[];
|
||||
int m_sample_rate;
|
||||
bool m_samples, m_sound;
|
||||
|
@ -313,13 +313,13 @@ void submenu::handle()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void submenu::populate()
|
||||
void submenu::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
uint32_t arrow_flags;
|
||||
|
||||
// add options
|
||||
for (auto sm_option = m_options.begin(); sm_option < m_options.end(); ++sm_option)
|
||||
{
|
||||
uint32_t arrow_flags;
|
||||
|
||||
// skip first heading (is menu title)
|
||||
if (sm_option == m_options.begin() && sm_option->type == option_type::HEAD) continue;
|
||||
|
||||
|
@ -7,11 +7,11 @@
|
||||
UI options menu.
|
||||
|
||||
***************************************************************************/
|
||||
#pragma once
|
||||
|
||||
#ifndef MAME_FRONTEND_UI_SUBMENU_H
|
||||
#define MAME_FRONTEND_UI_SUBMENU_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "emuopts.h"
|
||||
#include "ui/menu.h"
|
||||
|
||||
@ -67,7 +67,7 @@ protected:
|
||||
virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2) override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
std::vector<option> m_options;
|
||||
|
@ -70,7 +70,7 @@ menu_software_parts::~menu_software_parts()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_software_parts::populate()
|
||||
void menu_software_parts::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
if (m_other_opt)
|
||||
{
|
||||
@ -212,7 +212,7 @@ void menu_software_list::append_software_entry(const software_info &swinfo)
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_software_list::populate()
|
||||
void menu_software_list::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
// build up the list of entries for the menu
|
||||
for (const software_info &swinfo : m_swlist->get_info())
|
||||
@ -342,7 +342,7 @@ menu_software::~menu_software()
|
||||
// populate
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_software::populate()
|
||||
void menu_software::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
bool have_compatible = false;
|
||||
|
||||
|
@ -38,7 +38,7 @@ private:
|
||||
const software_part *part;
|
||||
};
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
// variables
|
||||
@ -57,7 +57,7 @@ class menu_software_list : public menu
|
||||
public:
|
||||
menu_software_list(mame_ui_manager &mui, render_container &container, software_list_device *swlist, const char *interface, std::string &result);
|
||||
virtual ~menu_software_list() override;
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
private:
|
||||
@ -94,7 +94,7 @@ class menu_software : public menu
|
||||
public:
|
||||
menu_software(mame_ui_manager &mui, render_container &container, const char *interface, software_list_device **result);
|
||||
virtual ~menu_software() override;
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
private:
|
||||
|
@ -54,7 +54,7 @@ menu_tape_control::~menu_tape_control()
|
||||
// populate - populates the main tape control menu
|
||||
//-------------------------------------------------
|
||||
|
||||
void menu_tape_control::populate()
|
||||
void menu_tape_control::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
if (current_device())
|
||||
{
|
||||
@ -117,8 +117,7 @@ void menu_tape_control::populate()
|
||||
void menu_tape_control::handle()
|
||||
{
|
||||
// rebuild the menu (so to update the selected device, if the user has pressed L or R, and the tape counter)
|
||||
reset(reset_options::REMEMBER_POSITION);
|
||||
populate();
|
||||
repopulate(reset_options::REMEMBER_POSITION);
|
||||
|
||||
// process the menu
|
||||
const event *event = process(PROCESS_LR_REPEAT);
|
||||
@ -126,34 +125,34 @@ void menu_tape_control::handle()
|
||||
{
|
||||
switch(event->iptkey)
|
||||
{
|
||||
case IPT_UI_LEFT:
|
||||
if (event->itemref == TAPECMD_SLIDER)
|
||||
current_device()->seek(-1, SEEK_CUR);
|
||||
else if (event->itemref == TAPECMD_SELECT)
|
||||
previous();
|
||||
break;
|
||||
case IPT_UI_LEFT:
|
||||
if (event->itemref == TAPECMD_SLIDER)
|
||||
current_device()->seek(-1, SEEK_CUR);
|
||||
else if (event->itemref == TAPECMD_SELECT)
|
||||
previous();
|
||||
break;
|
||||
|
||||
case IPT_UI_RIGHT:
|
||||
if (event->itemref == TAPECMD_SLIDER)
|
||||
current_device()->seek(+1, SEEK_CUR);
|
||||
else if (event->itemref == TAPECMD_SELECT)
|
||||
next();
|
||||
break;
|
||||
case IPT_UI_RIGHT:
|
||||
if (event->itemref == TAPECMD_SLIDER)
|
||||
current_device()->seek(+1, SEEK_CUR);
|
||||
else if (event->itemref == TAPECMD_SELECT)
|
||||
next();
|
||||
break;
|
||||
|
||||
case IPT_UI_SELECT:
|
||||
if (event->itemref == TAPECMD_STOP)
|
||||
current_device()->change_state(CASSETTE_STOPPED, CASSETTE_MASK_UISTATE);
|
||||
else if (event->itemref == TAPECMD_PLAY)
|
||||
current_device()->change_state(CASSETTE_PLAY, CASSETTE_MASK_UISTATE);
|
||||
else if (event->itemref == TAPECMD_RECORD)
|
||||
current_device()->change_state(CASSETTE_RECORD, CASSETTE_MASK_UISTATE);
|
||||
else if (event->itemref == TAPECMD_REWIND)
|
||||
current_device()->seek(-30, SEEK_CUR);
|
||||
else if (event->itemref == TAPECMD_FAST_FORWARD)
|
||||
current_device()->seek(30, SEEK_CUR);
|
||||
else if (event->itemref == TAPECMD_SLIDER)
|
||||
current_device()->seek(0, SEEK_SET);
|
||||
break;
|
||||
case IPT_UI_SELECT:
|
||||
if (event->itemref == TAPECMD_STOP)
|
||||
current_device()->change_state(CASSETTE_STOPPED, CASSETTE_MASK_UISTATE);
|
||||
else if (event->itemref == TAPECMD_PLAY)
|
||||
current_device()->change_state(CASSETTE_PLAY, CASSETTE_MASK_UISTATE);
|
||||
else if (event->itemref == TAPECMD_RECORD)
|
||||
current_device()->change_state(CASSETTE_RECORD, CASSETTE_MASK_UISTATE);
|
||||
else if (event->itemref == TAPECMD_REWIND)
|
||||
current_device()->seek(-30, SEEK_CUR);
|
||||
else if (event->itemref == TAPECMD_FAST_FORWARD)
|
||||
current_device()->seek(30, SEEK_CUR);
|
||||
else if (event->itemref == TAPECMD_SLIDER)
|
||||
current_device()->seek(0, SEEK_SET);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ public:
|
||||
virtual ~menu_tape_control() override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
static void get_time_string(std::string &dest, cassette_image_device *cassette, int *curpos, int *endpos);
|
||||
|
@ -38,7 +38,7 @@ menu_video_targets::menu_video_targets(mame_ui_manager &mui, render_container &c
|
||||
{
|
||||
}
|
||||
|
||||
void menu_video_targets::populate()
|
||||
void menu_video_targets::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
int targetnum;
|
||||
|
||||
@ -170,7 +170,7 @@ menu_video_options::menu_video_options(mame_ui_manager &mui, render_container &c
|
||||
target = _target;
|
||||
}
|
||||
|
||||
void menu_video_options::populate()
|
||||
void menu_video_options::populate(float &customtop, float &custombottom)
|
||||
{
|
||||
const char *subtext = "";
|
||||
std::string tempstring;
|
||||
|
@ -23,7 +23,7 @@ public:
|
||||
virtual ~menu_video_targets() override;
|
||||
|
||||
private:
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
};
|
||||
|
||||
@ -45,7 +45,7 @@ private:
|
||||
VIDEO_ITEM_VIEW
|
||||
};
|
||||
|
||||
virtual void populate() override;
|
||||
virtual void populate(float &customtop, float &custombottom) override;
|
||||
virtual void handle() override;
|
||||
|
||||
render_target *target;
|
||||
|
Loading…
Reference in New Issue
Block a user