1 Patch to current bazar version (r 151)
3 === added directory '.bzr-builddeb'
4 === added file '.bzr-builddeb/default.conf'
5 --- .bzr-builddeb/default.conf 1970-01-01 00:00:00 +0000
6 +++ .bzr-builddeb/default.conf 2016-01-19 12:14:18 +0000
11 === modified file 'Makefile.am'
12 --- Makefile.am 2011-05-19 13:32:42 +0000
13 +++ Makefile.am 2016-01-19 12:14:18 +0000
21 ACLOCAL_AMFLAGS = -I build
24 === modified file 'configure.ac'
25 --- configure.ac 2012-03-29 14:25:14 +0000
26 +++ configure.ac 2016-01-19 12:14:18 +0000
30 AC_SUBST(glib_req, 2.26.0)
31 -AC_SUBST(gtk_req, 3.3.14)
32 +AC_SUBST(gtk_req, 3.5.2)
33 AC_SUBST(cairo_req, 1.10)
35 PKG_CHECK_MODULES(DEPS, glib-2.0 >= $glib_req gtk+-3.0 >= $gtk_req cairo >= $cairo_req)
45 === added directory 'debian'
46 === added file 'debian/changelog'
47 --- debian/changelog 1970-01-01 00:00:00 +0000
48 +++ debian/changelog 2016-01-19 12:14:18 +0000
50 +unico (1.0.3+14.04.20140109-0ubuntu1) trusty; urgency=low
52 + [ Lars Uebernickel ]
53 + * Use outline attributes for focus to avoid custom attributes Custom
54 + attributes are deprecated, slow, and are causing problems with gtk
55 + 3.10. Adwaita is using the same hack for some time now [1]. This
56 + patch is a bit more hacky in that it hard codes the a fill color.
57 + [1] https://git.gnome.org/browse/gnome-themes-
58 + standard/commit/?id=6e641cf46cc70ce770482b3fc331b1fa3cd7af2b. (LP:
61 + [ Ubuntu daily release ]
62 + * Automatic snapshot from revision 151
64 + -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 09 Jan 2014 07:10:33 +0000
66 +unico (1.0.3daily13.05.30-0ubuntu1) saucy; urgency=low
68 + * Automatic snapshot from revision 149
70 + -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 30 May 2013 00:24:13 +0000
72 +unico (1.0.3daily13.05.29ubuntu.unity.next-0ubuntu1) saucy; urgency=low
74 + * Automatic snapshot from revision 148 (ubuntu-unity/next)
76 + -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 29 May 2013 16:55:39 +0000
78 +unico (1.0.3daily13.05.20ubuntu.unity.next-0ubuntu1) raring; urgency=low
80 + [ Ćukasz 'sil2100' Zemczak ]
81 + * debian/control, debian/rules:
82 + - Modifications related to compliance with our packaging standards
83 + * Remove debian/watch
85 + [ Ubuntu daily release ]
86 + * Automatic snapshot from revision 147 (ubuntu-unity/next)
88 + -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 20 May 2013 00:01:18 +0000
90 +unico (1.0.3daily12.12.12-0ubuntu1) raring; urgency=low
92 + [ Mathieu Trudel-Lapierre ]
94 + - Update to use trailing commas at the end of lists to make it easier to
95 + add items to Build-Depends and Depends.
96 + - Reorganize Build-Depends for clarity, wrap gtk3-engines-unico Depends for
98 + - Update Vcs-Bzr, Vcs-Browser and add a notice to uploaders.
99 + - Add gnome-common to Build-Depends.
100 + - Renamed source package to unico to match the project name.
102 + - Override dh_autoreconf to call autogen.sh and not run configure.
105 + * Automatic snapshot from revision 140 (bootstrap)
107 + * Bump build-deps to match configure.ac
109 + [ Automatic PS uploader ]
110 + * Automatic snapshot from revision 145
112 + -- Automatic PS uploader <ps-jenkins@lists.canonical.com> Wed, 12 Dec 2012 00:01:01 +0000
114 +gtk3-engines-unico (1.0.2+r139-0ubuntu3) raring; urgency=low
116 + * Build for multiarch
117 + - debian/compat: Use compat level 9 to pass the MA dirs to the build
119 + - debian/control: BD on debhelper (>= 9) for compat 9
120 + - debian/control: Mark package M-A: same
122 + -- Iain Lane <iain.lane@canonical.com> Mon, 12 Nov 2012 10:23:20 +0000
124 +gtk3-engines-unico (1.0.2+r139-0ubuntu2) quantal; urgency=low
127 + - build depend on dh-autoreconf
129 + -- Ken VanDine <ken.vandine@canonical.com> Wed, 08 Aug 2012 14:57:10 -0400
131 +gtk3-engines-unico (1.0.2+r139-0ubuntu1) quantal; urgency=low
133 + * New snapshot from trunk
135 + - bump standards to 3.9.3
137 + -- Ken VanDine <ken.vandine@canonical.com> Wed, 08 Aug 2012 14:47:34 -0400
139 +gtk3-engines-unico (1.0.2-0ubuntu2) quantal; urgency=low
141 + * Disable rounded corner code that crashes on quantal
143 + -- Robert Ancell <robert.ancell@canonical.com> Thu, 14 Jun 2012 17:40:10 +1200
145 +gtk3-engines-unico (1.0.2-0ubuntu1) precise; urgency=low
147 + * New upstream release.
148 + - Fixed a memory leak
150 + -- Ken VanDine <ken.vandine@canonical.com> Thu, 29 Mar 2012 15:01:51 -0400
152 +gtk3-engines-unico (1.0.1-0ubuntu5) precise; urgency=low
154 + * Backport upstream fixes for i386 look issues and valgrind errors
156 + -- Sebastien Bacher <seb128@ubuntu.com> Wed, 29 Feb 2012 21:28:29 +0100
158 +gtk3-engines-unico (1.0.1-0ubuntu4) precise; urgency=low
160 + * Backport upstream commit "Fixes for inconsistent state"
162 + -- Sebastien Bacher <seb128@ubuntu.com> Wed, 22 Feb 2012 21:31:52 +0100
164 +gtk3-engines-unico (1.0.1-0ubuntu3) precise; urgency=low
166 + * Backported r126, fixes gedit context menu issues (lp: #929138)
168 + -- Sebastien Bacher <seb128@ubuntu.com> Thu, 09 Feb 2012 17:18:24 +0100
170 +gtk3-engines-unico (1.0.1-0ubuntu2) precise; urgency=low
172 + * Backported r125, support correctly the new gtk (lp: #928712)
173 + * debian/control: updated gtk requirement
174 + * debian/source/format:
175 + - switch to format v1, bzr-builddeb doesn't like full source backports
176 + using the vcs with v3
178 + -- Sebastien Bacher <seb128@ubuntu.com> Wed, 08 Feb 2012 15:16:02 +0100
180 +gtk3-engines-unico (1.0.1-0ubuntu1) oneiric; urgency=low
182 + * New upstream release.
183 + - gtk_render_line doesn't work if y0 == y1 or x1 == x0 (LP: #833958)
185 + -- Ken VanDine <ken.vandine@canonical.com> Thu, 01 Sep 2011 15:30:30 -0400
187 +gtk3-engines-unico (1.0-0ubuntu1) oneiric; urgency=low
189 + * New upstream release.
191 + -- Ken VanDine <ken.vandine@canonical.com> Wed, 10 Aug 2011 11:38:14 -0400
193 +gtk3-engines-unico (0.1.0+r74-0ubuntu1) oneiric; urgency=low
195 + * New upstream release.
197 + - bump build depends for libgtk-3-dev >= 3.1.6
199 + -- Ken VanDine <ken.vandine@canonical.com> Thu, 30 Jun 2011 10:51:38 +0100
201 +gtk3-engines-unico (0.1.0+r69-0ubuntu1) oneiric; urgency=low
203 + * New upstream snapshot.
205 + - Updated Vcs-Bzr to point to the proper project
206 + - Updated maintainer email to use @ubuntu.com
207 + - Updated standards version to 3.9.2
209 + -- Ken VanDine <ken.vandine@canonical.com> Fri, 17 Jun 2011 16:18:41 -0400
211 +gtk3-engines-unico (0.1.0+r66-0ubuntu1) oneiric; urgency=low
213 + * New upstream snapshot.
214 + - Fix for a gnome-control-center crasher (LP: #789010)
216 + -- Ken VanDine <ken.vandine@canonical.com> Wed, 01 Jun 2011 13:21:40 -0400
218 +gtk3-engines-unico (0.1.0+r64-0ubuntu1) oneiric; urgency=low
220 + * Initial packaging
222 + -- Ken VanDine <ken.vandine@canonical.com> Thu, 19 May 2011 09:46:01 -0400
224 === added file 'debian/compat'
225 --- debian/compat 1970-01-01 00:00:00 +0000
226 +++ debian/compat 2016-01-19 12:14:18 +0000
230 === added file 'debian/control'
231 --- debian/control 1970-01-01 00:00:00 +0000
232 +++ debian/control 2016-01-19 12:14:18 +0000
237 +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
238 +Build-Depends: autotools-dev,
242 + libcairo2-dev (>= 1.10),
243 + libglib2.0-dev (>= 2.26.0),
244 + libgtk-3-dev (>= 3.5.2),
245 +Standards-Version: 3.9.3
246 +Homepage: https://launchpad.net/unico
247 +# If you aren't a member of ~unico-team but need to upload
248 +# packaging changes, just go ahead. ~unico-team will notice
249 +# and sync up the code again.
250 +Vcs-Bzr: https://code.launchpad.net/~unico-team/unico/trunk
251 +Vcs-Browser: https://bazaar.launchpad.net/~unico-team/unico/trunk/files
253 +Package: gtk3-engines-unico
255 +Depends: ${misc:Depends},
258 +Description: Unico Gtk+ 3 theme engine
259 + Unico is a Gtk+ engine that aims to be the more complete yet powerful theming
260 + engine for Gtk+ 3.0 and newer. Itâs the first Gtk+ engine written with Gtk+
261 + style context APIs in mind, using CSS as first class citizen.
263 === added file 'debian/copyright'
264 --- debian/copyright 1970-01-01 00:00:00 +0000
265 +++ debian/copyright 2016-01-19 12:14:18 +0000
267 +Format: http://dep.debian.net/deps/dep5
268 +Upstream-Name: gtk3-engines-unico
269 +Upstream-Contact: Andrea Cimitan <andrea.cimitan@canonical.com>
270 +Source: https://launchpad.net/unico
273 +Copyright: 2011-2012 Canonical Ltd
275 + This library is free software; you can redistribute it and/or modify
276 + it under the terms of the GNU Lesser General Public License
277 + version 2.1 as published by the Free Software Foundation.
279 + This library is distributed in the hope that it will be useful,
280 + but WITHOUT ANY WARRANTY; without even the implied warranty of
281 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
282 + Lesser General Public License for more details.
284 + On Debian systems, the complete text of the GNU Lesser General Public
285 + Licence can be found in `/usr/share/common-licenses/LGPL-2.1'
287 === added file 'debian/docs'
288 --- debian/docs 1970-01-01 00:00:00 +0000
289 +++ debian/docs 2016-01-19 12:14:18 +0000
294 === added file 'debian/rules'
295 --- debian/rules 1970-01-01 00:00:00 +0000
296 +++ debian/rules 2016-01-19 12:14:18 +0000
300 +# Uncomment this to turn on verbose mode.
301 +#export DH_VERBOSE=1
303 +export DPKG_GENSYMBOLS_CHECK_LEVEL=4
306 + dh $@ --with autoreconf
308 +override_dh_autoreconf:
309 + NOCONFIGURE=1 dh_autoreconf ./autogen.sh
311 +override_dh_install:
312 + find debian/gtk3-engines-unico/usr/lib -name \*.la -exec rm {} \;
313 + find debian/gtk3-engines-unico/usr/lib -name \*.a -exec rm {} \;
314 + dh_install --fail-missing
316 === added directory 'debian/source'
317 === added file 'debian/source/format'
318 --- debian/source/format 1970-01-01 00:00:00 +0000
319 +++ debian/source/format 2016-01-19 12:14:18 +0000
323 === removed directory 'tests'
324 === removed file 'tests/Makefile.am'
325 --- tests/Makefile.am 2011-05-18 13:41:46 +0000
326 +++ tests/Makefile.am 1970-01-01 00:00:00 +0000
334 -test_widgets_CFLAGS = \
338 -test_widgets_LDADD = \
341 -test_widgets_LDFLAGS = \
344 -# FIXME(Cimi): Figure out what tests must be compiled and add them here.
346 === removed file 'tests/test-widgets.c'
347 --- tests/test-widgets.c 2011-05-18 13:41:46 +0000
348 +++ tests/test-widgets.c 1970-01-01 00:00:00 +0000
350 -/* The Unico Theming Engine for Gtk+.
351 - * Copyright (C) 2011 Canonical Ltd
353 - * This library is free software; you can redistribute it and/or
354 - * modify it under the terms of the GNU Lesser General Public
355 - * License as published by the Free Software Foundation; either
356 - * version 2 of the License, or (at your option) any later version.
358 - * This library is distributed in the hope that it will be useful,
359 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
360 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
361 - * Lesser General Public License for more details.
363 - * You should have received a copy of the GNU Lesser General Public
364 - * License along with this library; if not, write to the Free
365 - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
366 - * MA 02110-1301, USA.
368 - * Authored by Andrea Cimitan <andrea.cimitan@canonical.com>
372 -#include <gtk/gtk.h>
375 -main (int argc, char *argv[])
377 - GtkBuilder *builder;
380 - gtk_init (&argc, &argv);
382 - builder = gtk_builder_new ();
383 - gtk_builder_add_from_file (builder, "./test-widgets.glade", NULL);
385 - window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));
386 - gtk_builder_connect_signals (builder, NULL);
388 - g_object_unref (G_OBJECT (builder));
390 - gtk_widget_show (window);
396 === removed file 'tests/test-widgets.glade'
397 --- tests/test-widgets.glade 2011-05-18 13:41:46 +0000
398 +++ tests/test-widgets.glade 1970-01-01 00:00:00 +0000
400 -<?xml version="1.0" encoding="UTF-8"?>
402 - <!-- interface-requires gtk+ 3.0 -->
403 - <object class="GtkAdjustment" id="adjustment1">
404 - <property name="upper">100</property>
405 - <property name="value">50</property>
406 - <property name="step_increment">1</property>
407 - <property name="page_increment">10</property>
409 - <object class="GtkListStore" id="liststore1">
411 - <!-- column-name Cool -->
412 - <column type="gboolean"/>
413 - <!-- column-name Name -->
414 - <column type="gchararray"/>
415 - <!-- column-name Nick -->
416 - <column type="gchararray"/>
420 - <col id="0">True</col>
421 - <col id="1" translatable="yes">Andrea</col>
422 - <col id="2" translatable="yes">Cimi</col>
425 - <col id="0">False</col>
426 - <col id="1" translatable="yes">Otto</col>
427 - <col id="2" translatable="yes">chaotic</col>
431 - <object class="GtkTextBuffer" id="textbuffer1">
432 - <property name="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit.
433 -Nullam fringilla, est ut feugiat ultrices, elit lacus ultricies nibh, id commodo tortor nisi id elit.
434 -Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
435 -Morbi vel elit erat. Maecenas dignissim, dui et pharetra rutrum, tellus lectus rutrum mi, a convallis libero nisi quis tellus.
436 -Nulla facilisi. Nullam eleifend lobortis nisl, in porttitor tellus malesuada vitae.
437 -Aenean lacus tellus, pellentesque quis molestie quis, fringilla in arcu.
438 -Duis elementum, tellus sed tristique semper, metus metus accumsan augue, et porttitor augue orci a libero.
439 -Ut sed justo ac felis placerat laoreet sed id sem. Proin mattis tincidunt odio vitae tristique.
440 -Morbi massa libero, congue vitae scelerisque vel, ultricies vel nisl.
441 -Vestibulum in tortor diam, quis aliquet quam. Praesent ut justo neque, tempus rutrum est.
442 -Duis eu lectus quam. Vivamus eget metus a mauris molestie venenatis pulvinar eleifend nisi.
443 -Nulla facilisi. Pellentesque at dolor sit amet purus dapibus pulvinar molestie quis neque.
444 -Suspendisse feugiat quam quis dolor accumsan cursus. </property>
446 - <object class="GtkWindow" id="window">
447 - <property name="can_focus">False</property>
449 - <object class="GtkBox" id="box1">
450 - <property name="visible">True</property>
451 - <property name="can_focus">False</property>
452 - <property name="orientation">vertical</property>
454 - <object class="GtkMenuBar" id="menubar1">
455 - <property name="visible">True</property>
456 - <property name="can_focus">False</property>
458 - <object class="GtkMenuItem" id="menuitem1">
459 - <property name="visible">True</property>
460 - <property name="can_focus">False</property>
461 - <property name="use_action_appearance">False</property>
462 - <property name="label" translatable="yes">_File</property>
463 - <property name="use_underline">True</property>
464 - <child type="submenu">
465 - <object class="GtkMenu" id="menu1">
466 - <property name="visible">True</property>
467 - <property name="can_focus">False</property>
469 - <object class="GtkImageMenuItem" id="imagemenuitem1">
470 - <property name="label">gtk-new</property>
471 - <property name="visible">True</property>
472 - <property name="can_focus">False</property>
473 - <property name="use_action_appearance">False</property>
474 - <property name="use_underline">True</property>
475 - <property name="use_stock">True</property>
479 - <object class="GtkImageMenuItem" id="imagemenuitem2">
480 - <property name="label">gtk-open</property>
481 - <property name="visible">True</property>
482 - <property name="can_focus">False</property>
483 - <property name="use_action_appearance">False</property>
484 - <property name="use_underline">True</property>
485 - <property name="use_stock">True</property>
489 - <object class="GtkImageMenuItem" id="imagemenuitem3">
490 - <property name="label">gtk-save</property>
491 - <property name="visible">True</property>
492 - <property name="can_focus">False</property>
493 - <property name="use_action_appearance">False</property>
494 - <property name="use_underline">True</property>
495 - <property name="use_stock">True</property>
499 - <object class="GtkImageMenuItem" id="imagemenuitem4">
500 - <property name="label">gtk-save-as</property>
501 - <property name="visible">True</property>
502 - <property name="can_focus">False</property>
503 - <property name="use_action_appearance">False</property>
504 - <property name="use_underline">True</property>
505 - <property name="use_stock">True</property>
509 - <object class="GtkSeparatorMenuItem" id="separatormenuitem1">
510 - <property name="visible">True</property>
511 - <property name="can_focus">False</property>
512 - <property name="use_action_appearance">False</property>
516 - <object class="GtkImageMenuItem" id="imagemenuitem5">
517 - <property name="label">gtk-quit</property>
518 - <property name="visible">True</property>
519 - <property name="can_focus">False</property>
520 - <property name="use_action_appearance">False</property>
521 - <property name="use_underline">True</property>
522 - <property name="use_stock">True</property>
530 - <object class="GtkMenuItem" id="menuitem2">
531 - <property name="visible">True</property>
532 - <property name="can_focus">False</property>
533 - <property name="use_action_appearance">False</property>
534 - <property name="label" translatable="yes">_Edit</property>
535 - <property name="use_underline">True</property>
536 - <child type="submenu">
537 - <object class="GtkMenu" id="menu2">
538 - <property name="visible">True</property>
539 - <property name="can_focus">False</property>
541 - <object class="GtkImageMenuItem" id="imagemenuitem6">
542 - <property name="label">gtk-cut</property>
543 - <property name="visible">True</property>
544 - <property name="can_focus">False</property>
545 - <property name="use_action_appearance">False</property>
546 - <property name="use_underline">True</property>
547 - <property name="use_stock">True</property>
551 - <object class="GtkImageMenuItem" id="imagemenuitem7">
552 - <property name="label">gtk-copy</property>
553 - <property name="visible">True</property>
554 - <property name="can_focus">False</property>
555 - <property name="use_action_appearance">False</property>
556 - <property name="use_underline">True</property>
557 - <property name="use_stock">True</property>
561 - <object class="GtkImageMenuItem" id="imagemenuitem8">
562 - <property name="label">gtk-paste</property>
563 - <property name="visible">True</property>
564 - <property name="can_focus">False</property>
565 - <property name="use_action_appearance">False</property>
566 - <property name="use_underline">True</property>
567 - <property name="use_stock">True</property>
571 - <object class="GtkImageMenuItem" id="imagemenuitem9">
572 - <property name="label">gtk-delete</property>
573 - <property name="visible">True</property>
574 - <property name="can_focus">False</property>
575 - <property name="use_action_appearance">False</property>
576 - <property name="use_underline">True</property>
577 - <property name="use_stock">True</property>
585 - <object class="GtkMenuItem" id="menuitem3">
586 - <property name="visible">True</property>
587 - <property name="can_focus">False</property>
588 - <property name="use_action_appearance">False</property>
589 - <property name="label" translatable="yes">_View</property>
590 - <property name="use_underline">True</property>
594 - <object class="GtkMenuItem" id="menuitem4">
595 - <property name="visible">True</property>
596 - <property name="can_focus">False</property>
597 - <property name="use_action_appearance">False</property>
598 - <property name="label" translatable="yes">_Help</property>
599 - <property name="use_underline">True</property>
600 - <child type="submenu">
601 - <object class="GtkMenu" id="menu3">
602 - <property name="visible">True</property>
603 - <property name="can_focus">False</property>
605 - <object class="GtkImageMenuItem" id="imagemenuitem10">
606 - <property name="label">gtk-about</property>
607 - <property name="visible">True</property>
608 - <property name="can_focus">False</property>
609 - <property name="use_action_appearance">False</property>
610 - <property name="use_underline">True</property>
611 - <property name="use_stock">True</property>
620 - <property name="expand">False</property>
621 - <property name="fill">True</property>
622 - <property name="position">0</property>
626 - <object class="GtkToolbar" id="toolbar1">
627 - <property name="visible">True</property>
628 - <property name="can_focus">False</property>
630 - <object class="GtkToolButton" id="toolbutton2">
631 - <property name="visible">True</property>
632 - <property name="can_focus">False</property>
633 - <property name="use_action_appearance">False</property>
634 - <property name="label" translatable="yes">Save</property>
635 - <property name="use_underline">True</property>
636 - <property name="stock_id">gtk-save</property>
639 - <property name="expand">False</property>
640 - <property name="homogeneous">True</property>
644 - <object class="GtkToolButton" id="toolbutton1">
645 - <property name="visible">True</property>
646 - <property name="can_focus">False</property>
647 - <property name="use_action_appearance">False</property>
648 - <property name="label" translatable="yes">Open</property>
649 - <property name="use_underline">True</property>
650 - <property name="stock_id">gtk-open</property>
653 - <property name="expand">False</property>
654 - <property name="homogeneous">True</property>
658 - <object class="GtkSeparatorToolItem" id="toolbutton3">
659 - <property name="visible">True</property>
660 - <property name="can_focus">False</property>
661 - <property name="use_action_appearance">False</property>
664 - <property name="expand">False</property>
665 - <property name="homogeneous">True</property>
669 - <object class="GtkToolButton" id="toolbutton4">
670 - <property name="visible">True</property>
671 - <property name="can_focus">False</property>
672 - <property name="use_action_appearance">False</property>
673 - <property name="label" translatable="yes">Find</property>
674 - <property name="use_underline">True</property>
675 - <property name="stock_id">gtk-find</property>
678 - <property name="expand">False</property>
679 - <property name="homogeneous">True</property>
683 - <object class="GtkToolItem" id="toolbutton5">
684 - <property name="visible">True</property>
685 - <property name="can_focus">False</property>
686 - <property name="use_action_appearance">False</property>
692 - <property name="expand">True</property>
693 - <property name="homogeneous">True</property>
697 - <object class="GtkToolItem" id="toolbutton6">
698 - <property name="visible">True</property>
699 - <property name="can_focus">False</property>
700 - <property name="use_action_appearance">False</property>
702 - <object class="GtkEntry" id="entry3">
703 - <property name="visible">True</property>
704 - <property name="can_focus">True</property>
705 - <property name="invisible_char">âą</property>
706 - <property name="text" translatable="yes">search...</property>
711 - <property name="expand">False</property>
716 - <property name="expand">False</property>
717 - <property name="fill">True</property>
718 - <property name="position">1</property>
722 - <object class="GtkBox" id="box2">
723 - <property name="visible">True</property>
724 - <property name="can_focus">False</property>
725 - <property name="spacing">6</property>
727 - <object class="GtkBox" id="box3">
728 - <property name="visible">True</property>
729 - <property name="can_focus">False</property>
730 - <property name="orientation">vertical</property>
731 - <property name="spacing">4</property>
733 - <object class="GtkComboBoxText" id="comboboxtext1">
734 - <property name="visible">True</property>
735 - <property name="can_focus">False</property>
736 - <property name="has_entry">True</property>
737 - <child internal-child="entry">
738 - <object class="GtkEntry" id="comboboxtext-entry">
739 - <property name="can_focus">False</property>
740 - <property name="text" translatable="yes">comboboxentry</property>
745 - <property name="expand">False</property>
746 - <property name="fill">False</property>
747 - <property name="position">0</property>
751 - <object class="GtkComboBoxText" id="comboboxtext2">
752 - <property name="visible">True</property>
753 - <property name="sensitive">False</property>
754 - <property name="can_focus">False</property>
755 - <property name="has_entry">True</property>
756 - <child internal-child="entry">
757 - <object class="GtkEntry" id="comboboxtext-entry2">
758 - <property name="can_focus">False</property>
759 - <property name="invisible_char">âą</property>
760 - <property name="text" translatable="yes">comboboxentry</property>
765 - <property name="expand">False</property>
766 - <property name="fill">False</property>
767 - <property name="position">1</property>
771 - <object class="GtkEntry" id="entry1">
772 - <property name="visible">True</property>
773 - <property name="can_focus">True</property>
774 - <property name="invisible_char">âą</property>
775 - <property name="text" translatable="yes">entry</property>
778 - <property name="expand">False</property>
779 - <property name="fill">False</property>
780 - <property name="position">2</property>
784 - <object class="GtkEntry" id="entry2">
785 - <property name="visible">True</property>
786 - <property name="sensitive">False</property>
787 - <property name="can_focus">True</property>
788 - <property name="invisible_char">âą</property>
789 - <property name="text" translatable="yes">entry</property>
792 - <property name="expand">False</property>
793 - <property name="fill">False</property>
794 - <property name="position">3</property>
798 - <object class="GtkBox" id="box18">
799 - <property name="visible">True</property>
800 - <property name="can_focus">False</property>
801 - <property name="spacing">20</property>
803 - <object class="GtkLabel" id="label3">
804 - <property name="visible">True</property>
805 - <property name="can_focus">False</property>
806 - <property name="label" translatable="yes">label</property>
809 - <property name="expand">False</property>
810 - <property name="fill">True</property>
811 - <property name="position">0</property>
815 - <object class="GtkLabel" id="label4">
816 - <property name="visible">True</property>
817 - <property name="sensitive">False</property>
818 - <property name="can_focus">False</property>
819 - <property name="label" translatable="yes">label</property>
822 - <property name="expand">False</property>
823 - <property name="fill">True</property>
824 - <property name="position">1</property>
828 - <object class="GtkSpinButton" id="spinbutton1">
829 - <property name="visible">True</property>
830 - <property name="can_focus">True</property>
831 - <property name="invisible_char">âą</property>
834 - <property name="expand">False</property>
835 - <property name="fill">False</property>
836 - <property name="position">2</property>
840 - <object class="GtkSpinButton" id="spinbutton2">
841 - <property name="visible">True</property>
842 - <property name="can_focus">True</property>
843 - <property name="invisible_char">âą</property>
846 - <property name="expand">False</property>
847 - <property name="fill">False</property>
848 - <property name="position">3</property>
853 - <property name="expand">False</property>
854 - <property name="fill">False</property>
855 - <property name="position">4</property>
859 - <object class="GtkGrid" id="grid1">
860 - <property name="visible">True</property>
861 - <property name="can_focus">False</property>
862 - <property name="row_homogeneous">True</property>
863 - <property name="n_rows">4</property>
864 - <property name="n_columns">2</property>
866 - <object class="GtkCheckButton" id="checkbutton1">
867 - <property name="label" translatable="yes">checkbutton</property>
868 - <property name="visible">True</property>
869 - <property name="can_focus">True</property>
870 - <property name="receives_default">False</property>
871 - <property name="use_action_appearance">False</property>
872 - <property name="xalign">0</property>
873 - <property name="active">True</property>
874 - <property name="draw_indicator">True</property>
877 - <property name="left_attach">0</property>
878 - <property name="top_attach">0</property>
879 - <property name="width">1</property>
880 - <property name="height">1</property>
884 - <object class="GtkCheckButton" id="checkbutton2">
885 - <property name="label" translatable="yes">checkbutton</property>
886 - <property name="visible">True</property>
887 - <property name="can_focus">True</property>
888 - <property name="receives_default">False</property>
889 - <property name="use_action_appearance">False</property>
890 - <property name="xalign">0</property>
891 - <property name="draw_indicator">True</property>
894 - <property name="left_attach">0</property>
895 - <property name="top_attach">1</property>
896 - <property name="width">1</property>
897 - <property name="height">1</property>
901 - <object class="GtkCheckButton" id="checkbutton3">
902 - <property name="label" translatable="yes">checkbutton</property>
903 - <property name="visible">True</property>
904 - <property name="sensitive">False</property>
905 - <property name="can_focus">True</property>
906 - <property name="receives_default">False</property>
907 - <property name="use_action_appearance">False</property>
908 - <property name="xalign">0</property>
909 - <property name="active">True</property>
910 - <property name="draw_indicator">True</property>
913 - <property name="left_attach">0</property>
914 - <property name="top_attach">2</property>
915 - <property name="width">1</property>
916 - <property name="height">1</property>
920 - <object class="GtkCheckButton" id="checkbutton4">
921 - <property name="label" translatable="yes">checkbutton</property>
922 - <property name="visible">True</property>
923 - <property name="sensitive">False</property>
924 - <property name="can_focus">True</property>
925 - <property name="receives_default">False</property>
926 - <property name="use_action_appearance">False</property>
927 - <property name="xalign">0</property>
928 - <property name="draw_indicator">True</property>
931 - <property name="left_attach">0</property>
932 - <property name="top_attach">3</property>
933 - <property name="width">1</property>
934 - <property name="height">1</property>
938 - <object class="GtkRadioButton" id="radiobutton1">
939 - <property name="label" translatable="yes">radiobutton</property>
940 - <property name="visible">True</property>
941 - <property name="can_focus">True</property>
942 - <property name="receives_default">False</property>
943 - <property name="use_action_appearance">False</property>
944 - <property name="xalign">0</property>
945 - <property name="active">True</property>
946 - <property name="draw_indicator">True</property>
949 - <property name="left_attach">1</property>
950 - <property name="top_attach">0</property>
951 - <property name="width">1</property>
952 - <property name="height">1</property>
956 - <object class="GtkRadioButton" id="radiobutton2">
957 - <property name="label" translatable="yes">radiobutton</property>
958 - <property name="visible">True</property>
959 - <property name="can_focus">True</property>
960 - <property name="receives_default">False</property>
961 - <property name="use_action_appearance">False</property>
962 - <property name="xalign">0</property>
963 - <property name="active">True</property>
964 - <property name="draw_indicator">True</property>
965 - <property name="group">radiobutton1</property>
968 - <property name="left_attach">1</property>
969 - <property name="top_attach">1</property>
970 - <property name="width">1</property>
971 - <property name="height">1</property>
975 - <object class="GtkRadioButton" id="radiobutton3">
976 - <property name="label" translatable="yes">radiobutton</property>
977 - <property name="visible">True</property>
978 - <property name="sensitive">False</property>
979 - <property name="can_focus">True</property>
980 - <property name="receives_default">False</property>
981 - <property name="use_action_appearance">False</property>
982 - <property name="xalign">0</property>
983 - <property name="active">True</property>
984 - <property name="draw_indicator">True</property>
987 - <property name="left_attach">1</property>
988 - <property name="top_attach">2</property>
989 - <property name="width">1</property>
990 - <property name="height">1</property>
994 - <object class="GtkRadioButton" id="radiobutton4">
995 - <property name="label" translatable="yes">radiobutton</property>
996 - <property name="visible">True</property>
997 - <property name="sensitive">False</property>
998 - <property name="can_focus">True</property>
999 - <property name="receives_default">False</property>
1000 - <property name="use_action_appearance">False</property>
1001 - <property name="xalign">0</property>
1002 - <property name="active">True</property>
1003 - <property name="draw_indicator">True</property>
1004 - <property name="group">radiobutton3</property>
1007 - <property name="left_attach">1</property>
1008 - <property name="top_attach">3</property>
1009 - <property name="width">1</property>
1010 - <property name="height">1</property>
1015 - <property name="expand">False</property>
1016 - <property name="fill">False</property>
1017 - <property name="position">5</property>
1022 - <property name="expand">False</property>
1023 - <property name="fill">False</property>
1024 - <property name="padding">4</property>
1025 - <property name="position">0</property>
1029 - <object class="GtkSeparator" id="separator1">
1030 - <property name="visible">True</property>
1031 - <property name="can_focus">False</property>
1032 - <property name="orientation">vertical</property>
1035 - <property name="expand">False</property>
1036 - <property name="fill">True</property>
1037 - <property name="position">1</property>
1041 - <object class="GtkBox" id="box19">
1042 - <property name="width_request">110</property>
1043 - <property name="visible">True</property>
1044 - <property name="can_focus">False</property>
1045 - <property name="orientation">vertical</property>
1046 - <property name="spacing">4</property>
1048 - <object class="GtkToggleButton" id="togglebutton1">
1049 - <property name="label" translatable="yes">togglebutton</property>
1050 - <property name="visible">True</property>
1051 - <property name="can_focus">True</property>
1052 - <property name="receives_default">True</property>
1053 - <property name="use_action_appearance">False</property>
1056 - <property name="expand">False</property>
1057 - <property name="fill">False</property>
1058 - <property name="position">0</property>
1062 - <object class="GtkToggleButton" id="togglebutton2">
1063 - <property name="label" translatable="yes">togglebutton</property>
1064 - <property name="visible">True</property>
1065 - <property name="sensitive">False</property>
1066 - <property name="can_focus">True</property>
1067 - <property name="receives_default">True</property>
1068 - <property name="use_action_appearance">False</property>
1071 - <property name="expand">False</property>
1072 - <property name="fill">False</property>
1073 - <property name="position">1</property>
1077 - <object class="GtkToggleButton" id="togglebutton3">
1078 - <property name="label" translatable="yes">togglebutton</property>
1079 - <property name="visible">True</property>
1080 - <property name="can_focus">True</property>
1081 - <property name="receives_default">True</property>
1082 - <property name="use_action_appearance">False</property>
1083 - <property name="active">True</property>
1086 - <property name="expand">False</property>
1087 - <property name="fill">False</property>
1088 - <property name="position">2</property>
1092 - <object class="GtkToggleButton" id="togglebutton4">
1093 - <property name="label" translatable="yes">togglebutton</property>
1094 - <property name="visible">True</property>
1095 - <property name="sensitive">False</property>
1096 - <property name="can_focus">True</property>
1097 - <property name="receives_default">True</property>
1098 - <property name="use_action_appearance">False</property>
1099 - <property name="active">True</property>
1102 - <property name="expand">False</property>
1103 - <property name="fill">False</property>
1104 - <property name="position">3</property>
1108 - <object class="GtkComboBox" id="combobox1">
1109 - <property name="visible">True</property>
1110 - <property name="can_focus">False</property>
1111 - <property name="model">liststore1</property>
1112 - <property name="active">0</property>
1114 - <object class="GtkCellRendererText" id="cellrenderertext1"/>
1116 - <attribute name="text">2</attribute>
1121 - <property name="expand">False</property>
1122 - <property name="fill">True</property>
1123 - <property name="position">5</property>
1127 - <object class="GtkComboBox" id="combobox2">
1128 - <property name="visible">True</property>
1129 - <property name="sensitive">False</property>
1130 - <property name="can_focus">False</property>
1131 - <property name="model">liststore1</property>
1132 - <property name="active">1</property>
1134 - <object class="GtkCellRendererText" id="cellrenderertext2"/>
1136 - <attribute name="text">2</attribute>
1141 - <property name="expand">False</property>
1142 - <property name="fill">False</property>
1143 - <property name="position">6</property>
1147 - <object class="GtkFontButton" id="fontbutton1">
1148 - <property name="visible">True</property>
1149 - <property name="can_focus">True</property>
1150 - <property name="receives_default">True</property>
1151 - <property name="use_action_appearance">False</property>
1154 - <property name="expand">False</property>
1155 - <property name="fill">False</property>
1156 - <property name="position">6</property>
1160 - <object class="GtkColorButton" id="colorbutton1">
1161 - <property name="visible">True</property>
1162 - <property name="can_focus">True</property>
1163 - <property name="receives_default">True</property>
1164 - <property name="use_action_appearance">False</property>
1165 - <property name="color">#31316867a09f</property>
1168 - <property name="expand">False</property>
1169 - <property name="fill">True</property>
1170 - <property name="position">8</property>
1174 - <object class="GtkFileChooserButton" id="filechooserbutton1">
1175 - <property name="visible">True</property>
1176 - <property name="can_focus">False</property>
1179 - <property name="expand">False</property>
1180 - <property name="fill">True</property>
1181 - <property name="position">8</property>
1186 - <property name="expand">False</property>
1187 - <property name="fill">False</property>
1188 - <property name="position">2</property>
1192 - <object class="GtkSeparator" id="separator2">
1193 - <property name="visible">True</property>
1194 - <property name="can_focus">False</property>
1195 - <property name="orientation">vertical</property>
1198 - <property name="expand">False</property>
1199 - <property name="fill">True</property>
1200 - <property name="position">3</property>
1204 - <object class="GtkBox" id="box20">
1205 - <property name="visible">True</property>
1206 - <property name="can_focus">False</property>
1207 - <property name="orientation">vertical</property>
1208 - <property name="spacing">4</property>
1210 - <object class="GtkBox" id="box21">
1211 - <property name="visible">True</property>
1212 - <property name="can_focus">False</property>
1213 - <property name="orientation">vertical</property>
1214 - <property name="spacing">8</property>
1215 - <property name="homogeneous">True</property>
1217 - <object class="GtkProgressBar" id="progressbar1">
1218 - <property name="visible">True</property>
1219 - <property name="can_focus">False</property>
1220 - <property name="fraction">0.5</property>
1223 - <property name="expand">False</property>
1224 - <property name="fill">False</property>
1225 - <property name="position">0</property>
1229 - <object class="GtkProgressBar" id="progressbar2">
1230 - <property name="visible">True</property>
1231 - <property name="can_focus">False</property>
1232 - <property name="fraction">0.5</property>
1233 - <property name="inverted">True</property>
1236 - <property name="expand">False</property>
1237 - <property name="fill">False</property>
1238 - <property name="position">1</property>
1243 - <property name="expand">False</property>
1244 - <property name="fill">False</property>
1245 - <property name="position">0</property>
1249 - <object class="GtkBox" id="box27">
1250 - <property name="visible">True</property>
1251 - <property name="can_focus">False</property>
1253 - <object class="GtkBox" id="box24">
1254 - <property name="visible">True</property>
1255 - <property name="can_focus">False</property>
1256 - <property name="hexpand">True</property>
1257 - <property name="orientation">vertical</property>
1258 - <property name="homogeneous">True</property>
1260 - <object class="GtkScale" id="scale1">
1261 - <property name="visible">True</property>
1262 - <property name="can_focus">True</property>
1263 - <property name="adjustment">adjustment1</property>
1264 - <property name="restrict_to_fill_level">False</property>
1265 - <property name="fill_level">75</property>
1266 - <property name="draw_value">False</property>
1269 - <property name="expand">False</property>
1270 - <property name="fill">True</property>
1271 - <property name="position">0</property>
1275 - <object class="GtkScale" id="scale2">
1276 - <property name="visible">True</property>
1277 - <property name="sensitive">False</property>
1278 - <property name="can_focus">True</property>
1279 - <property name="adjustment">adjustment1</property>
1280 - <property name="restrict_to_fill_level">False</property>
1281 - <property name="fill_level">75</property>
1282 - <property name="draw_value">False</property>
1285 - <property name="expand">False</property>
1286 - <property name="fill">True</property>
1287 - <property name="position">1</property>
1292 - <property name="expand">True</property>
1293 - <property name="fill">True</property>
1294 - <property name="position">0</property>
1299 - <property name="expand">False</property>
1300 - <property name="fill">False</property>
1301 - <property name="position">1</property>
1305 - <object class="GtkBox" id="box25">
1306 - <property name="visible">True</property>
1307 - <property name="can_focus">False</property>
1308 - <property name="homogeneous">True</property>
1310 - <object class="GtkBox" id="box28">
1311 - <property name="visible">True</property>
1312 - <property name="can_focus">False</property>
1313 - <property name="vexpand">True</property>
1314 - <property name="spacing">4</property>
1316 - <object class="GtkProgressBar" id="progressbar5">
1317 - <property name="visible">True</property>
1318 - <property name="can_focus">False</property>
1319 - <property name="orientation">vertical</property>
1320 - <property name="fraction">0.5</property>
1323 - <property name="expand">False</property>
1324 - <property name="fill">True</property>
1325 - <property name="position">0</property>
1329 - <object class="GtkProgressBar" id="progressbar6">
1330 - <property name="visible">True</property>
1331 - <property name="can_focus">False</property>
1332 - <property name="orientation">vertical</property>
1333 - <property name="fraction">0.5</property>
1334 - <property name="inverted">True</property>
1337 - <property name="expand">False</property>
1338 - <property name="fill">True</property>
1339 - <property name="position">1</property>
1344 - <property name="expand">False</property>
1345 - <property name="fill">False</property>
1346 - <property name="position">0</property>
1350 - <object class="GtkBox" id="box23">
1351 - <property name="visible">True</property>
1352 - <property name="can_focus">False</property>
1353 - <property name="vexpand">True</property>
1354 - <property name="spacing">4</property>
1356 - <object class="GtkScale" id="scale3">
1357 - <property name="height_request">100</property>
1358 - <property name="visible">True</property>
1359 - <property name="can_focus">True</property>
1360 - <property name="orientation">vertical</property>
1361 - <property name="adjustment">adjustment1</property>
1362 - <property name="restrict_to_fill_level">False</property>
1363 - <property name="fill_level">75</property>
1364 - <property name="draw_value">False</property>
1367 - <property name="expand">False</property>
1368 - <property name="fill">True</property>
1369 - <property name="position">0</property>
1373 - <object class="GtkScale" id="scale4">
1374 - <property name="height_request">100</property>
1375 - <property name="visible">True</property>
1376 - <property name="sensitive">False</property>
1377 - <property name="can_focus">True</property>
1378 - <property name="orientation">vertical</property>
1379 - <property name="adjustment">adjustment1</property>
1380 - <property name="restrict_to_fill_level">False</property>
1381 - <property name="fill_level">75</property>
1382 - <property name="draw_value">False</property>
1385 - <property name="expand">False</property>
1386 - <property name="fill">True</property>
1387 - <property name="position">1</property>
1392 - <property name="expand">False</property>
1393 - <property name="fill">False</property>
1394 - <property name="position">1</property>
1399 - <property name="expand">True</property>
1400 - <property name="fill">True</property>
1401 - <property name="position">2</property>
1405 - <object class="GtkBox" id="box22">
1406 - <property name="visible">True</property>
1407 - <property name="can_focus">False</property>
1408 - <property name="orientation">vertical</property>
1410 - <object class="GtkHandleBox" id="handlebox1">
1411 - <property name="visible">True</property>
1412 - <property name="can_focus">False</property>
1414 - <object class="GtkLinkButton" id="linkbutton1">
1415 - <property name="label" translatable="yes">link button</property>
1416 - <property name="visible">True</property>
1417 - <property name="can_focus">True</property>
1418 - <property name="receives_default">True</property>
1419 - <property name="has_tooltip">True</property>
1420 - <property name="use_action_appearance">False</property>
1421 - <property name="relief">none</property>
1422 - <property name="uri">http://www.ubuntu.com</property>
1427 - <property name="expand">False</property>
1428 - <property name="fill">True</property>
1429 - <property name="position">0</property>
1433 - <object class="GtkExpander" id="expander1">
1434 - <property name="visible">True</property>
1435 - <property name="can_focus">True</property>
1437 - <object class="GtkScrolledWindow" id="scrolledwindow3">
1438 - <property name="visible">True</property>
1439 - <property name="can_focus">True</property>
1440 - <property name="shadow_type">in</property>
1442 - <object class="GtkViewport" id="viewport1">
1443 - <property name="visible">True</property>
1444 - <property name="can_focus">False</property>
1446 - <object class="GtkLabel" id="label20">
1447 - <property name="visible">True</property>
1448 - <property name="can_focus">False</property>
1449 - <property name="label" translatable="yes">Lorem ipsum dolor sit amet, consectetur adipiscing elit.
1450 -Nullam fringilla, est ut feugiat ultrices, elit lacus ultricies nibh, id commodo tortor nisi id elit.
1451 -Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
1452 -Morbi vel elit erat. Maecenas dignissim, dui et pharetra rutrum, tellus lectus rutrum mi, a convallis libero nisi quis tellus.
1453 -Nulla facilisi. Nullam eleifend lobortis nisl, in porttitor tellus malesuada vitae.
1454 -Aenean lacus tellus, pellentesque quis molestie quis, fringilla in arcu.
1455 -Duis elementum, tellus sed tristique semper, metus metus accumsan augue, et porttitor augue orci a libero.
1456 -Ut sed justo ac felis placerat laoreet sed id sem. Proin mattis tincidunt odio vitae tristique.
1457 -Morbi massa libero, congue vitae scelerisque vel, ultricies vel nisl.
1458 -Vestibulum in tortor diam, quis aliquet quam. Praesent ut justo neque, tempus rutrum est.
1459 -Duis eu lectus quam. Vivamus eget metus a mauris molestie venenatis pulvinar eleifend nisi.
1460 -Nulla facilisi. Pellentesque at dolor sit amet purus dapibus pulvinar molestie quis neque.
1461 -Suspendisse feugiat quam quis dolor accumsan cursus. </property>
1468 - <child type="label">
1469 - <object class="GtkLabel" id="label19">
1470 - <property name="visible">True</property>
1471 - <property name="can_focus">False</property>
1472 - <property name="label" translatable="yes">expander</property>
1477 - <property name="expand">False</property>
1478 - <property name="fill">True</property>
1479 - <property name="position">1</property>
1484 - <property name="expand">False</property>
1485 - <property name="fill">True</property>
1486 - <property name="position">3</property>
1491 - <property name="expand">False</property>
1492 - <property name="fill">False</property>
1493 - <property name="position">4</property>
1497 - <object class="GtkSeparator" id="separator3">
1498 - <property name="visible">True</property>
1499 - <property name="can_focus">False</property>
1500 - <property name="orientation">vertical</property>
1503 - <property name="expand">False</property>
1504 - <property name="fill">True</property>
1505 - <property name="position">5</property>
1509 - <object class="GtkBox" id="box26">
1510 - <property name="visible">True</property>
1511 - <property name="can_focus">False</property>
1512 - <property name="orientation">vertical</property>
1513 - <property name="homogeneous">True</property>
1515 - <object class="GtkFrame" id="frame1">
1516 - <property name="visible">True</property>
1517 - <property name="can_focus">False</property>
1518 - <property name="label_xalign">0</property>
1519 - <property name="shadow_type">in</property>
1521 - <object class="GtkAlignment" id="alignment1">
1522 - <property name="visible">True</property>
1523 - <property name="can_focus">False</property>
1524 - <property name="left_padding">12</property>
1530 - <child type="label">
1531 - <object class="GtkLabel" id="label1">
1532 - <property name="visible">True</property>
1533 - <property name="can_focus">False</property>
1534 - <property name="label" translatable="yes"><b>In</b></property>
1535 - <property name="use_markup">True</property>
1540 - <property name="expand">True</property>
1541 - <property name="fill">True</property>
1542 - <property name="position">0</property>
1546 - <object class="GtkFrame" id="frame2">
1547 - <property name="visible">True</property>
1548 - <property name="can_focus">False</property>
1549 - <property name="label_xalign">0</property>
1550 - <property name="shadow_type">out</property>
1552 - <object class="GtkAlignment" id="alignment2">
1553 - <property name="visible">True</property>
1554 - <property name="can_focus">False</property>
1555 - <property name="left_padding">12</property>
1561 - <child type="label">
1562 - <object class="GtkLabel" id="label2">
1563 - <property name="visible">True</property>
1564 - <property name="can_focus">False</property>
1565 - <property name="label" translatable="yes"><b>Out</b></property>
1566 - <property name="use_markup">True</property>
1571 - <property name="expand">True</property>
1572 - <property name="fill">True</property>
1573 - <property name="position">1</property>
1577 - <object class="GtkFrame" id="frame3">
1578 - <property name="visible">True</property>
1579 - <property name="can_focus">False</property>
1580 - <property name="label_xalign">0</property>
1582 - <object class="GtkAlignment" id="alignment3">
1583 - <property name="visible">True</property>
1584 - <property name="can_focus">False</property>
1585 - <property name="left_padding">12</property>
1591 - <child type="label">
1592 - <object class="GtkLabel" id="label17">
1593 - <property name="visible">True</property>
1594 - <property name="can_focus">False</property>
1595 - <property name="label" translatable="yes"><b>Etched out</b></property>
1596 - <property name="use_markup">True</property>
1601 - <property name="expand">True</property>
1602 - <property name="fill">True</property>
1603 - <property name="position">2</property>
1607 - <object class="GtkFrame" id="frame4">
1608 - <property name="visible">True</property>
1609 - <property name="can_focus">False</property>
1610 - <property name="label_xalign">0</property>
1611 - <property name="shadow_type">etched-out</property>
1613 - <object class="GtkAlignment" id="alignment4">
1614 - <property name="visible">True</property>
1615 - <property name="can_focus">False</property>
1616 - <property name="left_padding">12</property>
1622 - <child type="label">
1623 - <object class="GtkLabel" id="label18">
1624 - <property name="visible">True</property>
1625 - <property name="can_focus">False</property>
1626 - <property name="label" translatable="yes"><b>Etched out</b></property>
1627 - <property name="use_markup">True</property>
1632 - <property name="expand">True</property>
1633 - <property name="fill">True</property>
1634 - <property name="position">3</property>
1639 - <property name="expand">True</property>
1640 - <property name="fill">True</property>
1641 - <property name="position">6</property>
1645 - <object class="GtkSeparator" id="separator4">
1646 - <property name="visible">True</property>
1647 - <property name="can_focus">False</property>
1648 - <property name="orientation">vertical</property>
1651 - <property name="expand">False</property>
1652 - <property name="fill">True</property>
1653 - <property name="position">7</property>
1657 - <object class="GtkBox" id="box4">
1658 - <property name="visible">True</property>
1659 - <property name="can_focus">False</property>
1660 - <property name="orientation">vertical</property>
1661 - <property name="spacing">4</property>
1663 - <object class="GtkScrolledWindow" id="scrolledwindow1">
1664 - <property name="width_request">150</property>
1665 - <property name="visible">True</property>
1666 - <property name="can_focus">True</property>
1667 - <property name="vscrollbar_policy">always</property>
1668 - <property name="shadow_type">in</property>
1670 - <object class="GtkTreeView" id="treeview1">
1671 - <property name="visible">True</property>
1672 - <property name="can_focus">True</property>
1673 - <property name="model">liststore1</property>
1674 - <property name="headers_clickable">False</property>
1675 - <property name="search_column">0</property>
1676 - <child internal-child="selection">
1677 - <object class="GtkTreeSelection" id="treeview-selection"/>
1680 - <object class="GtkTreeViewColumn" id="treeviewcolumn3">
1681 - <property name="title" translatable="yes">Cool</property>
1683 - <object class="GtkCellRendererToggle" id="cellrenderertoggle1"/>
1685 - <attribute name="active">0</attribute>
1691 - <object class="GtkTreeViewColumn" id="treeviewcolumn1">
1692 - <property name="title" translatable="yes">Name</property>
1694 - <object class="GtkCellRendererText" id="cellrenderertext3"/>
1696 - <attribute name="text">1</attribute>
1702 - <object class="GtkTreeViewColumn" id="treeviewcolumn2">
1703 - <property name="title" translatable="yes">Nick</property>
1705 - <object class="GtkCellRendererText" id="cellrenderertext4"/>
1707 - <attribute name="text">2</attribute>
1716 - <property name="expand">True</property>
1717 - <property name="fill">True</property>
1718 - <property name="position">0</property>
1722 - <object class="GtkScrolledWindow" id="scrolledwindow2">
1723 - <property name="visible">True</property>
1724 - <property name="can_focus">True</property>
1725 - <property name="shadow_type">in</property>
1727 - <object class="GtkTextView" id="textview1">
1728 - <property name="visible">True</property>
1729 - <property name="can_focus">True</property>
1730 - <property name="buffer">textbuffer1</property>
1735 - <property name="expand">True</property>
1736 - <property name="fill">True</property>
1737 - <property name="position">1</property>
1742 - <property name="expand">True</property>
1743 - <property name="fill">True</property>
1744 - <property name="padding">6</property>
1745 - <property name="position">8</property>
1750 - <property name="expand">False</property>
1751 - <property name="fill">True</property>
1752 - <property name="padding">10</property>
1753 - <property name="position">2</property>
1757 - <object class="GtkSeparator" id="separator5">
1758 - <property name="visible">True</property>
1759 - <property name="can_focus">False</property>
1762 - <property name="expand">False</property>
1763 - <property name="fill">True</property>
1764 - <property name="position">3</property>
1768 - <object class="GtkBox" id="box5">
1769 - <property name="visible">True</property>
1770 - <property name="can_focus">False</property>
1771 - <property name="margin_left">5</property>
1772 - <property name="margin_right">5</property>
1773 - <property name="margin_bottom">5</property>
1774 - <property name="spacing">10</property>
1775 - <property name="homogeneous">True</property>
1777 - <object class="GtkNotebook" id="notebook1">
1778 - <property name="visible">True</property>
1779 - <property name="can_focus">True</property>
1781 - <object class="GtkBox" id="box6">
1782 - <property name="visible">True</property>
1783 - <property name="can_focus">False</property>
1784 - <property name="orientation">vertical</property>
1790 - <child type="tab">
1791 - <object class="GtkLabel" id="label5">
1792 - <property name="visible">True</property>
1793 - <property name="can_focus">False</property>
1794 - <property name="label" translatable="yes">page 1</property>
1797 - <property name="tab_fill">False</property>
1801 - <object class="GtkBox" id="box7">
1802 - <property name="visible">True</property>
1803 - <property name="can_focus">False</property>
1804 - <property name="orientation">vertical</property>
1810 - <property name="position">1</property>
1813 - <child type="tab">
1814 - <object class="GtkLabel" id="label6">
1815 - <property name="visible">True</property>
1816 - <property name="can_focus">False</property>
1817 - <property name="label" translatable="yes">page 2</property>
1820 - <property name="position">1</property>
1821 - <property name="tab_fill">False</property>
1825 - <object class="GtkBox" id="box8">
1826 - <property name="visible">True</property>
1827 - <property name="can_focus">False</property>
1828 - <property name="orientation">vertical</property>
1834 - <property name="position">2</property>
1837 - <child type="tab">
1838 - <object class="GtkLabel" id="label7">
1839 - <property name="visible">True</property>
1840 - <property name="can_focus">False</property>
1841 - <property name="label" translatable="yes">page 3</property>
1844 - <property name="position">2</property>
1845 - <property name="tab_fill">False</property>
1850 - <property name="expand">False</property>
1851 - <property name="fill">True</property>
1852 - <property name="position">0</property>
1856 - <object class="GtkNotebook" id="notebook2">
1857 - <property name="visible">True</property>
1858 - <property name="can_focus">True</property>
1859 - <property name="tab_pos">right</property>
1861 - <object class="GtkBox" id="box9">
1862 - <property name="visible">True</property>
1863 - <property name="can_focus">False</property>
1864 - <property name="orientation">vertical</property>
1870 - <child type="tab">
1871 - <object class="GtkLabel" id="label8">
1872 - <property name="visible">True</property>
1873 - <property name="can_focus">False</property>
1874 - <property name="label" translatable="yes">page 1</property>
1877 - <property name="tab_fill">False</property>
1881 - <object class="GtkBox" id="box10">
1882 - <property name="visible">True</property>
1883 - <property name="can_focus">False</property>
1884 - <property name="orientation">vertical</property>
1890 - <property name="position">1</property>
1893 - <child type="tab">
1894 - <object class="GtkLabel" id="label9">
1895 - <property name="visible">True</property>
1896 - <property name="can_focus">False</property>
1897 - <property name="label" translatable="yes">page 2</property>
1900 - <property name="position">1</property>
1901 - <property name="tab_fill">False</property>
1905 - <object class="GtkBox" id="box11">
1906 - <property name="visible">True</property>
1907 - <property name="can_focus">False</property>
1908 - <property name="orientation">vertical</property>
1914 - <property name="position">2</property>
1917 - <child type="tab">
1918 - <object class="GtkLabel" id="label10">
1919 - <property name="visible">True</property>
1920 - <property name="can_focus">False</property>
1921 - <property name="label" translatable="yes">page 3</property>
1924 - <property name="position">2</property>
1925 - <property name="tab_fill">False</property>
1930 - <property name="expand">False</property>
1931 - <property name="fill">True</property>
1932 - <property name="position">1</property>
1936 - <object class="GtkNotebook" id="notebook3">
1937 - <property name="visible">True</property>
1938 - <property name="can_focus">True</property>
1939 - <property name="tab_pos">bottom</property>
1941 - <object class="GtkBox" id="box12">
1942 - <property name="visible">True</property>
1943 - <property name="can_focus">False</property>
1944 - <property name="orientation">vertical</property>
1950 - <child type="tab">
1951 - <object class="GtkLabel" id="label11">
1952 - <property name="visible">True</property>
1953 - <property name="can_focus">False</property>
1954 - <property name="label" translatable="yes">page 1</property>
1957 - <property name="tab_fill">False</property>
1961 - <object class="GtkBox" id="box13">
1962 - <property name="visible">True</property>
1963 - <property name="can_focus">False</property>
1964 - <property name="orientation">vertical</property>
1970 - <property name="position">1</property>
1973 - <child type="tab">
1974 - <object class="GtkLabel" id="label12">
1975 - <property name="visible">True</property>
1976 - <property name="can_focus">False</property>
1977 - <property name="label" translatable="yes">page 2</property>
1980 - <property name="position">1</property>
1981 - <property name="tab_fill">False</property>
1985 - <object class="GtkBox" id="box14">
1986 - <property name="visible">True</property>
1987 - <property name="can_focus">False</property>
1988 - <property name="orientation">vertical</property>
1994 - <property name="position">2</property>
1997 - <child type="tab">
1998 - <object class="GtkLabel" id="label13">
1999 - <property name="visible">True</property>
2000 - <property name="can_focus">False</property>
2001 - <property name="label" translatable="yes">page 3</property>
2004 - <property name="position">2</property>
2005 - <property name="tab_fill">False</property>
2010 - <property name="expand">False</property>
2011 - <property name="fill">True</property>
2012 - <property name="position">2</property>
2016 - <object class="GtkNotebook" id="notebook4">
2017 - <property name="visible">True</property>
2018 - <property name="can_focus">True</property>
2019 - <property name="tab_pos">left</property>
2021 - <object class="GtkBox" id="box15">
2022 - <property name="visible">True</property>
2023 - <property name="can_focus">False</property>
2024 - <property name="orientation">vertical</property>
2030 - <child type="tab">
2031 - <object class="GtkLabel" id="label14">
2032 - <property name="visible">True</property>
2033 - <property name="can_focus">False</property>
2034 - <property name="label" translatable="yes">page 1</property>
2037 - <property name="tab_fill">False</property>
2041 - <object class="GtkBox" id="box16">
2042 - <property name="visible">True</property>
2043 - <property name="can_focus">False</property>
2044 - <property name="orientation">vertical</property>
2050 - <property name="position">1</property>
2053 - <child type="tab">
2054 - <object class="GtkLabel" id="label15">
2055 - <property name="visible">True</property>
2056 - <property name="can_focus">False</property>
2057 - <property name="label" translatable="yes">page 2</property>
2060 - <property name="position">1</property>
2061 - <property name="tab_fill">False</property>
2065 - <object class="GtkBox" id="box17">
2066 - <property name="visible">True</property>
2067 - <property name="can_focus">False</property>
2068 - <property name="orientation">vertical</property>
2074 - <property name="position">2</property>
2077 - <child type="tab">
2078 - <object class="GtkLabel" id="label16">
2079 - <property name="visible">True</property>
2080 - <property name="can_focus">False</property>
2081 - <property name="label" translatable="yes">page 3</property>
2084 - <property name="position">2</property>
2085 - <property name="tab_fill">False</property>
2090 - <property name="expand">False</property>
2091 - <property name="fill">True</property>
2092 - <property name="position">3</property>
2097 - <property name="expand">True</property>
2098 - <property name="fill">True</property>
2099 - <property name="position">4</property>
2103 - <object class="GtkStatusbar" id="statusbar1">
2104 - <property name="visible">True</property>
2105 - <property name="can_focus">False</property>
2108 - <property name="expand">False</property>
2109 - <property name="fill">True</property>
2110 - <property name="position">5</property>
2118 === modified file 'unico/Makefile.am'
2119 --- unico/Makefile.am 2011-07-28 09:12:33 +0000
2120 +++ unico/Makefile.am 2016-01-19 12:14:18 +0000
2124 - $(srcdir)/exponential-blur.h \
2125 - $(srcdir)/gtkroundedboxprivate.h \
2126 - $(srcdir)/raico-blur.h \
2127 $(srcdir)/unico-cairo-support.h \
2128 $(srcdir)/unico-draw.h \
2129 $(srcdir)/unico-engine.h \
2131 $(srcdir)/unico-types.h
2134 - $(srcdir)/exponential-blur.c \
2135 - $(srcdir)/gtkroundedbox.c \
2136 - $(srcdir)/raico-blur.c \
2137 $(srcdir)/unico-cairo-support.c \
2138 $(srcdir)/unico-draw.c \
2139 $(srcdir)/unico-engine.c \
2141 === removed file 'unico/exponential-blur.c'
2142 --- unico/exponential-blur.c 2011-07-13 10:21:30 +0000
2143 +++ unico/exponential-blur.c 1970-01-01 00:00:00 +0000
2145 -/* The Unico Theming Engine for Gtk+.
2146 - * Copyright (C) 2009 Canonical Ltd
2148 - * This library is free software; you can redistribute it and/or
2149 - * modify it under the terms of the GNU Lesser General Public
2150 - * License as published by the Free Software Foundation; either
2151 - * version 2 of the License, or (at your option) any later version.
2153 - * This library is distributed in the hope that it will be useful,
2154 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
2155 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2156 - * Lesser General Public License for more details.
2158 - * You should have received a copy of the GNU Lesser General Public
2159 - * License along with this library; if not, write to the Free
2160 - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
2161 - * MA 02110-1301, USA.
2163 - * Authored by Mirco "MacSlow" Mueller <mirco.mueller@canonical.com>
2166 - * based on exponential-blur algorithm by Jani Huhtanen
2170 -/* FIXME: not working yet, unfinished */
2174 -#include "exponential-blur.h"
2177 -_blurinner (guchar* pixel,
2187 -_blurrow (guchar* pixels,
2197 -_blurcol (guchar* pixels,
2207 -_expblur (guchar* pixels,
2216 -surface_exponential_blur (cairo_surface_t* surface,
2222 - cairo_format_t format;
2224 - /* sanity checks are done in raico-blur.c */
2226 - /* before we mess with the surface execute any pending drawing */
2227 - cairo_surface_flush (surface);
2229 - pixels = cairo_image_surface_get_data (surface);
2230 - width = cairo_image_surface_get_width (surface);
2231 - height = cairo_image_surface_get_height (surface);
2232 - format = cairo_image_surface_get_format (surface);
2236 - case CAIRO_FORMAT_ARGB32:
2237 - _expblur (pixels, width, height, 4, radius, 16, 7);
2239 - case CAIRO_FORMAT_RGB24:
2240 - _expblur (pixels, width, height, 3, radius, 16, 7);
2242 - case CAIRO_FORMAT_A8:
2243 - _expblur (pixels, width, height, 1, radius, 16, 7);
2249 - /* inform cairo we altered the surfaces contents */
2250 - cairo_surface_mark_dirty (surface);
2254 - * pixels image-data
2255 - * width image-width
2256 - * height image-height
2257 - * channels image-channels
2259 - * in-place blur of image 'img' with kernel of approximate radius 'radius'
2261 - * blurs with two sided exponential impulse response
2263 - * aprec = precision of alpha parameter in fixed-point format 0.aprec
2265 - * zprec = precision of state parameters zR,zG,zB and zA in fp format 8.zprec
2268 -_expblur (guchar* pixels,
2283 - /* calculate the alpha such that 90% of
2284 - * the kernel is within the radius.
2285 - * (Kernel extends to infinity) */
2286 - alpha = (gint) ((1 << aprec) * (1.0f - expf (-2.3f / (radius + 1.f))));
2288 - for (; row < height; row++)
2298 - for(; col < width; col++)
2312 -_blurinner (guchar* pixel,
2331 - *zR += (alpha * ((R << zprec) - *zR)) >> aprec;
2332 - *zG += (alpha * ((G << zprec) - *zG)) >> aprec;
2333 - *zB += (alpha * ((B << zprec) - *zB)) >> aprec;
2334 - *zA += (alpha * ((A << zprec) - *zA)) >> aprec;
2336 - *pixel = *zR >> zprec;
2337 - *(pixel + 1) = *zG >> zprec;
2338 - *(pixel + 2) = *zB >> zprec;
2339 - *(pixel + 3) = *zA >> zprec;
2343 -_blurrow (guchar* pixels,
2359 - scanline = &(pixels[line * width * channels]);
2361 - zR = *scanline << zprec;
2362 - zG = *(scanline + 1) << zprec;
2363 - zB = *(scanline + 2) << zprec;
2364 - zA = *(scanline + 3) << zprec;
2366 - for (index = 0; index < width; index ++)
2367 - _blurinner (&scanline[index * channels],
2376 - for (index = width - 2; index >= 0; index--)
2377 - _blurinner (&scanline[index * channels],
2388 -_blurcol (guchar* pixels,
2406 - ptr += x * channels;
2408 - zR = *((guchar*) ptr ) << zprec;
2409 - zG = *((guchar*) ptr + 1) << zprec;
2410 - zB = *((guchar*) ptr + 2) << zprec;
2411 - zA = *((guchar*) ptr + 3) << zprec;
2413 - for (index = width; index < (height - 1) * width; index += width)
2414 - _blurinner ((guchar*) &ptr[index * channels],
2423 - for (index = (height - 2) * width; index >= 0; index -= width)
2424 - _blurinner ((guchar*) &ptr[index * channels],
2434 === removed file 'unico/exponential-blur.h'
2435 --- unico/exponential-blur.h 2011-08-09 22:26:09 +0000
2436 +++ unico/exponential-blur.h 1970-01-01 00:00:00 +0000
2438 -/* The Unico Theming Engine for Gtk+.
2439 - * Copyright (C) 2009 Canonical Ltd
2441 - * This library is free software; you can redistribute it and/or
2442 - * modify it under the terms of the GNU Lesser General Public
2443 - * License as published by the Free Software Foundation; either
2444 - * version 2 of the License, or (at your option) any later version.
2446 - * This library is distributed in the hope that it will be useful,
2447 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
2448 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2449 - * Lesser General Public License for more details.
2451 - * You should have received a copy of the GNU Lesser General Public
2452 - * License along with this library; if not, write to the Free
2453 - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
2454 - * MA 02110-1301, USA.
2456 - * Authored by Mirco "MacSlow" Mueller <mirco.mueller@canonical.com>
2459 - * based on exponential-blur algorithm by Jani Huhtanen
2463 -#ifndef _EXPONENTIAL_BLUR_H
2464 -#define _EXPONENTIAL_BLUR_H
2470 -surface_exponential_blur (cairo_surface_t* surface,
2473 -#endif // _EXPONENTIAL_BLUR_H
2476 === removed file 'unico/gtkroundedbox.c'
2477 --- unico/gtkroundedbox.c 2012-02-08 12:54:39 +0000
2478 +++ unico/gtkroundedbox.c 1970-01-01 00:00:00 +0000
2480 -/* GTK - The GIMP Toolkit
2481 - * Copyright (C) 2011 Benjamin Otte <otte@gnome.org>
2483 - * This library is free software; you can redistribute it and/or
2484 - * modify it under the terms of the GNU Lesser General Public
2485 - * License as published by the Free Software Foundation; either
2486 - * version 2 of the License, or (at your option) any later version.
2488 - * This library is distributed in the hope that it will be useful,
2489 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
2490 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2491 - * Lesser General Public License for more details.
2493 - * You should have received a copy of the GNU Lesser General Public
2494 - * License along with this library; if not, write to the
2495 - * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
2496 - * Boston, MA 02111-1307, USA.
2499 -#include <string.h>
2502 -#include "gtkroundedboxprivate.h"
2505 -_gtk_css_number_get (const GtkCssNumber *number,
2506 - double one_hundred_percent)
2508 - if (number->unit == GTK_CSS_PERCENT)
2509 - return number->value * one_hundred_percent * 0.01;
2511 - return number->value;
2515 - * _gtk_rounded_box_init_rect:
2516 - * @box: box to initialize
2517 - * @x: x coordinate of box
2518 - * @y: y coordinate of box
2519 - * @width: width of box
2520 - * @height: height of box
2522 - * Initializes the given @box to represent the given rectangle.
2526 -_gtk_rounded_box_init_rect (GtkRoundedBox *box,
2532 - memset (box, 0, sizeof (GtkRoundedBox));
2536 - box->box.width = width;
2537 - box->box.height = height;
2540 -/* clamp border radius, following CSS specs */
2542 -gtk_rounded_box_clamp_border_radius (GtkRoundedBox *box)
2544 - gdouble factor = 1.0;
2546 - /* note: division by zero leads to +INF, which is > factor, so will be ignored */
2547 - factor = MIN (factor, box->box.width / (box->corner[GTK_CSS_TOP_LEFT].horizontal +
2548 - box->corner[GTK_CSS_TOP_RIGHT].horizontal));
2549 - factor = MIN (factor, box->box.height / (box->corner[GTK_CSS_TOP_RIGHT].vertical +
2550 - box->corner[GTK_CSS_BOTTOM_RIGHT].vertical));
2551 - factor = MIN (factor, box->box.width / (box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal +
2552 - box->corner[GTK_CSS_BOTTOM_LEFT].horizontal));
2553 - factor = MIN (factor, box->box.height / (box->corner[GTK_CSS_TOP_LEFT].vertical +
2554 - box->corner[GTK_CSS_BOTTOM_LEFT].vertical));
2556 - box->corner[GTK_CSS_TOP_LEFT].horizontal *= factor;
2557 - box->corner[GTK_CSS_TOP_LEFT].vertical *= factor;
2558 - box->corner[GTK_CSS_TOP_RIGHT].horizontal *= factor;
2559 - box->corner[GTK_CSS_TOP_RIGHT].vertical *= factor;
2560 - box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal *= factor;
2561 - box->corner[GTK_CSS_BOTTOM_RIGHT].vertical *= factor;
2562 - box->corner[GTK_CSS_BOTTOM_LEFT].horizontal *= factor;
2563 - box->corner[GTK_CSS_BOTTOM_LEFT].vertical *= factor;
2567 -_gtk_rounded_box_apply_border_radius (GtkRoundedBox *box,
2568 - GtkThemingEngine *engine,
2569 - GtkStateFlags state,
2570 - GtkJunctionSides junction)
2572 - GtkCssBorderCornerRadius *corner[4];
2575 - gtk_theming_engine_get (engine, state,
2576 - /* Can't use border-radius as it's an int for
2577 - * backwards compat */
2578 - "border-top-left-radius", &corner[GTK_CSS_TOP_LEFT],
2579 - "border-top-right-radius", &corner[GTK_CSS_TOP_RIGHT],
2580 - "border-bottom-right-radius", &corner[GTK_CSS_BOTTOM_RIGHT],
2581 - "border-bottom-left-radius", &corner[GTK_CSS_BOTTOM_LEFT],
2584 - if (corner[GTK_CSS_TOP_LEFT] && (junction & GTK_JUNCTION_CORNER_TOPLEFT) == 0)
2586 - box->corner[GTK_CSS_TOP_LEFT].horizontal = _gtk_css_number_get (&corner[GTK_CSS_TOP_LEFT]->horizontal,
2588 - box->corner[GTK_CSS_TOP_LEFT].vertical = _gtk_css_number_get (&corner[GTK_CSS_TOP_LEFT]->vertical,
2591 - if (corner[GTK_CSS_TOP_RIGHT] && (junction & GTK_JUNCTION_CORNER_TOPRIGHT) == 0)
2593 - box->corner[GTK_CSS_TOP_RIGHT].horizontal = _gtk_css_number_get (&corner[GTK_CSS_TOP_RIGHT]->horizontal,
2595 - box->corner[GTK_CSS_TOP_RIGHT].vertical = _gtk_css_number_get (&corner[GTK_CSS_TOP_RIGHT]->vertical,
2598 - if (corner[GTK_CSS_BOTTOM_RIGHT] && (junction & GTK_JUNCTION_CORNER_BOTTOMRIGHT) == 0)
2600 - box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal = _gtk_css_number_get (&corner[GTK_CSS_BOTTOM_RIGHT]->horizontal,
2602 - box->corner[GTK_CSS_BOTTOM_RIGHT].vertical = _gtk_css_number_get (&corner[GTK_CSS_BOTTOM_RIGHT]->vertical,
2605 - if (corner[GTK_CSS_BOTTOM_LEFT] && (junction & GTK_JUNCTION_CORNER_BOTTOMLEFT) == 0)
2607 - box->corner[GTK_CSS_BOTTOM_LEFT].horizontal = _gtk_css_number_get (&corner[GTK_CSS_BOTTOM_LEFT]->horizontal,
2609 - box->corner[GTK_CSS_BOTTOM_LEFT].vertical = _gtk_css_number_get (&corner[GTK_CSS_BOTTOM_LEFT]->vertical,
2613 - gtk_rounded_box_clamp_border_radius (box);
2615 - for (i = 0; i < 4; i++)
2616 - g_free (corner[i]);
2620 -gtk_css_border_radius_grow (GtkRoundedBoxCorner *corner,
2621 - double horizontal,
2624 - corner->horizontal += horizontal;
2625 - corner->vertical += vertical;
2627 - if (corner->horizontal <= 0 || corner->vertical <= 0)
2629 - corner->horizontal = 0;
2630 - corner->vertical = 0;
2634 -_gtk_rounded_box_grow (GtkRoundedBox *box,
2640 - if (box->box.width + left + right < 0)
2642 - box->box.x -= left * box->box.width / (left + right);
2643 - box->box.width = 0;
2647 - box->box.x -= left;
2648 - box->box.width += left + right;
2651 - if (box->box.height + bottom + right < 0)
2653 - box->box.y -= top * box->box.height / (top + bottom);
2654 - box->box.height = 0;
2658 - box->box.y -= top;
2659 - box->box.height += top + bottom;
2662 - gtk_css_border_radius_grow (&box->corner[GTK_CSS_TOP_LEFT], left, top);
2663 - gtk_css_border_radius_grow (&box->corner[GTK_CSS_TOP_RIGHT], right, bottom);
2664 - gtk_css_border_radius_grow (&box->corner[GTK_CSS_BOTTOM_RIGHT], right, top);
2665 - gtk_css_border_radius_grow (&box->corner[GTK_CSS_BOTTOM_LEFT], left, bottom);
2669 -_gtk_rounded_box_shrink (GtkRoundedBox *box,
2675 - _gtk_rounded_box_grow (box, -top, -right, -bottom, -left);
2679 -_gtk_rounded_box_move (GtkRoundedBox *box,
2688 -_cairo_ellipsis (cairo_t *cr,
2689 - double xc, double yc,
2690 - double xradius, double yradius,
2691 - double angle1, double angle2)
2693 - if (xradius <= 0.0 || yradius <= 0.0)
2695 - cairo_line_to (cr, xc, yc);
2700 - cairo_translate (cr, xc, yc);
2701 - cairo_scale (cr, xradius, yradius);
2702 - cairo_arc (cr, 0, 0, 1.0, angle1, angle2);
2703 - cairo_restore (cr);
2707 -_cairo_ellipsis_negative (cairo_t *cr,
2708 - double xc, double yc,
2709 - double xradius, double yradius,
2710 - double angle1, double angle2)
2712 - if (xradius <= 0.0 || yradius <= 0.0)
2714 - cairo_line_to (cr, xc, yc);
2719 - cairo_translate (cr, xc, yc);
2720 - cairo_scale (cr, xradius, yradius);
2721 - cairo_arc_negative (cr, 0, 0, 1.0, angle1, angle2);
2722 - cairo_restore (cr);
2726 -_gtk_rounded_box_path (const GtkRoundedBox *box,
2729 - cairo_new_sub_path (cr);
2731 - _cairo_ellipsis (cr,
2732 - box->box.x + box->corner[GTK_CSS_TOP_LEFT].horizontal,
2733 - box->box.y + box->corner[GTK_CSS_TOP_LEFT].vertical,
2734 - box->corner[GTK_CSS_TOP_LEFT].horizontal,
2735 - box->corner[GTK_CSS_TOP_LEFT].vertical,
2736 - G_PI, 3 * G_PI / 2);
2737 - _cairo_ellipsis (cr,
2738 - box->box.x + box->box.width - box->corner[GTK_CSS_TOP_RIGHT].horizontal,
2739 - box->box.y + box->corner[GTK_CSS_TOP_RIGHT].vertical,
2740 - box->corner[GTK_CSS_TOP_RIGHT].horizontal,
2741 - box->corner[GTK_CSS_TOP_RIGHT].vertical,
2743 - _cairo_ellipsis (cr,
2744 - box->box.x + box->box.width - box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
2745 - box->box.y + box->box.height - box->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
2746 - box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
2747 - box->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
2749 - _cairo_ellipsis (cr,
2750 - box->box.x + box->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
2751 - box->box.y + box->box.height - box->corner[GTK_CSS_BOTTOM_LEFT].vertical,
2752 - box->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
2753 - box->corner[GTK_CSS_BOTTOM_LEFT].vertical,
2756 - cairo_close_path (cr);
2760 -_gtk_rounded_box_guess_length (const GtkRoundedBox *box,
2764 - GtkCssCorner before, after;
2767 - after = (side + 1) % 4;
2770 - length = box->box.height
2771 - - box->corner[before].vertical
2772 - - box->corner[after].vertical;
2774 - length = box->box.width
2775 - - box->corner[before].horizontal
2776 - - box->corner[after].horizontal;
2778 - length += G_PI * 0.125 * (box->corner[before].horizontal
2779 - + box->corner[before].vertical
2780 - + box->corner[after].horizontal
2781 - + box->corner[after].vertical);
2787 -_gtk_rounded_box_path_side (const GtkRoundedBox *box,
2794 - _cairo_ellipsis (cr,
2795 - box->box.x + box->corner[GTK_CSS_TOP_LEFT].horizontal,
2796 - box->box.y + box->corner[GTK_CSS_TOP_LEFT].vertical,
2797 - box->corner[GTK_CSS_TOP_LEFT].horizontal,
2798 - box->corner[GTK_CSS_TOP_LEFT].vertical,
2799 - 5 * G_PI / 4, 3 * G_PI / 2);
2800 - _cairo_ellipsis (cr,
2801 - box->box.x + box->box.width - box->corner[GTK_CSS_TOP_RIGHT].horizontal,
2802 - box->box.y + box->corner[GTK_CSS_TOP_RIGHT].vertical,
2803 - box->corner[GTK_CSS_TOP_RIGHT].horizontal,
2804 - box->corner[GTK_CSS_TOP_RIGHT].vertical,
2805 - - G_PI / 2, -G_PI / 4);
2807 - case GTK_CSS_RIGHT:
2808 - _cairo_ellipsis (cr,
2809 - box->box.x + box->box.width - box->corner[GTK_CSS_TOP_RIGHT].horizontal,
2810 - box->box.y + box->corner[GTK_CSS_TOP_RIGHT].vertical,
2811 - box->corner[GTK_CSS_TOP_RIGHT].horizontal,
2812 - box->corner[GTK_CSS_TOP_RIGHT].vertical,
2814 - _cairo_ellipsis (cr,
2815 - box->box.x + box->box.width - box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
2816 - box->box.y + box->box.height - box->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
2817 - box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
2818 - box->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
2821 - case GTK_CSS_BOTTOM:
2822 - _cairo_ellipsis (cr,
2823 - box->box.x + box->box.width - box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
2824 - box->box.y + box->box.height - box->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
2825 - box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
2826 - box->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
2827 - G_PI / 4, G_PI / 2);
2828 - _cairo_ellipsis (cr,
2829 - box->box.x + box->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
2830 - box->box.y + box->box.height - box->corner[GTK_CSS_BOTTOM_LEFT].vertical,
2831 - box->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
2832 - box->corner[GTK_CSS_BOTTOM_LEFT].vertical,
2833 - G_PI / 2, 3 * G_PI / 4);
2835 - case GTK_CSS_LEFT:
2836 - _cairo_ellipsis (cr,
2837 - box->box.x + box->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
2838 - box->box.y + box->box.height - box->corner[GTK_CSS_BOTTOM_LEFT].vertical,
2839 - box->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
2840 - box->corner[GTK_CSS_BOTTOM_LEFT].vertical,
2841 - 3 * G_PI / 4, G_PI);
2842 - _cairo_ellipsis (cr,
2843 - box->box.x + box->corner[GTK_CSS_TOP_LEFT].horizontal,
2844 - box->box.y + box->corner[GTK_CSS_TOP_LEFT].vertical,
2845 - box->corner[GTK_CSS_TOP_LEFT].horizontal,
2846 - box->corner[GTK_CSS_TOP_LEFT].vertical,
2847 - G_PI, 5 * G_PI / 4);
2850 - g_assert_not_reached ();
2856 -_gtk_rounded_box_path_top (const GtkRoundedBox *outer,
2857 - const GtkRoundedBox *inner,
2860 - cairo_new_sub_path (cr);
2862 - _cairo_ellipsis (cr,
2863 - outer->box.x + outer->corner[GTK_CSS_TOP_LEFT].horizontal,
2864 - outer->box.y + outer->corner[GTK_CSS_TOP_LEFT].vertical,
2865 - outer->corner[GTK_CSS_TOP_LEFT].horizontal,
2866 - outer->corner[GTK_CSS_TOP_LEFT].vertical,
2867 - 5 * G_PI / 4, 3 * G_PI / 2);
2868 - _cairo_ellipsis (cr,
2869 - outer->box.x + outer->box.width - outer->corner[GTK_CSS_TOP_RIGHT].horizontal,
2870 - outer->box.y + outer->corner[GTK_CSS_TOP_RIGHT].vertical,
2871 - outer->corner[GTK_CSS_TOP_RIGHT].horizontal,
2872 - outer->corner[GTK_CSS_TOP_RIGHT].vertical,
2873 - - G_PI / 2, -G_PI / 4);
2875 - _cairo_ellipsis_negative (cr,
2876 - inner->box.x + inner->box.width - inner->corner[GTK_CSS_TOP_RIGHT].horizontal,
2877 - inner->box.y + inner->corner[GTK_CSS_TOP_RIGHT].vertical,
2878 - inner->corner[GTK_CSS_TOP_RIGHT].horizontal,
2879 - inner->corner[GTK_CSS_TOP_RIGHT].vertical,
2880 - -G_PI / 4, - G_PI / 2);
2881 - _cairo_ellipsis_negative (cr,
2882 - inner->box.x + inner->corner[GTK_CSS_TOP_LEFT].horizontal,
2883 - inner->box.y + inner->corner[GTK_CSS_TOP_LEFT].vertical,
2884 - inner->corner[GTK_CSS_TOP_LEFT].horizontal,
2885 - inner->corner[GTK_CSS_TOP_LEFT].vertical,
2886 - 3 * G_PI / 2, 5 * G_PI / 4);
2888 - cairo_close_path (cr);
2892 -_gtk_rounded_box_path_right (const GtkRoundedBox *outer,
2893 - const GtkRoundedBox *inner,
2896 - cairo_new_sub_path (cr);
2898 - _cairo_ellipsis (cr,
2899 - outer->box.x + outer->box.width - outer->corner[GTK_CSS_TOP_RIGHT].horizontal,
2900 - outer->box.y + outer->corner[GTK_CSS_TOP_RIGHT].vertical,
2901 - outer->corner[GTK_CSS_TOP_RIGHT].horizontal,
2902 - outer->corner[GTK_CSS_TOP_RIGHT].vertical,
2904 - _cairo_ellipsis (cr,
2905 - outer->box.x + outer->box.width - outer->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
2906 - outer->box.y + outer->box.height - outer->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
2907 - outer->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
2908 - outer->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
2911 - _cairo_ellipsis_negative (cr,
2912 - inner->box.x + inner->box.width - inner->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
2913 - inner->box.y + inner->box.height - inner->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
2914 - inner->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
2915 - inner->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
2917 - _cairo_ellipsis_negative (cr,
2918 - inner->box.x + inner->box.width - inner->corner[GTK_CSS_TOP_RIGHT].horizontal,
2919 - inner->box.y + inner->corner[GTK_CSS_TOP_RIGHT].vertical,
2920 - inner->corner[GTK_CSS_TOP_RIGHT].horizontal,
2921 - inner->corner[GTK_CSS_TOP_RIGHT].vertical,
2924 - cairo_close_path (cr);
2928 -_gtk_rounded_box_path_bottom (const GtkRoundedBox *outer,
2929 - const GtkRoundedBox *inner,
2932 - cairo_new_sub_path (cr);
2934 - _cairo_ellipsis (cr,
2935 - outer->box.x + outer->box.width - outer->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
2936 - outer->box.y + outer->box.height - outer->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
2937 - outer->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
2938 - outer->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
2939 - G_PI / 4, G_PI / 2);
2940 - _cairo_ellipsis (cr,
2941 - outer->box.x + outer->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
2942 - outer->box.y + outer->box.height - outer->corner[GTK_CSS_BOTTOM_LEFT].vertical,
2943 - outer->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
2944 - outer->corner[GTK_CSS_BOTTOM_LEFT].vertical,
2945 - G_PI / 2, 3 * G_PI / 4);
2947 - _cairo_ellipsis_negative (cr,
2948 - inner->box.x + inner->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
2949 - inner->box.y + inner->box.height - inner->corner[GTK_CSS_BOTTOM_LEFT].vertical,
2950 - inner->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
2951 - inner->corner[GTK_CSS_BOTTOM_LEFT].vertical,
2952 - 3 * G_PI / 4, G_PI / 2);
2953 - _cairo_ellipsis_negative (cr,
2954 - inner->box.x + inner->box.width - inner->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
2955 - inner->box.y + inner->box.height - inner->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
2956 - inner->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
2957 - inner->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
2958 - G_PI / 2, G_PI / 4);
2960 - cairo_close_path (cr);
2964 -_gtk_rounded_box_path_left (const GtkRoundedBox *outer,
2965 - const GtkRoundedBox *inner,
2968 - cairo_new_sub_path (cr);
2970 - _cairo_ellipsis (cr,
2971 - outer->box.x + outer->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
2972 - outer->box.y + outer->box.height - outer->corner[GTK_CSS_BOTTOM_LEFT].vertical,
2973 - outer->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
2974 - outer->corner[GTK_CSS_BOTTOM_LEFT].vertical,
2975 - 3 * G_PI / 4, G_PI);
2976 - _cairo_ellipsis (cr,
2977 - outer->box.x + outer->corner[GTK_CSS_TOP_LEFT].horizontal,
2978 - outer->box.y + outer->corner[GTK_CSS_TOP_LEFT].vertical,
2979 - outer->corner[GTK_CSS_TOP_LEFT].horizontal,
2980 - outer->corner[GTK_CSS_TOP_LEFT].vertical,
2981 - G_PI, 5 * G_PI / 4);
2983 - _cairo_ellipsis_negative (cr,
2984 - inner->box.x + inner->corner[GTK_CSS_TOP_LEFT].horizontal,
2985 - inner->box.y + inner->corner[GTK_CSS_TOP_LEFT].vertical,
2986 - inner->corner[GTK_CSS_TOP_LEFT].horizontal,
2987 - inner->corner[GTK_CSS_TOP_LEFT].vertical,
2988 - 5 * G_PI / 4, G_PI);
2989 - _cairo_ellipsis_negative (cr,
2990 - inner->box.x + inner->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
2991 - inner->box.y + inner->box.height - inner->corner[GTK_CSS_BOTTOM_LEFT].vertical,
2992 - inner->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
2993 - inner->corner[GTK_CSS_BOTTOM_LEFT].vertical,
2994 - G_PI, 3 * G_PI / 4);
2996 - cairo_close_path (cr);
3000 -_gtk_rounded_box_clip_path (const GtkRoundedBox *box,
3003 - cairo_rectangle (cr,
3004 - box->box.x, box->box.y,
3005 - box->box.width, box->box.height);
3008 === removed file 'unico/gtkroundedboxprivate.h'
3009 --- unico/gtkroundedboxprivate.h 2012-02-08 12:54:39 +0000
3010 +++ unico/gtkroundedboxprivate.h 1970-01-01 00:00:00 +0000
3012 - /* GTK - The GIMP Toolkit
3013 - * Copyright (C) 2011 Benjamin Otte <otte@gnome.org>
3015 - * This library is free software; you can redistribute it and/or
3016 - * modify it under the terms of the GNU Lesser General Public
3017 - * License as published by the Free Software Foundation; either
3018 - * version 2 of the License, or (at your option) any later version.
3020 - * This library is distributed in the hope that it will be useful,
3021 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
3022 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3023 - * Lesser General Public License for more details.
3025 - * You should have received a copy of the GNU Lesser General Public
3026 - * License along with this library; if not, write to the
3027 - * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
3028 - * Boston, MA 02111-1307, USA.
3031 -#ifndef __GTK_ROUNDED_BOX_PRIVATE_H__
3032 -#define __GTK_ROUNDED_BOX_PRIVATE_H__
3035 -#include <gtk/gtk.h>
3037 -#include "unico-types.h"
3041 -typedef struct _GtkRoundedBox GtkRoundedBox;
3042 -typedef struct _GtkRoundedBoxCorner GtkRoundedBoxCorner;
3044 -struct _GtkRoundedBoxCorner {
3045 - double horizontal;
3049 -struct _GtkRoundedBox {
3050 - cairo_rectangle_t box;
3051 - GtkRoundedBoxCorner corner[4];
3054 -double _gtk_css_number_get (const GtkCssNumber *number,
3055 - double one_hundred_percent);
3057 -void _gtk_rounded_box_init_rect (GtkRoundedBox *box,
3063 -void _gtk_rounded_box_apply_border_radius (GtkRoundedBox *box,
3064 - GtkThemingEngine *engine,
3065 - GtkStateFlags state,
3066 - GtkJunctionSides junction);
3068 -void _gtk_rounded_box_grow (GtkRoundedBox *box,
3074 -void _gtk_rounded_box_shrink (GtkRoundedBox *box,
3080 -void _gtk_rounded_box_move (GtkRoundedBox *box,
3084 -void _gtk_rounded_box_path (const GtkRoundedBox *box,
3087 -void _gtk_rounded_box_path_top (const GtkRoundedBox *outer,
3088 - const GtkRoundedBox *inner,
3091 -void _gtk_rounded_box_path_right (const GtkRoundedBox *outer,
3092 - const GtkRoundedBox *inner,
3095 -void _gtk_rounded_box_path_bottom (const GtkRoundedBox *outer,
3096 - const GtkRoundedBox *inner,
3099 -void _gtk_rounded_box_path_left (const GtkRoundedBox *outer,
3100 - const GtkRoundedBox *inner,
3103 -void _gtk_rounded_box_clip_path (const GtkRoundedBox *box,
3108 -#endif /* __GTK_ROUNDED_BOX_PRIVATE_H__ */
3110 === removed file 'unico/raico-blur.c'
3111 --- unico/raico-blur.c 2011-08-09 22:26:09 +0000
3112 +++ unico/raico-blur.c 1970-01-01 00:00:00 +0000
3114 -/* The Unico Theming Engine for Gtk+.
3115 - * Copyright (C) 2009 Canonical Ltd
3117 - * This library is free software; you can redistribute it and/or
3118 - * modify it under the terms of the GNU Lesser General Public
3119 - * License as published by the Free Software Foundation; either
3120 - * version 2 of the License, or (at your option) any later version.
3122 - * This library is distributed in the hope that it will be useful,
3123 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
3124 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3125 - * Lesser General Public License for more details.
3127 - * You should have received a copy of the GNU Lesser General Public
3128 - * License along with this library; if not, write to the Free
3129 - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
3130 - * MA 02110-1301, USA.
3132 - * Authored by Mirco "MacSlow" Mueller <mirco.mueller@canonical.com>
3136 -#include "exponential-blur.h"
3137 -#include "raico-blur.h"
3139 -struct _raico_blur_private_t
3141 - raico_blur_quality_t quality; /* low, medium, high */
3142 - guint radius; /* blur-radius */
3146 -raico_blur_create (void)
3148 - raico_blur_t* blur = NULL;
3149 - raico_blur_private_t* priv = NULL;
3151 - blur = g_new0 (raico_blur_t, 1);
3154 - g_debug ("raico_blur_create(): could not allocate blur struct");
3158 - priv = g_new0 (raico_blur_private_t, 1);
3161 - g_debug ("raico_blur_create(): could not allocate priv struct");
3162 - g_free ((gpointer) blur);
3166 - priv->quality = RAICO_BLUR_QUALITY_LOW;
3170 - blur->priv = priv;
3175 -raico_blur_quality_t
3176 -raico_blur_get_quality (raico_blur_t* blur)
3178 - g_assert (blur != NULL);
3180 - return blur->priv->quality;
3184 -raico_blur_set_quality (raico_blur_t* blur,
3185 - raico_blur_quality_t quality)
3189 - g_debug ("raico_blur_set_quality(): NULL blur-pointer passed");
3193 - blur->priv->quality = quality;
3197 -raico_blur_get_radius (raico_blur_t* blur)
3199 - g_assert (blur != NULL);
3201 - return blur->priv->radius;
3205 -raico_blur_set_radius (raico_blur_t* blur,
3210 - g_debug ("raico_blur_set_radius(): NULL blur-pointer passed");
3214 - blur->priv->radius = radius;
3218 -raico_blur_apply (raico_blur_t* blur,
3219 - cairo_surface_t* surface)
3221 - cairo_format_t format;
3223 - /* sanity checks */
3226 - g_debug ("raico_blur_apply(): NULL blur-pointer passed");
3232 - g_debug ("raico_blur_apply(): NULL surface-pointer passed");
3236 - if (cairo_surface_status (surface) != CAIRO_STATUS_SUCCESS)
3238 - g_debug ("raico_blur_apply(): invalid surface status");
3242 - if (cairo_surface_get_type (surface) != CAIRO_SURFACE_TYPE_IMAGE)
3244 - g_debug ("raico_blur_apply(): non-image surface passed");
3248 - format = cairo_image_surface_get_format (surface);
3249 - if (format != CAIRO_FORMAT_A8 &&
3250 - format != CAIRO_FORMAT_RGB24 &&
3251 - format != CAIRO_FORMAT_ARGB32)
3253 - g_debug ("raico_blur_apply(): unsupported image-format");
3257 - /* stupid, but you never know */
3258 - if (blur->priv->radius == 0)
3261 - /* now do the real work */
3262 - switch (blur->priv->quality)
3265 - case RAICO_BLUR_QUALITY_HIGH:
3266 - case RAICO_BLUR_QUALITY_MEDIUM:
3267 - /* Not implemented yet */
3268 - //surface_gaussian_blur (surface, blur->priv->radius);
3269 - case RAICO_BLUR_QUALITY_LOW:
3270 - surface_exponential_blur (surface, blur->priv->radius);
3276 -raico_blur_destroy (raico_blur_t* blur)
3280 - g_debug ("raico_blur_destroy(): invalid blur-pointer passed");
3284 - g_free ((gpointer) blur->priv);
3285 - g_free ((gpointer) blur);
3288 === removed file 'unico/raico-blur.h'
3289 --- unico/raico-blur.h 2011-08-09 22:26:09 +0000
3290 +++ unico/raico-blur.h 1970-01-01 00:00:00 +0000
3292 -/* The Unico Theming Engine for Gtk+.
3293 - * Copyright (C) 2009 Canonical Ltd
3295 - * This library is free software; you can redistribute it and/or
3296 - * modify it under the terms of the GNU Lesser General Public
3297 - * License as published by the Free Software Foundation; either
3298 - * version 2 of the License, or (at your option) any later version.
3300 - * This library is distributed in the hope that it will be useful,
3301 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
3302 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3303 - * Lesser General Public License for more details.
3305 - * You should have received a copy of the GNU Lesser General Public
3306 - * License along with this library; if not, write to the Free
3307 - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
3308 - * MA 02110-1301, USA.
3310 - * Authored by Mirco "MacSlow" Mueller <mirco.mueller@canonical.com>
3314 -#ifndef _RAICO_BLUR_H
3315 -#define _RAICO_BLUR_H
3320 -typedef enum _raico_blur_quality_t
3322 - RAICO_BLUR_QUALITY_LOW = 0, /* low quality, but fast, maybe interactive */
3323 - RAICO_BLUR_QUALITY_MEDIUM, /* compromise between speed and quality */
3324 - RAICO_BLUR_QUALITY_HIGH /* quality before speed */
3325 -} raico_blur_quality_t;
3327 -typedef struct _raico_blur_private_t raico_blur_private_t;
3329 -typedef struct _raico_blur_t
3331 - raico_blur_private_t* priv;
3335 -raico_blur_create (void);
3337 -raico_blur_quality_t
3338 -raico_blur_get_quality (raico_blur_t* blur);
3341 -raico_blur_set_quality (raico_blur_t* blur,
3342 - raico_blur_quality_t quality);
3345 -raico_blur_get_radius (raico_blur_t* blur);
3348 -raico_blur_set_radius (raico_blur_t* blur,
3352 -raico_blur_apply (raico_blur_t* blur,
3353 - cairo_surface_t* surface);
3356 -raico_blur_destroy (raico_blur_t* blur);
3358 -#endif /* _RAICO_BLUR_H */
3360 === modified file 'unico/unico-cairo-support.c'
3361 --- unico/unico-cairo-support.c 2012-03-26 15:10:02 +0000
3362 +++ unico/unico-cairo-support.c 2016-01-19 12:14:18 +0000
3364 /* The Unico Theming Engine for Gtk+.
3365 * Copyright (C) 2011 Canonical Ltd
3367 - * This library is free software; you can redistribute it and/or
3368 - * modify it under the terms of the GNU Lesser General Public
3369 - * License as published by the Free Software Foundation; either
3370 - * version 2 of the License, or (at your option) any later version.
3371 + * This library is free software; you can redistribute it and/or modify
3372 + * it under the terms of the GNU Lesser General Public License
3373 + * version 2.1 as published by the Free Software Foundation.
3375 * This library is distributed in the hope that it will be useful,
3376 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3377 @@ -23,1220 +22,10 @@
3379 #include <gtk/gtk.h>
3381 -#include "gtkroundedboxprivate.h"
3382 -#include "raico-blur.h"
3383 #include "unico-cairo-support.h"
3384 #include "unico-support.h"
3385 #include "unico-types.h"
3387 -/* apply default color */
3389 -apply_default_color (GdkRGBA *colors[4],
3390 - GdkRGBA *default_color)
3394 - for (i = 0; i < 4; i++)
3395 - if (unico_gdk_rgba_is_default (colors[i]))
3396 - *colors[i] = *default_color;
3399 -/* set the border sides to 0 using hidden_side */
3401 -hide_border_sides (GtkBorder *border,
3402 - guint hidden_side)
3404 - if (hidden_side & SIDE_TOP)
3406 - if (hidden_side & SIDE_RIGHT)
3407 - border->right = 0;
3408 - if (hidden_side & SIDE_BOTTOM)
3409 - border->bottom = 0;
3410 - if (hidden_side & SIDE_LEFT)
3414 -/* shrink coordinate using GtkBorder */
3416 -shrink_with_border (GtkBorder *border,
3422 - *x += border->left;
3423 - *y += border->top;
3424 - *width -= border->left + border->right;
3425 - *height -= border->top + border->bottom;
3428 -/* draw the background */
3430 -draw_background (GtkThemingEngine *engine,
3436 - guint hidden_side,
3437 - GtkJunctionSides junction)
3441 - GtkRoundedBox border_box;
3442 - GtkStateFlags state;
3443 - cairo_pattern_t *bg_pat;
3447 - state = gtk_theming_engine_get_state (engine);
3449 - gtk_theming_engine_get (engine, state,
3450 - "background-image", &bg_pat,
3452 - gtk_theming_engine_get_background_color (engine, state, &bg_color);
3453 - gtk_theming_engine_get_border (engine, state, &border);
3455 - hide_border_sides (&border, hidden_side);
3457 - running = gtk_theming_engine_state_is_running (engine, GTK_STATE_PRELIGHT, &progress);
3461 - cairo_translate (cr, x, y);
3463 - /* clear cr if we can draw directly on the background */
3464 - if (gtk_theming_engine_has_class (engine, "background"))
3466 - cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); /* transparent */
3467 - cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
3474 - GtkStateFlags other_state;
3475 - cairo_pattern_t *new_pat = NULL;
3476 - cairo_pattern_t *other_pat;
3478 - if (state & GTK_STATE_FLAG_PRELIGHT)
3480 - other_state = state & ~(GTK_STATE_FLAG_PRELIGHT);
3482 - /* useful math function to use for a pulse loop animation could be
3483 - * progress = 1 - MAX (1 - fabs ((progress - 0.5)*2), 0);
3484 - * but we need to handle the not-running case (once animation finished),
3485 - * otherwise the last frame will be the PRELIGHT at full opacity. */
3486 - progress = 1 - progress;
3489 - other_state = state | GTK_STATE_FLAG_PRELIGHT;
3491 - gtk_theming_engine_get (engine, other_state,
3492 - "background-image", &other_pat,
3494 - gtk_theming_engine_get_background_color (engine, other_state, &other_bg);
3496 - if (bg_pat && other_pat)
3498 - /* two patterns */
3499 - cairo_pattern_type_t type, other_type;
3502 - cairo_pattern_get_color_stop_count (bg_pat, &n0);
3503 - cairo_pattern_get_color_stop_count (other_pat, &n1);
3504 - type = cairo_pattern_get_type (bg_pat);
3505 - other_type = cairo_pattern_get_type (other_pat);
3507 - if (type == other_type && n0 == n1)
3509 - /* two similar patterns, blend them point by point */
3510 - gdouble offset0, red0, green0, blue0, alpha0;
3511 - gdouble offset1, red1, green1, blue1, alpha1;
3512 - gdouble x00, x01, y00, y01, x10, x11, y10, y11;
3513 - gdouble r00, r01, r10, r11;
3516 - if (type == CAIRO_PATTERN_TYPE_LINEAR)
3518 - cairo_pattern_get_linear_points (bg_pat, &x00, &y00, &x01, &y01);
3519 - cairo_pattern_get_linear_points (other_pat, &x10, &y10, &x11, &y11);
3521 - new_pat = cairo_pattern_create_linear (x00 + (x10 - x00) * progress,
3522 - y00 + (y10 - y00) * progress,
3523 - x01 + (x11 - x01) * progress,
3524 - y01 + (y11 - y01) * progress);
3528 - cairo_pattern_get_radial_circles (bg_pat, &x00, &y00, &r00, &x01, &y01, &r01);
3529 - cairo_pattern_get_radial_circles (other_pat, &x10, &y10, &r10, &x11, &y11, &r11);
3531 - new_pat = cairo_pattern_create_radial (x00 + (x10 - x00) * progress,
3532 - y00 + (y10 - y00) * progress,
3533 - r00 + (r10 - r00) * progress,
3534 - x01 + (x11 - x01) * progress,
3535 - y01 + (y11 - y01) * progress,
3536 - r01 + (r11 - r01) * progress);
3539 - cairo_pattern_set_filter (new_pat, CAIRO_FILTER_FAST);
3542 - while (i < n0 && i < n1)
3544 - cairo_pattern_get_color_stop_rgba (bg_pat, i,
3546 - &red0, &green0, &blue0,
3548 - cairo_pattern_get_color_stop_rgba (other_pat, i,
3550 - &red1, &green1, &blue1,
3552 - cairo_pattern_add_color_stop_rgba (new_pat,
3553 - offset0 + ((offset1 - offset0) * progress),
3554 - red0 + ((red1 - red0) * progress),
3555 - green0 + ((green1 - green0) * progress),
3556 - blue0 + ((blue1 - blue0) * progress),
3557 - alpha0 + ((alpha1 - alpha0) * progress));
3563 - /* two different patterns, paint them with alpha */
3566 - cairo_reset_clip (cr);
3567 - cairo_rectangle (cr, 0, 0, width, height);
3570 - cairo_push_group (cr);
3572 - cairo_scale (cr, width, height);
3574 - cairo_set_source (cr, other_pat);
3575 - cairo_paint_with_alpha (cr, progress);
3577 - cairo_set_source (cr, bg_pat);
3578 - cairo_paint_with_alpha (cr, 1.0 - progress);
3580 - new_pat = cairo_pop_group (cr);
3582 - cairo_restore (cr);
3585 - else if (bg_pat || other_pat)
3587 - /* only one pattern, blend it with a color */
3589 - cairo_pattern_t *p;
3590 - gdouble x0, y0, x1, y1, r0, r1;
3597 - progress = 1 - progress;
3605 - if (cairo_pattern_get_type (p) == CAIRO_PATTERN_TYPE_LINEAR)
3607 - cairo_pattern_get_linear_points (p, &x0, &y0, &x1, &y1);
3608 - new_pat = cairo_pattern_create_linear (x0, y0, x1, y1);
3612 - cairo_pattern_get_radial_circles (p, &x0, &y0, &r0, &x1, &y1, &r1);
3613 - new_pat = cairo_pattern_create_radial (x0, y0, r0, x1, y1, r1);
3616 - cairo_pattern_get_color_stop_count (p, &n);
3618 - for (i = 0; i < n; i++)
3620 - gdouble red1, green1, blue1, alpha1;
3623 - cairo_pattern_get_color_stop_rgba (p, i,
3625 - &red1, &green1, &blue1,
3627 - cairo_pattern_add_color_stop_rgba (new_pat, offset,
3628 - c->red + ((red1 - c->red) * progress),
3629 - c->green + ((green1 - c->green) * progress),
3630 - c->blue + ((blue1 - c->blue) * progress),
3631 - c->alpha + ((alpha1 - c->alpha) * progress));
3636 - /* just colors, create a new pattern blending them */
3637 - new_pat = cairo_pattern_create_rgba (CLAMP (bg_color.red + ((other_bg.red - bg_color.red) * progress), 0, 1),
3638 - CLAMP (bg_color.green + ((other_bg.green - bg_color.green) * progress), 0, 1),
3639 - CLAMP (bg_color.blue + ((other_bg.blue - bg_color.blue) * progress), 0, 1),
3640 - CLAMP (bg_color.alpha + ((other_bg.alpha - bg_color.alpha) * progress), 0, 1));
3645 - /* replace pattern to use */
3646 - cairo_pattern_destroy (bg_pat);
3651 - cairo_pattern_destroy (other_pat);
3654 - /* create the path to fill */
3655 - _gtk_rounded_box_init_rect (&border_box, 0, 0, width, height);
3656 - _gtk_rounded_box_apply_border_radius (&border_box, engine, state, junction);
3657 - _gtk_rounded_box_shrink (&border_box, border.top, border.right, border.bottom, border.left);
3658 - _gtk_rounded_box_path (&border_box, cr);
3663 - cairo_scale (cr, width, height);
3664 - cairo_set_source (cr, bg_pat);
3665 - cairo_scale (cr, 1.0 / width, 1.0 / height);
3669 - gdk_cairo_set_source_rgba (cr, &bg_color);
3674 - cairo_pattern_destroy (bg_pat);
3676 - cairo_restore (cr);
3679 -/* draw the inner glow */
3681 -draw_glow (GtkThemingEngine *engine,
3687 - guint hidden_side,
3688 - GtkJunctionSides junction)
3690 - GdkRGBA *glow_color;
3692 - GtkRoundedBox border_box, padding_box;
3693 - GtkStateFlags state;
3694 - cairo_t *cr_surface;
3695 - cairo_surface_t *surface;
3697 - raico_blur_t* blur = NULL;
3699 - state = gtk_theming_engine_get_state (engine);
3701 - gtk_theming_engine_get (engine, state,
3702 - "-unico-glow-radius", &bradius,
3703 - "-unico-glow-color", &glow_color,
3707 - goto end_draw_glow;
3709 - gtk_theming_engine_get_border (engine, state, &border);
3711 - hide_border_sides (&border, hidden_side);
3715 - cairo_translate (cr, x, y);
3717 - /* create the path to clip */
3718 - _gtk_rounded_box_init_rect (&border_box, 0, 0, width, height);
3719 - _gtk_rounded_box_apply_border_radius (&border_box, engine, state, junction);
3720 - _gtk_rounded_box_shrink (&border_box, border.top, border.right, border.bottom, border.left);
3721 - _gtk_rounded_box_path (&border_box, cr);
3725 - /* create the surface to blur */
3726 - surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
3727 - width + bradius * 2,
3728 - height + bradius * 2);
3729 - cr_surface = cairo_create (surface);
3731 - /* create the path on the surface to blur */
3732 - _gtk_rounded_box_move (&border_box, bradius, bradius);
3733 - padding_box = border_box;
3734 - _gtk_rounded_box_shrink (&padding_box, border.top * 2, border.right * 2, border.bottom * 2, border.left * 2);
3736 - cairo_set_fill_rule (cr_surface, CAIRO_FILL_RULE_EVEN_ODD);
3738 - gdk_cairo_set_source_rgba (cr_surface, glow_color);
3740 - _gtk_rounded_box_path (&border_box, cr_surface);
3741 - _gtk_rounded_box_path (&padding_box, cr_surface);
3742 - cairo_fill (cr_surface);
3744 - /* create and apply raico blur */
3745 - blur = raico_blur_create ();
3746 - raico_blur_set_radius (blur, bradius);
3747 - raico_blur_apply (blur, surface);
3749 - /* paint the blurred surface to cr */
3750 - cairo_set_source_surface (cr, surface, - bradius, - bradius);
3753 - cairo_restore (cr);
3755 - raico_blur_destroy(blur);
3757 - cairo_surface_destroy (surface);
3758 - cairo_destroy (cr_surface);
3761 - gdk_rgba_free (glow_color);
3764 -/* draw a repeated texture */
3766 -draw_texture (GtkThemingEngine *engine,
3772 - guint hidden_side,
3773 - GtkJunctionSides junction)
3775 - GtkStateFlags state;
3776 - GValue value = { 0, };
3777 - cairo_pattern_t *texture = NULL;
3778 - cairo_surface_t *surface = NULL;
3780 - state = gtk_theming_engine_get_state (engine);
3782 - gtk_theming_engine_get_property (engine, "-unico-background-texture", state, &value);
3784 - if (!G_VALUE_HOLDS_BOXED (&value))
3787 - texture = g_value_dup_boxed (&value);
3788 - g_value_unset (&value);
3790 - if (texture != NULL)
3791 - cairo_pattern_get_surface (texture, &surface);
3793 - if (surface != NULL)
3796 - GtkRoundedBox border_box;
3797 - cairo_pattern_t *pat;
3799 - gtk_theming_engine_get_border (engine, state, &border);
3801 - hide_border_sides (&border, hidden_side);
3805 - cairo_translate (cr, x, y);
3807 - /* create the path to fill */
3808 - _gtk_rounded_box_init_rect (&border_box, 0, 0, width, height);
3809 - _gtk_rounded_box_apply_border_radius (&border_box, engine, state, junction);
3810 - _gtk_rounded_box_shrink (&border_box, border.top, border.right, border.bottom, border.left);
3811 - _gtk_rounded_box_path (&border_box, cr);
3813 - pat = cairo_pattern_create_for_surface (surface);
3814 - cairo_pattern_set_extend (pat, CAIRO_EXTEND_REPEAT);
3815 - cairo_set_source (cr, pat);
3819 - cairo_restore (cr);
3821 - cairo_pattern_destroy (pat);
3824 - if (texture != NULL)
3825 - cairo_pattern_destroy (texture);
3829 -unico_cairo_draw_background (GtkThemingEngine *engine,
3835 - guint hidden_side,
3836 - GtkJunctionSides junction)
3838 - GtkBorder *outer_border;
3839 - GtkStateFlags state;
3841 - state = gtk_theming_engine_get_state (engine);
3843 - gtk_theming_engine_get (engine, state,
3844 - "-unico-outer-stroke-width", &outer_border,
3847 - hide_border_sides (outer_border, hidden_side);
3849 - shrink_with_border (outer_border, &x, &y, &width, &height);
3851 - /* first layer, background */
3852 - draw_background (engine, cr,
3855 - hidden_side, junction);
3857 - /* second layer, glow */
3858 - draw_glow (engine, cr,
3861 - hidden_side, junction);
3863 - /* third layer, texture */
3864 - draw_texture (engine, cr,
3867 - hidden_side, junction);
3869 - gtk_border_free (outer_border);
3872 -/* shade a color */
3874 -color_shade (const GdkRGBA *color,
3876 - GdkRGBA *color_return)
3878 - GtkSymbolicColor *literal, *shade;
3880 - literal = gtk_symbolic_color_new_literal (color);
3881 - shade = gtk_symbolic_color_new_shade (literal, factor);
3882 - gtk_symbolic_color_unref (literal);
3884 - gtk_symbolic_color_resolve (shade, NULL, color_return);
3885 - gtk_symbolic_color_unref (shade);
3888 -/* draw the border */
3890 -draw_border (GtkThemingEngine *engine,
3896 - guint hidden_side,
3897 - GtkJunctionSides junction)
3899 - GdkRGBA *colors[4];
3901 - GtkBorderStyle border_style;
3902 - GtkRoundedBox border_box, padding_box;
3903 - GtkStateFlags state;
3904 - cairo_pattern_t *border_pat;
3907 - static const guint current_side[4] = { SIDE_TOP, SIDE_RIGHT, SIDE_BOTTOM, SIDE_LEFT };
3910 - state = gtk_theming_engine_get_state (engine);
3912 - gtk_theming_engine_get (engine, state,
3913 - "border-style", &border_style,
3914 - "border-top-color", &colors[0],
3915 - "border-right-color", &colors[1],
3916 - "border-bottom-color", &colors[2],
3917 - "border-left-color", &colors[3],
3918 - "-unico-border-gradient", &border_pat,
3920 - gtk_theming_engine_get_border (engine, state, &border);
3922 - hide_border_sides (&border, hidden_side);
3924 - running = gtk_theming_engine_state_is_running (engine, GTK_STATE_PRELIGHT, &progress);
3928 - cairo_translate (cr, x, y);
3932 - GtkStateFlags other_state;
3933 - cairo_pattern_t *new_pat = NULL;
3934 - cairo_pattern_t *other_pat;
3936 - if (state & GTK_STATE_FLAG_PRELIGHT)
3938 - other_state = state & ~(GTK_STATE_FLAG_PRELIGHT);
3939 - progress = 1 - progress;
3942 - other_state = state | GTK_STATE_FLAG_PRELIGHT;
3944 - gtk_theming_engine_get (engine, other_state,
3945 - "-unico-border-gradient", &other_pat,
3948 - if (border_pat && other_pat)
3950 - /* two patterns */
3951 - cairo_pattern_type_t type, other_type;
3954 - cairo_pattern_get_color_stop_count (border_pat, &n0);
3955 - cairo_pattern_get_color_stop_count (other_pat, &n1);
3956 - type = cairo_pattern_get_type (border_pat);
3957 - other_type = cairo_pattern_get_type (other_pat);
3959 - if (type == other_type && n0 == n1)
3961 - /* two similar patterns, blend them point by point */
3962 - gdouble offset0, red0, green0, blue0, alpha0;
3963 - gdouble offset1, red1, green1, blue1, alpha1;
3964 - gdouble x00, x01, y00, y01, x10, x11, y10, y11;
3965 - gdouble r00, r01, r10, r11;
3968 - if (type == CAIRO_PATTERN_TYPE_LINEAR)
3970 - cairo_pattern_get_linear_points (border_pat, &x00, &y00, &x01, &y01);
3971 - cairo_pattern_get_linear_points (other_pat, &x10, &y10, &x11, &y11);
3973 - new_pat = cairo_pattern_create_linear (x00 + (x10 - x00) * progress,
3974 - y00 + (y10 - y00) * progress,
3975 - x01 + (x11 - x01) * progress,
3976 - y01 + (y11 - y01) * progress);
3980 - cairo_pattern_get_radial_circles (border_pat, &x00, &y00, &r00, &x01, &y01, &r01);
3981 - cairo_pattern_get_radial_circles (other_pat, &x10, &y10, &r10, &x11, &y11, &r11);
3983 - new_pat = cairo_pattern_create_radial (x00 + (x10 - x00) * progress,
3984 - y00 + (y10 - y00) * progress,
3985 - r00 + (r10 - r00) * progress,
3986 - x01 + (x11 - x01) * progress,
3987 - y01 + (y11 - y01) * progress,
3988 - r01 + (r11 - r01) * progress);
3991 - cairo_pattern_set_filter (new_pat, CAIRO_FILTER_FAST);
3994 - while (i < n0 && i < n1)
3996 - cairo_pattern_get_color_stop_rgba (border_pat, i,
3998 - &red0, &green0, &blue0,
4000 - cairo_pattern_get_color_stop_rgba (other_pat, i,
4002 - &red1, &green1, &blue1,
4004 - cairo_pattern_add_color_stop_rgba (new_pat,
4005 - offset0 + ((offset1 - offset0) * progress),
4006 - red0 + ((red1 - red0) * progress),
4007 - green0 + ((green1 - green0) * progress),
4008 - blue0 + ((blue1 - blue0) * progress),
4009 - alpha0 + ((alpha1 - alpha0) * progress));
4015 - /* two different patterns, paint them with alpha */
4018 - cairo_reset_clip (cr);
4019 - cairo_rectangle (cr, 0, 0, width, height);
4022 - cairo_push_group (cr);
4024 - cairo_scale (cr, width, height);
4026 - cairo_set_source (cr, other_pat);
4027 - cairo_paint_with_alpha (cr, progress);
4029 - cairo_set_source (cr, border_pat);
4030 - cairo_paint_with_alpha (cr, 1.0 - progress);
4032 - new_pat = cairo_pop_group (cr);
4034 - cairo_restore (cr);
4037 - else if (border_pat || other_pat)
4039 - /* one pattern, blend it with a color */
4041 - cairo_pattern_t *p;
4042 - gdouble x0, y0, x1, y1, r0, r1;
4047 - GdkRGBA other_color;
4049 - gtk_theming_engine_get_border_color (engine, other_state, &other_color);
4053 - progress = 1 - progress;
4057 - GdkRGBA border_color;
4059 - gtk_theming_engine_get_border_color (engine, state, &border_color);
4062 - c = &border_color;
4065 - if (cairo_pattern_get_type (p) == CAIRO_PATTERN_TYPE_LINEAR)
4067 - cairo_pattern_get_linear_points (p, &x0, &y0, &x1, &y1);
4068 - new_pat = cairo_pattern_create_linear (x0, y0, x1, y1);
4072 - cairo_pattern_get_radial_circles (p, &x0, &y0, &r0, &x1, &y1, &r1);
4073 - new_pat = cairo_pattern_create_radial (x0, y0, r0, x1, y1, r1);
4076 - cairo_pattern_get_color_stop_count (p, &n);
4078 - for (i = 0; i < n; i++)
4080 - gdouble red1, green1, blue1, alpha1;
4083 - cairo_pattern_get_color_stop_rgba (p, i,
4085 - &red1, &green1, &blue1,
4087 - cairo_pattern_add_color_stop_rgba (new_pat, offset,
4088 - c->red + ((red1 - c->red) * progress),
4089 - c->green + ((green1 - c->green) * progress),
4090 - c->blue + ((blue1 - c->blue) * progress),
4091 - c->alpha + ((alpha1 - c->alpha) * progress));
4096 - /* just colors, create new colors blending them */
4097 - GdkRGBA *other_colors[4];
4099 - gtk_theming_engine_get (engine, other_state,
4100 - "border-top-color", &other_colors[0],
4101 - "border-right-color", &other_colors[1],
4102 - "border-bottom-color", &other_colors[2],
4103 - "border-left-color", &other_colors[3],
4106 - for (i = 0; i < 4; i++)
4108 - colors[i]->red = CLAMP (colors[i]->red + ((other_colors[i]->red - colors[i]->red) * progress), 0, 1);
4109 - colors[i]->green = CLAMP (colors[i]->green + ((other_colors[i]->green - colors[i]->green) * progress), 0, 1);
4110 - colors[i]->blue = CLAMP (colors[i]->blue + ((other_colors[i]->blue - colors[i]->blue) * progress), 0, 1);
4111 - colors[i]->alpha = CLAMP (colors[i]->alpha + ((other_colors[i]->alpha - colors[i]->alpha) * progress), 0, 1);
4112 - gdk_rgba_free (other_colors[i]);
4118 - /* replace pattern to use */
4119 - cairo_pattern_destroy (border_pat);
4120 - border_pat = new_pat;
4124 - cairo_pattern_destroy (other_pat);
4127 - switch (border_style)
4130 - g_assert_not_reached ();
4131 - case GTK_BORDER_STYLE_NONE:
4132 - case GTK_BORDER_STYLE_SOLID:
4134 - case GTK_BORDER_STYLE_INSET:
4135 - color_shade (colors[1], 1.8, colors[1]);
4136 - color_shade (colors[2], 1.8, colors[2]);
4138 - case GTK_BORDER_STYLE_OUTSET:
4139 - color_shade (colors[0], 1.8, colors[0]);
4140 - color_shade (colors[3], 1.8, colors[3]);
4144 - /* create the path to fill */
4145 - _gtk_rounded_box_init_rect (&border_box, 0, 0, width, height);
4146 - _gtk_rounded_box_apply_border_radius (&border_box, engine, state, junction);
4147 - padding_box = border_box;
4148 - _gtk_rounded_box_shrink (&padding_box, border.top, border.right, border.bottom, border.left);
4150 - cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
4152 - switch (border_style)
4155 - g_assert_not_reached ();
4156 - case GTK_BORDER_STYLE_NONE:
4158 - case GTK_BORDER_STYLE_SOLID:
4159 - case GTK_BORDER_STYLE_INSET:
4160 - case GTK_BORDER_STYLE_OUTSET:
4165 - cairo_scale (cr, width, height);
4166 - cairo_set_source (cr, border_pat);
4167 - cairo_scale (cr, 1.0 / width, 1.0 / height);
4169 - _gtk_rounded_box_path (&border_box, cr);
4170 - _gtk_rounded_box_path (&padding_box, cr);
4173 - else if (gdk_rgba_equal (colors[0], colors[1]) &&
4174 - gdk_rgba_equal (colors[0], colors[2]) &&
4175 - gdk_rgba_equal (colors[0], colors[3]))
4178 - gdk_cairo_set_source_rgba (cr, colors[0]);
4180 - _gtk_rounded_box_path (&border_box, cr);
4181 - _gtk_rounded_box_path (&padding_box, cr);
4186 - for (i = 0; i < 4; i++)
4188 - /* different colors */
4189 - if (hidden_side & current_side[i])
4192 - for (j = 0; j < 4; j++)
4194 - if (hidden_side & current_side[j])
4198 - gdk_rgba_equal (colors[i], colors[j]))
4200 - /* we were already painted when i == j */
4205 - _gtk_rounded_box_path_top (&border_box, &padding_box, cr);
4207 - _gtk_rounded_box_path_right (&border_box, &padding_box, cr);
4209 - _gtk_rounded_box_path_bottom (&border_box, &padding_box, cr);
4211 - _gtk_rounded_box_path_left (&border_box, &padding_box, cr);
4214 - /* we were already painted when i == j */
4218 - gdk_cairo_set_source_rgba (cr, colors[i]);
4226 - cairo_restore (cr);
4229 - cairo_pattern_destroy (border_pat);
4231 - for (i = 0; i < 4; i++)
4232 - gdk_rgba_free (colors[i]);
4235 -/* draw the inner stroke */
4237 -draw_inner_stroke (GtkThemingEngine *engine,
4243 - guint hidden_side,
4244 - GtkJunctionSides junction)
4246 - GdkRGBA *colors[4];
4247 - GdkRGBA *inner_stroke_color;
4248 - GtkBorder *inner_border;
4249 - GtkRoundedBox border_box, padding_box;
4250 - GtkStateFlags state;
4251 - cairo_pattern_t *inner_stroke_pat;
4252 - static const guint current_side[4] = { SIDE_TOP, SIDE_RIGHT, SIDE_BOTTOM, SIDE_LEFT };
4255 - state = gtk_theming_engine_get_state (engine);
4257 - gtk_theming_engine_get (engine, state,
4258 - "-unico-inner-stroke-color", &inner_stroke_color,
4259 - "-unico-inner-stroke-top-color", &colors[0],
4260 - "-unico-inner-stroke-right-color", &colors[1],
4261 - "-unico-inner-stroke-bottom-color", &colors[2],
4262 - "-unico-inner-stroke-left-color", &colors[3],
4263 - "-unico-inner-stroke-gradient", &inner_stroke_pat,
4264 - "-unico-inner-stroke-width", &inner_border,
4267 - hide_border_sides (inner_border, hidden_side);
4269 - if (unico_gtk_border_is_zero (inner_border))
4270 - goto end_draw_inner_stroke;
4272 - apply_default_color (colors, inner_stroke_color);
4276 - cairo_translate (cr, x, y);
4278 - /* create the path to fill */
4279 - _gtk_rounded_box_init_rect (&border_box, 0, 0, width, height);
4280 - _gtk_rounded_box_apply_border_radius (&border_box, engine, state, junction);
4281 - padding_box = border_box;
4282 - _gtk_rounded_box_shrink (&padding_box, inner_border->top,
4283 - inner_border->right,
4284 - inner_border->bottom,
4285 - inner_border->left);
4287 - cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
4289 - if (inner_stroke_pat)
4292 - cairo_scale (cr, width, height);
4293 - cairo_set_source (cr, inner_stroke_pat);
4294 - cairo_scale (cr, 1.0 / width, 1.0 / height);
4296 - _gtk_rounded_box_path (&border_box, cr);
4297 - _gtk_rounded_box_path (&padding_box, cr);
4300 - else if (gdk_rgba_equal (colors[0], colors[1]) &&
4301 - gdk_rgba_equal (colors[0], colors[2]) &&
4302 - gdk_rgba_equal (colors[0], colors[3]))
4305 - gdk_cairo_set_source_rgba (cr, colors[0]);
4307 - _gtk_rounded_box_path (&border_box, cr);
4308 - _gtk_rounded_box_path (&padding_box, cr);
4313 - /* different colors */
4314 - for (i = 0; i < 4; i++)
4316 - if (hidden_side & current_side[i])
4319 - for (j = 0; j < 4; j++)
4321 - if (hidden_side & current_side[j])
4325 - gdk_rgba_equal (colors[i], colors[j]))
4327 - /* we were already painted when i == j */
4332 - _gtk_rounded_box_path_top (&border_box, &padding_box, cr);
4334 - _gtk_rounded_box_path_right (&border_box, &padding_box, cr);
4336 - _gtk_rounded_box_path_bottom (&border_box, &padding_box, cr);
4338 - _gtk_rounded_box_path_left (&border_box, &padding_box, cr);
4341 - /* we were already painted when i == j */
4345 - gdk_cairo_set_source_rgba (cr, colors[i]);
4351 - cairo_restore (cr);
4353 -end_draw_inner_stroke:
4354 - gtk_border_free (inner_border);
4356 - if (inner_stroke_pat != NULL)
4357 - cairo_pattern_destroy (inner_stroke_pat);
4359 - gdk_rgba_free (inner_stroke_color);
4361 - for (i = 0; i < 4; i++)
4362 - gdk_rgba_free (colors[i]);
4365 -/* draw the outer stroke */
4367 -draw_outer_stroke (GtkThemingEngine *engine,
4373 - guint hidden_side,
4374 - GtkJunctionSides junction)
4376 - GdkRGBA *outer_stroke_color;
4377 - GdkRGBA *colors[4];
4378 - GtkBorder *outer_border;
4379 - GtkRoundedBox border_box, padding_box;
4380 - GtkStateFlags state;
4381 - cairo_pattern_t *outer_stroke_pat;
4382 - static const guint current_side[4] = { SIDE_TOP, SIDE_RIGHT, SIDE_BOTTOM, SIDE_LEFT };
4385 - state = gtk_theming_engine_get_state (engine);
4387 - gtk_theming_engine_get (engine, state,
4388 - "-unico-outer-stroke-color", &outer_stroke_color,
4389 - "-unico-outer-stroke-top-color", &colors[0],
4390 - "-unico-outer-stroke-right-color", &colors[1],
4391 - "-unico-outer-stroke-bottom-color", &colors[2],
4392 - "-unico-outer-stroke-left-color", &colors[3],
4393 - "-unico-outer-stroke-gradient", &outer_stroke_pat,
4394 - "-unico-outer-stroke-width", &outer_border,
4397 - hide_border_sides (outer_border, hidden_side);
4399 - if (unico_gtk_border_is_zero (outer_border))
4400 - goto end_draw_outer_stroke;
4402 - apply_default_color (colors, outer_stroke_color);
4406 - cairo_translate (cr, x, y);
4408 - /* create the path to fill */
4409 - _gtk_rounded_box_init_rect (&border_box, 0, 0, width, height);
4410 - _gtk_rounded_box_apply_border_radius (&border_box, engine, state, junction);
4411 - padding_box = border_box;
4412 - _gtk_rounded_box_shrink (&padding_box, outer_border->top,
4413 - outer_border->right,
4414 - outer_border->bottom,
4415 - outer_border->left);
4417 - cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
4419 - if (outer_stroke_pat)
4422 - cairo_scale (cr, width, height);
4423 - cairo_set_source (cr, outer_stroke_pat);
4424 - cairo_scale (cr, 1.0 / width, 1.0 / height);
4426 - _gtk_rounded_box_path (&border_box, cr);
4427 - _gtk_rounded_box_path (&padding_box, cr);
4430 - else if (gdk_rgba_equal (colors[0], colors[1]) &&
4431 - gdk_rgba_equal (colors[0], colors[2]) &&
4432 - gdk_rgba_equal (colors[0], colors[3]))
4435 - gdk_cairo_set_source_rgba (cr, colors[0]);
4437 - _gtk_rounded_box_path (&border_box, cr);
4438 - _gtk_rounded_box_path (&padding_box, cr);
4443 - /* different colors */
4444 - for (i = 0; i < 4; i++)
4446 - if (hidden_side & current_side[i])
4449 - for (j = 0; j < 4; j++)
4451 - if (hidden_side & current_side[j])
4455 - gdk_rgba_equal (colors[i], colors[j]))
4457 - /* we were already painted when i == j */
4462 - _gtk_rounded_box_path_top (&border_box, &padding_box, cr);
4464 - _gtk_rounded_box_path_right (&border_box, &padding_box, cr);
4466 - _gtk_rounded_box_path_bottom (&border_box, &padding_box, cr);
4468 - _gtk_rounded_box_path_left (&border_box, &padding_box, cr);
4471 - /* we were already painted when i == j */
4475 - gdk_cairo_set_source_rgba (cr, colors[i]);
4481 - cairo_restore (cr);
4483 -end_draw_outer_stroke:
4484 - gtk_border_free (outer_border);
4486 - if (outer_stroke_pat != NULL)
4487 - cairo_pattern_destroy (outer_stroke_pat);
4489 - gdk_rgba_free (outer_stroke_color);
4491 - for (i = 0; i < 4; i++)
4492 - gdk_rgba_free (colors[i]);
4496 -unico_cairo_draw_frame (GtkThemingEngine *engine,
4502 - guint hidden_side,
4503 - GtkJunctionSides junction)
4506 - GtkBorder *outer_border;
4507 - GtkStateFlags state;
4509 - state = gtk_theming_engine_get_state (engine);
4511 - gtk_theming_engine_get (engine, state,
4512 - "-unico-outer-stroke-width", &outer_border,
4514 - gtk_theming_engine_get_border (engine, state, &border);
4516 - hide_border_sides (&border, hidden_side);
4517 - hide_border_sides (outer_border, hidden_side);
4519 - if (!unico_gtk_border_is_zero (outer_border))
4521 - /* first layer, outer stroke */
4522 - draw_outer_stroke (engine, cr,
4525 - hidden_side, junction);
4527 - shrink_with_border (outer_border, &x, &y, &width, &height);
4530 - /* second layer, inner stroke */
4531 - if (width - (border.left + border.right) > 0 &&
4532 - height - (border.top + border.bottom) > 0)
4533 - draw_inner_stroke (engine, cr,
4534 - x + border.left, y + border.top,
4535 - width - (border.left + border.right), height - (border.top + border.bottom),
4536 - hidden_side, junction);
4538 - /* third layer, border */
4539 - draw_border (engine, cr,
4542 - hidden_side, junction);
4544 - gtk_border_free (outer_border);
4548 -unico_cairo_draw_from_texture (GtkThemingEngine *engine,
4555 - GtkStateFlags state;
4556 - GValue value = { 0, };
4557 - cairo_pattern_t *texture = NULL;
4558 - cairo_surface_t *surface = NULL;
4559 - gboolean retval = FALSE;
4561 - state = gtk_theming_engine_get_state (engine);
4563 - gtk_theming_engine_get_property (engine, "background-image", state, &value);
4565 - if (!G_VALUE_HOLDS_BOXED (&value))
4568 - texture = g_value_dup_boxed (&value);
4569 - g_value_unset (&value);
4571 - if (texture != NULL)
4572 - cairo_pattern_get_surface (texture, &surface);
4574 - if (surface != NULL)
4578 - cairo_scale (cr, width / cairo_image_surface_get_width (surface),
4579 - height / cairo_image_surface_get_height (surface));
4580 - cairo_set_source_surface (cr, surface, x, y);
4584 - cairo_restore (cr);
4589 - if (texture != NULL)
4590 - cairo_pattern_destroy (texture);
4596 unico_cairo_round_rect (cairo_t *cr,
4601 cairo_new_sub_path (cr);
4604 cairo_arc (cr, x + width - radius, y + radius, radius, - G_PI / 4, 0);
4607 @@ -1352,71 +141,3 @@
4608 height - line_width,
4609 radius, sides, junction);
4613 -unico_cairo_set_source_border (GtkThemingEngine *engine,
4618 - GdkRGBA border_color;
4619 - GtkBorderStyle border_style;
4620 - GtkStateFlags state;
4621 - cairo_pattern_t *border_pat;
4623 - state = gtk_theming_engine_get_state (engine);
4625 - gtk_theming_engine_get (engine, state,
4626 - "border-style", &border_style,
4627 - "-unico-border-gradient", &border_pat,
4629 - gtk_theming_engine_get_border_color (engine, state, &border_color);
4634 - cairo_scale (cr, width, height);
4635 - cairo_set_source (cr, border_pat);
4636 - cairo_scale (cr, 1.0 / width, 1.0 / height);
4640 - gdk_cairo_set_source_rgba (cr, &border_color);
4642 - if (border_pat != NULL)
4643 - cairo_pattern_destroy (border_pat);
4647 -unico_cairo_set_source_inner_stroke (GtkThemingEngine *engine,
4652 - GdkRGBA *inner_stroke_color;
4653 - GtkStateFlags state;
4654 - cairo_pattern_t *inner_stroke_pat;
4656 - state = gtk_theming_engine_get_state (engine);
4658 - gtk_theming_engine_get (engine, state,
4659 - "-unico-inner-stroke-color", &inner_stroke_color,
4660 - "-unico-inner-stroke-gradient", &inner_stroke_pat,
4663 - if (inner_stroke_pat)
4666 - cairo_scale (cr, width, height);
4667 - cairo_set_source (cr, inner_stroke_pat);
4668 - cairo_scale (cr, 1.0 / width, 1.0 / height);
4672 - gdk_cairo_set_source_rgba (cr, inner_stroke_color);
4674 - if (inner_stroke_pat != NULL)
4675 - cairo_pattern_destroy (inner_stroke_pat);
4677 - gdk_rgba_free (inner_stroke_color);
4680 === modified file 'unico/unico-cairo-support.h'
4681 --- unico/unico-cairo-support.h 2011-08-06 15:38:52 +0000
4682 +++ unico/unico-cairo-support.h 2016-01-19 12:14:18 +0000
4684 /* The Unico Theming Engine for Gtk+.
4685 * Copyright (C) 2011 Canonical Ltd
4687 - * This library is free software; you can redistribute it and/or
4688 - * modify it under the terms of the GNU Lesser General Public
4689 - * License as published by the Free Software Foundation; either
4690 - * version 2 of the License, or (at your option) any later version.
4691 + * This library is free software; you can redistribute it and/or modify
4692 + * it under the terms of the GNU Lesser General Public License
4693 + * version 2.1 as published by the Free Software Foundation.
4695 * This library is distributed in the hope that it will be useful,
4696 * but WITHOUT ANY WARRANTY; without even the implied warranty of
4701 -G_GNUC_INTERNAL void unico_cairo_draw_background (GtkThemingEngine *engine,
4707 - guint hidden_side,
4708 - GtkJunctionSides junction);
4710 -G_GNUC_INTERNAL void unico_cairo_draw_frame (GtkThemingEngine *engine,
4716 - guint hidden_side,
4717 - GtkJunctionSides junction);
4719 -G_GNUC_INTERNAL gboolean unico_cairo_draw_from_texture (GtkThemingEngine *engine,
4726 G_GNUC_INTERNAL void unico_cairo_round_rect (cairo_t *cr,
4731 GtkJunctionSides junction);
4733 -G_GNUC_INTERNAL void unico_cairo_set_source_border (GtkThemingEngine *engine,
4738 -G_GNUC_INTERNAL void unico_cairo_set_source_inner_stroke (GtkThemingEngine *engine,
4745 #endif /* UNICO_CAIRO_SUPPORT_H */
4747 === modified file 'unico/unico-draw.c'
4748 --- unico/unico-draw.c 2012-03-29 14:25:06 +0000
4749 +++ unico/unico-draw.c 2016-01-19 12:14:18 +0000
4751 /* The Unico Theming Engine for Gtk+.
4752 * Copyright (C) 2011 Canonical Ltd
4754 - * This library is free software; you can redistribute it and/or
4755 - * modify it under the terms of the GNU Lesser General Public
4756 - * License as published by the Free Software Foundation; either
4757 - * version 2 of the License, or (at your option) any later version.
4758 + * This library is free software; you can redistribute it and/or modify
4759 + * it under the terms of the GNU Lesser General Public License
4760 + * version 2.1 as published by the Free Software Foundation.
4762 * This library is distributed in the hope that it will be useful,
4763 * but WITHOUT ANY WARRANTY; without even the implied warranty of
4765 #include "unico-draw.h"
4766 #include "unico-support.h"
4767 #include "unico-types.h"
4768 -#include "gtkroundedboxprivate.h"
4770 -/* draw a texture placed on the centroid */
4772 -draw_centroid_texture (GtkThemingEngine *engine,
4778 +draw_arrow_texture (GtkThemingEngine *engine,
4785 GtkStateFlags state;
4786 GValue value = { 0, };
4789 state = gtk_theming_engine_get_state (engine);
4791 - gtk_theming_engine_get_property (engine, "-unico-centroid-texture", state, &value);
4792 + gtk_theming_engine_get_property (engine, "-unico-arrow-texture", state, &value);
4794 if (!G_VALUE_HOLDS_BOXED (&value))
4800 - cairo_set_source_surface (cr, surface, (gint) (x + width / 2 - cairo_image_surface_get_width (surface) / 2),
4801 - (gint) (y + height / 2 - cairo_image_surface_get_height (surface) / 2));
4802 + cairo_translate (cr, (gint) (x + size / 2), (gint) (y + size / 2));
4803 + cairo_rotate (cr, angle);
4805 + cairo_set_source_surface (cr, surface, - cairo_image_surface_get_width (surface) / 2,
4806 + - cairo_image_surface_get_height (surface) / 2);
4814 -unico_draw_activity (DRAW_ARGS)
4816 - /* playground for effects */
4817 - unico_cairo_draw_background (engine, cr,
4818 - x, y, width, height,
4819 - 0, gtk_theming_engine_get_junction_sides (engine));
4820 - unico_cairo_draw_frame (engine, cr,
4821 - x, y, width, height,
4822 - 0, gtk_theming_engine_get_junction_sides (engine));
4826 unico_draw_arrow (GtkThemingEngine *engine,
4831 gdouble size_reduction = 4;
4833 + if (draw_arrow_texture (engine, cr, angle, x, y, size))
4836 state = gtk_theming_engine_get_state (engine);
4838 gtk_theming_engine_get_color (engine, state, &color);
4839 @@ -134,191 +125,6 @@
4843 -unico_draw_cell_background (DRAW_ARGS,
4844 - GtkRegionFlags flags)
4846 - GtkJunctionSides junction;
4847 - guint hidden_side;
4849 - junction = GTK_JUNCTION_RIGHT | GTK_JUNCTION_LEFT;
4851 - hidden_side = SIDE_RIGHT | SIDE_LEFT;
4853 - if ((flags & GTK_REGION_FIRST) != 0)
4855 - junction &= ~(GTK_JUNCTION_CORNER_TOPLEFT | GTK_JUNCTION_CORNER_BOTTOMLEFT);
4856 - hidden_side &= ~(SIDE_LEFT);
4858 - if ((flags & GTK_REGION_LAST) != 0)
4860 - junction &= ~(GTK_JUNCTION_CORNER_TOPRIGHT | GTK_JUNCTION_CORNER_BOTTOMRIGHT);
4861 - hidden_side &= ~(SIDE_RIGHT);
4864 - unico_cairo_draw_background (engine, cr,
4865 - x, y, width, height,
4866 - hidden_side, junction);
4870 -unico_draw_cell_frame (DRAW_ARGS,
4871 - GtkRegionFlags flags)
4873 - GtkJunctionSides junction;
4874 - guint hidden_side;
4876 - junction = GTK_JUNCTION_RIGHT | GTK_JUNCTION_LEFT;
4878 - hidden_side = SIDE_RIGHT | SIDE_LEFT;
4880 - if ((flags & GTK_REGION_FIRST) != 0)
4882 - junction &= ~(GTK_JUNCTION_CORNER_TOPLEFT | GTK_JUNCTION_CORNER_BOTTOMLEFT);
4883 - hidden_side &= ~(SIDE_LEFT);
4885 - if ((flags & GTK_REGION_LAST) != 0)
4887 - junction &= ~(GTK_JUNCTION_CORNER_TOPRIGHT | GTK_JUNCTION_CORNER_BOTTOMRIGHT);
4888 - hidden_side &= ~(SIDE_RIGHT);
4891 - unico_cairo_draw_frame (engine, cr,
4892 - x, y, width, height,
4893 - hidden_side, junction);
4897 -unico_draw_check (DRAW_ARGS)
4899 - GtkStateFlags state;
4901 - gboolean draw_bullet, inconsistent;
4903 - state = gtk_theming_engine_get_state (engine);
4905 - in_menu = gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_MENUITEM);
4906 - inconsistent = (state & GTK_STATE_FLAG_INCONSISTENT) != 0;
4907 - draw_bullet = (state & GTK_STATE_FLAG_ACTIVE) != 0;
4908 - draw_bullet |= inconsistent;
4912 - unico_cairo_draw_background (engine, cr,
4913 - x, y, width, height,
4914 - 0, gtk_theming_engine_get_junction_sides (engine));
4915 - unico_cairo_draw_frame (engine, cr,
4916 - x, y, width, height,
4917 - 0, gtk_theming_engine_get_junction_sides (engine));
4922 - GdkRGBA *bullet_color;
4924 - gtk_theming_engine_get (engine, state,
4925 - "-unico-bullet-color", &bullet_color,
4928 - cairo_translate (cr, x, y);
4929 - cairo_scale (cr, width / 18.0, height / 18.0);
4933 - GdkRGBA *bullet_outline_color;
4935 - gtk_theming_engine_get (engine, state,
4936 - "-unico-bullet-outline-color", &bullet_outline_color,
4939 - /* thick's outline */
4940 - cairo_rectangle (cr, 3.5, 7, 11, 4);
4942 - gdk_cairo_set_source_rgba (cr, bullet_outline_color);
4945 - cairo_rectangle (cr, 4.5, 8, 9, 2);
4947 - gdk_rgba_free (bullet_outline_color);
4952 - cairo_translate (cr, 2.0, 3.0);
4955 - GdkRGBA *bullet_outline_color;
4957 - gtk_theming_engine_get (engine, state,
4958 - "-unico-bullet-outline-color", &bullet_outline_color,
4961 - /* thick's outline */
4962 - cairo_move_to (cr, 5.0, 5.65);
4963 - cairo_line_to (cr, 8.95, 9.57);
4964 - cairo_line_to (cr, 16.0, 2.54);
4965 - cairo_line_to (cr, 16.0, 8.36);
4966 - cairo_line_to (cr, 10.6, 15.1);
4967 - cairo_line_to (cr, 7.6, 15.1);
4968 - cairo_line_to (cr, 2.95, 10.48);
4969 - cairo_line_to (cr, 2.95, 7.65);
4970 - cairo_close_path (cr);
4972 - gdk_cairo_set_source_rgba (cr, bullet_outline_color);
4975 - cairo_translate (cr, 4.0, 2.0);
4977 - gdk_rgba_free (bullet_outline_color);
4981 - cairo_move_to (cr, 0.0, 6.0);
4982 - cairo_line_to (cr, 0.0, 8.0);
4983 - cairo_line_to (cr, 4.0, 12.0);
4984 - cairo_line_to (cr, 6.0, 12.0);
4985 - cairo_line_to (cr, 15.0, 1.0);
4986 - cairo_line_to (cr, 15.0, 0.0);
4987 - cairo_line_to (cr, 14.0, 0.0);
4988 - cairo_line_to (cr, 5.0, 9.0);
4989 - cairo_line_to (cr, 1.0, 5.0);
4990 - cairo_close_path (cr);
4993 - gdk_cairo_set_source_rgba (cr, bullet_color);
4996 - gdk_rgba_free (bullet_color);
5001 -unico_draw_common (DRAW_ARGS)
5003 - unico_cairo_draw_background (engine, cr,
5004 - x, y, width, height,
5005 - 0, gtk_theming_engine_get_junction_sides (engine));
5006 - unico_cairo_draw_frame (engine, cr,
5007 - x, y, width, height,
5008 - 0, gtk_theming_engine_get_junction_sides (engine));
5012 -unico_draw_common_background (DRAW_ARGS)
5014 - unico_cairo_draw_background (engine, cr,
5015 - x, y, width, height,
5016 - 0, gtk_theming_engine_get_junction_sides (engine));
5020 -unico_draw_common_frame (DRAW_ARGS)
5022 - unico_cairo_draw_frame (engine, cr,
5023 - x, y, width, height,
5024 - 0, gtk_theming_engine_get_junction_sides (engine));
5028 unico_draw_expander (DRAW_ARGS)
5030 GtkStateFlags state;
5031 @@ -359,132 +165,35 @@
5035 -unico_draw_extension (DRAW_ARGS,
5036 - GtkPositionType gap_side)
5039 - GtkBorder *outer_border;
5040 - GtkJunctionSides junction = 0;
5041 - GtkStateFlags state;
5042 - gboolean has_outer_stroke = FALSE;
5043 - gdouble bg_offset = 0;
5044 - guint hidden_side = 0;
5046 - state = gtk_theming_engine_get_state (engine);
5048 - gtk_theming_engine_get (engine, state,
5049 - "-unico-outer-stroke-width", &outer_border,
5051 - gtk_theming_engine_get_border (engine, state, &border);
5053 - if (!unico_gtk_border_is_zero (outer_border))
5054 - has_outer_stroke = TRUE;
5058 - /* FIXME doesn't work properly with not homogenuos border-width,
5059 - * especially between tab and notebook.
5060 - * I guess the issue comes from the fact draw_background
5061 - * is looking at border dimensions while we're not,
5062 - * or we're doing it wrong.
5063 - * draw_background is looking at SIDE_BOTTOM and
5064 - * sets border to 0 for this side */
5068 - junction = GTK_JUNCTION_TOP;
5069 - hidden_side = SIDE_TOP;
5071 - if (has_outer_stroke)
5073 - y -= outer_border->bottom;
5074 - height += outer_border->bottom;
5077 - if ((state & GTK_STATE_FLAG_ACTIVE) != 0)
5078 - bg_offset = border.bottom;
5080 - cairo_translate (cr, x + width, y + height);
5081 - cairo_rotate (cr, G_PI);
5084 - case GTK_POS_BOTTOM:
5085 - junction = GTK_JUNCTION_BOTTOM;
5086 - hidden_side = SIDE_BOTTOM;
5088 - if (has_outer_stroke)
5089 - height += outer_border->top;
5091 - if ((state & GTK_STATE_FLAG_ACTIVE) != 0)
5092 - bg_offset = border.top;
5094 - cairo_translate (cr, x, y);
5096 - case GTK_POS_LEFT:
5097 - junction = GTK_JUNCTION_LEFT;
5098 - hidden_side = SIDE_LEFT;
5100 - if (has_outer_stroke)
5102 - x -= outer_border->right;
5103 - width += outer_border->right;
5106 - if ((state & GTK_STATE_FLAG_ACTIVE) != 0)
5107 - bg_offset = border.right;
5109 - cairo_translate (cr, x + width, y);
5110 - cairo_rotate (cr, G_PI / 2);
5112 - case GTK_POS_RIGHT:
5113 - junction = GTK_JUNCTION_RIGHT;
5114 - hidden_side = SIDE_RIGHT;
5116 - if (has_outer_stroke)
5117 - width += outer_border->left;
5119 - if ((state & GTK_STATE_FLAG_ACTIVE) != 0)
5120 - bg_offset = border.left;
5122 - cairo_translate (cr, x, y + height);
5123 - cairo_rotate (cr, - G_PI / 2);
5127 - if (gap_side == GTK_POS_TOP ||
5128 - gap_side == GTK_POS_BOTTOM)
5129 - unico_cairo_draw_background (engine, cr, 0, 0, width, height + bg_offset, SIDE_BOTTOM, GTK_JUNCTION_BOTTOM);
5131 - unico_cairo_draw_background (engine, cr, 0, 0, height, width + bg_offset, SIDE_BOTTOM, GTK_JUNCTION_BOTTOM);
5132 - cairo_restore (cr);
5134 - /* FIXME the frame on bottom bar has the wrong gradient,
5135 - * while should be reflected */
5136 - unico_cairo_draw_frame (engine, cr, x, y, width, height, hidden_side, junction);
5138 - gtk_border_free (outer_border);
5142 unico_draw_focus (DRAW_ARGS)
5144 - GdkRGBA *fill_color, *border_color, *outer_stroke_color;
5145 + GdkRGBA *fill_color, *border_color;
5146 GtkStateFlags state;
5147 gint focus_pad, line_width;
5150 state = gtk_theming_engine_get_state (engine);
5152 - gtk_theming_engine_get (engine, state,
5153 - "-unico-focus-border-color", &border_color,
5154 - "-unico-focus-border-radius", &radius,
5155 - "-unico-focus-fill-color", &fill_color,
5156 - "-unico-focus-outer-stroke-color", &outer_stroke_color,
5158 gtk_theming_engine_get_style (engine,
5159 "focus-padding", &focus_pad,
5160 "focus-line-width", &line_width,
5164 + /* Skip rendering if focus-line-width is 0 or less. */
5165 + if (line_width < 1)
5168 + /* Use the outline attributes for the focus properties to avoid using
5169 + * custom attributes. Outlines don't have a fill, so hardcode the fill
5170 + * color to be the same color as the border, but with 20% of its alpha.
5172 + gtk_theming_engine_get (engine, state,
5173 + "outline-color", &border_color,
5174 + "outline-offset", &radius,
5177 + fill_color = gdk_rgba_copy (border_color);
5178 + fill_color->alpha = border_color->alpha * 0.2;
5182 @@ -502,14 +211,7 @@
5183 gdk_cairo_set_source_rgba (cr, fill_color);
5186 - /* second layer, outer stroke */
5187 - unico_cairo_round_rect_inner (cr, x - line_width, y - line_width,
5188 - width + line_width * 2, height + line_width * 2,
5189 - radius + 1, SIDE_ALL, GTK_JUNCTION_NONE);
5190 - gdk_cairo_set_source_rgba (cr, outer_stroke_color);
5191 - cairo_stroke (cr);
5193 - /* third layer, border */
5194 + /* second layer, border */
5195 unico_cairo_round_rect_inner (cr, x, y,
5197 radius, SIDE_ALL, GTK_JUNCTION_NONE);
5198 @@ -520,525 +222,6 @@
5200 gdk_rgba_free (border_color);
5201 gdk_rgba_free (fill_color);
5202 - gdk_rgba_free (outer_stroke_color);
5206 -unico_draw_frame_gap (DRAW_ARGS,
5207 - GtkPositionType gap_side,
5212 - GtkBorder *outer_border;
5213 - GtkCssBorderCornerRadius *top_left_radius, *top_right_radius;
5214 - GtkCssBorderCornerRadius *bottom_left_radius, *bottom_right_radius;
5215 - GtkJunctionSides junction;
5216 - GtkStateFlags state;
5217 - gboolean has_outer_stroke = FALSE;
5218 - gdouble x0, y0, x1, y1, xc, yc, wc, hc;
5220 - xc = yc = wc = hc = 0;
5222 - junction = gtk_theming_engine_get_junction_sides (engine);
5224 - state = gtk_theming_engine_get_state (engine);
5226 - gtk_theming_engine_get (engine, state,
5227 - /* Can't use border-radius as it's an int for
5228 - * backwards compat */
5229 - "border-top-left-radius", &top_left_radius,
5230 - "border-top-right-radius", &top_right_radius,
5231 - "border-bottom-right-radius", &bottom_right_radius,
5232 - "border-bottom-left-radius", &bottom_left_radius,
5233 - "-unico-outer-stroke-width", &outer_border,
5235 - gtk_theming_engine_get_border (engine, state, &border);
5237 - if (!unico_gtk_border_is_zero (outer_border))
5238 - has_outer_stroke = TRUE;
5245 - xc = x + xy0_gap + border.left;
5247 - wc = MAX (xy1_gap - xy0_gap - (border.left + border.right), 0);
5248 - hc = border.top * 2;
5250 - if (has_outer_stroke)
5252 - xc += outer_border->left;
5253 - wc = MAX (xy1_gap - xy0_gap - (outer_border->left + outer_border->right) - (border.left + border.right), 0);
5254 - hc += outer_border->top;
5257 - if (xy0_gap < _gtk_css_number_get (&top_left_radius->horizontal, width))
5258 - junction |= GTK_JUNCTION_CORNER_TOPLEFT;
5260 - if (xy1_gap > width - _gtk_css_number_get (&top_right_radius->horizontal, width))
5261 - junction |= GTK_JUNCTION_CORNER_TOPRIGHT;
5265 - case GTK_POS_BOTTOM:
5266 - xc = x + xy0_gap + border.left;
5267 - yc = y + height - border.bottom * 2;
5268 - wc = MAX (xy1_gap - xy0_gap - (border.left + border.right), 0);
5269 - hc = border.bottom * 2;
5271 - if (has_outer_stroke)
5273 - xc += outer_border->left;
5274 - yc -= outer_border->bottom;
5275 - wc = MAX (xy1_gap - xy0_gap - (outer_border->left + outer_border->right) - (border.left + border.right), 0);
5276 - hc += outer_border->bottom;
5279 - if (xy0_gap < _gtk_css_number_get (&bottom_left_radius->horizontal, width))
5280 - junction |= GTK_JUNCTION_CORNER_BOTTOMLEFT;
5282 - if (xy1_gap > width - _gtk_css_number_get (&bottom_right_radius->horizontal, width))
5283 - junction |= GTK_JUNCTION_CORNER_BOTTOMRIGHT;
5286 - case GTK_POS_LEFT:
5288 - yc = y + xy0_gap + border.top;
5289 - wc = border.left * 2;
5290 - hc = MAX (xy1_gap - xy0_gap - (border.top + border.bottom), 0);
5292 - if (has_outer_stroke)
5294 - yc += outer_border->top;
5295 - wc += outer_border->left;
5296 - hc = MAX (xy1_gap - xy0_gap - (outer_border->top + outer_border->bottom) - (border.top + border.bottom), 0);
5299 - if (xy0_gap < _gtk_css_number_get (&top_left_radius->vertical, height))
5300 - junction |= GTK_JUNCTION_CORNER_TOPLEFT;
5302 - if (xy1_gap > height - _gtk_css_number_get (&bottom_left_radius->vertical, height))
5303 - junction |= GTK_JUNCTION_CORNER_BOTTOMLEFT;
5306 - case GTK_POS_RIGHT:
5307 - xc = x + width - border.right * 2;
5308 - yc = y + xy0_gap + border.top;
5309 - wc = border.right * 2;
5310 - hc = MAX (xy1_gap - xy0_gap - (border.top + border.bottom), 0);
5312 - if (has_outer_stroke)
5314 - xc -= outer_border->right;
5315 - yc += outer_border->top;
5316 - wc += outer_border->right;
5317 - hc = MAX (xy1_gap - xy0_gap - (outer_border->top + outer_border->bottom) - (border.top + border.bottom), 0);
5320 - if (xy0_gap < _gtk_css_number_get (&top_right_radius->vertical, height))
5321 - junction |= GTK_JUNCTION_CORNER_TOPRIGHT;
5323 - if (xy1_gap > height - _gtk_css_number_get (&bottom_right_radius->vertical, height))
5324 - junction |= GTK_JUNCTION_CORNER_BOTTOMRIGHT;
5329 - /* clip the gap */
5330 - cairo_clip_extents (cr, &x0, &y0, &x1, &y1);
5331 - cairo_rectangle (cr, x0, y0, x1 - x0, yc - y0);
5332 - cairo_rectangle (cr, x0, yc, xc - x0, hc);
5333 - cairo_rectangle (cr, xc + wc, yc, x1 - (xc + wc), hc);
5334 - cairo_rectangle (cr, x0, yc + hc, x1 - x0, y1 - (yc + hc));
5337 - /* draw the frame, gap area will not be drawn */
5338 - unico_cairo_draw_frame (engine, cr, x, y, width, height, 0, junction);
5340 - cairo_restore (cr);
5342 - g_free (top_left_radius);
5343 - g_free (top_right_radius);
5344 - g_free (bottom_right_radius);
5345 - g_free (bottom_left_radius);
5346 - gtk_border_free (outer_border);
5350 -unico_draw_grip (DRAW_ARGS)
5352 - GdkRGBA border_color;
5353 - GdkRGBA *inner_stroke_color;
5354 - GtkStateFlags state;
5357 - if (draw_centroid_texture (engine, cr, x, y, width, height))
5360 - state = gtk_theming_engine_get_state (engine);
5362 - gtk_theming_engine_get (engine, state,
5363 - "-unico-inner-stroke-color", &inner_stroke_color,
5365 - gtk_theming_engine_get_border_color (engine, state, &border_color);
5367 - for (ly = 0; ly < 4; ly++)
5369 - /* vertically, four rows of dots */
5370 - for (lx = 0; lx <= ly; lx++)
5372 - /* horizontally */
5373 - int ny = (3.5 - ly) * 3;
5376 - gdk_cairo_set_source_rgba (cr, inner_stroke_color);
5377 - cairo_rectangle (cr, x + width - nx - 1, y + height - ny - 1, 2, 2);
5380 - gdk_cairo_set_source_rgba (cr, &border_color);
5381 - cairo_rectangle (cr, x + width - nx - 1, y + height - ny - 1, 1, 1);
5386 - gdk_rgba_free (inner_stroke_color);
5390 -unico_draw_handle (DRAW_ARGS)
5393 - GtkStateFlags state;
5394 - gdouble line_width;
5395 - gint i, bar_y, num_bars, bar_spacing, bar_width, bar_height;
5397 - state = gtk_theming_engine_get_state (engine);
5398 - gtk_theming_engine_get_border (engine, state, &border);
5400 - unico_cairo_draw_background (engine, cr,
5401 - x - border.left, y - border.top,
5402 - width + border.left + border.right, height + border.top + border.bottom,
5403 - 0, GTK_JUNCTION_NONE);
5405 - if (draw_centroid_texture (engine, cr, x, y, width, height))
5408 - unico_get_line_width (engine, &line_width);
5410 - if (line_width < 1)
5417 - bar_height = num_bars * bar_spacing * line_width;
5421 - cairo_translate (cr, x + (gint) (width / 2), y + (gint) (height / 2));
5423 - if (height > width)
5424 - cairo_translate (cr, - bar_width / 2 - 0.5, - bar_height / 2 + 0.5);
5427 - cairo_translate (cr, - bar_height / 2 + 0.5, bar_width / 2 + 0.5);
5428 - cairo_rotate (cr, - G_PI / 2);
5431 - for (i = 0; i < num_bars; i++)
5434 - cairo_move_to (cr, 0, bar_y);
5435 - cairo_line_to (cr, bar_width, bar_y);
5436 - unico_cairo_set_source_border (engine, cr, bar_width, line_width);
5437 - cairo_stroke (cr);
5439 - cairo_move_to (cr, 0, bar_y + line_width);
5440 - cairo_line_to (cr, bar_width, bar_y + line_width);
5441 - unico_cairo_set_source_inner_stroke (engine, cr, bar_width, line_width);
5442 - cairo_stroke (cr);
5444 - bar_y += bar_spacing;
5447 - cairo_restore (cr);
5451 -unico_draw_line (GtkThemingEngine *engine,
5458 - /* line endings */
5466 - else if (x0 == x1)
5474 - cairo_move_to (cr, x0, y0);
5475 - cairo_line_to (cr, x1, y1);
5476 - unico_cairo_set_source_border (engine, cr, MAX (x1 - x0, 1), MAX (y1 - y0, 1));
5477 - cairo_stroke (cr);
5481 -unico_draw_notebook (DRAW_ARGS,
5482 - GtkPositionType gap_side,
5486 - unico_cairo_draw_background (engine, cr,
5487 - x, y, width, height,
5488 - 0, gtk_theming_engine_get_junction_sides (engine));
5489 - unico_draw_frame_gap (engine, cr,
5490 - x, y, width, height,
5491 - gap_side, xy0_gap, xy1_gap);
5495 -unico_draw_radio (DRAW_ARGS)
5497 - GtkStateFlags state;
5499 - gboolean draw_bullet, inconsistent;
5501 - state = gtk_theming_engine_get_state (engine);
5503 - in_menu = gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_MENUITEM);
5504 - inconsistent = (state & GTK_STATE_FLAG_INCONSISTENT) != 0;
5505 - draw_bullet = (state & GTK_STATE_FLAG_ACTIVE) != 0;
5506 - draw_bullet |= inconsistent;
5510 - unico_cairo_draw_background (engine, cr,
5511 - x, y, width, height,
5512 - 0, gtk_theming_engine_get_junction_sides (engine));
5513 - unico_cairo_draw_frame (engine, cr,
5514 - x, y, width, height,
5515 - 0, gtk_theming_engine_get_junction_sides (engine));
5520 - GdkRGBA *bullet_color;
5522 - gtk_theming_engine_get (engine, state,
5523 - "-unico-bullet-color", &bullet_color,
5528 - GdkRGBA *bullet_outline_color;
5530 - gtk_theming_engine_get (engine, state,
5531 - "-unico-bullet-outline-color", &bullet_outline_color,
5534 - /* bullet's outline */
5535 - cairo_rectangle (cr, x + width / 2.0 - (width + height) / 4.0 + 3, y + height / 2.0 - 2,
5536 - (width + height) / 4.0 + 2, 4);
5538 - gdk_cairo_set_source_rgba (cr, bullet_outline_color);
5541 - cairo_rectangle (cr, x + width / 2.0 - (width + height) / 4.0 + 4, y + height / 2.0 - 1,
5542 - (width + height) / 4.0, 2);
5544 - gdk_rgba_free (bullet_outline_color);
5549 - cairo_arc (cr, x + width / 2.0, y + height / 2.0,
5550 - (width + height) / 4.0 - 4, 0, G_PI * 2);
5553 - GdkRGBA *bullet_outline_color;
5555 - gtk_theming_engine_get (engine, state,
5556 - "-unico-bullet-outline-color", &bullet_outline_color,
5559 - /* bullet's outline */
5560 - cairo_arc (cr, x + width / 2.0, y + height / 2.0,
5561 - (width + height) / 4.0 - 4, 0, G_PI * 2);
5562 - gdk_cairo_set_source_rgba (cr, bullet_outline_color);
5565 - cairo_arc (cr, x + width / 2.0, y + height / 2.0,
5566 - (width + height) / 4.0 - 5, 0, G_PI * 2);
5568 - gdk_rgba_free (bullet_outline_color);
5573 - gdk_cairo_set_source_rgba (cr, bullet_color);
5576 - gdk_rgba_free (bullet_color);
5581 -unico_draw_separator (DRAW_ARGS)
5583 - gdouble line_width;
5585 - unico_get_line_width (engine, &line_width);
5587 - if (line_width == 0)
5590 - /* FIXME right code should be
5591 - * if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_VERTICAL))
5592 - * but doesn't work for separator tool item. */
5593 - if (width > height)
5595 - cairo_move_to (cr, x, y + (gint) (height / 2) + line_width / 2);
5596 - cairo_line_to (cr, x + width, y + (gint) (height / 2) + line_width / 2);
5597 - unico_cairo_set_source_inner_stroke (engine, cr, width, line_width);
5598 - cairo_stroke (cr);
5600 - cairo_move_to (cr, x, y + (gint) (height / 2) - line_width / 2);
5601 - cairo_line_to (cr, x + width, y + (gint) (height / 2) - line_width / 2);
5602 - unico_cairo_set_source_border (engine, cr, width, line_width);
5603 - cairo_stroke (cr);
5607 - cairo_move_to (cr, x + (gint) (width / 2) + line_width / 2, y);
5608 - cairo_line_to (cr, x + (gint) (width / 2) + line_width / 2, y + height);
5609 - unico_cairo_set_source_inner_stroke (engine, cr, line_width, height);
5610 - cairo_stroke (cr);
5612 - cairo_move_to (cr, x + (gint) (width / 2) - line_width / 2, y);
5613 - cairo_line_to (cr, x + (gint) (width / 2) - line_width / 2, y + height);
5614 - unico_cairo_set_source_border (engine, cr, line_width, height);
5615 - cairo_stroke (cr);
5620 -unico_draw_slider (DRAW_ARGS,
5621 - GtkOrientation orientation)
5623 - /* use orientation, if needed */
5624 - unico_cairo_draw_background (engine, cr,
5625 - x, y, width, height,
5626 - 0, gtk_theming_engine_get_junction_sides (engine));
5628 - draw_centroid_texture (engine, cr, x, y, width, height);
5630 - unico_cairo_draw_frame (engine, cr,
5631 - x, y, width, height,
5632 - 0, gtk_theming_engine_get_junction_sides (engine));
5636 -unico_draw_spinbutton_background (DRAW_ARGS)
5638 - GtkBorder border, *outer_border;
5639 - GtkJunctionSides junction;
5640 - GtkStateFlags state;
5642 - junction = gtk_theming_engine_get_junction_sides (engine);
5644 - state = gtk_theming_engine_get_state (engine);
5646 - gtk_theming_engine_get (engine, state,
5647 - "-unico-outer-stroke-width", &outer_border,
5649 - gtk_theming_engine_get_border (engine, state, &border);
5653 - cairo_rectangle (cr, x, y, width, height);
5656 - if (!(junction & GTK_JUNCTION_CORNER_TOPRIGHT))
5659 - height = floor (height);
5660 - height += border.bottom + outer_border->bottom;
5665 - height = ceil (height);
5666 - y -= outer_border->top;
5667 - height += outer_border->bottom;
5670 - unico_cairo_draw_background (engine, cr,
5671 - x, y, width, height,
5674 - cairo_restore (cr);
5676 - gtk_border_free (outer_border);
5680 -unico_draw_spinbutton_frame (DRAW_ARGS)
5682 - GtkBorder border, *outer_border;
5683 - GtkJunctionSides junction;
5684 - GtkStateFlags state;
5686 - junction = gtk_theming_engine_get_junction_sides (engine);
5688 - state = gtk_theming_engine_get_state (engine);
5690 - gtk_theming_engine_get (engine, state,
5691 - "-unico-outer-stroke-width", &outer_border,
5693 - gtk_theming_engine_get_border (engine, state, &border);
5697 - cairo_rectangle (cr, x, y, width, height);
5700 - if (!(junction & GTK_JUNCTION_CORNER_TOPRIGHT))
5703 - height = floor (height);
5704 - height += border.bottom + outer_border->bottom;
5709 - height = ceil (height);
5710 - y -= outer_border->top;
5711 - height += outer_border->bottom;
5714 - unico_cairo_draw_frame (engine, cr,
5715 - x, y, width, height,
5718 - cairo_restore (cr);
5720 - gtk_border_free (outer_border);
5724 @@ -1046,25 +229,7 @@
5726 g_assert (functions);
5728 - functions->draw_activity = unico_draw_activity;
5729 - functions->draw_arrow = unico_draw_arrow;
5730 - functions->draw_cell_background = unico_draw_cell_background;
5731 - functions->draw_cell_frame = unico_draw_cell_frame;
5732 - functions->draw_check = unico_draw_check;
5733 - functions->draw_common = unico_draw_common;
5734 - functions->draw_common_background = unico_draw_common_background;
5735 - functions->draw_common_frame = unico_draw_common_frame;
5736 - functions->draw_expander = unico_draw_expander;
5737 - functions->draw_extension = unico_draw_extension;
5738 - functions->draw_focus = unico_draw_focus;
5739 - functions->draw_frame_gap = unico_draw_frame_gap;
5740 - functions->draw_grip = unico_draw_grip;
5741 - functions->draw_handle = unico_draw_handle;
5742 - functions->draw_line = unico_draw_line;
5743 - functions->draw_notebook = unico_draw_notebook;
5744 - functions->draw_radio = unico_draw_radio;
5745 - functions->draw_separator = unico_draw_separator;
5746 - functions->draw_slider = unico_draw_slider;
5747 - functions->draw_spinbutton_background = unico_draw_spinbutton_background;
5748 - functions->draw_spinbutton_frame = unico_draw_spinbutton_frame;
5749 + functions->draw_arrow = unico_draw_arrow;
5750 + functions->draw_expander = unico_draw_expander;
5751 + functions->draw_focus = unico_draw_focus;
5754 === modified file 'unico/unico-draw.h'
5755 --- unico/unico-draw.h 2011-07-27 14:35:12 +0000
5756 +++ unico/unico-draw.h 2016-01-19 12:14:18 +0000
5758 /* The Unico Theming Engine for Gtk+.
5759 * Copyright (C) 2011 Canonical Ltd
5761 - * This library is free software; you can redistribute it and/or
5762 - * modify it under the terms of the GNU Lesser General Public
5763 - * License as published by the Free Software Foundation; either
5764 - * version 2 of the License, or (at your option) any later version.
5765 + * This library is free software; you can redistribute it and/or modify
5766 + * it under the terms of the GNU Lesser General Public License
5767 + * version 2.1 as published by the Free Software Foundation.
5769 * This library is distributed in the hope that it will be useful,
5770 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5772 === modified file 'unico/unico-engine.c'
5773 --- unico/unico-engine.c 2011-07-28 09:12:33 +0000
5774 +++ unico/unico-engine.c 2016-01-19 12:14:18 +0000
5776 /* The Unico Theming Engine for Gtk+.
5777 * Copyright (C) 2011 Canonical Ltd
5779 - * This library is free software; you can redistribute it and/or
5780 - * modify it under the terms of the GNU Lesser General Public
5781 - * License as published by the Free Software Foundation; either
5782 - * version 2 of the License, or (at your option) any later version.
5783 + * This library is free software; you can redistribute it and/or modify
5784 + * it under the terms of the GNU Lesser General Public License
5785 + * version 2.1 as published by the Free Software Foundation.
5787 * This library is distributed in the hope that it will be useful,
5788 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5790 G_DEFINE_DYNAMIC_TYPE (UnicoEngine, unico_engine, GTK_TYPE_THEMING_ENGINE)
5793 -unico_engine_render_activity (GtkThemingEngine *engine,
5800 - UnicoStyleFunctions *style_functions;
5801 - const GtkWidgetPath *path;
5805 - unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
5806 - path = gtk_theming_engine_get_path (engine);
5808 - if (gtk_widget_path_is_type (path, GTK_TYPE_SCALE))
5809 - unico_trim_scale_allocation (engine, &x, &y, &width, &height);
5811 - if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_SPINNER))
5812 - GTK_THEMING_ENGINE_CLASS (unico_engine_parent_class)->render_activity (engine, cr, x, y, width, height);
5814 - style_functions->draw_activity (engine, cr, x, y, width, height);
5818 unico_engine_render_arrow (GtkThemingEngine *engine,
5825 -unico_engine_render_background (GtkThemingEngine *engine,
5832 - UnicoStyleFunctions *style_functions;
5833 - const GtkWidgetPath *path;
5834 - GtkRegionFlags flags;
5838 - unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
5839 - path = gtk_theming_engine_get_path (engine);
5841 - if (gtk_widget_path_is_type (path, GTK_TYPE_SCALE) &&
5842 - gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_TROUGH))
5843 - unico_trim_scale_allocation (engine, &x, &y, &width, &height);
5845 - if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_BUTTON) &&
5846 - gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_SPINBUTTON))
5847 - style_functions->draw_spinbutton_background (engine, cr, x, y, width, height);
5848 - else if (!gtk_widget_path_is_type (path, GTK_TYPE_ICON_VIEW) &&
5849 - gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_VIEW) &&
5850 - gtk_theming_engine_has_region (engine, GTK_STYLE_REGION_COLUMN, &flags))
5851 - style_functions->draw_cell_background (engine, cr, x, y, width, height, flags);
5853 - style_functions->draw_common_background (engine, cr, x, y, width, height);
5857 -unico_engine_render_check (GtkThemingEngine *engine,
5864 - UnicoStyleFunctions *style_functions;
5868 - unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
5870 - if (!gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_MENUITEM))
5872 - if (unico_cairo_draw_from_texture (engine, cr, x, y, width, height))
5876 - style_functions->draw_check (engine, cr, x, y, width, height);
5880 unico_engine_render_expander (GtkThemingEngine *engine,
5887 -unico_engine_render_extension (GtkThemingEngine *engine,
5893 - GtkPositionType gap_side)
5895 - UnicoStyleFunctions *style_functions;
5899 - unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
5901 - style_functions->draw_extension (engine, cr, x, y, width, height, gap_side);
5905 unico_engine_render_focus (GtkThemingEngine *engine,
5908 @@ -189,147 +90,6 @@
5909 style_functions->draw_focus (engine, cr, x, y, width, height);
5913 -unico_engine_render_frame (GtkThemingEngine *engine,
5920 - UnicoStyleFunctions *style_functions;
5921 - const GtkWidgetPath *path;
5922 - GtkRegionFlags flags;
5926 - unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
5927 - path = gtk_theming_engine_get_path (engine);
5929 - if (gtk_widget_path_is_type (path, GTK_TYPE_SCALE) &&
5930 - gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_TROUGH))
5931 - unico_trim_scale_allocation (engine, &x, &y, &width, &height);
5933 - if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_SEPARATOR))
5934 - style_functions->draw_separator (engine, cr, x, y, width, height);
5935 - else if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_BUTTON) &&
5936 - gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_SPINBUTTON))
5937 - style_functions->draw_spinbutton_frame (engine, cr, x, y, width, height);
5938 - else if (!gtk_widget_path_is_type (path, GTK_TYPE_ICON_VIEW) &&
5939 - gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_VIEW) &&
5940 - gtk_theming_engine_has_region (engine, GTK_STYLE_REGION_COLUMN, &flags))
5941 - style_functions->draw_cell_frame (engine, cr, x, y, width, height, flags);
5943 - style_functions->draw_common_frame (engine, cr, x, y, width, height);
5947 -unico_engine_render_frame_gap (GtkThemingEngine *engine,
5953 - GtkPositionType gap_side,
5957 - UnicoStyleFunctions *style_functions;
5961 - unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
5963 - if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_NOTEBOOK))
5964 - style_functions->draw_notebook (engine, cr, x, y, width, height, gap_side, xy0_gap, xy1_gap);
5966 - style_functions->draw_frame_gap (engine, cr, x, y, width, height, gap_side, xy0_gap, xy1_gap);
5970 -unico_engine_render_handle (GtkThemingEngine *engine,
5977 - UnicoStyleFunctions *style_functions;
5981 - unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
5983 - if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_GRIP))
5984 - style_functions->draw_grip (engine, cr, x, y, width, height);
5986 - style_functions->draw_handle (engine, cr, x, y, width, height);
5990 -unico_engine_render_line (GtkThemingEngine *engine,
5997 - UnicoStyleFunctions *style_functions;
6001 - unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
6003 - style_functions->draw_line (engine, cr, x0, y0, x1, y1);
6007 -unico_engine_render_option (GtkThemingEngine *engine,
6014 - UnicoStyleFunctions *style_functions;
6018 - unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
6020 - if (!gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_MENUITEM))
6022 - if (unico_cairo_draw_from_texture (engine, cr, x, y, width, height))
6026 - style_functions->draw_radio (engine, cr, x, y, width, height);
6030 -unico_engine_render_slider (GtkThemingEngine *engine,
6036 - GtkOrientation orientation)
6038 - UnicoStyleFunctions *style_functions;
6042 - unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
6044 - if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_SCALE))
6046 - if (unico_cairo_draw_from_texture (engine, cr, x, y, width, height))
6050 - style_functions->draw_slider (engine, cr, x, y, width, height, orientation);
6054 unico_engine_register_types (GTypeModule *module)
6056 @@ -347,176 +107,15 @@
6058 GtkThemingEngineClass *engine_class = GTK_THEMING_ENGINE_CLASS (klass);
6060 - engine_class->render_activity = unico_engine_render_activity;
6061 engine_class->render_arrow = unico_engine_render_arrow;
6062 - engine_class->render_background = unico_engine_render_background;
6063 - engine_class->render_check = unico_engine_render_check;
6064 engine_class->render_expander = unico_engine_render_expander;
6065 - engine_class->render_extension = unico_engine_render_extension;
6066 engine_class->render_focus = unico_engine_render_focus;
6067 - engine_class->render_frame = unico_engine_render_frame;
6068 - engine_class->render_frame_gap = unico_engine_render_frame_gap;
6069 - engine_class->render_handle = unico_engine_render_handle;
6070 - engine_class->render_line = unico_engine_render_line;
6071 - engine_class->render_option = unico_engine_render_option;
6072 - engine_class->render_slider = unico_engine_render_slider;
6074 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6075 - g_param_spec_boxed ("background-texture",
6076 - "Background texture",
6077 - "Background texture",
6078 - CAIRO_GOBJECT_TYPE_PATTERN, 0));
6080 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6081 - g_param_spec_boxed ("border-gradient",
6082 - "Border gradient",
6083 - "Border gradient",
6084 - CAIRO_GOBJECT_TYPE_PATTERN, 0));
6086 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6087 - g_param_spec_boxed ("bullet-color",
6090 - GDK_TYPE_RGBA, 0));
6092 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6093 - g_param_spec_boxed ("bullet-outline-color",
6094 - "Bullet outline color",
6095 - "Bullet outline color",
6096 - GDK_TYPE_RGBA, 0));
6098 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6099 - g_param_spec_boxed ("centroid-texture",
6100 - "Centroid texture",
6101 - "Centroid texture",
6102 - CAIRO_GOBJECT_TYPE_PATTERN, 0));
6105 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6106 - g_param_spec_boxed ("focus-border-color",
6107 - "Focus border color",
6108 - "Focus border color",
6109 - GDK_TYPE_RGBA, 0));
6111 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6112 - g_param_spec_int ("focus-border-radius",
6113 - "Focus border radius",
6114 - "Focus border radius",
6115 - 0, G_MAXINT, 0, 0));
6117 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6118 - g_param_spec_boxed ("focus-fill-color",
6119 - "Focus fill color",
6120 - "Focus fill color",
6121 - GDK_TYPE_RGBA, 0));
6123 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6124 - g_param_spec_boxed ("focus-outer-stroke-color",
6125 - "Focus outer stroke color",
6126 - "Focus outer stroke color",
6127 - GDK_TYPE_RGBA, 0));
6129 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6130 - g_param_spec_int ("glow-radius",
6133 - 0, G_MAXINT, 0, 0));
6135 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6136 - g_param_spec_boxed ("glow-color",
6139 - GDK_TYPE_RGBA, 0));
6141 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6142 - g_param_spec_boxed ("inner-stroke-color",
6143 - "Inner stroke color",
6144 - "Inner stroke color",
6145 - GDK_TYPE_RGBA, 0));
6147 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6148 - g_param_spec_boxed ("inner-stroke-top-color",
6149 - "Inner stroke top color",
6150 - "Inner stroke top color",
6151 - GDK_TYPE_RGBA, 0));
6153 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6154 - g_param_spec_boxed ("inner-stroke-right-color",
6155 - "Inner stroke right color",
6156 - "Inner stroke right color",
6157 - GDK_TYPE_RGBA, 0));
6159 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6160 - g_param_spec_boxed ("inner-stroke-bottom-color",
6161 - "Inner stroke bottom color",
6162 - "Inner stroke bottom color",
6163 - GDK_TYPE_RGBA, 0));
6165 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6166 - g_param_spec_boxed ("inner-stroke-left-color",
6167 - "Inner stroke left color",
6168 - "Inner stroke left color",
6169 - GDK_TYPE_RGBA, 0));
6171 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6172 - g_param_spec_boxed ("inner-stroke-gradient",
6173 - "Inner stroke gradient",
6174 - "Inner stroke gradient",
6175 - CAIRO_GOBJECT_TYPE_PATTERN, 0));
6177 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6178 - g_param_spec_boxed ("inner-stroke-width",
6179 - "Inner stroke width",
6180 - "Inner stroke width",
6181 - GTK_TYPE_BORDER, 0));
6183 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6184 - g_param_spec_boxed ("outer-stroke-color",
6185 - "Outer stroke color",
6186 - "Outer stroke color",
6187 - GDK_TYPE_RGBA, 0));
6189 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6190 - g_param_spec_boxed ("outer-stroke-top-color",
6191 - "Outer stroke top color",
6192 - "Outer stroke top color",
6193 - GDK_TYPE_RGBA, 0));
6195 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6196 - g_param_spec_boxed ("outer-stroke-right-color",
6197 - "Outer stroke right color",
6198 - "Outer stroke right color",
6199 - GDK_TYPE_RGBA, 0));
6201 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6202 - g_param_spec_boxed ("outer-stroke-bottom-color",
6203 - "Outer stroke bottom color",
6204 - "Outer stroke bottom color",
6205 - GDK_TYPE_RGBA, 0));
6207 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6208 - g_param_spec_boxed ("outer-stroke-left-color",
6209 - "Outer stroke left color",
6210 - "Outer stroke left color",
6211 - GDK_TYPE_RGBA, 0));
6213 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6214 - g_param_spec_boxed ("outer-stroke-gradient",
6215 - "Outer stroke gradient",
6216 - "Outer stroke gradient",
6217 - CAIRO_GOBJECT_TYPE_PATTERN, 0));
6219 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6220 - g_param_spec_boxed ("outer-stroke-width",
6221 - "Outer stroke width",
6222 - "Outer stroke width",
6223 - GTK_TYPE_BORDER, 0));
6225 - gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6226 - g_param_spec_boxed ("text-shadow-color",
6227 - "Text shadow color",
6228 - "Text shadow color",
6229 - GDK_TYPE_RGBA, 0));
6231 + gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
6232 + g_param_spec_boxed ("arrow-texture",
6235 + CAIRO_GOBJECT_TYPE_PATTERN, 0));
6240 === modified file 'unico/unico-engine.h'
6241 --- unico/unico-engine.h 2011-08-09 22:18:56 +0000
6242 +++ unico/unico-engine.h 2016-01-19 12:14:18 +0000
6244 /* The Unico Theming Engine for Gtk+.
6245 * Copyright (C) 2011 Canonical Ltd
6247 - * This library is free software; you can redistribute it and/or
6248 - * modify it under the terms of the GNU Lesser General Public
6249 - * License as published by the Free Software Foundation; either
6250 - * version 2 of the License, or (at your option) any later version.
6251 + * This library is free software; you can redistribute it and/or modify
6252 + * it under the terms of the GNU Lesser General Public License
6253 + * version 2.1 as published by the Free Software Foundation.
6255 * This library is distributed in the hope that it will be useful,
6256 * but WITHOUT ANY WARRANTY; without even the implied warranty of
6258 === modified file 'unico/unico-support.c'
6259 --- unico/unico-support.c 2011-08-09 21:27:07 +0000
6260 +++ unico/unico-support.c 2016-01-19 12:14:18 +0000
6262 /* The Unico Theming Engine for Gtk+.
6263 * Copyright (C) 2011 Canonical Ltd
6265 - * This library is free software; you can redistribute it and/or
6266 - * modify it under the terms of the GNU Lesser General Public
6267 - * License as published by the Free Software Foundation; either
6268 - * version 2 of the License, or (at your option) any later version.
6269 + * This library is free software; you can redistribute it and/or modify
6270 + * it under the terms of the GNU Lesser General Public License
6271 + * version 2.1 as published by the Free Software Foundation.
6273 * This library is distributed in the hope that it will be useful,
6274 * but WITHOUT ANY WARRANTY; without even the implied warranty of
6276 #include "unico-support.h"
6277 #include "unico-types.h"
6280 -unico_gdk_rgba_is_default (GdkRGBA *color)
6282 - GdkRGBA default_color;
6284 - /* pink is default GdkRGBA color set in gtk/gtkstyleproperty.c */
6285 - gdk_rgba_parse (&default_color, "pink");
6287 - return gdk_rgba_equal (&default_color, color);
6291 -unico_get_line_width (GtkThemingEngine *engine,
6292 - gdouble *line_width)
6295 - GtkStateFlags state;
6297 - state = gtk_theming_engine_get_state (engine);
6299 - gtk_theming_engine_get_border (engine, state, &border);
6301 - *line_width = MIN (MIN (border.top, border.bottom),
6302 - MIN (border.left, border.right));
6306 -unico_gtk_border_is_zero (GtkBorder *border)
6308 - return (border->top == 0) && (border->bottom == 0) && (border->left == 0) && (border->right == 0);
6312 unico_lookup_functions (UnicoEngine *engine,
6313 UnicoStyleFunctions **functions)
6316 *functions = &engine->style_functions[UNICO_STYLE_DEFAULT];
6320 -unico_trim_scale_allocation (GtkThemingEngine *engine,
6326 - if (!gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_VERTICAL))
6328 - *y += (gint) (*height / 2.0) - 2.0;
6333 - *x += (gint) (*width / 2.0) - 2.0;
6338 === modified file 'unico/unico-support.h'
6339 --- unico/unico-support.h 2011-08-09 21:27:07 +0000
6340 +++ unico/unico-support.h 2016-01-19 12:14:18 +0000
6342 /* The Unico Theming Engine for Gtk+.
6343 * Copyright (C) 2011 Canonical Ltd
6345 - * This library is free software; you can redistribute it and/or
6346 - * modify it under the terms of the GNU Lesser General Public
6347 - * License as published by the Free Software Foundation; either
6348 - * version 2 of the License, or (at your option) any later version.
6349 + * This library is free software; you can redistribute it and/or modify
6350 + * it under the terms of the GNU Lesser General Public License
6351 + * version 2.1 as published by the Free Software Foundation.
6353 * This library is distributed in the hope that it will be useful,
6354 * but WITHOUT ANY WARRANTY; without even the implied warranty of
6359 -G_GNUC_INTERNAL gboolean unico_gdk_rgba_is_default (GdkRGBA *color);
6361 -G_GNUC_INTERNAL void unico_get_line_width (GtkThemingEngine *engine,
6362 - gdouble *line_width);
6364 -G_GNUC_INTERNAL gboolean unico_gtk_border_is_zero (GtkBorder *border);
6366 G_GNUC_INTERNAL void unico_lookup_functions (UnicoEngine *engine,
6367 UnicoStyleFunctions **functions);
6369 -G_GNUC_INTERNAL void unico_trim_scale_allocation (GtkThemingEngine *engine,
6377 #endif /* UNICO_SUPPORT_H */
6379 === modified file 'unico/unico-theme.c'
6380 --- unico/unico-theme.c 2011-06-22 14:49:06 +0000
6381 +++ unico/unico-theme.c 2016-01-19 12:14:18 +0000
6383 /* The Unico Theming Engine for Gtk+.
6384 * Copyright (C) 2011 Canonical Ltd
6386 - * This library is free software; you can redistribute it and/or
6387 - * modify it under the terms of the GNU Lesser General Public
6388 - * License as published by the Free Software Foundation; either
6389 - * version 2 of the License, or (at your option) any later version.
6390 + * This library is free software; you can redistribute it and/or modify
6391 + * it under the terms of the GNU Lesser General Public License
6392 + * version 2.1 as published by the Free Software Foundation.
6394 * This library is distributed in the hope that it will be useful,
6395 * but WITHOUT ANY WARRANTY; without even the implied warranty of
6397 === modified file 'unico/unico-types.h'
6398 --- unico/unico-types.h 2012-02-08 12:54:39 +0000
6399 +++ unico/unico-types.h 2016-01-19 12:14:18 +0000
6401 /* The Unico Theming Engine for Gtk+.
6402 * Copyright (C) 2011 Canonical Ltd
6404 - * This library is free software; you can redistribute it and/or
6405 - * modify it under the terms of the GNU Lesser General Public
6406 - * License as published by the Free Software Foundation; either
6407 - * version 2 of the License, or (at your option) any later version.
6408 + * This library is free software; you can redistribute it and/or modify
6409 + * it under the terms of the GNU Lesser General Public License
6410 + * version 2.1 as published by the Free Software Foundation.
6412 * This library is distributed in the hope that it will be useful,
6413 * but WITHOUT ANY WARRANTY; without even the implied warranty of
6418 -/* for the order in arrays */
6419 -typedef enum /*< skip >*/ {
6426 -typedef enum /*< skip >*/ {
6428 - GTK_CSS_TOP_RIGHT,
6429 - GTK_CSS_BOTTOM_RIGHT,
6430 - GTK_CSS_BOTTOM_LEFT
6433 -typedef enum /*< skip >*/ {
6434 - /* CSS term: <number> */
6436 - /* CSS term: <percentage> */
6438 - /* CSS term: <length> */
6447 - /* CSS term: <angle> */
6454 -typedef struct _GtkCssNumber GtkCssNumber;
6455 -typedef struct _GtkCssBorderCornerRadius GtkCssBorderCornerRadius;
6456 -typedef struct _GtkCssBorderRadius GtkCssBorderRadius;
6458 -struct _GtkCssNumber {
6463 -struct _GtkCssBorderCornerRadius {
6464 - GtkCssNumber horizontal;
6465 - GtkCssNumber vertical;
6468 -struct _GtkCssBorderRadius {
6469 - GtkCssBorderCornerRadius top_left;
6470 - GtkCssBorderCornerRadius top_right;
6471 - GtkCssBorderCornerRadius bottom_right;
6472 - GtkCssBorderCornerRadius bottom_left;
6477 SIDE_BOTTOM = 1 << 1,
6480 struct _UnicoStyleFunctions
6482 - void (*draw_activity) (DRAW_ARGS);
6484 void (*draw_arrow) (GtkThemingEngine *engine,
6491 - void (*draw_cell_background) (DRAW_ARGS,
6492 - GtkRegionFlags flags);
6494 - void (*draw_cell_frame) (DRAW_ARGS,
6495 - GtkRegionFlags flags);
6497 - void (*draw_check) (DRAW_ARGS);
6499 - void (*draw_common) (DRAW_ARGS);
6501 - void (*draw_common_background) (DRAW_ARGS);
6503 - void (*draw_common_frame) (DRAW_ARGS);
6505 void (*draw_expander) (DRAW_ARGS);
6507 - void (*draw_extension) (DRAW_ARGS,
6508 - GtkPositionType gap_side);
6510 void (*draw_focus) (DRAW_ARGS);
6512 - void (*draw_frame_gap) (DRAW_ARGS,
6513 - GtkPositionType gap_side,
6517 - void (*draw_grip) (DRAW_ARGS);
6519 - void (*draw_handle) (DRAW_ARGS);
6521 - void (*draw_line) (GtkThemingEngine *engine,
6528 - void (*draw_notebook) (DRAW_ARGS,
6529 - GtkPositionType gap_side,
6533 - void (*draw_radio) (DRAW_ARGS);
6535 - void (*draw_separator) (DRAW_ARGS);
6537 - void (*draw_slider) (DRAW_ARGS,
6538 - GtkOrientation orientation);
6540 - void (*draw_spinbutton_background) (DRAW_ARGS);
6542 - void (*draw_spinbutton_frame) (DRAW_ARGS);
6547 === modified file 'unico/unico.h'
6548 --- unico/unico.h 2011-01-12 16:25:15 +0000
6549 +++ unico/unico.h 2016-01-19 12:14:18 +0000
6551 /* The Unico Theming Engine for Gtk+.
6552 * Copyright (C) 2011 Canonical Ltd
6554 - * This library is free software; you can redistribute it and/or
6555 - * modify it under the terms of the GNU Lesser General Public
6556 - * License as published by the Free Software Foundation; either
6557 - * version 2 of the License, or (at your option) any later version.
6558 + * This library is free software; you can redistribute it and/or modify
6559 + * it under the terms of the GNU Lesser General Public License
6560 + * version 2.1 as published by the Free Software Foundation.
6562 * This library is distributed in the hope that it will be useful,
6563 * but WITHOUT ANY WARRANTY; without even the implied warranty of