mirror of https://github.com/bsnes-emu/bsnes.git
129 lines
3.0 KiB
C++
129 lines
3.0 KiB
C++
|
#include <QApplication>
|
||
|
#include <QtGui>
|
||
|
using namespace nall;
|
||
|
|
||
|
namespace phoenix {
|
||
|
|
||
|
#include "qt.moc.hpp"
|
||
|
#include "qt.moc"
|
||
|
|
||
|
#include "object.cpp"
|
||
|
#include "font.cpp"
|
||
|
#include "menu.cpp"
|
||
|
#include "widget.cpp"
|
||
|
#include "window.cpp"
|
||
|
#include "button.cpp"
|
||
|
#include "canvas.cpp"
|
||
|
#include "checkbox.cpp"
|
||
|
#include "combobox.cpp"
|
||
|
#include "editbox.cpp"
|
||
|
#include "horizontalslider.cpp"
|
||
|
#include "label.cpp"
|
||
|
#include "listbox.cpp"
|
||
|
#include "progressbar.cpp"
|
||
|
#include "radiobox.cpp"
|
||
|
#include "textbox.cpp"
|
||
|
#include "verticalslider.cpp"
|
||
|
#include "viewport.cpp"
|
||
|
#include "messagewindow.cpp"
|
||
|
|
||
|
OS::Data *OS::os = 0;
|
||
|
Window Window::None;
|
||
|
|
||
|
void OS::initialize() {
|
||
|
static bool initialized = false;
|
||
|
if(initialized == true) return;
|
||
|
initialized = true;
|
||
|
|
||
|
os = new OS::Data;
|
||
|
static int argc = 1;
|
||
|
static char *argv[2];
|
||
|
argv[0] = new char[8];
|
||
|
argv[1] = 0;
|
||
|
strcpy(argv[0], "phoenix");
|
||
|
char **argvp = argv;
|
||
|
os->application = new QApplication(argc, argvp);
|
||
|
}
|
||
|
|
||
|
bool OS::pending() {
|
||
|
return QApplication::hasPendingEvents();
|
||
|
}
|
||
|
|
||
|
void OS::run() {
|
||
|
QApplication::processEvents();
|
||
|
}
|
||
|
|
||
|
void OS::main() {
|
||
|
QApplication::exec();
|
||
|
}
|
||
|
|
||
|
void OS::quit() {
|
||
|
QApplication::quit();
|
||
|
}
|
||
|
|
||
|
unsigned OS::desktopWidth() {
|
||
|
return QApplication::desktop()->screenGeometry().width();
|
||
|
}
|
||
|
|
||
|
unsigned OS::desktopHeight() {
|
||
|
return QApplication::desktop()->screenGeometry().height();
|
||
|
}
|
||
|
|
||
|
string OS::folderSelect(Window &parent, const string &path) {
|
||
|
QString directory = QFileDialog::getExistingDirectory(
|
||
|
&parent != &Window::None ? parent.window : 0, "Select Directory",
|
||
|
QString::fromUtf8(path), QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks
|
||
|
);
|
||
|
string name = directory.toUtf8().constData();
|
||
|
if(name.endswith("/") == false) name.append("/");
|
||
|
return name;
|
||
|
}
|
||
|
|
||
|
string OS::fileOpen(Window &parent, const string &filter, const string &path) {
|
||
|
string filters;
|
||
|
lstring list;
|
||
|
list.split("\n", filter);
|
||
|
foreach(item, list) {
|
||
|
lstring part;
|
||
|
part.split("\t", item);
|
||
|
if(part.size() != 2) continue;
|
||
|
part[1].replace(",", " ");
|
||
|
filters.append(part[0]);
|
||
|
filters.append(" (");
|
||
|
filters.append(part[1]);
|
||
|
filters.append(");;");
|
||
|
}
|
||
|
filters.rtrim(";;");
|
||
|
|
||
|
QString filename = QFileDialog::getOpenFileName(
|
||
|
&parent != &Window::None ? parent.window : 0, "Open File",
|
||
|
QString::fromUtf8(path), QString::fromUtf8(filters)
|
||
|
);
|
||
|
return filename.toUtf8().constData();
|
||
|
}
|
||
|
|
||
|
string OS::fileSave(Window &parent, const string &filter, const string &path) {
|
||
|
string filters;
|
||
|
lstring list;
|
||
|
list.split("\n", filter);
|
||
|
foreach(item, list) {
|
||
|
lstring part;
|
||
|
part.split("\t", item);
|
||
|
if(part.size() != 2) continue;
|
||
|
part[1].replace(",", " ");
|
||
|
filters.append(part[0]);
|
||
|
filters.append(" (");
|
||
|
filters.append(part[1]);
|
||
|
filters.append(");;");
|
||
|
}
|
||
|
filters.rtrim(";;");
|
||
|
|
||
|
QString filename = QFileDialog::getSaveFileName(
|
||
|
&parent != &Window::None ? parent.window : 0, "Save File",
|
||
|
QString::fromUtf8(path), QString::fromUtf8(filters)
|
||
|
);
|
||
|
return filename.toUtf8().constData();
|
||
|
}
|
||
|
|
||
|
}
|