mirror of https://github.com/bsnes-emu/bsnes.git
129 lines
3.4 KiB
C++
Executable File
129 lines
3.4 KiB
C++
Executable File
#include "qt.moc.hpp"
|
|
#include "qt.moc"
|
|
|
|
#include "settings.cpp"
|
|
#include "font.cpp"
|
|
#include "message-window.cpp"
|
|
#include "window.cpp"
|
|
|
|
#include "action/action.cpp"
|
|
#include "action/menu.cpp"
|
|
#include "action/separator.cpp"
|
|
#include "action/item.cpp"
|
|
#include "action/check-item.cpp"
|
|
#include "action/radio-item.cpp"
|
|
|
|
#include "widget/widget.cpp"
|
|
#include "widget/button.cpp"
|
|
#include "widget/check-box.cpp"
|
|
#include "widget/combo-box.cpp"
|
|
#include "widget/hex-edit.cpp"
|
|
#include "widget/horizontal-slider.cpp"
|
|
#include "widget/label.cpp"
|
|
#include "widget/line-edit.cpp"
|
|
#include "widget/list-view.cpp"
|
|
#include "widget/progress-bar.cpp"
|
|
#include "widget/radio-box.cpp"
|
|
#include "widget/text-edit.cpp"
|
|
#include "widget/vertical-slider.cpp"
|
|
#include "widget/viewport.cpp"
|
|
|
|
QApplication *pOS::application = 0;
|
|
|
|
Geometry pOS::availableGeometry() {
|
|
QRect rect = QApplication::desktop()->availableGeometry();
|
|
return { rect.x(), rect.y(), rect.width(), rect.height() };
|
|
}
|
|
|
|
Geometry pOS::desktopGeometry() {
|
|
QRect rect = QApplication::desktop()->screenGeometry();
|
|
return { 0, 0, rect.width(), rect.height() };
|
|
}
|
|
|
|
string pOS::fileLoad(Window &parent, const string &path, const lstring &filter) {
|
|
string filterList;
|
|
foreach(item, filter) {
|
|
filterList.append(item);
|
|
filterList.append(";;");
|
|
}
|
|
filterList.rtrim<1>(";;");
|
|
|
|
//convert filter list from phoenix to Qt format, example:
|
|
//"Text, XML files (*.txt,*.xml)" -> "Text, XML files (*.txt *.xml)"
|
|
signed parenthesis = 0;
|
|
foreach(n, filterList) {
|
|
if(n == '(') parenthesis++;
|
|
if(n == ')') parenthesis--;
|
|
if(n == ',' && parenthesis) n = ' ';
|
|
}
|
|
|
|
QString filename = QFileDialog::getOpenFileName(
|
|
&parent != &Window::None ? parent.p.qtWindow : 0, "Load File",
|
|
QString::fromUtf8(path), QString::fromUtf8(filterList)
|
|
);
|
|
return filename.toUtf8().constData();
|
|
}
|
|
|
|
string pOS::fileSave(Window &parent, const string &path, const lstring &filter) {
|
|
string filterList;
|
|
foreach(item, filter) {
|
|
filterList.append(item);
|
|
filterList.append(";;");
|
|
}
|
|
filterList.rtrim<1>(";;");
|
|
|
|
//convert filter list from phoenix to Qt format, example:
|
|
//"Text, XML files (*.txt,*.xml)" -> "Text, XML files (*.txt *.xml)"
|
|
signed parenthesis = 0;
|
|
foreach(n, filterList) {
|
|
if(n == '(') parenthesis++;
|
|
if(n == ')') parenthesis--;
|
|
if(n == ',' && parenthesis) n = ' ';
|
|
}
|
|
|
|
QString filename = QFileDialog::getSaveFileName(
|
|
&parent != &Window::None ? parent.p.qtWindow : 0, "Save File",
|
|
QString::fromUtf8(path), QString::fromUtf8(filterList)
|
|
);
|
|
return filename.toUtf8().constData();
|
|
}
|
|
|
|
string pOS::folderSelect(Window &parent, const string &path) {
|
|
QString directory = QFileDialog::getExistingDirectory(
|
|
&parent != &Window::None ? parent.p.qtWindow : 0, "Select Directory",
|
|
QString::fromUtf8(path), QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks
|
|
);
|
|
string name = directory.toUtf8().constData();
|
|
if(name != "" && name.endswith("/") == false) name.append("/");
|
|
return name;
|
|
}
|
|
|
|
void pOS::main() {
|
|
QApplication::exec();
|
|
}
|
|
|
|
bool pOS::pendingEvents() {
|
|
return QApplication::hasPendingEvents();
|
|
}
|
|
|
|
void pOS::processEvents() {
|
|
while(pendingEvents()) QApplication::processEvents();
|
|
}
|
|
|
|
void pOS::quit() {
|
|
settings.save();
|
|
QApplication::quit();
|
|
}
|
|
|
|
void pOS::initialize() {
|
|
settings.load();
|
|
|
|
static int argc = 1;
|
|
static char *argv[2];
|
|
argv[0] = new char[8];
|
|
argv[1] = 0;
|
|
strcpy(argv[0], "phoenix");
|
|
char **argvp = argv;
|
|
application = new QApplication(argc, argvp);
|
|
}
|