Encapsulate a bit more of the menu base class to control when layout changes can happen

This commit is contained in:
Vas Crabb 2016-11-23 09:41:14 +11:00
parent f4871c88cb
commit 32c256eccc
64 changed files with 233 additions and 211 deletions

View File

@ -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);
}

View File

@ -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();

View File

@ -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);

View File

@ -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;

View File

@ -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];

View File

@ -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;

View File

@ -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);

View File

@ -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();

View File

@ -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());

View File

@ -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[];

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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)

View File

@ -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;

View File

@ -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++)

View File

@ -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

View File

@ -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;

View File

@ -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);

View File

@ -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));

View File

@ -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);

View File

@ -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)
{
}

View File

@ -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();
};

View File

@ -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);

View File

@ -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);
};

View File

@ -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);

View File

@ -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;
};

View File

@ -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;

View File

@ -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;
};

View File

@ -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);

View File

@ -51,7 +51,7 @@ private:
QUIT_GAME
};
virtual void populate() override;
virtual void populate(float &customtop, float &custombottom) override;
virtual void handle() override;
};

View File

@ -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();
}

View File

@ -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

View File

@ -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();

View File

@ -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;

View File

@ -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)
{

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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())
{

View File

@ -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);

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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];

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -135,7 +135,7 @@ void menu_sliders::handle()
// menu
//-------------------------------------------------
void menu_sliders::populate()
void menu_sliders::populate(float &customtop, float &custombottom)
{
std::string tempstring;

View File

@ -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;

View File

@ -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()))

View File

@ -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);

View File

@ -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];

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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:

View File

@ -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;
}
}
}

View File

@ -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);

View File

@ -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;

View File

@ -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;