summaryrefslogblamecommitdiffstatshomepage
path: root/src/frontend/mame/ui/miscmenu.h
blob: 286e5f30912541b479c3673bb9ad6b3c62cc7c97 (plain) (tree)
1
2
3
4
5
6
7
8
                       
                                                                                   

                                                                            
                 


                                               



                                                                            

                         
 
                     
                    

                                                        
 

                                              
                                                                                 
                                         

                                         

  

                                                
                                                                                   
                                           

                                         

  

                                            
                                                                               
                                       

                                         




                          

                                          
                                                                             
                                     

                                         









                                               






                                                                             




                                          
                                                                             
                                     

                                         

  

                                               
                                                                                  
                                          

                                         
  
 
 



                                                   


                                     
                                                                                                                






                                               







                                                   
                                                                                                                                                





                                                                                                                              







                           

                               
          
                                 




                           

  






                                                   
                                                                                     




                                                                                                                              
 
                               
// license:BSD-3-Clause
// copyright-holders:Nicola Salmoria, Aaron Giles, Nathan Woods, Maurizio Petrarota
/***************************************************************************

    ui/miscmenu.h

    Internal MAME menus for the user interface.

***************************************************************************/

#pragma once

#ifndef __UI_MISCMENU_H__
#define __UI_MISCMENU_H__

#include "crsshair.h"
#include "emuopts.h"

using s_bios = std::vector<std::pair<std::string, int>>;

class ui_menu_keyboard_mode : public ui_menu {
public:
	ui_menu_keyboard_mode(mame_ui_manager &mui, render_container *container);
	virtual ~ui_menu_keyboard_mode();
	virtual void populate() override;
	virtual void handle() override;
};

class ui_menu_network_devices : public ui_menu {
public:
	ui_menu_network_devices(mame_ui_manager &mui, render_container *container);
	virtual ~ui_menu_network_devices();
	virtual void populate() override;
	virtual void handle() override;
};

class ui_menu_bookkeeping : public ui_menu {
public:
	ui_menu_bookkeeping(mame_ui_manager &mui, render_container *container);
	virtual ~ui_menu_bookkeeping();
	virtual void populate() override;
	virtual void handle() override;

private:
	attotime prevtime;
};

class ui_menu_crosshair : public ui_menu {
public:
	ui_menu_crosshair(mame_ui_manager &mui, render_container *container);
	virtual ~ui_menu_crosshair();
	virtual void populate() override;
	virtual void handle() override;

private:
	enum {
		CROSSHAIR_ITEM_VIS = 0,
		CROSSHAIR_ITEM_PIC,
		CROSSHAIR_ITEM_AUTO_TIME
	};

	/* internal crosshair menu item data */
	struct crosshair_item_data {
		UINT8               type;
		UINT8               player;
		UINT8               min, max;
		UINT8               cur;
		UINT8               defvalue;
		char                last_name[CROSSHAIR_PIC_NAME_LENGTH + 1];
		char                next_name[CROSSHAIR_PIC_NAME_LENGTH + 1];
	};
};

class ui_menu_quit_game : public ui_menu {
public:
	ui_menu_quit_game(mame_ui_manager &mui, render_container *container);
	virtual ~ui_menu_quit_game();
	virtual void populate() override;
	virtual void handle() override;
};

class ui_menu_bios_selection : public ui_menu {
public:
	ui_menu_bios_selection(mame_ui_manager &mui, render_container *container);
	virtual ~ui_menu_bios_selection();
	virtual void populate() override;
	virtual void handle() override;
};


//-------------------------------------------------
//  export menu
//-------------------------------------------------

class ui_menu_export : public ui_menu
{
public:
	ui_menu_export(mame_ui_manager &mui, render_container *container, std::vector<const game_driver*> list);
	virtual ~ui_menu_export();
	virtual void populate() override;
	virtual void handle() override;

private:
	std::vector<const game_driver*> m_list;
};

//-------------------------------------------------
//  machine configure menu
//-------------------------------------------------

class ui_menu_machine_configure : public ui_menu
{
public:
	ui_menu_machine_configure(mame_ui_manager &mui, render_container *container, const game_driver *prev, float x0 = 0.0f, float y0 = 0.0f);
	virtual ~ui_menu_machine_configure();
	virtual void populate() override;
	virtual void handle() override;
	virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2) override;

private:
	enum
	{
		ADDFAV = 1,
		DELFAV,
		SAVE,
		CONTROLLER,
		VIDEO,
		BIOS,
		ADVANCED,
		LAST = ADVANCED
	};
	const game_driver *m_drv;
	emu_options m_opts;
	float x0, y0;
	s_bios m_bios;
	int m_curbios;
	void setup_bios();
};

//-------------------------------------------------
//  plugins configure menu
//-------------------------------------------------

class ui_menu_plugins_configure : public ui_menu
{
public:
	ui_menu_plugins_configure(mame_ui_manager &mui, render_container *container);
	virtual ~ui_menu_plugins_configure();
	virtual void populate() override;
	virtual void handle() override;
	virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2) override;
};

#endif  /* __UI_MISCMENU_H__ */