2 * Common Source code Project:
3 * Ui->Qt->gui->menu_main for generic.
4 * (C) 2015 K.Ohta <whatisthis.sowhat _at_ gmail.com>
7 * Jan 14, 2015 : Initial, moved from qt/x1turboz/MainWindow.cpp .
10 #include <QApplication>
15 #include <QImageReader>
17 #include <QApplication>
19 #include <QTranslator>
21 #include <QHBoxLayout>
22 #include <QVBoxLayout>
23 #include <QDockWidget>
29 #include "commonclasses.h"
30 #include "display_about.h"
31 #include "display_text_document.h"
32 #include "mainwidget_base.h"
33 //#include "menuclasses.h"
34 #include "menu_disk.h"
35 #include "menu_harddisk.h"
37 #include "menu_cart.h"
38 #include "menu_quickdisk.h"
39 #include "menu_binary.h"
40 #include "menu_compactdisc.h"
41 #include "menu_laserdisc.h"
42 #include "menu_bubble.h"
43 #include "dock_disks.h"
45 #include "qt_gldraw.h"
48 #include "menu_flags.h"
49 #include "csp_logger.h"
53 //extern USING_FLAGS *using_flags;
54 void DLL_PREFIX _resource_init(void)
56 Q_INIT_RESOURCE(commontexts);
57 Q_INIT_RESOURCE(shaders);
60 void DLL_PREFIX _resource_free(void)
62 Q_CLEANUP_RESOURCE(shaders);
63 Q_CLEANUP_RESOURCE(commontexts);
66 Ui_MainWindowBase::Ui_MainWindowBase(USING_FLAGS *p, CSP_Logger *logger, QWidget *parent) : QMainWindow(parent)
70 p_config = p->get_config_ptr();
72 ledUpdateTimer = NULL;
76 ui_retranslate_completed = false;
77 //csp_logger->debug_log(CSP_LOG_INFO, CSP_LOG_TYPE_GENERAL, "GUI OK");
80 Ui_MainWindowBase::~Ui_MainWindowBase()
82 graphicsView->releaseKeyboard();
83 if(ledUpdateTimer != NULL) delete ledUpdateTimer;
84 if(driveData != NULL) delete driveData;
88 QString Ui_MainWindowBase::get_gui_version()
92 #if defined(__GUI_LIBRARY_NAME)
93 retval = QString::fromUtf8(__GUI_LIBRARY_NAME);
98 void Action_Control::do_check_grab_mouse(bool flag)
103 void Action_Control::do_send_string(void)
105 emit sig_send_string(bindString);
108 void Action_Control::do_set_string(QString s)
113 void Action_Control::do_select_render_platform(void)
115 int num = this->binds->getValue1();
116 emit sig_select_render_platform(num);
119 void Action_Control::do_set_window_focus_type(bool f)
121 emit sig_set_window_focus_type(f);
124 void Action_Control::do_set_emulate_cursor_as(void)
126 int num = this->binds->getValue1();
127 emit sig_set_emulate_cursor_as(num);
130 void Action_Control::do_set_dev_log_to_console(bool f)
132 int num = this->binds->getValue1();
133 emit sig_set_dev_log_to_console(num, f);
136 void Action_Control::do_set_dev_log_to_syslog(bool f)
138 int num = this->binds->getValue1();
139 emit sig_set_dev_log_to_syslog(num, f);
143 void Ui_MainWindowBase::do_set_window_focus_type(bool flag)
145 p_config->focus_with_click = flag;
147 graphicsView->setFocusPolicy(Qt::ClickFocus);
148 graphicsView->setFocus(Qt::MouseFocusReason);
150 graphicsView->setFocusPolicy(Qt::NoFocus);
151 graphicsView->clearFocus();
155 void Ui_MainWindowBase::do_show_about(void)
157 Dlg_AboutCSP *dlg = new Dlg_AboutCSP(using_flags, static_cast<QWidget *>(this));
161 void Ui_MainWindowBase::do_browse_document(QString fname)
163 Dlg_BrowseText *dlg = new Dlg_BrowseText(fname, using_flags);
167 void Ui_MainWindowBase::do_set_sound_files_fdd(bool f)
170 p_config->sound_noise_fdd = 1;
172 p_config->sound_noise_fdd = 0;
176 void Ui_MainWindowBase::do_set_sound_files_relay(bool f)
179 p_config->sound_noise_cmt = 1;
181 p_config->sound_noise_cmt = 0;
186 void Ui_MainWindowBase::do_set_conslog(bool f)
188 p_config->log_to_console = f;
189 csp_logger->set_log_stdout(-1, f);
192 void Ui_MainWindowBase::do_set_syslog(bool f)
194 p_config->log_to_syslog = f;
195 csp_logger->set_log_syslog(-1, f);
198 void Ui_MainWindowBase::do_update_device_node_name(int id, const _TCHAR *name)
200 if(action_DevLogToConsole[id] == NULL) return;
201 if(!ui_retranslate_completed) return;
202 if(using_flags->get_vm_node_size() > id) {
203 action_DevLogToConsole[id]->setEnabled(true);
204 action_DevLogToConsole[id]->setVisible(true);
205 #if !defined(Q_OS_WIN)
206 action_DevLogToSyslog[id]->setEnabled(true);
207 action_DevLogToSyslog[id]->setVisible(true);
210 action_DevLogToConsole[id]->setEnabled(false);
211 action_DevLogToConsole[id]->setVisible(false);
213 #if !defined(Q_OS_WIN)
214 action_DevLogToSyslog[id]->setEnabled(false);
215 action_DevLogToSyslog[id]->setVisible(false);
219 snprintf(s, 60, "#%02d: %s", id, name);
220 action_DevLogToConsole[id]->setText(QString::fromUtf8(s));
221 #if !defined(Q_OS_WIN)
222 action_DevLogToSyslog[id]->setText(QString::fromUtf8(s));
227 void Ui_MainWindowBase::do_set_logging_fdc(bool f)
229 p_config->special_debug_fdc = f;
230 emit sig_emu_update_config();
233 void Ui_MainWindowBase::do_set_dev_log_to_console(int num, bool f)
235 csp_logger->set_device_node_log(num, 2, CSP_LOG_DEBUG, f);
236 p_config->dev_log_to_console[num][0] = f;
239 void Ui_MainWindowBase::do_set_state_log_to_console(bool f)
241 csp_logger->set_state_log(2, f);
242 p_config->state_log_to_console = f;
245 void Ui_MainWindowBase::do_set_state_log_to_syslog(bool f)
247 csp_logger->set_state_log(1, f);
248 p_config->state_log_to_syslog = f;
251 void Ui_MainWindowBase::do_set_state_log_to_record(bool f)
253 csp_logger->set_state_log(0, f);
254 p_config->state_log_to_recording = f;
259 void Ui_MainWindowBase::do_set_emulate_cursor_as(int num)
261 if((num < 0) || (num > 2)) return;
262 p_config->cursor_as_ten_key = num;
263 emit sig_emu_update_config();
266 void Ui_MainWindowBase::do_set_dev_log_to_syslog(int num, bool f)
268 csp_logger->set_device_node_log(num, 2, CSP_LOG_DEBUG, f);
269 p_config->dev_log_to_syslog[num][0] = f;
272 void Ui_MainWindowBase::do_select_render_platform(int num)
279 case RENDER_PLATFORMS_OPENGL_ES_2:
280 _type = CONFIG_RENDER_PLATFORM_OPENGL_ES;
284 case RENDER_PLATFORMS_OPENGL3_MAIN:
285 _type = CONFIG_RENDER_PLATFORM_OPENGL_MAIN;
289 case RENDER_PLATFORMS_OPENGL2_MAIN:
290 _type = CONFIG_RENDER_PLATFORM_OPENGL_MAIN;
294 case RENDER_PLATFORMS_OPENGL_CORE:
295 _type = CONFIG_RENDER_PLATFORM_OPENGL_CORE;
303 p_config->render_platform = _type;
304 p_config->render_major_version = _major;
305 p_config->render_minor_version = _minor;
309 void Ui_MainWindowBase::set_dipsw(int num, bool flag)
311 if((num < 0) || (num >= 32)) return;
313 p_config->dipswitch = p_config->dipswitch | (1 << num);
315 p_config->dipswitch = p_config->dipswitch & ~(1 << num);
319 bool Ui_MainWindowBase::get_dipsw(int num)
321 if((num < 0) || (num >= 32)) return false;
322 if(((1 << num) & p_config->dipswitch) == 0) return false;
327 void Ui_MainWindowBase::setupUi(void)
330 // QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
331 MainWindow = new QMainWindow();
332 if (MainWindow->objectName().isEmpty())
333 MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
334 //MainWindow->resize(1288, 862);
337 ConfigHardDiskMenu();
339 if(!using_flags->is_without_sound()) {
342 if(using_flags->is_use_binary_file()) {
345 if(using_flags->is_use_qd()) {
346 ConfigQuickDiskMenu();
349 if(using_flags->is_use_cart()) {
352 if(using_flags->is_use_compact_disc()) {
355 if(using_flags->is_use_laser_disc()) {
356 ConfigLaserdiscMenu();
358 if(using_flags->is_use_bubble()) {
361 ConfigEmulatorMenu();
362 actionAbout = new Action_Control(this, using_flags);
363 actionAbout->setObjectName(QString::fromUtf8("actionAbout"));
369 int render_type = p_config->render_platform;
370 QOpenGLContext *glContext = QOpenGLContext::globalShareContext();
371 //int _major_version = p_config->render_major_version;
372 //int _minor_version = p_config->render_minor_version;
374 if(render_type == CONFIG_RENDER_PLATFORM_OPENGL_ES) {
375 fmt.setRenderableType(QSurfaceFormat::OpenGLES);
376 csp_logger->debug_log(CSP_LOG_DEBUG, CSP_LOG_TYPE_GENERAL, "Try to use OpenGL ES.");
377 } else if(render_type == CONFIG_RENDER_PLATFORM_OPENGL_CORE) {
378 fmt.setProfile(QSurfaceFormat::CoreProfile); // Requires >=Qt-4.8.0
379 fmt.setVersion(4, 7); // Requires >=Qt-4.8.0
380 csp_logger->debug_log(CSP_LOG_DEBUG, CSP_LOG_TYPE_GENERAL, "Try to use OpenGL CORE profile.");
382 fmt.setProfile(QSurfaceFormat::CompatibilityProfile); // Requires >=Qt-4.8.0
383 csp_logger->debug_log(CSP_LOG_DEBUG, CSP_LOG_TYPE_GENERAL, "Try to use OpenGL Compatible(MAIN) profile.");
386 graphicsView = new GLDrawClass(using_flags, csp_logger, this, fmt);
387 graphicsView->setObjectName(QString::fromUtf8("graphicsView"));
388 graphicsView->setMaximumSize(2560, 2560); // ?
389 graphicsView->setMinimumSize(240, 192); // ?
390 csp_logger->debug_log(CSP_LOG_INFO, CSP_LOG_TYPE_GENERAL, "GraphicsView OK");
391 graphicsView->setAttribute(Qt::WA_InputMethodEnabled, false); // Disable [Zenkaku / Hankaku] with IM.
392 graphicsView->setAttribute(Qt::WA_KeyboardFocusChange, false);
393 graphicsView->setAttribute(Qt::WA_KeyCompression, false);
394 connect(this, SIGNAL(sig_set_display_osd(bool)), graphicsView, SLOT(do_set_display_osd(bool)));
395 connect(this, SIGNAL(sig_set_led_width(int)), graphicsView, SLOT(do_set_led_width(int)));
399 driveData = new CSP_DockDisks(this, using_flags);
400 MainWindow->setDockOptions(QMainWindow::AnimatedDocks);
401 if(p_config->virtual_media_position > 0) {
402 driveData->setVisible(true);
404 driveData->setVisible(false);
407 pCentralWidget = new QWidget(this);
408 pCentralLayout = new QVBoxLayout(pCentralWidget);
409 pCentralLayout->setContentsMargins(0, 0, 0, 0);
410 pCentralLayout->addWidget(graphicsView);
411 pCentralLayout->addWidget(driveData);
412 switch(p_config->virtual_media_position) {
414 pCentralLayout->setDirection(QBoxLayout::TopToBottom);
415 pCentralLayout->removeWidget(driveData);
416 driveData->setVisible(false);
417 graphicsView->setVisible(true);
418 //emit sig_set_display_osd(true);
421 pCentralLayout->setDirection(QBoxLayout::BottomToTop);
422 driveData->setVisible(true);
423 graphicsView->setVisible(true);
424 //emit sig_set_display_osd(false);
427 pCentralLayout->setDirection(QBoxLayout::TopToBottom);
428 driveData->setVisible(true);
429 graphicsView->setVisible(true);
430 //emit sig_set_display_osd(false);
433 pCentralLayout->setDirection(QBoxLayout::TopToBottom);
434 driveData->setVisible(true);
435 graphicsView->setVisible(true);
436 //emit sig_set_display_osd(false);
439 pCentralWidget->setLayout(pCentralLayout);
440 MainWindow->setCentralWidget(pCentralWidget);
442 if(p_config->focus_with_click) {
443 graphicsView->setFocusPolicy(Qt::ClickFocus);
444 graphicsView->setFocus(Qt::MouseFocusReason);
446 graphicsView->setFocusPolicy(Qt::NoFocus);
448 driveData->setOrientation(p_config->virtual_media_position);
449 connect(this, SIGNAL(sig_set_orientation_osd(int)), driveData, SLOT(setOrientation(int)));
450 connect(graphicsView, SIGNAL(sig_resize_osd(int)), driveData, SLOT(setScreenWidth(int)));
452 MainWindow->setFocusProxy(graphicsView);
453 MainWindow->centralWidget()->adjustSize();
454 MainWindow->adjustSize();
456 statusbar = new QStatusBar(this);
457 statusbar->setObjectName(QString::fromUtf8("statusbar"));
458 MainWindow->setStatusBar(statusbar);
461 menubar = new QMenuBar(this);
462 menubar->setObjectName(QString::fromUtf8("menubar"));
463 menubar->setGeometry(QRect(0, 0, 1288, 27));
464 menuControl = new QMenu(menubar);
465 menuControl->setToolTipsVisible(true);
466 menuControl->setObjectName(QString::fromUtf8("menuControl"));
467 menuState = new QMenu(menuControl);
468 menuState->setToolTipsVisible(true);
469 menuState->setObjectName(QString::fromUtf8("menuState"));
471 menuSave_State = new QMenu(menuState);
472 menuSave_State->setToolTipsVisible(true);
473 menuSave_State->setObjectName(QString::fromUtf8("menuSaveState"));
475 menuLoad_State = new QMenu(menuState);
476 menuLoad_State->setToolTipsVisible(true);
477 menuLoad_State->setObjectName(QString::fromUtf8("menuLoadState"));
479 if(using_flags->is_use_auto_key()) {
480 menuCopy_Paste = new QMenu(menuControl);
481 menuCopy_Paste->setObjectName(QString::fromUtf8("menuCopy_Paste"));
482 menuCopy_Paste->setToolTipsVisible(true);
484 menuCpu_Speed = new QMenu(menuControl);
485 menuCpu_Speed->setObjectName(QString::fromUtf8("menuCpu_Speed"));
486 menuCpu_Speed->setToolTipsVisible(true);
487 menuDebugger = new QMenu(menuControl);
488 menuDebugger->setObjectName(QString::fromUtf8("menuDebugger"));
489 menuDebugger->setToolTipsVisible(true);
490 if(using_flags->is_use_fd()) {
491 int base_drv = using_flags->get_base_floppy_disk_num();
492 for(int i = 0; i < using_flags->get_max_drive(); i++) CreateFloppyMenu(i, base_drv + i);
494 if(using_flags->is_use_qd()) {
495 int base_drv = using_flags->get_base_quick_disk_num();
496 for(int i = 0; i < using_flags->get_max_qd(); i++) CreateQuickDiskMenu(i, base_drv + i);
498 if(using_flags->is_use_tape()) {
499 int base_drv = using_flags->get_base_tape_num();
500 for(int i = 0; i < using_flags->get_max_tape(); i++) CreateCMTMenu(i, base_drv + i);
502 if(using_flags->is_use_hdd()) {
503 int base_drv = using_flags->get_base_hdd_num();
504 for(int i = 0; i < using_flags->get_max_hdd(); i++) CreateHardDiskMenu(i, base_drv + i);
507 if(using_flags->is_use_cart()) {
508 int base_drv = using_flags->get_base_cart_num();
509 for(int i = 0; i < using_flags->get_max_cart(); i++) {
510 CreateCartMenu(i, base_drv + i);
513 if(using_flags->is_use_binary_file()) {
514 int base_drv = using_flags->get_base_binary_num();
515 for(int i = 0; i < using_flags->get_max_binary(); i++) {
516 CreateBinaryMenu(i, base_drv + i);
519 if(using_flags->is_use_compact_disc()) {
520 int base_drv = using_flags->get_base_compact_disc_num();
521 for(int i = 0; i < using_flags->get_max_cd(); i++) {
522 CreateCDROMMenu(i, base_drv + i);
525 if(using_flags->is_use_laser_disc()) {
526 int base_drv = using_flags->get_base_laser_disc_num();
527 for(int i = 0; i < using_flags->get_max_ld(); i++) {
528 CreateLaserdiscMenu(i, base_drv + i);
531 if(using_flags->is_use_bubble()) {
532 int base_drv = using_flags->get_base_bubble_num();
533 for(int i = 0; i < using_flags->get_max_bubble(); i++) {
534 CreateBubbleMenu(i, base_drv + i);
537 connect(this, SIGNAL(sig_update_screen(void)), graphicsView, SLOT(update(void)));
538 //connect(this, SIGNAL(sig_update_screen(void)), graphicsView, SLOT(updateGL(void)));
540 menuMachine = new QMenu(menubar);
541 menuMachine->setObjectName(QString::fromUtf8("menuMachine"));
542 menuMachine->setToolTipsVisible(true);
544 if(using_flags->is_use_mouse()) {
545 actionMouseEnable = new Action_Control(this, using_flags);
546 actionMouseEnable->setCheckable(true);
547 actionMouseEnable->setVisible(true);
548 actionMouseEnable->setChecked(false);
549 menuMachine->addAction(actionMouseEnable);
550 connect(actionMouseEnable, SIGNAL(toggled(bool)),
551 this, SLOT(do_set_mouse_enable(bool)));
552 connect(graphicsView, SIGNAL(sig_check_grab_mouse(bool)),
553 actionMouseEnable, SLOT(do_check_grab_mouse(bool)));
558 ConfigKeyboardType();
559 ConfigJoystickType();
561 ConfigSoundDeviceType();
565 if(!using_flags->is_without_sound()) {
566 menuSound = new QMenu(menubar);
567 menuSound->setObjectName(QString::fromUtf8("menuSound"));
568 menuSound->setToolTipsVisible(true);
570 menuEmulator = new QMenu(menubar);
571 menuEmulator->setObjectName(QString::fromUtf8("menuEmulator"));
572 menuEmulator->setToolTipsVisible(true);
574 menuHELP = new QMenu(menubar);
575 menuHELP->setObjectName(QString::fromUtf8("menuHELP"));
576 menuHELP->setToolTipsVisible(true);
577 MainWindow->setMenuBar(menubar);
579 menubar->addAction(menuControl->menuAction());
580 connectActions_ControlMenu();
581 if(using_flags->is_use_fd()) {
583 for(i = 0; i < using_flags->get_max_drive(); i++) {
584 menubar->addAction(menu_fds[i]->menuAction());
587 if(using_flags->is_use_qd()) {
589 for(i = 0; i < using_flags->get_max_qd(); i++) {
590 menubar->addAction(menu_QDs[i]->menuAction());
593 if(using_flags->is_use_hdd()) {
595 for(i = 0; i < using_flags->get_max_hdd(); i++) {
596 menubar->addAction(menu_hdds[i]->menuAction());
599 if(using_flags->is_use_tape()) {
600 for(int i = 0; i < using_flags->get_max_tape(); i++) menubar->addAction(menu_CMT[i]->menuAction());
602 if(using_flags->is_use_cart()) {
604 for(i = 0; i < using_flags->get_max_cart(); i++) {
605 menubar->addAction(menu_Cart[i]->menuAction());
608 if(using_flags->is_use_binary_file()) {
609 for(int i = 0; i < using_flags->get_max_binary(); i++) {
610 menubar->addAction(menu_BINs[i]->menuAction());
613 if(using_flags->is_use_compact_disc()) {
614 for(int i = 0; i < using_flags->get_max_cd(); i++) {
615 menubar->addAction(menu_CDROM[i]->menuAction());
618 if(using_flags->is_use_laser_disc()) {
619 for(int i = 0; i < using_flags->get_max_ld(); i++) {
620 menubar->addAction(menu_Laserdisc[i]->menuAction());
623 if(using_flags->is_use_bubble()) {
625 for(i = 0; i < using_flags->get_max_bubble(); i++) {
626 menubar->addAction(menu_bubbles[i]->menuAction());
629 menubar->addAction(menuMachine->menuAction());
630 if(!using_flags->is_without_sound()) {
631 menubar->addAction(menuSound->menuAction());
634 menubar->addAction(menuScreen->menuAction());
635 // menubar->addAction(menuRecord->menuAction());
636 menubar->addAction(menuEmulator->menuAction());
637 menubar->addAction(menuHELP->menuAction());
638 if(using_flags->is_use_qd()) {
640 for(i = 0; i < using_flags->get_max_qd(); i++) {
641 CreateQuickDiskPulldownMenu(i);
644 if(using_flags->is_use_binary_file()) {
646 for(i = 0; i < using_flags->get_max_binary(); i++) {
647 CreateBinaryPulldownMenu(1);
650 if(!using_flags->is_without_sound()) {
653 CreateEmulatorMenu();
655 menuHELP->addAction(actionAbout);
656 connect(actionAbout, SIGNAL(triggered()), this, SLOT(do_show_about()));
657 menuHELP->addSeparator();
659 actionHelp_AboutQt = new Action_Control(this, using_flags);
660 actionHelp_AboutQt->setObjectName(QString::fromUtf8("menuHelp_AboutQt"));
661 menuHELP->addAction(actionHelp_AboutQt);
662 menuHELP->addSeparator();
663 menuHelp_Readme = new QMenu(menuHELP);
664 menuHelp_Readme->setObjectName(QString::fromUtf8("menuHelp_Readme_menu"));;
665 menuHelp_Readme->setToolTipsVisible(true);
666 menuHELP->addAction(menuHelp_Readme->menuAction());
668 SET_HELP_MENUENTRY(menuHelp_Readme, actionHelp_README, "menuHelp_README", "readme.txt");
669 SET_HELP_MENUENTRY(menuHelp_Readme, actionHelp_README_QT, "menuHelp_README_QT", "readme.qt.txt");
670 SET_HELP_MENUENTRY(menuHelp_Readme, actionHelp_README_Artane, "menuHelp_README_Artane", "readme_by_artane.txt");
671 SET_HELP_MENUENTRY(menuHelp_Readme, actionHelp_README_Umaiboux, "menuHelp_README_Umaiboux", "readme_by_umaiboux.txt");
672 menuHelp_Readme->addSeparator();
673 SET_HELP_MENUENTRY(menuHelp_Readme, actionHelp_README_BIOS, "menuHelp_README_BIOS", "bios_and_keys.txt");
674 menuHelp_Readme->addSeparator();
675 SET_HELP_MENUENTRY(menuHelp_Readme, actionHelp_README_MR_TANAM, "menuHelp_README_MR_TANAM", "readme_by_mr_tanam.txt");
676 menuHelp_Readme->addSeparator();
677 SET_HELP_MENUENTRY(menuHelp_Readme, actionHelp_README_FAQ, "menuHelp_README_FAQ", "FAQ.html");
678 SET_HELP_MENUENTRY(menuHelp_Readme, actionHelp_README_FAQ_JP, "menuHelp_README_FAQ_JP", "FAQ.ja.html");
679 menuHelp_Readme->addSeparator();
680 SET_HELP_MENUENTRY(menuHelp_Readme, actionHelp_README_FM7, "menuHelp_README_FM7", "readme_fm7.txt");
681 SET_HELP_MENUENTRY(menuHelp_Readme, actionHelp_README_FM7_JP, "menuHelp_README_FM7_JP", "readme_fm7.jp.txt");
683 menuHelp_Histories = new QMenu(menuHELP);
684 menuHelp_Histories->setObjectName(QString::fromUtf8("menuHelp_Histories"));;
685 menuHelp_Histories->setToolTipsVisible(true);
686 menuHELP->addAction(menuHelp_Histories->menuAction());
688 SET_HELP_MENUENTRY(menuHelp_Histories, actionHelp_History, "menuHelp_History", "history.txt");
689 SET_HELP_MENUENTRY(menuHelp_Histories, actionHelp_History_Relnote, "menuHelp_History_Relnote", "RELEASENOTE.txt");
690 SET_HELP_MENUENTRY(menuHelp_Histories, actionHelp_History_ChangeLog, "menuHelp_History_Changelog", "ChangeLog.txt");
691 SET_HELP_MENUENTRY(menuHelp_Histories, actionHelp_History_MR_TANAM, "menuHelp_History_MR_TANAM", "history_by_mr_tanam.txt");
693 SET_HELP_MENUENTRY(menuHELP, actionHelp_License, "menuHelp_License", "LICENSE.txt");
694 SET_HELP_MENUENTRY(menuHELP, actionHelp_License_JP, "menuHelp_License_JP", "LICENSE.ja.txt");
696 if(p_config->window_mode <= 0) p_config->window_mode = 0;
697 if(p_config->window_mode >= using_flags->get_screen_mode_num()) p_config->window_mode = using_flags->get_screen_mode_num() - 1;
698 w = using_flags->get_screen_width();
699 h = using_flags->get_screen_height();
700 if(actionScreenSize[p_config->window_mode] != NULL) {
701 double nd = actionScreenSize[p_config->window_mode]->binds->getDoubleValue();
702 w = (int)(nd * (double)w);
703 h = (int)(nd * (double)h);
704 switch(p_config->rotate_type) {
717 switch(p_config->rotate_type) {
730 graphicsView->setFixedSize(w, h);
731 for(int i = 0; i < using_flags->get_screen_mode_num(); i++) {
732 if(actionScreenSize[i] != NULL) {
733 connect(actionScreenSize[i]->binds, SIGNAL(sig_screen_multiply(float)),
734 graphicsView, SLOT(do_set_screen_multiply(float)));
737 this->set_screen_size(w, h);
738 this->set_screen_aspect(p_config->window_stretch_type);
739 if(actionScreenSize[p_config->window_mode] != NULL) {
740 double nd = actionScreenSize[p_config->window_mode]->binds->getDoubleValue();
741 graphicsView->do_set_screen_multiply(nd);
743 if(using_flags->is_use_joystick()) {
744 connect(action_SetupJoykey, SIGNAL(triggered()), this, SLOT(rise_joykey_dialog()));
745 connect(action_SetupJoystick, SIGNAL(triggered()), this, SLOT(rise_joystick_dialog()));
748 if(using_flags->is_use_sound_files_fdd()) {
749 connect(action_SoundFilesFDD, SIGNAL(toggled(bool)), this, SLOT(do_set_sound_files_fdd(bool)));
751 if(using_flags->is_use_sound_files_relay()) {
752 connect(action_SoundFilesRelay, SIGNAL(toggled(bool)), this, SLOT(do_set_sound_files_relay(bool)));
754 connect(action_SetupKeyboard, SIGNAL(triggered()), this, SLOT(rise_keyboard_dialog()));
755 #if !defined(Q_OS_WIN)
756 connect(action_LogToSyslog, SIGNAL(toggled(bool)), this, SLOT(do_set_syslog(bool)));
758 connect(action_LogToConsole, SIGNAL(toggled(bool)), this, SLOT(do_set_conslog(bool)));
759 csp_logger->debug_log(CSP_LOG_INFO, CSP_LOG_TYPE_GENERAL, "Menu OK");
761 QImageReader reader(":/default.ico");
762 QImage result = reader.read();
764 MainWindow->setWindowIcon(QPixmap::fromImage(result));
765 this->set_window_title();
767 InsertIcon = QApplication::style()->standardIcon(QStyle::SP_FileDialogStart);
768 EjectIcon = QIcon(":/icon_eject.png");
769 StopIcon = QIcon(":/icon_process_stop.png");
770 RecordSoundIcon = QIcon(":/icon_record_to_wav.png");
771 ResetIcon = QApplication::style()->standardIcon(QStyle::SP_BrowserReload);
773 VolumeMutedIcon = QIcon(":/icon_volume_muted.png");
774 VolumeLowIcon = QIcon(":/icon_volume_low.png");
775 VolumeMidIcon = QIcon(":/icon_volume_mid.png");
776 VolumeHighIcon = QIcon(":/icon_volume_high.png");
778 ExitIcon = QIcon(":/icon_exit.png");
780 QMetaObject::connectSlotsByName(MainWindow);
781 csp_logger->debug_log(CSP_LOG_INFO, CSP_LOG_TYPE_GENERAL, "setupUI() OK");
785 #include "dropdown_joystick.h"
786 #include "dropdown_joykey.h"
787 #include "dialog_set_key.h"
789 void Ui_MainWindowBase::retranslateEmulatorMenu(void)
791 if(using_flags->is_use_joystick()) {
792 action_SetupJoystick->setText(QApplication::translate("MenuEmulator", "Configure Joysticks", 0));
793 action_SetupJoystick->setToolTip(QApplication::translate("MenuEmulator", "Configure assigning buttons/directions of joysticks.", 0));
794 action_SetupJoykey->setText(QApplication::translate("MenuEmulator", "Configure Joystick to KEYBOARD", 0));
795 action_SetupJoykey->setToolTip(QApplication::translate("MenuEmulator", "Configure assigning keycode to joystick buttons.\nThis feature using Joystick #1.", 0));
796 action_UseJoykey->setText(QApplication::translate("MenuEmulator", "Joystick to KEYBOARD", 0));
797 action_UseJoykey->setToolTip(QApplication::translate("MenuEmulator", "Use Joystick axis/buttons to input keyboard.\nThis feature using Joystick #1.", 0));
798 action_SetupJoystick->setIcon(QIcon(":/icon_gamepad.png"));
800 if(using_flags->is_use_auto_key()) {
801 action_UseRomaKana->setText(QApplication::translate("MenuEmulator", "ROMA-KANA Conversion", 0));
802 action_UseRomaKana->setToolTip(QApplication::translate("MenuEmulator", "Use romaji-kana conversion assistant of emulator.", 0));
804 actionSpeed_FULL->setText(QApplication::translate("MenuEmulator", "Emulate as FULL SPEED", 0));
805 actionSpeed_FULL->setToolTip(QApplication::translate("MenuEmulator", "Run emulation thread without frame sync.", 0));
807 action_NumPadEnterAsFullkey->setText(QApplication::translate("MenuEmulator", "Numpad's Enter is Fullkey's", 0));
808 action_NumPadEnterAsFullkey->setToolTip(QApplication::translate("MenuEmulator", "Numpad's enter key makes full key's enter.\nUseful for some VMs.", 0));
810 action_PrintCpuStatistics->setText(QApplication::translate("MenuEmulator", "Print Statistics", 0));
811 action_PrintCpuStatistics->setToolTip(QApplication::translate("MenuEmulator", "Print statistics of CPUs (or some devices).\nUseful for debugging.", 0));
813 if(action_Logging_FDC != NULL) {
814 action_Logging_FDC->setText(QApplication::translate("MenuEmulator", "FDC: Turn ON Debug log.", 0));
815 action_Logging_FDC->setToolTip(QApplication::translate("MenuEmulator", "Turn ON debug logging for FDCs.Useful to resolve issues from guest software.", 0));
818 menu_EmulateCursorAs->setTitle(QApplication::translate("MenuEmulator", "Emulate cursor as", 0));
819 menu_EmulateCursorAs->setToolTip(QApplication::translate("MenuEmulator", "Emulate cursor as ten-key.", 0));
820 action_EmulateCursorAs[0]->setText(QApplication::translate("MenuEmulator", "None", 0));
821 action_EmulateCursorAs[1]->setText(QApplication::translate("MenuEmulator", "2 4 6 8", 0));
822 action_EmulateCursorAs[2]->setText(QApplication::translate("MenuEmulator", "1 2 3 5", 0));
824 menuEmulator->setTitle(QApplication::translate("MenuEmulator", "Emulator", 0));
827 action_FocusWithClick->setText(QApplication::translate("MenuEmulator", "Focus on click", 0));
828 action_FocusWithClick->setToolTip(QApplication::translate("MenuEmulator", "If set, focus with click, not mouse-over.", 0));
830 action_SetupKeyboard->setText(QApplication::translate("MenuEmulator", "Configure Keyboard", 0));
831 action_SetupKeyboard->setToolTip(QApplication::translate("MenuEmulator", "Set addignation of keyboard.", 0));
832 action_SetupKeyboard->setIcon(QIcon(":/icon_keyboard.png"));
833 action_SetupMovie->setText(QApplication::translate("MenuEmulator", "Configure movie encoding", 0));
834 action_SetupMovie->setToolTip(QApplication::translate("MenuEmulator", "Configure parameters of movie encoding.", 0));
836 action_LogToConsole->setText(QApplication::translate("MenuEmulator", "Log to Console", 0));
837 action_LogToConsole->setToolTip(QApplication::translate("MenuEmulator", "Enable logging to STDOUT if checked.", 0));
838 #if !defined(Q_OS_WIN)
839 action_LogToSyslog->setText(QApplication::translate("MenuEmulator", "Log to Syslog", 0));
840 action_LogToSyslog->setToolTip(QApplication::translate("MenuEmulator", "Enable logging to SYSTEM log.\nMay be having permission to system and using *nix OS.", 0));
841 //action_LogRecord->setText(QApplication::translate("MenuEmulator", "Recording Log", 0));
843 if(using_flags->is_use_sound_files_fdd()) {
844 action_SoundFilesFDD->setText(QApplication::translate("MenuEmulator", "Sound FDD Seek", 0));
845 action_SoundFilesFDD->setToolTip(QApplication::translate("MenuEmulator", "Enable FDD HEAD seeking sound.\nNeeds sound file.\nSee HELP->READMEs->Bios and Key assigns", 0));
847 if(using_flags->is_use_sound_files_relay()) {
848 action_SoundFilesRelay->setText(QApplication::translate("MenuEmulator", "Sound CMT Relay and Buttons", 0));
849 action_SoundFilesRelay->setToolTip(QApplication::translate("MenuEmulator", "Enable CMT relay's sound and buttons's sounds.\nNeeds sound file.\nSee HELP->READMEs->Bios and Key assigns", 0));
850 if(using_flags->is_tape_binary_only()) action_SoundFilesRelay->setEnabled(false);
852 menuDevLogToConsole->setTitle(QApplication::translate("MenuEmulator", "Per Device", 0));
853 #if !defined(Q_OS_WIN)
854 menuDevLogToSyslog->setTitle(QApplication::translate("MenuEmulator", "Per Device", 0));
856 menu_SetRenderPlatform->setTitle(QApplication::translate("MenuEmulator", "Video Platform(need restart)", 0));
857 if(menu_SetFixedCpu != NULL) {
858 menu_SetFixedCpu->setTitle(QApplication::translate("MenuEmulator", "Occupy Fixed CPU", 0));
860 if(action_ResetFixedCpu != NULL) {
861 action_ResetFixedCpu->setText(QApplication::translate("MenuEmulator", "Using all CPU", 0));
862 action_ResetFixedCpu->setToolTip(QApplication::translate("MenuEmulator", "Using all CPU to emulation.\nReset cpu usings.", 0));
864 for(int ii = 0; ii < 128; ii++) {
865 if(action_SetFixedCpu[ii] != NULL) {
866 QString numname = QString::number(ii);
867 QString numtip = QApplication::translate("MenuEmulator", "Set Fixed logical CPU #%1 to be occupied by emulation thread.\nMay useful for heavy VM (i.e. using i386 CPU).\nStill implement LINUX host only, not another operating systems.", 0).arg(numname);
868 action_SetFixedCpu[ii]->setText(QString::fromUtf8("CPU #") + numname);
869 action_SetFixedCpu[ii]->setToolTip(numtip);
873 action_SetRenderPlatform[RENDER_PLATFORMS_OPENGL_ES_2]->setText(QApplication::translate("MenuEmulator", "OpenGL ES v2.0", 0));
874 action_SetRenderPlatform[RENDER_PLATFORMS_OPENGL3_MAIN]->setText(QApplication::translate("MenuEmulator", "OpenGLv3.0", 0));
875 action_SetRenderPlatform[RENDER_PLATFORMS_OPENGL2_MAIN]->setText(QApplication::translate("MenuEmulator", "OpenGLv2.0", 0));
876 action_SetRenderPlatform[RENDER_PLATFORMS_OPENGL_CORE]->setText(QApplication::translate("MenuEmulator", "OpenGL(Core profile)", 0));
878 action_SetRenderPlatform[RENDER_PLATFORMS_OPENGL_ES_2]->setToolTip(QApplication::translate("MenuEmulator", "Using OpenGL ES v2.0.\nThis is recommanded.\nIf changed, need to restart this emulator.", 0));
879 action_SetRenderPlatform[RENDER_PLATFORMS_OPENGL3_MAIN]->setToolTip(QApplication::translate("MenuEmulator", "Using OpenGL v3.0(MAIN).\nThis is recommanded.\nIf changed, need to restart this emulator.", 0));
880 action_SetRenderPlatform[RENDER_PLATFORMS_OPENGL2_MAIN]->setToolTip(QApplication::translate("MenuEmulator", "Using OpenGLv2.\nThis is fallback of some systems.\nIf changed, need to restart this emulator.", 0));
881 action_SetRenderPlatform[RENDER_PLATFORMS_OPENGL_CORE]->setToolTip(QApplication::translate("MenuEmulator", "Using OpenGL core profile.\nThis still not implement.\nIf changed, need to restart this emulator.", 0));
883 menu_DispVirtualMedias->setTitle(QApplication::translate("MenuEmulator", "Show Virtual Medias.", 0));
884 action_DispVirtualMedias[0]->setText(QApplication::translate("MenuEmulator", "None.", 0));
885 action_DispVirtualMedias[1]->setText(QApplication::translate("MenuEmulator", "Upper.", 0));
886 action_DispVirtualMedias[2]->setText(QApplication::translate("MenuEmulator", "Lower.", 0));
887 //action_DispVirtualMedias[3]->setText(QApplication::translate("MenuEmulator", "Left.", 0));
888 //action_DispVirtualMedias[4]->setText(QApplication::translate("MenuEmulator", "Right.", 0));
889 action_LogView->setText(QApplication::translate("MenuEmulator", "View Log", 0));
890 action_LogView->setToolTip(QApplication::translate("MenuEmulator", "View emulator logs with a dialog.", 0));
893 void Ui_MainWindowBase::retranselateUi_Depended_OSD(void)
895 for(int i=0; i < (CSP_LOG_TYPE_VM_DEVICE_END - CSP_LOG_TYPE_VM_DEVICE_0 + 1) ; i++) {
897 p = using_flags->get_vm_node_name(i);
898 do_update_device_node_name(i, p);
902 void Ui_MainWindowBase::do_set_roma_kana(bool flag)
904 p_config->romaji_to_kana = flag;
905 emit sig_set_roma_kana(flag);
908 void Ui_MainWindowBase::do_set_numpad_enter_as_fullkey(bool flag)
910 p_config->numpad_enter_as_fullkey = flag;
913 void Ui_MainWindowBase::do_set_joy_to_key(bool flag)
915 p_config->use_joy_to_key = flag;
918 void Ui_MainWindowBase::do_set_print_cpu_statistics(bool flag)
920 p_config->print_statistics = flag;
921 emit sig_emu_update_config();
924 void Ui_MainWindowBase::CreateEmulatorMenu(void)
926 //menuEmulator->addAction(action_LogRecord);
927 menuEmulator->addAction(action_FocusWithClick);
928 menuEmulator->addAction(menu_DispVirtualMedias->menuAction());
929 menuEmulator->addSeparator();
930 if(using_flags->is_use_auto_key()) {
931 menuEmulator->addAction(action_UseRomaKana);
933 if(using_flags->is_use_joystick()) {
934 menuEmulator->addAction(action_UseJoykey);
936 menuEmulator->addAction(action_NumPadEnterAsFullkey);
937 menuEmulator->addSeparator();
938 menuEmulator->addAction(actionSpeed_FULL);
939 if(menu_SetFixedCpu != NULL) {
940 menuEmulator->addAction(menu_SetFixedCpu->menuAction());
942 menuEmulator->addSeparator();
943 menuEmulator->addAction(menu_EmulateCursorAs->menuAction());
944 if(action_Logging_FDC != NULL) {
945 menuEmulator->addSeparator();
946 menuEmulator->addAction(action_Logging_FDC);
948 menuEmulator->addAction(action_PrintCpuStatistics);
949 menuEmulator->addSeparator();
950 menuEmulator->addAction(action_LogToConsole);
951 menuEmulator->addAction(menuDevLogToConsole->menuAction());
952 menuEmulator->addSeparator();
953 #if !defined(Q_OS_WIN)
954 menuEmulator->addAction(action_LogToSyslog);
955 menuEmulator->addAction(menuDevLogToSyslog->menuAction());
957 menuEmulator->addSeparator();
958 menuEmulator->addAction(action_LogView);
959 menuEmulator->addSeparator();
960 if(using_flags->is_use_sound_files_fdd() || using_flags->is_use_sound_files_relay()) {
961 if(using_flags->is_use_sound_files_fdd()) menuEmulator->addAction(action_SoundFilesFDD);
962 if(using_flags->is_use_sound_files_relay()) menuEmulator->addAction(action_SoundFilesRelay);
963 menuEmulator->addSeparator();
965 menuEmulator->addAction(menu_SetRenderPlatform->menuAction());
967 if(using_flags->is_use_joystick()) {
968 menuEmulator->addAction(action_SetupJoystick);
969 menuEmulator->addAction(action_SetupJoykey);
971 menuEmulator->addAction(action_SetupKeyboard);
972 menuEmulator->addAction(action_SetupMovie);
975 void Ui_MainWindowBase::ConfigMonitorType(void)
977 if(using_flags->get_use_monitor_type() > 0) {
979 menuMonitorType = new QMenu(menuMachine);
980 menuMonitorType->setObjectName(QString::fromUtf8("menuControl_MonitorType"));
981 menuMachine->addAction(menuMonitorType->menuAction());
983 actionGroup_MonitorType = new QActionGroup(this);
984 actionGroup_MonitorType->setExclusive(true);
985 for(ii = 0; ii < using_flags->get_use_monitor_type(); ii++) {
986 actionMonitorType[ii] = new Action_Control(this, using_flags);
987 actionGroup_MonitorType->addAction(actionMonitorType[ii]);
988 actionMonitorType[ii]->setCheckable(true);
989 actionMonitorType[ii]->setVisible(true);
990 actionMonitorType[ii]->binds->setValue1(ii);
991 if(p_config->monitor_type == ii) actionMonitorType[ii]->setChecked(true);
992 menuMonitorType->addAction(actionMonitorType[ii]);
993 connect(actionMonitorType[ii], SIGNAL(triggered()),
994 actionMonitorType[ii]->binds, SLOT(do_set_monitor_type()));
995 connect(actionMonitorType[ii]->binds, SIGNAL(sig_monitor_type(int)),
996 this, SLOT(set_monitor_type(int)));
1000 #if defined(Q_OS_LINUX)
1001 //#define _GNU_SOURCE
1006 void Ui_MainWindowBase::ConfigEmulatorMenu(void)
1010 actionGroup_DispVirtualMedias = new QActionGroup(this);
1011 actionGroup_DispVirtualMedias->setExclusive(true);
1012 menu_DispVirtualMedias = new QMenu(this);
1013 menu_DispVirtualMedias->setToolTipsVisible(true);
1014 for(i = 0; i < 3; i++) {
1015 action_DispVirtualMedias[i] = new Action_Control(this, using_flags);
1016 action_DispVirtualMedias[i]->setCheckable(true);
1017 action_DispVirtualMedias[i]->setChecked(false);
1018 if(i == p_config->virtual_media_position) action_DispVirtualMedias[i]->setChecked(true);
1019 action_DispVirtualMedias[i]->setEnabled(true);
1020 actionGroup_DispVirtualMedias->addAction(action_DispVirtualMedias[i]);
1021 menu_DispVirtualMedias->addAction(action_DispVirtualMedias[i]);
1023 connect(action_DispVirtualMedias[0], SIGNAL(triggered()), this, SLOT(do_set_visible_virtual_media_none()));
1024 connect(action_DispVirtualMedias[1], SIGNAL(triggered()), this, SLOT(do_set_visible_virtual_media_upper()));
1025 connect(action_DispVirtualMedias[2], SIGNAL(triggered()), this, SLOT(do_set_visible_virtual_media_lower()));
1027 if(using_flags->is_use_joystick()) {
1028 SET_ACTION_SINGLE(action_UseJoykey, true, true, (p_config->use_joy_to_key));
1029 connect(action_UseJoykey, SIGNAL(toggled(bool)), this, SLOT(do_set_joy_to_key(bool)));
1032 if(using_flags->is_use_auto_key()) {
1033 // ToDo: Setup if checked.
1034 SET_ACTION_SINGLE(action_UseRomaKana, true, true, (p_config->romaji_to_kana));
1035 connect(action_UseRomaKana, SIGNAL(toggled(bool)), this, SLOT(do_set_roma_kana(bool)));
1037 SET_ACTION_SINGLE(action_NumPadEnterAsFullkey, true, true, (p_config->numpad_enter_as_fullkey));
1038 connect(action_NumPadEnterAsFullkey, SIGNAL(toggled(bool)), this, SLOT(do_set_numpad_enter_as_fullkey(bool)));
1040 SET_ACTION_SINGLE(action_PrintCpuStatistics, true, true, (p_config->print_statistics));
1041 connect(action_PrintCpuStatistics, SIGNAL(toggled(bool)), this, SLOT(do_set_print_cpu_statistics(bool)));
1043 // Cursor to ten key.
1044 menu_EmulateCursorAs = new QMenu(this);
1045 menu_EmulateCursorAs->setToolTipsVisible(true);
1046 actionGroup_EmulateCursorAs = new QActionGroup(this);
1047 actionGroup_EmulateCursorAs->setExclusive(true);
1049 for(i = 0; i < 3; i++) {
1050 tmps = QString::number(i);
1051 action_EmulateCursorAs[i] = new Action_Control(this, using_flags);
1052 action_EmulateCursorAs[i]->setObjectName(QString::fromUtf8("action_EmulateCursorAs", -1) + tmps);
1053 action_EmulateCursorAs[i]->setCheckable(true);
1054 action_EmulateCursorAs[i]->binds->setValue1(i);
1055 actionGroup_EmulateCursorAs->addAction(action_EmulateCursorAs[i]);
1056 menu_EmulateCursorAs->addAction(action_EmulateCursorAs[i]);
1057 if(i == p_config->cursor_as_ten_key) action_EmulateCursorAs[i]->setChecked(true);
1059 connect(action_EmulateCursorAs[i], SIGNAL(triggered()),
1060 action_EmulateCursorAs[i], SLOT(do_set_emulate_cursor_as()));
1061 connect(action_EmulateCursorAs[i], SIGNAL(sig_set_emulate_cursor_as(int)),
1062 this, SLOT(do_set_emulate_cursor_as(int)));
1066 actionSpeed_FULL = new Action_Control(this, using_flags);
1067 actionSpeed_FULL->setObjectName(QString::fromUtf8("actionSpeed_FULL"));
1068 actionSpeed_FULL->setVisible(true);
1069 actionSpeed_FULL->setCheckable(true);
1070 actionSpeed_FULL->setChecked(false);
1071 if(p_config->full_speed) actionSpeed_FULL->setChecked(true);
1072 connect(actionSpeed_FULL, SIGNAL(toggled(bool)), this,SLOT(do_emu_full_speed(bool))); // OK?
1074 if(using_flags->is_use_joystick()) {
1075 action_SetupJoystick = new Action_Control(this, using_flags);
1076 action_SetupJoykey = new Action_Control(this, using_flags);
1078 if(using_flags->is_use_sound_files_fdd()) {
1080 action_SoundFilesFDD = new Action_Control(this, using_flags);
1081 action_SoundFilesFDD->setCheckable(true);
1082 action_SoundFilesFDD->setEnabled(true);
1083 action_SoundFilesFDD->setChecked(false);
1084 if(p_config->sound_noise_fdd != 0) {
1085 action_SoundFilesFDD->setChecked(true);
1088 SET_ACTION_SINGLE(action_SoundFilesFDD, true, true, (p_config->sound_noise_fdd != 0));
1090 if(using_flags->is_use_sound_files_relay()) {
1092 action_SoundFilesRelay = new Action_Control(this, using_flags);
1093 action_SoundFilesRelay->setCheckable(true);
1094 action_SoundFilesRelay->setEnabled(true);
1095 action_SoundFilesRelay->setChecked(false);
1096 if(p_config->sound_noise_cmt != 0) {
1097 action_SoundFilesRelay->setChecked(true);
1100 SET_ACTION_SINGLE(action_SoundFilesRelay, true, true, (p_config->sound_noise_cmt != 0));
1102 action_FocusWithClick = new Action_Control(this, using_flags);
1103 action_FocusWithClick->setCheckable(true);
1104 action_FocusWithClick->setEnabled(true);
1105 if(p_config->focus_with_click) {
1106 action_FocusWithClick->setChecked(true);
1109 connect(action_FocusWithClick, SIGNAL(toggled(bool)),
1110 this, SLOT(do_set_window_focus_type(bool)));
1111 //connect(action_FocusWithClick, SIGNAL(sig_set_window_focus_type(bool)),
1112 // this, SLOT(do_set_window_focus_type(bool)));
1114 action_Logging_FDC = NULL;
1115 if(using_flags->is_use_fd()) {
1116 SET_ACTION_SINGLE(action_Logging_FDC, true, true, (p_config->special_debug_fdc != 0));
1117 connect(action_Logging_FDC, SIGNAL(toggled(bool)), this, SLOT(do_set_logging_fdc(bool)));
1119 #if !defined(Q_OS_WIN)
1120 action_LogToSyslog = new Action_Control(this, using_flags);
1121 action_LogToSyslog->setCheckable(true);
1122 action_LogToSyslog->setEnabled(true);
1123 if(p_config->log_to_syslog != 0) action_LogToSyslog->setChecked(true);
1124 menuDevLogToSyslog = new QMenu(this);
1125 menuDevLogToSyslog->setToolTipsVisible(true);
1126 for(int i = 0; i < (CSP_LOG_TYPE_VM_DEVICE_END - CSP_LOG_TYPE_VM_DEVICE_0 + 1); i++) {
1127 action_DevLogToSyslog[i] = new Action_Control(this, using_flags);
1128 action_DevLogToSyslog[i]->setCheckable(true);
1129 action_DevLogToSyslog[i]->setEnabled(false);
1130 action_DevLogToSyslog[i]->binds->setValue1(i);
1131 menuDevLogToSyslog->addAction(action_DevLogToSyslog[i]);
1132 if(p_config->dev_log_to_syslog[i][0]) action_DevLogToSyslog[i]->setChecked(true);
1133 connect(action_DevLogToSyslog[i], SIGNAL(toggled(bool)),
1134 action_DevLogToSyslog[i], SLOT(do_set_dev_log_to_syslog(bool)));
1135 connect(action_DevLogToSyslog[i], SIGNAL(sig_set_dev_log_to_syslog(int, bool)),
1136 this, SLOT(do_set_dev_log_to_syslog(int, bool)));
1139 action_LogToConsole = new Action_Control(this, using_flags);
1140 action_LogToConsole->setCheckable(true);
1141 action_LogToConsole->setEnabled(true);
1142 if(p_config->log_to_console != 0) action_LogToConsole->setChecked(true);
1144 //menuDevLogToConsole = new QMenu(menuEmulator);
1145 menuDevLogToConsole = new QMenu(this);
1146 menuDevLogToConsole->setToolTipsVisible(true);
1148 SET_ACTION_CONTROL_ARRAY(0, (CSP_LOG_TYPE_VM_DEVICE_END - CSP_LOG_TYPE_VM_DEVICE_0 + 1),
1150 menuDevLogToConsole, action_DevLogToConsole, true, false,
1152 SIGNAL(toggled(bool)),
1153 SLOT(do_set_dev_log_to_console(bool)),
1154 SIGNAL(sig_set_dev_log_to_console(int, bool)),
1155 SLOT(do_set_dev_log_to_console(int, bool)));
1157 for(int i = 0; i < (CSP_LOG_TYPE_VM_DEVICE_END - CSP_LOG_TYPE_VM_DEVICE_0 + 1); i++) {
1158 action_DevLogToConsole[i] = new Action_Control(this, using_flags);
1159 action_DevLogToConsole[i]->setCheckable(true);
1160 action_DevLogToConsole[i]->setEnabled(false);
1161 action_DevLogToConsole[i]->binds->setValue1(i);
1162 menuDevLogToConsole->addAction(action_DevLogToConsole[i]);
1163 if(p_config->dev_log_to_console[i][0]) action_DevLogToConsole[i]->setChecked(true);
1164 connect(action_DevLogToConsole[i], SIGNAL(toggled(bool)),
1165 action_DevLogToConsole[i], SLOT(do_set_dev_log_to_console(bool)));
1166 connect(action_DevLogToConsole[i], SIGNAL(sig_set_dev_log_to_console(int, bool)),
1167 this, SLOT(do_set_dev_log_to_console(int, bool)));
1170 action_LogView = new Action_Control(this, using_flags);
1171 connect(action_LogView, SIGNAL(triggered()),
1172 this, SLOT(rise_log_viewer()));
1175 #if defined(Q_OS_LINUX)
1177 cpus = sysconf(_SC_NPROCESSORS_ONLN);
1180 menu_SetFixedCpu = NULL;
1181 action_ResetFixedCpu = NULL;
1182 for(i = 0; i < 128; i++) {
1183 action_SetFixedCpu[i] = NULL;
1186 menu_SetFixedCpu = new QMenu(this);
1187 menu_SetFixedCpu->setToolTipsVisible(true);
1188 actionGroup_SetFixedCpu = new QActionGroup(this);
1189 actionGroup_SetFixedCpu->setExclusive(true);
1190 if(cpus >= 128) cpus = 128;
1191 action_ResetFixedCpu = new Action_Control(this, using_flags);
1192 action_ResetFixedCpu->setObjectName(QString::fromUtf8("action_SetFixedCpu", -1) + tmps);
1193 action_ResetFixedCpu->setCheckable(true);
1194 action_ResetFixedCpu->binds->setValue1(-1);
1195 actionGroup_SetFixedCpu->addAction(action_ResetFixedCpu);
1196 menu_SetFixedCpu->addAction(action_ResetFixedCpu);
1197 connect(action_ResetFixedCpu, SIGNAL(triggered()),
1198 action_ResetFixedCpu->binds, SLOT(do_select_fixed_cpu(void)));
1199 connect(action_ResetFixedCpu->binds, SIGNAL(sig_set_fixed_cpu(int)),
1200 this, SLOT(do_select_fixed_cpu(int)));
1202 for(i = 0; i < cpus; i++) {
1203 tmps = QString::number(i);
1204 action_SetFixedCpu[i] = new Action_Control(this, using_flags);
1205 action_SetFixedCpu[i]->setObjectName(QString::fromUtf8("action_SetFixedCpu", -1) + tmps);
1206 action_SetFixedCpu[i]->setCheckable(true);
1207 action_SetFixedCpu[i]->binds->setValue1(i);
1208 actionGroup_SetFixedCpu->addAction(action_SetFixedCpu[i]);
1209 menu_SetFixedCpu->addAction(action_SetFixedCpu[i]);
1210 connect(action_SetFixedCpu[i], SIGNAL(triggered()),
1211 action_SetFixedCpu[i]->binds, SLOT(do_select_fixed_cpu(void)));
1212 connect(action_SetFixedCpu[i]->binds, SIGNAL(sig_set_fixed_cpu(int)),
1213 this, SLOT(do_select_fixed_cpu(int)));
1216 menu_SetRenderPlatform = new QMenu(this);
1217 menu_SetRenderPlatform->setToolTipsVisible(true);
1218 actionGroup_SetRenderPlatform = new QActionGroup(this);
1219 actionGroup_SetRenderPlatform->setExclusive(true);
1221 int render_type = p_config->render_platform;
1222 int _major_version = p_config->render_major_version;
1223 //int _minor_version = p_config->render_minor_version; // ToDo
1224 for(i = 0; i < MAX_RENDER_PLATFORMS; i++) {
1225 tmps = QString::number(i);
1226 action_SetRenderPlatform[i] = new Action_Control(this, using_flags);
1227 action_SetRenderPlatform[i]->setObjectName(QString::fromUtf8("action_SetRenderPlatform", -1) + tmps);
1228 action_SetRenderPlatform[i]->setCheckable(true);
1229 action_SetRenderPlatform[i]->binds->setValue1(i);
1230 actionGroup_SetRenderPlatform->addAction(action_SetRenderPlatform[i]);
1231 menu_SetRenderPlatform->addAction(action_SetRenderPlatform[i]);
1232 if(i >= RENDER_PLATFORMS_END) {
1233 action_SetRenderPlatform[i]->setVisible(false);
1235 if(render_type == CONFIG_RENDER_PLATFORM_OPENGL_ES) {
1236 if(_major_version >= 2) {
1237 if(i == RENDER_PLATFORMS_OPENGL_ES_2) {
1238 action_SetRenderPlatform[i]->setChecked(true);
1241 } else if(render_type == CONFIG_RENDER_PLATFORM_OPENGL_MAIN) {
1242 if(_major_version >= 3) {
1243 if(i == RENDER_PLATFORMS_OPENGL3_MAIN) {
1244 action_SetRenderPlatform[i]->setChecked(true);
1246 } else if(i == RENDER_PLATFORMS_OPENGL2_MAIN) {
1247 action_SetRenderPlatform[i]->setChecked(true);
1249 } else if(render_type == CONFIG_RENDER_PLATFORM_OPENGL_CORE) {
1250 if(i == RENDER_PLATFORMS_OPENGL_CORE) {
1251 action_SetRenderPlatform[i]->setChecked(true);
1255 connect(action_SetRenderPlatform[i], SIGNAL(triggered()),
1256 action_SetRenderPlatform[i], SLOT(do_select_render_platform(void)));
1257 connect(action_SetRenderPlatform[i], SIGNAL(sig_select_render_platform(int)),
1258 this, SLOT(do_select_render_platform(int)));
1261 action_SetupKeyboard = new Action_Control(this, using_flags);
1263 action_SetupMovie = new Action_Control(this, using_flags);
1266 #if defined(Q_OS_LINUX)
1267 //#undef _GNU_SOURCE
1270 #include "display_log.h"
1272 void Ui_MainWindowBase::rise_log_viewer(void)
1274 Dlg_LogViewer *dlg = new Dlg_LogViewer(using_flags, csp_logger, NULL);
1278 void Ui_MainWindowBase::rise_joystick_dialog(void)
1280 if(graphicsView != NULL) {
1281 QStringList *lst = graphicsView->getVKNames();
1282 CSP_DropDownJoysticks *dlg = new CSP_DropDownJoysticks(NULL, lst, using_flags);
1283 dlg->setWindowTitle(QApplication::translate("CSP_DropDownJoysticks", "Configure Joysticks", 0));
1288 void Ui_MainWindowBase::rise_joykey_dialog(void)
1290 if(graphicsView != NULL) {
1291 QStringList *lst = graphicsView->getVKNames();
1292 CSP_DropDownJoykey *dlg = new CSP_DropDownJoykey(NULL, lst, using_flags);
1293 dlg->setWindowTitle(QApplication::translate("CSP_DropDownJoysticks", "Configure Joystick to KEYBOARD", 0));
1298 QString Ui_MainWindowBase::get_system_version()
1300 return QString::fromUtf8("Dummy");
1303 QString Ui_MainWindowBase::get_build_date()
1305 return QString::fromUtf8("Dummy");
1309 void Ui_MainWindowBase::rise_movie_dialog(void)
1314 void Ui_MainWindowBase::rise_keyboard_dialog(void)
1316 if(graphicsView != NULL) {
1317 CSP_KeySetDialog *dlg = new CSP_KeySetDialog(NULL, graphicsView);
1318 dlg->setWindowTitle(QApplication::translate("KeySetDialog", "Configure Keyboard", 0));
1323 void Ui_MainWindowBase::retranslateUI_Help(void)
1325 menuHELP->setTitle(QApplication::translate("MenuHelp", "Help", 0));
1326 actionHelp_AboutQt->setText(QApplication::translate("MenuHelp", "About Qt", 0));
1327 actionHelp_AboutQt->setToolTip(QApplication::translate("MenuHelp", "Display Qt version.", 0));
1328 actionHelp_AboutQt->setIcon(QApplication::style()->standardIcon(QStyle::SP_TitleBarMenuButton));
1330 actionAbout->setText(QApplication::translate("MenuHelp", "About...", 0));
1331 actionAbout->setIcon(QApplication::style()->standardIcon(QStyle::SP_MessageBoxQuestion));
1332 actionAbout->setToolTip(QApplication::translate("MenuHelp", "About this emulator.", 0));
1334 menuHelp_Readme->setTitle(QApplication::translate("MenuHelp", "READMEs", 0));
1336 actionHelp_README->setText(QApplication::translate("MenuHelp", "General Document", 0));
1337 actionHelp_README_QT->setText(QApplication::translate("MenuHelp", "About Qt ports", 0));
1338 actionHelp_README_Artane->setText(QApplication::translate("MenuHelp", "About Qt ports (Japanese).", 0));
1339 actionHelp_README_Umaiboux->setText(QApplication::translate("MenuHelp", "By Mr. Umaiboux.", 0));
1340 actionHelp_README_MR_TANAM->setText(QApplication::translate("MenuHelp", "By Mr. tanam", 0));
1341 actionHelp_README_FM7->setText(QApplication::translate("MenuHelp", "About eFM-7/8/77/AV.", 0));
1342 actionHelp_README_FM7_JP->setText(QApplication::translate("MenuHelp", "About eFM-7/8/77/AV (Japanese).", 0));
1343 actionHelp_README_FAQ->setText(QApplication::translate("MenuHelp", "FAQs(English)", 0));
1344 actionHelp_README_FAQ_JP->setText(QApplication::translate("MenuHelp", "FAQs(Japanese)", 0));
1345 actionHelp_README_BIOS->setText(QApplication::translate("MenuHelp", "BIOS and Key assigns", 0));
1347 menuHelp_Histories->setTitle(QApplication::translate("MenuHelp", "Histories", 0));
1348 actionHelp_History->setText(QApplication::translate("MenuHelp", "General History", 0));
1349 actionHelp_History_Relnote->setText(QApplication::translate("MenuHelp", "Release Note", 0));
1350 actionHelp_History_ChangeLog->setText(QApplication::translate("MenuHelp", "Change Log", 0));
1351 actionHelp_History_MR_TANAM->setText(QApplication::translate("MenuHelp", "History by Tanam", 0));
1353 actionHelp_License->setText(QApplication::translate("MenuHelp", "Show License", 0));
1354 actionHelp_License->setToolTip(QApplication::translate("MenuHelp", "Show general license (GPLv2).", 0));
1355 actionHelp_License_JP->setText(QApplication::translate("MenuHelp", "Show License (Japanese)", 0));
1356 actionHelp_License_JP->setToolTip(QApplication::translate("MenuHelp", "Show general license (GPLv2).\nTranslated to Japanese.", 0));
1357 ui_retranslate_completed = true;
1360 // You can Override this function: Re-define on foo/MainWindow.cpp.
1361 // This code is example: by X1(TurboZ).
1362 void Ui_MainWindowBase::retranslateMachineMenu(void)
1367 menuMachine->setTitle(QApplication::translate("MenuMachine", "Machine", 0));
1368 if(using_flags->get_use_device_type() > 0) {
1369 menuDeviceType->setTitle(QApplication::translate("MenuMachine", "Device Type", 0));
1370 for(i = 0; i < using_flags->get_use_device_type(); i++) {
1371 tmps2.setNum(i + 1);
1372 tmps = QString::fromUtf8("Machine Device ") + tmps2;
1373 actionDeviceType[i]->setText(tmps);
1376 if(using_flags->get_use_sound_device_type() > 0) {
1377 menuSoundDevice->setTitle(QApplication::translate("MenuMachine", "Sound Cards", 0));
1378 for(i = 0; i < using_flags->get_use_sound_device_type(); i++) {
1379 tmps2.setNum(i + 1);
1380 tmps = QString::fromUtf8("Sound Device ") + tmps2;
1381 actionSoundDevice[i]->setText(tmps);
1384 if(using_flags->get_use_drive_type() > 0) {
1385 menuDriveType->setTitle(QApplication::translate("MenuMachine", "Drive Type", 0));
1386 for(i = 0; i < using_flags->get_use_drive_type(); i++) {
1387 tmps2.setNum(i + 1);
1388 tmps = QString::fromUtf8("Drive Type ") + tmps2;
1389 actionDriveType[i]->setText(tmps);
1392 if(using_flags->is_use_printer()) {
1393 menuPrintDevice->setTitle(QApplication::translate("MenuMachine", "Printer (Need RESET)", 0));
1395 actionPrintDevice[0]->setText(QApplication::translate("MenuMachine", "Dump to File", 0));
1396 actionPrintDevice[0]->setToolTip(QApplication::translate("MenuMachine", "Dump printer output to file.\nMaybe output only ascii text.", 0));
1397 if(using_flags->get_use_printer_type() > 0) {
1398 for(i = 1; i < (using_flags->get_use_printer_type() - 1); i++) {
1399 tmps2.setNum(i + 1);
1400 tmps = QApplication::translate("MenuMachine", "Printer", 0) + tmps2;
1401 actionPrintDevice[i]->setText(tmps);
1402 actionPrintDevice[i]->setToolTip(tmps);
1405 actionPrintDevice[i]->setText(QApplication::translate("MenuMachine", "Not Connect", 0));
1406 actionPrintDevice[i]->setToolTip(QApplication::translate("MenuMachine", "None devices connect to printer port.", 0));
1408 if(using_flags->get_use_monitor_type() > 0) {
1409 menuMonitorType->setTitle(QApplication::translate("MenuMachine", "Monitor Type", 0));
1410 menuMonitorType->setToolTipsVisible(true);
1411 for(int ii = 0; ii < using_flags->get_use_monitor_type(); ii++) {
1412 tmps = QString::fromUtf8("Monitor %1").arg(ii + 1);
1413 actionMonitorType[ii]->setText(tmps);
1417 void Ui_MainWindowBase::retranslateUi(void)
1419 retranslateControlMenu("Reset", true);
1420 if(!using_flags->is_without_sound()) {
1421 retranslateSoundMenu();
1423 retranslateScreenMenu();
1424 retranslateMachineMenu();
1425 retranslateEmulatorMenu();
1426 retranslateUI_Help();
1427 if(using_flags->is_use_binary_file()) {
1428 int basedrv = using_flags->get_base_binary_num();
1429 for(int i = 0; i < using_flags->get_max_binary(); i++) {
1430 retranslateBinaryMenu(i, basedrv);
1433 if(using_flags->is_use_bubble()) {
1434 int basedrv = using_flags->get_base_bubble_num();
1435 for(int i = 0; i < using_flags->get_max_bubble(); i++) {
1436 retranslateBubbleMenu(i, basedrv);
1439 if(using_flags->is_use_cart()) {
1440 int basedrv = using_flags->get_base_cart_num();
1441 for(int i = 0; i < using_flags->get_max_cart(); i++) {
1442 retranslateCartMenu(i, basedrv);
1445 if(using_flags->is_use_compact_disc()) {
1446 retranslateCDROMMenu();
1448 if(using_flags->is_use_tape()) {
1449 int basedrv = using_flags->get_base_tape_num();
1450 for(int i = 0; i < using_flags->get_max_tape(); i++) {
1451 retranslateCMTMenu(i);
1454 if(using_flags->is_use_fd()) {
1455 int basedrv = using_flags->get_base_floppy_disk_num();
1456 for(int i = 0; i < using_flags->get_max_drive(); i++) {
1457 retranslateFloppyMenu(i, basedrv + i);
1460 if(using_flags->is_use_hdd()) {
1461 int basedrv = using_flags->get_base_hdd_num();
1462 for(int i = 0; i < using_flags->get_max_hdd(); i++) {
1463 retranslateHardDiskMenu(i, basedrv + i);
1466 if(using_flags->is_use_laser_disc()) {
1467 retranslateLaserdiscMenu();
1469 if(using_flags->is_use_qd()) {
1470 int basedrv = using_flags->get_base_quick_disk_num();
1471 for(int i = 0; i < using_flags->get_max_qd(); i++) {
1472 retranslateQuickDiskMenu(i, basedrv);
1477 void Ui_MainWindowBase::doBeforeCloseMainWindow(void)
1479 //emit quit_debugger_thread();
1480 emit quit_emulator_all();
1483 void Ui_MainWindowBase::setCoreApplication(QApplication *p)
1485 this->CoreApplication = p;
1486 connect(actionExit_Emulator, SIGNAL(triggered()),
1487 this, SLOT(doBeforeCloseMainWindow())); // OnGuiExit()?
1488 connect(this, SIGNAL(quit_emulator_all()), CoreApplication, SLOT(closeAllWindows()));
1489 connect(actionHelp_AboutQt, SIGNAL(triggered()),
1490 this->CoreApplication, SLOT(aboutQt()));
1495 // Move from common/qt_main.cpp
1497 DLL_PREFIX std::string cpp_confdir;
1498 extern std::string my_procname;
1499 extern bool now_menuloop;
1503 extern unsigned int desktop_width;
1504 extern unsigned int desktop_height;
1506 extern int prev_window_mode;
1507 extern bool now_fullscreen;
1508 extern int window_mode_count;
1510 void Ui_MainWindowBase::set_window(int mode)
1512 // static LONG style = WS_VISIBLE;
1515 void Ui_MainWindowBase::do_emu_update_volume_level(int num, int level)
1517 emit sig_emu_update_volume_level(num, level);
1520 void Ui_MainWindowBase::do_emu_update_volume_balance(int num, int level)
1522 emit sig_emu_update_volume_balance(num, level);
1525 void Ui_MainWindowBase::do_emu_update_config(void)
1527 emit sig_emu_update_config();
1530 void Ui_MainWindowBase::doChangeMessage_EmuThread(QString message)
1532 emit message_changed(message);
1535 void Ui_MainWindowBase::do_set_visible_virtual_media_none()
1538 driveData->setVisible(false);
1539 p_config->virtual_media_position = 0;
1540 set_screen_size(graphicsView->width(), graphicsView->height());
1542 pCentralLayout->setDirection(QBoxLayout::TopToBottom);
1543 rect.setRect(0, 0, graphicsView->width(), graphicsView->height() + 2);
1545 pCentralLayout->removeWidget(driveData);
1546 pCentralWidget->setGeometry(rect);
1547 //pCentralLayout->setGeometry(rect);
1548 pCentralLayout->update();
1549 pCentralWidget->setLayout(pCentralLayout);
1550 MainWindow->setCentralWidget(pCentralWidget);
1551 //emit sig_set_display_osd(true);
1554 void Ui_MainWindowBase::do_set_visible_virtual_media_upper()
1557 driveData->setVisible(true);
1558 p_config->virtual_media_position = 1;
1559 set_screen_size(graphicsView->width(), graphicsView->height());
1560 emit sig_set_orientation_osd(1);
1561 pCentralLayout->setDirection(QBoxLayout::TopToBottom);
1562 pCentralLayout->removeWidget(driveData);
1563 pCentralLayout->removeWidget(graphicsView);
1564 pCentralLayout->addWidget(driveData);
1565 pCentralLayout->addWidget(graphicsView);
1566 rect.setRect(0, 0, graphicsView->width(), graphicsView->height() + driveData->height() + 2);
1567 pCentralWidget->setGeometry(rect);
1568 //pCentralLayout->setGeometry(rect);
1569 pCentralLayout->update();
1570 pCentralWidget->setLayout(pCentralLayout);
1571 MainWindow->setCentralWidget(pCentralWidget);
1572 //emit sig_set_display_osd(false);
1575 void Ui_MainWindowBase::do_set_visible_virtual_media_lower()
1578 driveData->setVisible(true);
1579 p_config->virtual_media_position = 2;
1580 set_screen_size(graphicsView->width(), graphicsView->height());
1581 emit sig_set_orientation_osd(2);
1582 pCentralLayout->setDirection(QBoxLayout::BottomToTop);
1583 pCentralLayout->removeWidget(driveData);
1584 pCentralLayout->removeWidget(graphicsView);
1585 pCentralLayout->addWidget(driveData);
1586 pCentralLayout->addWidget(graphicsView);
1588 rect.setRect(0, 0, graphicsView->width(), graphicsView->height() + driveData->height() + 2);
1589 pCentralWidget->setGeometry(rect);
1590 pCentralLayout->update();
1591 pCentralWidget->setLayout(pCentralLayout);
1592 MainWindow->setCentralWidget(pCentralWidget);
1595 void Ui_MainWindowBase::do_set_visible_virtual_media_left()
1598 driveData->setVisible(true);
1599 p_config->virtual_media_position = 3;
1600 set_screen_size(graphicsView->width(), graphicsView->height());
1601 emit sig_set_orientation_osd(3);
1602 pCentralLayout->removeWidget(driveData);
1603 pCentralLayout->addWidget(driveData, 1, 0);
1604 //emit sig_set_display_osd(false);
1608 void Ui_MainWindowBase::do_set_visible_virtual_media_right()
1611 driveData->setVisible(true);
1612 p_config->virtual_media_position = 4;
1613 set_screen_size(graphicsView->width(), graphicsView->height());
1614 emit sig_set_orientation_osd(4);
1615 pCentralLayout->removeWidget(driveData);
1616 pCentralLayout->addWidget(driveData, 1, 2);
1617 //emit sig_set_display_osd(false);
1621 void Ui_MainWindowBase::StopEmuThread(void)
1623 emit quit_emu_thread();
1626 void Ui_MainWindowBase::delete_emu_thread(void)
1628 //do_release_emu_resources();
1629 emit sig_quit_all();
1632 #include <QTextCodec>
1634 #include <QByteArray>
1636 void Convert_CP932_to_UTF8(char *dst, char *src, int n_limit, int i_limit)
1638 QTextCodec *srcCodec = QTextCodec::codecForName( "SJIS" );
1639 QTextCodec *dstCodec = QTextCodec::codecForName( "UTF-8" );
1643 if(dst != NULL) dst[0] = '\0';
1646 if(dst == NULL) return;
1647 dst_b = srcCodec->toUnicode(src, strlen(src));
1648 dst_s = dstCodec->fromUnicode(dst_b);
1650 memset(dst, 0x00, n_limit);
1651 strncpy(dst, dst_s.constData(), n_limit - 1);
1655 void Ui_MainWindowBase::set_window_title()
1658 tmps = QString::fromUtf8("emu");
1659 tmps = tmps + using_flags->get_config_name();
1660 tmps = tmps + QString::fromUtf8(" (");
1661 tmps = tmps + using_flags->get_device_name();
1662 tmps = tmps + QString::fromUtf8(")");
1663 MainWindow->setWindowTitle(tmps);
1666 void Ui_MainWindowBase::do_set_window_title(QString s)
1669 tmps = QString::fromUtf8("emu");
1670 tmps = tmps + using_flags->get_config_name();
1671 tmps = tmps + QString::fromUtf8(" (");
1675 tmps = tmps + QString::fromUtf8(")");
1676 MainWindow->setWindowTitle(tmps);
1680 void Ui_MainWindowBase::do_set_mouse_enable(bool flag)
1684 void Ui_MainWindowBase::do_select_fixed_cpu(int num)
1686 emit sig_emu_thread_to_fixed_cpu(num);
1689 void Ui_MainWindowBase::do_toggle_mouse(void)
1693 void Ui_MainWindowBase::LaunchEmuThread(void)
1697 void Ui_MainWindowBase::LaunchJoyThread(void)
1701 void Ui_MainWindowBase::StopJoyThread(void)
1705 void Ui_MainWindowBase::delete_joy_thread(void)
1709 void Ui_MainWindowBase::on_actionExit_triggered()
1711 OnMainWindowClosed();
1714 void Ui_MainWindowBase::OnWindowMove(void)
1719 void Ui_MainWindowBase::OnWindowRedraw(void)
1723 bool Ui_MainWindowBase::GetPowerState(void)
1728 void Ui_MainWindowBase::OnMainWindowClosed(void)
1733 void Ui_MainWindowBase::do_release_emu_resources(void)
1737 void Ui_MainWindowBase::OnOpenDebugger(int no)
1741 void Ui_MainWindowBase::OnCloseDebugger(void )
1746 * This is main for Qt.
1748 DLL_PREFIX CSP_Logger *csp_logger;