summaryrefslogtreecommitdiffstats
path: root/share/ui
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:29:01 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:29:01 +0000
commit35a96bde514a8897f6f0fcc41c5833bf63df2e2a (patch)
tree657d15a03cc46bd099fc2c6546a7a4ad43815d9f /share/ui
parentInitial commit. (diff)
downloadinkscape-35a96bde514a8897f6f0fcc41c5833bf63df2e2a.tar.xz
inkscape-35a96bde514a8897f6f0fcc41c5833bf63df2e2a.zip
Adding upstream version 1.0.2.upstream/1.0.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'share/ui')
-rw-r--r--share/ui/Adwaita-dark.css62
-rw-r--r--share/ui/Adwaita.css63
-rw-r--r--share/ui/CMakeLists.txt4
-rw-r--r--share/ui/dialog-css.glade134
-rw-r--r--share/ui/dialog-filter-editor.glade381
-rw-r--r--share/ui/dialog-livepatheffect-add.glade450
-rw-r--r--share/ui/dialog-livepatheffect-effect.glade270
-rw-r--r--share/ui/dialog-trace.glade1099
-rw-r--r--share/ui/inkscape-application.glade31
-rw-r--r--share/ui/menus.xml326
-rw-r--r--share/ui/style.css447
-rw-r--r--share/ui/toolbar-commands.ui42
-rw-r--r--share/ui/toolbar-tool.ui49
-rw-r--r--share/ui/toolbox.xml13
-rw-r--r--share/ui/units.xml101
-rw-r--r--share/ui/win32.css146
16 files changed, 3618 insertions, 0 deletions
diff --git a/share/ui/Adwaita-dark.css b/share/ui/Adwaita-dark.css
new file mode 100644
index 0000000..db89ba2
--- /dev/null
+++ b/share/ui/Adwaita-dark.css
@@ -0,0 +1,62 @@
+/* ADWAITA DARK SPECIFIC STYLE */
+
+/*
+ * Keep as small as possible
+ */
+
+spinbutton {
+ padding: 0;
+ outline-style: none;
+}
+
+spinbutton entry {
+ padding-left: 2px;
+ padding-right: 0;
+}
+
+spinbutton undershoot {
+ outline-style: none;
+}
+
+spinbutton entry {
+ padding-left: 2px;
+ padding-right: 0;
+}
+
+spinbutton undershoot {
+ outline-style: none;
+}
+
+.inkswitch slider {
+ min-width: 18px;
+ min-height: 18px;
+}
+
+.inkswitch image {
+ color: transparent;
+ background-color: transparent;
+ background-image: image(transparent);
+ -gtk-icon-style:symbolic;
+}
+
+.inkswitch {
+ margin: 2px;
+ padding: 0;
+ font-size: 8px;
+}
+
+/* Reduce width of +/- buttons. */
+.up,
+.down {
+ padding-left: 0;
+ padding-right: 0;
+}
+
+#monoStrokeWidth,
+#fillEmptySpace,
+#SelectStatus,
+#CoordinateStatusX,
+#CoordinateStatusY,
+#DesktopMainTable spinbutton{
+ font-family: sans-serif;
+} \ No newline at end of file
diff --git a/share/ui/Adwaita.css b/share/ui/Adwaita.css
new file mode 100644
index 0000000..ebec8d2
--- /dev/null
+++ b/share/ui/Adwaita.css
@@ -0,0 +1,63 @@
+/* ADWAITA SPECIFIC STYLE */
+
+
+/*
+ * Keep as small as possible
+ */
+
+spinbutton {
+ padding: 0;
+ outline-style: none;
+}
+
+spinbutton entry {
+ padding-left: 2px;
+ padding-right: 0;
+}
+
+spinbutton undershoot {
+ outline-style: none;
+}
+
+spinbutton entry {
+ padding-left: 2px;
+ padding-right: 0;
+}
+
+spinbutton undershoot {
+ outline-style: none;
+}
+
+.inkswitch slider {
+ min-width: 18px;
+ min-height: 18px;
+}
+
+.inkswitch image {
+ color: transparent;
+ background-color: transparent;
+ background-image: image(transparent);
+ -gtk-icon-style:symbolic;
+}
+
+.inkswitch {
+ margin: 2px;
+ padding: 0;
+ font-size: 8px;
+}
+
+/* Reduce width of +/- buttons. */
+.up,
+.down {
+ padding-left: 0;
+ padding-right: 0;
+}
+
+#monoStrokeWidth,
+#fillEmptySpace,
+#SelectStatus,
+#CoordinateStatusX,
+#CoordinateStatusY,
+#DesktopMainTable spinbutton{
+ font-family: sans-serif;
+} \ No newline at end of file
diff --git a/share/ui/CMakeLists.txt b/share/ui/CMakeLists.txt
new file mode 100644
index 0000000..7b1450b
--- /dev/null
+++ b/share/ui/CMakeLists.txt
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+file(GLOB _FILES "*.xml" "*.rc" "*.css" "*.ui" "*.glade")
+install(FILES ${_FILES} DESTINATION ${INKSCAPE_SHARE_INSTALL}/ui)
+
diff --git a/share/ui/dialog-css.glade b/share/ui/dialog-css.glade
new file mode 100644
index 0000000..4a5febb
--- /dev/null
+++ b/share/ui/dialog-css.glade
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.1 -->
+<interface>
+ <requires lib="gtk+" version="3.20"/>
+ <object class="GtkBox" id="CSSSelectorContainer">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="baseline_position">top</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkEventBox" id="CSSSelectorEventAdd">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_right">5</property>
+ <property name="icon_name">list-add</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEventBox" id="CSSSelectorEventBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkLabel" id="CSSSelector">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Selector</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="CSSEditSelector">
+ <property name="can_focus">True</property>
+ <property name="no_show_all">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> {</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkTreeView" id="CSSTree">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="hscroll_policy">natural</property>
+ <property name="vscroll_policy">natural</property>
+ <property name="enable_search">False</property>
+ <property name="fixed_height_mode">True</property>
+ <property name="hover_selection">True</property>
+ <property name="show_expanders">False</property>
+ <property name="tooltip_column">6</property>
+ <property name="activate_on_single_click">True</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="CSSTreeData"/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="CSSSelectorFilled">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
+ <property name="label">}</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ </object>
+</interface>
diff --git a/share/ui/dialog-filter-editor.glade b/share/ui/dialog-filter-editor.glade
new file mode 100644
index 0000000..908e0d7
--- /dev/null
+++ b/share/ui/dialog-filter-editor.glade
@@ -0,0 +1,381 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
+<interface>
+ <requires lib="gtk+" version="3.18"/>
+ <object class="GtkListStore" id="FilterStore">
+ <columns>
+ <!-- column-name Effect -->
+ <column type="gchararray"/>
+ <!-- column-name Name -->
+ <column type="gchararray"/>
+ <!-- column-name gboolean1 -->
+ <column type="gboolean"/>
+ <!-- column-name Origin -->
+ <column type="GObject"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">test1</col>
+ <col id="1" translatable="yes">a</col>
+ <col id="2">False</col>
+ <col id="3"/>
+ </row>
+ <row>
+ <col id="0" translatable="yes">test2</col>
+ <col id="1" translatable="yes">b</col>
+ <col id="2">False</col>
+ <col id="3"/>
+ </row>
+ <row>
+ <col id="0" translatable="yes">test3</col>
+ <col id="1" translatable="yes">c</col>
+ <col id="2">False</col>
+ <col id="3"/>
+ </row>
+ <row>
+ <col id="0" translatable="yes"/>
+ <col id="1" translatable="yes"/>
+ <col id="2">False</col>
+ <col id="3"/>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="FilterStore1">
+ <columns>
+ <!-- column-name origin_name -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">whatever</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">second choice</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkBox" id="FilterEditor">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkComboBoxText" id="FilterList">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <items>
+ <item translatable="yes">filter1</item>
+ <item translatable="yes">filter2</item>
+ </items>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">FER: </property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">X: </property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="FilterFERX">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="input_purpose">number</property>
+ <property name="orientation">vertical</property>
+ <property name="value">-0.10000000000000001</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Y: </property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="FilterFERY">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="orientation">vertical</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">W: </property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">6</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="FilterFERW">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="orientation">vertical</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">7</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">H: </property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">8</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="FilterFERH">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="orientation">vertical</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">9</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkPaned">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkTreeView" id="FilterPrimitiveList">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="model">FilterStore</property>
+ <property name="headers_clickable">False</property>
+ <property name="reorderable">True</property>
+ <property name="fixed_height_mode">True</property>
+ <property name="enable_tree_lines">True</property>
+ <property name="activate_on_single_click">True</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="sizing">fixed</property>
+ <property name="title" translatable="yes">Effect</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext4"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="sizing">fixed</property>
+ <property name="title" translatable="yes">Name</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext44"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="sizing">fixed</property>
+ <property name="title" translatable="yes">Origin(s)</property>
+ <property name="expand">True</property>
+ <child>
+ <object class="GtkCellRendererCombo" id="cellrenderertext45">
+ <property name="model">FilterStore1</property>
+ <property name="text_column">0</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkComboBox" id="FilterPrimitiveDropDown">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="FilterPrimitiveAdd">
+ <property name="label" translatable="yes">Add</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="resize">True</property>
+ <property name="shrink">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkDrawingArea" id="FilterPreview">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkImage" id="FilterPrimitiveDescImage">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-dialog-info</property>
+ <property name="icon_size">6</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="FilterPrimitiveDescText">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">This effect does this and that.</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="resize">True</property>
+ <property name="shrink">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <object class="GtkComboBox" id="OptionList">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="model">FilterStore1</property>
+ <property name="active">0</property>
+ <property name="id_column">0</property>
+ </object>
+</interface>
diff --git a/share/ui/dialog-livepatheffect-add.glade b/share/ui/dialog-livepatheffect-add.glade
new file mode 100644
index 0000000..28ab7d2
--- /dev/null
+++ b/share/ui/dialog-livepatheffect-add.glade
@@ -0,0 +1,450 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.1 -->
+<interface>
+ <requires lib="gtk+" version="3.20"/>
+ <object class="GtkDialog" id="LPEDialogSelector">
+ <property name="name">LPEDialogSelector</property>
+ <property name="can_focus">False</property>
+ <property name="title" translatable="yes">Live Path Effects Selector</property>
+ <property name="modal">True</property>
+ <property name="window_position">center-on-parent</property>
+ <property name="destroy_with_parent">True</property>
+ <property name="type_hint">dialog</property>
+ <property name="skip_taskbar_hint">True</property>
+ <property name="gravity">static</property>
+ <property name="has_resize_grip">True</property>
+ <child type="titlebar">
+ <placeholder/>
+ </child>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="baseline_position">top</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="LPESelector">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="orientation">vertical</property>
+ <property name="baseline_position">top</property>
+ <child>
+ <object class="GtkSearchBar">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="search_mode_enabled">True</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <child>
+ <object class="GtkSearchEntry" id="LPEFilter">
+ <property name="width_request">400</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_focus">True</property>
+ <property name="is_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="activates_default">True</property>
+ <property name="primary_icon_name">edit-find-symbolic</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">False</property>
+ <style>
+ <class name="iconymbolic"/>
+ </style>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButtonBox" id="LPESelectorAllButtonBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="layout_style">expand</property>
+ <child>
+ <object class="GtkRadioButton" id="LPESelectorEffectRadioPackLess">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">end</property>
+ <property name="valign">center</property>
+ <property name="draw_indicator">False</property>
+ <child>
+ <object class="GtkImage" id="LPESelectorEffectPackLessImage">
+ <property name="name">LPESelectorEffectPackLessImage</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="pixel_size">22</property>
+ <property name="icon_name">pack-less</property>
+ <property name="icon_size">2</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ <property name="non_homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="LPESelectorEffectRadioPackMore">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="draw_indicator">False</property>
+ <property name="group">LPESelectorEffectRadioPackLess</property>
+ <child>
+ <object class="GtkImage" id="LPESelectorEffectPackMoreImage">
+ <property name="name">LPESelectorEffectPackMoreImage</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="pixel_size">22</property>
+ <property name="icon_name">pack-more</property>
+ <property name="icon_size">2</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ <property name="non_homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="LPESelectorEffectRadioList">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="draw_indicator">False</property>
+ <property name="group">LPESelectorEffectRadioPackLess</property>
+ <child>
+ <object class="GtkImage" id="LPESelectorEffectListImage">
+ <property name="name">LPESelectorEffectListImage</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="pixel_size">22</property>
+ <property name="icon_name">hamburger-menu</property>
+ <property name="icon_size">2</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ <property name="non_homogeneous">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ <property name="non_homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">4</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEventBox" id="LPESelectorEffectEventFavShow">
+ <property name="name">LPESelectorEffectEventFavShow</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkImage" id="LPESelectorEffectFavShowImage">
+ <property name="name">LPESelectorEffectFavShowImage</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="pixel_size">25</property>
+ <property name="icon_name">draw-star-outline</property>
+ <property name="icon_size">2</property>
+ <style>
+ <class name="fab"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSwitch" id="LPEExperimental">
+ <property name="name">LPEExperimental</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">7</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Show Experimental</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">8</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <style>
+ <class name="searchbar"/>
+ </style>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="LPEInfo">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="label" translatable="yes">Message</property>
+ <property name="justify">center</property>
+ <property name="ellipsize">end</property>
+ <style>
+ <class name="lpeinfo"/>
+ </style>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="LPEScrolled">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="shadow_type">in</property>
+ <property name="min_content_width">800</property>
+ <property name="min_content_height">10</property>
+ <property name="propagate_natural_height">True</property>
+ <child>
+ <object class="GtkViewport" id="LPEViewport">
+ <property name="name">LPEViewport</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkFlowBox" id="LPESelectorFlowBox">
+ <property name="name">LPESelectorFlowBox</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="valign">start</property>
+ <property name="column_spacing">1</property>
+ <property name="row_spacing">1</property>
+ <property name="min_children_per_line">3</property>
+ <property name="max_children_per_line">30</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <style>
+ <class name="symbolic"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ <object class="GtkPopover" id="LPESelectorEffectInfoPop">
+ <property name="name">LPESelectorEffectInfoPop</property>
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="valign">start</property>
+ <property name="relative_to">LPEInfo</property>
+ <property name="position">bottom</property>
+ <property name="modal">False</property>
+ <property name="transitions_enabled">False</property>
+ <child>
+ <object class="GtkEventBox" id="LPESelectorEffectInfoEventBox">
+ <property name="name">LPESelectorEffectInfoEventBox</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkImage" id="LPESelectorEffectInfoIcon">
+ <property name="name">LPESelectorEffectInfoIcon</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="pixel_size">40</property>
+ <property name="icon_name">align-vertical-baseline</property>
+ <property name="icon_size">6</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="LPESelectorEffectInfoName">
+ <property name="name">LPESelectorEffectInfoName</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Name</property>
+ <property name="justify">center</property>
+ <property name="wrap">True</property>
+ <property name="max_width_chars">20</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="LPESelectorEffectInfoDescription">
+ <property name="name">LPESelectorEffectInfoDescription</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Description</property>
+ <property name="justify">center</property>
+ <property name="wrap">True</property>
+ <property name="max_width_chars">20</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <style>
+ <class name="popover symbolic"/>
+ </style>
+ </object>
+</interface>
diff --git a/share/ui/dialog-livepatheffect-effect.glade b/share/ui/dialog-livepatheffect-effect.glade
new file mode 100644
index 0000000..bee2189
--- /dev/null
+++ b/share/ui/dialog-livepatheffect-effect.glade
@@ -0,0 +1,270 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.1 -->
+<interface>
+ <requires lib="gtk+" version="3.20"/>
+ <object class="GtkEventBox" id="LPESelectorEffect">
+ <property name="name">LPESelectorEffect</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="valign">start</property>
+ <property name="visible_window">False</property>
+ <child>
+ <object class="GtkBox" id="LPESelectorEffectBox">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="double_buffered">False</property>
+ <property name="halign">start</property>
+ <property name="hexpand">False</property>
+ <property name="orientation">vertical</property>
+ <property name="baseline_position">top</property>
+ <child>
+ <object class="GtkOverlay" id="LPEOverlay">
+ <property name="name">LPEOverlay</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkImage" id="LPEIcon">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">start</property>
+ <property name="pixel_size">60</property>
+ <property name="icon_name">align-vertical-baseline</property>
+ <property name="icon_size">6</property>
+ </object>
+ <packing>
+ <property name="index">1</property>
+ </packing>
+ </child>
+ <child type="overlay">
+ <object class="GtkEventBox" id="LPESelectorEffectEventFavTop">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="halign">end</property>
+ <property name="valign">start</property>
+ <child>
+ <object class="GtkImage" id="LPESelectorEffectFavTop">
+ <property name="name">LPESelectorEffectFavTop</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="valign">start</property>
+ <property name="pixel_size">20</property>
+ <property name="icon_name">draw-star</property>
+ <property name="icon_size">2</property>
+ <style>
+ <class name="fab"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="index">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="LPEName">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">LPEName</property>
+ <property name="justify">center</property>
+ <property name="wrap">True</property>
+ <property name="ellipsize">end</property>
+ <property name="width_chars">14</property>
+ <property name="max_width_chars">23</property>
+ <style>
+ <class name="lpename"/>
+ </style>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="LPEDescription">
+ <property name="width_request">200</property>
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="label" translatable="yes">Description</property>
+ <property name="use_markup">True</property>
+ <property name="ellipsize">end</property>
+ <property name="single_line_mode">True</property>
+ <property name="lines">1</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="LPEExperimentalToggle">
+ <property name="label" translatable="yes">Experimental</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="no_show_all">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEventBox" id="LPESelectorEffectEventExpander">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <child>
+ <object class="GtkImage" id="LPESelectorEffectExpander">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="margin_left">5</property>
+ <property name="margin_right">5</property>
+ <property name="margin_top">5</property>
+ <property name="margin_bottom">5</property>
+ <property name="pixel_size">16</property>
+ <property name="icon_name">go-down</property>
+ <property name="icon_size">2</property>
+ <style>
+ <class name="info"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButtonBox" id="LPESelectorButtonBox">
+ <property name="name">LPESelectorButtonBox</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">start</property>
+ <property name="baseline_position">top</property>
+ <property name="layout_style">center</property>
+ <child>
+ <object class="GtkEventBox" id="LPESelectorEffectEventInfo">
+ <property name="name">LPESelectorEffectEventInfo</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="valign">start</property>
+ <property name="visible_window">False</property>
+ <child>
+ <object class="GtkImage" id="LPESelectorEffectInfo">
+ <property name="name">LPESelectorEffectInfo</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="valign">start</property>
+ <property name="pixel_size">23</property>
+ <property name="icon_name">info-outline</property>
+ <property name="icon_size">2</property>
+ <style>
+ <class name="info"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ <property name="non_homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEventBox" id="LPESelectorEffectEventFav">
+ <property name="name">LPESelectorEffectEventFav</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">start</property>
+ <property name="visible_window">False</property>
+ <child>
+ <object class="GtkImage" id="LPESelectorEffectFav">
+ <property name="name">LPESelectorEffectFav</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">start</property>
+ <property name="pixel_size">23</property>
+ <property name="icon_name">draw-star-outline</property>
+ <property name="icon_size">2</property>
+ <style>
+ <class name="fab"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
+ <property name="non_homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEventBox" id="LPESelectorEffectEventApply">
+ <property name="name">LPESelectorEffectEventApply</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
+ <property name="visible_window">False</property>
+ <child>
+ <object class="GtkImage">
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
+ <property name="pixel_size">23</property>
+ <property name="icon_name">on-outline</property>
+ <property name="icon_size">2</property>
+ <style>
+ <class name="apply"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">2</property>
+ <property name="non_homogeneous">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <style>
+ <class name="lpeselectoreffect"/>
+ </style>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/share/ui/dialog-trace.glade b/share/ui/dialog-trace.glade
new file mode 100644
index 0000000..39f96ce
--- /dev/null
+++ b/share/ui/dialog-trace.glade
@@ -0,0 +1,1099 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.1 -->
+<interface>
+ <requires lib="gtk+" version="3.20"/>
+ <object class="GtkAdjustment" id="MS_scans">
+ <property name="lower">2</property>
+ <property name="upper">256</property>
+ <property name="value">8</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="PA_curves">
+ <property name="lower">-10</property>
+ <property name="upper">10</property>
+ <property name="value">1</property>
+ <property name="step_increment">0.20000000000000001</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="PA_islands">
+ <property name="lower">-20</property>
+ <property name="upper">20</property>
+ <property name="value">5</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="PA_sparse1">
+ <property name="lower">2</property>
+ <property name="upper">8</property>
+ <property name="value">4</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="PA_sparse2">
+ <property name="lower">-10</property>
+ <property name="upper">10</property>
+ <property name="value">1</property>
+ <property name="step_increment">0.20000000000000001</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="SS_AT_ET_T">
+ <property name="lower">1</property>
+ <property name="upper">10</property>
+ <property name="value">2</property>
+ <property name="step_increment">0.1</property>
+ <property name="page_increment">1</property>
+ </object>
+ <object class="GtkAdjustment" id="SS_BC_T">
+ <property name="upper">1</property>
+ <property name="value">0.45000000000000001</property>
+ <property name="step_increment">0.01</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="SS_CQ_T">
+ <property name="lower">2</property>
+ <property name="upper">64</property>
+ <property name="value">8</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="SS_AT_FI_T">
+ <property name="lower">1</property>
+ <property name="upper">20</property>
+ <property name="value">4</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="SS_ED_T">
+ <property name="upper">1</property>
+ <property name="value">0.65000000000000002</property>
+ <property name="step_increment">0.01</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="optimize">
+ <property name="upper">5</property>
+ <property name="value">0.20000000000000001</property>
+ <property name="step_increment">0.050000000000000003</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="smooth">
+ <property name="upper">1.3400000000000001</property>
+ <property name="value">1</property>
+ <property name="step_increment">0.01</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="speckles">
+ <property name="upper">1000</property>
+ <property name="value">2</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkTextBuffer" id="helptext">
+ <property name="text" translatable="yes">
+ This dialog allows you to automatically convert a raster graphic into vector paths. Several options are available for different use cases:
+ * "Brightness cutoff" detects areas that are darker than the threshold value and creates a path enclosing them (using potrace).
+ * "Edge detection" detects changes greater than the given threshold value in the brightness of color patches and creates paths to separate them (using potrace).
+ * "Color quantization" separates the image into the given number of colors, and separates them with a path (using potrace).
+ * "Autotrace" uses the autotrace algorithm with the given option.
+ * "Centerline tracing" tries to vectorize a line drawing (with autotrace).
+ * "Multiple scans" options separate the image into a number of scans, depending on brightness, color separation, or gray levels, and creates several paths for those. It can also use autotrace.
+ * The "Pixel art" tab allows to use the depixelize algorithm to vectorize pixel art images.
+
+ * NOTE:
+ 1) Save your work before tracing
+ 2) Watch your pixel count: "Trace pixel art" creates one path per pixel. It is not recommended for images that are not pixel art.
+ 3) Autotrace is slower than potrace, it is not recommended for big images. Preprocessing your images to increase contrast is recommended.
+ 4) If your goal is to get few nodes and good precision, manual tracing is always best.
+</property>
+</object>
+
+ <object class="GtkBox" id="mainBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkPaned">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="position">200</property>
+ <child>
+ <object class="GtkNotebook" id="choice_tab">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">5</property>
+ <property name="margin_right">5</property>
+ <property name="margin_top">5</property>
+ <property name="margin_bottom">5</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkStackSwitcher">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Create a single path or create a group of paths</property>
+ <property name="halign">center</property>
+ <property name="margin_bottom">5</property>
+ <property name="stack">choice_scan</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkStack" id="choice_scan">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkComboBoxText" id="CBT_SS">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="active">0</property>
+ <items>
+ <item id="SS_BC" translatable="yes">Brightness cutoff</item>
+ <item id="SS_ED" translatable="yes">Edge detection</item>
+ <item id="SS_CQ" translatable="yes">Color quantization</item>
+ <item id="SS_AT" translatable="yes">Autotrace</item>
+ <item id="SS_CT" translatable="yes">Centerline tracing (autotrace)</item>
+ </items>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <object class="GtkStack" id="Stack_SS">
+ <property name="visible-child-name" bind-source="CBT_SS" bind-property="active-id"></property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_top">5</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Brightness threshold</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">SS_BC_T</property>
+ <property name="digits">3</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="name">SS_BC</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Edge threshold</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">SS_ED_T</property>
+ <property name="digits">3</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="name">SS_ED</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Colors</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">SS_CQ_T</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="name">SS_CQ</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Filter iterations</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">SS_AT_FI_T</property>
+ <property name="digits">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Error threshold</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">SS_AT_ET_T</property>
+ <property name="digits">1</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="name">SS_AT</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Filter iterations</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">SS_AT_FI_T</property>
+ <property name="digits">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Error threshold</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">SS_AT_ET_T</property>
+ <property name="digits">1</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="name">SS_CT</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="CB_invert">
+ <property name="label" translatable="yes">Invert image</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="tooltip_text" translatable="yes">Invert black and white regions</property>
+ <property name="valign">start</property>
+ <property name="margin_top">25</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="name">SingleScan</property>
+ <property name="title" translatable="yes">Single scan</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="column_homogeneous">True</property>
+ <child>
+ <object class="GtkComboBoxText" id="CBT_MS">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="active">0</property>
+ <items>
+ <item translatable="yes">Brightness steps</item>
+ <item translatable="yes">Colors</item>
+ <item translatable="yes">Grays</item>
+ <item translatable="yes">Autotrace (slower)</item>
+ </items>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="CB_MS_smooth">
+ <property name="label" translatable="yes">Smooth</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="tooltip_text" translatable="yes">Apply Gaussian blur to the bitmap before tracing</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="CB_MS_stack">
+ <property name="label" translatable="yes">Stack</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="tooltip_text" translatable="yes">Stack scans on top of one another (no gaps) instead of tiling (usually with gaps)</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="CB_MS_rb">
+ <property name="label" translatable="yes">Remove background</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="tooltip_text" translatable="yes">Remove bottom (background) layer when done</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Scans</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip_text" translatable="yes">The desired number of scans</property>
+ <property name="adjustment">MS_scans</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="name">page1</property>
+ <property name="title" translatable="yes">Multiple scans</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Options</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="column_homogeneous">True</property>
+ <child>
+ <object class="GtkCheckButton" id="CB_speckles">
+ <property name="label" translatable="yes">Speckles</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="tooltip_text" translatable="yes">Ignore small spots (speckles) in the bitmap</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="CB_smooth">
+ <property name="label" translatable="yes">Smooth corners</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="tooltip_text" translatable="yes">Smooth out sharp corners of the trace</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="CB_optimize">
+ <property name="label" translatable="yes">Optimize</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="tooltip_text" translatable="yes">Try to optimize paths by joining adjacent Bezier curve segments</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip_text" translatable="yes">Speckles of up to this many pixels will be suppressed</property>
+ <property name="adjustment">speckles</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip_text" translatable="yes">Increase this to smooth corners more</property>
+ <property name="adjustment">smooth</property>
+ <property name="digits">2</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip_text" translatable="yes">Increase this to reduce the number of nodes in the trace by more aggressive optimization</property>
+ <property name="adjustment">optimize</property>
+ <property name="digits">2</property>
+ <property name="value">0.20000000000000001</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Trace bitmap</property>
+ </object>
+ <packing>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">
+Heuristics
+</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">5</property>
+ <property name="margin_right">5</property>
+ <property name="row_spacing">4</property>
+ <property name="column_homogeneous">True</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Favors connections that are part of a long curve</property>
+ <property name="label" translatable="yes">Curves (multiplier)</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Avoid single disconnected pixels</property>
+ <property name="label" translatable="yes">Islands (weight)</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Favors connections that are part of foreground color</property>
+ <property name="label" translatable="yes">Sparse pixels
+(window radius)</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Favors connections that are part of foreground color</property>
+ <property name="label" translatable="yes">Sparse pixels
+(multiplier)</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip_text" translatable="yes">The heuristic computed vote will be multiplied by this value</property>
+ <property name="adjustment">PA_curves</property>
+ <property name="digits">3</property>
+ <property name="numeric">True</property>
+ <property name="value">1</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip_text" translatable="yes">A constant vote value</property>
+ <property name="adjustment">PA_islands</property>
+ <property name="numeric">True</property>
+ <property name="value">5</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip_text" translatable="yes">The radius of the window analyzed</property>
+ <property name="adjustment">PA_sparse1</property>
+ <property name="numeric">True</property>
+ <property name="value">2</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip_text" translatable="yes">The heuristic computed vote will be multiplied by this value</property>
+ <property name="adjustment">PA_sparse2</property>
+ <property name="digits">3</property>
+ <property name="numeric">True</property>
+ <property name="value">1</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">
+Output
+</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="RB_PA_voronoi">
+ <property name="label" translatable="yes">Voronoi</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="tooltip_text" translatable="yes">Output composed of straight lines</property>
+ <property name="margin_left">5</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton">
+ <property name="label" translatable="yes">B-splines</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="tooltip_text" translatable="yes">Preserve staircasing artifacts</property>
+ <property name="margin_left">5</property>
+ <property name="margin_bottom">5</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">RB_PA_voronoi</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Pixel art</property>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+
+<object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+<property name="can_focus">True</property>
+<property name="hscrollbar_policy">never</property>
+<property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTextView">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">False</property>
+ <property name="wrap_mode">word</property>
+ <property name="buffer">helptext</property>
+ </object>
+</child>
+</object>
+
+
+
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Help</property>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="resize">False</property>
+ <property name="shrink">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">5</property>
+ <property name="margin_right">5</property>
+ <property name="margin_top">5</property>
+ <property name="margin_bottom">5</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkDrawingArea" id="previewArea">
+ <property name="width_request">200</property>
+ <property name="height_request">200</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+
+
+
+<!--
+ <child>
+ <object class="GtkCheckButton" id="CB_live">
+ <property name="label" translatable="yes">Live</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+-->
+
+
+
+
+
+
+ <child>
+ <object class="GtkButton" id="B_Update">
+ <property name="label" translatable="yes">Update</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="CB_SIOX">
+ <property name="label" translatable="yes">SIOX</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="tooltip_text" translatable="yes">Cover the area you want to select as the foreground</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="resize">True</property>
+ <property name="shrink">False</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButtonBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">baseline</property>
+ <property name="margin_top">5</property>
+ <property name="margin_bottom">5</property>
+ <property name="spacing">3</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="B_RESET">
+ <property name="label">gtk-revert-to-saved</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="B_STOP">
+ <property name="label">gtk-stop</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="B_OK">
+ <property name="label">gtk-ok</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+</interface>
diff --git a/share/ui/inkscape-application.glade b/share/ui/inkscape-application.glade
new file mode 100644
index 0000000..ab9d946
--- /dev/null
+++ b/share/ui/inkscape-application.glade
@@ -0,0 +1,31 @@
+<interface>
+ <requires lib="gtk+" version="3.4"/>
+
+ <!-- Application menubar -->
+ <menu id="menu-application">
+ <submenu>
+ <attribute name="label" translatable="yes">_File</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_New</attribute>
+ <attribute name="action">app.new</attribute>
+ <attribute name="accel">&lt;Primary&gt;n</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Quit</attribute>
+ <attribute name="action">app.quit</attribute>
+ <attribute name="accel">&lt;Primary&gt;q</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_About</attribute>
+ <attribute name="action">app.about</attribute>
+ </item>
+ </section>
+ </submenu>
+ </menu>
+</interface>
diff --git a/share/ui/menus.xml b/share/ui/menus.xml
new file mode 100644
index 0000000..24a8801
--- /dev/null
+++ b/share/ui/menus.xml
@@ -0,0 +1,326 @@
+<inkscape version="1.0"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ show-icons="false">
+
+ <submenu name="_File">
+ <verb verb-id="FileNew" />
+ <verb verb-id="FileTemplates" />
+ <verb verb-id="FileOpen" />
+ <recent-file-list/>
+ <verb verb-id="FileRevert" />
+ <verb verb-id="FileSave" />
+ <verb verb-id="FileSaveAs" />
+ <verb verb-id="FileSaveACopy" />
+ <verb verb-id="FileSaveTemplate" />
+ <separator/>
+ <verb verb-id="FileImport" />
+ <verb verb-id="DialogExport" />
+ <separator/>
+ <verb verb-id="FilePrint" />
+ <separator/>
+ <verb verb-id="FileVacuum" />
+ <separator/>
+ <verb verb-id="DialogDocumentProperties" />
+ <!--verb verb-id="DialogMetadata" /-->
+ <separator/>
+ <verb verb-id="FileClose" />
+ <verb verb-id="FileQuit" />
+ </submenu>
+ <submenu name="_Edit">
+ <verb verb-id="EditUndo" />
+ <verb verb-id="EditRedo" />
+ <verb verb-id="DialogUndoHistory" />
+ <separator/>
+ <verb verb-id="EditCut" />
+ <verb verb-id="EditCopy" />
+ <verb verb-id="EditPaste" />
+ <verb verb-id="EditPasteInPlace" />
+ <verb verb-id="EditPasteStyle" />
+ <submenu name="Paste Si_ze">
+ <verb verb-id="EditPasteSize" />
+ <verb verb-id="EditPasteWidth" />
+ <verb verb-id="EditPasteHeight" />
+ <verb verb-id="EditPasteSizeSeparately" />
+ <verb verb-id="EditPasteWidthSeparately" />
+ <verb verb-id="EditPasteHeightSeparately" />
+ </submenu>
+ <separator/>
+ <verb verb-id="DialogFind" />
+ <separator/>
+ <verb verb-id="EditDuplicate" />
+ <submenu name="Clo_ne">
+ <verb verb-id="EditClone" />
+ <verb verb-id="DialogClonetiler" />
+ <verb verb-id="EditUnlinkClone" />
+ <verb verb-id="EditUnlinkCloneRecursive" />
+ <verb verb-id="EditRelinkClone" />
+ <verb verb-id="EditCloneSelectOriginal" />
+ <verb verb-id="EditCloneOriginalPathLPE" />
+ </submenu>
+ <verb verb-id="SelectionCreateBitmap" />
+ <separator/>
+ <verb verb-id="EditDelete" />
+ <separator/>
+ <verb verb-id="EditSelectAll" />
+ <verb verb-id="EditSelectAllInAllLayers" />
+ <submenu name="Select Sa_me">
+ <verb verb-id="EditSelectSameFillStroke" />
+ <verb verb-id="EditSelectSameFillColor" />
+ <verb verb-id="EditSelectSameStrokeColor" />
+ <verb verb-id="EditSelectSameStrokeStyle" />
+ <verb verb-id="EditSelectSameObjectType" />
+ </submenu>
+ <verb verb-id="EditInvert" />
+ <verb verb-id="EditDeselect" />
+ <separator/>
+ <verb verb-id="FitCanvasToSelectionOrDrawing" />
+ <separator/>
+ <verb verb-id="EditGuidesAroundPage" />
+ <verb verb-id="EditGuidesToggleLock" check="yes" />
+ <verb verb-id="EditRemoveAllGuides" />
+ <separator/>
+ <verb verb-id="DialogXMLEditor" />
+ <separator/>
+ <verb verb-id="DialogInput" />
+ <verb verb-id="DialogPreferences" show-icons="true" />
+ </submenu>
+ <submenu name="_View">
+ <submenu name="_Zoom">
+ <verb verb-id="ZoomIn" />
+ <verb verb-id="ZoomOut" />
+ <separator/>
+ <verb verb-id="Zoom1:0" />
+ <verb verb-id="Zoom1:2" />
+ <verb verb-id="Zoom2:1" />
+ <separator/>
+ <verb verb-id="ZoomSelection" />
+ <verb verb-id="ZoomDrawing" />
+ <verb verb-id="ZoomPage" />
+ <verb verb-id="ZoomPageWidth" />
+ <verb verb-id="ZoomCenterPage" />
+ <separator/>
+ <verb verb-id="ZoomPrev" />
+ <verb verb-id="ZoomNext" />
+ </submenu>
+ <submenu name="_Display Mode">
+ <verb verb-id="ViewModeToggle"/>
+ <verb verb-id="ViewModeNormal" radio="yes" default="yes"/>
+ <verb verb-id="ViewModeNoFilters" radio="yes"/>
+ <verb verb-id="ViewModeOutline" radio="yes"/>
+ <verb verb-id="ViewModeVisibleHairlines" radio="yes"/>
+ <!--Better location in menu needs to be found-->
+ <!--verb verb-id="ViewModePrintColorsPreview" radio="yes"/-->
+ <!--verb verb-id="DialogPrintColorsPreview" /-->
+ </submenu>
+ <submenu name="_Color Display Mode">
+ <verb verb-id="ViewColorModeToggle"/>
+ <verb verb-id="ViewColorModeNormal" radio="yes" default="yes"/>
+ <verb verb-id="ViewColorModeGrayscale" radio="yes"/>
+ <!--Better location in menu needs to be found-->
+ <!--verb verb-id="ViewColorModePrintColorsPreview" radio="yes"/-->
+ <!--verb verb-id="DialogPrintColorsPreview" /-->
+ </submenu>
+ <submenu name="_Canvas Orientation">
+ <verb verb-id="FlipHorizontal" check="yes"/>
+ <verb verb-id="FlipVertical" check="yes"/>
+ <separator/>
+ <verb verb-id="ToggleRotationLock" check="yes" />
+ <verb verb-id="RotateZero"/>
+ </submenu>
+ <separator/>
+ <verb verb-id="ViewSplitModeToggle" check="yes" />
+ <verb verb-id="ViewXRayToggle" check="yes" />
+ <verb verb-id="ToggleGrid" check="yes" />
+ <verb verb-id="ToggleGuides" check="yes" />
+ <verb verb-id="ViewCmsToggle" check="yes" />
+ <separator/>
+ <submenu name="Sh_ow/Hide">
+ <verb verb-id="ToggleCommandsToolbar" check="yes" />
+ <verb verb-id="ToggleSnapToolbar" check="yes" />
+ <verb verb-id="ToggleToolToolbar" check="yes" />
+ <verb verb-id="ToggleToolbox" check="yes" />
+ <verb verb-id="ToggleRulers" check="yes" />
+ <verb verb-id="ToggleScrollbars" check="yes" />
+ <verb verb-id="TogglePalette" check="yes" />
+ <verb verb-id="ToggleStatusbar" check="yes" />
+ </submenu>
+ <verb verb-id="DialogsToggle" />
+ <separator/>
+ <verb verb-id="DialogSwatches" />
+ <verb verb-id="DialogDebug" />
+ <separator/>
+ <verb verb-id="PrevWindow" />
+ <verb verb-id="NextWindow" />
+ <separator/>
+ <verb verb-id="ViewIconPreview" />
+ <verb verb-id="ViewNew" />
+ <separator/>
+ <verb verb-id="FullScreen" />
+ <separator/>
+ <task-checkboxes/>
+ <!-- Not quite ready to be in the menus.
+ <verb verb-id="FocusToggle" /-->
+ </submenu>
+ <submenu name="_Layer">
+ <verb verb-id="DialogLayers" />
+ <separator/>
+ <verb verb-id="LayerNew" />
+ <verb verb-id="LayerRename" />
+ <separator/>
+ <verb verb-id="LayerToggleHide" />
+ <verb verb-id="LayerToggleLock" />
+ <separator/>
+ <verb verb-id="LayerNext" show-icons="true"/>
+ <verb verb-id="LayerPrev" show-icons="true"/>
+ <separator/>
+ <verb verb-id="LayerMoveToNext" show-icons="true"/>
+ <verb verb-id="LayerMoveToPrev" show-icons="true"/>
+ <verb verb-id="LayerMoveTo" show-icons="true"/>
+ <separator/>
+ <verb verb-id="LayerRaise" show-icons="true"/>
+ <verb verb-id="LayerLower" show-icons="true"/>
+ <verb verb-id="LayerToTop" show-icons="true"/>
+ <verb verb-id="LayerToBottom" show-icons="true" />
+ <separator/>
+ <verb verb-id="LayerDuplicate" />
+ <verb verb-id="LayerDelete" />
+ </submenu>
+ <submenu name="_Object">
+ <verb verb-id="DialogObjects" />
+ <!--
+ <verb verb-id="DialogTags" />
+ -->
+ <separator/>
+ <verb verb-id="DialogFillStroke" />
+ <verb verb-id="DialogObjectProperties" />
+ <verb verb-id="DialogSymbols" />
+ <verb verb-id="DialogPaintServers" />
+ <verb verb-id="DialogSelectors" />
+ <separator/>
+ <verb verb-id="SelectionGroup" />
+ <verb verb-id="SelectionUnGroup" />
+ <verb verb-id="SelectionUnGroupPopSelection" />
+ <separator/>
+ <submenu name="Cli_p">
+ <verb verb-id="ObjectSetClipPath" />
+ <verb verb-id="ObjectSetInverseClipPath" />
+ <verb verb-id="ObjectUnSetClipPath" />
+ </submenu>
+ <submenu name="Mas_k">
+ <verb verb-id="ObjectSetMask" />
+ <verb verb-id="ObjectSetInverseMask" />
+ <verb verb-id="ObjectUnSetMask" />
+ </submenu>
+ <submenu name="Patter_n">
+ <verb verb-id="ObjectsToPattern" />
+ <verb verb-id="ObjectsFromPattern" />
+ </submenu>
+ <verb verb-id="ObjectsToMarker" />
+ <verb verb-id="ObjectsToGuides" />
+ <separator/>
+ <verb verb-id="SelectionRaise" show-icons="true"/>
+ <verb verb-id="SelectionLower" show-icons="true" />
+ <verb verb-id="SelectionToFront" show-icons="true" />
+ <verb verb-id="SelectionToBack" show-icons="true"/>
+ <separator/>
+ <verb verb-id="ObjectRotate90" show-icons="true" />
+ <verb verb-id="ObjectRotate90CCW" show-icons="true" />
+ <verb verb-id="ObjectFlipHorizontally" show-icons="true" />
+ <verb verb-id="ObjectFlipVertically" show-icons="true" />
+ <separator/>
+ <verb verb-id="UnhideAll" />
+ <verb verb-id="UnlockAll" />
+ <separator/>
+ <verb verb-id="DialogTransform" />
+ <verb verb-id="DialogAlignDistribute" />
+ <verb verb-id="DialogArrange" />
+ <verb verb-id="DialogPrototype" />
+ </submenu>
+ <submenu name="_Path">
+ <verb verb-id="ObjectToPath" />
+ <verb verb-id="StrokeToPath" />
+ <verb verb-id="SelectionTrace" />
+ <separator/>
+ <verb verb-id="SelectionUnion" show-icons="true" />
+ <verb verb-id="SelectionDiff" show-icons="true" />
+ <verb verb-id="SelectionIntersect" show-icons="true" />
+ <verb verb-id="SelectionSymDiff" show-icons="true" />
+ <verb verb-id="SelectionDivide" show-icons="true" />
+ <verb verb-id="SelectionCutPath" show-icons="true" />
+ <separator/>
+ <verb verb-id="SelectionCombine" show-icons="true" />
+ <verb verb-id="SelectionBreakApart" show-icons="true" />
+ <separator/>
+ <verb verb-id="SelectionInset" show-icons="true" />
+ <verb verb-id="SelectionOffset" show-icons="true" />
+ <verb verb-id="SelectionDynOffset" show-icons="true" />
+ <verb verb-id="SelectionLinkedOffset" show-icons="true" />
+ <separator/>
+ <verb verb-id="SelectionSimplify" />
+ <verb verb-id="SelectionReverse" />
+ <separator/>
+ <verb verb-id="DialogLivePathEffect" />
+ <verb verb-id="PasteLivePathEffect" />
+ <verb verb-id="RemoveLivePathEffect" />
+ </submenu>
+ <submenu name="_Text">
+ <verb verb-id="DialogText" />
+ <verb verb-id="DialogSVGFonts" />
+ <verb verb-id="DialogGlyphs" />
+ <separator/>
+ <verb verb-id="SelectionTextToPath" />
+ <verb verb-id="SelectionTextFromPath" />
+ <separator/>
+ <verb verb-id="ObjectFlowText" />
+ <verb verb-id="ObjectUnFlowText" />
+ <verb verb-id="ObjectFlowtextToText" />
+ <separator/>
+ <verb verb-id="SelectionTextRemoveKerns" />
+ <separator/>
+ <verb verb-id="DialogSpellcheck" /> <!-- depends on HAVE_ASPELL -->
+ </submenu>
+ <submenu name="Filter_s">
+ <filters-list/>
+ <separator/>
+ <verb verb-id="DialogFilterEffects" />
+ <verb verb-id="RemoveFilter" />
+ </submenu>
+ <submenu name="Exte_nsions">
+ <verb verb-id="EffectLast" />
+ <verb verb-id="EffectLastPref" />
+ <separator/>
+ <effects-list/>
+ </submenu>
+ <submenu name="_Help">
+ <verb verb-id="HelpUrlManual" />
+ <verb verb-id="HelpUrlKeys" />
+ <verb verb-id="HelpUrlAskQuestion" />
+ <submenu name="Tutorials">
+ <verb verb-id="TutorialsBasic" />
+ <verb verb-id="TutorialsShapes" />
+ <verb verb-id="TutorialsAdvanced" />
+ <verb verb-id="TutorialsTracing" />
+ <verb verb-id="TutorialsTracingPixelArt" />
+ <verb verb-id="TutorialsCalligraphy" />
+ <verb verb-id="TutorialsInterpolate" />
+ <verb verb-id="TutorialsDesign" />
+ <verb verb-id="TutorialsTips" />
+ </submenu>
+ <!--verb verb-id="org.inkscape.dialogs.extensioneditor" /-->
+ <verb verb-id="HelpUrlMan" />
+ <verb verb-id="HelpUrlFAQ" />
+ <verb verb-id="HelpUrlReleaseNotes" />
+ <verb verb-id="HelpUrlReportBug" />
+ <verb verb-id="HelpUrlSvg11Spec" />
+ <!-- <verb verb-id="HelpUrlSvg2Spec" /> -->
+ <separator/>
+ <verb verb-id="HelpAboutMemory" />
+ <verb verb-id="HelpAbout" show-icons="true"/>
+ <!--verb verb-id="ShowLicense" /-->
+ </submenu>
+
+ <contextmenu id="canvas" show-icons="false" />
+ <contextmenu id="layers" show-icons="false" />
+ <contextmenu id="objects" show-icons="false" />
+</inkscape>
diff --git a/share/ui/style.css b/share/ui/style.css
new file mode 100644
index 0000000..af448ed
--- /dev/null
+++ b/share/ui/style.css
@@ -0,0 +1,447 @@
+/* GTK3 WIDGET STYLING */
+
+
+/*
+ * Keep in order of:
+ * General -> Specific
+ * Order of appearance in widget tree.
+ * See GtkInspector
+ * GTK_DEBUG=interactive ~/path_to_gtk3/bin/inkscape
+ *
+ * We need a standardized naming scheme.
+ *
+ * As of Gtk 3.20, you cannot use widget names.
+ */
+
+
+/* Standard theme based colors. Prefer these.
+ *
+ * @theme_bg_color
+ * @theme_fg_color
+ * @theme_base_color
+ * @theme_text_color
+ * @theme_selected_bg_color
+ * @theme_selected_fg_color
+ * @theme_tooltip_bg_color
+ * @theme_tooltip_fg_color
+ *
+ */
+
+
+/* Our own custom shades... better not to use.
+ * Lightest to darkest based on linear rgb.
+ */
+
+@define-color bg_color0 #ffffff;
+
+/* White */
+
+@define-color bg_color05 #f8f8f8;
+
+/* Slightly off white */
+
+@define-color bg_color1 #f0f0f0;
+@define-color bg_color2 #e0e0e0;
+@define-color bg_color3 #d0d0d0;
+@define-color bg_color4 #bbbbbb;
+
+/* 50% Gray */
+
+@define-color bg_color5 #a5a5a5;
+@define-color bg_color6 #898989;
+@define-color bg_color7 #636363;
+@define-color bg_color8 #000000;
+
+/* Black */
+
+
+/* Inkscape CSS helper
+ * to add a class to a widget do some thing like
+ * widget->get_style_context()->add_class("mycoolclass");
+ * we define a bunch of helper CSS styles
+ * Each Inkscape desktop has some classes in top level window
+ * called "dark|bright" (syncked with dark or brighrt themes) and "symbolic|regular" (defined by the user in themes preferences)
+ * so you can style using this clases
+ * by this way you can always know if the UI is in dark mode or using symbolic icons
+ * Also added some helper clases:
+ * ".inverted" invert colors fon widhet and childs
+ * ".symbolic" Force icon symbolic
+ * ".regular" Force colorful icons
+ * " .forcebright Force darlk even if the towp wingow has clas dark (happends when theme is dark)
+ * " .forcedark" Force darlk even if the towp wingow has clas bright
+ * :::::::: Combo box.
+ * "..combobright" Combo bright
+ */
+
+*:disabled image {
+ opacity: 0.4;
+}
+
+.symbolic image {
+ -gtk-icon-style: symbolic;
+}
+
+.regular image {
+ -gtk-icon-style: regular;
+}
+
+.regular .symbolic image {
+ -gtk-icon-style: symbolic;
+}
+
+.inverted,
+.dark .forcebright,
+.bright .forcedark {
+ color: @theme_bg_color;
+ background-color: @theme_fg_color;
+ background-image: image(@theme_fg_color);
+ caret-color: @theme_bg_color;
+ -gtk-secondary-caret-color: @theme_fg_color;
+}
+
+.inverted :not(menuitem):not(.rawstyle):not(overshoot):not(undershoot):not(selection),
+.bright .forcedark :not(menuitem):not(.rawstyle):not(overshoot):not(undershoot):not(selection),
+.dark .forcebright :not(menuitem):not(.rawstyle):not(overshoot):not(undershoot):not(selection) {
+ color: inherit;
+ background-color: inherit;
+ background-image: inherit;
+}
+
+.dark .combobright .combo,
+.dark .combobright menu{
+ background-color: @theme_text_color;
+ background-image: linear-gradient(to top, @theme_text_color, @theme_fd_color);
+ caret-color: @theme_base_color;
+ -gtk-secondary-caret-color: @theme_base_color;
+}
+.dark .combobright box *{
+ color: @theme_base_color;
+}
+.dark .combobright .combo *,
+.dark .combobright menu *{
+ color: inherit;
+}
+
+/* atribute dialog popup size */
+.attrpop textview {
+ font-size: 13px;
+}
+
+/*
+*to get system default colors
+* with Gdk::RGBA success =_symbolic_error_color.get_stseparatole_context()->get_color();
+* _symbolic_error_color has one of this calsses applied
+*/
+
+.system_base_color {
+ color: @theme_fg_color;
+ background-color: @theme_bg_color;
+}
+
+.system_error_color {
+ color: @error_color;
+}
+
+.system_warning_color {
+ color: @warning_color;
+}
+
+.system_success_color {
+ color: @success_color;
+}
+
+iconview *:hover {
+ border-width: 1px;
+ border-color: @theme_fg_color;
+ border-style: solid;
+ border-radius: 4px;
+}
+
+.dark iconview *:hover {
+ border-color: @theme_bg_color;
+}
+
+.inksmall {
+ font-size: 11px;
+}
+
+
+/* LPE Dialog add */
+#LPESelectorFlowBox GtkFlowBoxChild,
+#LPESelectorFlowBox flowboxchild {
+ border-width: 0px;
+ border-radius: 6px;
+ margin: 10px;
+ padding: 10px;
+ margin-bottom: 0px;
+ padding-bottom: 10px;
+ outline: none;
+}
+
+#LPESelectorFlowBox flowboxchild * {
+ color: @theme_fg_color;
+}
+
+#LPESelectorFlowBox flowboxchild:selected image,
+#LPESelectorFlowBox flowboxchild:selected label {
+ color: @theme_selected_fg_color;
+ background-color: @theme_selected_bg_color;
+ background-image: image(@theme_selected_bg_color);
+}
+
+#LPESelectorFlowBox *:selected #LPESelectorEffectFavTop,
+#LPESelectorFlowBox *:selected:focus #LPESelectorEffectFavTop {
+ opacity: 0;
+}
+
+#LPESelectorFlowBox .lpename {
+ font-size: 16px;
+ margin-bottom: 5px;
+}
+
+#LPESelectorFlowBox .lpeinfo {
+ font-size: 16px;
+ padding: 20px;
+}
+
+#LPESelectorFlowBox .lpedisabled {
+ opacity: 0.3;
+}
+
+#LPESelectorEffectInfoPop {
+ padding: 15px;
+}
+
+#LPESelectorEffectInfoName {
+ font-weight: bold;
+ padding: 15px;
+}
+
+#LPEDialogSelector .lpeinfo {
+ padding: 8px;
+ background-color: @theme_bg_color;
+ color: @theme_selected_fg_color;
+ border-color: @theme_selected_bg_color;
+ border-style: solid;
+ margin: 0px 0px 10px 0px;
+ border-radius: 0px;
+ border-width: 0 0 1px 0;
+ padding:5px;
+}
+
+#LPESelectorFlowBox image{
+ background-color:@theme_bg_color;
+ border-color:transparent;
+}
+
+#LPEExperimental image {
+ color: transparent;
+}
+
+#LPEDialogSelector .searchbar entry image,
+#LPEDialogSelector .searchbar label,
+#LPEDialogSelector .searchbar #LPESelectorEffectFavShowImage {
+ color: @theme_fg_color;
+}
+
+#LPEDialogSelector.LPEPackMore flowboxchild {
+margin:5px 1px 0px;
+padding:3px 3px 10px 3px;
+}
+
+#LPEDialogSelector.LPEPackMore flowboxchild label {
+font-size:14px;
+}
+
+#LPEDialogSelector.LPEPackMore #LPESelectorEffectInfoPop label{
+font-size:13px;
+}
+
+#LPEDialogSelector.LPEList .lpename {
+ margin-bottom: 1px;
+ font-weight:bold;
+}
+
+#LPEDialogSelector.LPEList flowboxchild {
+ padding:3px 1px 3px 10px;
+ margin:1px 0px 1px;
+ border-radius:0;
+ border-style:dotted;
+ border-color:@theme_fg_color;
+ border-width: 0 0 1px 0;
+}
+
+#LPEDialogSelector.LPEList flowboxchild:selected {
+ border-style:none;
+ margin:-3px 0px 0px;
+ padding:4px 1px 4px 10px;
+}
+
+#LPEDialogSelector.LPEList #LPESelectorFlowBox *:selected #LPESelectorEffectFavTop,
+#LPEDialogSelector.LPEList #LPESelectorFlowBox *:selected:focus #LPESelectorEffectFavTop {
+ opacity: 1;
+}
+
+/* Selector and XML dialog */
+#SelectorsAndStyleDialog button {
+ padding: 4px;
+ min-height: 16px;
+ margin: 2px;
+ padding: 2px;
+}
+
+#XMLAndAttributesDialog .toggle,
+#SelectorsAndStyleDialog .toggle {
+ min-width: 18px;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 0;
+ padding-bottom: 0;
+}
+
+#XMLAndAttributesDialog .radio.image-button,
+#SelectorsAndStyleDialog .radio.image-button {
+ margin: 0;
+ padding: 0px;
+ border-radius: 2px 0 0 2px;
+}
+
+#XMLAndAttributesDialog .radio.image-button:last-child,
+#SelectorsAndStyleDialog .radio.image-button:last-child {
+ border-radius: 0 2px 2px 0;
+ border-left-width: 0;
+}
+
+#SelectorsAndStyleDialog treeview button {
+ border-width: 0;
+ margin: 0 0 1px 0;
+}
+
+#SelectorsAndStyleDialog treeview button:nth-child(3),
+#SelectorsAndStyleDialog treeview.style_sheet button:nth-child(4) {
+ border-width: 0 0 0 2px;
+ border-color: @theme_fg_color;
+ border-style: solid;
+ opacity: 0.5;
+}
+
+#SelectorsAndStyleDialog treeview.style_sheet button:nth-child(3) {
+ border-width: 0;
+}
+
+#SelectorsAndStyleDialog treeview button {
+ min-height: 3px;
+ font-size: 1px;
+}
+
+#InkRuler {
+ font-size: 7pt;
+}
+
+/* The actual canvas (Inkscape's drawing area). */
+SPCanvas {
+ background-color: white;
+}
+
+#TextFontFamilyAction_combobox {
+ -GtkComboBox-appears-as-list: true;
+}
+
+#LockGuides,
+#StickyZoom,
+#CMS_Adjust {
+ padding: 0;
+}
+
+/* Keep palette scrollbar from generating warnings. */
+#PreviewHolderScroller .vertical slider {
+ min-height: 15px;
+}
+
+/* Override minimum size of container children for palette. */
+#ColorItemPreview {
+ min-height: 5px;
+ min-width: 5px;
+}
+
+/* Reduce width of Fill and Stroke dialog */
+#ColorModeButton {
+ padding-left: 0;
+ padding-right: 0;
+}
+
+/* InkSpinScale */
+#InkSpinScale {
+ background: @theme_bg_color;
+ border: 1px black;
+ border-radius: 3px;
+ padding: 0px;
+}
+
+#InkSpinScale spinbutton {
+ border-color: #eee;
+ border-width: 0 0 0 0;
+ border-radius: 0 3px 3px 0;
+ box-shadow: none;
+ padding: 0 0 0 1px;
+ min-height: 10px;
+}
+
+
+/* Hide slider */
+#InkSpinScale slider {
+ background: none;
+ border: none;
+ outline: none;
+ min-width: 0px;
+ min-height: 0px;
+ padding: 0px;
+ margin: 0px;
+}
+
+#InkSpinScale slider,
+#InkSpinScale highlight {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+#InkSpinScale scale {
+ padding: 0px;
+}
+
+#InkSpinScale trough {
+ min-height: 30px;
+}
+
+#InkSpinScale box.active {
+ box-shadow: 0 0 0 1px rgb(74, 144, 217);
+}
+
+#InkSpinScale spinbutton entry {
+ padding: 0;
+ outline-style: none;
+}
+
+#UnicodeIconView {
+ font-size: 16px;
+}
+
+/* GtkTreeView: clarify drop locations (especially important for XML editor) */
+treeview.view:drop(active) {
+ border-style: solid;
+ border-width: 2px;
+}
+
+treeview.view:drop(active).after {
+ border-style: none none solid none;
+}
+
+treeview.view:drop(active).before {
+ border-style: solid none none none;
+}
+
+treeview.view:drop(active).after,
+treeview.view:drop(active).before {
+ border-width: 4px;
+ border-radius: 10px;
+}
diff --git a/share/ui/toolbar-commands.ui b/share/ui/toolbar-commands.ui
new file mode 100644
index 0000000..0b237be
--- /dev/null
+++ b/share/ui/toolbar-commands.ui
@@ -0,0 +1,42 @@
+<ui>
+ <toolbar name='CommandsToolbar'>
+ <toolitem action='FileNew' />
+ <toolitem action='FileOpen' />
+ <toolitem action='FileSave' />
+ <toolitem action='FilePrint' />
+ <separator />
+ <toolitem action='FileImport' />
+ <toolitem action='DialogExport' />
+ <separator />
+ <toolitem action='EditUndo' />
+ <toolitem action='EditRedo' />
+ <separator />
+ <toolitem action='EditCopy' />
+ <toolitem action='EditCut' />
+ <toolitem action='EditPaste' />
+ <separator />
+ <toolitem action='ZoomSelection' />
+ <toolitem action='ZoomDrawing' />
+ <toolitem action='ZoomPage' />
+ <toolitem action='ZoomCenterPage' />
+ <separator />
+ <toolitem action='EditDuplicate' />
+ <toolitem action='EditClone' />
+ <toolitem action='EditUnlinkClone' />
+ <separator />
+ <toolitem action='SelectionGroup' />
+ <toolitem action='SelectionUnGroup' />
+ <separator />
+ <toolitem action='DialogFillStroke' />
+ <toolitem action='DialogText' />
+ <toolitem action='DialogLayers' />
+ <toolitem action='DialogXMLEditor' />
+ <!--
+ <toolitem action='DialogSelectors' />
+ -->
+ <toolitem action='DialogAlignDistribute' />
+ <separator />
+ <toolitem action='DialogDocumentProperties' />
+ <toolitem action='DialogPreferences' />
+ </toolbar>
+</ui>
diff --git a/share/ui/toolbar-tool.ui b/share/ui/toolbar-tool.ui
new file mode 100644
index 0000000..cb2d6b2
--- /dev/null
+++ b/share/ui/toolbar-tool.ui
@@ -0,0 +1,49 @@
+<ui>
+ <toolbar name='ToolToolbar'>
+
+ <!-- Select and Edit -->
+ <toolitem action='ToolSelector' />
+ <toolitem action='ToolNode' />
+
+<separator />
+
+ <!-- Create predefined shapes -->
+ <toolitem action='ToolRect' />
+ <toolitem action='ToolArc' />
+ <toolitem action='ToolStar' />
+ <toolitem action='Tool3DBox' />
+ <toolitem action='ToolSpiral' />
+
+<separator />
+
+ <!-- Create new paths and text -->
+ <toolitem action='ToolPen' />
+ <toolitem action='ToolPencil' />
+ <toolitem action='ToolCalligraphic' />
+ <toolitem action='ToolText' />
+
+<separator />
+
+ <!-- Edit color of objects -->
+ <toolitem action='ToolGradient' />
+ <toolitem action='ToolMesh' />
+ <toolitem action='ToolDropper' />
+ <toolitem action='ToolPaintBucket' />
+
+<separator />
+
+ <!-- Other tools to edit objects -->
+ <toolitem action='ToolTweak' />
+ <toolitem action='ToolSpray' />
+ <toolitem action='ToolEraser' />
+ <toolitem action='ToolConnector' />
+ <!--<toolitem action='ToolLPETool' />-->
+
+<separator />
+
+ <!-- Other tools that do not modify objects -->
+ <toolitem action='ToolZoom' />
+ <toolitem action='ToolMeasure' />
+
+ </toolbar>
+</ui>
diff --git a/share/ui/toolbox.xml b/share/ui/toolbox.xml
new file mode 100644
index 0000000..5399465
--- /dev/null
+++ b/share/ui/toolbox.xml
@@ -0,0 +1,13 @@
+<ui>
+ <popup name='ToolboxMenu'>
+ <menuitem action='Icons'/>
+ <menuitem action='Text'/>
+ <menuitem action='Both'/>
+ <menuitem action='BothHoriz'/>
+ <separator/>
+ <menuitem action='OrientHoriz'/>
+ <menuitem action='OrientVert'/>
+ <separator/>
+ <menuitem action='ShowArrow'/>
+ </popup>
+</ui>
diff --git a/share/ui/units.xml b/share/ui/units.xml
new file mode 100644
index 0000000..713a538
--- /dev/null
+++ b/share/ui/units.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<unitdefs>
+<unit type="DIMENSIONLESS" pri="y">
+ <name>%</name>
+ <plural>%</plural>
+ <abbr>%</abbr>
+ <factor>1.00</factor>
+ <description>Percentage</description>
+</unit>
+<unit type="LINEAR" pri="y">
+ <name>pixel</name>
+ <plural>pixels</plural>
+ <abbr>px</abbr>
+ <factor>1.00</factor>
+ <description>CSS Pixels (96/inch)</description>
+</unit>
+<unit type="LINEAR" pri="n">
+ <name>point</name>
+ <plural>points</plural>
+ <abbr>pt</abbr>
+ <factor>1.333333333333333</factor>
+ <description>PostScript points (72/inch)</description>
+</unit>
+<unit type="LINEAR" pri="n">
+ <name>pica</name>
+ <plural>picas</plural>
+ <abbr>pc</abbr>
+ <factor>16.0</factor>
+ <description>12 points</description>
+</unit>
+<unit type="LINEAR" pri="n">
+ <name>inch</name>
+ <plural>inches</plural>
+ <abbr>in</abbr>
+ <factor>96.0</factor>
+ <description>Inches (96 px/in)</description>
+</unit>
+<unit type="LINEAR" pri="n">
+ <name>millimeter</name>
+ <plural>millimeters</plural>
+ <abbr>mm</abbr>
+ <factor>3.779527559055119</factor>
+ <description>Millimeters (25.4 mm/in)</description>
+</unit>
+<unit type="LINEAR" pri="n">
+ <name>centimeter</name>
+ <plural>centimeters</plural>
+ <abbr>cm</abbr>
+ <factor>37.79527559055119</factor>
+ <description>Centimeters (10 mm/cm)</description>
+</unit>
+<unit type="RADIAL" pri="y">
+ <name>degree</name>
+ <plural>degrees</plural>
+ <abbr>°</abbr>
+ <factor>1.00</factor>
+ <description>Degrees</description>
+</unit>
+<unit type="RADIAL" pri="n">
+ <name>radian</name>
+ <plural>radians</plural>
+ <abbr>rad</abbr>
+ <factor>57.29577951308232</factor>
+ <description>Radians (180/pi deg/rad)</description>
+</unit>
+<unit type="RADIAL" pri="n">
+ <name>gradian</name>
+ <plural>gradians</plural>
+ <abbr>grad</abbr>
+ <factor>0.9</factor>
+ <description>Gradians (360/400 deg/grad)</description>
+</unit>
+<unit type="RADIAL" pri="n">
+ <name>turn</name>
+ <plural>turns</plural>
+ <abbr>turn</abbr>
+ <factor>360</factor>
+ <description>Turns (360 deg/turn)</description>
+</unit>
+<unit type="FONT_HEIGHT" pri="y">
+ <name>font-height</name>
+ <plural>font-heights</plural>
+ <abbr>em</abbr>
+ <factor>1.00</factor>
+ <description>Font height</description>
+</unit>
+<unit type="FONT_HEIGHT" pri="n">
+ <name>x-height</name>
+ <plural>x-heights</plural>
+ <abbr>ex</abbr>
+ <factor>0.50</factor>
+ <description>Height of letter 'x'</description>
+</unit>
+<unit type="FONT_HEIGHT" pri="n">
+ <name>half-em</name>
+ <plural>half-ems</plural>
+ <abbr>en</abbr>
+ <factor>0.50</factor>
+ <description>Half of font height</description>
+</unit>
+</unitdefs>
diff --git a/share/ui/win32.css b/share/ui/win32.css
new file mode 100644
index 0000000..0602d04
--- /dev/null
+++ b/share/ui/win32.css
@@ -0,0 +1,146 @@
+/* Appearance of switches */
+
+switch slider {
+ background-image: none;
+ background-color: @selected_bg_color;
+ border-radius: 3px;
+}
+
+switch image {
+ background-color: -gtk-win32-color(button, 10);
+ border-radius: 1px;
+}
+
+
+/* Menu appearance */
+
+menu separator {
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ margin-left: 5px;
+ margin-right: 5px;
+}
+
+toolbar separator {
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ margin: 2px;
+}
+
+menuitem arrow {
+ min-width: 10px;
+ min-height: 10px;
+}
+
+menuitem arrow.right {
+ -gtk-icon-source: -gtk-icontheme("pan-end-symbolic");
+}
+
+menuitem arrow.left {
+ -gtk-icon-source: -gtk-icontheme("pan-start-symbolic");
+}
+
+
+/* Add margin to images */
+
+widget>box>image,
+toolbar button image {
+ margin: 2px;
+}
+
+
+/* Style spinbuttons, GTK style (see discussion in https://gitlab.com/inkscape/inkscape/-/issues/762) */
+
+spinbutton {
+ background-image: none;
+}
+
+spinbutton button {
+ margin-top: 0px;
+ margin-bottom: 0px;
+ background-size: 20px 100%;
+ border-width: 1px;
+ border-style: solid;
+ background-image: none;
+ color: black;
+ background-color: white;
+ border-color: shade(-gtk-win32-color(button, menu), 0.6);
+}
+
+spinbutton button.down {
+ margin-right: 15px;
+}
+
+spinbutton button:hover {
+ background-image: -gtk-win32-theme-part(button, 1, 2);
+ background-size: 200% 200%;
+ ;
+ background-position: center;
+ border-color: #add8e6;
+}
+
+spinbutton button:disabled {
+ background-color: blue;
+}
+
+spinbutton entry:not(:disabled) {
+ border: 1px solid shade(-gtk-win32-color(button, menu), 0.6);
+ background-color: white;
+}
+
+spinbutton entry:disabled,
+spinbutton button:disabled {
+ background-color: -gtk-win32-color(button, 4);
+}
+
+spinbutton entry:disabled {
+ border-width: 1px;
+ border-style: solid;
+}
+
+
+/* Fix height of sliders in F&S dialog */
+
+#InkSpinScale spinbutton {
+ padding-top: 10px;
+ padding-bottom: 10px;
+}
+
+
+/* Fix colors in LPE dialog */
+
+@define-color theme_fg_color black;
+#LPEDialogSelector separator {
+ border-color: black;
+ border-right: 1px solid;
+ margin: 2px;
+}
+
+
+/* Fix hidden palette */
+
+#InkscapePanel #PreviewHolderGrid {
+ padding-bottom: 20px;
+}
+
+
+/* Fix right button of horizontal scrollbar */
+
+scrollbar.horizontal:hover button.down:disabled {
+ background-image: -gtk-win32-theme-part(scrollbar, 1, 16);
+}
+
+scrollbar.horizontal:hover button.down:active {
+ background-image: -gtk-win32-theme-part(scrollbar, 1, 15);
+}
+
+
+/* Make room for the scroll bar of the dialog region*/
+
+#DockBox {
+ margin-right: 15px;
+}
+
+#InkSpinScale spinbutton {
+ margin-right: 5px;
+} \ No newline at end of file