Implement platform-agnostic OpenURL().
This commit is contained in:
@@ -15,7 +15,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
|||||||
include(cmake/CPM.cmake)
|
include(cmake/CPM.cmake)
|
||||||
|
|
||||||
CPMAddPackage(NAME mcolor
|
CPMAddPackage(NAME mcolor
|
||||||
URL https://git.redacted.cc/maxine/mcolor/archive/Prerelease-7.3.zip)
|
URL https://git.redacted.cc/maxine/mcolor/archive/Release-1.zip)
|
||||||
|
|
||||||
CPMAddPackage(NAME jlog
|
CPMAddPackage(NAME jlog
|
||||||
URL https://git.redacted.cc/josh/jlog/archive/Prerelease-18.zip)
|
URL https://git.redacted.cc/josh/jlog/archive/Prerelease-18.zip)
|
||||||
|
@@ -105,6 +105,15 @@ void FractalInspectorApp::UnloadJulia() {
|
|||||||
juliaset_dialog->Close();
|
juliaset_dialog->Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OpenURL(const std::string &url) {
|
||||||
|
#ifdef _WIN32
|
||||||
|
system(std::format("start {}", url).c_str());
|
||||||
|
#endif
|
||||||
|
#ifdef linux
|
||||||
|
system(std::format("xdg-open {}", url).c_str());
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
JUI::Window * FractalInspectorApp::CreateAppInfoDialogWindow(JUI::Widget *parent) {
|
JUI::Window * FractalInspectorApp::CreateAppInfoDialogWindow(JUI::Widget *parent) {
|
||||||
// TODO: Implement JUI structure that makes blocks of text easy to impelement.
|
// TODO: Implement JUI structure that makes blocks of text easy to impelement.
|
||||||
auto window = new JUI::Window(parent);
|
auto window = new JUI::Window(parent);
|
||||||
@@ -112,6 +121,8 @@ JUI::Window * FractalInspectorApp::CreateAppInfoDialogWindow(JUI::Widget *parent
|
|||||||
window->Size({300_px, 375_px});
|
window->Size({300_px, 375_px});
|
||||||
window->MinSize({300, 375});
|
window->MinSize({300, 375});
|
||||||
|
|
||||||
|
window->Position({100_percent - 325_px, 100_percent - 400_px});
|
||||||
|
|
||||||
auto* layout = new JUI::VerticalListLayout(window->Content());
|
auto* layout = new JUI::VerticalListLayout(window->Content());
|
||||||
layout->Padding(0_px);
|
layout->Padding(0_px);
|
||||||
|
|
||||||
@@ -156,18 +167,23 @@ JUI::Window * FractalInspectorApp::CreateAppInfoDialogWindow(JUI::Widget *parent
|
|||||||
auto* btn_layout = new JUI::HorizontalListLayout(btn_box);
|
auto* btn_layout = new JUI::HorizontalListLayout(btn_box);
|
||||||
btn_layout->Padding(8_px);
|
btn_layout->Padding(8_px);
|
||||||
|
|
||||||
auto btn_item = [&] (const std::string& text) -> JUI::TextButton* {
|
auto btn_item = [&] (const std::string& text, const std::function<void()>& callback = {}) -> JUI::TextButton* {
|
||||||
JUI::TextButton* btn = new JUI::TextButton(btn_layout);
|
JUI::TextButton* btn = new JUI::TextButton(btn_layout);
|
||||||
btn->SetContent(text);
|
btn->SetContent(text);
|
||||||
btn->Size({32_percent, 100_percent});
|
btn->Size({32_percent, 100_percent});
|
||||||
btn->SetTextColor(Colors::Black);
|
btn->SetTextColor(Colors::Black);
|
||||||
btn->Center();
|
btn->Center();
|
||||||
|
btn->OnClickEvent += [callback] (auto a, auto b) {
|
||||||
|
callback();
|
||||||
|
};
|
||||||
return btn;
|
return btn;
|
||||||
};
|
};
|
||||||
|
|
||||||
auto* btn_a = btn_item("License");
|
auto* btn_a = btn_item("License");
|
||||||
auto* btn_b = btn_item("Wiki");
|
auto* btn_b = btn_item("Wiki");
|
||||||
auto* btn_c = btn_item("Source");
|
auto* btn_c = btn_item("Source", []() {
|
||||||
|
OpenURL("https://git.redacted.cc/josh/FractalInspector");
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
return window;
|
return window;
|
||||||
@@ -285,6 +301,7 @@ void FractalInspectorApp::CreateMenu() {
|
|||||||
console->OnInput += [this] (const std::string& message) {
|
console->OnInput += [this] (const std::string& message) {
|
||||||
ParseCmdLineMessage(message);
|
ParseCmdLineMessage(message);
|
||||||
};
|
};
|
||||||
|
console->Close();
|
||||||
|
|
||||||
|
|
||||||
mandelbrotset_dialog = new JUI::Window(scene);
|
mandelbrotset_dialog = new JUI::Window(scene);
|
||||||
|
Reference in New Issue
Block a user