dportals ~main
xdg-portals for D
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
xdg-desktop-portal for D
This D library allows you to interface with XDG Desktop Portals when you aren't using GTK or Qt.
Example
module app;
import dportals;
import std.stdio;
void main() {
// Initialize Desktop Portals support
// This will live for the *entire* application lifetime.
dpInit();
// Open a File Open Dialog with some options set.
// A Promise type is returned which you can await.
// If you want your application to be non-blocking
// you will have to continually call dpUpdate
// then check the success value of the response
// before getting the value.
auto promise = dpFileChooserOpenFile(
"",
"Open File",
// See FileOpenOptions for API
FileOpenOptions(
"",
"UwU",
false,
true,
false,
[FileFilter("PNG", [FileFilterItem(0, "*.png")])],
new FileFilter("PNG", [FileFilterItem(0, "*.png")]),
[FileChoice("mangle", "Mangle File", [], "")]
)
);
// Await the response.
// This will continually in a loop call dpUpdate
// until the dialog closes for some reason.
promise.await();
// Print useful info about selected file
write(promise.success(), " ");
if (promise.success) write(promise.value());
else write("null");
write("\n");
}
- Registered by Clipsey
- ~main released 2 years ago
- Inochi2D/dportals
- BSD 2-clause
- Copyright © 2022, Luna
- Authors:
- Dependencies:
- ddbus
- Versions:
-
0.1.0 2022-Oct-01 ~main 2022-Oct-01 - Download Stats:
-
-
22 downloads today
-
155 downloads this week
-
659 downloads this month
-
13237 downloads total
-
- Score:
- 2.8
- Short URL:
- dportals.dub.pm