summaryrefslogblamecommitdiffstatshomepage
path: root/src/emu/uiimage.h
blob: 345b22829a44dd54b764b5bea758622925f0d3df (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16















                                                                            






                                                                                  
 

                                             

                                  
                                                
 




                                                                                                                     





























                                                                                              
                                                                                                  




                                           
                  



                                            
                                                                                                                                                                     





                                                                                                                     

                                                  


                                                  



                                              

                                                                                                                                                                                                                                        













                                                                                                                     
 

                                          
 



                                              
 




                                                  

                                       
 




                                                                                                                                       
 



























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

    uiimage.h

    Internal MAME user interface image.

    Copyright Nicola Salmoria and the MAME Team.
    Visit http://mamedev.org for licensing and usage restrictions.

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

#pragma once

#ifndef __UIIMAGE_H__
#define __UIIMAGE_H__

class ui_menu_image_info : public ui_menu {
public:
	ui_menu_image_info(running_machine &machine, render_container *container);
	virtual ~ui_menu_image_info();
	virtual void populate();
	virtual void handle();
};

class ui_menu_file_manager : public ui_menu {
public:
	astring current_directory;
	astring current_file;
	device_image_interface *selected_device;

	ui_menu_file_manager(running_machine &machine, render_container *container);
	virtual ~ui_menu_file_manager();
	virtual void populate();
	virtual void handle();
	virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2);
};

class ui_menu_mess_tape_control : public ui_menu {
public:
	ui_menu_mess_tape_control(running_machine &machine, render_container *container);
	virtual ~ui_menu_mess_tape_control();
	virtual void populate();
	virtual void handle();

private:
	int index;
	device_image_interface *device;
	int cassette_count();
};

class ui_menu_mess_bitbanger_control : public ui_menu {
public:
	ui_menu_mess_bitbanger_control(running_machine &machine, render_container *container);
	virtual ~ui_menu_mess_bitbanger_control();
	virtual void populate();
	virtual void handle();

private:
	int index;
	device_image_interface *device;
	int bitbanger_count();
};

class ui_menu_confirm_save_as : public ui_menu {
public:
	ui_menu_confirm_save_as(running_machine &machine, render_container *container, bool *yes);
	virtual ~ui_menu_confirm_save_as();
	virtual void populate();
	virtual void handle();

private:
	bool *yes;
};

class ui_menu_file_create : public ui_menu {
public:
	ui_menu_file_create(running_machine &machine, render_container *container, device_image_interface *image, astring &current_directory, astring &current_file);
	virtual ~ui_menu_file_create();
	virtual void populate();
	virtual void handle();
	virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2);

private:
	device_image_interface *image;
	astring &current_directory, &current_file;
	const image_device_format *current_format;
	int confirm_save_as_yes;
	char filename_buffer[1024];
};

class ui_menu_file_selector : public ui_menu {
public:
	enum { R_EMPTY, R_SOFTLIST, R_CREATE, R_FILE };
	ui_menu_file_selector(running_machine &machine, render_container *container, device_image_interface *image, astring &current_directory, astring &current_file, bool has_empty, bool has_softlist, bool has_create, int *result);
	virtual ~ui_menu_file_selector();
	virtual void populate();
	virtual void handle();
	virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2);

private:
	enum file_selector_entry_type {
		SELECTOR_ENTRY_TYPE_EMPTY,
		SELECTOR_ENTRY_TYPE_CREATE,
		SELECTOR_ENTRY_TYPE_SOFTWARE_LIST,
		SELECTOR_ENTRY_TYPE_DRIVE,
		SELECTOR_ENTRY_TYPE_DIRECTORY,
		SELECTOR_ENTRY_TYPE_FILE
	};

	struct file_selector_entry {
		file_selector_entry *next;

		file_selector_entry_type type;
		const char *basename;
		const char *fullpath;
	};

	device_image_interface *image;
	astring &current_directory, &current_file;
	bool has_empty, has_softlist, has_create;
	int *result;

	file_selector_entry *entrylist;
	char filename_buffer[1024];

	int compare_entries(const file_selector_entry *e1, const file_selector_entry *e2);
	file_selector_entry *append_entry(file_selector_entry_type entry_type, const char *entry_basename, const char *entry_fullpath);
	file_selector_entry *append_dirent_entry(const osd_directory_entry *dirent);
	void append_entry_menu_item(const file_selector_entry *entry);
};

class ui_menu_select_format : public ui_menu {
public:
	ui_menu_select_format(running_machine &machine, render_container *container,
						  class floppy_image_format_t **formats, int ext_match, int total_usable, int *result);
	virtual ~ui_menu_select_format();
	virtual void populate();
	virtual void handle();

private:
	floppy_image_format_t **formats;
	int ext_match, total_usable;
	int *result;
};

class ui_menu_select_rw : public ui_menu {
public:
	enum { READONLY, READWRITE, WRITE_OTHER, WRITE_DIFF };
	ui_menu_select_rw(running_machine &machine, render_container *container,
					  bool can_in_place, int *result);
	virtual ~ui_menu_select_rw();
	virtual void populate();
	virtual void handle();

private:
	bool can_in_place;
	int *result;
};

#endif	/* __UIIMAGE_H__ */