misaki-web / guid Goto Github PK
View Code? Open in Web Editor NEWThis project forked from luebking/qarma
Create cross-platform GUI dialogs in a breeze for Linux, macOS and Windows
License: GNU General Public License v2.0
This project forked from luebking/qarma
Create cross-platform GUI dialogs in a breeze for Linux, macOS and Windows
License: GNU General Public License v2.0
Make dialogs always open on top.
There's no console output on Windows, but it works fine on Linux and macOS.
We can set the form label with --text
and it'll be displayed at the top of the dialog, but we can't add text without field anywhere in the form.
There's no argument to add tabs (tab bars) inside forms.
We should have an argument to set a button to add new rows in lists.
We should have an argument --small-caps
.
Group similar arguments to help find possible arguments faster.
Add an argument to link a form dialog with the system tray.
We should be able to set font underline using an argument --underline
.
We should be able to set vertical alignment of columns.
See commit description.
We should have a way to automatically fill list values from a file.
Even if we can manually add text formatting (ex.: --add-text="<strong>Lorem ipsum</strong>"
), it would be useful to have arguments to set it easily:
--bold
--italics
--font-size=SIZE
--foreground-color=COLOR
--background-color=COLOR
Example:
guid --forms --add-text="Lorem ipsum" --bold --italics --font-size=12 --foreground-color="#0000FF" --background-color="#FFFF00"
Since the main label is in bold by default, we should have an option to disable bold:
guid --forms --text="Form description/Main label" --no-bold
We should have a way to set the tooltip of text added with --add-text=TEXT
.
guid should have a few icons/images by default.
We should be able to add combo values in forms from a file specified with a new argument --combo-values-from-file=FILENAME
.
See #26 for lists.
Combos inside forms can't be made editable with --editable
.
No selection in lists can be useful to display information without user interaction.
With --text-info
, we can get text from a remote location like this:
guid --text-info --html --url="https://github.com"
curl is used to get content, but it's assumed that curl is in PATH
. We should be able to specify a custom path to the curl binary.
The commit closing issue #8 doesn't solve the column style problem for lists inside forms.
We should be able to set the height of lists created with --list
or inside forms with --forms --add-list=LABEL
.
There's no argument to add menus inside forms.
The argument --title="My custom title"
has no effect on all builds (Linux, macOS and Windows)
We should be able to set variable prefix before each field output. For example, instead of this output:
2020-12-12|Abcde
it could be:
date=2020-12-12|pseudo=Abcde
using a new argument --var=NAME
:
guid --forms --add-calendar="Choose a date" --var="date" --add-entry="Type your pseudo" --var="pseudo"
We should be able to add spacers with arbitrary height between form fields.
Scales can be added individually as independent dialogs with --scale
but we can't add them as fields inside forms.
Arguments --int
and --float
can't be used for text entries inside forms. Example:
$ guid --entry --text="Text entry" --int=2
2
$ guid --forms --add-entry="Text entry" --int=2
unspecific argument "--int"
We should be able to set the font family.
When adding text displayed alone in a row, we can't set alignment. Example:
$ guid --entry --text="Text"
Example inside forms:
$ guid --forms --add-entry="Entry text" --text="Text"
Text is always left aligned.
We should be able to add horizontal rules with --add-hrule
.
Instead of returning only selected rows in a list, we should be able to return all rows. It would be useful with editable lists to get all values, updated or not.
The property guid_separator
can be set with the argument --separator
. Example:
if (args.at(i) == "--separator")
dlg->setProperty("guid_separator", NEXT_ARG);
It's used to separate field values on the console output. Example:
$ zenity --forms \
--add-entry="Field 1" \
--add-entry="Field 2"
field 1 value|field 2 value
$ zenity --forms \
--add-entry="Field 1" \
--add-entry="Field 2" \
--separator=";"
field 1 value;field 2 value
Let's say our form contains a list. The list itself is only a field, like any other one added with --add-FIELD_TYPE
:
$ zenity --forms \
--add-entry="Field 1" \
--add-entry="Field 2" \
--add-list="Field 3" --list-values="f3v1|f3v2|f3v3|f3v4" --column-values="f3c1|f3c2"
field 1 value|field 2 value|f3v3f3v4
$ zenity --forms \
--add-entry="Field 1" \
--add-entry="Field 2" \
--add-list="Field 3" --list-values="f3v1|f3v2|f3v3|f3v4" --column-values="f3c1|f3c2" \
--separator=";"
field 1 value;field 2 value;f3v3f3v4
The "no separator" bug (f3v3f3v4
) was fixed with #2, so we now have:
$ guid --forms \
--add-entry="Field 1" \
--add-entry="Field 2" \
--add-list="Field 3" --list-values="f3v1|f3v2|f3v3|f3v4" --column-values="f3c1|f3c2"
field 1 value|field 2 value|f3v3,f3v4
$ guid --forms \
--add-entry="Field 1" \
--add-entry="Field 2" \
--add-list="Field 3" --list-values="f3v1|f3v2|f3v3|f3v4" --column-values="f3c1|f3c2" \
--separator=";"
field 1 value;field 2 value;f3v3,f3v4
Thanks to #4, the argument --multiple
can be used with lists inside forms. With Zenity, we had:
$ zenity --forms \
--add-entry="Field 1" \
--add-entry="Field 2" \
--add-list="Field 3" --list-values="f3v1|f3v2|f3v3|f3v4" --column-values="f3c1|f3c2" \
--multiple
--multiple is not supported for this dialog
With guid, the argument --multiple
can be used. Commas (,
) are used to separate values from the same row. The GUI dialog is like this:
Field 1: [ ] <----- First text field
Field 2: [ ] <----- Second text field
Field 3: f3c1 | f3c2 <----- List column header for field 3
-----------
f3v1 | f3v2 <----- First list row for field 3
f3v3 | f3v4 <----- Second list row for field 3
The result:
$ guid --forms \
--add-entry="Field 1" \
--add-entry="Field 2" \
--add-list="Field 3" --list-values="f3v1|f3v2|f3v3|f3v4" --column-values="f3c1|f3c2" \
--multiple
field 1 value|field 2 value|f3v1,f3v2,f3v3,f3v4
When multiple rows are selected, we should be able to separate them while keeping a specific separator for list values (,
) and for fields (|
by default). A new argument --list-row-separator
could be created. Example:
$ guid --forms \
--add-entry="Field 1" \
--add-entry="Field 2" \
--add-list="Field 3" --list-values="f3v1|f3v2|f3v3|f3v4" --column-values="f3c1|f3c2" \
--multiple \
--separator=";" \
--list-row-separator="~"
field 1 value;field 2 value;f3v1,f3v2~f3v3,f3v4
There's no argument allowing to align all labels for all fields in a form, something like --forms-align=VALUE
.
We can add fields one after the other, each on its own row:
Label 1 [ ]
Label 2 [ ]
Label 3 [ ]
Label 4 [ ]
but we can't add two fields on the same row:
Label 1 [ ]
Label 2 [ ] Label 3 [ ]
Label 4 [ ]
Text read with --text-info --filename=FILE
has issues with accented letters.
We can use the argument --width
to set the window width, but there's no argument to set a text entry width.
The argument --align
can only be used to align the dialog label (added with --text
). We should be able to align text added with --add-text
.
When values entered by the user contains accented letters, the output sent to the console on Windows doesn't handle them correctly. Example:
guid --entry --text="Enter the letter é"
0
The argument --print-column
is not implemented.
The argument --field-width=WIDTH
doesn't apply to widgets added with --add-text=TEXT
and --add-hrule=COLOR
.
There's no argument to add text information (like the dialog --text-info
) inside forms.
We can add a new label with image and text, but it must be done manually by adding HTML content in the label created. We should have a shortcut to ease the process, for example a new argument --add-image-text
.
There's no argument to add a spin box or a double spin box in forms.
We should be able to use new arguments --add-spin-box
and --add-double-spin-box
. We should also be able to set the field width.
We should be able to set a prefix before each line output to the console, with a specific prefix for stdout
and another for stderr
.
There's no argument --value=VALUE
for spin boxes.
When a combo or a list gets values from a file specified with --combo-values-from-file=PATH
or --list-values-from-file=PATH
, we should have an option to monitor file changes and update the combo or the list.
Arguments --editable
and --multiple
have no effect when used with lists inside forms.
Zenity is inconsistent about separators between list values in forms:
Example without separator (Value 3Value 4
):
$ zenity --forms --add-entry="Test entry 1" --add-list="Test list" --column-values="Column 1|Column 2" --list-values="Value 1|Value 2|Value 3|Value 4"
entry 1|Value 3Value 4
Example with separator (Value 3,Value 4,
):
$ zenity --forms --add-entry="Test entry 1" --add-list="Test list" --column-values="Column 1|Column 2" --list-values="Value 1|Value 2|Value 3|Value 4" --add-entry="Test entry 2"
entry 1|Value 3,Value 4,|entry 2
With guid, both examples currently return no separator:
$ guid --forms --add-entry="Test entry 1" --add-list="Test list" --column-values="Column 1|Column 2" --list-values="Value 1|Value 2|Value 3|Value 4"
entry 1|Value 3Value 4
$ guid --forms --add-entry="Test entry 1" --add-list="Test list" --column-values="Column 1|Column 2" --list-values="Value 1|Value 2|Value 3|Value 4" --add-entry="Test entry 2"
entry 1|Value 3Value 4|entry 2
Example outside forms:
$ zenity --list --text="Test list" --column="Column 1" --column="Column 2" "Value 1" "Value 2" "Value 3" "Value 4" --print-column=ALL
Value 3|Value 4
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.