OSDN Git Service

[BUILD] Set SOVERSION and GIT hash automatically.
[csp-qt/common_source_project-fm7.git] / source / src / qt / gui / mainwidget_base.h
index ed288d3..6278335 100644 (file)
@@ -7,15 +7,15 @@
 #ifndef _CSP_QT_MAINWIDGET_BASE_H
 #define _CSP_QT_MAINWIDGET_BASE_H
 
-#include <QVariant>
-#include <QObject>
-#include <QApplication>
+//#include <QVariant>
+//#include <QObject>
+//#include <QApplication>
 #include <QMainWindow>
 #include <QIcon>
 #include <QString>
 #include <QStringList>
-#include <QMenu>
-#include <QMenuBar>
+//#include <QMenu>
+//#include <QMenuBar>
 
 #include "common.h"
 #include "config.h"
@@ -36,12 +36,13 @@ enum {
        CSP_MAINWIDGET_SAVE_MOVIE_END,
 };
 
-#define MAX_RENDER_PLATFORMS 8
+#define MAX_RENDER_PLATFORMS 12
 
 enum {
        RENDER_PLATFORMS_OPENGL3_MAIN = 0,
        RENDER_PLATFORMS_OPENGL2_MAIN,
        RENDER_PLATFORMS_OPENGL_CORE,
+       RENDER_PLATFORMS_OPENGL_ES_2,
        RENDER_PLATFORMS_END
 };
 
@@ -87,12 +88,12 @@ QT_BEGIN_NAMESPACE
                __action[_i]->setEnabled(__enabled);                                                    \
                __action[_i]->binds->setValue1(_i);                                                             \
                __menu->addAction(__action[_i]);                                                                \
-               if(using_flags->get_config_ptr()->__cnf[_i][0]) __action[_i]->setChecked(true); \
+               if(p_config->__cnf[_i][0]) __action[_i]->setChecked(true); \
                connect(__action[_i], __signal1, __action[_i], __slot1);                \
                connect(__action[_i], __signal2, this, __slot2);                                \
        }                                                                                                                                       \
 
-
+class OSD;
 class QVariant;
 class QAction;
 class QActionGroup;
@@ -100,6 +101,9 @@ class QButtonGroup;
 class QGraphicsView;
 class QGraphicsScene;
 class QHeaderView;
+class QMenu;
+class QMenuBar;
+class QApplication;
 
 class QStatusBar;
 class QWidget;
@@ -109,7 +113,7 @@ class QClipboard;
 class QDockWidget;
 class QHBoxLayout;
 class QVBoxLayout;
-
+class QGridLayout;
 class Ui_SoundDialog;
 class GLDrawClass;
 class Action_Control;
@@ -117,6 +121,7 @@ class Menu_MetaClass;
 class Menu_FDClass;
 class Menu_CMTClass;
 class Menu_CartClass;
+class Menu_HDDClass;
 class Menu_QDClass;
 class Menu_BinaryClass;
 class Menu_BubbleClass;
@@ -148,6 +153,7 @@ private:
        class Action_Control *actionSpeed_x4;
        class Action_Control *actionSpeed_x8;
        class Action_Control *actionSpeed_x16;
+       class Action_Control *actionSpeed_FULL;
        class Action_Control *actionPaste_from_Clipboard;
        class Action_Control *actionStop_Pasting;
        QMenu *menuSave_State;
@@ -156,12 +162,16 @@ private:
        // Screen
        QActionGroup *actionGroup_Stretch;
        QActionGroup *actionGroup_SetRenderPlatform;
+       QActionGroup *actionGroup_RotateType;
+       class Action_Control *action_ScreenSeparateThread;
+       class Action_Control *action_ScreenUseOSD;
        class Action_Control *actionZoom;
        class Action_Control *actionDisplay_Mode;
        class Action_Control *actionScanLine;
        class Action_Control *actionGLScanLineHoriz;
        class Action_Control *actionGLScanLineVert;
-       class Action_Control *actionRotate;
+       
+       class Action_Control *actionRotate[4];
        class Action_Control *actionCRT_Filter;
        class Action_Control *actionOpenGL_Filter;
        class Action_Control *actionDot_by_Dot;
@@ -187,8 +197,13 @@ private:
        QMenu *menu_SetRenderPlatform;
 
        // Misc
-       class Action_Control *action_DispVirtualMedias;
+       QMenu *menu_DispVirtualMedias;
+       QActionGroup *actionGroup_DispVirtualMedias;
+       class Action_Control *action_DispVirtualMedias[5];
+       class Action_Control *action_FocusWithClick;
        class Action_Control *action_UseRomaKana;
+       class Action_Control *action_NumPadEnterAsFullkey;
+       class Action_Control *action_Logging_FDC;
        class Action_Control *action_LogToSyslog;
        class Action_Control *action_LogToConsole;
        class Action_Control *action_LogRecord;
@@ -199,6 +214,11 @@ private:
        class Action_Control *action_SetupJoystick;
        class Action_Control *action_SetupKeyboard;
        class Action_Control *action_LogView;
+       class Action_Control *action_PrintCpuStatistics;
+
+       QMenu *menu_EmulateCursorAs;
+       QActionGroup *actionGroup_EmulateCursorAs;
+       class Action_Control *action_EmulateCursorAs[4];
 
        // Help
        class Action_Control *actionHelp_README_BIOS;
@@ -227,10 +247,12 @@ private:
        uint32_t osd_led_data;
 
        // Inner functions
+       
        void ConfigCpuSpeed(void);
        void ConfigControlMenu(void);
        void connectActions_ControlMenu(void);
        void ConfigFloppyMenu(void);
+       void ConfigHardDiskMenu(void);
        void ConfigSoundMenu(void);
        void CreateSoundMenu(void);
 
@@ -240,13 +262,22 @@ private:
        void CreateFloppyMenu(int drv, int drv_base);
        void CreateFloppyPulldownMenu(int drv);
        void ConfigFloppyMenuSub(int drv);
-       // Bubble
+
+       void CreateHardDiskMenu(int drv, int drv_base);
+       void CreateHardDiskPulldownMenu(int drv);
+       void ConfigHardDiskMenuSub(int drv);
+// Bubble
        void CreateBubbleMenu(int drv, int drv_base);
        void CreateBubblePulldownMenu(int drv);
        void ConfigBubbleMenuSub(int drv);
        void ConfigBubbleMenu(void);
+       virtual int GetBubbleBankNum(int drv) { return 0; }
+       virtual int GetBubbleCurrentBankNum(int drv) { return 0; }
+       virtual bool GetBubbleCasetteIsProtected(int drv) { return false; }
+       virtual QString GetBubbleB77FileName(int drv) { return QString::fromUtf8(""); }
+       virtual QString GetBubbleB77BubbleName(int drv, int num) { return QString::fromUtf8(""); }
        
-       void CreateCMTMenu(int drive);
+       void CreateCMTMenu(int drive, int drv_base);
        void ConfigCMTMenu(void);
    
        void ConfigQuickDiskMenu(void);
@@ -259,12 +290,12 @@ private:
        void ConfigCartMenuSub(int drv);
        void ConfigCartMenu(void);
 
-       void CreateCDROMMenu(void);
+       void CreateCDROMMenu(int drv, int drv_base);
        void ConfigCDROMMenu(void);
        void ConfigCDROMMenuSub(void);
        void CreateCDROMPulldownMenu(void);
        
-       void CreateLaserdiscMenu(void);
+       void CreateLaserdiscMenu(int drv, int drv_base);
        void ConfigLaserdiscMenu(void);
        void ConfigLaserdiscMenuSub(void);
        void CreateLaserdiscPulldownMenu(void);
@@ -280,6 +311,7 @@ private:
        void ConfigDriveType(void);
        void ConfigSoundDeviceType(void);
        void ConfigPrinterType(void);
+       void ConfigMonitorType(void);
 
        // About Status bar
        int Calc_OSD_Wfactor(void);
@@ -306,10 +338,12 @@ protected:
        QStringList listQDs[8];
        QStringList listCMT[8];
        bool cmt_write_protect[8];
-       QStringList listCDROM;
-       QStringList listLaserdisc;
+       QStringList listCDROM[8];
+       QStringList listLaserdisc[8];
        QStringList listBINs[8];
        QStringList listFDs[16];
+       QStringList listHDDs[16];
+       
        QStringList listD88[16];
        QStringList listBubbles[8];
        QStringList listB77[8];
@@ -368,6 +402,10 @@ protected:
        class Action_Control *actionStop_Record_Movie;
        class Action_Control *action_SetupMovie; // 15, 24, 30, 60
 
+       QMenu *menuMonitorType;
+       QActionGroup *actionGroup_MonitorType;
+       Action_Control *actionMonitorType[16];
+       
        // Menus    
        QMenu *menuControl;
        QMenu *menuState;
@@ -378,6 +416,7 @@ protected:
        QMenu *menuStretch_Mode;
        QMenu *menuScreenSize;
        QMenu *menuScreen_Render;
+       QMenu *menuScreen_Rotate;
        
        QMenu *menuCpuType;
        QMenu *menuBootMode;
@@ -395,8 +434,9 @@ protected:
        Menu_FDClass *menu_fds[16];
        Menu_QDClass *menu_QDs[8];
        Menu_CMTClass *menu_CMT[8];
-       Menu_CompactDiscClass *menu_CDROM;
-       Menu_LaserdiscClass *menu_Laserdisc;
+       Menu_HDDClass *menu_hdds[16];
+       Menu_CompactDiscClass *menu_CDROM[8];
+       Menu_LaserdiscClass *menu_Laserdisc[8];
        Menu_CartClass *menu_Cart[8];
        Menu_BinaryClass *menu_BINs[8];
        Menu_BubbleClass *menu_bubbles[8];
@@ -429,6 +469,9 @@ protected:
        // Translate UIs.
        void retranslateControlMenu(const char *SpecialResetTitle,  bool WithSpecialReset);
        void retranslateFloppyMenu(int drv, int basedrv);
+       void retranslateFloppyMenu(int drv, int basedrv, QString specName);
+       void retranslateHardDiskMenu(int drv, int basedrv);
+       void retranslateHardDiskMenu(int drv, int basedrv, QString specName);
        void retranslateBubbleMenu(int drv, int basedrv);
        void retranslateCMTMenu(int drive);
        void retranslateQuickDiskMenu(int drv, int basedrv);
@@ -464,7 +507,6 @@ public:
        virtual void StopJoyThread(void);
        virtual void LaunchJoyThread(void);
        // Screen
-       virtual void OnWindowResize(void);
        virtual void OnWindowMove(void);
        virtual void OnWindowRedraw(void);
    
@@ -482,6 +524,11 @@ public:
        bool get_direct_load_mzt(int drive);
        virtual bool GetPowerState(void);
        void set_logger(CSP_Logger *logger) { csp_logger = logger; }
+
+       virtual QString get_system_version();
+       virtual QString get_build_date();
+       QString get_gui_version();
+
        // Basic slots
 public slots:
        void delete_emu_thread(void);
@@ -496,6 +543,7 @@ public slots:
        void do_update_volume(int level);
        void set_screen_aspect(int num);
        void set_screen_size(int w, int h);
+       void do_set_screen_rotate(int type);
        void OnReset(void);
        void OnSpecialReset(void);
        virtual void do_set_mouse_enable(bool flag);
@@ -511,17 +559,17 @@ public slots:
        void do_stop_saving_movie(void);
        void do_start_saving_movie(void);
        void do_set_state_saving_movie(bool state);
+       void set_osd_virtual_media(bool f);
        
        virtual void OnOpenDebugger(int n);
        virtual void OnCloseDebugger(void);
-       
-       void set_screen_rotate(bool);
+       void doBeforeCloseMainWindow(void);     
        void set_gl_crt_filter(bool);
        void set_cpu_power(int pw) {
                OnCpuPower(pw);
        }
        virtual void on_actionExit_triggered();
-
+       void do_emu_full_speed(bool f);
        void OnStartAutoKey(void);
        void OnStopAutoKey(void);
        void eject_cart(int);
@@ -576,15 +624,19 @@ public slots:
        virtual int set_d88_slot(int drive, int num);
        virtual int set_recent_disk(int, int);
 
+       virtual void do_update_recent_hard_disk(int);
+       virtual void _open_hard_disk(int drv, const QString fname);
+       void eject_hard_disk(int drv);
+       virtual int set_recent_hard_disk(int, int);
        // Bubble Casette
        int write_protect_bubble(int drv, bool flag);
 
-       virtual int set_b77_slot(int drive, int num);
-       virtual void do_update_recent_bubble(int drv);
-       virtual int set_recent_bubble(int drv, int num);
+       int set_b77_slot(int drive, int num);
+       void do_update_recent_bubble(int drv);
+       int set_recent_bubble(int drv, int num);
+       void _open_bubble(int drv, const QString fname);
+       void eject_bubble(int drv);
 
-       virtual void _open_bubble(int drv, const QString fname);
-       virtual void eject_bubble(int drv);
 
        void start_record_sound(bool rec);
        void set_freq(int);
@@ -620,16 +672,34 @@ public slots:
        void do_set_dev_log_to_console(int id, bool f);
        void do_set_dev_log_to_syslog(int id, bool f);
        void do_set_roma_kana(bool f);
+       void do_set_numpad_enter_as_fullkey(bool f);
        void do_set_render_mode_std(void);
        void do_set_render_mode_tv(void);
        void do_select_render_platform(int num);
-       void do_set_visible_virtual_medias(bool f);
+       void do_set_window_focus_type(bool flag);
+
+       void do_set_visible_virtual_media_none();
+       void do_set_visible_virtual_media_upper();
+       void do_set_visible_virtual_media_lower();
+       void do_set_visible_virtual_media_left();
+       void do_set_visible_virtual_media_right();
+
+       void do_set_emulate_cursor_as(int num);
+       void do_set_logging_fdc(bool onoff);    
+       void do_set_separate_thread_draw(bool f);
+       void do_set_print_cpu_statistics(bool flag);
+       // ToDo: GUI
+       void do_set_state_log_to_record(bool f);
+       void do_set_state_log_to_console(bool f);
+       void do_set_state_log_to_syslog(bool f);
+
 signals:
        int message_changed(QString);
        int quit_emu_thread();
        int call_joy_thread(EMU *);
        int quit_joy_thread();
        int quit_draw_thread();
+       int quit_emulator_all();
        int sig_quit_movie_thread();
        int sig_stop_saving_movie(void);
        int sig_start_saving_movie(void);
@@ -640,6 +710,7 @@ signals:
        int on_insert_fd(int);
        int on_eject_fd(int);
        int do_open_disk(int, QString);
+       
        int closed(void);
        int sig_quit_all(void);
        int sig_vm_reset(void);
@@ -654,10 +725,14 @@ signals:
        int sig_emu_set_display_size(int, int, int, int);
        int sig_emu_update_volume_level(int, int);
        int sig_emu_update_volume_balance(int, int);
+
+       int sig_resize_osd(int);
        
        int sig_write_protect_disk(int drv, bool flag);
        int sig_open_disk(int, QString, int);
        int sig_close_disk(int);
+       int sig_open_hard_disk(int, QString);
+       int sig_close_hard_disk(int);
        int sig_play_tape(int ,QString);
        int sig_rec_tape(int, QString);
        int sig_close_tape(int);
@@ -672,10 +747,10 @@ signals:
        int sig_open_quickdisk(int drv, QString path);
        int sig_close_cart(int drv);
        int sig_open_cart(int drv, QString path);
-       int sig_open_cdrom(QString path);
-       int sig_close_cdrom(void);
-       int sig_close_laserdisc(void);
-       int sig_open_laserdisc(QString path);
+       int sig_open_cdrom(int drv, QString path);
+       int sig_close_cdrom(int drv);
+       int sig_close_laserdisc(int drv);
+       int sig_open_laserdisc(int drv, QString path);
        int sig_load_binary(int drv, QString path);
        int sig_save_binary(int drv, QString path);
        int sig_write_protect_bubble(int, bool);
@@ -684,7 +759,11 @@ signals:
        int sig_led_update(QRectF);
        int sig_start_auto_key(QString);
        int sig_stop_auto_key(void);
-   
+       int sig_set_display_osd(bool);
+       int sig_display_osd_leds(int,bool);
+       int sig_set_led_width(int);
+       int sig_set_orientation_osd(int);
+       int sig_set_roma_kana(bool);
        int quit_debugger_thread(void);
        int sig_quit_widgets(void);