[geary: 1/6] Added support for lists in composer



commit 63521d85661851af68639b9981fde409ea821cca
Author: Nikolas Tapia <ntapia dim uchile cl>
Date:   Wed Dec 6 17:04:18 2017 -0300

    Added support for lists in composer
    
    This attempts to solve bug
    [#714921](https://bugzilla.gnome.org/show_bug.cgi?id=714921).
    
    They are available as two buttons on the format bar, next to font
    options. The icons I used are taken from a free icons site just for demo
    purposes and should be replaced by new icons. Also I did not include
    hotkeys mainly because I could not come up with a good one, also they
    are pretty uncommon I think.
    
    Also added new icons to icons/CMakeLists.txt

 icons/CMakeLists.txt                       |    2 +
 icons/format-ordered-list-symbolic.svg     |  208 ++++++++++++++++++++++++++++
 icons/format-unordered-list-symbolic.svg   |  199 ++++++++++++++++++++++++++
 src/client/composer/composer-web-view.vala |    8 +
 src/client/composer/composer-widget.vala   |   18 +++-
 ui/composer-web-view.js                    |    6 +
 ui/composer-widget.ui                      |   74 +++++++++-
 7 files changed, 508 insertions(+), 7 deletions(-)
---
diff --git a/icons/CMakeLists.txt b/icons/CMakeLists.txt
index 316dbd6..ea3f1f4 100644
--- a/icons/CMakeLists.txt
+++ b/icons/CMakeLists.txt
@@ -7,6 +7,8 @@ set(ICON_FILES
     text-x-generic-symbolic.svg
     edit-symbolic.svg
     format-text-remove-symbolic.svg
+    format-ordered-list-symbolic.svg
+    format-unordered-list-symbolic.svg
     mail-drafts-symbolic.svg
     mail-drafts-symbolic-rtl.svg
     mail-forward-symbolic.svg
diff --git a/icons/format-ordered-list-symbolic.svg b/icons/format-ordered-list-symbolic.svg
new file mode 100644
index 0000000..eecef59
--- /dev/null
+++ b/icons/format-ordered-list-symbolic.svg
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:osb="http://www.openswatchbook.org/uri/2009/osb";
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   sodipodi:docname="format-ordered-list-symbolic.svg"
+   inkscape:export-filename="/home/sam/dev/RESOURCES/gnome-icon-theme-symbolic/src/gnome-stencils.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   height="16"
+   id="svg7384"
+   version="1.1"
+   inkscape:version="0.92.2 5c3e80d, 2017-08-06"
+   width="16">
+  <metadata
+     id="metadata90">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title>Gnome Symbolic Icon Theme</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:bbox-nodes="true"
+     inkscape:bbox-paths="true"
+     bordercolor="#666666"
+     borderopacity="1"
+     inkscape:current-layer="layer12"
+     inkscape:cx="12.475663"
+     inkscape:cy="5.4387395"
+     gridtolerance="10"
+     inkscape:guide-bbox="true"
+     guidetolerance="10"
+     id="namedview88"
+     inkscape:object-nodes="true"
+     inkscape:object-paths="false"
+     objecttolerance="10"
+     pagecolor="#3a3b39"
+     inkscape:pageopacity="1"
+     inkscape:pageshadow="2"
+     showborder="false"
+     showgrid="true"
+     showguides="true"
+     inkscape:snap-bbox="true"
+     inkscape:snap-bbox-midpoints="false"
+     inkscape:snap-global="true"
+     inkscape:snap-grids="true"
+     inkscape:snap-nodes="false"
+     inkscape:snap-others="false"
+     inkscape:snap-to-guides="true"
+     inkscape:window-height="704"
+     inkscape:window-maximized="1"
+     inkscape:window-width="1366"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:zoom="22.627417">
+    <inkscape:grid
+       dotted="false"
+       empspacing="2"
+       enabled="true"
+       id="grid4866"
+       originx="199.9998"
+       originy="650"
+       snapvisiblegridlinesonly="true"
+       spacingx="1"
+       spacingy="1"
+       type="xygrid"
+       visible="true" />
+  </sodipodi:namedview>
+  <title
+     id="title9167">Gnome Symbolic Icon Theme</title>
+  <defs
+     id="defs7386">
+    <linearGradient
+       gradientTransform="matrix(-2.7365795,0.28202934,-0.18908311,-0.99988321,239.54008,-879.45557)"
+       id="linearGradient19282"
+       osb:paint="solid">
+      <stop
+         id="stop19284"
+         offset="0"
+         style="stop-color:#666666;stop-opacity:1;" />
+    </linearGradient>
+  </defs>
+  <g
+     inkscape:groupmode="layer"
+     id="layer9"
+     inkscape:label="status"
+     style="display:inline"
+     transform="translate(-41.000401,-867)" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer10"
+     inkscape:label="devices"
+     style="display:inline"
+     transform="translate(-41.000401,-867)" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer11"
+     inkscape:label="apps"
+     transform="translate(-41.000401,-867)" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer13"
+     inkscape:label="places"
+     style="display:inline"
+     transform="translate(-41.000401,-867)" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer14"
+     inkscape:label="mimetypes"
+     transform="translate(-41.000401,-867)" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer15"
+     inkscape:label="emblems"
+     style="display:inline"
+     transform="translate(-41.000401,-867)" />
+  <g
+     inkscape:groupmode="layer"
+     id="g71291"
+     inkscape:label="emotes"
+     style="display:inline"
+     transform="translate(-41.000401,-867)" />
+  <g
+     inkscape:groupmode="layer"
+     id="g4953"
+     inkscape:label="categories"
+     style="display:inline"
+     transform="translate(-41.000401,-867)" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer12"
+     inkscape:label="actions"
+     style="display:inline"
+     transform="translate(-41.000401,-867)">
+    <rect
+       height="2"
+       id="rect5356"
+       inkscape:label="a"
+       
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:1;marker:none"
+       width="5.999999"
+       x="49.000202"
+       y="874" />
+    <rect
+       height="2"
+       id="rect5358"
+       inkscape:label="a"
+       
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:1;marker:none"
+       width="5.999999"
+       x="49.000198"
+       y="878.98438" />
+    <rect
+       height="2"
+       id="rect5358-3"
+       inkscape:label="a"
+       
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:1;marker:none"
+       width="5.999999"
+       x="49.000202"
+       y="869" />
+    <text
+       xml:space="preserve"
+       
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;font-style:normal;font-weight:normal;font-size:2.73056865px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:0.06826421;marker:none"
+       x="39.827774"
+       y="968.95056"
+       id="text3813"
+       transform="scale(1.1111819,0.89994265)"><tspan
+         sodipodi:role="line"
+         id="tspan3811"
+         x="39.827774"
+         y="968.95056"
+         style="font-size:6.09691095px;stroke-width:0.06826421;fill:#bebebe;fill-opacity:1;">1</tspan></text>
+    <text
+       xml:space="preserve"
+       
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;font-style:normal;font-weight:normal;font-size:2.73056865px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:0.06826421;marker:none"
+       x="40.603065"
+       y="961.72247"
+       id="text4622"
+       transform="scale(1.0966049,0.91190548)"><tspan
+         sodipodi:role="line"
+         id="tspan4620"
+         x="40.603065"
+         y="961.72247"
+         style="stroke-width:0.14775175;fill:#bebebe;fill-opacity:1;">2</tspan></text>
+    <text
+       xml:space="preserve"
+       
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;font-style:normal;font-weight:normal;font-size:2.73056865px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:0.06826421;marker:none"
+       x="42.235889"
+       y="929.96796"
+       id="text4626"
+       transform="scale(1.0541771,0.9486072)"><tspan
+         sodipodi:role="line"
+         id="tspan4624"
+         x="42.235889"
+         y="929.96796"
+         style="stroke-width:0.14822583;fill:#bebebe;fill-opacity:1;">3</tspan></text>
+  </g>
+</svg>
diff --git a/icons/format-unordered-list-symbolic.svg b/icons/format-unordered-list-symbolic.svg
new file mode 100644
index 0000000..674ad71
--- /dev/null
+++ b/icons/format-unordered-list-symbolic.svg
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:osb="http://www.openswatchbook.org/uri/2009/osb";
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   sodipodi:docname="format-unordered-list-symbolic.svg"
+   inkscape:export-filename="/home/sam/dev/RESOURCES/gnome-icon-theme-symbolic/src/gnome-stencils.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   height="16"
+   id="svg7384"
+   version="1.1"
+   inkscape:version="0.92.2 5c3e80d, 2017-08-06"
+   width="16">
+  <metadata
+     id="metadata90">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title>Gnome Symbolic Icon Theme</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:bbox-nodes="true"
+     inkscape:bbox-paths="true"
+     bordercolor="#666666"
+     borderopacity="1"
+     inkscape:current-layer="layer12"
+     inkscape:cx="5.9862882"
+     inkscape:cy="6.3448378"
+     gridtolerance="10"
+     inkscape:guide-bbox="true"
+     guidetolerance="10"
+     id="namedview88"
+     inkscape:object-nodes="true"
+     inkscape:object-paths="false"
+     objecttolerance="10"
+     pagecolor="#3a3b39"
+     inkscape:pageopacity="1"
+     inkscape:pageshadow="2"
+     showborder="false"
+     showgrid="true"
+     showguides="true"
+     inkscape:snap-bbox="true"
+     inkscape:snap-bbox-midpoints="false"
+     inkscape:snap-global="true"
+     inkscape:snap-grids="true"
+     inkscape:snap-nodes="false"
+     inkscape:snap-others="false"
+     inkscape:snap-to-guides="true"
+     inkscape:window-height="704"
+     inkscape:window-maximized="1"
+     inkscape:window-width="1366"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:zoom="22.627417">
+    <inkscape:grid
+       dotted="false"
+       empspacing="2"
+       enabled="true"
+       id="grid4866"
+       originx="199.9998"
+       originy="650"
+       snapvisiblegridlinesonly="true"
+       spacingx="1"
+       spacingy="1"
+       type="xygrid"
+       visible="true" />
+  </sodipodi:namedview>
+  <title
+     id="title9167">Gnome Symbolic Icon Theme</title>
+  <defs
+     id="defs7386">
+    <linearGradient
+       gradientTransform="matrix(-2.7365795,0.28202934,-0.18908311,-0.99988321,239.54008,-879.45557)"
+       id="linearGradient19282"
+       osb:paint="solid">
+      <stop
+         id="stop19284"
+         offset="0"
+         style="stop-color:#666666;stop-opacity:1;" />
+    </linearGradient>
+  </defs>
+  <g
+     inkscape:groupmode="layer"
+     id="layer9"
+     inkscape:label="status"
+     style="display:inline"
+     transform="translate(-41.000401,-867)" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer10"
+     inkscape:label="devices"
+     style="display:inline"
+     transform="translate(-41.000401,-867)" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer11"
+     inkscape:label="apps"
+     transform="translate(-41.000401,-867)" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer13"
+     inkscape:label="places"
+     style="display:inline"
+     transform="translate(-41.000401,-867)" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer14"
+     inkscape:label="mimetypes"
+     transform="translate(-41.000401,-867)" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer15"
+     inkscape:label="emblems"
+     style="display:inline"
+     transform="translate(-41.000401,-867)" />
+  <g
+     inkscape:groupmode="layer"
+     id="g71291"
+     inkscape:label="emotes"
+     style="display:inline"
+     transform="translate(-41.000401,-867)" />
+  <g
+     inkscape:groupmode="layer"
+     id="g4953"
+     inkscape:label="categories"
+     style="display:inline"
+     transform="translate(-41.000401,-867)" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer12"
+     inkscape:label="actions"
+     style="display:inline"
+     transform="translate(-41.000401,-867)">
+    <rect
+       height="2"
+       id="rect5356"
+       inkscape:label="a"
+       
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
+       width="5.999999"
+       x="49.000202"
+       y="874" />
+    <rect
+       height="2"
+       id="rect5358"
+       inkscape:label="a"
+       
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
+       width="5.999999"
+       x="49.000198"
+       y="878.98438" />
+    <rect
+       height="4.0000033"
+       id="rect5398"
+       rx="0.38461545"
+       ry="0.3787879"
+       
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
+       width="4.0000014"
+       x="43.000202"
+       y="873" />
+    <rect
+       height="3.9791701"
+       id="rect5401"
+       rx="0.38461545"
+       ry="0.37878785"
+       
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
+       width="4.0000014"
+       x="43.000198"
+       y="878" />
+    <rect
+       height="2"
+       id="rect5358-3"
+       inkscape:label="a"
+       
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
+       width="5.999999"
+       x="49.000202"
+       y="869" />
+    <rect
+       height="3.9791701"
+       id="rect5401-6"
+       rx="0.38461545"
+       ry="0.37878785"
+       
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
+       width="4.0000014"
+       x="43.000202"
+       y="868.01562" />
+  </g>
+</svg>
diff --git a/src/client/composer/composer-web-view.vala b/src/client/composer/composer-web-view.vala
index 08972b2..d5b656b 100644
--- a/src/client/composer/composer-web-view.vala
+++ b/src/client/composer/composer-web-view.vala
@@ -376,6 +376,14 @@ public class ComposerWebView : ClientWebView {
         this.call.begin(Geary.JS.callable("geary.indentLine"), null);
     }
 
+    public void insert_olist() {
+       this.call.begin(Geary.JS.callable("geary.insertOrderedList"), null);
+    }
+
+    public void insert_ulist() {
+       this.call.begin(Geary.JS.callable("geary.insertUnorderedList"), null);
+    }
+
     /**
      * Updates the signature block if it has not been deleted.
      */
diff --git a/src/client/composer/composer-widget.vala b/src/client/composer/composer-widget.vala
index 44881f1..fbd9cff 100644
--- a/src/client/composer/composer-widget.vala
+++ b/src/client/composer/composer-widget.vala
@@ -67,6 +67,8 @@ public class ComposerWidget : Gtk.EventBox {
     private const string ACTION_REMOVE_FORMAT = "remove-format";
     private const string ACTION_INDENT = "indent";
     private const string ACTION_OUTDENT = "outdent";
+    private const string ACTION_OLIST = "olist";
+    private const string ACTION_ULIST = "ulist";
     private const string ACTION_JUSTIFY = "justify";
     private const string ACTION_COLOR = "color";
     private const string ACTION_INSERT_IMAGE = "insert-image";
@@ -88,7 +90,8 @@ public class ComposerWidget : Gtk.EventBox {
     private const string[] html_actions = {
         ACTION_BOLD, ACTION_ITALIC, ACTION_UNDERLINE, ACTION_STRIKETHROUGH,
         ACTION_FONT_SIZE, ACTION_FONT_FAMILY, ACTION_COLOR, ACTION_JUSTIFY,
-        ACTION_INSERT_IMAGE, ACTION_COPY_LINK, ACTION_PASTE_WITH_FORMATTING
+        ACTION_INSERT_IMAGE, ACTION_COPY_LINK, ACTION_PASTE_WITH_FORMATTING,
+       ACTION_OLIST, ACTION_ULIST
     };
 
     private const ActionEntry[] action_entries = {
@@ -109,6 +112,8 @@ public class ComposerWidget : Gtk.EventBox {
         {ACTION_FONT_FAMILY,              on_font_family,            "s",     "'sans'"  },
         {ACTION_REMOVE_FORMAT,            on_remove_format,         null,      "false"  },
         {ACTION_INDENT,                   on_indent                                     },
+        {ACTION_OLIST,                    on_olist                                      },
+        {ACTION_ULIST,                    on_ulist                                      },
         {ACTION_OUTDENT,                  on_action                                     },
         {ACTION_JUSTIFY,                  on_justify,                "s",     "'left'"  },
         {ACTION_COLOR,                    on_select_color                               },
@@ -310,6 +315,8 @@ public class ComposerWidget : Gtk.EventBox {
     [GtkChild]
     private Gtk.Box font_style_buttons;
     [GtkChild]
+    private Gtk.Box list_buttons;
+    [GtkChild]
     private Gtk.Button insert_link_button;
     [GtkChild]
     private Gtk.Button remove_format_button;
@@ -1748,6 +1755,7 @@ public class ComposerWidget : Gtk.EventBox {
 
         this.insert_buttons.visible = compose_as_html;
         this.font_style_buttons.visible = compose_as_html;
+        this.list_buttons.visible = compose_as_html;
         this.remove_format_button.visible = compose_as_html;
 
         this.menu_button.menu_model = (compose_as_html) ? this.html_menu : this.plain_menu;
@@ -1806,6 +1814,14 @@ public class ComposerWidget : Gtk.EventBox {
         this.editor.indent_line();
     }
 
+    private void on_olist(SimpleAction action, Variant? param) {
+       this.editor.insert_olist();
+    }
+
+    private void on_ulist(SimpleAction action, Variant? param) {
+       this.editor.insert_ulist();
+    }
+
     private void on_mouse_target_changed(WebKit.WebView web_view,
                                          WebKit.HitTestResult hit_test,
                                          uint modifiers) {
diff --git a/ui/composer-web-view.js b/ui/composer-web-view.js
index 2a53b6e..678ce92 100644
--- a/ui/composer-web-view.js
+++ b/ui/composer-web-view.js
@@ -212,6 +212,12 @@ ComposerPageState.prototype = {
             element.setAttribute("type", "cite");
         }
     },
+    insertOrderedList: function() {
+        document.execCommand("insertOrderedList", false, null);
+    },
+    insertUnorderedList: function() {
+        document.execCommand("insertUnorderedList", false, null);
+    },
     updateSignature: function(signature) {
         if (this.signaturePart != null) {
             console.log(signature);
diff --git a/ui/composer-widget.ui b/ui/composer-widget.ui
index 50fd22e..a713eae 100644
--- a/ui/composer-widget.ui
+++ b/ui/composer-widget.ui
@@ -506,6 +506,68 @@
                 <property name="position">1</property>
               </packing>
             </child>
+           <child>
+             <object class="GtkBox" id="list_buttons">
+               <property name="visible">True</property>
+               <property name="can_focus">False</property>
+               <child>
+                 <object class="GtkButton" id="olist_button">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="focus_on_click">False</property>
+                    <property name="receives_default">False</property>
+                    <property name="tooltip_text" translatable="yes">Insert ordered list</property>
+                    <property name="action_name">cmp.olist</property>
+                    <property name="always_show_image">True</property>
+                    <child>
+                      <object class="GtkImage" id="olist_image">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="pixel_size">16</property>
+                        <property name="icon_name">format-ordered-list-symbolic</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="GtkButton" id="ulist_button">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="focus_on_click">False</property>
+                    <property name="receives_default">False</property>
+                    <property name="tooltip_text" translatable="yes">Insert unordered list</property>
+                    <property name="action_name">cmp.ulist</property>
+                    <property name="always_show_image">True</property>
+                    <child>
+                      <object class="GtkImage" id="ulist_image">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="pixel_size">16</property>
+                        <property name="icon_name">format-unordered-list-symbolic</property>
+                      </object>
+                    </child>
+                 </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+               </child>
+                <style>
+                  <class name="linked"/>
+                </style>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
+           </child>
             <child>
               <object class="GtkBox" id="indentation_buttons">
                 <property name="visible">True</property>
@@ -565,7 +627,7 @@
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">True</property>
-                <property name="position">2</property>
+                <property name="position">3</property>
               </packing>
             </child>
             <child>
@@ -627,7 +689,7 @@
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">True</property>
-                <property name="position">3</property>
+                <property name="position">4</property>
               </packing>
             </child>
             <child>
@@ -651,7 +713,7 @@
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">True</property>
-                <property name="position">4</property>
+                <property name="position">5</property>
               </packing>
             </child>
             <child>
@@ -675,7 +737,7 @@
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">True</property>
-                <property name="position">5</property>
+                <property name="position">6</property>
               </packing>
             </child>
             <child>
@@ -692,7 +754,7 @@
                 <property name="expand">False</property>
                 <property name="fill">True</property>
                 <property name="pack_type">end</property>
-                <property name="position">5</property>
+                <property name="position">7</property>
               </packing>
             </child>
             <child>
@@ -707,7 +769,7 @@
                 <property name="expand">False</property>
                 <property name="fill">True</property>
                 <property name="pack_type">end</property>
-                <property name="position">6</property>
+                <property name="position">8</property>
               </packing>
             </child>
           </object>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]