Update to v106r52 release.

byuu says:

I stand corrected, I managed to create and even larger diff than ever.
This one weighs in at 309KiB `>__>`

I'll have to create a changelog later, I'm too tired right now to go
through all of that.
This commit is contained in:
Tim Allen
2018-07-25 22:24:03 +10:00
parent f1a4576ac4
commit 22bd4b9277
171 changed files with 1725 additions and 1403 deletions

View File

@@ -10,6 +10,11 @@ auto Application::font() -> Font {
return state.font;
}
auto Application::kill() -> void {
quit();
exit(EXIT_SUCCESS);
}
auto Application::locale() -> Locale& {
return state.locale;
}

View File

@@ -4,6 +4,7 @@ struct Application {
static auto doMain() -> void;
static auto font() -> Font;
static auto kill() -> void;
static auto locale() -> Locale&;
static auto modal() -> bool;
static auto name() -> string;

View File

@@ -12,7 +12,7 @@ auto BrowserWindow::save() -> string {
return pBrowserWindow::save(state);
}
auto BrowserWindow::setFilters(const string_vector& filters) -> type& {
auto BrowserWindow::setFilters(const vector<string>& filters) -> type& {
state.filters = filters;
return *this;
}

View File

@@ -25,7 +25,6 @@ using nall::set;
using nall::shared_pointer;
using nall::shared_pointer_weak;
using nall::string;
using nall::string_vector;
using nall::vector;
namespace hiro {
@@ -427,14 +426,14 @@ struct BrowserWindow {
auto directory() -> string;
auto open() -> string;
auto save() -> string;
auto setFilters(const string_vector& filters = {"*"}) -> type&;
auto setFilters(const vector<string>& filters = {"*"}) -> type&;
auto setParent(sWindow parent) -> type&;
auto setPath(const string& path = "") -> type&;
auto setTitle(const string& title = "") -> type&;
//private:
struct State {
string_vector filters;
vector<string> filters;
sWindow parent;
string path;
string title;
@@ -619,7 +618,7 @@ struct mWindow : mObject {
auto backgroundColor() const -> Color;
auto dismissable() const -> bool;
auto doClose() const -> void;
auto doDrop(string_vector) const -> void;
auto doDrop(vector<string>) const -> void;
auto doKeyPress(int) const -> void;
auto doKeyRelease(int) const -> void;
auto doMove() const -> void;
@@ -635,7 +634,7 @@ struct mWindow : mObject {
auto minimumSize() const -> Size;
auto modal() const -> bool;
auto onClose(const function<void ()>& callback = {}) -> type&;
auto onDrop(const function<void (string_vector)>& callback = {}) -> type&;
auto onDrop(const function<void (vector<string>)>& callback = {}) -> type&;
auto onKeyPress(const function<void (int)>& callback = {}) -> type&;
auto onKeyRelease(const function<void (int)>& callback = {}) -> type&;
auto onMove(const function<void ()>& callback = {}) -> type&;
@@ -683,7 +682,7 @@ struct mWindow : mObject {
sMenuBar menuBar;
bool modal = false;
function<void ()> onClose;
function<void (string_vector)> onDrop;
function<void (vector<string>)> onDrop;
function<void (int)> onKeyPress;
function<void (int)> onKeyRelease;
function<void ()> onMove;
@@ -934,14 +933,14 @@ struct mCanvas : mWidget {
auto color() const -> Color;
auto data() -> uint32_t*;
auto droppable() const -> bool;
auto doDrop(string_vector names) const -> void;
auto doDrop(vector<string> names) const -> void;
auto doMouseLeave() const -> void;
auto doMouseMove(Position position) const -> void;
auto doMousePress(Mouse::Button button) const -> void;
auto doMouseRelease(Mouse::Button button) const -> void;
auto gradient() const -> Gradient;
auto icon() const -> image;
auto onDrop(const function<void (string_vector)>& callback = {}) -> type&;
auto onDrop(const function<void (vector<string>)>& callback = {}) -> type&;
auto onMouseLeave(const function<void ()>& callback = {}) -> type&;
auto onMouseMove(const function<void (Position)>& callback = {}) -> type&;
auto onMousePress(const function<void (Mouse::Button)>& callback = {}) -> type&;
@@ -960,7 +959,7 @@ struct mCanvas : mWidget {
bool droppable = false;
Gradient gradient;
image icon;
function<void (string_vector)> onDrop;
function<void (vector<string>)> onDrop;
function<void ()> onMouseLeave;
function<void (Position)> onMouseMove;
function<void (Mouse::Button)> onMousePress;
@@ -1908,14 +1907,14 @@ struct mVerticalSlider : mWidget {
struct mViewport : mWidget {
Declare(Viewport)
auto doDrop(string_vector names) const -> void;
auto doDrop(vector<string> names) const -> void;
auto doMouseLeave() const -> void;
auto doMouseMove(Position position) const -> void;
auto doMousePress(Mouse::Button button) const -> void;
auto doMouseRelease(Mouse::Button button) const -> void;
auto droppable() const -> bool;
auto handle() const -> uintptr_t;
auto onDrop(const function<void (string_vector)>& callback = {}) -> type&;
auto onDrop(const function<void (vector<string>)>& callback = {}) -> type&;
auto onMouseLeave(const function<void ()>& callback = {}) -> type&;
auto onMouseMove(const function<void (Position position)>& callback = {}) -> type&;
auto onMousePress(const function<void (Mouse::Button)>& callback = {}) -> type&;
@@ -1925,7 +1924,7 @@ struct mViewport : mWidget {
//private:
struct State {
bool droppable = false;
function<void (string_vector)> onDrop;
function<void (vector<string>)> onDrop;
function<void ()> onMouseLeave;
function<void (Position)> onMouseMove;
function<void (Mouse::Button)> onMousePress;

View File

@@ -217,14 +217,14 @@ struct Canvas : sCanvas {
auto color() const { return self().color(); }
auto data() { return self().data(); }
auto droppable() const { return self().droppable(); }
auto doDrop(string_vector names) { return self().doDrop(names); }
auto doDrop(vector<string> names) { return self().doDrop(names); }
auto doMouseLeave() const { return self().doMouseLeave(); }
auto doMouseMove(Position position) const { return self().doMouseMove(position); }
auto doMousePress(Mouse::Button button) const { return self().doMousePress(button); }
auto doMouseRelease(Mouse::Button button) const { return self().doMouseRelease(button); }
auto gradient() const { return self().gradient(); }
auto icon() const { return self().icon(); }
auto onDrop(const function<void (string_vector)>& callback = {}) { return self().onDrop(callback), *this; }
auto onDrop(const function<void (vector<string>)>& callback = {}) { return self().onDrop(callback), *this; }
auto onMouseLeave(const function<void ()>& callback = {}) { return self().onMouseLeave(callback), *this; }
auto onMouseMove(const function<void (Position)>& callback = {}) { return self().onMouseMove(callback), *this; }
auto onMousePress(const function<void (Mouse::Button)>& callback = {}) { return self().onMousePress(callback), *this; }
@@ -864,14 +864,14 @@ struct Viewport : sViewport {
DeclareSharedWidget(Viewport)
using internalType = mViewport;
auto doDrop(string_vector names) const { return self().doDrop(names); }
auto doDrop(vector<string> names) const { return self().doDrop(names); }
auto doMouseLeave() const { return self().doMouseLeave(); }
auto doMouseMove(Position position) const { return self().doMouseMove(position); }
auto doMousePress(Mouse::Button button) const { return self().doMousePress(button); }
auto doMouseRelease(Mouse::Button button) const { return self().doMouseRelease(button); }
auto droppable() const { return self().droppable(); }
auto handle() const { return self().handle(); }
auto onDrop(const function<void (string_vector)>& callback = {}) { return self().onDrop(callback), *this; }
auto onDrop(const function<void (vector<string>)>& callback = {}) { return self().onDrop(callback), *this; }
auto onMouseLeave(const function<void ()>& callback = {}) { return self().onMouseLeave(callback), *this; }
auto onMouseMove(const function<void (Position)>& callback = {}) { return self().onMouseMove(callback), *this; }
auto onMousePress(const function<void (Mouse::Button)>& callback = {}) { return self().onMousePress(callback), *this; }
@@ -929,7 +929,7 @@ struct Window : sWindow {
auto backgroundColor() const { return self().backgroundColor(); }
auto dismissable() const { return self().dismissable(); }
auto doClose() const { return self().doClose(); }
auto doDrop(string_vector names) const { return self().doDrop(names); }
auto doDrop(vector<string> names) const { return self().doDrop(names); }
auto doKeyPress(signed key) const { return self().doKeyPress(key); }
auto doKeyRelease(signed key) const { return self().doKeyRelease(key); }
auto doMove() const { return self().doMove(); }
@@ -945,7 +945,7 @@ struct Window : sWindow {
auto minimumSize() const { return self().minimumSize(); }
auto modal() const { return self().modal(); }
auto onClose(const function<void ()>& callback = {}) { return self().onClose(callback), *this; }
auto onDrop(const function<void (string_vector)>& callback = {}) { return self().onDrop(callback), *this; }
auto onDrop(const function<void (vector<string>)>& callback = {}) { return self().onDrop(callback), *this; }
auto onKeyPress(const function<void (signed)>& callback = {}) { return self().onKeyPress(callback), *this; }
auto onKeyRelease(const function<void (signed)>& callback = {}) { return self().onKeyRelease(callback), *this; }
auto onMove(const function<void ()>& callback = {}) { return self().onMove(callback), *this; }

View File

@@ -18,7 +18,7 @@ auto mCanvas::droppable() const -> bool {
return state.droppable;
}
auto mCanvas::doDrop(string_vector names) const -> void {
auto mCanvas::doDrop(vector<string> names) const -> void {
if(state.onDrop) return state.onDrop(names);
}
@@ -46,7 +46,7 @@ auto mCanvas::icon() const -> image {
return state.icon;
}
auto mCanvas::onDrop(const function<void (string_vector)>& callback) -> type& {
auto mCanvas::onDrop(const function<void (vector<string>)>& callback) -> type& {
state.onDrop = callback;
return *this;
}

View File

@@ -147,6 +147,7 @@ auto mTreeViewItem::setParent(mObject* parent, signed offset) -> type& {
for(auto& item : reverse(state.items)) item->destruct();
mObject::setParent(parent, offset);
for(auto& item : state.items) item->setParent(this, item->offset());
return *this;
}
auto mTreeViewItem::setSelected() -> type& {

View File

@@ -6,7 +6,7 @@ auto mViewport::allocate() -> pObject* {
//
auto mViewport::doDrop(string_vector names) const -> void {
auto mViewport::doDrop(vector<string> names) const -> void {
if(state.onDrop) return state.onDrop(names);
}
@@ -34,7 +34,7 @@ auto mViewport::handle() const -> uintptr_t {
return signal(handle);
}
auto mViewport::onDrop(const function<void (string_vector)>& callback) -> type& {
auto mViewport::onDrop(const function<void (vector<string>)>& callback) -> type& {
state.onDrop = callback;
return *this;
}

View File

@@ -53,7 +53,7 @@ auto mWindow::doClose() const -> void {
if(state.onClose) return state.onClose();
}
auto mWindow::doDrop(string_vector names) const -> void {
auto mWindow::doDrop(vector<string> names) const -> void {
if(state.onDrop) return state.onDrop(names);
}
@@ -122,7 +122,7 @@ auto mWindow::onClose(const function<void ()>& callback) -> type& {
return *this;
}
auto mWindow::onDrop(const function<void (string_vector)>& callback) -> type& {
auto mWindow::onDrop(const function<void (vector<string>)>& callback) -> type& {
state.onDrop = callback;
return *this;
}
@@ -282,13 +282,13 @@ auto mWindow::setMinimumSize(Size size) -> type& {
auto mWindow::setModal(bool modal) -> type& {
state.modal = modal;
signal(setModal, modal);
if(modal) {
Application::state.modal++;
} else {
Application::state.modal--;
assert(Application::state.modal >= 0);
}
signal(setModal, modal);
return *this;
}

View File

@@ -30,7 +30,7 @@ private:
BrowserDialog::State& state;
BrowserDialog::Response response;
vector<string_vector> filters;
vector<vector<string>> filters;
};
//accept button clicked, or enter pressed on file name line edit
@@ -248,7 +248,7 @@ auto BrowserDialog::openFile() -> string {
return {};
}
auto BrowserDialog::openFiles() -> string_vector {
auto BrowserDialog::openFiles() -> vector<string> {
state.action = "openFiles";
if(!state.title) state.title = "Open Files";
if(auto result = _run()) return result;
@@ -280,7 +280,7 @@ auto BrowserDialog::saveFile() -> string {
return {};
}
auto BrowserDialog::selected() -> string_vector {
auto BrowserDialog::selected() -> vector<string> {
return response.selected;
}
@@ -291,12 +291,12 @@ auto BrowserDialog::selectFolder() -> string {
return {};
}
auto BrowserDialog::setFilters(const string_vector& filters) -> type& {
auto BrowserDialog::setFilters(const vector<string>& filters) -> type& {
state.filters = filters;
return *this;
}
auto BrowserDialog::setOptions(const string_vector& options) -> type& {
auto BrowserDialog::setOptions(const vector<string>& options) -> type& {
state.options = options;
return *this;
}
@@ -316,7 +316,7 @@ auto BrowserDialog::setTitle(const string& title) -> type& {
return *this;
}
auto BrowserDialog::_run() -> string_vector {
auto BrowserDialog::_run() -> vector<string> {
if(!state.path) state.path = Path::user();
response = BrowserDialogWindow(state).run();
return response.selected;

View File

@@ -6,16 +6,16 @@ struct BrowserDialog {
using type = BrowserDialog;
BrowserDialog();
auto openFile() -> string; //one existing file
auto openFiles() -> string_vector; //any existing files
auto openFolder() -> string; //one existing folder
auto openObject() -> string; //one existing file or folder
auto openFile() -> string; //one existing file
auto openFiles() -> vector<string>; //any existing files
auto openFolder() -> string; //one existing folder
auto openObject() -> string; //one existing file or folder
auto option() -> string;
auto saveFile() -> string; //one file
auto selected() -> string_vector;
auto selectFolder() -> string; //one existing folder
auto setFilters(const string_vector& filters = {}) -> type&;
auto setOptions(const string_vector& options = {}) -> type&;
auto saveFile() -> string; //one file
auto selected() -> vector<string>;
auto selectFolder() -> string; //one existing folder
auto setFilters(const vector<string>& filters = {}) -> type&;
auto setOptions(const vector<string>& options = {}) -> type&;
auto setParent(const sWindow& parent) -> type&;
auto setPath(const string& path = "") -> type&;
auto setTitle(const string& title = "") -> type&;
@@ -23,8 +23,8 @@ struct BrowserDialog {
private:
struct State {
string action;
string_vector filters = {"*"};
string_vector options;
vector<string> filters = {"*"};
vector<string> options;
sWindow parent;
string path;
string title;
@@ -32,10 +32,10 @@ private:
struct Response {
string option;
string_vector selected;
vector<string> selected;
} response;
auto _run() -> string_vector;
auto _run() -> vector<string>;
friend class BrowserDialogWindow;
};

View File

@@ -4,19 +4,19 @@ MessageDialog::MessageDialog(const string& text) {
state.text = text;
}
auto MessageDialog::error(const string_vector& buttons) -> string {
auto MessageDialog::error(const vector<string>& buttons) -> string {
state.buttons = buttons;
state.icon = Icon::Prompt::Error;
return _run();
}
auto MessageDialog::information(const string_vector& buttons) -> string {
auto MessageDialog::information(const vector<string>& buttons) -> string {
state.buttons = buttons;
state.icon = Icon::Prompt::Information;
return _run();
}
auto MessageDialog::question(const string_vector& buttons) -> string {
auto MessageDialog::question(const vector<string>& buttons) -> string {
state.buttons = buttons;
state.icon = Icon::Prompt::Question;
return _run();
@@ -37,7 +37,7 @@ auto MessageDialog::setTitle(const string& title) -> type& {
return *this;
}
auto MessageDialog::warning(const string_vector& buttons) -> string {
auto MessageDialog::warning(const vector<string>& buttons) -> string {
state.buttons = buttons;
state.icon = Icon::Prompt::Warning;
return _run();

View File

@@ -4,17 +4,17 @@ struct MessageDialog {
using type = MessageDialog;
MessageDialog(const string& text = "");
auto error(const string_vector& buttons = {"Ok"}) -> string;
auto information(const string_vector& buttons = {"Ok"}) -> string;
auto question(const string_vector& buttons = {"Yes", "No"}) -> string;
auto error(const vector<string>& buttons = {"Ok"}) -> string;
auto information(const vector<string>& buttons = {"Ok"}) -> string;
auto question(const vector<string>& buttons = {"Yes", "No"}) -> string;
auto setParent(sWindow parent = {}) -> type&;
auto setText(const string& text = "") -> type&;
auto setTitle(const string& title = "") -> type&;
auto warning(const string_vector& buttons = {"Ok"}) -> string;
auto warning(const vector<string>& buttons = {"Ok"}) -> string;
private:
struct State {
string_vector buttons;
vector<string> buttons;
vector<uint8_t> icon;
sWindow parent;
string response;

View File

@@ -2,7 +2,7 @@
namespace hiro {
static auto BrowserWindow_addFilters(GtkWidget* dialog, string_vector filters) -> void {
static auto BrowserWindow_addFilters(GtkWidget* dialog, vector<string> filters) -> void {
for(auto& filter : filters) {
GtkFileFilter* gtkFilter = gtk_file_filter_new();
gtk_file_filter_set_name(gtkFilter, filter);

View File

@@ -36,11 +36,11 @@ static auto CreateImage(const image& icon, bool scale = false) -> GtkImage* {
return gtkIcon;
}
static auto DropPaths(GtkSelectionData* data) -> string_vector {
static auto DropPaths(GtkSelectionData* data) -> vector<string> {
gchar** uris = gtk_selection_data_get_uris(data);
if(uris == nullptr) return {};
string_vector paths;
vector<string> paths;
for(unsigned n = 0; uris[n] != nullptr; n++) {
gchar* pathname = g_filename_from_uri(uris[n], nullptr, nullptr);
if(pathname == nullptr) continue;

View File

@@ -11,15 +11,15 @@ struct pConsole : pWidget {
auto setForegroundColor(Color color) -> void;
auto setPrompt(const string& prompt) -> void;
auto _keyPress(unsigned scancode, unsigned mask) -> bool;
auto _keyPress(uint scancode, uint mask) -> bool;
auto _seekToEnd() -> void;
auto _seekToMark() -> void;
GtkWidget* subWidget = nullptr;
GtkTextBuffer* textBuffer = nullptr;
string previousPrompt;
string_vector history;
unsigned historyOffset = 0;
vector<string> history;
uint historyOffset = 0;
};
}

View File

@@ -3,6 +3,7 @@
namespace hiro {
auto pBrowserWindow::directory(BrowserWindow::State& state) -> string {
return {};
/*
QString directory = QFileDialog::getExistingDirectory(
state.parent ? state.parent->p.qtWindow : nullptr,
@@ -16,6 +17,7 @@ auto pBrowserWindow::directory(BrowserWindow::State& state) -> string {
}
auto pBrowserWindow::open(BrowserWindow::State& state) -> string {
return {};
/*
string filters = state.filters.merge(";;");
@@ -38,6 +40,7 @@ auto pBrowserWindow::open(BrowserWindow::State& state) -> string {
}
auto pBrowserWindow::save(BrowserWindow::State& state) -> string {
return {};
/*
string filters = state.filters.merge(";;");

View File

@@ -27,6 +27,7 @@ static auto MessageWindow_response(MessageWindow::Buttons buttons, QMessageBox::
}
auto pMessageWindow::error(MessageWindow::State& state) -> MessageWindow::Response {
return {};
// return MessageWindow_response(
// state.buttons, QMessageBox::critical(state.parent ? state.parent->p.qtWindow : nullptr, state.title ? state.title : " ",
// QString::fromUtf8(state.text), MessageWindow_buttons(state.buttons))
@@ -34,6 +35,7 @@ auto pMessageWindow::error(MessageWindow::State& state) -> MessageWindow::Respon
}
auto pMessageWindow::information(MessageWindow::State& state) -> MessageWindow::Response {
return {};
// return MessageWindow_response(
// state.buttons, QMessageBox::information(state.parent ? state.parent->p.qtWindow : nullptr, state.title ? state.title : " ",
// QString::fromUtf8(state.text), MessageWindow_buttons(state.buttons))
@@ -41,6 +43,7 @@ auto pMessageWindow::information(MessageWindow::State& state) -> MessageWindow::
}
auto pMessageWindow::question(MessageWindow::State& state) -> MessageWindow::Response {
return {};
// return MessageWindow_response(
// state.buttons, QMessageBox::question(state.parent ? state.parent->p.qtWindow : nullptr, state.title ? state.title : " ",
// QString::fromUtf8(state.text), MessageWindow_buttons(state.buttons))
@@ -48,6 +51,7 @@ auto pMessageWindow::question(MessageWindow::State& state) -> MessageWindow::Res
}
auto pMessageWindow::warning(MessageWindow::State& state) -> MessageWindow::Response {
return {};
// return MessageWindow_response(
// state.buttons, QMessageBox::warning(state.parent ? state.parent->p.qtWindow : nullptr, state.title ? state.title : " ",
// QString::fromUtf8(state.text), MessageWindow_buttons(state.buttons))