Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMukesh Gupta <mukeshgupta.2006@gmail.com>2010-12-28 19:39:50 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2010-12-29 04:02:53 (GMT)
commitee684ed46aa606e9fff498bd139377f74a41862c (patch)
treeef9733b611cc0878e2c6734d35b14c242f3c3b0f
parent0ab52167507e063b23a6b02bc9fda6ba2aa00094 (diff)
BUG#2544 Adding Smiley Support to chat application
Pevious patch modified to identify consecutive smileys without space License added for the svg files Svg files converted to plane text format from inkspace format Signed-off-by: Mukesh Gupta <mukeshgupta.2006@gmail.com>
-rw-r--r--activity/activity.info2
-rw-r--r--icons/smilies/angel.svg346
-rw-r--r--icons/smilies/blush.svg466
-rw-r--r--icons/smilies/cool.svg73
-rw-r--r--icons/smilies/devil.svg342
-rw-r--r--icons/smilies/grin.svg244
-rw-r--r--icons/smilies/neutral.svg253
-rw-r--r--icons/smilies/sad.svg210
-rw-r--r--icons/smilies/shock.svg208
-rw-r--r--icons/smilies/smile.svg123
-rw-r--r--icons/smilies/smiley-icon.svg123
-rw-r--r--icons/smilies/tongue.svg439
-rw-r--r--icons/smilies/wink.svg220
-rw-r--r--pippy_app.py215
14 files changed, 3256 insertions, 8 deletions
diff --git a/activity/activity.info b/activity/activity.info
index b35b097..1b05fe7 100644
--- a/activity/activity.info
+++ b/activity/activity.info
@@ -3,7 +3,7 @@ sweet = chat
name = Chat
summary = Text chat
homepage = http://wiki.sugarlabs.org/go/Activities/Chat
-license = GPLv2+
+license = GPLv2+,Creative Commons Attribution-ShareAlike 3.0 license(svg icons)
icon = activity-icon
exec = sugar-activity pippy_app.Chat
diff --git a/icons/smilies/angel.svg b/icons/smilies/angel.svg
new file mode 100644
index 0000000..d1f1d0a
--- /dev/null
+++ b/icons/smilies/angel.svg
@@ -0,0 +1,346 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<svg
+
+ height="48px"
+ width="48px">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient3179">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3181" />
+ <stop
+ style="stop-color:#f6e76a;stop-opacity:1;"
+ offset="1"
+ id="stop3185" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3451">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3453" />
+ <stop
+ id="stop4936"
+ offset="0.5"
+ style="stop-color:#fefc9a;stop-opacity:0.62886596;" />
+ <stop
+ style="stop-color:#fefc9a;stop-opacity:0;"
+ offset="1"
+ id="stop3455" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3451"
+ id="radialGradient3468"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.166667,7.650132e-16,8.709935)"
+ cx="25.127777"
+ cy="10.451922"
+ fx="25.127777"
+ fy="10.451922"
+ r="15.076666" />
+ <linearGradient
+ id="linearGradient3050">
+ <stop
+ style="stop-color:#a40000;stop-opacity:1;"
+ offset="0"
+ id="stop3052" />
+ <stop
+ style="stop-color:#ec0000;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop3054" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3290">
+ <stop
+ id="stop3292"
+ offset="0.0000000"
+ style="stop-color:#fffcde;stop-opacity:1.0000000;" />
+ <stop
+ style="stop-color:#f6e76a;stop-opacity:1.0000000;"
+ offset="0.64485979"
+ id="stop3294" />
+ <stop
+ id="stop3296"
+ offset="1.0000000"
+ style="stop-color:#ffb738;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <radialGradient
+ r="8.9020796"
+ fy="15.755712"
+ fx="29.158466"
+ cy="15.720984"
+ cx="29.288071"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2714"
+ xlink:href="#linearGradient3179"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient2509">
+ <stop
+ style="stop-color:#fffbd5;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2511" />
+ <stop
+ style="stop-color:#edd400;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2513" />
+ </linearGradient>
+ <radialGradient
+ gradientTransform="matrix(1.250000,0.000000,0.000000,1.250000,-6.479446,-13.37211)"
+ id="aigrd2"
+ cx="25.0527"
+ cy="39.5928"
+ r="15.7572"
+ fx="25.0527"
+ fy="39.5928"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0.0000000"
+ style="stop-color:#777777;stop-opacity:1.0000000;"
+ id="stop8602" />
+ <stop
+ offset="1"
+ style="stop-color:#000000"
+ id="stop8604" />
+ </radialGradient>
+ <linearGradient
+ id="linearGradient4565"
+ inkscape:collect="always">
+ <stop
+ id="stop4567"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop4569"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3824">
+ <stop
+ id="stop3826"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop3828"
+ offset="1.0000000"
+ style="stop-color:#c9c9c9;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3800">
+ <stop
+ id="stop3802"
+ offset="0.0000000"
+ style="stop-color:#ffeed6;stop-opacity:1.0000000;" />
+ <stop
+ style="stop-color:#e49c2f;stop-opacity:1.0000000;"
+ offset="0.50000000"
+ id="stop8664" />
+ <stop
+ id="stop3804"
+ offset="1.0000000"
+ style="stop-color:#ffc66c;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.333333,0.000000,25.71429)"
+ r="19.714285"
+ fy="38.571430"
+ fx="24.714285"
+ cy="38.571430"
+ cx="24.714285"
+ id="radialGradient4571"
+ xlink:href="#linearGradient4565"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3050"
+ id="linearGradient3384"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.356785,-4.136152e-17,4.888137e-17,0.421652,15.59796,22.41694)"
+ x1="23.031250"
+ y1="24.312500"
+ x2="23.031250"
+ y2="36.249878" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3050"
+ id="linearGradient3388"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.277603,-9.832923e-2,0.112086,0.340135,19.04250,26.33855)"
+ x1="23.377983"
+ y1="21.840229"
+ x2="23.591845"
+ y2="31.634424" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3050"
+ id="linearGradient3394"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.277603,-9.832923e-2,0.112086,0.340135,19.04250,26.33855)"
+ x1="23.377983"
+ y1="21.840229"
+ x2="23.591845"
+ y2="31.634424" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:window-y="330"
+ inkscape:window-x="569"
+ inkscape:window-height="614"
+ inkscape:window-width="872"
+ inkscape:showpageshadow="false"
+ inkscape:document-units="px"
+ inkscape:grid-bbox="true"
+ showgrid="false"
+ inkscape:current-layer="layer1"
+ inkscape:cy="23.689514"
+ inkscape:cx="41.558678"
+ inkscape:zoom="4.9245777"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="0.19607843"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ fill="#edd400" />
+ <metadata
+ id="metadata4">
+ <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>Face - Angel</dc:title>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>emoticon</rdf:li>
+ <rdf:li>emote</rdf:li>
+ <rdf:li>smiley</rdf:li>
+ <rdf:li>angel</rdf:li>
+ <rdf:li>0:)</rdf:li>
+ <rdf:li>0:-)</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://jimmac.musichall.cz</dc:source>
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title>Corey Woodworth</dc:title>
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Attribution" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1"
+ id="layer1">
+ <path
+ d="M 44.428570 38.571430 A 19.714285 6.5714288 0 1 1 5.0000000,38.571430 A 19.714285 6.5714288 0 1 1 44.428570 38.571430 z"
+ sodipodi:ry="6.5714288"
+ sodipodi:rx="19.714285"
+ sodipodi:cy="38.571430"
+ sodipodi:cx="24.714285"
+ id="path4563"
+ style="opacity:0.53164557;color:#000000;fill:url(#radialGradient4571);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.40487173;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(2.083142,0.000000,0.000000,2.083142,-40.54715,-16.49224)"
+ d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1 22.450640,19.008621 A 8.6620579 8.6620579 0 1 1 39.774755 19.008621 z"
+ sodipodi:ry="8.6620579"
+ sodipodi:rx="8.6620579"
+ sodipodi:cy="19.008621"
+ sodipodi:cx="31.112698"
+ id="path4320"
+ style="overflow:visible;display:inline;visibility:visible;stroke-opacity:1;stroke-dashoffset:0.0000000;stroke-dasharray:none;stroke-miterlimit:4.0000000;marker-end:none;marker-mid:none;marker-start:none;marker:none;stroke-linejoin:round;stroke-linecap:round;stroke-width:0.48004404;stroke:#e49a17;fill-rule:evenodd;fill-opacity:1.0;fill:url(#radialGradient2714);color:#000000;opacity:1.0000000"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.175809,0.000000,0.000000,2.582227,-5.280449,-20.47780)"
+ d="M 40.204443 10.451922 A 15.076666 2.5127776 0 1 1 10.051111,10.451922 A 15.076666 2.5127776 0 1 1 40.204443 10.451922 z"
+ sodipodi:ry="2.5127776"
+ sodipodi:rx="15.076666"
+ sodipodi:cy="10.451922"
+ sodipodi:cx="25.127777"
+ id="path3423"
+ style="opacity:1;color:#000000;fill:url(#radialGradient3468);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.00150537;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.979782,0.000000,0.000000,1.979782,-37.33128,-14.52746)"
+ sodipodi:type="arc"
+ style="opacity:0.4;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.50510627;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+ id="path4322"
+ sodipodi:cx="31.112698"
+ sodipodi:cy="19.008621"
+ sodipodi:rx="8.6620579"
+ sodipodi:ry="8.6620579"
+ d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1 22.450640,19.008621 A 8.6620579 8.6620579 0 1 1 39.774755 19.008621 z" />
+ <path
+ sodipodi:nodetypes="czczc"
+ id="path2659"
+ d="M 37.284637,24.719966 C 34.268170,29.944639 30.741134,33.710005 24.462492,33.710005 C 18.362475,33.710005 13.896955,29.370308 11.110016,24.543189 C 13.659429,27.599109 17.392948,31.109501 24.197327,31.109501 C 32.327531,31.109501 33.749103,28.202646 37.284637,24.719966 z "
+ style="opacity:0.35999998;color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+ <path
+ style="fill:url(#aigrd2);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 37.284637,24.012862 C 34.268170,29.237535 30.741134,33.002901 24.462492,33.002901 C 18.362475,33.002901 13.896955,28.663204 11.110016,23.836085 C 13.659429,26.892005 17.392948,30.402397 24.197327,30.402397 C 32.327531,30.402397 33.749103,27.495542 37.284637,24.012862 z "
+ id="path8606"
+ sodipodi:nodetypes="czczc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#c3b400;stroke-width:2.32432675;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path1453"
+ sodipodi:cx="25.127777"
+ sodipodi:cy="10.451922"
+ sodipodi:rx="15.076666"
+ sodipodi:ry="2.5127776"
+ d="M 40.204443 10.451922 A 15.076666 2.5127776 0 1 1 10.051111,10.451922 A 15.076666 2.5127776 0 1 1 40.204443 10.451922 z"
+ transform="matrix(1.012503,0.000000,0.000000,1.645326,-1.176935,-10.68538)" />
+ <path
+ transform="matrix(1.014856,0.000000,0.000000,1.611564,-1.206928,-10.33866)"
+ d="M 40.204443 10.451922 A 15.076666 2.5127776 0 1 1 10.051111,10.451922 A 15.076666 2.5127776 0 1 1 40.204443 10.451922 z"
+ sodipodi:ry="2.5127776"
+ sodipodi:rx="15.076666"
+ sodipodi:cy="10.451922"
+ sodipodi:cx="25.127777"
+ id="path2472"
+ style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffff06;stroke-width:0.78194094;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ sodipodi:type="arc" />
+ <path
+ style="opacity:1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.0000006;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 25.203063,17.578559 C 26.982405,21.949412 31.532943,22.064182 33.134299,17.728635 C 30.310009,19.967515 27.713179,19.322697 25.203063,17.578559 z "
+ id="path1336"
+ sodipodi:nodetypes="ccc" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path1458"
+ d="M 23.134299,17.578559 C 21.354957,21.949412 16.804419,22.064182 15.203063,17.728635 C 18.027353,19.967515 20.624183,19.322697 23.134299,17.578559 z "
+ style="opacity:1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.0000006;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ </g>
+</svg>
diff --git a/icons/smilies/blush.svg b/icons/smilies/blush.svg
new file mode 100644
index 0000000..4cb9503
--- /dev/null
+++ b/icons/smilies/blush.svg
@@ -0,0 +1,466 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ 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:xlink="http://www.w3.org/1999/xlink"
+ version="1.1"
+ width="48"
+ height="48"
+ id="svg4376">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient7947">
+ <stop
+ id="stop7949"
+ style="stop-color:#ff0000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop7957"
+ style="stop-color:#ff1f00;stop-opacity:0.79381442"
+ offset="0.5" />
+ <stop
+ id="stop7951"
+ style="stop-color:#ff0000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3881">
+ <stop
+ id="stop3883"
+ style="stop-color:#ff0000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop6974"
+ style="stop-color:#ff0000;stop-opacity:0.49803922"
+ offset="0.5" />
+ <stop
+ id="stop3885"
+ style="stop-color:#ff0000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4467">
+ <stop
+ id="stop4469"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4471"
+ style="stop-color:#ffffff;stop-opacity:0.24761905"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4454">
+ <stop
+ id="stop4456"
+ style="stop-color:#729fcf;stop-opacity:0.20784314"
+ offset="0" />
+ <stop
+ id="stop4458"
+ style="stop-color:#729fcf;stop-opacity:0.6761905"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3290">
+ <stop
+ id="stop3292"
+ style="stop-color:#fffcde;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3294"
+ style="stop-color:#f6e76a;stop-opacity:1"
+ offset="0.64485979" />
+ <stop
+ id="stop3296"
+ style="stop-color:#ffb738;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="29.288071"
+ cy="15.720984"
+ r="8.9020796"
+ fx="29.158466"
+ fy="15.755712"
+ id="radialGradient2714"
+ xlink:href="#linearGradient3290"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient2509">
+ <stop
+ id="stop2511"
+ style="stop-color:#fffbd5;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2513"
+ style="stop-color:#edd400;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="25.0527"
+ cy="39.5928"
+ r="15.7572"
+ fx="25.0527"
+ fy="39.5928"
+ id="aigrd2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.617019,0,0,0.4614933,9.5717554,18.717642)">
+ <stop
+ id="stop8602"
+ style="stop-color:#777777;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8604"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ </radialGradient>
+ <linearGradient
+ id="linearGradient4565">
+ <stop
+ id="stop4567"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4569"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3824">
+ <stop
+ id="stop3826"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3828"
+ style="stop-color:#c9c9c9;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3800">
+ <stop
+ id="stop3802"
+ style="stop-color:#ffeed6;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8664"
+ style="stop-color:#e49c2f;stop-opacity:1"
+ offset="0.5" />
+ <stop
+ id="stop3804"
+ style="stop-color:#ffc66c;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="24.714285"
+ cy="38.57143"
+ r="19.714285"
+ fx="24.714285"
+ fy="38.57143"
+ id="radialGradient4571"
+ xlink:href="#linearGradient4565"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.333333,0,25.71429)" />
+ <filter
+ x="-0.445977"
+ y="-0.36261681"
+ width="1.8919539"
+ height="1.7252336"
+ color-interpolation-filters="sRGB"
+ id="filter4045">
+ <feGaussianBlur
+ id="feGaussianBlur4047"
+ stdDeviation="1.4186472" />
+ </filter>
+ <radialGradient
+ cx="34.530163"
+ cy="26.808044"
+ r="4.3171849"
+ fx="34.530163"
+ fy="26.808044"
+ id="radialGradient8976"
+ xlink:href="#linearGradient3881"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.2032606,0,-5.4490198)" />
+ <radialGradient
+ cx="17.199268"
+ cy="26.237659"
+ r="5.0018282"
+ fx="17.199268"
+ fy="26.237659"
+ id="radialGradient8978"
+ xlink:href="#linearGradient7947"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1052632,0,-2.7618594)" />
+ <radialGradient
+ cx="34.530163"
+ cy="26.808044"
+ r="4.3171849"
+ fx="34.530163"
+ fy="26.808044"
+ id="radialGradient9986"
+ xlink:href="#linearGradient3881"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.2032606,0,-5.4490198)" />
+ <radialGradient
+ cx="17.199268"
+ cy="26.237659"
+ r="5.0018282"
+ fx="17.199268"
+ fy="26.237659"
+ id="radialGradient9988"
+ xlink:href="#linearGradient7947"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1052632,0,-2.7618594)" />
+ <radialGradient
+ cx="34.530163"
+ cy="26.808044"
+ r="4.3171849"
+ fx="34.530163"
+ fy="26.808044"
+ id="radialGradient9994"
+ xlink:href="#linearGradient3881"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.2032606,0,-5.4490198)" />
+ <radialGradient
+ cx="17.199268"
+ cy="26.237659"
+ r="5.0018282"
+ fx="17.199268"
+ fy="26.237659"
+ id="radialGradient9996"
+ xlink:href="#linearGradient7947"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1052632,0,-2.7618594)" />
+ <radialGradient
+ cx="25.0527"
+ cy="39.5928"
+ r="15.7572"
+ fx="25.0527"
+ fy="39.5928"
+ id="radialGradient10002"
+ xlink:href="#aigrd2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.617019,0,0,0.4614933,9.5717554,18.717642)" />
+ <radialGradient
+ cx="34.530163"
+ cy="26.808044"
+ r="4.3171849"
+ fx="34.530163"
+ fy="26.808044"
+ id="radialGradient10006"
+ xlink:href="#linearGradient3881"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.2032606,0,-5.4490198)" />
+ <radialGradient
+ cx="34.530163"
+ cy="26.808044"
+ r="4.3171849"
+ fx="34.530163"
+ fy="26.808044"
+ id="radialGradient10012"
+ xlink:href="#linearGradient3881"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.2032606,0,-5.4490198)" />
+ <radialGradient
+ cx="17.199268"
+ cy="26.237659"
+ r="5.0018282"
+ fx="17.199268"
+ fy="26.237659"
+ id="radialGradient10014"
+ xlink:href="#linearGradient7947"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1052632,0,-2.7618594)" />
+ <radialGradient
+ cx="17.199268"
+ cy="26.237659"
+ r="5.0018282"
+ fx="17.199268"
+ fy="26.237659"
+ id="radialGradient10018"
+ xlink:href="#linearGradient7947"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1052632,0,-2.7618594)" />
+ <radialGradient
+ cx="34.530163"
+ cy="26.808044"
+ r="4.3171849"
+ fx="34.530163"
+ fy="26.808044"
+ id="radialGradient10020"
+ xlink:href="#linearGradient3881"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.2032606,0,-5.4490198)" />
+ <radialGradient
+ cx="34.530163"
+ cy="26.808044"
+ r="4.3171849"
+ fx="34.530163"
+ fy="26.808044"
+ id="radialGradient10024"
+ xlink:href="#linearGradient3881"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.2032606,0,-5.4490198)" />
+ <radialGradient
+ cx="34.530163"
+ cy="26.808044"
+ r="4.3171849"
+ fx="34.530163"
+ fy="26.808044"
+ id="radialGradient10030"
+ xlink:href="#linearGradient3881"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.2032606,0,-5.4490198)" />
+ <radialGradient
+ cx="34.530163"
+ cy="26.808044"
+ r="4.3171849"
+ fx="34.530163"
+ fy="26.808044"
+ id="radialGradient10032"
+ xlink:href="#linearGradient3881"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.2032606,0,-5.4490198)" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <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></dc:title>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>emoticon</rdf:li>
+ <rdf:li>emote</rdf:li>
+ <rdf:li>smiley</rdf:li>
+ <rdf:li>happy</rdf:li>
+ <rdf:li>:)</rdf:li>
+ <rdf:li>:-)</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://jimmac.musichall.cz</dc:source>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Attribution" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1">
+ <path
+ d="m 44.42857,38.57143 a 19.714285,6.5714288 0 1 1 -39.42857,0 19.714285,6.5714288 0 1 1 39.42857,0 z"
+ id="path4563"
+ style="opacity:0.53164559;color:#000000;fill:url(#radialGradient4571);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.40487173;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
+ transform="matrix(2.083142,0,0,2.083142,-40.097882,-16.49224)"
+ id="path4320"
+ style="color:#000000;fill:url(#radialGradient2714);fill-opacity:1;fill-rule:evenodd;stroke:#9c8c0a;stroke-width:0.48004404;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
+ transform="matrix(1.979782,0,0,1.979782,-36.882074,-14.52746)"
+ id="path4322"
+ style="opacity:0.67721522;color:#000000;fill:none;stroke:#ffffff;stroke-width:0.50510627;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <g
+ transform="translate(3.2410624,0)"
+ id="g9969">
+ <path
+ d="m 13.350483,13.306314 c 2.018281,-3.334552 3.2468,-3.159049 3.2468,-3.159049"
+ id="path8982"
+ style="fill:none;stroke:#883a00;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.8669725" />
+ <path
+ d="m 29.595962,13.306314 c -2.018281,-3.3345521 -3.2468,-3.159049 -3.2468,-3.159049"
+ id="path9953"
+ style="fill:none;stroke:#883a00;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.8669725" />
+ </g>
+ <g
+ transform="translate(-0.108037,0)"
+ id="g10026">
+ <path
+ d="m 38.347347,26.808044 a 3.8171847,4.6946983 0 1 1 -7.634369,0 3.8171847,4.6946983 0 1 1 7.634369,0 z"
+ transform="matrix(2.3892885,0,0,1.9504945,-49.658979,-25.707387)"
+ id="path2910"
+ style="fill:url(#radialGradient10030);fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter4045)" />
+ <path
+ d="m 38.347347,26.808044 a 3.8171847,4.6946983 0 1 1 -7.634369,0 3.8171847,4.6946983 0 1 1 7.634369,0 z"
+ transform="matrix(2.3892885,0,0,1.9504945,-65.701419,-25.707387)"
+ id="path10022"
+ style="fill:url(#radialGradient10032);fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter4045)" />
+ </g>
+ <g
+ transform="matrix(0.9645575,0.2638731,-0.2638731,0.9645575,-3.0470786,-7.3638446)"
+ id="g2739">
+ <path
+ d="m 31.249307,19.144345 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path2741"
+ style="opacity:0.36000001;fill:#ffffff;fill-rule:nonzero;stroke:none" />
+ <g
+ id="g9977">
+ <g
+ transform="matrix(0.8290375,-0.5591929,0.5591929,0.8290375,3.908245,16.599545)"
+ id="g2734">
+ <path
+ d="m 31.249307,19.144345 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path8612"
+ style="opacity:0.36000001;fill:#ffffff;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 31.249307,18.519345 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path8616"
+ style="fill:#000000;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 28.853244,16.315919 c 0,0.732232 -0.426516,1.318019 -0.947814,1.318019 -0.521298,0 -0.995205,-0.585787 -0.995205,-1.318019 0,-0.732233 0.426516,-1.31802 0.947814,-1.31802 0.521298,0 0.947814,0.585787 0.947814,1.31802 l 0.04739,0 z"
+ id="path8610"
+ style="opacity:0.36000001;fill:#ffffff;fill-rule:nonzero;stroke:none" />
+ </g>
+ <path
+ d="m 31.241572,18.491071 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path2743"
+ style="fill:#000000;fill-rule:nonzero;stroke:none" />
+ </g>
+ <path
+ d="m 28.853244,16.315919 c 0,0.732232 -0.426516,1.318019 -0.947814,1.318019 -0.521298,0 -0.995205,-0.585787 -0.995205,-1.318019 0,-0.732233 0.426516,-1.31802 0.947814,-1.31802 0.521298,0 0.947814,0.585787 0.947814,1.31802 l 0.04739,0 z"
+ id="path2745"
+ style="opacity:0.36000001;fill:#ffffff;fill-rule:nonzero;stroke:none" />
+ </g>
+ <g
+ transform="translate(3.9685059e-7,-2.5208263)"
+ id="g9998">
+ <path
+ d="m 31.174384,32.781041 c -1.488975,1.928923 -3.229975,3.319077 -6.32921,3.319077 -3.011063,0 -5.215313,-1.602194 -6.590989,-3.384342 1.25843,1.12823 3.101353,2.424249 6.4601,2.424249 4.013194,0 4.714904,-1.073196 6.460099,-2.358984 z"
+ id="path2659"
+ style="opacity:0.36000001;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 31.174384,32.519982 c -1.488975,1.928922 -3.229975,3.319077 -6.32921,3.319077 -3.011063,0 -5.215313,-1.602194 -6.590989,-3.384342 1.25843,1.12823 3.101353,2.424249 6.4601,2.424249 4.013194,0 4.714904,-1.073196 6.460099,-2.358984 z"
+ id="path8606"
+ style="fill:url(#radialGradient10002);fill-rule:nonzero;stroke:none" />
+ </g>
+ </g>
+</svg>
diff --git a/icons/smilies/cool.svg b/icons/smilies/cool.svg
new file mode 100644
index 0000000..8e52f59
--- /dev/null
+++ b/icons/smilies/cool.svg
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ 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"
+ version="1.1"
+ width="48pt"
+ height="48pt"
+ viewBox="0 0 64 64"
+ id="svg153"
+ xml:space="preserve"
+ style="overflow:visible"><metadata
+ id="metadata20"><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></dc:title></cc:Work></rdf:RDF></metadata><defs
+ id="defs178" /><g
+ id="Layer_1"
+ style="stroke:#000000"><path
+ d="m 31.965,1.854 c -16.826,0 -30.52,13.695 -30.52,30.525 0,16.831 13.694,30.525 30.52,30.525 16.836,0 30.529,-13.694 30.529,-30.525 0,-16.83 -13.693,-30.525 -30.529,-30.525 z"
+ id="path155"
+ style="fill:#997a00;stroke:none" /><radialGradient
+ cx="-224.77"
+ cy="548.66107"
+ r="408.80829"
+ fx="-224.77"
+ fy="548.66107"
+ id="XMLID_1_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1584,0,0,0.1584,48.0479,-72.1631)"><stop
+ id="stop157"
+ style="stop-color:#ffff99;stop-opacity:1"
+ offset="0.0056" /><stop
+ id="stop158"
+ style="stop-color:#fff27c;stop-opacity:1"
+ offset="0.58429998" /><stop
+ id="stop159"
+ style="stop-color:#ffcc00;stop-opacity:1"
+ offset="1" /></radialGradient><path
+ d="m 3.438,32.378 c 0,15.755 12.776,28.528 28.527,28.528 15.76,0 28.533,-12.772 28.533,-28.528 C 60.498,16.624 47.725,3.853 31.965,3.853 16.214,3.854 3.438,16.624 3.438,32.378 z"
+ id="path165"
+ style="fill:url(#XMLID_1_);stroke:none" /><linearGradient
+ x1="-103.5713"
+ y1="484.0488"
+ x2="-103.5713"
+ y2="624.26251"
+ id="XMLID_2_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1584,0,0,0.1584,48.0479,-72.1631)"><stop
+ id="stop167"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.0056" /><stop
+ id="stop168"
+ style="stop-color:#ffff99;stop-opacity:1"
+ offset="1" /></linearGradient><path
+ d="m 8.737,19.147 c 5.491,2.499 13.202,4.054 21.744,4.054 9.832,0 18.566,-2.061 24.076,-5.248 C 50.063,10.126 41.621,4.85 31.965,4.85 21.835,4.85 13.031,10.671 8.737,19.147 z"
+ id="path172"
+ style="fill:url(#XMLID_2_);stroke:none" /><path
+ d="M 64,64 H 0 V 0 h 64 v 64 z"
+ id="path173"
+ style="fill:none;stroke:none" /><path
+ d="m 15.116,38.308 c -0.002,0.123 -0.018,0.237 -0.018,0.362 0,10.875 8.473,15.743 16.871,15.743 8.398,0 16.871,-4.868 16.871,-15.743 0,-0.125 -0.016,-0.239 -0.018,-0.362 H 15.116 z"
+ id="path174"
+ style="opacity:0.5;stroke:none" /><path
+ d="m 16.162,39.308 c 0.345,9.71 8.084,14.105 15.807,14.105 7.723,0 15.462,-4.396 15.807,-14.105 -1.903,0 -29.713,0 -31.614,0 z"
+ id="path175"
+ style="fill:#ffffff;stroke:none" /><path
+ d="M 51.42,18.414 H 32.541 31.159 12.277 c -6.753,0 -10.284,7.982 -10.284,7.982 0,0 1.688,-3.991 6.754,-3.837 4.911,0.153 3.991,3.223 7.676,5.219 3.529,1.996 11.666,2.457 13.047,0 l 2.456,-4.298 2.455,4.298 c 1.383,2.457 9.517,1.996 13.048,0 3.532,-1.996 2.608,-5.219 7.676,-5.219 4.91,-0.153 6.754,3.837 6.754,3.837 0,0 -3.685,-7.982 -10.439,-7.982 z"
+ id="path176"
+ style="stroke:none" /></g></svg> \ No newline at end of file
diff --git a/icons/smilies/devil.svg b/icons/smilies/devil.svg
new file mode 100644
index 0000000..3d901e2
--- /dev/null
+++ b/icons/smilies/devil.svg
@@ -0,0 +1,342 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ 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:xlink="http://www.w3.org/1999/xlink"
+ version="1.1"
+ width="48"
+ height="48"
+ id="svg4376">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient2337">
+ <stop
+ id="stop2339"
+ style="stop-color:#cc0000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2345"
+ style="stop-color:#c84a00;stop-opacity:1"
+ offset="0.27586207" />
+ <stop
+ id="stop2341"
+ style="stop-color:#be0000;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2319">
+ <stop
+ id="stop2321"
+ style="stop-color:#f2d565;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2323"
+ style="stop-color:#f2d565;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2311">
+ <stop
+ id="stop2313"
+ style="stop-color:#ffd93c;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2315"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2291">
+ <stop
+ id="stop2293"
+ style="stop-color:#ffa107;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2295"
+ style="stop-color:#cc0000;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2283">
+ <stop
+ id="stop2285"
+ style="stop-color:#730000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2287"
+ style="stop-color:#ff0202;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2102">
+ <stop
+ id="stop2104"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2106"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3068">
+ <stop
+ id="stop3070"
+ style="stop-color:#cccccc;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3076"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.34579438" />
+ <stop
+ id="stop3078"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.72486681" />
+ <stop
+ id="stop3072"
+ style="stop-color:#cecece;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4565">
+ <stop
+ id="stop4567"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4569"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="24.714285"
+ cy="38.57143"
+ r="19.714285"
+ fx="24.714285"
+ fy="38.57143"
+ id="radialGradient1360"
+ xlink:href="#linearGradient4565"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.333333,0,25.71429)" />
+ <linearGradient
+ x1="14"
+ y1="21.0625"
+ x2="14"
+ y2="34.305527"
+ id="linearGradient2112"
+ xlink:href="#linearGradient2102"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.404523,6.545492,-7.966331)" />
+ <linearGradient
+ x1="14"
+ y1="21.0625"
+ x2="13.5"
+ y2="33.42667"
+ id="linearGradient2116"
+ xlink:href="#linearGradient2102"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.171895,-1.454508,-3.141166)" />
+ <linearGradient
+ x1="14"
+ y1="21.0625"
+ x2="14.5"
+ y2="33.431156"
+ id="linearGradient2120"
+ xlink:href="#linearGradient2102"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.159815,14.54551,-2.815047)" />
+ <linearGradient
+ x1="9.7892637"
+ y1="29.629091"
+ x2="38.390732"
+ y2="29.629091"
+ id="linearGradient2132"
+ xlink:href="#linearGradient3068"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.048897,0,0,1,-5.222439,0)" />
+ <linearGradient
+ x1="39.125"
+ y1="33.375"
+ x2="46.625"
+ y2="16.5"
+ id="linearGradient2289"
+ xlink:href="#linearGradient2283"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.780746,0,0,0.780746,9.900195,9.256071)" />
+ <radialGradient
+ cx="30.561104"
+ cy="15.699058"
+ r="8.9020796"
+ fx="30.561104"
+ fy="15.699058"
+ id="radialGradient2297"
+ xlink:href="#linearGradient2291"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.771216,0,0,0.771216,6.991896,3.591695)" />
+ <linearGradient
+ x1="32.098553"
+ y1="6.1454587"
+ x2="31.775375"
+ y2="8.044363"
+ id="linearGradient2317"
+ xlink:href="#linearGradient2311"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="28.764467"
+ y1="12.221258"
+ x2="38.070023"
+ y2="38.297359"
+ id="linearGradient2325"
+ xlink:href="#linearGradient2319"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="7.2235508"
+ y1="6.0204587"
+ x2="8.0878754"
+ y2="8.044363"
+ id="linearGradient2327"
+ xlink:href="#linearGradient2311"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="30.525612"
+ y1="7.3609705"
+ x2="32.311508"
+ y2="9.4234705"
+ id="linearGradient2343"
+ xlink:href="#linearGradient2337"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="10.400612"
+ y1="7.6109705"
+ x2="8.8115082"
+ y2="9.6734705"
+ id="linearGradient2347"
+ xlink:href="#linearGradient2337"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <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></dc:title>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>emoticon</rdf:li>
+ <rdf:li>emote</rdf:li>
+ <rdf:li>smiley</rdf:li>
+ <rdf:li>laugh</rdf:li>
+ <rdf:li>grin</rdf:li>
+ <rdf:li>&gt;:-D</rdf:li>
+ <rdf:li>&gt;:D</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://jimmac.musichall.cz</dc:source>
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title>Tuomas Kuosmanen</dc:title>
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Attribution" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1">
+ <path
+ d="m 27.435547,37.514338 c 0,0 16.791746,0.672804 19.159721,-6.10459 1.588549,-4.546595 -5.001655,-7.368293 -5.562817,-10.442481 -0.561161,-3.07419 3.318172,-2.293443 3.318172,-2.293443 l 0.634356,1.268713 2.293443,-2.732612 -4.098918,-0.536763 0.780746,1.317509 c 0,0 -3.781741,-0.609958 -3.903731,2.683816 -0.121992,3.293773 6.652724,7.490284 4.310485,10.735261 -2.342239,3.244977 -13.679442,2.244645 -13.679442,2.244645 l -3.252015,3.859945 z"
+ id="path2281"
+ style="color:#000000;fill:url(#linearGradient2289);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 44.42857,38.57143 a 19.714285,6.5714288 0 1 1 -39.42857,0 19.714285,6.5714288 0 1 1 39.42857,0 z"
+ transform="matrix(1.163647,0,0,1,-4.772741,-0.795495)"
+ id="path4563"
+ style="opacity:0.53164559;color:#000000;fill:url(#radialGradient1360);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.40487173;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
+ transform="matrix(2.083142,0,0,2.083142,-44.50164,-16.49224)"
+ id="path4320"
+ style="color:#000000;fill:url(#radialGradient2297);fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:0.48004404;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
+ transform="matrix(1.979782,0,0,1.979782,-41.28577,-14.52746)"
+ id="path4322"
+ style="opacity:0.43181817;color:#000000;fill:none;stroke:url(#linearGradient2325);stroke-width:0.50510627;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="M -0.875,1.875 A 2.9375,2.875 0 0 1 -6.3564497,3.3124999"
+ transform="matrix(-0.965926,-0.258819,0.258819,-0.965926,20.57993,17.20131)"
+ id="path1364"
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ d="M -0.875,1.875 A 2.9375,2.875 0 0 1 -6.3564497,3.3124999"
+ transform="matrix(-0.965926,-0.258819,0.258819,-0.965926,11.82993,17.20131)"
+ id="path2094"
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ d="m 5.2330302,21.044769 c -1.5389814,7.567378 4.6920364,17.167526 14.8511488,17.167526 10.247498,0 16.505528,-8.430424 14.72004,-17.105026 l -29.5711888,-0.0625 z"
+ id="path2096"
+ style="color:#000000;fill:url(#linearGradient2132);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 20.545492,21.528657 0,16.854279"
+ id="path2110"
+ style="opacity:0.18181817;fill:none;stroke:url(#linearGradient2112);stroke-width:0.99999988px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="m 12.545492,21.468635 0,14.062746"
+ id="path2114"
+ style="opacity:0.18181817;fill:none;stroke:url(#linearGradient2116);stroke-width:1.00000024px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="m 28.545492,21.541107 0,13.917802"
+ id="path2118"
+ style="opacity:0.18181817;fill:none;stroke:url(#linearGradient2120);stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="m 5.4864345,20.615864 c -1.7806546,8.821926 5.1590115,18.087809 14.8090585,18.087809 10.003545,0 16.652216,-9.578383 14.371562,-18.150309 l -29.1806205,0.0625 z"
+ id="path2756"
+ style="color:#000000;fill:none;stroke:#a40000;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 34.535409,4.733087 c -0.125668,0.023511 -0.246278,0.06874 -0.356419,0.1336572 l -5.970021,3.274601 c -0.30832,0.1767703 -0.620545,0.4973498 -0.547654,0.8451938 0.437186,2.086317 2.08394,3.513463 4.304051,3.763381 0.334167,0.03762 0.611947,-0.277499 0.765671,-0.576583 l 2.962734,-5.85864 C 35.87989,5.9453698 35.843224,5.5028759 35.598856,5.1692189 35.354488,4.8355619 34.943682,4.6670854 34.535409,4.733087 z"
+ id="path2276"
+ style="color:#000000;fill:url(#linearGradient2343);fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:0.99999946;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 6.9267157,4.858087 c 0.125668,0.023511 0.246278,0.06874 0.356419,0.1336572 l 5.9700183,3.274601 c 0.30832,0.1767703 0.620545,0.4973498 0.547654,0.8451938 -0.437186,2.086317 -2.08394,3.513463 -4.3040474,3.763381 -0.334167,0.03762 -0.6119476,-0.277499 -0.7656719,-0.576583 L 5.7683537,6.439697 C 5.5822347,6.0703698 5.6189007,5.6278759 5.8632687,5.2942189 6.1076367,4.9605619 6.5184427,4.7920854 6.9267157,4.858087 z"
+ id="path2279"
+ style="color:#000000;fill:url(#linearGradient2347);fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:0.99999946;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 34.550143,5.7962029 -5.607281,3.036966 c -0.191029,0.1221924 -0.242098,0.125658 -0.179693,0.3632693 0.280108,1.0665168 1.661495,2.2519038 2.732107,2.5130488 0.225831,0.05509 0.423009,-0.08134 0.52927,-0.288078 l 2.755097,-5.5081922 c 0.128655,-0.2552974 -0.153365,-0.1618881 -0.2295,-0.1170139 z"
+ id="path2299"
+ style="opacity:0.64772728;color:#000000;fill:none;stroke:url(#linearGradient2317);stroke-width:0.99999946;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 6.9035211,5.9729796 5.6072809,3.036966 C 12.701831,9.132138 12.7529,9.1356036 12.690495,9.3732149 12.410387,10.439732 11.029,11.625119 9.9583881,11.886264 c -0.225831,0.05509 -0.423009,-0.08134 -0.52927,-0.288078 L 6.6740211,6.0899935 c -0.128655,-0.2552974 0.153365,-0.1618881 0.2295,-0.1170139 z"
+ id="path2301"
+ style="opacity:0.64772728;color:#000000;fill:none;stroke:url(#linearGradient2327);stroke-width:0.99999946;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+</svg>
diff --git a/icons/smilies/grin.svg b/icons/smilies/grin.svg
new file mode 100644
index 0000000..65e6049
--- /dev/null
+++ b/icons/smilies/grin.svg
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ 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:xlink="http://www.w3.org/1999/xlink"
+ version="1.1"
+ width="48"
+ height="48"
+ id="svg4376">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient2102">
+ <stop
+ id="stop2104"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2106"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3290">
+ <stop
+ id="stop3292"
+ style="stop-color:#fffcde;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3294"
+ style="stop-color:#f6e76a;stop-opacity:1"
+ offset="0.64485979" />
+ <stop
+ id="stop3296"
+ style="stop-color:#ffb738;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3068">
+ <stop
+ id="stop3070"
+ style="stop-color:#cccccc;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3076"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.34579438" />
+ <stop
+ id="stop3078"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.72486681" />
+ <stop
+ id="stop3072"
+ style="stop-color:#cecece;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4565">
+ <stop
+ id="stop4567"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4569"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="24.714285"
+ cy="38.57143"
+ r="19.714285"
+ fx="24.714285"
+ fy="38.57143"
+ id="radialGradient1360"
+ xlink:href="#linearGradient4565"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.333333,0,25.71429)" />
+ <radialGradient
+ cx="29.288071"
+ cy="15.720984"
+ r="8.9020796"
+ fx="29.158466"
+ fy="15.755712"
+ id="radialGradient1362"
+ xlink:href="#linearGradient3290"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="14"
+ y1="21.0625"
+ x2="14"
+ y2="32.875"
+ id="linearGradient2108"
+ xlink:href="#linearGradient2102"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.033654,1.5,-0.627404)" />
+ <linearGradient
+ x1="14"
+ y1="21.0625"
+ x2="14"
+ y2="34.305527"
+ id="linearGradient2112"
+ xlink:href="#linearGradient2102"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.404523,10.5,-7.966331)" />
+ <linearGradient
+ x1="14"
+ y1="21.0625"
+ x2="13.5"
+ y2="33.42667"
+ id="linearGradient2116"
+ xlink:href="#linearGradient2102"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.171895,2.5,-3.141166)" />
+ <linearGradient
+ x1="14"
+ y1="21.0625"
+ x2="14.5"
+ y2="33.431156"
+ id="linearGradient2120"
+ xlink:href="#linearGradient2102"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.159815,18.5,-2.815047)" />
+ <linearGradient
+ x1="14"
+ y1="21.0625"
+ x2="14"
+ y2="35.744175"
+ id="linearGradient2124"
+ xlink:href="#linearGradient2102"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.071351,-22.5,-3.854623)" />
+ <linearGradient
+ x1="9.7892637"
+ y1="29.629091"
+ x2="38.390732"
+ y2="29.629091"
+ id="linearGradient2132"
+ xlink:href="#linearGradient3068"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.048897,0,0,1,-1.267931,0)" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <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></dc:title>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>emoticon</rdf:li>
+ <rdf:li>emote</rdf:li>
+ <rdf:li>smiley</rdf:li>
+ <rdf:li>laughing</rdf:li>
+ <rdf:li>:-D</rdf:li>
+ <rdf:li>:D</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://jimmac.musichall.cz</dc:source>
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title>Tuomas Kuosmanen</dc:title>
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Attribution" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1">
+ <path
+ d="m 44.42857,38.57143 a 19.714285,6.5714288 0 1 1 -39.42857,0 19.714285,6.5714288 0 1 1 39.42857,0 z"
+ id="path4563"
+ style="opacity:0.53164559;color:#000000;fill:url(#radialGradient1360);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.40487173;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
+ transform="matrix(2.083142,0,0,2.083142,-40.54715,-16.49224)"
+ id="path4320"
+ style="color:#000000;fill:url(#radialGradient1362);fill-opacity:1;fill-rule:evenodd;stroke:#9c8c0a;stroke-width:0.48004404;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
+ transform="matrix(1.979782,0,0,1.979782,-37.33128,-14.52746)"
+ id="path4322"
+ style="opacity:0.67721522;color:#000000;fill:none;stroke:#ffffff;stroke-width:0.50510627;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="M -0.875,1.875 A 2.9375,2.875 0 0 1 -6.3564497,3.3124999"
+ transform="matrix(-0.965926,-0.258819,0.258819,-0.965926,24.53442,17.20131)"
+ id="path1364"
+ style="fill:none;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ d="M -0.875,1.875 A 2.9375,2.875 0 0 1 -6.3564497,3.3124999"
+ transform="matrix(-0.965926,-0.258819,0.258819,-0.965926,15.78442,17.20131)"
+ id="path2094"
+ style="fill:none;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ d="m 9.1875355,21.044769 c -1.5389814,7.567378 4.6920355,17.167526 14.8511515,17.167526 10.247498,0 16.505528,-8.430424 14.72004,-17.105026 l -29.5711915,-0.0625 z"
+ id="path2096"
+ style="color:#000000;fill:url(#linearGradient2132);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 24.5,21.528657 0,16.854279"
+ id="path2110"
+ style="opacity:0.18181817;fill:none;stroke:url(#linearGradient2112);stroke-width:0.99999988px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="m 16.5,21.468635 0,14.062746"
+ id="path2114"
+ style="opacity:0.18181817;fill:none;stroke:url(#linearGradient2116);stroke-width:1.00000024px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="m 32.5,21.541107 0,13.917802"
+ id="path2118"
+ style="opacity:0.18181817;fill:none;stroke:url(#linearGradient2120);stroke-width:1.00000048px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="m 9.4409398,20.615864 c -1.7806546,8.821926 5.1590122,18.087809 14.8090612,18.087809 10.003545,0 16.652216,-9.578383 14.371562,-18.150309 l -29.1806232,0.0625 z"
+ id="path2756"
+ style="color:#000000;fill:none;stroke:#8f5902;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+</svg>
diff --git a/icons/smilies/neutral.svg b/icons/smilies/neutral.svg
new file mode 100644
index 0000000..7674fa7
--- /dev/null
+++ b/icons/smilies/neutral.svg
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ 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:xlink="http://www.w3.org/1999/xlink"
+ version="1.1"
+ width="48"
+ height="48"
+ id="svg4376">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient3290">
+ <stop
+ id="stop3292"
+ style="stop-color:#fffcde;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3294"
+ style="stop-color:#f6e76a;stop-opacity:1"
+ offset="0.64485979" />
+ <stop
+ id="stop3296"
+ style="stop-color:#ffb738;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="29.288071"
+ cy="15.720984"
+ r="8.9020796"
+ fx="29.158466"
+ fy="15.755712"
+ id="radialGradient2714"
+ xlink:href="#linearGradient3290"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient2509">
+ <stop
+ id="stop2511"
+ style="stop-color:#fffbd5;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2513"
+ style="stop-color:#edd400;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="25.0527"
+ cy="39.5928"
+ r="15.7572"
+ fx="25.0527"
+ fy="39.5928"
+ id="aigrd2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.25,0,0,1.25,53.52055,-13.37211)">
+ <stop
+ id="stop8602"
+ style="stop-color:#777777;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8604"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ </radialGradient>
+ <linearGradient
+ id="linearGradient4565">
+ <stop
+ id="stop4567"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4569"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3824">
+ <stop
+ id="stop3826"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3828"
+ style="stop-color:#c9c9c9;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3800">
+ <stop
+ id="stop3802"
+ style="stop-color:#ffeed6;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8664"
+ style="stop-color:#e49c2f;stop-opacity:1"
+ offset="0.5" />
+ <stop
+ id="stop3804"
+ style="stop-color:#ffc66c;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="24.714285"
+ cy="38.57143"
+ r="19.714285"
+ fx="24.714285"
+ fy="38.57143"
+ id="radialGradient4571"
+ xlink:href="#linearGradient4565"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.333333,0,25.71429)" />
+ <radialGradient
+ cx="25.0527"
+ cy="39.5928"
+ r="15.7572"
+ fx="25.0527"
+ fy="39.5928"
+ id="radialGradient2211"
+ xlink:href="#aigrd2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.25,0,0,1.25,39.41053,-19.20819)" />
+ <radialGradient
+ cx="-23.452122"
+ cy="38.602852"
+ r="15.7572"
+ fx="-23.452122"
+ fy="38.602852"
+ id="radialGradient2213"
+ xlink:href="#aigrd2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.357899,0,0,0.416667,55.84561,15.2093)" />
+ <radialGradient
+ cx="-23.452122"
+ cy="38.602852"
+ r="15.7572"
+ fx="-23.452122"
+ fy="38.602852"
+ id="radialGradient1342"
+ xlink:href="#aigrd2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.28431,0,0,0.416667,30.45155,18.23307)" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <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></dc:title>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>emoticon</rdf:li>
+ <rdf:li>emote</rdf:li>
+ <rdf:li>face</rdf:li>
+ <rdf:li>plain</rdf:li>
+ <rdf:li>:|</rdf:li>
+ <rdf:li>:-|</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Steven Garrity</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://www.tango-project.org</dc:source>
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title>Based on face-smile by jimmac</dc:title>
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Attribution" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1">
+ <path
+ d="m 44.42857,38.57143 a 19.714285,6.5714288 0 1 1 -39.42857,0 19.714285,6.5714288 0 1 1 39.42857,0 z"
+ id="path4563"
+ style="opacity:0.53164559;color:#000000;fill:url(#radialGradient4571);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.40487173;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
+ transform="matrix(2.083142,0,0,2.083142,-40.54715,-16.49224)"
+ id="path4320"
+ style="color:#000000;fill:url(#radialGradient2714);fill-opacity:1;fill-rule:evenodd;stroke:#9c8c0a;stroke-width:0.48004404;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
+ transform="matrix(1.979782,0,0,1.979782,-37.33128,-14.52746)"
+ id="path4322"
+ style="opacity:0.67721522;color:#000000;fill:none;stroke:#ffffff;stroke-width:0.50510627;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <g
+ transform="matrix(1,0,0,0.74952,0.353553,7.357569)"
+ id="g8666">
+ <path
+ d="m 21.398158,15.321428 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.625,-2 -2.625,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 l 0.125,0 z"
+ id="path8610"
+ style="opacity:0.36000001;fill:#ffffff;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 30.688512,15.321428 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path8612"
+ style="opacity:0.36000001;fill:#ffffff;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 21.398158,14.696428 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path8614"
+ style="fill:#000000;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 30.688512,14.696428 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path8616"
+ style="fill:#000000;fill-rule:nonzero;stroke:none" />
+ </g>
+ <rect
+ width="20"
+ height="1"
+ rx="0.5"
+ ry="0.5"
+ x="14"
+ y="29"
+ id="rect2453"
+ style="color:#000000;fill:url(#radialGradient2213);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <rect
+ width="20"
+ height="1"
+ rx="0.5"
+ ry="0.5"
+ x="14"
+ y="30"
+ id="rect1336"
+ style="opacity:0.36000001;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+</svg>
diff --git a/icons/smilies/sad.svg b/icons/smilies/sad.svg
new file mode 100644
index 0000000..e4d9803
--- /dev/null
+++ b/icons/smilies/sad.svg
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ 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:xlink="http://www.w3.org/1999/xlink"
+ version="1.1"
+ width="48"
+ height="48"
+ id="svg4376">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient3290">
+ <stop
+ id="stop3292"
+ style="stop-color:#fffcde;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3294"
+ style="stop-color:#f6e76a;stop-opacity:1"
+ offset="0.64485979" />
+ <stop
+ id="stop3296"
+ style="stop-color:#ffb738;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="29.288071"
+ cy="15.720984"
+ r="8.9020796"
+ fx="29.158466"
+ fy="15.755712"
+ id="radialGradient2714"
+ xlink:href="#linearGradient3290"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient2509">
+ <stop
+ id="stop2511"
+ style="stop-color:#fffbd5;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2513"
+ style="stop-color:#edd400;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="25.0527"
+ cy="39.5928"
+ r="15.7572"
+ fx="25.0527"
+ fy="39.5928"
+ id="aigrd2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.25,0,0,-1.25,-6.479446,73.66448)">
+ <stop
+ id="stop8602"
+ style="stop-color:#777777;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8604"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ </radialGradient>
+ <linearGradient
+ id="linearGradient4565">
+ <stop
+ id="stop4567"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4569"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3824">
+ <stop
+ id="stop3826"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3828"
+ style="stop-color:#c9c9c9;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3800">
+ <stop
+ id="stop3802"
+ style="stop-color:#ffeed6;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8664"
+ style="stop-color:#e49c2f;stop-opacity:1"
+ offset="0.5" />
+ <stop
+ id="stop3804"
+ style="stop-color:#ffc66c;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="24.714285"
+ cy="38.57143"
+ r="19.714285"
+ fx="24.714285"
+ fy="38.57143"
+ id="radialGradient4571"
+ xlink:href="#linearGradient4565"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.333333,0,25.71429)" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <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></dc:title>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>emoticon</rdf:li>
+ <rdf:li>emote</rdf:li>
+ <rdf:li>smiley</rdf:li>
+ <rdf:li>sad</rdf:li>
+ <rdf:li>:(</rdf:li>
+ <rdf:li>:-(</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-nc-sa/2.0/" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://jimmac.musichall.cz</dc:source>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-nc-sa/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Attribution" />
+ <cc:prohibits
+ rdf:resource="http://web.resource.org/cc/CommercialUse" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1">
+ <path
+ d="m 44.42857,38.57143 a 19.714285,6.5714288 0 1 1 -39.42857,0 19.714285,6.5714288 0 1 1 39.42857,0 z"
+ id="path4563"
+ style="opacity:0.53164559;color:#000000;fill:url(#radialGradient4571);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.40487173;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
+ transform="matrix(2.083142,0,0,2.083142,-40.54715,-16.49224)"
+ id="path4320"
+ style="color:#000000;fill:url(#radialGradient2714);fill-opacity:1;fill-rule:evenodd;stroke:#9c8c0a;stroke-width:0.48004404;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
+ transform="matrix(1.979782,0,0,1.979782,-37.33128,-14.52746)"
+ id="path4322"
+ style="opacity:0.67721522;color:#000000;fill:none;stroke:#ffffff;stroke-width:0.50510627;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 34.014268,32.036842 c -3.723574,-4.164012 -5.562409,-5.631281 -9.551776,-5.631281 -3.901179,0 -6.499672,1.688046 -9.375,5.984835 3.433297,-2.348813 5.309632,-3.649496 9.109835,-3.649496 3.711839,0 5.751077,1.050699 9.816941,3.295942 z"
+ id="path1387"
+ style="opacity:0.36000001;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 34.014268,31.329738 c -3.723574,-4.164012 -5.562409,-5.631281 -9.551776,-5.631281 -3.901179,0 -6.499672,1.688046 -9.375,5.984835 3.433297,-2.348813 5.309632,-3.649496 9.109835,-3.649496 3.711839,0 5.751077,1.050699 9.816941,3.295942 z"
+ id="path8606"
+ style="fill:url(#aigrd2);fill-rule:nonzero;stroke:none" />
+ <g
+ transform="translate(0.353553,2.392706)"
+ id="g8666">
+ <path
+ d="m 21.398158,15.321428 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.625,-2 -2.625,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 l 0.125,0 z"
+ id="path8610"
+ style="opacity:0.36000001;fill:#ffffff;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 30.688512,15.321428 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path8612"
+ style="opacity:0.36000001;fill:#ffffff;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 21.398158,14.696428 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path8614"
+ style="fill:#000000;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 30.688512,14.696428 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path8616"
+ style="fill:#000000;fill-rule:nonzero;stroke:none" />
+ </g>
+ </g>
+</svg>
diff --git a/icons/smilies/shock.svg b/icons/smilies/shock.svg
new file mode 100644
index 0000000..d42e86e
--- /dev/null
+++ b/icons/smilies/shock.svg
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ 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:xlink="http://www.w3.org/1999/xlink"
+ version="1.1"
+ width="48"
+ height="48"
+ id="svg4376">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient3290">
+ <stop
+ id="stop3292"
+ style="stop-color:#fffcde;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3294"
+ style="stop-color:#f6e76a;stop-opacity:1"
+ offset="0.64485979" />
+ <stop
+ id="stop3296"
+ style="stop-color:#ffb738;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="29.288071"
+ cy="15.720984"
+ r="8.9020796"
+ fx="29.158466"
+ fy="15.755712"
+ id="radialGradient2714"
+ xlink:href="#linearGradient3290"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient2509">
+ <stop
+ id="stop2511"
+ style="stop-color:#fffbd5;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2513"
+ style="stop-color:#edd400;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="25.0527"
+ cy="39.5928"
+ r="15.7572"
+ fx="25.0527"
+ fy="39.5928"
+ id="aigrd2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.25,0,0,1.25,-6.214281,-8.428572)">
+ <stop
+ id="stop8602"
+ style="stop-color:#777777;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8604"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ </radialGradient>
+ <linearGradient
+ id="linearGradient4565">
+ <stop
+ id="stop4567"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4569"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3824">
+ <stop
+ id="stop3826"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3828"
+ style="stop-color:#c9c9c9;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3800">
+ <stop
+ id="stop3802"
+ style="stop-color:#ffeed6;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8664"
+ style="stop-color:#e49c2f;stop-opacity:1"
+ offset="0.5" />
+ <stop
+ id="stop3804"
+ style="stop-color:#ffc66c;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="24.714285"
+ cy="38.57143"
+ r="19.714285"
+ fx="24.714285"
+ fy="38.57143"
+ id="radialGradient4571"
+ xlink:href="#linearGradient4565"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.333333,0,25.71429)" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <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></dc:title>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>emoticon</rdf:li>
+ <rdf:li>emote</rdf:li>
+ <rdf:li>smiley</rdf:li>
+ <rdf:li>stare</rdf:li>
+ <rdf:li>shocked</rdf:li>
+ <rdf:li>:O</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://jimmac.musichall.cz</dc:source>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Attribution" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1">
+ <path
+ d="m 44.42857,38.57143 a 19.714285,6.5714288 0 1 1 -39.42857,0 19.714285,6.5714288 0 1 1 39.42857,0 z"
+ id="path4563"
+ style="opacity:0.53164559;color:#000000;fill:url(#radialGradient4571);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.40487173;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
+ transform="matrix(2.083142,0,0,2.083142,-40.54715,-16.49224)"
+ id="path4320"
+ style="color:#000000;fill:url(#radialGradient2714);fill-opacity:1;fill-rule:evenodd;stroke:#9c8c0a;stroke-width:0.48004404;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
+ transform="matrix(1.979782,0,0,1.979782,-37.33128,-14.52746)"
+ id="path4322"
+ style="opacity:0.67721522;color:#000000;fill:none;stroke:#ffffff;stroke-width:0.50510627;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 33.660715,32.696428 c 0,3.5 -4.25,6.25 -9.375,6.25 -5.125,0 -9.375,-2.75 -9.375,-6.25 0,-3.5 4.25,-6.25 9.375,-6.25 5.125,0 9.375,2.75 9.375,6.25 z"
+ id="path8599"
+ style="opacity:0.36000001;fill:#ffffff;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 33.660715,31.696428 c 0,3.5 -4.25,6.25 -9.375,6.25 -5.125,0 -9.375,-2.75 -9.375,-6.25 0,-3.5 4.25,-6.25 9.375,-6.25 5.125,0 9.375,2.75 9.375,6.25 z"
+ id="path8606"
+ style="fill:url(#aigrd2);fill-rule:nonzero;stroke:none" />
+ <g
+ transform="translate(0.265165,0)"
+ id="g8666">
+ <path
+ d="m 21.398158,15.321428 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.625,-2 -2.625,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 l 0.125,0 z"
+ id="path8610"
+ style="opacity:0.36000001;fill:#ffffff;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 30.688512,15.321428 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path8612"
+ style="opacity:0.36000001;fill:#ffffff;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 21.398158,14.696428 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path8614"
+ style="fill:#000000;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 30.688512,14.696428 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path8616"
+ style="fill:#000000;fill-rule:nonzero;stroke:none" />
+ </g>
+ </g>
+</svg>
diff --git a/icons/smilies/smile.svg b/icons/smilies/smile.svg
new file mode 100644
index 0000000..3bda3be
--- /dev/null
+++ b/icons/smilies/smile.svg
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ 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"
+ version="1.1"
+ width="48"
+ height="48"
+ viewBox="0 0 48 48"
+ id="svg2">
+ <metadata
+ id="metadata45">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs4">
+ <radialGradient
+ cx="29.288"
+ cy="15.721"
+ r="8.9020996"
+ fx="29.158001"
+ fy="15.756"
+ id="rad1"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ id="stop7"
+ style="stop-color:#fffcde;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop9"
+ style="stop-color:#f6e76a;stop-opacity:1"
+ offset="0.64486003" />
+ <stop
+ id="stop11"
+ style="stop-color:#ffb738;stop-opacity:1"
+ offset="1" />
+ </radialGradient>
+ <radialGradient
+ cx="25.052999"
+ cy="39.592999"
+ r="15.757"
+ id="rad2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.25,0,0,1.25,-6.47945,-13.3721)">
+ <stop
+ id="stop14"
+ style="stop-color:#777777;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop16"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ </radialGradient>
+ <radialGradient
+ cx="24.714001"
+ cy="38.570999"
+ r="19.714001"
+ id="rad3"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.333333,0,25.7143)">
+ <stop
+ id="stop19"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop21"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </radialGradient>
+ </defs>
+ <path
+ d="m 44.429,38.571 a 19.7145,6.5715667 0 1 1 -39.429,0 19.7145,6.5715667 0 1 1 39.429,0 z"
+ id="path23"
+ style="opacity:0.53164601;fill:url(#rad3)" />
+ <path
+ d="m 39.775,19.009 a 8.6621,8.6621 0 1 1 -17.324,0 8.6621,8.6621 0 1 1 17.324,0 z"
+ transform="matrix(2.08314,0,0,2.08314,-40.5471,-16.4922)"
+ id="path25"
+ style="fill:url(#rad1);stroke:#9c8c0a;stroke-width:0.47999999" />
+ <path
+ d="m 39.775,19.009 a 8.6621,8.6621 0 1 1 -17.324,0 8.6621,8.6621 0 1 1 17.324,0 z"
+ transform="matrix(1.97978,0,0,1.97978,-37.3313,-14.5275)"
+ id="path27"
+ style="opacity:0.67721498;fill:none;stroke:#ffffff;stroke-width:0.50510597" />
+ <path
+ d="m 37.285,24.72 c -3.017,5.225 -6.544,8.99 -12.823,8.99 -6.1,0 -10.565,-4.34 -13.352,-9.167 2.549,3.056 6.283,6.567 13.087,6.567 8.131,0 9.552,-2.907 13.088,-6.39 z"
+ id="path29"
+ style="opacity:0.36000001;fill:#ffffff" />
+ <path
+ d="m 37.285,24.013 c -3.017,5.225 -6.544,8.99 -12.823,8.99 -6.1,0 -10.565,-4.34 -13.352,-9.167 2.549,3.056 6.283,6.566 13.087,6.566 8.131,0 9.552,-2.906 13.088,-6.389 z"
+ id="path31"
+ style="fill:url(#rad2)" />
+ <g
+ transform="translate(0.353553,2.39271)"
+ id="g33">
+ <path
+ d="m 21.398,15.321 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.625,-2 -2.625,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 h 0.125 z"
+ id="path35"
+ style="opacity:0.36000001;fill:#ffffff" />
+ <path
+ d="m 30.689,15.321 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path37"
+ style="opacity:0.36000001;fill:#ffffff" />
+ <path
+ d="m 21.398,14.696 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path39" />
+ <path
+ d="m 30.689,14.696 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path41" />
+ </g>
+</svg>
diff --git a/icons/smilies/smiley-icon.svg b/icons/smilies/smiley-icon.svg
new file mode 100644
index 0000000..f5e36a2
--- /dev/null
+++ b/icons/smilies/smiley-icon.svg
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ 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"
+ version="1.1"
+ width="48"
+ height="48"
+ viewBox="0 0 48 48"
+ id="svg3022">
+ <metadata
+ id="metadata3065">
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs3024">
+ <radialGradient
+ cx="29.288"
+ cy="15.721"
+ r="8.9020996"
+ fx="29.158001"
+ fy="15.756"
+ id="rad1"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ id="stop3027"
+ style="stop-color:#fffcde;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3029"
+ style="stop-color:#f6e76a;stop-opacity:1"
+ offset="0.64486003" />
+ <stop
+ id="stop3031"
+ style="stop-color:#ffb738;stop-opacity:1"
+ offset="1" />
+ </radialGradient>
+ <radialGradient
+ cx="25.052999"
+ cy="39.592999"
+ r="15.757"
+ id="rad2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.25,0,0,1.25,-6.47945,-13.3721)">
+ <stop
+ id="stop3034"
+ style="stop-color:#777777;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3036"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ </radialGradient>
+ <radialGradient
+ cx="24.714001"
+ cy="38.570999"
+ r="19.714001"
+ id="rad3"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.333333,0,25.7143)">
+ <stop
+ id="stop3039"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3041"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </radialGradient>
+ </defs>
+ <path
+ d="m 44.429,38.571 a 19.7145,6.5715667 0 1 1 -39.429,0 19.7145,6.5715667 0 1 1 39.429,0 z"
+ id="path3043"
+ style="opacity:0.53164601;fill:url(#rad3)" />
+ <path
+ d="m 39.775,19.009 a 8.6621,8.6621 0 1 1 -17.324,0 8.6621,8.6621 0 1 1 17.324,0 z"
+ transform="matrix(2.08314,0,0,2.08314,-40.5471,-16.4922)"
+ id="path3045"
+ style="fill:url(#rad1);stroke:#9c8c0a;stroke-width:0.47999999" />
+ <path
+ d="m 39.775,19.009 a 8.6621,8.6621 0 1 1 -17.324,0 8.6621,8.6621 0 1 1 17.324,0 z"
+ transform="matrix(1.97978,0,0,1.97978,-37.3313,-14.5275)"
+ id="path3047"
+ style="opacity:0.67721498;fill:none;stroke:#ffffff;stroke-width:0.50510597" />
+ <path
+ d="m 37.285,24.72 c -3.017,5.225 -6.544,8.99 -12.823,8.99 -6.1,0 -10.565,-4.34 -13.352,-9.167 2.549,3.056 6.283,6.567 13.087,6.567 8.131,0 9.552,-2.907 13.088,-6.39 z"
+ id="path3049"
+ style="opacity:0.36000001;fill:#ffffff" />
+ <path
+ d="m 37.285,24.013 c -3.017,5.225 -6.544,8.99 -12.823,8.99 -6.1,0 -10.565,-4.34 -13.352,-9.167 2.549,3.056 6.283,6.566 13.087,6.566 8.131,0 9.552,-2.906 13.088,-6.389 z"
+ id="path3051"
+ style="fill:url(#rad2)" />
+ <g
+ transform="translate(0.353553,2.39271)"
+ id="g3053">
+ <path
+ d="m 21.398,15.321 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.625,-2 -2.625,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 h 0.125 z"
+ id="path3055"
+ style="opacity:0.36000001;fill:#ffffff" />
+ <path
+ d="m 30.689,15.321 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path3057"
+ style="opacity:0.36000001;fill:#ffffff" />
+ <path
+ d="m 21.398,14.696 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path3059" />
+ <path
+ d="m 30.689,14.696 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path3061" />
+ </g>
+</svg>
diff --git a/icons/smilies/tongue.svg b/icons/smilies/tongue.svg
new file mode 100644
index 0000000..d964568
--- /dev/null
+++ b/icons/smilies/tongue.svg
@@ -0,0 +1,439 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ 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:xlink="http://www.w3.org/1999/xlink"
+ version="1.0"
+ width="48"
+ height="48"
+ id="svg2">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient8212">
+ <stop
+ id="stop8214"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8216"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8198">
+ <stop
+ id="stop8200"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8202"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8177">
+ <stop
+ id="stop8179"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8181"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8143">
+ <stop
+ id="stop8145"
+ style="stop-color:#ef2929;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8147"
+ style="stop-color:#f89898;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8431">
+ <stop
+ id="stop8433"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8435"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7824">
+ <stop
+ id="stop7826"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop7828"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7810">
+ <stop
+ id="stop7812"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop7814"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7802">
+ <stop
+ id="stop7804"
+ style="stop-color:#2e3436;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop7806"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7776">
+ <stop
+ id="stop7778"
+ style="stop-color:#2e3436;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop7780"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3752">
+ <stop
+ id="stop3754"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3756"
+ style="stop-color:#fce94f;stop-opacity:1"
+ offset="0.80000001" />
+ <stop
+ id="stop3758"
+ style="stop-color:#edd400;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3734">
+ <stop
+ id="stop3736"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3738"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3712">
+ <stop
+ id="stop3714"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3716"
+ style="stop-color:#ffffff;stop-opacity:0.50570345"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3704">
+ <stop
+ id="stop3706"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3708"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="12.046875"
+ cy="10.046875"
+ r="9.546875"
+ fx="12.046875"
+ fy="10.046875"
+ id="radialGradient7130"
+ xlink:href="#linearGradient3734"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ cx="9.3747082"
+ cy="7.8025141"
+ r="10.049342"
+ fx="9.3747082"
+ fy="7.8025141"
+ id="radialGradient7132"
+ xlink:href="#linearGradient3752"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.200799,0,0,1.200799,-1.921023,-1.565398)" />
+ <linearGradient
+ x1="18.825819"
+ y1="-140.43388"
+ x2="19.23638"
+ y2="-134.38734"
+ id="linearGradient7134"
+ xlink:href="#linearGradient8431"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ cx="5.3851099"
+ cy="3.2659137"
+ r="10.108456"
+ fx="5.3851099"
+ fy="3.2659137"
+ id="radialGradient7136"
+ xlink:href="#linearGradient3712"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.242401,0,0,1.242401,-1.281477,-0.839422)" />
+ <radialGradient
+ cx="29.46875"
+ cy="-131.5"
+ r="3.21875"
+ fx="29.46875"
+ fy="-131.5"
+ id="radialGradient7140"
+ xlink:href="#linearGradient7824"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.3203883,0,42.131068)" />
+ <radialGradient
+ cx="29.46875"
+ cy="-131.5"
+ r="3.21875"
+ fx="29.46875"
+ fy="-131.5"
+ id="radialGradient7142"
+ xlink:href="#linearGradient7824"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.3203883,0,42.131068)" />
+ <radialGradient
+ cx="28.221428"
+ cy="-133.18883"
+ r="3.21875"
+ fx="28.221428"
+ fy="-133.18883"
+ id="radialGradient7144"
+ xlink:href="#linearGradient7802"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.6369211,0,0,1.625836,-18.114998,82.98933)" />
+ <radialGradient
+ cx="28.221428"
+ cy="-133.18883"
+ r="3.21875"
+ fx="28.221428"
+ fy="-133.18883"
+ id="radialGradient7146"
+ xlink:href="#linearGradient7776"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.6369211,0,0,1.625836,-18.114998,82.98933)" />
+ <linearGradient
+ x1="28.621698"
+ y1="-135.65616"
+ x2="30.315804"
+ y2="-127.34384"
+ id="linearGradient7148"
+ xlink:href="#linearGradient7810"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="28.621698"
+ y1="-135.65616"
+ x2="30.315804"
+ y2="-127.34384"
+ id="linearGradient7150"
+ xlink:href="#linearGradient7810"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ cx="-79.065781"
+ cy="66.5"
+ r="11.89852"
+ fx="-79.065781"
+ fy="66.5"
+ id="radialGradient8256"
+ xlink:href="#linearGradient3704"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0412246,0,0,0.779118,103.17111,-14.3113)" />
+ <linearGradient
+ x1="27.34375"
+ y1="39.71875"
+ x2="27.34375"
+ y2="41.34375"
+ id="linearGradient8264"
+ xlink:href="#linearGradient8198"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8049361,0,0,1,2.7790665,1)" />
+ <linearGradient
+ x1="28.499998"
+ y1="34.96487"
+ x2="28.499998"
+ y2="31.330606"
+ id="linearGradient8267"
+ xlink:href="#linearGradient8143"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1328125,0,1.9492187)" />
+ <radialGradient
+ cx="30.340466"
+ cy="33.720654"
+ r="2.381259"
+ fx="30.340466"
+ fy="33.720654"
+ id="radialGradient8269"
+ xlink:href="#linearGradient8177"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2146392,-0.372298,0.5509178,2.351935,-25.96754,-29.412972)" />
+ <linearGradient
+ x1="29.930838"
+ y1="41.263481"
+ x2="29.848192"
+ y2="36.501301"
+ id="linearGradient8271"
+ xlink:href="#linearGradient8212"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <metadata
+ id="metadata7">
+ <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></dc:title>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Lapo Calamandrei</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>emoticon</rdf:li>
+ <rdf:li>emote</rdf:li>
+ <rdf:li>smiley</rdf:li>
+ <rdf:li>smile</rdf:li>
+ <rdf:li>raspberry</rdf:li>
+ <rdf:li>tougue</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ style="display:inline">
+ <g
+ transform="translate(-106,-6)"
+ id="g7909" />
+ <path
+ d="m 21.59375,10.046875 a 9.546875,9.546875 0 1 1 -19.09375,0 9.546875,9.546875 0 1 1 19.09375,0 z"
+ transform="matrix(2.4091653,0,0,1.2045827,-6.022913,23.39771)"
+ id="path7070"
+ style="opacity:0.4;fill:url(#radialGradient7130);fill-opacity:1;stroke:none;display:inline" />
+ <path
+ d="m 21.59375,10.046875 a 9.546875,9.546875 0 1 1 -19.09375,0 9.546875,9.546875 0 1 1 19.09375,0 z"
+ transform="matrix(2.1473,0,0,2.1473,-2.8687,1.4268)"
+ id="path7072"
+ style="fill:url(#radialGradient7132);fill-opacity:1;stroke:#c4a000;stroke-width:0.46570092;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" />
+ <path
+ d="m 25.6875,-135.96875 a 6.125,5.96875 0 1 1 -12.25,0 6.125,5.96875 0 1 1 12.25,0 z"
+ transform="matrix(2.2078305,-0.5915864,0.4553048,1.6992208,39.743051,258.37364)"
+ id="path7074"
+ style="fill:url(#linearGradient7134);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
+ <path
+ d="m 21.59375,10.046875 a 9.546875,9.546875 0 1 1 -19.09375,0 9.546875,9.546875 0 1 1 19.09375,0 z"
+ transform="matrix(2.042553,0,0,2.042553,-1.6064,2.4787)"
+ id="path7076"
+ style="fill:none;stroke:url(#radialGradient7136);stroke-width:0.48958337;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" />
+ <g
+ transform="translate(59,49)"
+ id="g7082"
+ style="display:inline">
+ <path
+ d="m 32.6875,-131.5 a 3.21875,4.25 0 1 1 -6.4375,0 3.21875,4.25 0 1 1 6.4375,0 z"
+ transform="matrix(0.9320389,0,0,0.9999999,-58.96602,101.24999)"
+ id="path7084"
+ style="opacity:0.7;fill:url(#radialGradient7140);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
+ <path
+ d="m 32.6875,-131.5 a 3.21875,4.25 0 1 1 -6.4375,0 3.21875,4.25 0 1 1 6.4375,0 z"
+ transform="matrix(0.9320389,0,0,0.9999999,-67.96602,101.24999)"
+ id="path7086"
+ style="opacity:0.7;fill:url(#radialGradient7142);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
+ <path
+ d="m 32.6875,-131.5 a 3.21875,4.25 0 1 1 -6.4375,0 3.21875,4.25 0 1 1 6.4375,0 z"
+ transform="matrix(0.7766992,0,0,0.9411763,-63.388354,92.76468)"
+ id="path7088"
+ style="fill:url(#radialGradient7144);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
+ <path
+ d="m 32.6875,-131.5 a 3.21875,4.25 0 1 1 -6.4375,0 3.21875,4.25 0 1 1 6.4375,0 z"
+ transform="matrix(0.7766992,0,0,0.9411763,-54.388354,92.76468)"
+ id="path7090"
+ style="fill:url(#radialGradient7146);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
+ <path
+ d="m 32.6875,-131.5 a 3.21875,4.25 0 1 1 -6.4375,0 3.21875,4.25 0 1 1 6.4375,0 z"
+ transform="matrix(0.2408327,0.06094423,-0.04908332,0.4390867,-54.729843,23.770512)"
+ id="path7092"
+ style="opacity:0.5;fill:url(#linearGradient7148);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
+ <path
+ d="m 32.6875,-131.5 a 3.21875,4.25 0 1 1 -6.4375,0 3.21875,4.25 0 1 1 6.4375,0 z"
+ transform="matrix(0.2408327,0.06094423,-0.04908332,0.4390867,-45.729843,23.770512)"
+ id="path7094"
+ style="opacity:0.5;fill:url(#linearGradient7150);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
+ </g>
+ <path
+ d="m 15.5,37.5 14.993538,0"
+ id="path7080"
+ style="opacity:0.8;fill:none;stroke:url(#radialGradient8256);stroke-width:0.99999958px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ <path
+ d="m 15.5,36.50002 15.00003,0"
+ id="path7078"
+ style="fill:none;stroke:#c4a000;stroke-width:1.00000012px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ <g
+ transform="translate(1,0)"
+ id="g8258">
+ <path
+ d="m 22.5,36 0,1 c 0.05913,0 0.291168,0.08467 0.553394,0.3125 0.262225,0.227832 0.570079,0.597807 0.855244,1.09375 0.570331,0.991887 1.081633,2.513503 1.081633,4.71875 0,0.537176 0.07692,1.05644 0.201234,1.53125 2.202474,-0.505924 4.245708,-1.540564 6.062175,-3 -0.23203,-1.712678 -0.838772,-3.03056 -1.509255,-3.9375 C 29.318403,37.142486 28.883078,36.719265 28.486712,36.4375 28.090347,36.155735 27.750435,36 27.455388,36 L 22.5,36 z"
+ id="path8189"
+ style="opacity:0.10150374;fill:url(#linearGradient8264);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
+ <path
+ d="m 22.499999,36.5 c 1.000001,0 4.000001,1.699219 4,5.664062 0,1.882736 1.783999,3.398438 4,3.398438 2.216002,0 3.999999,-1.515704 4,-3.398438 0,-3.964843 -3.999999,-5.664062 -5,-5.664062 l -7,0 z"
+ id="rect7166"
+ style="fill:url(#linearGradient8267);fill-opacity:1;fill-rule:evenodd;stroke:#cc0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.69999992" />
+ <path
+ d="m 26.5,37 c -0.900001,0 1.500001,10e-7 2,0 0.5,0 2.5625,2.159592 2.5625,5.989195 1e-6,1.094173 -0.437499,1.165667 -0.4375,0.07149 C 30.625,39.231086 27.500001,37.000001 26.5,37 z"
+ id="path8152"
+ style="opacity:0.17669175;fill:url(#radialGradient8269);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
+ <path
+ d="m 27.8125,36.5 c 0.917241,1.08471 1.687501,2.606541 1.6875,4.65625 1e-6,1.251032 1.242336,2.40625 3,2.40625 1.757663,0 2.999999,-1.15522 3,-2.40625 0,-1.646133 -0.789624,-2.747193 -1.75,-3.53125 C 33.269812,37.232971 32.746326,36.935537 32.3125,36.75 31.878674,36.564463 31.4681,36.5 31.5,36.5 l -3.6875,0 z"
+ transform="translate(-2,1)"
+ id="path8208"
+ style="opacity:0.35;fill:none;stroke:url(#linearGradient8271);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.69999992;display:inline" />
+ </g>
+ </g>
+</svg>
diff --git a/icons/smilies/wink.svg b/icons/smilies/wink.svg
new file mode 100644
index 0000000..1c91c94
--- /dev/null
+++ b/icons/smilies/wink.svg
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ 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:xlink="http://www.w3.org/1999/xlink"
+ version="1.1"
+ width="48"
+ height="48"
+ id="svg4376">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient3290">
+ <stop
+ id="stop3292"
+ style="stop-color:#fffcde;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3294"
+ style="stop-color:#f6e76a;stop-opacity:1"
+ offset="0.64485979" />
+ <stop
+ id="stop3296"
+ style="stop-color:#ffb738;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="29.288071"
+ cy="15.720984"
+ r="8.9020796"
+ fx="29.158466"
+ fy="15.755712"
+ id="radialGradient2714"
+ xlink:href="#linearGradient3290"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient2509">
+ <stop
+ id="stop2511"
+ style="stop-color:#fffbd5;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop2513"
+ style="stop-color:#edd400;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="25.0527"
+ cy="39.5928"
+ r="15.7572"
+ fx="25.0527"
+ fy="39.5928"
+ id="aigrd2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.25,0,0,1.25,-6.479446,-13.37211)">
+ <stop
+ id="stop8602"
+ style="stop-color:#777777;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8604"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ </radialGradient>
+ <linearGradient
+ id="linearGradient4565">
+ <stop
+ id="stop4567"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4569"
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3824">
+ <stop
+ id="stop3826"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop3828"
+ style="stop-color:#c9c9c9;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3800">
+ <stop
+ id="stop3802"
+ style="stop-color:#ffeed6;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8664"
+ style="stop-color:#e49c2f;stop-opacity:1"
+ offset="0.5" />
+ <stop
+ id="stop3804"
+ style="stop-color:#ffc66c;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="24.714285"
+ cy="38.57143"
+ r="19.714285"
+ fx="24.714285"
+ fy="38.57143"
+ id="radialGradient4571"
+ xlink:href="#linearGradient4565"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.333333,0,25.71429)" />
+ <radialGradient
+ cx="25.0527"
+ cy="39.5928"
+ r="15.7572"
+ fx="25.0527"
+ fy="39.5928"
+ id="radialGradient3279"
+ xlink:href="#aigrd2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.25,0,0,1.25,-6.479446,-13.37211)" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <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></dc:title>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>emoticon</rdf:li>
+ <rdf:li>emote</rdf:li>
+ <rdf:li>winkie</rdf:li>
+ <rdf:li>wink</rdf:li>
+ <rdf:li>;)</rdf:li>
+ <rdf:li>;-)</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://jimmac.musichall.cz</dc:source>
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title>Corey Woodworth</dc:title>
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Attribution" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1">
+ <path
+ d="m 44.42857,38.57143 a 19.714285,6.5714288 0 1 1 -39.42857,0 19.714285,6.5714288 0 1 1 39.42857,0 z"
+ id="path4563"
+ style="opacity:0.53164559;color:#000000;fill:url(#radialGradient4571);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.40487173;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
+ transform="matrix(2.083142,0,0,2.083142,-40.54715,-16.49224)"
+ id="path4320"
+ style="color:#000000;fill:url(#radialGradient2714);fill-opacity:1;fill-rule:evenodd;stroke:#9c8c0a;stroke-width:0.48004404;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 39.774755,19.008621 a 8.6620579,8.6620579 0 1 1 -17.324115,0 8.6620579,8.6620579 0 1 1 17.324115,0 z"
+ transform="matrix(1.979782,0,0,1.979782,-37.33128,-14.52746)"
+ id="path4322"
+ style="opacity:0.67721522;color:#000000;fill:none;stroke:#ffffff;stroke-width:0.50510627;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <g
+ transform="matrix(0.969372,0.245598,-0.245598,0.969372,6.456937,-5.230004)"
+ id="g3267">
+ <path
+ d="m 37.284637,24.719966 c -3.016467,5.224673 -6.543503,8.990039 -12.822145,8.990039 -6.100017,0 -10.565537,-4.339697 -13.352476,-9.166816 2.549413,3.05592 6.282932,6.566312 13.087311,6.566312 8.130204,0 9.551776,-2.906855 13.08731,-6.389535 z"
+ id="path2659"
+ style="opacity:0.36000001;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible" />
+ <path
+ d="m 37.284637,24.012862 c -3.016467,5.224673 -6.543503,8.990039 -12.822145,8.990039 -6.100017,0 -10.565537,-4.339697 -13.352476,-9.166816 2.549413,3.05592 6.282932,6.566312 13.087311,6.566312 8.130204,0 9.551776,-2.906855 13.08731,-6.389535 z"
+ id="path8606"
+ style="fill:url(#radialGradient3279);fill-rule:nonzero;stroke:none" />
+ </g>
+ <path
+ d="m 31.042065,17.714134 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path8612"
+ style="opacity:0.36000001;fill:#ffffff;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 31.042065,17.089134 c 0,2.5 -1.125,4.5 -2.5,4.5 -1.375,0 -2.5,-2 -2.5,-4.5 0,-2.5 1.125,-4.5 2.5,-4.5 1.375,0 2.5,2 2.5,4.5 z"
+ id="path8616"
+ style="fill:#000000;fill-rule:nonzero;stroke:none" />
+ <path
+ d="m 15.924926,17.535184 c 1.361504,-3.344457 4.84345,-3.432276 6.068764,-0.114834 -2.161069,-1.71313 -4.148092,-1.219733 -6.068764,0.114834 z"
+ id="path1336"
+ style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.0000006;marker:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+</svg>
diff --git a/pippy_app.py b/pippy_app.py
index 3c0227e..d37e84b 100644
--- a/pippy_app.py
+++ b/pippy_app.py
@@ -16,20 +16,30 @@
from gettext import gettext as _
import hippo
+import cairo
import gtk
import pango
import logging
import re
import cjson
import time
+import os
+import sugar
+import glob
+import rsvg
+
+
+
from datetime import datetime
from activity import ViewSourceActivity
-
from sugar.activity.activity import Activity, ActivityToolbox, SCOPE_PRIVATE
+from sugar.graphics import style
+from sugar.activity.activity import get_activity_root
from sugar.graphics.alert import NotifyAlert
from sugar.graphics.style import (Color, COLOR_BLACK, COLOR_WHITE,
COLOR_BUTTON_GREY, FONT_BOLD, FONT_NORMAL)
from sugar.graphics.roundbox import CanvasRoundBox
+from sugar.graphics import style
from sugar.graphics.xocolor import XoColor
from sugar.graphics.palette import Palette, CanvasInvoker
from sugar.graphics.menuitem import MenuItem
@@ -37,7 +47,6 @@ from sugar.util import timestamp_to_elapsed_string
from sugar.graphics.toolbarbox import ToolbarBox
from sugar.activity.widgets import *
from sugar.presence import presenceservice
-
from telepathy.client import Connection, Channel
from telepathy.interfaces import (
CHANNEL_INTERFACE, CHANNEL_INTERFACE_GROUP, CHANNEL_TYPE_TEXT,
@@ -52,6 +61,149 @@ URL_REGEXP = re.compile('((http|ftp)s?://)?'
'(([-a-zA-Z0-9]+[.])+[-a-zA-Z0-9]{2,}|([0-9]{1,3}[.]){3}[0-9]{1,3})'
'(:[1-9][0-9]{0,4})?(/[-a-zA-Z0-9/%~@&_+=;:,.?#]*[a-zA-Z0-9/])?')
+TEMP_SVG_PATH="icons/smilies"
+ICON_SVG_PATH=os.path.join(get_activity_root(),'data', 'icons','smilies')
+
+## For adding a new smiley add an entry in this dictionary and place the corresponding smiley file in data/icons
+FILE_NAMES={
+ "O)" : "angel.png" ,
+ "O-)" : "angel.png" ,
+ "x(" : "angry.png",
+ "x-(" : "angry.png",
+ "B)" : "cool.png",
+ "B-)" : "cool.png",
+ ">:>" : "devil.png",
+ ":D" : "grin.png",
+ ":-D" : "grin.png",
+ ":|" : "neutral.png",
+ ":-|" : "neutral.png",
+ ":-(" : "sad.png",
+ ":(" : "sad.png" ,
+ ":O" : "shock.png",
+ ":-O" : "shock.png",
+ ":$" : "blush.png",
+ ":-$" : "blush.png",
+ ":)" : "smile.png",
+ ":-)" : "smile.png",
+ ":P" : "tongue.png",
+ ":-P" : "tongue.png",
+ ";)" : "wink.png",
+ ";-)" : "wink.png",
+
+
+ }
+
+def find_key(dic, val):
+ return [k for k, v in dic.iteritems() if v == val][0]
+
+### Checks if a text is smiley by looking into FILE_NAMES keys
+def is_smiley(text):
+ MYKEYS=FILE_NAMES.keys()
+ for smiley in MYKEYS:
+ if smiley==text:
+ return True
+ return False
+
+def process_text_for_continuous_smileys(text):
+ keys=FILE_NAMES.keys()
+ for key in keys:
+ text=text.replace(key," "+key+" ")
+ return text
+###Converts svg into png
+def from_svg_at_size(filename=None, width=None, height=None, handle=None,
+ keep_ratio=True):
+ """Scale and load SVG into pixbuf"""
+
+ if not handle:
+ handle = rsvg.Handle(filename)
+
+ dimensions = handle.get_dimension_data()
+ icon_width = dimensions[0]
+ icon_height = dimensions[1]
+ if icon_width != width or icon_height != height:
+ ratio_width = float(width) / icon_width
+ ratio_height = float(height) / icon_height
+
+ if keep_ratio:
+ ratio = min(ratio_width, ratio_height)
+ if ratio_width != ratio:
+ ratio_width = ratio
+ width = int(icon_width * ratio)
+ elif ratio_height != ratio:
+ ratio_height = ratio
+ height = int(icon_height * ratio)
+ else:
+ ratio_width = 1
+ ratio_height = 1
+
+ surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)
+ context = cairo.Context(surface)
+ context.scale(ratio_width, ratio_height)
+ handle.render_cairo(context)
+
+ loader = gtk.gdk.pixbuf_loader_new_with_mime_type('image/png')
+ surface.write_to_png(loader)
+ loader.close()
+
+ return loader.get_pixbuf()
+
+### Invoked on first run to create pngs from svgs and store in ICON_SVG_PATH
+def create_pngs():
+ os.makedirs(ICON_SVG_PATH)
+ for infile in glob.glob( os.path.join(TEMP_SVG_PATH, '*.svg') ):
+ pixbuf=from_svg_at_size(infile,style.MEDIUM_ICON_SIZE,style.MEDIUM_ICON_SIZE,None,True)
+ pixbuf.save(os.path.join(ICON_SVG_PATH,os.path.basename(os.path.splitext(infile)[0])+".png"),'png')
+
+##returns an Image for a given smily
+def get_smiley(text):
+
+ if text not in FILE_NAMES:
+ raise KeyError
+ else:
+ file_name=os.path.join(ICON_SVG_PATH , FILE_NAMES[text])
+ surface = cairo.ImageSurface.create_from_png(file_name)
+ image = hippo.CanvasImage(image=surface,
+ border=0,
+ border_color=style.COLOR_BUTTON_GREY.get_int(),
+ xalign=hippo.ALIGNMENT_CENTER,
+ yalign=hippo.ALIGNMENT_CENTER,
+ scale_width=35,
+ scale_height=35)
+ return image
+
+##returns table of icons for the Smiley palette
+def get_pallete_smiley_table(self):
+ MYVALUES=list(set(FILE_NAMES.values()))
+ smiley_count= len(MYVALUES)
+ row_count=smiley_count/4;
+ last_row_smiley_count=smiley_count%4
+ table=gtk.Table(rows=row_count,columns=4)
+ count=0
+ for i in range(4):
+ for j in range(row_count):
+ count=count+1
+ image=gtk.image_new_from_file(os.path.join(ICON_SVG_PATH,MYVALUES[count-1]))
+ but=ToolButton(icon_widget=image)
+ but.connect('clicked',self._add_smiley_to_entry,MYVALUES[count-1])
+ #but.set_icon()
+ table.attach(but,i,i+1,j,j+1)
+ but.show()
+
+ ### add the remaining ICONS to the the last row
+ print last_row_smiley_count
+ for i in range(last_row_smiley_count):
+ count=count+1
+ image=gtk.image_new_from_file(os.path.join(ICON_SVG_PATH,MYVALUES[count-1]))
+ but=ToolButton(icon_widget=image)
+ but.connect('clicked',self._add_smiley_to_entry,MYVALUES[count-1])
+ table.attach(but,i,i+1,row_count,row_count+1)
+ but.show()
+
+
+ return table
+
+
+
class Chat(ViewSourceActivity):
def __init__(self, handle):
super(Chat, self).__init__(handle)
@@ -65,7 +217,35 @@ class Chat(ViewSourceActivity):
self.set_toolbar_box(toolbar_box)
toolbar_box.toolbar.insert(ActivityButton(self), -1)
toolbar_box.toolbar.insert(TitleEntry(self), -1)
+
+ ###check for existence of icons directory
+ if(not os.path.isdir(ICON_SVG_PATH)):
+ create_pngs()
+
+
+ smiley_icon_image=gtk.image_new_from_file(os.path.join(ICON_SVG_PATH,'smiley-icon')+".png")
+ self.smiley = RadioMenuButton(icon_widget=smiley_icon_image)
+
+
+ self.smiley.set_tooltip(_('Insert Smiley'))
+
+
+
+
+
+ toolbar_box.toolbar.insert(self.smiley, -1)
+ self.smiley.show()
+ self.smiley_palette=Palette("Choose Smiley")
+ self.smiley.palette=self.smiley_palette
+
+
+ table=get_pallete_smiley_table(self)
+
+ table.show_all()
+ self.smiley_palette.set_content(table)
+ self.smiley.set_palette(self.smiley_palette)
+
share_button = ShareButton(self)
toolbar_box.toolbar.insert(share_button, -1)
toolbar_box.toolbar.insert(KeepButton(self), -1)
@@ -109,6 +289,15 @@ class Chat(ViewSourceActivity):
self._alert(_('Off-line'), _('Share, or invite someone.'))
self.connect('shared', self._shared_cb)
+
+
+ def _add_smiley_to_entry(self,activity,text):
+
+ self.entry.set_text(self.entry.get_text()+ find_key(FILE_NAMES,text))
+ self.smiley_palette.popdown(True)
+
+
+
def _shared_cb(self, activity):
logger.debug('Chat was shared')
self._setup()
@@ -287,6 +476,8 @@ class Chat(ViewSourceActivity):
def _link_activated_cb(self, link):
url = url_check_protocol(link.props.text)
self._show_via_journal(url)
+
+
def add_text(self, buddy, text, status_message=False):
"""Display text on screen, with name and colors.
@@ -418,14 +609,24 @@ class Chat(ViewSourceActivity):
text = text[match.end():]
match = URL_REGEXP.search(text)
if text:
- message = hippo.CanvasText(
- text=text,
+ text=process_text_for_continuous_smileys(text)
+ line=text
+
+ words=line.split(' ')
+ for word in words:
+ if is_smiley(word):
+
+ image=get_smiley(word)
+ msg_hbox.append(image)
+
+ else:
+ message = hippo.CanvasText(text=word+" ", #change here for changing the typed text
size_mode=hippo.CANVAS_SIZE_WRAP_WORD,
color=text_color,
font_desc=FONT_NORMAL.get_pango_desc(),
xalign=hippo.ALIGNMENT_START)
- msg_hbox.append(message)
-
+ msg_hbox.append(message)
+
# Order of boxes for RTL languages:
if lang_rtl:
msg_hbox.reverse()
@@ -436,7 +637,7 @@ class Chat(ViewSourceActivity):
box = hippo.CanvasBox(padding=2)
box.append(rb)
self.conversation.append(box)
-
+
def add_separator(self, timestamp):
"""Add whitespace and timestamp between chat sessions."""
box = hippo.CanvasBox(padding=2)