From: Andrea Zagli Date: Sun, 22 Jul 2007 07:53:09 +0000 (+0000) Subject: Some code adjustments. X-Git-Url: https://saetta.ns0.it/gitweb?a=commitdiff_plain;h=158379da74607f9b9ea2c284a2d18a59af0dbddb;p=reptool%2Fgreptool Some code adjustments. Added CanvasImage. Managed ObjectPropoerties. Continued selection. git-svn-id: svn+ssh://saetta.homelinux.org/svn/greptool/trunk@11 76169498-11ee-428b-941f-28d7a79d5cb2 --- diff --git a/configure.ac b/configure.ac index 6717128..469cdee 100644 --- a/configure.ac +++ b/configure.ac @@ -34,6 +34,7 @@ AC_CONFIG_FILES([ data/Makefile data/greptool/Makefile data/greptool/glade/Makefile + data/greptool/pixmaps/Makefile ]) AC_OUTPUT diff --git a/data/greptool/Makefile.am b/data/greptool/Makefile.am index 21cc77b..d149b7d 100644 --- a/data/greptool/Makefile.am +++ b/data/greptool/Makefile.am @@ -1 +1 @@ -SUBDIRS = glade +SUBDIRS = glade pixmaps diff --git a/data/greptool/glade/greptool.glade b/data/greptool/glade/greptool.glade index e74f558..b8ef728 100644 --- a/data/greptool/glade/greptool.glade +++ b/data/greptool/glade/greptool.glade @@ -334,6 +334,7 @@ True + Cut to clipboard gtk-cut @@ -343,6 +344,7 @@ True + Copy to clipboard gtk-copy @@ -352,6 +354,7 @@ True + Paste from clipboard gtk-paste @@ -536,27 +539,40 @@ You should have received a copy of the GNU General Public License along with Nau 4 3 - + True - True + 0 + Provider + + + GTK_FILL + + + + + + True + 0 + Connection String - 1 - 2 1 2 + GTK_FILL - + True + 0 + SQL - 1 - 2 + 2 + 3 GTK_FILL - GTK_FILL + @@ -579,39 +595,26 @@ You should have received a copy of the GNU General Public License along with Nau - + True - 0 - SQL - 2 - 3 + 1 + 2 GTK_FILL - + GTK_FILL - + True - 0 - Connection String + True + 1 + 2 1 2 - GTK_FILL - - - - - - True - 0 - Provider - - - GTK_FILL @@ -649,19 +652,27 @@ You should have received a copy of the GNU General Public License along with Nau 3 3 - + + True + 0 + Height + + + GTK_FILL + + + + + True True - True - 0 - True + 1 1 10000 1 10 10 + 1 + 2 1 2 - 1 - 2 - GTK_FILL @@ -679,26 +690,18 @@ You should have received a copy of the GNU General Public License along with Nau - + True True - 1 1 10000 1 10 10 - 1 - 2 + True + 0 + True 1 2 - - - - - - True - 0 - Height - - + 1 + 2 GTK_FILL @@ -745,19 +748,27 @@ You should have received a copy of the GNU General Public License along with Nau 3 3 - + + True + 0 + Height + + + GTK_FILL + + + + + True True - True - 0 - True + 1 1 10000 1 10 10 + 1 + 2 1 2 - 1 - 2 - GTK_FILL @@ -775,26 +786,18 @@ You should have received a copy of the GNU General Public License along with Nau - + True True - 1 1 10000 1 10 10 - 1 - 2 + True + 0 + True 1 2 - - - - - - True - 0 - Height - - + 1 + 2 GTK_FILL @@ -899,32 +902,35 @@ You should have received a copy of the GNU General Public License along with Nau 3 3 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - A4 -Custom - + 0 + Width - 1 - 2 + 1 + 2 + GTK_FILL + - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Type + Height + 2 + 3 GTK_FILL - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK @@ -934,12 +940,11 @@ Custom 1 2 - 2 - 3 + 1 - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK @@ -949,35 +954,33 @@ Custom 1 2 - 1 + 2 + 3 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Height + Type - 2 - 3 GTK_FILL - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Width + A4 +Custom + - 1 - 2 - GTK_FILL - + 1 + 2 @@ -1020,22 +1023,61 @@ Custom 3 3 - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 10000 1 10 10 - 2 + 0 + Top + + + GTK_FILL + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Right + + + 1 + 2 + GTK_FILL + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Bottom + + + 2 + 3 + GTK_FILL + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Left - 1 - 2 3 4 + GTK_FILL + - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK @@ -1045,8 +1087,6 @@ Custom 1 2 - 2 - 3 @@ -1065,7 +1105,7 @@ Custom - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK @@ -1075,60 +1115,23 @@ Custom 1 2 + 2 + 3 - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Left + 0 0 10000 1 10 10 + 2 + 1 + 2 3 4 - GTK_FILL - - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Bottom - - - 2 - 3 - GTK_FILL - - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Right - - - 1 - 2 - GTK_FILL - - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Top - - - GTK_FILL - @@ -1170,34 +1173,31 @@ Custom 2 4 - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Height - - - - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 1 1 10000 1 10 10 - 2 + 0 + True - 1 + 3 4 + 1 + 2 - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - On First Page + 0 + True + 1 + 2 1 2 @@ -1217,35 +1217,38 @@ Custom - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True + 0 + On First Page - 1 - 2 1 2 - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True + 1 1 10000 1 10 10 + 2 - 3 + 1 4 - 1 - 2 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Height + + @@ -1287,34 +1290,31 @@ Custom 2 4 - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Height - - - - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 1 1 10000 1 10 10 - 2 + 0 + True - 1 + 3 4 + 1 + 2 - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - On First Page + 0 + True + 1 + 2 1 2 @@ -1334,35 +1334,38 @@ Custom - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True + 0 + On First Page - 1 - 2 1 2 - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True + 1 1 10000 1 10 10 + 2 - 3 + 1 4 - 1 - 2 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Height + + @@ -1450,6 +1453,7 @@ Custom True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True + @@ -1502,14 +1506,6 @@ Custom - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Size - - True @@ -1522,6 +1518,14 @@ Custom 2 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Size + + @@ -1607,31 +1611,35 @@ Custom 3 3 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - A4 -Custom + 0 + Width - 1 - 2 + 1 + 2 + GTK_FILL + - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Type + Height + 2 + 3 GTK_FILL - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK @@ -1641,12 +1649,12 @@ Custom 1 2 - 2 - 3 + 1 + 2 - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK @@ -1656,36 +1664,32 @@ Custom 1 2 - 1 - 2 + 2 + 3 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Height + Type - 2 - 3 GTK_FILL - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Width + A4 +Custom - 1 - 2 - GTK_FILL - + 1 + 2 @@ -1728,61 +1732,43 @@ Custom 3 3 - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 10000 1 10 10 - 2 + 0 + Top - 1 - 2 - 3 - 4 + GTK_FILL + - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 10000 1 10 10 - 2 + 0 + Right - 1 - 2 - 2 - 3 + 1 + 2 + GTK_FILL + - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 10000 1 10 10 - 2 + 0 + Bottom - 1 - 2 - 1 - 2 - - - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 10000 1 10 10 - 2 - - - 1 - 2 + 2 + 3 + GTK_FILL + @@ -1800,43 +1786,61 @@ Custom - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Bottom + 0 0 10000 1 10 10 + 2 - 2 - 3 - GTK_FILL - + 1 + 2 - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Right + 0 0 10000 1 10 10 + 2 + 1 + 2 1 2 - GTK_FILL - - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Top + 0 0 10000 1 10 10 + 2 - GTK_FILL - + 1 + 2 + 2 + 3 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 0 10000 1 10 10 + 2 + + + 1 + 2 + 3 + 4 @@ -1911,28 +1915,28 @@ Custom - + True + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Font + 0 - GTK_FILL - + 1 + 2 - + True - True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 + 0 + Font - 1 - 2 + GTK_FILL + @@ -2040,50 +2044,55 @@ Custom 2 3 - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 360 1 10 10 - 2 + 0 + Name - 1 - 2 - 5 - 6 + GTK_FILL - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Rotation + X - 5 - 6 + 1 + 2 GTK_FILL - + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Y + + + 2 + 3 + GTK_FILL + + + + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 10000 1 10 10 - 2 1 2 - 4 - 5 - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK @@ -2093,21 +2102,23 @@ Custom 1 2 - 3 - 4 + 1 + 2 - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Height + 0 0 10000 1 10 10 + 2 - 4 - 5 - GTK_FILL + 1 + 2 + 2 + 3 @@ -2124,22 +2135,20 @@ Custom - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 10000 1 10 10 - 2 + 0 + Height - 1 - 2 - 2 - 3 + 4 + 5 + GTK_FILL - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK @@ -2149,56 +2158,51 @@ Custom 1 2 - 1 - 2 + 3 + 4 - + True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 0 10000 1 10 10 + 2 1 2 + 4 + 5 - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Y - - - 2 - 3 - GTK_FILL - - - - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - X + Rotation - 1 - 2 + 5 + 6 GTK_FILL - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Name + 0 0 360 1 10 10 + 2 - GTK_FILL + 1 + 2 + 5 + 6 @@ -2246,55 +2250,43 @@ Custom 4 3 - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Top - - - GTK_FILL - - - - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Bottom + 0 0 100 1 10 10 + 3 + 4 1 2 - GTK_FILL - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Right + 0 0 100 1 10 10 - 2 - 3 - GTK_FILL + 3 + 4 - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Left + 0 0 100 1 10 10 - 2 - 3 + 1 + 2 1 2 - GTK_FILL @@ -2310,43 +2302,55 @@ Custom - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 100 1 10 10 + 0 + Left - 1 - 2 + 2 + 3 1 2 + GTK_FILL - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 100 1 10 10 + 0 + Right - 3 - 4 + 2 + 3 + GTK_FILL - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 100 1 10 10 + 0 + Bottom - 3 - 4 1 2 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Top + + + GTK_FILL @@ -2388,59 +2392,24 @@ Custom 4 3 - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Top - - - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Right - - - 2 - 3 - GTK_FILL - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Bottom - - - 1 - 2 - GTK_FILL - - - - + True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Left + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + #000000000000 - 2 - 3 + 3 + 4 1 2 - GTK_FILL + GTK_FILL - + True True True @@ -2449,8 +2418,8 @@ Custom #000000000000 - 1 - 2 + 3 + 4 GTK_FILL @@ -2472,7 +2441,7 @@ Custom - + True True True @@ -2481,26 +2450,61 @@ Custom #000000000000 - 3 - 4 + 1 + 2 GTK_FILL - + True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - #000000000000 + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Left - 3 - 4 + 2 + 3 1 2 - GTK_FILL + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Bottom + + + 1 + 2 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Right + + + 2 + 3 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Top + + + GTK_FILL @@ -2555,54 +2559,54 @@ Custom - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Top + Left + 2 + 3 + 1 + 2 GTK_FILL - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Bottom + Right - 1 - 2 + 2 + 3 GTK_FILL - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Right + Bottom - 2 - 3 + 1 + 2 GTK_FILL - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Left + Top - 2 - 3 - 1 - 2 GTK_FILL @@ -2653,42 +2657,35 @@ Custom 3 3 - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Font - - - GTK_FILL - GTK_FILL - - - - + True True True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 + #000000000000 1 2 + 2 + 3 GTK_FILL - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Strike + 0 + True + 1 + 2 1 2 - GTK_FILL GTK_FILL @@ -2707,35 +2704,42 @@ Custom - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - True + 0 + Strike - 1 - 2 1 2 + GTK_FILL GTK_FILL - + True True True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - #000000000000 1 2 - 2 - 3 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Font + + + GTK_FILL GTK_FILL @@ -2781,52 +2785,52 @@ Custom 2 3 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Horizontal - GTK_FILL + 1 + 2 + 1 + 2 GTK_FILL - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Vertical - 1 - 2 - GTK_FILL + 1 + 2 GTK_FILL - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Vertical - 1 - 2 + 1 + 2 + GTK_FILL GTK_FILL - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Horizontal - 1 - 2 - 1 - 2 + GTK_FILL GTK_FILL @@ -2868,17 +2872,6 @@ Custom 1 2 3 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Source - - - GTK_FILL - - True @@ -2899,6 +2892,17 @@ Custom 2 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Source + + + GTK_FILL + + @@ -2938,33 +2942,6 @@ Custom 2 2 3 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Background Color - - - GTK_FILL - GTK_FILL - - - - - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - #000000000000 - - - 1 - 2 - GTK_FILL - - True @@ -2984,114 +2961,114 @@ Custom 4 2 - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Top + 0 0 100 1 10 10 - GTK_FILL + 3 + 4 + 1 + 2 GTK_FILL - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Right + 0 0 100 1 10 10 - 2 - 3 - GTK_FILL + 3 + 4 GTK_FILL - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Bottom + 0 0 100 1 10 10 + 1 + 2 1 2 - GTK_FILL GTK_FILL - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Left + 0 0 100 1 10 10 - 2 - 3 - 1 - 2 - GTK_FILL + 1 + 2 GTK_FILL - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 100 1 10 10 + 0 + Left - 1 - 2 + 2 + 3 + 1 + 2 + GTK_FILL GTK_FILL - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 100 1 10 10 + 0 + Bottom - 1 - 2 1 2 + GTK_FILL GTK_FILL - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 100 1 10 10 + 0 + Right - 3 - 4 + 2 + 3 + GTK_FILL GTK_FILL - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 100 1 10 10 + 0 + Top - 3 - 4 - 1 - 2 + GTK_FILL GTK_FILL @@ -3118,6 +3095,33 @@ Custom GTK_FILL + + + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + #000000000000 + + + 1 + 2 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Background Color + + + GTK_FILL + GTK_FILL + + @@ -3191,28 +3195,32 @@ Custom - + True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Width + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + #000000000000 - GTK_FILL + 1 + 2 + 1 + 2 GTK_FILL - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Color + 0 0 100 1 10 10 - 1 - 2 - GTK_FILL + 1 + 2 GTK_FILL @@ -3231,32 +3239,28 @@ Custom - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 100 1 10 10 + 0 + Color - 1 - 2 + 1 + 2 + GTK_FILL GTK_FILL - + True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - #000000000000 + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Width - 1 - 2 - 1 - 2 + GTK_FILL GTK_FILL @@ -3308,28 +3312,32 @@ Custom - + True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Width + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + #000000000000 - GTK_FILL + 1 + 2 + 1 + 2 GTK_FILL - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Color + 0 0 100 1 10 10 - 1 - 2 - GTK_FILL + 1 + 2 GTK_FILL @@ -3348,32 +3356,28 @@ Custom - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 100 1 10 10 + 0 + Color - 1 - 2 + 1 + 2 + GTK_FILL GTK_FILL - + True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - #000000000000 + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Width - 1 - 2 - 1 - 2 + GTK_FILL GTK_FILL @@ -3404,18 +3408,6 @@ Custom 1 2 3 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Fill Color - - - GTK_FILL - GTK_FILL - - True @@ -3431,6 +3423,18 @@ Custom GTK_FILL + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Fill Color + + + GTK_FILL + GTK_FILL + + 1 @@ -3467,28 +3471,32 @@ Custom - + True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Width + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + #000000000000 - GTK_FILL + 1 + 2 + 1 + 2 GTK_FILL - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Color + 0 0 100 1 10 10 - 1 - 2 - GTK_FILL + 1 + 2 GTK_FILL @@ -3507,32 +3515,28 @@ Custom - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 100 1 10 10 + 0 + Color - 1 - 2 + 1 + 2 + GTK_FILL GTK_FILL - + True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - #000000000000 + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Width - 1 - 2 - 1 - 2 + GTK_FILL GTK_FILL @@ -3563,18 +3567,6 @@ Custom 1 2 3 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Fill Color - - - GTK_FILL - GTK_FILL - - True @@ -3590,6 +3582,18 @@ Custom GTK_FILL + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Fill Color + + + GTK_FILL + GTK_FILL + + 1 @@ -3638,55 +3642,43 @@ Custom 4 3 - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Top - - - GTK_FILL - - - - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Bottom + 0 0 100 1 10 10 + 3 + 4 1 2 - GTK_FILL - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Right + 0 0 100 1 10 10 - 2 - 3 - GTK_FILL + 3 + 4 - + True + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Left + 0 0 100 1 10 10 - 2 - 3 + 1 + 2 1 2 - GTK_FILL @@ -3702,43 +3694,55 @@ Custom - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 100 1 10 10 + 0 + Left - 1 - 2 + 2 + 3 1 2 + GTK_FILL - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 100 1 10 10 + 0 + Right - 3 - 4 + 2 + 3 + GTK_FILL - + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 0 100 1 10 10 + 0 + Bottom - 3 - 4 1 2 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Top + + + GTK_FILL @@ -3780,42 +3784,66 @@ Custom 4 3 - + True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Top + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + #000000000000 - GTK_FILL + 3 + 4 + 1 + 2 GTK_FILL - + True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Right + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + #000000000000 - 2 - 3 - GTK_FILL + 3 + 4 GTK_FILL - + True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Bottom + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + #000000000000 + 1 + 2 1 2 - GTK_FILL + GTK_FILL + + + + + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + #000000000000 + + + 1 + 2 GTK_FILL @@ -3836,66 +3864,42 @@ Custom - - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - #000000000000 - - - 1 - 2 - GTK_FILL - - - - + True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - #000000000000 + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Bottom - 1 - 2 1 2 + GTK_FILL GTK_FILL - + True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - #000000000000 + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Right - 3 - 4 + 2 + 3 + GTK_FILL GTK_FILL - + True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - #000000000000 + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Top - 3 - 4 - 1 - 2 + GTK_FILL GTK_FILL @@ -3951,54 +3955,54 @@ Custom - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Top + Left + 2 + 3 + 1 + 2 GTK_FILL - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Bottom + Right - 1 - 2 + 2 + 3 GTK_FILL - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Right + Bottom - 2 - 3 + 1 + 2 GTK_FILL - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 - Left + Top - 2 - 3 - 1 - 2 GTK_FILL @@ -4061,18 +4065,6 @@ Custom 1 2 3 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Source - - - GTK_FILL - GTK_FILL - - True @@ -4093,6 +4085,18 @@ Custom 2 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Source + + + GTK_FILL + GTK_FILL + + @@ -4121,25 +4125,25 @@ Custom 2 3 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Adapt - GTK_FILL + 1 + 2 GTK_FILL - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Adapt - 1 - 2 + GTK_FILL GTK_FILL diff --git a/src/Makefile.am b/src/Makefile.am index 9262dea..bfb0300 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,7 +1,9 @@ gladedir = $(datadir)/greptool/glade +iconsdir = $(datadir)/greptool/pixmaps AM_CPPFLAGS = $(GREPTOOL_CFLAGS) \ - -DGLADEDIR=\""$(gladedir)"\" + -DGLADEDIR=\""$(gladedir)"\" \ + -DICONSDIR=\""$(iconsdir)"\" LIBS = $(GREPTOOL_LIBS) \ -export-dynamic @@ -10,13 +12,24 @@ bin_PROGRAMS = greptool greptool_SOURCES = \ main.c \ + main.h \ report_properties.c \ page_properties.c \ object_properties.c \ + object_properties.h \ objects_tree.c \ + objects_tree.h \ canvas.c \ + canvas.h \ canvasitem.c \ + canvasitem.h \ canvastext.c \ + canvastext.h \ canvasline.c \ + canvasline.h \ canvasrect.c \ - canvasellipse.c + canvasrect.h \ + canvasellipse.c \ + canvasimage.c \ + canvasimage.h \ + canvasellipse.h diff --git a/src/canvas.c b/src/canvas.c index 760053b..7b9067b 100644 --- a/src/canvas.c +++ b/src/canvas.c @@ -27,6 +27,7 @@ #include "canvasline.h" #include "canvasrect.h" #include "canvasellipse.h" +#include "canvasimage.h" static void grpt_canvas_class_init (GRptCanvasClass *klass); static void grpt_canvas_init (GRptCanvas *canvas); @@ -59,6 +60,8 @@ struct _GRptCanvasPrivate gdouble sel_y_start; Tool tool; + + gboolean stop_signal_changed_selection; }; GType @@ -134,6 +137,7 @@ grpt_canvas_init (GRptCanvas *grpt_canvas) GRptCanvasPrivate *priv = GRPT_CANVAS_GET_PRIVATE (grpt_canvas); priv->in_selection = FALSE; + priv->stop_signal_changed_selection = FALSE; } static void @@ -177,6 +181,14 @@ grpt_canvas_add_item (GRptCanvas *grpt_canvas, RptReportSection section, RptObje RPT_OBJ_LINE (rpt_object), NULL); } + else if (IS_RPT_OBJ_IMAGE (rpt_object)) + { + item = grpt_canvas_image_new (priv->root, + x, y, + width, height, + RPT_OBJ_IMAGE (rpt_object), + NULL); + } else { return; @@ -215,15 +227,10 @@ grpt_canvas_on_button_press_event (GtkWidget *widget, { if (!grpt_canvas_item_is_selected (GRPT_CANVAS_ITEM (item))) { - GList *sel = NULL; - grpt_canvas_item_set_selected (GRPT_CANVAS_ITEM (item), TRUE); - sel = g_list_append (sel, item); g_signal_emit (grpt_canvas, klass->selection_changed_signal_id, 0, - sel); - - g_list_free (sel); + grpt_canvas_get_selected_items (grpt_canvas)); } priv->in_selection = FALSE; @@ -334,6 +341,10 @@ grpt_canvas_on_button_release_event (GtkWidget *widget, case TOOL_ELLIPSE: rpt_object = rpt_obj_ellipse_new (get_new_object_name (priv->tool), position); break; + + case TOOL_IMAGE: + rpt_object = rpt_obj_image_new (get_new_object_name (priv->tool), position); + break; } if (rpt_object != NULL) { @@ -359,22 +370,21 @@ grpt_canvas_on_button_release_event (GtkWidget *widget, if (objects != NULL) { - objects = g_list_first (objects); - while (objects != NULL) + GList *list_item = g_list_first (objects); + while (list_item != NULL) { - item = (GooCanvasItem *)objects->data; - + item = (GooCanvasItem *)list_item->data; + if (item != priv->selection) { grpt_canvas_item_set_selected (GRPT_CANVAS_ITEM (item), TRUE); } - objects = g_list_next (objects); + list_item = g_list_next (list_item); } - objects = g_list_first (objects); g_signal_emit (grpt_canvas, klass->selection_changed_signal_id, 0, - objects); + g_list_first (objects)); g_list_free (objects); } @@ -630,21 +640,37 @@ grpt_canvas_set_item_selected (GRptCanvas *grpt_canvas, GRptCanvasItem *grpt_can void grpt_canvas_select_all (GRptCanvas *grpt_canvas) { + GRptCanvasPrivate *priv = GRPT_CANVAS_GET_PRIVATE (grpt_canvas); + GRptCanvasClass *klass = GRPT_CANVAS_GET_CLASS (grpt_canvas); + + priv->stop_signal_changed_selection = TRUE; grpt_canvas_select_section_all (grpt_canvas, RPTREPORT_SECTION_REPORT_HEADER, FALSE); grpt_canvas_select_section_all (grpt_canvas, RPTREPORT_SECTION_PAGE_HEADER, TRUE); grpt_canvas_select_section_all (grpt_canvas, RPTREPORT_SECTION_BODY, TRUE); grpt_canvas_select_section_all (grpt_canvas, RPTREPORT_SECTION_REPORT_FOOTER, TRUE); grpt_canvas_select_section_all (grpt_canvas, RPTREPORT_SECTION_REPORT_HEADER, TRUE); + priv->stop_signal_changed_selection = FALSE; + + g_signal_emit (grpt_canvas, klass->selection_changed_signal_id, 0, + grpt_canvas_get_selected_items (grpt_canvas)); } void grpt_canvas_select_none (GRptCanvas *grpt_canvas) { + GRptCanvasPrivate *priv = GRPT_CANVAS_GET_PRIVATE (grpt_canvas); + GRptCanvasClass *klass = GRPT_CANVAS_GET_CLASS (grpt_canvas); + + priv->stop_signal_changed_selection = TRUE; grpt_canvas_select_section_none (grpt_canvas, RPTREPORT_SECTION_REPORT_HEADER); grpt_canvas_select_section_none (grpt_canvas, RPTREPORT_SECTION_PAGE_HEADER); grpt_canvas_select_section_none (grpt_canvas, RPTREPORT_SECTION_BODY); grpt_canvas_select_section_none (grpt_canvas, RPTREPORT_SECTION_REPORT_FOOTER); grpt_canvas_select_section_none (grpt_canvas, RPTREPORT_SECTION_REPORT_HEADER); + priv->stop_signal_changed_selection = FALSE; + + g_signal_emit (grpt_canvas, klass->selection_changed_signal_id, 0, + NULL); } void @@ -654,10 +680,15 @@ grpt_canvas_select_section_all (GRptCanvas *grpt_canvas, RptReportSection sectio GList *objects = NULL; GRptCanvasPrivate *priv = GRPT_CANVAS_GET_PRIVATE (grpt_canvas); + GRptCanvasClass *klass = GRPT_CANVAS_GET_CLASS (grpt_canvas); if (!add_to_selection) { + gboolean prev_stop = priv->stop_signal_changed_selection; + + priv->stop_signal_changed_selection = TRUE; grpt_canvas_select_section_none (grpt_canvas, section); + priv->stop_signal_changed_selection = prev_stop; } switch (section) @@ -692,6 +723,13 @@ grpt_canvas_select_section_all (GRptCanvas *grpt_canvas, RptReportSection sectio grpt_canvas_item_set_selected ((GRptCanvasItem *)objects->data, TRUE); objects = g_list_next (objects); } + + if (!priv->stop_signal_changed_selection) + { + objects = g_list_first (objects); + g_signal_emit (grpt_canvas, klass->selection_changed_signal_id, 0, + objects); + } } void @@ -700,6 +738,7 @@ grpt_canvas_select_section_none (GRptCanvas *grpt_canvas, RptReportSection secti GList *objects = NULL; GRptCanvasPrivate *priv = GRPT_CANVAS_GET_PRIVATE (grpt_canvas); + GRptCanvasClass *klass = GRPT_CANVAS_GET_CLASS (grpt_canvas); switch (section) { @@ -733,6 +772,12 @@ grpt_canvas_select_section_none (GRptCanvas *grpt_canvas, RptReportSection secti grpt_canvas_item_set_selected ((GRptCanvasItem *)objects->data, FALSE); objects = g_list_next (objects); } + + if (!priv->stop_signal_changed_selection) + { + g_signal_emit (grpt_canvas, klass->selection_changed_signal_id, 0, + NULL); + } } GList diff --git a/src/canvasellipse.c b/src/canvasellipse.c index 7e10459..df39bb0 100644 --- a/src/canvasellipse.c +++ b/src/canvasellipse.c @@ -16,6 +16,8 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include + #include "canvasellipse.h" @@ -166,30 +168,21 @@ grpt_canvas_ellipse_paint (GooCanvasItemSimple *simple, cairo_t *cr, const GooCa stroke->style = NULL; } - if (rotation != NULL) - { - /* TO DO */ - /*rpt_print_rotate (rpt_print, position, size, rotation->angle);*/ - } - - /* TO DO */ - /*cairo_set_line_width (priv->cr, stroke.width);*/ - cairo_rectangle (cr, position->x, position->y, size->width, size->height); - + cairo_save (cr); + cairo_translate (cr, position->x + size->width / 2., position->y + size->height / 2.); + cairo_scale (cr, size->width / 2., size->height / 2.); + cairo_arc (cr, 0., 0., 1., 0., 2. * M_PI); + cairo_restore (cr); + if (fill_color != NULL) { cairo_set_source_rgba (cr, fill_color->r, fill_color->g, fill_color->b, fill_color->a); cairo_fill_preserve (cr); } - if (stroke->style != NULL) - { - gdouble *dash = rpt_common_style_to_array (stroke->style); - cairo_set_dash (cr, dash, stroke->style->len, 0.0); - } - cairo_set_source_rgba (cr, stroke->color->r, stroke->color->g, stroke->color->b, stroke->color->a); cairo_stroke (cr); + cairo_new_path (cr); } static RptObject diff --git a/src/canvasimage.c b/src/canvasimage.c new file mode 100644 index 0000000..208915c --- /dev/null +++ b/src/canvasimage.c @@ -0,0 +1,179 @@ +/* + * Copyright (C) 2007 Andrea Zagli + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include "canvasimage.h" + + +static void grpt_canvas_image_class_init (GRptCanvasImageClass *klass); +static void grpt_canvas_image_init (GRptCanvasImage *grpt_canvas_image); + + +static void grpt_canvas_image_paint (GooCanvasItemSimple *simple, + cairo_t *cr, + const GooCanvasBounds *bounds); + +static RptObject *grpt_canvas_image_get_rpt_object (GRptCanvasItem *grpt_canvas_item); + + +#define GRPT_CANVAS_IMAGE_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GRPT_TYPE_CANVAS_IMAGE, GRptCanvasImagePrivate)) + + +typedef struct _GRptCanvasImagePrivate GRptCanvasImagePrivate; +struct _GRptCanvasImagePrivate + { + RptObjImage *rpt_object_image; + }; + +GType +grpt_canvas_image_get_type (void) +{ + static GType grpt_canvas_image_type = 0; + + if (!grpt_canvas_image_type) + { + static const GTypeInfo grpt_canvas_image_info = + { + sizeof (GRptCanvasImageClass), + NULL, /* base_init */ + NULL, /* base_finalize */ + (GClassInitFunc) grpt_canvas_image_class_init, + NULL, /* class_finalize */ + NULL, /* class_data */ + sizeof (GRptCanvasImage), + 0, /* n_preallocs */ + (GInstanceInitFunc) grpt_canvas_image_init, + NULL + }; + + grpt_canvas_image_type = g_type_register_static (GRPT_TYPE_CANVAS_ITEM, "GRptCanvasImage", + &grpt_canvas_image_info, 0); + } + + return grpt_canvas_image_type; +} + +static void +grpt_canvas_image_class_init (GRptCanvasImageClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GRptCanvasItemClass *canvas_item_class = GRPT_CANVAS_ITEM_CLASS (klass); + GooCanvasItemSimpleClass *simple_class = (GooCanvasItemSimpleClass *)klass; + + g_type_class_add_private (object_class, sizeof (GRptCanvasImagePrivate)); + + canvas_item_class->paint = grpt_canvas_image_paint; + canvas_item_class->get_rpt_object = grpt_canvas_image_get_rpt_object; +} + +static void +grpt_canvas_image_init (GRptCanvasImage *grpt_canvas_image) +{ +} + +GRptCanvasItem +*grpt_canvas_image_new (GooCanvasItem *parent, gdouble x, gdouble y, gdouble width, gdouble height, RptObjImage *rpt_object_image, ...) +{ + GRptCanvasItem *item; + GRptCanvasImage *grpt_canvas_image; + + RptPoint position; + RptSize size; + + const char *first_property; + va_list var_args; + GRptCanvasImagePrivate *priv; + + item = g_object_new (GRPT_TYPE_CANVAS_IMAGE, NULL); + + grpt_canvas_image = (GRptCanvasImage *)item; + + priv = GRPT_CANVAS_IMAGE_GET_PRIVATE (grpt_canvas_image); + priv->rpt_object_image = g_object_ref (rpt_object_image); + + va_start (var_args, rpt_object_image); + first_property = va_arg (var_args, char*); + if (first_property) + { + g_object_set_valist ((GObject *)item, first_property, var_args); + } + va_end (var_args); + + if (parent) + { + goo_canvas_item_add_child (parent, GOO_CANVAS_ITEM (item), -1); + g_object_unref (item); + } + + position.x = x; + position.y = y; + grpt_canvas_item_set_position (item, position); + + size.width = width; + size.height = height; + grpt_canvas_item_set_size (item, size); + + return item; +} + +static void +grpt_canvas_image_paint (GooCanvasItemSimple *simple, cairo_t *cr, const GooCanvasBounds *bounds) +{ + RptPoint *from_p; + RptPoint *to_p = (RptPoint *)g_new (RptPoint, 1); + RptSize *size; + RptRotation *rotation = NULL; + + GRptCanvasImage *grpt_canvas_image = (GRptCanvasImage *)simple; + + GRptCanvasItem *grpt_canvas_item = (GRptCanvasItem *)simple; + + GRptCanvasImagePrivate *priv = GRPT_CANVAS_IMAGE_GET_PRIVATE (grpt_canvas_image); + + g_object_get (G_OBJECT (priv->rpt_object_image), + "position", &from_p, + "size", &size, + "rotation", &rotation, + NULL); + + to_p->x = from_p->x + size->width; + to_p->y = from_p->y + size->height; + + cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 1.0); + + if (rotation != NULL) + { + /*RptSize size; + + size.width = to_p->x - from_p->x; + size.height = to_p->y - from_p->y; + + rpt_print_rotate (rpt_print, from_p, &size, rotation->angle);*/ + } + + cairo_move_to (cr, from_p->x, from_p->y); + cairo_line_to (cr, to_p->x, to_p->y); + cairo_stroke (cr); +} + +static RptObject +*grpt_canvas_image_get_rpt_object (GRptCanvasItem *grpt_canvas_item) +{ + GRptCanvasImagePrivate *priv = GRPT_CANVAS_IMAGE_GET_PRIVATE (GRPT_CANVAS_IMAGE (grpt_canvas_item)); + + return RPT_OBJECT (priv->rpt_object_image); +} diff --git a/src/canvasimage.h b/src/canvasimage.h new file mode 100644 index 0000000..d8c762d --- /dev/null +++ b/src/canvasimage.h @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2007 Andrea Zagli + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef __GRPT_CANVAS_IMAGE_H__ +#define __GRPT_CANVAS_IMAGE_H__ + +#include +#include + +#include "canvasitem.h" + + +G_BEGIN_DECLS + + +#define GRPT_TYPE_CANVAS_IMAGE (grpt_canvas_image_get_type ()) +#define GRPT_CANVAS_IMAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GRPT_TYPE_CANVAS_IMAGE, GRptCanvasImage)) +#define GRPT_CANVAS_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GRPT_TYPE_CANVAS_IMAGE, GRptCanvasImageClass)) +#define GRPT_IS_CANVAS_IMAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GRPT_TYPE_CANVAS_IMAGE)) +#define GRPT_IS_CANVAS_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GRPT_TYPE_CANVAS_IMAGE)) +#define GRPT_CANVAS_IMAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GRPT_TYPE_CANVAS_IMAGE, GRptCanvasLineClass)) + + +typedef struct _GRptCanvasImage GRptCanvasImage; +typedef struct _GRptCanvasImageClass GRptCanvasImageClass; + +struct _GRptCanvasImage +{ + GRptCanvasItem parent; +}; + +struct _GRptCanvasImageClass +{ + GRptCanvasItemClass parent_class; +}; + +GType grpt_canvas_image_get_type (void) G_GNUC_CONST; + +GRptCanvasItem *grpt_canvas_image_new (GooCanvasItem *parent, + gdouble x, + gdouble y, + gdouble width, + gdouble height, + RptObjImage *rpt_object_image, + ...); + + +G_END_DECLS + + +#endif /* __GRPT_CANVAS_IMAGE_H__ */ diff --git a/src/canvasitem.c b/src/canvasitem.c index 862f143..7270876 100644 --- a/src/canvasitem.c +++ b/src/canvasitem.c @@ -293,6 +293,15 @@ grpt_canvas_item_paint (GooCanvasItemSimple *simple, if (priv->selected) { + /*cairo_new_path (cr); + cairo_set_line_width (cr, 1.0); + cairo_rectangle (cr, bounds->x1 + 5, bounds->y1 + 5, 5.0, 5.0); + + cairo_set_source_rgba (cr, 1.0, 0.0, 0.0, 1.0); + cairo_fill_preserve (cr); + + cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 1.0); + cairo_stroke (cr);*/ } } diff --git a/src/main.c b/src/main.c index b14ac28..0f166f2 100644 --- a/src/main.c +++ b/src/main.c @@ -74,6 +74,8 @@ static GRptCanvas *grpt_canvas; static GRptObjectsTree *objects_tree; +static GRptObjectProperties *object_properties; + /* PRIVATE */ static void report_reset_counters () @@ -85,6 +87,12 @@ report_reset_counters () image_counter = 0; } +static void +report_find_counters () +{ + /* TO DO */ +} + static void menu_toolbar_sensitivity () { @@ -326,14 +334,14 @@ void on_mnu_edit_select_all_activate (GtkMenuItem *menuitem, gpointer user_data) { - grpt_canvas_select_section_all (grpt_canvas, RPTREPORT_SECTION_BODY, FALSE); + grpt_canvas_select_all (grpt_canvas); } void on_mnu_edit_select_none_activate (GtkMenuItem *menuitem, gpointer user_data) { - grpt_canvas_select_section_none (grpt_canvas, RPTREPORT_SECTION_BODY); + grpt_canvas_select_none (grpt_canvas); } void @@ -431,7 +439,7 @@ report_on_canvas_selection_changed (GRptCanvas *grpt_canvas, GList *items, gpointer user_data) { - g_fprintf(stderr,"selection changed\n"); + grpt_objects_tree_select (objects_tree, items); } /* PUBLIC */ @@ -495,10 +503,22 @@ const gchar return ret; } +GRptObjectProperties +*get_grpt_object_properties (void) +{ + if (object_properties == NULL) + { + object_properties = grpt_object_properties_new (); + } + + return object_properties; +} + int main (int argc, char **argv) { GladeXML *glaMain; + GtkWidget *image; gtk_init (&argc, &argv); @@ -528,9 +548,31 @@ main (int argc, char **argv) rtbtn_ellipse = glade_xml_get_widget (glaMain, "rtbtn_ellipse"); rtbtn_image = glade_xml_get_widget (glaMain, "rtbtn_image"); + image = gtk_image_new_from_file (ICONSDIR "/selector.png"); + gtk_tool_button_set_icon_widget (GTK_TOOL_BUTTON (rtbtn_select), image); + gtk_widget_show (image); + image = gtk_image_new_from_file (ICONSDIR "/text.png"); + gtk_tool_button_set_icon_widget (GTK_TOOL_BUTTON (rtbtn_text), image); + gtk_widget_show (image); + image = gtk_image_new_from_file (ICONSDIR "/line.png"); + gtk_tool_button_set_icon_widget (GTK_TOOL_BUTTON (rtbtn_line), image); + gtk_widget_show (image); + image = gtk_image_new_from_file (ICONSDIR "/rectangle.png"); + gtk_tool_button_set_icon_widget (GTK_TOOL_BUTTON (rtbtn_rect), image); + gtk_widget_show (image); + image = gtk_image_new_from_file (ICONSDIR "/ellipse.png"); + gtk_tool_button_set_icon_widget (GTK_TOOL_BUTTON (rtbtn_ellipse), image); + gtk_widget_show (image); + image = gtk_image_new_from_file (ICONSDIR "/image.png"); + gtk_tool_button_set_icon_widget (GTK_TOOL_BUTTON (rtbtn_image), image); + gtk_widget_show (image); + report_filename = NULL; rpt_report = NULL; + objects_tree = NULL; + object_properties = NULL; + menu_toolbar_sensitivity (); gtk_main (); diff --git a/src/main.h b/src/main.h index 722bdfb..a6592ba 100644 --- a/src/main.h +++ b/src/main.h @@ -19,6 +19,8 @@ #ifndef __MAIN_H__ #define __MAIN_H__ +#include "object_properties.h" + G_BEGIN_DECLS @@ -37,6 +39,8 @@ Tool get_current_tool (); const gchar *get_new_object_name (Tool tool); +GRptObjectProperties *get_grpt_object_properties (void); + G_END_DECLS diff --git a/src/object_properties.c b/src/object_properties.c index 298d63b..3999f01 100644 --- a/src/object_properties.c +++ b/src/object_properties.c @@ -19,6 +19,8 @@ #include #include +#include + #include "object_properties.h" static void grpt_object_properties_class_init (GRptObjectPropertiesClass *klass); @@ -118,12 +120,21 @@ GRptObjectProperties } void -grpt_object_properties_set_rpt_object (GRptObjectProperties *grpt_object_properties, - RptObject *rpt_object) +grpt_object_properties_set_canvas_item (GRptObjectProperties *grpt_object_properties, + GRptCanvasItem *grpt_canvas_item) { + if (!GRPT_IS_OBJECT_PROPERTIES (grpt_object_properties)) return; + GRptObjectPropertiesPrivate *priv = GRPT_OBJECT_PROPERTIES_GET_PRIVATE (grpt_object_properties); - priv->rpt_obj = g_object_ref (rpt_object); + if (GRPT_IS_CANVAS_ITEM (grpt_canvas_item)) + { + priv->rpt_obj = grpt_canvas_item_get_rpt_object (grpt_canvas_item); + } + else + { + priv->rpt_obj = NULL; + } grpt_object_properties_load_common (grpt_object_properties); @@ -157,6 +168,19 @@ grpt_object_properties_destroy (GRptObjectProperties *grpt_object_properties) gtk_widget_destroy (priv->w); } +static void +grpt_object_properties_empty_properties (GRptObjectProperties *grpt_object_properties) +{ + GRptObjectPropertiesPrivate *priv = GRPT_OBJECT_PROPERTIES_GET_PRIVATE (grpt_object_properties); + + gtk_entry_set_text (GTK_ENTRY (priv->txt_name), ""); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->spn_x), 0.0); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->spn_y), 0.0); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->spn_width), 0.0); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->spn_height), 0.0); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->spn_rotation), 0.0); +} + static void grpt_object_properties_load_common (GRptObjectProperties *grpt_object_properties) { @@ -167,6 +191,10 @@ grpt_object_properties_load_common (GRptObjectProperties *grpt_object_properties GRptObjectPropertiesPrivate *priv = GRPT_OBJECT_PROPERTIES_GET_PRIVATE (grpt_object_properties); + grpt_object_properties_empty_properties (grpt_object_properties); + + if (!IS_RPT_OBJECT (priv->rpt_obj)) return; + g_object_get (G_OBJECT (priv->rpt_obj), "name", &name, "position", &position, @@ -223,19 +251,55 @@ grpt_object_properties_load_text (GRptObjectProperties *grpt_object_properties) static void grpt_object_properties_load_line (GRptObjectProperties *grpt_object_properties) { + RptStroke *stroke; + + GRptObjectPropertiesPrivate *priv = GRPT_OBJECT_PROPERTIES_GET_PRIVATE (grpt_object_properties); + + g_object_get (G_OBJECT (priv->rpt_obj), + "stroke", &stroke, + NULL); } static void grpt_object_properties_load_rect (GRptObjectProperties *grpt_object_properties) { + RptStroke *stroke; + RptColor *fill_color; + + GRptObjectPropertiesPrivate *priv = GRPT_OBJECT_PROPERTIES_GET_PRIVATE (grpt_object_properties); + + g_object_get (G_OBJECT (priv->rpt_obj), + "stroke", &stroke, + "fill-color", &fill_color, + NULL); } static void grpt_object_properties_load_ellipse (GRptObjectProperties *grpt_object_properties) { + RptStroke *stroke; + RptColor *fill_color; + + GRptObjectPropertiesPrivate *priv = GRPT_OBJECT_PROPERTIES_GET_PRIVATE (grpt_object_properties); + + g_object_get (G_OBJECT (priv->rpt_obj), + "stroke", &stroke, + "fill-color", &fill_color, + NULL); } static void grpt_object_properties_load_image (GRptObjectProperties *grpt_object_properties) { + RptBorder *border; + gchar *source; + guint adapt; + + GRptObjectPropertiesPrivate *priv = GRPT_OBJECT_PROPERTIES_GET_PRIVATE (grpt_object_properties); + + g_object_get (G_OBJECT (priv->rpt_obj), + "border", &border, + "source", &source, + "adapt", &adapt, + NULL); } diff --git a/src/object_properties.h b/src/object_properties.h index 37d0b8b..3d8e0c0 100644 --- a/src/object_properties.h +++ b/src/object_properties.h @@ -20,7 +20,8 @@ #define __GRPT_OBJECT_PROPERTIES_H__ #include -#include + +#include "canvasitem.h" G_BEGIN_DECLS @@ -51,8 +52,8 @@ GType grpt_object_properties_get_type (void) G_GNUC_CONST; GRptObjectProperties *grpt_object_properties_new (void); -void grpt_object_properties_set_rpt_object (GRptObjectProperties *grpt_object_properties, - RptObject *rpt_object); +void grpt_object_properties_set_canvas_item (GRptObjectProperties *grpt_object_properties, + GRptCanvasItem *grpt_canvas_item); void grpt_object_properties_destroy (GRptObjectProperties *grpt_object_properties); diff --git a/src/objects_tree.c b/src/objects_tree.c index 0069e48..b2cd275 100644 --- a/src/objects_tree.c +++ b/src/objects_tree.c @@ -19,7 +19,9 @@ #include #include +#include "main.h" #include "objects_tree.h" +#include "object_properties.h" enum { @@ -41,7 +43,7 @@ static void grpt_objects_tree_init (GRptObjectsTree *grpt_objects_tree); typedef struct _GRptObjectsTreePrivate GRptObjectsTreePrivate; struct _GRptObjectsTreePrivate { - GRptCanvas *canvas; + GRptCanvas *grpt_canvas; GtkWidget *w_tree; GtkWidget *tr_objects; @@ -56,6 +58,8 @@ struct _GRptObjectsTreePrivate GtkTreeRowReference *trr_page_footer; }; +static GRptObjectProperties *object_properties; + GType grpt_objects_tree_get_type (void) { @@ -281,6 +285,87 @@ grpt_objects_tree_find_item_in_section (GRptObjectsTree *grpt_objects_tree, return ret; } +static gboolean +grpt_objects_tree_find_item (GRptObjectsTree *grpt_objects_tree, + GRptCanvasItem *grpt_canvas_item, + GtkTreeIter *iter) +{ + if (grpt_objects_tree_find_item_in_section (grpt_objects_tree, RPTREPORT_SECTION_REPORT_HEADER, + grpt_canvas_item, iter)) + { + } + else if (grpt_objects_tree_find_item_in_section (grpt_objects_tree, RPTREPORT_SECTION_PAGE_HEADER, + grpt_canvas_item, iter)) + { + } + else if (grpt_objects_tree_find_item_in_section (grpt_objects_tree, RPTREPORT_SECTION_BODY, + grpt_canvas_item, iter)) + { + } + else if (grpt_objects_tree_find_item_in_section (grpt_objects_tree, RPTREPORT_SECTION_REPORT_FOOTER, + grpt_canvas_item, iter)) + { + } + else if (grpt_objects_tree_find_item_in_section (grpt_objects_tree, RPTREPORT_SECTION_PAGE_FOOTER, + grpt_canvas_item, iter)) + { + } +} + +/* CALLBACKS */ +void +grpt_objects_tree_on_tr_objects_tree_row_activated (GtkTreeView *treeview, + GtkTreePath *path, + GtkTreeViewColumn *col, + gpointer userdata) +{ + GtkTreeModel *model; + GtkTreeIter iter; + + if (object_properties != NULL) return; + + object_properties = get_grpt_object_properties (); + + model = gtk_tree_view_get_model (treeview); + + if (gtk_tree_model_get_iter (model, &iter, path)) + { + GRptCanvasItem *canvas_item; + + gtk_tree_model_get (model, &iter, + OBJS_TREE_COL_GRPT_CANVAS_ITEM, &canvas_item, + -1); + + grpt_object_properties_set_canvas_item (object_properties, canvas_item); + } +} + +static void +grpt_objects_tree_on_selection_changed (GtkTreeSelection *treeselection, + gpointer user_data) +{ + GRptCanvasItem *canvas_item = NULL; + + GRptObjectsTreePrivate *priv = GRPT_OBJECTS_TREE_GET_PRIVATE ((GRptObjectsTree *)user_data); + + if (gtk_tree_selection_count_selected_rows (priv->selection) == 1) + { + GtkTreeIter iter; + + GList *rows = gtk_tree_selection_get_selected_rows (priv->selection, NULL); + + if (gtk_tree_model_get_iter (GTK_TREE_MODEL (priv->tr_store), &iter, (GtkTreePath *)rows->data)) + { + gtk_tree_model_get (GTK_TREE_MODEL (priv->tr_store), &iter, + OBJS_TREE_COL_GRPT_CANVAS_ITEM, &canvas_item, + -1); + } + } + + grpt_object_properties_set_canvas_item (object_properties, canvas_item); +} + +/* PUBLIC */ GRptObjectsTree *grpt_objects_tree_new (GRptCanvas *canvas) { @@ -313,7 +398,11 @@ GRptObjectsTree gtk_tree_view_append_column (GTK_TREE_VIEW (priv->tr_objects), column); priv->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->tr_objects)); + gtk_tree_selection_set_mode (priv->selection, GTK_SELECTION_MULTIPLE); + g_signal_connect (G_OBJECT (priv->selection), "changed", + G_CALLBACK (grpt_objects_tree_on_selection_changed), (gpointer)obj_tree); + grpt_objects_tree_set_canvas (obj_tree, canvas); gtk_widget_show_all (priv->w_tree); @@ -333,36 +422,38 @@ grpt_objects_tree_set_canvas (GRptObjectsTree *grpt_objects_tree, GRptCanvas *ca if (priv->w_tree == NULL) return; - priv->canvas = canvas; + priv->grpt_canvas = canvas; gtk_tree_store_clear (priv->tr_store); - objects = grpt_canvas_section_get_items (priv->canvas, RPTREPORT_SECTION_REPORT_HEADER); + objects = grpt_canvas_section_get_items (priv->grpt_canvas, RPTREPORT_SECTION_REPORT_HEADER); if (objects != NULL) { grpt_objects_tree_fill_tree_section (grpt_objects_tree, RPTREPORT_SECTION_REPORT_HEADER, objects); } - objects = grpt_canvas_section_get_items (priv->canvas, RPTREPORT_SECTION_PAGE_HEADER); + objects = grpt_canvas_section_get_items (priv->grpt_canvas, RPTREPORT_SECTION_PAGE_HEADER); if (objects != NULL) { grpt_objects_tree_fill_tree_section (grpt_objects_tree, RPTREPORT_SECTION_PAGE_HEADER, objects); } - objects = grpt_canvas_section_get_items (priv->canvas, RPTREPORT_SECTION_BODY); + objects = grpt_canvas_section_get_items (priv->grpt_canvas, RPTREPORT_SECTION_BODY); if (objects != NULL) { grpt_objects_tree_fill_tree_section (grpt_objects_tree, RPTREPORT_SECTION_BODY, objects); } - objects = grpt_canvas_section_get_items (priv->canvas, RPTREPORT_SECTION_REPORT_FOOTER); + objects = grpt_canvas_section_get_items (priv->grpt_canvas, RPTREPORT_SECTION_REPORT_FOOTER); if (objects != NULL) { grpt_objects_tree_fill_tree_section (grpt_objects_tree, RPTREPORT_SECTION_REPORT_FOOTER, objects); } - objects = grpt_canvas_section_get_items (priv->canvas, RPTREPORT_SECTION_PAGE_FOOTER); + objects = grpt_canvas_section_get_items (priv->grpt_canvas, RPTREPORT_SECTION_PAGE_FOOTER); if (objects != NULL) { grpt_objects_tree_fill_tree_section (grpt_objects_tree, RPTREPORT_SECTION_PAGE_FOOTER, objects); } g_list_free (objects); + + grpt_objects_tree_select (grpt_objects_tree, grpt_canvas_get_selected_items (priv->grpt_canvas)); } void @@ -456,6 +547,37 @@ grpt_objects_tree_remove_item (GRptObjectsTree *grpt_objects_tree, } } +void +grpt_objects_tree_select (GRptObjectsTree *grpt_objects_tree, + GList *objects) +{ + GtkTreeIter iter; + GRptCanvasItem *canvas_item; + + if (!GRPT_IS_OBJECTS_TREE (grpt_objects_tree)) return; + + GRptObjectsTreePrivate *priv = GRPT_OBJECTS_TREE_GET_PRIVATE (grpt_objects_tree); + + gtk_tree_selection_unselect_all (priv->selection); + + if (objects != NULL) + { + objects = g_list_first (objects); + while (objects != NULL) + { + canvas_item = (GRptCanvasItem *)objects->data; + + if (grpt_objects_tree_find_item (grpt_objects_tree, + canvas_item, &iter)) + { + gtk_tree_selection_select_iter (priv->selection, &iter); + } + + objects = g_list_next (objects); + } + } +} + void grpt_objects_tree_destroy (GRptObjectsTree *grpt_objects_tree) { diff --git a/src/objects_tree.h b/src/objects_tree.h index cace0de..9760544 100644 --- a/src/objects_tree.h +++ b/src/objects_tree.h @@ -63,6 +63,9 @@ void grpt_objects_tree_add_item_to_section (GRptObjectsTree *grpt_objects_tree, void grpt_objects_tree_remove_item (GRptObjectsTree *grpt_objects_tree, GRptCanvasItem *canvas_item); +void grpt_objects_tree_select (GRptObjectsTree *grpt_objects_tree, + GList *objects); + void grpt_objects_tree_destroy (GRptObjectsTree *grpt_objects_tree);