Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgnacio Rodríguez <ignacio@Ignacio-Magallanes.(none)>2012-11-08 18:36:18 (GMT)
committer Ignacio Rodríguez <ignacio@Ignacio-Magallanes.(none)>2012-11-08 18:36:18 (GMT)
commitaae999923bff78451cd0bc05fffcbdca5e53b2ee (patch)
tree0f647e67e510c26625e39423a6bc9c8838c5cd4c
parent410b145d6e118dcee0bf5fba0c4cd16dd23cb32f (diff)
Versión 2! :)
-rw-r--r--Toolbars.py160
-rw-r--r--abook.py167
-rw-r--r--ayuda.py88
-rw-r--r--icons/help-icon.svg32
4 files changed, 334 insertions, 113 deletions
diff --git a/Toolbars.py b/Toolbars.py
new file mode 100644
index 0000000..7d92ade
--- /dev/null
+++ b/Toolbars.py
@@ -0,0 +1,160 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Toolbars.py
+# Gabriel, hice esto porque es un revoltijo abook.py :P
+try:
+ import gtk
+ from gettext import gettext as _
+ from sugar import profile
+ from sugar import mime
+ from sugar.activity import activity
+ from sugar.activity.widgets import StopButton
+ from sugar.activity.widgets import ActivityToolbarButton
+ from sugar.activity.widgets import ToolbarButton
+ from sugar.graphics.icon import Icon
+ from sugar.graphics.colorbutton import ColorToolButton
+ from sugar.graphics.toolbarbox import ToolbarBox
+ from sugar.graphics.toolbutton import ToolButton
+ from sugar.graphics.objectchooser import ObjectChooser
+ from sugar.graphics.alert import Alert, NotifyAlert
+ import pango
+
+ from book import cBook
+ from book import cPage
+ from book import cOption
+ from textbook import tutorial_book
+ from textbook import empty_book
+ from textbook import credits_book
+ from Combo import Combo
+ from ayuda import HelpButton as Ayudas
+except ImportError:
+ print 'NO SE ESTA EN SUGAR.. SALIENDO'
+
+Fonts = Combo()
+Fonts.set_items(["Purisa 8", "Purisa 12", "Purisa 24", "Monospace 8", "Monospace 12", "Monospace 24", "Times New Roman 8", "Times New Roman 12", "Times New Roman 24", "FreeSans 8", "FreeSans 12", "FreeSans 24"])
+Title_Tam = Combo()
+Title_Tam.set_items(["Purisa 8", "Purisa 12", "Purisa 24", "Monospace 8", "Monospace 12", "Monospace 24", "Times New Roman 8", "Times New Roman 12", "Times New Roman 24", "FreeSans 8", "FreeSans 12", "FreeSans 24"])
+Colore = ColorToolButton()
+Color_t = ColorToolButton()
+restart_button = ToolButton("home")
+reading_button = ToolButton("read")
+load_button = ToolButton("open-from-journal")
+credits = ToolButton("credits")
+new_button = ToolButton("new")
+book_button = ToolButton("edit-p")
+page_button = ToolButton("edit-c")
+check_button = ToolButton("broken")
+
+def Text_Toolbar(toolbar):
+ text_button = ToolbarButton(icon_name="format-text-size")
+ text_toolbar = gtk.Toolbar()
+ A = gtk.Label(_('<--Color Content:'))
+ B = gtk.Label(_('<--Color Title:'))
+ text_toolbar.insert(Colore, -1)
+
+ Item = gtk.ToolItem()
+ Item.add(A)
+ Item.show()
+ text_toolbar.insert(Item, -1)
+ Item = gtk.ToolItem()
+ Item.add(Fonts)
+ Item.show()
+ text_toolbar.insert(Item, -1)
+ Fonts.show()
+ A.show()
+ Fonts.show()
+ text_toolbar.insert(gtk.SeparatorToolItem(), -1)
+ Item = gtk.ToolItem()
+ Item.add(B)
+ Item.show()
+ text_toolbar.insert(Color_t, -1)
+ text_toolbar.insert(Item, -1)
+ Item = gtk.ToolItem()
+ Item.add(Title_Tam)
+ Item.show()
+ Title_Tam.show()
+
+ text_toolbar.insert(Item, -1)
+
+ Colore.show()
+ Color_t.show()
+ text_toolbar.show_all()
+ text_button.props.page = text_toolbar
+ toolbar.toolbar.insert(text_button, -1)
+def Read_Toolbar(toolbar):
+ # read toolbar
+ read_button = ToolbarButton(icon_name="read")
+ read_toolbar = gtk.Toolbar()
+
+
+ restart_button.set_tooltip(_("Start from the begining"))
+
+ read_toolbar.insert(restart_button, -1)
+
+ reading_button.set_tooltip(_("Read the book"))
+
+ read_toolbar.insert(reading_button, -1)
+
+ load_button.set_tooltip(_("Load book from Journal"))
+
+ read_toolbar.insert(load_button, -1)
+ read_button.props.page = read_toolbar
+ read_toolbar.show_all()
+ Sep = gtk.SeparatorToolItem()
+ Sep.set_expand(False)
+ Sep.set_draw(True)
+ read_toolbar.insert(Sep, -1)
+ Sep.show()
+
+ credits.set_tooltip(_("Credits"))
+
+ read_toolbar.insert(credits, -1)
+ credits.show()
+ toolbar.toolbar.insert(read_button, -1)
+def Write_Toolbar(toolbar):
+ # write toolbar
+ write_button = ToolbarButton(icon_name="edit")
+ write_toolbar = gtk.Toolbar()
+
+ new_button.set_tooltip(_("New book"))
+
+ write_toolbar.insert(new_button, -1)
+
+ book_button.set_tooltip(_("Edit book properties"))
+
+ write_toolbar.insert(book_button, -1)
+
+ page_button.set_tooltip(_("Edit book contents"))
+
+ write_toolbar.insert(page_button, -1)
+
+ check_button.set_tooltip(_("Check book for missing parts"))
+
+ write_toolbar.insert(check_button, -1)
+ write_button.props.page = write_toolbar
+ write_toolbar.show_all()
+ toolbar.toolbar.insert(write_button, -1)
+
+def Ayuda(toolbar):
+ Boton_Ayuda = Ayudas()
+ # Porfavor, traducir esto al ingles! #
+ Boton_Ayuda.add_section(_("Crear un libro"))
+ Boton_Ayuda.add_paragraph(_("Para crear un nuevo libro debes hacer click en el icono"),'edit')
+ Boton_Ayuda.add_paragraph(_("Posterior a esto haz click en:"),'new')
+ Boton_Ayuda.add_section(_("Editar un libro"))
+ Boton_Ayuda.add_paragraph(_("Para editar el libro debes hacer click en"),'edit')
+ Boton_Ayuda.add_paragraph(_("Luego haz click en:"),'edit-c')
+ Boton_Ayuda.add_section(_("Editar las propiedades"))
+ Boton_Ayuda.add_paragraph(_("Para editar las propiedades debes hacer click en"),'edit')
+ Boton_Ayuda.add_paragraph(_("Despues haz click en:"),'edit-p')
+ Boton_Ayuda.add_section(_("Leer un libro"))
+ Boton_Ayuda.add_paragraph(_("Para leer un libro debes hacer click en:"),'read')
+ Boton_Ayuda.add_paragraph(_("Si quieres ir a la primer página debes hacer click en:"),'home')
+ Boton_Ayuda.add_paragraph(_("Si quieres cargar tu libro haz click en:"),'open-from-journal')
+ Boton_Ayuda.add_paragraph(_("Si te interesan los créditos haz click en:"),'credits')
+ Boton_Ayuda.add_section(_("Editar la 'letra'"))
+ Boton_Ayuda.add_paragraph(_("Para editar la tipografía de un libro debes hacer click en:"),'format-text-size')
+ Boton_Ayuda.add_paragraph(_("Si tu quieres editar el nombre de la tipografía deberas hacer click donde dice 'Purisa 8', se desplegara una lista de fuentes. Selecciona una"))
+ Boton_Ayuda.add_paragraph(_("Si quieres editar el color haz click en:"), 'color-preview')
+ Boton_Ayuda.show()
+ toolbar.toolbar.insert(Boton_Ayuda, -1)
diff --git a/abook.py b/abook.py
index 0f78f88..18d9211 100644
--- a/abook.py
+++ b/abook.py
@@ -45,113 +45,50 @@ from sugar.graphics.toolbutton import ToolButton
from sugar.graphics.objectchooser import ObjectChooser
from sugar.graphics.alert import Alert, NotifyAlert
import pango
-
+from ayuda import HelpButton as Ayuda
from book import cBook
from book import cPage
from book import cOption
from textbook import tutorial_book
from textbook import empty_book
from textbook import credits_book
-from Combo import Combo
-# ColorToolButton
-# Color for Font
-Tamano = Combo()
-Tamano.set_items(["8","10","12","24","32","48","72"])
-Colore = ColorToolButton()
+from Toolbars import Text_Toolbar
+from Toolbars import Write_Toolbar
+from Toolbars import Read_Toolbar
+from Toolbars import Ayuda
+import Toolbars
+
class AdventureBookActivity(activity.Activity):
def __init__(self, handle):
activity.Activity.__init__(self, handle, True)
-
- # Toolbar
toolbarbox = ToolbarBox()
- Colore.set_title(_('Select color for font and go to home page'))
- Colore.connect('notify::color', self.Home)
- Tamano.connect('change_selection', self.Home)
+## CONNECTS ##
+ Toolbars.restart_button.connect("clicked", self._restart_button_cb)
+ Toolbars.reading_button.connect("clicked", self._read_button_cb)
+ Toolbars.load_button.connect("clicked", self._load_button_cb)
+ Toolbars.credits.connect("clicked", self.Credits)
+ Toolbars.new_button.connect("clicked", self._new_button_cb)
+ Toolbars.book_button.connect("clicked", self._edit_book_button_cb, Toolbars.Colore.get_color())
+ Toolbars.page_button.connect("clicked", self._edit_page_button_cb)
+ Toolbars.check_button.connect("clicked", self._check_button_cb, Toolbars.Colore.get_color())
+ Toolbars.Colore.set_title(_('Select color for font and go to home page'))
+ Toolbars.Colore.connect('notify::color', self.Home)
+ Toolbars.Fonts.connect('change_selection', self.Home)
+ Toolbars.Title_Tam.connect('change_selection', self.Home)
+ Toolbars.Color_t.connect('notify::color', self.Home)
+# FIN DE CONNECTS #
+
# The Activity Button:
activity_button = ActivityToolbarButton(self)
- W = gtk.Label(_('Select a size for font\nand go to home page'))
- # Insert the Activity Toolbar Button in the toolbarbox
- toolbarbox.toolbar.insert(activity_button, 0)
-
- # Separator
- separator = gtk.SeparatorToolItem()
- separator.set_expand(False)
- separator.set_draw(True)
- toolbarbox.toolbar.insert(separator, -1)
- Item = gtk.ToolItem()
- Item.add(Tamano)
- It = gtk.ToolItem()
- It.add(W)
- toolbarbox.toolbar.insert(Colore, -1)
- toolbarbox.toolbar.insert(It, -1)
- toolbarbox.toolbar.insert(Item, -1)
- Item.show()
- It.show()
- W.show()
- Tamano.show()
- toolbarbox.toolbar.insert(gtk.SeparatorToolItem(), -1)
- Colore.show()
-
-
- # read toolbar
- read_button = ToolbarButton(icon_name="read")
- read_toolbar = gtk.Toolbar()
-
- restart_button = ToolButton("home")
- restart_button.set_tooltip(_("Start from the begining"))
- restart_button.connect("clicked", self._restart_button_cb)
- read_toolbar.insert(restart_button, -1)
- reading_button = ToolButton("read")
- reading_button.set_tooltip(_("Read the book"))
- reading_button.connect("clicked", self._read_button_cb)
- read_toolbar.insert(reading_button, -1)
- load_button = ToolButton("open-from-journal")
- load_button.set_tooltip(_("Load book from Journal"))
- load_button.connect("clicked", self._load_button_cb)
- read_toolbar.insert(load_button, -1)
- read_button.props.page = read_toolbar
- read_toolbar.show_all()
- toolbarbox.toolbar.insert(read_button, -1)
- Sep = gtk.SeparatorToolItem()
- Sep.set_expand(False)
- Sep.set_draw(True)
- read_toolbar.insert(Sep, -1)
- Sep.show()
- credits = ToolButton("credits")
- credits.set_tooltip(_("Credits"))
- credits.connect("clicked", self.Credits)
- read_toolbar.insert(credits, -1)
- credits.show()
- # write toolbar
- write_button = ToolbarButton(icon_name="edit")
- write_toolbar = gtk.Toolbar()
- new_button = ToolButton("new")
- new_button.set_tooltip(_("New book"))
- new_button.connect("clicked", self._new_button_cb)
- write_toolbar.insert(new_button, -1)
- book_button = ToolButton("edit-p")
- book_button.set_tooltip(_("Edit book properties"))
- book_button.connect("clicked", self._edit_book_button_cb, Colore.get_color())
- write_toolbar.insert(book_button, -1)
- page_button = ToolButton("edit-c")
- page_button.set_tooltip(_("Edit book contents"))
- page_button.connect("clicked", self._edit_page_button_cb)
- write_toolbar.insert(page_button, -1)
- check_button = ToolButton("broken")
- check_button.set_tooltip(_("Check book for missing parts"))
- check_button.connect("clicked", self._check_button_cb, Colore.get_color())
- write_toolbar.insert(check_button, -1)
- write_button.props.page = write_toolbar
- write_toolbar.show_all()
- toolbarbox.toolbar.insert(write_button, -1)
- # Separator
- separator = gtk.SeparatorToolItem()
- separator.set_expand(True)
- separator.set_draw(False)
- toolbarbox.toolbar.insert(separator, -1)
+ # Insert the Activity Toolbar Button in the toolbarbox
+ toolbarbox.toolbar.insert(activity_button, 0)
+ Read_Toolbar(toolbarbox)
+ Write_Toolbar(toolbarbox)
+ Text_Toolbar(toolbarbox)
+ Ayuda(toolbarbox)
# Stop button
stopbtn = StopButton(self)
toolbarbox.toolbar.insert(stopbtn, -1)
@@ -162,10 +99,10 @@ class AdventureBookActivity(activity.Activity):
# Define main view as a vbox container
self._main_view = gtk.VBox()
self.set_canvas(self._main_view)
-
+
# Load tutorial book for first-time runs
self._book = tutorial_book()
- self._start_book(Colore.get_color())
+ self._start_book(Toolbars.Colore.get_color())
def Home(self, widget, pspec):
self._restart_button_cb(None)
@@ -176,11 +113,13 @@ class AdventureBookActivity(activity.Activity):
def _start_book(self, Color):
- Tam = pango.FontDescription(Tamano.get_active_text())
- self._clean_main_view()
+ Tam = pango.FontDescription(Toolbars.Fonts.get_active_text())
+ Title = pango.FontDescription(Toolbars.Title_Tam.get_active_text())
+ Color_ts = Toolbars.Color_t.get_color()
+ self._clean_main_view()
title_label = gtk.Label(self._book.get_title())
- title_label.modify_fg(gtk.STATE_NORMAL, Color)
- title_label.modify_font(Tam)
+ title_label.modify_fg(gtk.STATE_NORMAL, Color_ts)
+ title_label.modify_font(Title)
title_label.show()
author_label = gtk.Label(self._book.get_author())
author_label.modify_fg(gtk.STATE_NORMAL, Color)
@@ -206,27 +145,29 @@ class AdventureBookActivity(activity.Activity):
def _start_button_cb(self, widget):
self._current_page = self._book.get_pages()[0]
- self._show_page(Colore.get_color())
+ self._show_page(Toolbars.Colore.get_color())
def _restart_button_cb(self, widget):
- self._start_book(Colore.get_color())
+ self._start_book(Toolbars.Colore.get_color())
def _read_button_cb(self, widget):
- self._show_page(Colore.get_color())
+ self._show_page(Toolbars.Colore.get_color())
def _show_page(self, Color):
self._clean_main_view()
- Tam = pango.FontDescription(Tamano.get_active_text())
-
+ Tam = pango.FontDescription(Toolbars.Fonts.get_active_text())
+ Title = pango.FontDescription(Toolbars.Title_Tam.get_active_text())
+ Color_ts = Toolbars.Color_t.get_color()
+ print Tam
title_label = gtk.Label(self._current_page.get_title())
- title_label.modify_fg(gtk.STATE_NORMAL, Color)
+ title_label.modify_fg(gtk.STATE_NORMAL, Color_ts)
title_label.show()
- title_label.modify_font(Tam)
+ title_label.modify_font(Title)
text_label = gtk.Label(self._current_page.get_text())
text_label.modify_fg(gtk.STATE_NORMAL, Color)
@@ -247,7 +188,7 @@ class AdventureBookActivity(activity.Activity):
def _option_button_cb(self, widget, option):
self._current_page = option.get_page()
- self._show_page(Colore.get_color())
+ self._show_page(Toolbars.Colore.get_color())
def _load_button_cb(self, widget):
@@ -277,11 +218,11 @@ class AdventureBookActivity(activity.Activity):
def _new_button_cb(self, widget):
self._book = empty_book()
- self._start_book(Colore.get_color())
+ self._start_book(Toolbars.Colore.get_color())
# self._start_button_cb(widget)
def Credits(self, widget):
self._book = credits_book()
- self._start_book(Colore.get_color())
+ self._start_book(Toolbars.Colore.get_color())
def _edit_book_button_cb(self, widget, Color):
Tam = pango.FontDescription('8')
@@ -369,7 +310,7 @@ class AdventureBookActivity(activity.Activity):
page_list_view.get_selection().set_mode(gtk.SELECTION_SINGLE)
page_list_view.connect("cursor-changed",
self._page_selected_for_edition_cb,
- page_vbox, Colore.get_color())
+ page_vbox, Toolbars.Colore.get_color())
page_list_view.set_cursor(0) # need to change to point to page
page_list_column = gtk.TreeViewColumn(_("Book pages"))
page_list_view.append_column(page_list_column)
@@ -439,7 +380,7 @@ class AdventureBookActivity(activity.Activity):
def _page_selected_for_edition_cb(self, w, page_vbox, Color):
- Tam = pango.FontDescription(Tamano.get_active_text())
+ Tam = pango.FontDescription('10')
for ch in page_vbox.get_children():
page_vbox.remove(ch)
@@ -549,7 +490,7 @@ class AdventureBookActivity(activity.Activity):
def _add_option_button_cb(self, w, page, option_hbox, options_vbox):
- Tam = pango.FontDescription(Tamano.get_active_text())
+ Tam = pango.FontDescription('10')
w.get_parent().remove(w)
@@ -598,7 +539,7 @@ class AdventureBookActivity(activity.Activity):
def _check_button_cb(self, widget, Color):
- Tam = pango.FontDescription(Tamano.get_active_text())
+ Tam = pango.FontDescription('10')
self._clean_main_view()
# check that all pages are referenced
@@ -690,6 +631,6 @@ class AdventureBookActivity(activity.Activity):
option_props = cOption(o['text'], page_dest)
page_orig.add_option(option_props)
- self._start_book(Colore.get_color())
+ self._start_book(Toolbars.Colore.get_color())
diff --git a/ayuda.py b/ayuda.py
new file mode 100644
index 0000000..639159d
--- /dev/null
+++ b/ayuda.py
@@ -0,0 +1,88 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2012, Gonzalo Odiard <godiard@gmail.com>
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+# HelpButton widget
+
+from gettext import gettext as _
+
+import gtk
+
+from sugar.graphics.toolbutton import ToolButton
+from sugar.graphics.icon import Icon
+from sugar.graphics import style
+
+
+class HelpButton(gtk.ToolItem):
+
+ def __init__(self, **kwargs):
+ gtk.ToolItem.__init__(self)
+
+ help_button = ToolButton('help-icon')
+ help_button.set_tooltip(_('Help'))
+ self.add(help_button)
+
+ self._palette = help_button.get_palette()
+
+ sw = gtk.ScrolledWindow()
+ sw.set_size_request(int(gtk.gdk.screen_width() / 2.8),
+ gtk.gdk.screen_height() - style.GRID_CELL_SIZE * 3)
+ sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
+
+ self._max_text_width = int(gtk.gdk.screen_width() / 3) - 20
+ self._vbox = gtk.VBox()
+ self._vbox.set_homogeneous(False)
+
+ hbox = gtk.HBox()
+ hbox.pack_start(self._vbox, False, True, 0)
+
+ sw.add_with_viewport(hbox)
+
+ self._palette.set_content(sw)
+ sw.show_all()
+
+ help_button.connect('clicked', self.__help_button_clicked_cb)
+
+ def __help_button_clicked_cb(self, button):
+ self._palette.popup(immediate=True, state=1)
+
+ def add_section(self, section_text):
+ hbox = gtk.HBox()
+ label = gtk.Label()
+ label.set_use_markup(True)
+ label.set_markup('<b>%s</b>' % section_text)
+ label.set_line_wrap(True)
+ label.set_size_request(self._max_text_width, -1)
+ hbox.add(label)
+ hbox.show_all()
+ self._vbox.pack_start(hbox, False, False, padding=5)
+
+ def add_paragraph(self, text, icon=None):
+ hbox = gtk.HBox()
+ label = gtk.Label(text)
+ label.set_justify(gtk.JUSTIFY_LEFT)
+ label.set_line_wrap(True)
+ hbox.add(label)
+ if icon is not None:
+ _icon = Icon(icon_name=icon)
+ hbox.add(_icon)
+ label.set_size_request(self._max_text_width - 20, -1)
+ else:
+ label.set_size_request(self._max_text_width, -1)
+
+ hbox.show_all()
+ self._vbox.pack_start(hbox, False, False, padding=5)
diff --git a/icons/help-icon.svg b/icons/help-icon.svg
new file mode 100644
index 0000000..36f763c
--- /dev/null
+++ b/icons/help-icon.svg
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN'
+'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [
+ <!ENTITY stroke_color "#ffffff">
+ <!ENTITY fill_color "#010101">
+]>
+
+<svg height="55px" viewBox="0 0 55 55" width="55px"
+xmlns="http://www.w3.org/2000/svg"
+xmlns:xlink="http://www.w3.org/1999/xlink">
+
+ <g>
+ <path d="M27.5,50.125 C15.157,50.125 5,39.968 5,27.625 C5,15.282
+ 15.157,5.125 27.5,5.125 C39.843,5.125 50,15.282 50,27.625
+ C49.837,40.071 40.412,49.484 28.077,50.118 z M27.01,34.768
+ C28.452,34.839 29.871,34.056 30.301,32.622 C30.538,31.831
+ 30.438,30.811 30.438,30.048 C32.901,29.422 35.315,28.194
+ 36.775,26.041 C38.635,23.299 38.692,19.361 37.139,16.471
+ C35.241,12.938 31.3,11.4 27.467,11.326 C25.327,11.363
+ 23.184,11.958 21.331,13.036 C19.004,14.391 16.92,16.931
+ 17.59,19.785 C17.767,20.537 18.189,21.24 18.866,21.638
+ C21.301,23.068 23.001,20.116 24.478,18.753 C25.357,17.943
+ 26.602,17.383 27.82,17.553 C29.264,17.754 30.642,18.618
+ 31.073,20.071 C31.224,20.581 31.229,21.118 31.155,21.642
+ C30.908,23.4 29.517,24.191 27.938,24.685 C26.56,25.116
+ 24.024,25.251 23.956,27.167 L23.957,27.167 L23.957,31.667
+ C23.947,33.36 25.073,34.466 26.649,34.738 z M27.016,44.444
+ C28.993,44.54 30.706,42.921 30.706,40.937 C30.706,38.99
+ 29.106,37.475 27.196,37.427 C25.253,37.431 23.54,39.139
+ 23.691,41.117 C23.823,42.857 24.98,44.062 26.662,44.408 z"
+ fill="&stroke_color;" stroke="none"/>
+ </g>
+</svg>