Compare commits
No commits in common. "master" and "GLADE_3_7_0" have entirely different histories.
master
...
GLADE_3_7_
1
.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
_build
|
|
@ -1,15 +0,0 @@
|
|||||||
include: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml'
|
|
||||||
|
|
||||||
flatpak:
|
|
||||||
extends: '.flatpak'
|
|
||||||
variables:
|
|
||||||
MANIFEST_PATH: "org.gnome.Glade.json"
|
|
||||||
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
|
|
||||||
FLATPAK_MODULE: "glade"
|
|
||||||
APP_ID: "org.gnome.Glade"
|
|
||||||
BUNDLE: "glade-git.flatpak"
|
|
||||||
|
|
||||||
nightly:
|
|
||||||
extends: '.publish_nightly'
|
|
||||||
dependencies: ['flatpak']
|
|
||||||
needs: ['flatpak']
|
|
14
AUTHORS
@ -1,9 +1,7 @@
|
|||||||
Chema Celorio <chema@ximian.com>
|
Chema Celorio <chema@ximian.com>
|
||||||
Joaquin Cuenca Abela <e98cuenc@yahoo.com>
|
|
||||||
Paolo Borelli <pborelli@katamail.com>
|
Thanks to :
|
||||||
Archit Baweja <bighead@users.sourceforge.net>
|
Michal Palczewski <mpalczew@u.washington.edu> - Widget tree window
|
||||||
Shane Butler <shane_b@operamail.com>
|
Archit Baweja <bighead@users.sourceforge.net> - New widgets, _get_type
|
||||||
Tristan Van Berkom <tvb@gnome.org>
|
Shane Butler <shane_b@operamail.com> - Glade Widget signals editor
|
||||||
Ivan Wong <email@ivanwong.info>
|
Tristan Van Berkom <tvb@gnome.org> - Non widget support.
|
||||||
Juan Pablo Ugarte <juanpablougarte@gmail.com>
|
|
||||||
Vincent Geddes <vincent.geddes@gmail.com>
|
|
||||||
|
@ -1,75 +0,0 @@
|
|||||||
Glade official git repository is hosted by the GNOME foundation at
|
|
||||||
gitlab.gnome.org
|
|
||||||
|
|
||||||
Maintainer
|
|
||||||
============
|
|
||||||
Glade is looking for a new maintainer, if you are interested please contact us
|
|
||||||
on gitlab.
|
|
||||||
|
|
||||||
GitLab
|
|
||||||
========
|
|
||||||
Glade bugs are tracked at
|
|
||||||
|
|
||||||
https://gitlab.gnome.org/GNOME/glade
|
|
||||||
|
|
||||||
|
|
||||||
GIT
|
|
||||||
===
|
|
||||||
You can browse the source code at https://gitlab.gnome.org/GNOME/glade
|
|
||||||
To check out a copy of Glade you can use the following command:
|
|
||||||
|
|
||||||
git clone https://gitlab.gnome.org/GNOME/glade.git
|
|
||||||
|
|
||||||
Patches
|
|
||||||
=======
|
|
||||||
Patches must be in the unified format (diff -u) and must include a
|
|
||||||
ChangeLog entry. Please send all patches to bugzilla.
|
|
||||||
|
|
||||||
It is better to use git format-patch command
|
|
||||||
|
|
||||||
```
|
|
||||||
git format-patch HEAD^
|
|
||||||
```
|
|
||||||
|
|
||||||
Coding Style
|
|
||||||
============
|
|
||||||
Code in Glade should follow the GNU style of GNOME Programming Guidelines
|
|
||||||
(https://developer.gnome.org/programming-guidelines/stable/c-coding-style.html.en),
|
|
||||||
basically this means being consistent with the surrounding code.
|
|
||||||
The only exception is that we prefer having braces always on a new line
|
|
||||||
e.g.:
|
|
||||||
|
|
||||||
```
|
|
||||||
if (...)
|
|
||||||
{
|
|
||||||
...
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
Note however that a lot of the current codebase still uses the following
|
|
||||||
style:
|
|
||||||
|
|
||||||
```
|
|
||||||
if (...) {
|
|
||||||
...
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
Over time we'll migrate to the preferred form.
|
|
||||||
|
|
||||||
Naming conventions:
|
|
||||||
- function names should be lowercase and prefixed with the
|
|
||||||
file name (or, if the function is static and the name too long,
|
|
||||||
with an abbreviation), e.g:
|
|
||||||
`glade_project_window_my_function ()`
|
|
||||||
`gpw_my_loooooooooong_named_fuction ()`
|
|
||||||
- variable names should be lowercase and be short but self explanatory;
|
|
||||||
if you need more than one word use an underscore, e.g:
|
|
||||||
`my_variable`
|
|
||||||
|
|
||||||
Also try to order your functions so that prototypes are not needed.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
74
COPYING.GPL
@ -1,8 +1,8 @@
|
|||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
|
|||||||
General Public License applies to most of the Free Software
|
General Public License applies to most of the Free Software
|
||||||
Foundation's software and to any other program whose authors commit to
|
Foundation's software and to any other program whose authors commit to
|
||||||
using it. (Some other Free Software Foundation software is covered by
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
the GNU Lesser General Public License instead.) You can apply it to
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
your programs, too.
|
your programs, too.
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
When we speak of free software, we are referring to freedom, not
|
||||||
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
|
|||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
The precise terms and conditions for copying, distribution and
|
||||||
modification follow.
|
modification follow.
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
|
|||||||
License. (Exception: if the Program itself is interactive but
|
License. (Exception: if the Program itself is interactive but
|
||||||
does not normally print such an announcement, your work based on
|
does not normally print such an announcement, your work based on
|
||||||
the Program is not required to print an announcement.)
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
These requirements apply to the modified work as a whole. If
|
||||||
identifiable sections of that work are not derived from the Program,
|
identifiable sections of that work are not derived from the Program,
|
||||||
and can be reasonably considered independent and separate works in
|
and can be reasonably considered independent and separate works in
|
||||||
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
|
|||||||
access to copy the source code from the same place counts as
|
access to copy the source code from the same place counts as
|
||||||
distribution of the source code, even though third parties are not
|
distribution of the source code, even though third parties are not
|
||||||
compelled to copy the source along with the object code.
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
4. You may not copy, modify, sublicense, or distribute the Program
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
except as expressly provided under this License. Any attempt
|
except as expressly provided under this License. Any attempt
|
||||||
otherwise to copy, modify, sublicense or distribute the Program is
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
@ -225,7 +225,7 @@ impose that choice.
|
|||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
This section is intended to make thoroughly clear what is believed to
|
||||||
be a consequence of the rest of this License.
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
8. If the distribution and/or use of the Program is restricted in
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
original copyright holder who places the Program under this License
|
original copyright holder who places the Program under this License
|
||||||
@ -278,3 +278,63 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
|||||||
POSSIBILITY OF SUCH DAMAGES.
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General
|
||||||
|
Public License instead of this License.
|
||||||
|
47
COPYING.LGPL
@ -2,7 +2,7 @@
|
|||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
Copyright (C) 1991 Free Software Foundation, Inc.
|
Copyright (C) 1991 Free Software Foundation, Inc.
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
@ -435,3 +435,48 @@ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|||||||
DAMAGES.
|
DAMAGES.
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Libraries
|
||||||
|
|
||||||
|
If you develop a new library, and you want it to be of the greatest
|
||||||
|
possible use to the public, we recommend making it free software that
|
||||||
|
everyone can redistribute and change. You can do so by permitting
|
||||||
|
redistribution under these terms (or, alternatively, under the terms of the
|
||||||
|
ordinary General Public License).
|
||||||
|
|
||||||
|
To apply these terms, attach the following notices to the library. It is
|
||||||
|
safest to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least the
|
||||||
|
"copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the library's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Library General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This library 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
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with this library; if not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||||
|
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1990
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
That's all there is to it!
|
||||||
|
BIN
ChangeLog.old.gz
69
HACKING
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
|
||||||
|
Mailing List
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
Glade-3 discussion takes place on glade-devel@ximian.org
|
||||||
|
To subscribe or to consult archives visit
|
||||||
|
http://lists.ximian.com/mailman/listinfo/glade-devel
|
||||||
|
When posting to the list include [glade3] in the subject,
|
||||||
|
since the list is also used for Glade-2 developement.
|
||||||
|
|
||||||
|
|
||||||
|
Bugzilla
|
||||||
|
~~~~~~~~
|
||||||
|
Glade-3 bugs are tracked in the glade3 module of
|
||||||
|
http://bugzilla.gnome.org
|
||||||
|
|
||||||
|
|
||||||
|
SVN
|
||||||
|
~~~
|
||||||
|
The Glade-3 repository is hosted at svn.gnome.org
|
||||||
|
To check out a copy of Glade-3 you can use the following commands:
|
||||||
|
|
||||||
|
svn checkout svn://svn.gnome.org/svn/glade3 glade3
|
||||||
|
|
||||||
|
|
||||||
|
Patches
|
||||||
|
~~~~~~~
|
||||||
|
Patches must be in the unified format (diff -u) and must include a
|
||||||
|
ChangeLog entry. Please send all patches to bugzilla.
|
||||||
|
|
||||||
|
Currently svn only permits this with the following command:
|
||||||
|
|
||||||
|
svn diff --diff-cmd=/usr/bin/diff -x -uBp . > file.patch
|
||||||
|
|
||||||
|
Coding Style
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
Code in Glade-3 should follow the GNOME Programming Guidelines
|
||||||
|
(http://developer.gnome.org/doc/guides/programming-guidelines/),
|
||||||
|
basically this means being consistent with the sorrounding code.
|
||||||
|
The only exception is that we prefer having braces always on a new line
|
||||||
|
e.g.:
|
||||||
|
|
||||||
|
if (...)
|
||||||
|
{
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
Note however that a lot of the current codebase still uses the following
|
||||||
|
style:
|
||||||
|
|
||||||
|
if (...) {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
Over time we'll migrate to the preferred form.
|
||||||
|
|
||||||
|
Naming conventions:
|
||||||
|
- function names should be lowercase and prefixed with the
|
||||||
|
file name (or, if the function is static and the name too long,
|
||||||
|
with an abbreviation), e.g:
|
||||||
|
glade_project_window_my_function ()
|
||||||
|
gpw_my_loooooooooong_named_fuction ()
|
||||||
|
- variable names should be lowercase and be short but self explanatory;
|
||||||
|
if you need more than one word use an underscore, e.g:
|
||||||
|
my_variable
|
||||||
|
|
||||||
|
Also try to order your functions so that prototypes are not needed.
|
||||||
|
|
||||||
|
|
||||||
|
|
236
INSTALL
Normal file
@ -0,0 +1,236 @@
|
|||||||
|
Installation Instructions
|
||||||
|
*************************
|
||||||
|
|
||||||
|
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
|
||||||
|
Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is free documentation; the Free Software Foundation gives
|
||||||
|
unlimited permission to copy, distribute and modify it.
|
||||||
|
|
||||||
|
Basic Installation
|
||||||
|
==================
|
||||||
|
|
||||||
|
These are generic installation instructions.
|
||||||
|
|
||||||
|
The `configure' shell script attempts to guess correct values for
|
||||||
|
various system-dependent variables used during compilation. It uses
|
||||||
|
those values to create a `Makefile' in each directory of the package.
|
||||||
|
It may also create one or more `.h' files containing system-dependent
|
||||||
|
definitions. Finally, it creates a shell script `config.status' that
|
||||||
|
you can run in the future to recreate the current configuration, and a
|
||||||
|
file `config.log' containing compiler output (useful mainly for
|
||||||
|
debugging `configure').
|
||||||
|
|
||||||
|
It can also use an optional file (typically called `config.cache'
|
||||||
|
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||||
|
the results of its tests to speed up reconfiguring. (Caching is
|
||||||
|
disabled by default to prevent problems with accidental use of stale
|
||||||
|
cache files.)
|
||||||
|
|
||||||
|
If you need to do unusual things to compile the package, please try
|
||||||
|
to figure out how `configure' could check whether to do them, and mail
|
||||||
|
diffs or instructions to the address given in the `README' so they can
|
||||||
|
be considered for the next release. If you are using the cache, and at
|
||||||
|
some point `config.cache' contains results you don't want to keep, you
|
||||||
|
may remove or edit it.
|
||||||
|
|
||||||
|
The file `configure.ac' (or `configure.in') is used to create
|
||||||
|
`configure' by a program called `autoconf'. You only need
|
||||||
|
`configure.ac' if you want to change it or regenerate `configure' using
|
||||||
|
a newer version of `autoconf'.
|
||||||
|
|
||||||
|
The simplest way to compile this package is:
|
||||||
|
|
||||||
|
1. `cd' to the directory containing the package's source code and type
|
||||||
|
`./configure' to configure the package for your system. If you're
|
||||||
|
using `csh' on an old version of System V, you might need to type
|
||||||
|
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||||
|
`configure' itself.
|
||||||
|
|
||||||
|
Running `configure' takes awhile. While running, it prints some
|
||||||
|
messages telling which features it is checking for.
|
||||||
|
|
||||||
|
2. Type `make' to compile the package.
|
||||||
|
|
||||||
|
3. Optionally, type `make check' to run any self-tests that come with
|
||||||
|
the package.
|
||||||
|
|
||||||
|
4. Type `make install' to install the programs and any data files and
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
5. You can remove the program binaries and object files from the
|
||||||
|
source code directory by typing `make clean'. To also remove the
|
||||||
|
files that `configure' created (so you can compile the package for
|
||||||
|
a different kind of computer), type `make distclean'. There is
|
||||||
|
also a `make maintainer-clean' target, but that is intended mainly
|
||||||
|
for the package's developers. If you use it, you may have to get
|
||||||
|
all sorts of other programs in order to regenerate files that came
|
||||||
|
with the distribution.
|
||||||
|
|
||||||
|
Compilers and Options
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Some systems require unusual options for compilation or linking that the
|
||||||
|
`configure' script does not know about. Run `./configure --help' for
|
||||||
|
details on some of the pertinent environment variables.
|
||||||
|
|
||||||
|
You can give `configure' initial values for configuration parameters
|
||||||
|
by setting variables in the command line or in the environment. Here
|
||||||
|
is an example:
|
||||||
|
|
||||||
|
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
|
||||||
|
|
||||||
|
*Note Defining Variables::, for more details.
|
||||||
|
|
||||||
|
Compiling For Multiple Architectures
|
||||||
|
====================================
|
||||||
|
|
||||||
|
You can compile the package for more than one kind of computer at the
|
||||||
|
same time, by placing the object files for each architecture in their
|
||||||
|
own directory. To do this, you must use a version of `make' that
|
||||||
|
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||||
|
directory where you want the object files and executables to go and run
|
||||||
|
the `configure' script. `configure' automatically checks for the
|
||||||
|
source code in the directory that `configure' is in and in `..'.
|
||||||
|
|
||||||
|
If you have to use a `make' that does not support the `VPATH'
|
||||||
|
variable, you have to compile the package for one architecture at a
|
||||||
|
time in the source code directory. After you have installed the
|
||||||
|
package for one architecture, use `make distclean' before reconfiguring
|
||||||
|
for another architecture.
|
||||||
|
|
||||||
|
Installation Names
|
||||||
|
==================
|
||||||
|
|
||||||
|
By default, `make install' installs the package's commands under
|
||||||
|
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
||||||
|
can specify an installation prefix other than `/usr/local' by giving
|
||||||
|
`configure' the option `--prefix=PREFIX'.
|
||||||
|
|
||||||
|
You can specify separate installation prefixes for
|
||||||
|
architecture-specific files and architecture-independent files. If you
|
||||||
|
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
||||||
|
PREFIX as the prefix for installing programs and libraries.
|
||||||
|
Documentation and other data files still use the regular prefix.
|
||||||
|
|
||||||
|
In addition, if you use an unusual directory layout you can give
|
||||||
|
options like `--bindir=DIR' to specify different values for particular
|
||||||
|
kinds of files. Run `configure --help' for a list of the directories
|
||||||
|
you can set and what kinds of files go in them.
|
||||||
|
|
||||||
|
If the package supports it, you can cause programs to be installed
|
||||||
|
with an extra prefix or suffix on their names by giving `configure' the
|
||||||
|
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||||
|
|
||||||
|
Optional Features
|
||||||
|
=================
|
||||||
|
|
||||||
|
Some packages pay attention to `--enable-FEATURE' options to
|
||||||
|
`configure', where FEATURE indicates an optional part of the package.
|
||||||
|
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||||
|
is something like `gnu-as' or `x' (for the X Window System). The
|
||||||
|
`README' should mention any `--enable-' and `--with-' options that the
|
||||||
|
package recognizes.
|
||||||
|
|
||||||
|
For packages that use the X Window System, `configure' can usually
|
||||||
|
find the X include and library files automatically, but if it doesn't,
|
||||||
|
you can use the `configure' options `--x-includes=DIR' and
|
||||||
|
`--x-libraries=DIR' to specify their locations.
|
||||||
|
|
||||||
|
Specifying the System Type
|
||||||
|
==========================
|
||||||
|
|
||||||
|
There may be some features `configure' cannot figure out automatically,
|
||||||
|
but needs to determine by the type of machine the package will run on.
|
||||||
|
Usually, assuming the package is built to be run on the _same_
|
||||||
|
architectures, `configure' can figure that out, but if it prints a
|
||||||
|
message saying it cannot guess the machine type, give it the
|
||||||
|
`--build=TYPE' option. TYPE can either be a short name for the system
|
||||||
|
type, such as `sun4', or a canonical name which has the form:
|
||||||
|
|
||||||
|
CPU-COMPANY-SYSTEM
|
||||||
|
|
||||||
|
where SYSTEM can have one of these forms:
|
||||||
|
|
||||||
|
OS KERNEL-OS
|
||||||
|
|
||||||
|
See the file `config.sub' for the possible values of each field. If
|
||||||
|
`config.sub' isn't included in this package, then this package doesn't
|
||||||
|
need to know the machine type.
|
||||||
|
|
||||||
|
If you are _building_ compiler tools for cross-compiling, you should
|
||||||
|
use the option `--target=TYPE' to select the type of system they will
|
||||||
|
produce code for.
|
||||||
|
|
||||||
|
If you want to _use_ a cross compiler, that generates code for a
|
||||||
|
platform different from the build platform, you should specify the
|
||||||
|
"host" platform (i.e., that on which the generated programs will
|
||||||
|
eventually be run) with `--host=TYPE'.
|
||||||
|
|
||||||
|
Sharing Defaults
|
||||||
|
================
|
||||||
|
|
||||||
|
If you want to set default values for `configure' scripts to share, you
|
||||||
|
can create a site shell script called `config.site' that gives default
|
||||||
|
values for variables like `CC', `cache_file', and `prefix'.
|
||||||
|
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||||
|
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||||
|
`CONFIG_SITE' environment variable to the location of the site script.
|
||||||
|
A warning: not all `configure' scripts look for a site script.
|
||||||
|
|
||||||
|
Defining Variables
|
||||||
|
==================
|
||||||
|
|
||||||
|
Variables not defined in a site shell script can be set in the
|
||||||
|
environment passed to `configure'. However, some packages may run
|
||||||
|
configure again during the build, and the customized values of these
|
||||||
|
variables may be lost. In order to avoid this problem, you should set
|
||||||
|
them in the `configure' command line, using `VAR=value'. For example:
|
||||||
|
|
||||||
|
./configure CC=/usr/local2/bin/gcc
|
||||||
|
|
||||||
|
causes the specified `gcc' to be used as the C compiler (unless it is
|
||||||
|
overridden in the site shell script). Here is a another example:
|
||||||
|
|
||||||
|
/bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||||
|
|
||||||
|
Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
|
||||||
|
configuration-related scripts to be executed by `/bin/bash'.
|
||||||
|
|
||||||
|
`configure' Invocation
|
||||||
|
======================
|
||||||
|
|
||||||
|
`configure' recognizes the following options to control how it operates.
|
||||||
|
|
||||||
|
`--help'
|
||||||
|
`-h'
|
||||||
|
Print a summary of the options to `configure', and exit.
|
||||||
|
|
||||||
|
`--version'
|
||||||
|
`-V'
|
||||||
|
Print the version of Autoconf used to generate the `configure'
|
||||||
|
script, and exit.
|
||||||
|
|
||||||
|
`--cache-file=FILE'
|
||||||
|
Enable the cache: use and save the results of the tests in FILE,
|
||||||
|
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
||||||
|
disable caching.
|
||||||
|
|
||||||
|
`--config-cache'
|
||||||
|
`-C'
|
||||||
|
Alias for `--cache-file=config.cache'.
|
||||||
|
|
||||||
|
`--quiet'
|
||||||
|
`--silent'
|
||||||
|
`-q'
|
||||||
|
Do not print messages saying which checks are being made. To
|
||||||
|
suppress all normal output, redirect it to `/dev/null' (any error
|
||||||
|
messages will still be shown).
|
||||||
|
|
||||||
|
`--srcdir=DIR'
|
||||||
|
Look for the package's source code in directory DIR. Usually
|
||||||
|
`configure' can determine that directory automatically.
|
||||||
|
|
||||||
|
`configure' also accepts some other, not widely useful, options. Run
|
||||||
|
`configure --help' for more details.
|
||||||
|
|
16
INTERNALS
@ -1,22 +1,22 @@
|
|||||||
Glade internals
|
Glade3 internals
|
||||||
~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
||||||
about this document
|
about this document
|
||||||
===================
|
===================
|
||||||
|
|
||||||
This is a short description of the designs goals and of the
|
This is a short description of the designs goals and of the
|
||||||
implementation choices of Glade. It isn't complete, but
|
implementation choices of Glade3. It isn't complete, but
|
||||||
I hope that it may be useful.
|
I hope that it may be useful.
|
||||||
|
|
||||||
* Note: not only I'm not the original author/designer of
|
* Note: not only I'm not the original author/designer of
|
||||||
glade, but also I have not touched glade for many months.
|
glade3, but also I have not touched glade3 for many months.
|
||||||
|
|
||||||
The only reason why I'm writing this doc is that glade development
|
The only reason why I'm writing this doc is that glade3 development
|
||||||
has been stagnating for a long time... now it seems that there are some
|
has been stagnating for a long time... now it seems that there are some
|
||||||
developers interested in resuming work on it, so I thought that it was
|
developers interested in resuming work on it, so I thought that it was
|
||||||
right to put down some notes on what I remember to ease their way
|
right to put down some notes on what I remember to ease their way
|
||||||
through the glade codebase.
|
through the glade3 codebase.
|
||||||
|
|
||||||
Everyone who spots errors and inaccuracies in this doc, or who wants to
|
Everyone who spots errors and inaccuracies in this doc, or who wants to
|
||||||
add informations to it, should feel free to improve it!
|
add informations to it, should feel free to improve it!
|
||||||
@ -35,8 +35,8 @@ the description of a Gtk+ GUI to an xml file.
|
|||||||
* glade is a tool to create and edit the desired interface in an easy
|
* glade is a tool to create and edit the desired interface in an easy
|
||||||
way and then automatically serialize it to the xml file.
|
way and then automatically serialize it to the xml file.
|
||||||
|
|
||||||
Glade is a complete rewrite of the original glade and takes advantage
|
Glade3 is a complete rewrite of the original glade and takes advantage
|
||||||
of the introspection properties of the GTK toolkit.
|
of the introspection properties of the GTK+2 toolkit.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,11 +1,3 @@
|
|||||||
Tristan Van Berkom
|
Tristan Van Berkom
|
||||||
E-mail: tristan.van.berkom@gmail.com
|
E-mail: tristan.van.berkom@gmail.com
|
||||||
Userid: tvb
|
Userid: tvb
|
||||||
|
|
||||||
Juan Pablo Ugarte
|
|
||||||
E-mail: juanpablougarte@gmail.com
|
|
||||||
Userid: jpu
|
|
||||||
|
|
||||||
Alberto Fanjul
|
|
||||||
E-mail: albfan@gnome.org
|
|
||||||
Userid: albfan
|
|
||||||
|
23
Makefile.am
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
SUBDIRS = po data gladeui src plugins doc
|
||||||
|
|
||||||
|
if HAVE_GNOME_DOC_UTILS
|
||||||
|
SUBDIRS += help
|
||||||
|
endif
|
||||||
|
|
||||||
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
autogen.sh \
|
||||||
|
COPYING.GPL \
|
||||||
|
COPYING.LGPL \
|
||||||
|
intltool-extract.in \
|
||||||
|
intltool-merge.in \
|
||||||
|
intltool-update.in \
|
||||||
|
gnome-doc-utils.make
|
||||||
|
|
||||||
|
DISTCLEANFILES = intltool-extract \
|
||||||
|
intltool-merge \
|
||||||
|
intltool-update \
|
||||||
|
gnome-doc-utils.make
|
||||||
|
|
||||||
|
DISTCHECK_CONFIGURE_FLAGS = --disable-scrollkeeper --enable-gtk-doc
|
848
NEWS
@ -1,850 +1,3 @@
|
|||||||
============
|
|
||||||
Glade 3.40.0
|
|
||||||
============
|
|
||||||
- Remove survey
|
|
||||||
- Add user manual menu item (Sabri Ünal)
|
|
||||||
- 'Clear' action in "Setup Text Attributes" dialog now clears only selected attributes (crvi)
|
|
||||||
- Fix issue #502 sync draw-indicator on setting xalign (Caolán McNamara)
|
|
||||||
- Fix issue #499 and #509 "Drop overzealous check using only the first child"
|
|
||||||
- Fix Segfault in gnome-builder when widget doesn't have a name (Peter Maatman)
|
|
||||||
- Fix issue #373 "Move separator in hamburger menu one up, to be consistent with other GNOME applications"
|
|
||||||
- Fix build against Python 3.9
|
|
||||||
- Fix issue #484 "Crash with GtkRecentChooserDialog"
|
|
||||||
- Fix issue #194 "Using List Store can result in program crash."
|
|
||||||
- Fix issue #53 "Can't choose a FileChooserDialog for a FileChooserButton"
|
|
||||||
- Fix issue #98 #491
|
|
||||||
- Fix issue #355 "Make notification text selectable"
|
|
||||||
- Fix windows build on msys
|
|
||||||
- Fix issue #360 "No examples in documentation on using custom catalogues with gtkBuilder"
|
|
||||||
- Fix issue #406 "AtkObject::accessible-role should not be translatable"
|
|
||||||
- Fix issue #479 "Glade 3.36.0 segfaults when opening a file"
|
|
||||||
- Fix issue #471 "XML not updated after adding element"
|
|
||||||
- Fix issue #474 "GtkLabel: setup text attribute issues"
|
|
||||||
- Fix issue #480 "version field not always updated in XML"
|
|
||||||
- Fix issue pasing widget with ctrl+v in GtkGrid
|
|
||||||
- Fix issue #470 "Widgets of type need placeholders to add children"
|
|
||||||
- Fix issue #472 "gnome-nightly: About dialog should display git commit rev"
|
|
||||||
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.38.0
|
|
||||||
============
|
|
||||||
|
|
||||||
- Load template files as new GTypes and add them to "User templates" widget group automatically without the need of a catalog
|
|
||||||
- Added JavaScript widget support
|
|
||||||
- Use version data from gir to improve deprecation/target tests
|
|
||||||
- Implement survey using new backend at surveys.gnome.org
|
|
||||||
- Keep survey state in config file
|
|
||||||
- Associate with application/x-gtk-builder (Caolán McNamara)
|
|
||||||
- Project properties dialog improvements. (Use headerbar, stack and stach switcher, add warnings textview)
|
|
||||||
- Improve toolkit target version selection in project properties dialog
|
|
||||||
- Improve treemodel char data type handling
|
|
||||||
- Remove autotools (Iñigo Martínez)
|
|
||||||
- New gjs-1.0 1.64 dependency
|
|
||||||
- Bump Gtk dependency to 3.24
|
|
||||||
- Bump webkit2gtk dependency to 2.28
|
|
||||||
- Fixed all compiler/gir warnings
|
|
||||||
- Issue #385: GtkCellRendererText causes deprecated warnings for ghost properties
|
|
||||||
- Issue #444: show-emoji-icon is missing "minimum version"/since constraint
|
|
||||||
- Issue #367: Glade removes double/triple slashes from URLs
|
|
||||||
- Issue #452: GtkComboBox cell renderers editor is too hard to discover
|
|
||||||
- Issue #363: Toplevel windows are leaked when closing a project
|
|
||||||
- Issue #462: Crash when creating a new GtkAssistant and pressing it
|
|
||||||
- Issue #463: Specify file on command line
|
|
||||||
- Issue #461: Glade resets number of rows and columns in GtkGrid
|
|
||||||
- Issue #460: 3.37.0: test suite fails because glade uses incorrectly asserts in test units
|
|
||||||
- Issue #412: Fix inconsistent "top-level", "top level", "toplevel" spelling in translatable strings
|
|
||||||
- Issue #281: GladeProperty: Do not replace - with _
|
|
||||||
- Issue #389: GladeProject: show message on invalid GtkBuilder file
|
|
||||||
- Issue #446: GladeGtkListBox: fix size request issue
|
|
||||||
- Issue #432: GladeStandarStock, GladeStandarStockImage: fix get_type() functions for introspection
|
|
||||||
- Issue #447: GladeGtkWindow: Fix CSD support
|
|
||||||
- Issue #456: Utils: use g_param_spec_uchar() for uchar types
|
|
||||||
- Issue #459: Gtk catalog: add GtkRecentChooserMenu to Display group
|
|
||||||
- Issue #433: Implement survey using new backend at surveys.gnome.org
|
|
||||||
- Build: use gtk-mac-integration only when creating bundle (Tom Schoonjans)
|
|
||||||
- Ignore locale when saving numeric values (Alberto Fanjul)
|
|
||||||
- Remove config for external builds (Alberto Fanjul)
|
|
||||||
- Python plugin: fix linking error
|
|
||||||
- Tests: add python and javascript test case
|
|
||||||
- gtk: Add GtkScrolledWindow propagate-natural-width property (Corentin Noël)
|
|
||||||
- GladeScrolledWindowEditor: Squeeze width/height properties in two columns
|
|
||||||
- Gtk plugin: add missing displayable values
|
|
||||||
- Webkit2gtk plugin: add missing displayable values and sandbox web view
|
|
||||||
- dtd: Make init-function an element, not an attribute (Adrien Plazas)
|
|
||||||
|
|
||||||
Added/updated translations
|
|
||||||
|
|
||||||
- ca, courtesy of Gil Forcada
|
|
||||||
- ca, courtesy of Miquel-Àngel Burgos i Fradeja
|
|
||||||
- cs, courtesy of Marek Černocký
|
|
||||||
- da, courtesy of Ask Hjorth Larsen
|
|
||||||
- da, courtesy of Last-Translator: scootergrisen
|
|
||||||
- de, courtesy of Tim Sabsch
|
|
||||||
- en_GB, courtesy of Bruce Cowan
|
|
||||||
- es, courtesy of Daniel Mustieles
|
|
||||||
- eu, courtesy of Asier Sarasua Garmendia
|
|
||||||
- fr, courtesy of Thibault Martin
|
|
||||||
- gl, courtesy of Fran Dieguez
|
|
||||||
- hi, courtesy of Last-Translator:Sunny Sharma
|
|
||||||
- hu, courtesy of Balázs Úr
|
|
||||||
- id, courtesy of Kukuh Syafaat
|
|
||||||
- kk, courtesy of Baurzhan Muftakhidinov
|
|
||||||
- ko, courtesy of Changwoo Ryu
|
|
||||||
- lt, courtesy of Aurimas Černius
|
|
||||||
- pl, courtesy of Piotr Drąg
|
|
||||||
- pt_BR, courtesy of Rafael Fontenelle
|
|
||||||
- ro, courtesy of Florentina Mușat
|
|
||||||
- sl, courtesy of Matej Urbančič
|
|
||||||
- sv, courtesy of Anders Jonsson
|
|
||||||
- tr, courtesy of Emin Tufan Çetin
|
|
||||||
- uk, courtesy of Yuri Chornoivan
|
|
||||||
- zh_CN, courtesy of Mandy Wang
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.36.0
|
|
||||||
============
|
|
||||||
|
|
||||||
- widget: canonicalize support-warning property name
|
|
||||||
- tests: Include back GtkTreeViewColumn
|
|
||||||
- gtk+: properly cast to avoid warnings
|
|
||||||
- gtk+: workaround truncation warning by being safer
|
|
||||||
- gladeui: remove unused type_func variable
|
|
||||||
- gladeui: Ensure that we write the "type-func" property when a get-type-function is defined in the catalog
|
|
||||||
- Allow to specify placeholder to GtkListBox
|
|
||||||
- gtk+: Allow to use GtkResponseType with GtkDialog and GtkInfobar buttons
|
|
||||||
- gladeui: Change the boolean parsing logic to be the same as Gtk
|
|
||||||
- Appdata: update app-id
|
|
||||||
- Update FSF address
|
|
||||||
- gladeui: Modernize GladeSignalEditor codebase
|
|
||||||
- RDNN appdata & desktop file
|
|
||||||
- gtk+: Add homogeneous property to GtkStackSwitcher
|
|
||||||
- gladeui: Fix wrong pointer convertion in GladeDesignView
|
|
||||||
- gtk+: Provide Gtk 3.22 properties for GtkScrolledWindow
|
|
||||||
- gtk+: Add missing 3.22 enum/flag values
|
|
||||||
- gladeui: Modernize GladeWidgetAdaptor definition
|
|
||||||
- gtk+: Keep internationalization context in Atk properties
|
|
||||||
- gladeui: Plug tiny leak on Drag & Drop
|
|
||||||
- gladeui: Fix crash on drag-n-drop
|
|
||||||
- gladeui: fix several tiny memory leaks found with valgrind
|
|
||||||
- Make it easier to track GladeXML elements and be GObject Introspection friendly by registering boxed types
|
|
||||||
- gladeui: Replace the last occurences of GladeWidgetClass with GladeWidgetAdaptor in the comments
|
|
||||||
- gladeui: Use G_DECLARE_FINAL_TYPE for GladeObjectStub
|
|
||||||
- gladeui: Use G_DECLARE_DERIVABLE_TYPE for GladeNamedIconChooserDialog
|
|
||||||
- gladeui: Use G_DECLARE_DERIVABLE_TYPE for GladeInspector
|
|
||||||
- gladeui: Use G_DECLARE_DERIVABLE_TYPE for GladeEditorProperty
|
|
||||||
- gladeui: Use G_DECLARE_DERIVABLE_TYPE for GladeEditor
|
|
||||||
- gladeui: Use G_DECLARE_INTERFACE for GladeEditable
|
|
||||||
- gladeui: Use G_DECLARE_INTERFACE for GladeDrag
|
|
||||||
- gladeui: Use G_DECLARE_DERIVABLE_TYPE for GladeDesignView
|
|
||||||
- gladeui: Use G_DECLARE_DERIVABLE_TYPE for GladeDesignLayout
|
|
||||||
- gladeui: Use G_DECLARE_DERIVABLE_TYPE for GladeCommand
|
|
||||||
- gladeui: Use G_DECLARE_DERIVABLE_TYPE for GladeClipboard
|
|
||||||
- gladeui: Use G_DECLARE_DERIVABLE_TYPE for GladeCellRendererIcon
|
|
||||||
- gladeui: Use G_DECLARE_DERIVABLE_TYPE for GladeBaseEditor
|
|
||||||
- gladeui: Use G_DECLARE_DERIVABLE_TYPE for GladeApp
|
|
||||||
- gladeui: Use G_DECLARE_DERIVABLE_TYPE for GladeAdaptorChooserWidget
|
|
||||||
- gladeui: Use G_DECLARE_DERIVABLE_TYPE for GladeEditorSkeleton
|
|
||||||
- gladeui: Use G_DECLARE_DERIVABLE_TYPE for GladeEditorTable
|
|
||||||
- dnd: Enable Drag&Drop on wayland
|
|
||||||
- gladeui: remove implicit cast in assignment
|
|
||||||
- build: remove G_CONST_RETURN usage
|
|
||||||
- gladeui: ignore various GParameter deprecations
|
|
||||||
- Fix on debug traces after rename GladePropertyClass to GladePropertyDef
|
|
||||||
- meson: Activate enable-debug variables
|
|
||||||
- Prevent dragging an ancestor inside a child
|
|
||||||
- GladePopup: Clear add item when adding as toplevel
|
|
||||||
- GtkImage: Fix icon size being reset
|
|
||||||
- build: Fix OSX support in meson
|
|
||||||
- build: Do not use a system variable only for Windows
|
|
||||||
- Fix loading dylibs on OSX
|
|
||||||
- Set the "About Dialogue" as modal
|
|
||||||
- Fix split sentense in GladeProject
|
|
||||||
- Adding "Glade" to "About" section.
|
|
||||||
- Respect the Glade namespace for macros and defines
|
|
||||||
- Rename *Klass to *Class as there are no name collision anymore
|
|
||||||
- Fix two memory leaks discovered with valgrind
|
|
||||||
- GladeSignalDef: fix documentation for glade_signal_def_set_deprecated
|
|
||||||
- Rename GWActionClass to GladeWidgetActionDef to use the right namespace
|
|
||||||
- Rename GladePropertyClass to GladePropertyDef and declare it as boxed
|
|
||||||
- Rename GladeSignalClass to GladeSignalDef and declare it as boxed
|
|
||||||
- Create GladeSettings to hold the settings instead of using a Gtk widget for holding it
|
|
||||||
- Add GDK_VERSION_MIN_REQUIRED
|
|
||||||
- Utils: get the absolute path but avoid accessing it
|
|
||||||
- Fix several compiler warnings
|
|
||||||
- Replace some functions by Gtk 3.22 ones
|
|
||||||
- GladeSignalClass: rename glade_signal_class_get_type
|
|
||||||
- Allow to use GtkFileChooserNative
|
|
||||||
- GladeProperty: Keep the bind-source, bind-property and bind-flags elements
|
|
||||||
- Couple of fixes for memory leaks found with valgrind
|
|
||||||
- GtkLinkButton: allow to edit the label
|
|
||||||
- gladeui: Fix several memory leaks with GladeWidgetAdaptor
|
|
||||||
- gladeui: Fix leak of create_type in GladePropertyClass
|
|
||||||
- gladeui: fix memory leak in GWActionClass
|
|
||||||
- introspection: Add many annotations to sources
|
|
||||||
- No wide handles in `center_paned` and `left_paned`
|
|
||||||
- flatpak: Set meson as buildsystem
|
|
||||||
- build: Port to meson build system
|
|
||||||
- gtk+: Add deprecated flag to GtkButton and GtkImage stock properties
|
|
||||||
- doc: remove missing xml files
|
|
||||||
- doc: Modernize the documentation
|
|
||||||
- docs: Make some changes to fix warnings with the documentation
|
|
||||||
- Add metadata information about releases
|
|
||||||
- i18n: Do not use input file for not translated files
|
|
||||||
- Fix xgettext string extraction for catalogs
|
|
||||||
- snap: update for icon filename changes
|
|
||||||
- Add translator comments to the .desktop file
|
|
||||||
- gladeui-2.0.pc: Data paths relative to datadir
|
|
||||||
- icon: update app icon
|
|
||||||
- GladeProject: escape markup in parser errors
|
|
||||||
- Use autoreconf instead deprecated gnome-common
|
|
||||||
- Stop defaulting missing images to deprecated stock icons
|
|
||||||
- Migrate from intltool to gettext
|
|
||||||
- gladeui: Fix GIR package reference and add c-include
|
|
||||||
- dtd: Add several new elements
|
|
||||||
- Add initial implementation of Automatic Templates
|
|
||||||
- GladeIntro: fix regresion in find_widget_forall()
|
|
||||||
- GladeProject: add handler signals
|
|
||||||
- GladeEditor: expose signal editor widget as a property
|
|
||||||
- GladeIntro: use name and buildable name to find widgets
|
|
||||||
- GladeWindow: simplify pointer mode actions
|
|
||||||
- GladeWindow: move actions to GtkApplication
|
|
||||||
- GladeEPropAttrs: use sane adjustment values for size and scale attrs
|
|
||||||
- GtkActionable: add action-target property
|
|
||||||
- Fix tab/space identation
|
|
||||||
- GladeWidgetAdaptor: add glade_widget_adaptor_get_display_name()
|
|
||||||
- GladeWindow: port to GtkApplication
|
|
||||||
- Remove GladeInstantiable prefix from UI
|
|
||||||
- GladeGtkBin: add initial support for GtkBin abstract class
|
|
||||||
- GladeWidget: add support for abstract classes
|
|
||||||
- widget-editor: Replace margin right/left for end/start
|
|
||||||
- GladeModelButton: improve editor
|
|
||||||
- GladeEditorProperty, GladePropertyClass, GladeWidgetAdaptor:
|
|
||||||
- GladeModelButton: enable icon/iconic properties
|
|
||||||
- Gtk plugin: add support for GFileIcon
|
|
||||||
- Add initial support for GFile type properties
|
|
||||||
- Bump Gtk required version to 3.22
|
|
||||||
- GladeGtkBox: improve children sort function
|
|
||||||
- GladeGtkHeaderBar: Improve position packing property handling
|
|
||||||
- Add OARS tags
|
|
||||||
- Gtk catalog: mark GtkImageMenuItem as deprecated since 3.10
|
|
||||||
- GladeWidgetAdaptor: added deprecated-since metadata
|
|
||||||
- GladeImageItemEditor: use display name for commands names
|
|
||||||
- GladeCommand: ensure widget name on object properties
|
|
||||||
- GladeGtkAdjustment: add digits virtual property
|
|
||||||
- GladeEPropNumeric: bind precision property to spin button
|
|
||||||
- GladeProperty: add precision property
|
|
||||||
- GladePropertyClass: round floating point values to epsilon
|
|
||||||
- ui/widget: Make template ver# warning more useful
|
|
||||||
- GladeCommand: ignore special child types placeholders in add command. GladeGtkWindow: mark titlebar placeholder as special child type.
|
|
||||||
- Gtk Catalog: add back GtkStatusbar
|
|
||||||
- GladeGtkHeaderBar: mark title and subtitle as translatable
|
|
||||||
- GladeGtkDialog: chain up post_create() method
|
|
||||||
- GladeGtkWindow: remove get_children() method
|
|
||||||
- GladeAdaptorChooser: add missing translation domain
|
|
||||||
- GladeGtkWidget: save accessible-role atk property
|
|
||||||
- GladeGtkWindow: fix regression in csd handling
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.22.0
|
|
||||||
============
|
|
||||||
|
|
||||||
- Fix bug 774994 "in treeview columns editor contextual menu does nothing"
|
|
||||||
- Simplified GladeBaseEditor
|
|
||||||
- Fix formatting / layout of project verification details (Daniel P. Berrange)
|
|
||||||
- Widget chooser: activate treeview with single click and enable Drag & Drop
|
|
||||||
- Fix Design view selected state
|
|
||||||
- Fixes bug 793036 "GtkCellRenderer Properties not loaded from glade file" (peter Onion)
|
|
||||||
- Fix bug in action widgets response-id parsing on 32bits system
|
|
||||||
- Fix bug 772485 "File Name property of GtkImage is copied to all other GtkImage"
|
|
||||||
- GladeProject: always treat resource properties as relative
|
|
||||||
- Fix bug 793652 "Crash when deleting a list"
|
|
||||||
- Fix bug 793757 "Gtk-CRITICAL **: _gtk_window_add_popover: assertion '_gtk_widget_get_parent (popover) == NULL' failed"
|
|
||||||
- Add GDK_SUPER_MASK accelerator handling (Sebastian Stang)
|
|
||||||
- Fix bug #778537 "ActionBar need placeholder"
|
|
||||||
- Fix bug #794141 - Gtk.IconView disappeared from glade (Albfan)
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.21.0
|
|
||||||
============
|
|
||||||
|
|
||||||
- Main window UI overhaul
|
|
||||||
- An enhanced enum integer editor based on patch contributed by Lukas K
|
|
||||||
- Added GtkGLArea object to gtk+ catalog
|
|
||||||
- Initial support for WebKit2GTK+ library
|
|
||||||
- Add GtkStackSidebar to control and display widget group
|
|
||||||
- Bug 767812 "Please don't list 'Taiwan' as 'Taiwan, Province of China' in the country list"
|
|
||||||
- Bug 763188 - Use correct tag when referring to Palette (Sebastian Rasmussen)
|
|
||||||
- Fix typo in translatable string; fixing old bug 746531 (Tristan)
|
|
||||||
- Fix markup typos (Andre Klapper)
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.20.2
|
|
||||||
============
|
|
||||||
|
|
||||||
- Fix bug 763624 "Glade interface designer eating ram & cpu" (Arnaud Rebillout)
|
|
||||||
- Install appstream metadata to non-deprecated location (Jeremy Bicha)
|
|
||||||
- Fix bug 790452 "Glade saves invalid GtkBuilder XML"
|
|
||||||
- Fix bug 782645 "GtkLabel xalign and halign appeared in GTK+ 3.16 and are not deprecated" (Arnaud Rebillout)
|
|
||||||
- Fix bug 773669 "add background class to GladeDesignLayout children" (Lukas K)
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.20.1
|
|
||||||
============
|
|
||||||
|
|
||||||
- Fixed glib g_ptr_array_find() name clash
|
|
||||||
- Fixed survey css matching error on CSD
|
|
||||||
- Fixed bug #773997 "GLADE 3.20: crash on changing ToolItem type"
|
|
||||||
- Fixes bug #765562 "Using Spacebar to change menu selction causes crash"
|
|
||||||
- Fixed "format not a string literal" warnings (Bastien Nocera)
|
|
||||||
- Fixed bug #765885 "client side decoration, no space to add header bar"
|
|
||||||
- Fixed bug #589306 - Clicking in ... swap order of accelerators (Roberto Guido)
|
|
||||||
- Fixed bug #761651 "[Wayland] glade previewer is resizing windows until it crashes gnome-shell"
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.20.0
|
|
||||||
============
|
|
||||||
|
|
||||||
- Workspace layout: render frame and selection box with CSS
|
|
||||||
- GtkWindow: don't set the same titlebar multiple times (Ben Iofel)
|
|
||||||
- Fixed bug 761839: Fix 'glade' command name in user manual (Anders Jonsson)
|
|
||||||
- Fixed bug 536840 - Save palette small icon preference (Tristan)
|
|
||||||
- Fixed bug 430445 - null string default title for GtkFileChooserButton (Tristan)
|
|
||||||
- Integrate new properties in editor for GtkLabel, GtkTextView, GtkPopover, GtkStackSwitcher (Tristan)
|
|
||||||
- Fixed bug 750985 - GtkMisc property deprecations (Tristan)
|
|
||||||
- Fixed bug 759872 - Show popovers hidden by model buttons (Tristan)
|
|
||||||
- Fixed bug 751234 - Ignore tearoff-state property in the workspace (Tristan)
|
|
||||||
- Fixed bug 759455 - Avoid showing window decorations in Glade's workspace (Tristan)
|
|
||||||
- Fixed bug 759395 - Ignore ESC key press from popovers (Tristan)
|
|
||||||
- Fixed bug 760610: Disable scroll events on property editor widgets (Tristan)
|
|
||||||
- Support id-less builder files (DX hackfest)
|
|
||||||
- Added missing tags to the AppData file (Richard Hughes)
|
|
||||||
- Fixed bug 759847 "Don't crash when popover menu children have no visible-submenu set" Руслан Ижбулатов
|
|
||||||
- Added support for GtkActionBar and GtkFlowBox (Matthias Clasen)
|
|
||||||
- Main UI frontend: Use wide paned handles (Tristan)
|
|
||||||
- Fixed warning about imbalanced children in GtkNotebook support (Tristan)
|
|
||||||
- Added support for GtkPopoverMenu and GtkModelButton (Matthias Clasen)
|
|
||||||
- Added support for GtkPopover bug 740104 (Matthias Clasen)
|
|
||||||
- Fixed bug 754131 "Avoid crashes when loading boxes with center-child children"
|
|
||||||
- Added <kudos> section to app data as requested by Richard Hughes.
|
|
||||||
- Added missing displayable values bugs 758290, 758289, 758288, 758287 (Matthias Clasen)
|
|
||||||
- Deprecate GtkAction, GtkActivatable, and friends bug 757609 (Ben Iofel)
|
|
||||||
- Avoid GTK+ style context warnings bugs 758296, 758297, 758299, 758300 (Matthias Clasen)
|
|
||||||
- Drop deprecated style properties in GladeCloseButton bug 758280 (Matthias Clasen)
|
|
||||||
- Replace use of deprecated gdk_cursor_new (Ben Iofel)
|
|
||||||
- Add "Stack" to "Add parent" menu bug 754030 (Florian Richter)
|
|
||||||
- Fixed bug 741923 "build: Add dependency on libm for floor() and ceil()" (Philip Withnall)
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.19.0
|
|
||||||
============
|
|
||||||
|
|
||||||
- Bug 732328 "New: add python3 support" (Bohuslav "Slavek" Kabrda)
|
|
||||||
- Added new symbolic variant of the app icon (747024 - Jakub Steiner)
|
|
||||||
- Bug #741165 "Previewer crashes when taking PNG screenshot"
|
|
||||||
- Added GtkSidebarWidget support (Matthias Clasen)
|
|
||||||
- Added GtkStack and GtkStackSwitcher support (738480 - Matthias Clasen)
|
|
||||||
- Added GtkHeaderBar support (bug 700914 - Matthias Clasen)
|
|
||||||
- Improved undo/redo command list handling.
|
|
||||||
- Added GtkBox center-widget support (bug 738473 - Matthias Clasen)
|
|
||||||
- Added GtkSearchBar support (bug 738493 - Matthias Clasen)
|
|
||||||
- Support CSD windows (Bug 700914 - Matthias Clasen)
|
|
||||||
- Use current gtk-mac-integration API (bug 738339 - Philip Chimento)
|
|
||||||
- Fixed bug 732575 "Changed the type hint on the "Edit Separately" window to 'utility'" (Tristan)
|
|
||||||
- Fixed bug "Missing plural form for UI string: emited %d time(s)"
|
|
||||||
- Avoid reading freed data in glade_project_read_requires (David Shea)
|
|
||||||
- Added class chooser popover to workspace. (Bug 708146 "Catalog search entry")
|
|
||||||
- Added GThemedIcon support.
|
|
||||||
- GladePreviewer: show handler information in infobar when a signal is emited.
|
|
||||||
- Migrated UI from stock icons to icon names.
|
|
||||||
- Seal needed deprecated API and replaced deprecared API.
|
|
||||||
- GladeWindow: only show found recent files.
|
|
||||||
- Added GtkLockButton support.
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.18.3
|
|
||||||
============
|
|
||||||
|
|
||||||
- Fixed property editor focus lost bug with construct-only properties
|
|
||||||
- GladePreviewer: Fixed bug previewing templates.
|
|
||||||
- Fixed Bug 727914 "Logo is not shown in About-dialog"
|
|
||||||
- Fixed Bug 353002 "wrong cursor over widgets"
|
|
||||||
- Fixed bug 728377 "sensitivity of mnemonic-widget entry is not correct when loading file" (David Shea)
|
|
||||||
- Fixed bug 728348 "impossible to set non-integer values for scale in text attribute dialog" (David Shea)
|
|
||||||
- Fixed bug 726410 "Save palette appearance between sessions" (TingPing)
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.18.2
|
|
||||||
============
|
|
||||||
|
|
||||||
- Added dialog at start up to advertise user survey.
|
|
||||||
Fixes bug 726800 "New: UI break: add dialog to advertise user survey"
|
|
||||||
- Fixes bug 727992 "Editing UI and saving does not remove deleted Combo with Entry"
|
|
||||||
- Fixed bug 364064 "Property Editor / Common tab: width & height request checkboxes have no effect"
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.18.1
|
|
||||||
============
|
|
||||||
|
|
||||||
- Fixed Bug 727014 "32 bit builds fail with -Werror=format-security"
|
|
||||||
- GtkDialog: disabled use-header-bar property untill Glade supports GtkHeaderBar
|
|
||||||
- Fixed bug in numeric property editors (Box size)
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.18.0
|
|
||||||
============
|
|
||||||
|
|
||||||
- Added License property to Glade project
|
|
||||||
- Added realtime preview for custom CSS
|
|
||||||
- Added support for previewing templates
|
|
||||||
- glade-previewer added --slideshow option
|
|
||||||
- Fixed Bug 702314 "Cancelling an Add Parent action is destructive"
|
|
||||||
- pango attribute editor: don't write on cancel for color/font (Timm Bäder)
|
|
||||||
- Fixed bug 711568 "[PATCH] glade crashes upon startup" (thanks to Lubomir Rintel)
|
|
||||||
- Fixed Bug 712289 "Glade silently fails to open malformed ui file"
|
|
||||||
- Sort object dependancy before saving using a topological sorting algorithm
|
|
||||||
- Fixed Bug 709609 "[PATCH] Change way of sorting before writing XML output."
|
|
||||||
- Fixed Bug 711858 "editing glade project results in long CPU usage spikes after upgrading to 3.16 and GTK+3.10"
|
|
||||||
- Fixed <requires> tag output
|
|
||||||
- Fixed cellrenderer model column combobox chooser.
|
|
||||||
- Fixed issue with numeric property editors.
|
|
||||||
- Restored shortcuts function in workspace.
|
|
||||||
- Added new jhbuild based bundling system for 64bit linux bundles. (Tristan Van Berkom)
|
|
||||||
- Bug 720585 - Fix order of customized property output.
|
|
||||||
- gladeui: fix a pair of printf security problems (Ryan Lortie)
|
|
||||||
- Added Registration & User Survey Dialog in Help menu
|
|
||||||
- Fixed bug 723819 "Correct bounds checking for design view highlight" (Chris Johns)
|
|
||||||
- Fixed bug #721098 "Anjuta hangs when opening project"
|
|
||||||
- GtkGrid: Don't save width/height at their default values (Kalev Lember)
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.16.0
|
|
||||||
============
|
|
||||||
|
|
||||||
- Added AppData for gnome-software to pick up glade
|
|
||||||
Fixes bug 708641 "Please include an AppData file"
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.15.4
|
|
||||||
============
|
|
||||||
|
|
||||||
- Fixed bug when copying a button with custom content.
|
|
||||||
- Added workaround for Bug 625867 "RadioButton information lost on cut+paste, add/remove parent, etc"
|
|
||||||
- Fixes bug that prevented the runtime object to show the right pixbuf when copying a GtkImage.
|
|
||||||
- Fixed Bug 679079 "Glade changes the "homogenous" packing property of toolbar buttons to "yes""
|
|
||||||
- Improved pango text integer attributes editors. This should be enough to close Bug 679006
|
|
||||||
"The "size" attribute for labels only accepts integer values (not strings like "larger")"
|
|
||||||
- Fixed bug 643923 "Should not use markup for GtkFrame's label"
|
|
||||||
- Fixed bug 584381 "Saving as an existing file name except the extension overwrites without confirmation."
|
|
||||||
- Fixed Bug 652655 "Setting entry on combobox moves the widget"
|
|
||||||
- Fixed Bug 706304 "Python plugin broken by over-zealous version check" Bumped pygobject version to 3.8.0
|
|
||||||
- Fixed regresion that prevented loading extra catalog path at init time.
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.15.3
|
|
||||||
============
|
|
||||||
|
|
||||||
- Add man pages bug 703013 (Matthias Clasen)
|
|
||||||
- Fixed bug #700730 - Weird windows showing up when a dock is moved while editing a GtkBuilder file
|
|
||||||
(Sébastien Granjoux)
|
|
||||||
- Double click on a toplevel border select the widget even if there is a child selected.
|
|
||||||
- Support document level comments present before the root element.
|
|
||||||
- Save glade version used to create the file in a comment.
|
|
||||||
- Add GtkRevealer to the Gtk+ catalog (Timm Bäder)
|
|
||||||
- Add GtkListBox support (Kalev Lember)
|
|
||||||
- Added GtkOverlay support
|
|
||||||
- Improved Drag&Drop support, made inspector a drag source
|
|
||||||
- Added GtkApplicationWindow basic support
|
|
||||||
- Added GtkSearchEntry icons
|
|
||||||
- Fix autogen with latest gnome-common bug 706832 (Seán de Búrca)
|
|
||||||
- Fix a few typos bug 707173 (Christian Kirbach)
|
|
||||||
- Fixed Bug 703621 - Signals treeview: click on user data moves the selected row below (Miguel Azevedo)
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.15.2
|
|
||||||
============
|
|
||||||
- Add GtkPlacesSidebar to GTK+ catalog (Federico Mena Quintero)
|
|
||||||
- New icon for GtkMenuButton (Paolo Borelli)
|
|
||||||
- GTK+ catalog version now bumped to 3.10, include new translatable enumeration values
|
|
||||||
and updated new versions and deprecations
|
|
||||||
- Added --enable-debug option and some debug flags to be set with GLADE_DEBUG environment variable
|
|
||||||
- Enable word wrapping in combo boxes (used to edit enumeration properties)
|
|
||||||
- Split up the GTK+ plugin into mini source files, each one implementing it's own widget adaptor
|
|
||||||
code (instead of one huge glade-gtk.c file)
|
|
||||||
- Fix GtkIconFactory sources editor (was very broken)
|
|
||||||
- Allow setting the "id" attributes of items set in a GtkComboBoxText
|
|
||||||
- Avoid calling gtk_stock_list_ids() when gdk_display_get_default() is NULL, allows GIRs to
|
|
||||||
build on some build machines.
|
|
||||||
- Avoid updating the inspector treeview if the same project is set twice (Marco Diego Aurélio Mesquita)
|
|
||||||
- Escape key cancels a query dialog instead of approves creation of the new widget
|
|
||||||
- Many minor bugs and random crasher bugs also fixed
|
|
||||||
- Alsmost all widget types have their own custom editors now
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.15.1
|
|
||||||
============
|
|
||||||
|
|
||||||
- Much UI fixing and refactoring (Juan Pablo Ugarte)
|
|
||||||
- Added new --css and --screenshot options to glade-preview (Juan Pablo Ugarte)
|
|
||||||
- Fix main window shortcuts (bug 695866 Juan Pablo Ugarte)
|
|
||||||
- Implemented Project Properties dialog with Glade as a composite tempalte (Juan Pablo Ugarte)
|
|
||||||
- Support editing the GtkWidget:name property (useful for CSS theming)
|
|
||||||
- Improved project inter-widget dependancy calculation and project serialization ordering,
|
|
||||||
object output ordering (and signal ordering) is now consistent and sorted.
|
|
||||||
- GtkButton: response-id for dialogs is now optional (allowing adding dialog buttons that
|
|
||||||
have no dialog response)
|
|
||||||
- GtkImage: Support the new "resource" property
|
|
||||||
- GTK+ catalog updated to cover widgets in GTK+ 3.8
|
|
||||||
- Now show warnings in the UI for deprecated properties and signals
|
|
||||||
- Now show warnings in the Inspector view if any deprecated widgets, signals
|
|
||||||
or properties are used (or if anything is used which is not available in
|
|
||||||
the project's target version).
|
|
||||||
- Optional properties are now always saved if they are enabled, allowing
|
|
||||||
to explicitly set them to the default value (eg. GtkWidget:hexpand/vexpand)
|
|
||||||
- Inspector search entry: Restore completions to work nicely again and filter
|
|
||||||
the treeview with a search-in-text algorithm.
|
|
||||||
- Inspector: Add a feature to expand-all
|
|
||||||
- Property editor title-bar is now optional in the View menu
|
|
||||||
- Fixed many deprecation warnings in Glade's compile
|
|
||||||
- Added Glade's first 2 ever unit tests
|
|
||||||
- Fixed Devhelp doc search for properties (Juan Pablo Ugarte)
|
|
||||||
- Make Drag'n'Drop work on regular clicks without entering Drag Mode
|
|
||||||
and restored old Drag/Resize functionality when SHIFT is pressed (Juan Pablo Ugarte)
|
|
||||||
- Improved Drag/Resize which has been rather broken for a while
|
|
||||||
- Added Autosave and Automatic backup of previous file features, configurable
|
|
||||||
in Glade's preferences Dialog
|
|
||||||
- Support Composite GtkBuilder template editing (mark a toplevel GtkWidget as
|
|
||||||
the "composite template" widget in the Project Properties dialog or
|
|
||||||
property editor).
|
|
||||||
- Support editing of the project domain in the project properties dialog (Juan Pablo Ugarte)
|
|
||||||
- Properties in the Project Properties dialog are now undoable
|
|
||||||
- GladeSignalEditor: Automatically expand rows which have signal callbacks assigned when
|
|
||||||
loading a widget
|
|
||||||
- Add options to decide what types of warnings should be presented at project save time,
|
|
||||||
configurable in Glade's preferences dialog.
|
|
||||||
- Added new property editor components GladePropertyLabel, GladePropertyShell and
|
|
||||||
GladeEditorSkeleton, allowing us to create custom property editors using Glade.
|
|
||||||
- Add "Grid" option to "Add parent" menu (Dmitrijs Ledkovs)
|
|
||||||
- Added Gladeui catalog for IDE's and embedders to design Glade frontends with Glade
|
|
||||||
- Added private catalog to allow the GTK+ plugin to embed editors that it provides
|
|
||||||
- Added new GladeEpropCheck boolean property editor, to be used in some cases for
|
|
||||||
boolean properties.
|
|
||||||
- Added new adaptor methods GladeWidgetAdaptor->write_widget_after() and
|
|
||||||
GladeWidgetAdaptor->destroy_object()
|
|
||||||
- Automatically generate gladeui's enum types with glib-mkenums
|
|
||||||
- Modified properties now show up in italic letering instead of bold, bold
|
|
||||||
lettering is reserved for title labels in custom property editors.
|
|
||||||
- New components that now use GtkBuilder Composite Templates (and have had
|
|
||||||
a basic review and rework of their UIs): GladePreferences (Glade's preferences
|
|
||||||
dialog), GladeEditor (the property editor), GladeProjectProperties (the project
|
|
||||||
properties dialog) and custom property editors: GladeActivatableEditor,
|
|
||||||
GladeButtonEditor, GladeEntryEditor, GladeImageEditor, GladeLabelEditor, GladeWidgetEditor
|
|
||||||
- And... many various bugfixes and UI fixes by Juan Pablo and myself.
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.15.0
|
|
||||||
============
|
|
||||||
|
|
||||||
- Added Drag&Drop support from the palette and within the workspace.
|
|
||||||
- Added GtkLevelBar support
|
|
||||||
- Property editor UI cleanup
|
|
||||||
Hide Property editor class title
|
|
||||||
Moved clear and info buttom to the action widget of the notebook.
|
|
||||||
Updated atk icon with gnome's accessibility icon.
|
|
||||||
Text entry: Replaced buttons with 3 dots [...] for a secondary edit icon in the entry itself.
|
|
||||||
Removed treeview from flags editor.
|
|
||||||
Do not let every propery input expand if not nescesary.
|
|
||||||
Boolean input: replaced toggle buttons with a switch.
|
|
||||||
- Fixed bug #685265 "Excessively Selected for Translation" Daniel Mustieles
|
|
||||||
- Fixed bug #688326 "pointer tracking is off" by using every coordinate relative to GladeDesignLayout.
|
|
||||||
- Fixed bug #678922 "When editing a label, the cursor is moved to the end after every change."
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.14.0
|
|
||||||
============
|
|
||||||
|
|
||||||
- Updated GtkAssistant support. Fixed bug #664276
|
|
||||||
- Set new property accel-group on action groups to make menu item accel work properly. Fixes bug 684041
|
|
||||||
- Do not abort if a project has a uninstantiable or abstract class object instead load it
|
|
||||||
as an object stub and let the user what to do. bug #646259
|
|
||||||
- Fixed runtime warning on GladeBaseEditor and GladeSignalEditor dispose methods
|
|
||||||
- Do not explicit set window bg as it should be handled by gtk.
|
|
||||||
- Sync close-button with the original gedit widget.
|
|
||||||
This way the proper symbolic close icon is used for the button. (Paolo Borelli)
|
|
||||||
- Use new documentation infrastructure (Javier Jardón)
|
|
||||||
- Added load/save/edit support for <style> <class name="foo"/> </style>, Fixes bug 658035.
|
|
||||||
- Fixed Bug #679589 "Use Action Appearance not supported for GTK 2.12 but added to widgets in Glade 3.8.2"
|
|
||||||
- Fixed bug #679487 "Huge memory leaks"
|
|
||||||
- Fixed bug #679721 "mac-integration: missing 'widget' variable declaration"
|
|
||||||
- Added glade_displayable_value_set_disabled() functions to disable GdkModifierType reserved values
|
|
||||||
- Added build/mingw-w64 directory with script to cross compile and create windows installer using nsis
|
|
||||||
- Fixes bug #675977 "Don't hard-code library search paths"
|
|
||||||
- And many others cleanups and fixes
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.13.0
|
|
||||||
============
|
|
||||||
|
|
||||||
- Implemented Glade UI in glade! (Use GtkBuilder and GResources to build GladeWindow contents)
|
|
||||||
- Implemented GladePreferences dialog.
|
|
||||||
Fixes bug 588981 "Catalog support in GUI preferences instead of using environment var"
|
|
||||||
- Replaced deprecated font and color selection dialogs with font and color chooser dialogs.
|
|
||||||
- Added GladeSignalEditor::detail-suggestions signal
|
|
||||||
- Use glade_util_get_placeholder_from_pointer() in paste action activate
|
|
||||||
- Fixed bug #675395 "Using right click to add a widget over a placeholder do not work as expected every time"
|
|
||||||
- Fixed bug #675042 "plugins/gtk+.xml.in: always store GtkButton [x|y]align properties"
|
|
||||||
- Added custom style provider to setup GladeDesignView and GladeDesignLayout background color to @base_color
|
|
||||||
- Fixed memory leak on GladeSignalEditor::callback-suggestions emison
|
|
||||||
- Removed use of lots of deprecated functions
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.12.0
|
|
||||||
============
|
|
||||||
|
|
||||||
- Implemented GladeSignalEditor::callback-suggestions signal based
|
|
||||||
on patch by Marco Diego Aurélio Mesquita, closes bug #667570
|
|
||||||
"Implement callback name suggestion on glade-signal-editor"
|
|
||||||
- Fixed bug 664912 "GtkGrid assumes 3x3 (edit)"
|
|
||||||
- Fixed bug 645340 "Minor string typo" and bug 646366 "non-sense UI string"
|
|
||||||
- Fixed bug 669272 "Emit a signal to notify signal activation" by Marco Diego Aurélio Mesquita
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.11.0
|
|
||||||
============
|
|
||||||
|
|
||||||
- Added GtkSwitch, GtkInfoBar and GtkEntryCompletion support.
|
|
||||||
- Implemented inline margins and alignment edit mode.
|
|
||||||
Now it is posible to change widget's margins and alignment using the mouse.
|
|
||||||
|
|
||||||
- Ignore GtkWindow:icon property. Fixes bug #654121
|
|
||||||
"workaround gtk segfault: icon on gtkwindow segfault in offscreen"
|
|
||||||
- Bump pygobject requisite to pygobject 3. Fixes bug #658667. Ignacio Casal Quinteiro
|
|
||||||
- Make GladeProject change gtk target to 3.0 and warn the user if there are
|
|
||||||
any unknown (deprecated) objects.
|
|
||||||
Fixes bug 652673 "Project versions are ignored" and 376628 "Deletes unknown widget nodes."
|
|
||||||
|
|
||||||
- Make documentation parallel installable (bug 646997).
|
|
||||||
- Renamed catalog and module environment variables.
|
|
||||||
- Properly escape special characters while serializing property values (bug 654609 - Fabien Parent)
|
|
||||||
- Fix GladeProject to notify "row-has-child-toggled" (fixes bug 651673).
|
|
||||||
- Fixed size groups widget selection (bug 647984 - Benjamin Otte)
|
|
||||||
- Avoid crashing if glade-previewer is not installed
|
|
||||||
(bug 650899 - Johannes Schmid)
|
|
||||||
- Optimized loading time by not updating progressbar on every loaded object.
|
|
||||||
- Update placeholders when a grid child's width or height child
|
|
||||||
properties change.
|
|
||||||
- Ensure 'related-action' and 'use-action-appearance' are serialized in the right order.
|
|
||||||
- Correctly detect the required devhelp version - Javier Jardón
|
|
||||||
- Fixed TreeModelFilter bug #657164
|
|
||||||
- Fixed bug #660607 "Warnings when using GtkGrid created in Glade 3.10"
|
|
||||||
- Fixed glade-previewer bugs
|
|
||||||
#660874 "glade-previewer fails to open UI files without top windows"
|
|
||||||
#660872 "glade-previewer crashes on non-existent files"
|
|
||||||
- Fixed loading correct application icon (bug 648487 fix by Stéphane Maniaci).
|
|
||||||
- Fixed "variable set but not used" warnings (-Wunused-but-set-variable)
|
|
||||||
|
|
||||||
============
|
|
||||||
Glade 3.10.0
|
|
||||||
============
|
|
||||||
- Fixed some glitches in the new workspace - Juan Pablo Ugarte
|
|
||||||
- Removed the unwritten user manual from the menus.
|
|
||||||
- Added support for GdkRGBA properties
|
|
||||||
- Add support for editing the PangoFontDesctiption in GtkLabel attributes
|
|
||||||
- Put File->Properties before Quit in the File menu - Frederic Peters
|
|
||||||
- Added GObject introspection generation to the build - Pablo Castellano & Alan Knowles
|
|
||||||
- Added support for GtkRecentChooserMenu
|
|
||||||
- More last minute sealing of the api (privatized some more files).
|
|
||||||
- Created the GladePreview object to handle previews and fixed
|
|
||||||
preview related bugs - Marco Diego Aurélio Mesquita
|
|
||||||
- Added support for editing GtkGrid
|
|
||||||
- Icons now available for all widget classes - Florent Thévenet and some by Dolean Samuel.
|
|
||||||
- Cleaned up the palette by removing H/V subclasses.
|
|
||||||
- Added support for GtkAppChooser* classes.
|
|
||||||
- Migrate from PyGTK to PyGObject introspection-based bindings - Craig Keogh
|
|
||||||
- Some refactoring of GladeEditable and custom editors in the backend
|
|
||||||
- Added a special "deprecation" graphic to overlay on
|
|
||||||
top of deprecated widget icons.
|
|
||||||
- Added high-resolution applicaiton icon - Jakub Steiner / William Jon McCann
|
|
||||||
- Refactored the core to automate the management of internal children - Juan Pablo Ugarte
|
|
||||||
- Fixed loads of bugs, some fixes by Christopher Aillon,
|
|
||||||
Craig Keogh, Cosimo Cecchi, Juan Pablo Ugarte
|
|
||||||
|
|
||||||
===========
|
|
||||||
Glade 3.9.2
|
|
||||||
===========
|
|
||||||
- Added signal for IDEs to track created signal editors, Johannes Schmid.
|
|
||||||
- Stop installing catalog .xml.in files, Emilio Pozuelo Monfort.
|
|
||||||
- Fixed various memory leaks.
|
|
||||||
- Removed GtkTreeSelection from the palette, it's only available as the internal
|
|
||||||
child of a GtkTreeView
|
|
||||||
- Fixed Drag'n'Drop image drawing with cairo for signal editor, Johannes Schmid with
|
|
||||||
help from Benjamin Otte.
|
|
||||||
- Fixed crashes and memory leaks in the GladeBaseEditor (the editor used for menu editing
|
|
||||||
and treeview editing and the like).
|
|
||||||
- Edit->Preferences is now File->Properties
|
|
||||||
- Removed option for project naming policies, object ids in GtkBuilder are always unique
|
|
||||||
across the whole file.
|
|
||||||
- Render project widgets in the workspace offscreen, this gives us more power over the
|
|
||||||
widgets (combo boxes can now be selected, seletion drawing is now enhanced),
|
|
||||||
Juan Pablo Ugarte.
|
|
||||||
- Added support for GtkComboBoxText with a customized editor to edit the combo box items.
|
|
||||||
- Added GtkRecentFilter and GtkRecentManager to the palette, GtkRecentFilter can specify
|
|
||||||
patterns, mime-types and applications for the filtering.
|
|
||||||
- Added support to edit patterns and mime-types for GtkFileFilter
|
|
||||||
- Added <add-child-verify-function> to the plugin backend, we now use this to better police
|
|
||||||
user activities in Glade (notably, you cannot paste a widget that is not a GtkToolItem
|
|
||||||
to a GtkToolBar or the like).
|
|
||||||
- Renamed various things from glade-3/glade3 to 'glade' (the Glade icon, the bugzilla database,
|
|
||||||
the git repository etc, help from Javier Jardón).
|
|
||||||
- Glade now uses GtkApplication and is a single instance application.
|
|
||||||
- Added support for editing a GtkOffscreenWindow
|
|
||||||
- Changed the workspace to now include all toplevel project objects, selecting an
|
|
||||||
object from the inspector causes the workspace to scroll to the selected widget,
|
|
||||||
Juan Pablo Ugarte.
|
|
||||||
|
|
||||||
===========
|
|
||||||
Glade 3.9.1
|
|
||||||
===========
|
|
||||||
- Added accelerator and tooltip-text properties to menu items and toolitems
|
|
||||||
in the menu editor (fixes bug 510083).
|
|
||||||
- Fixed crashes in liststore editor.
|
|
||||||
- Restored italic insensitive state for the < search widgets > text in the
|
|
||||||
inspector search box.
|
|
||||||
- Fixed glade.desktop.in.in file to refer to the new 'glade' exec name
|
|
||||||
(fix by Emilio Pozuelo Monfort)
|
|
||||||
- Added support for editing GtkToolPalette along with a special tool palette editor.
|
|
||||||
- Make GtkToolBar:icon-size an optional property generally set by the theme/settings
|
|
||||||
(like GtkToolBar:toolbar-style property).
|
|
||||||
- Removed global selection list from glade-utils.[ch], now all selection is controlled
|
|
||||||
by the relevant project
|
|
||||||
- Removed glade_util_class_implements_interface() in favor of g_type_is_a() (closes bug 455734,
|
|
||||||
based on original patch from Juan Pablo Ugarte).
|
|
||||||
- Applied patch by Sergio García Lobo to fix bug 487656 and provide mnemonic key access to
|
|
||||||
"Text beside icons" palette option.
|
|
||||||
- Added idle function to raise the undocked windows at startup time, closes bug 475421.
|
|
||||||
- Fix possible crash when saving new project. bug 622635, fix by Martin Schlemmer.
|
|
||||||
- Fixed crash when user performs Drag'n'Drop of < enter column here > and no columns are
|
|
||||||
yet added (bug 633943).
|
|
||||||
- Fixed use of uninitialized variables in warning messages, bug 634325, fix by Alex Merry.
|
|
||||||
- Set some default HIG values for widgets as per bug 349447.
|
|
||||||
- Make query dialog come with a "Create" button instead of an "OK" button, closes hig bug 503621.
|
|
||||||
- Added GtkTextTagTable editor, now GtkTextTag can be added to GtkTextTagTable.
|
|
||||||
- Made all GdkColor type properties optional, closes bug 457969.
|
|
||||||
- Fixed add/remove parent context menu actions so that they work with parentless widget
|
|
||||||
references (i.e. you can add a parent to a GtkToolItemGroup's label widget
|
|
||||||
or a GtkButton's image widget, or remove the parent of a child of a label-widget, etc).
|
|
||||||
- Expose internal GtkTreeSelection child of GtkTreeView so that "changed" signal
|
|
||||||
can be connected to. Fixes bug 383766.
|
|
||||||
- Included Johannes Schmid's new signal editor work, the GladeSignals are now available
|
|
||||||
via a GtkTreeModel implementation, this does not effect the UI much but allows signals
|
|
||||||
to be Drag'n'Dropped from Glade's signal editor to Anjuta somewhere.
|
|
||||||
- Restored GtkFixed/GtkLayout background pattern.
|
|
||||||
- Restored old GladePlaceholder background pattern.
|
|
||||||
- Fixed mismatching PangoAttributeType with GType, closes bug 597045.
|
|
||||||
|
|
||||||
===========
|
|
||||||
Glade 3.9.0
|
|
||||||
===========
|
|
||||||
|
|
||||||
- General build fixes for building with GTK+ 3.0, including patches from Johannes Schmid,
|
|
||||||
Matthias Clasen, Javier Jardón and Juan Pablo Ugarte.
|
|
||||||
- Included the new Preview feature by Marco Diego Aurélio Mesquita.
|
|
||||||
- Various leaks and crashes fixed.
|
|
||||||
- GladeWidget becomes GInitiallyUnowned, refcounting improved for project dispose cycles.
|
|
||||||
- Handle combo-box entry child properly (bug 581580).
|
|
||||||
- Fixed crashes when textview's buffer is deleted, fix by Martin Schlemmer, bug 609748.
|
|
||||||
- Restored property order of project objects at save time (glade files no longer container
|
|
||||||
irrelevant diffs).
|
|
||||||
- Hide editor properties when the property is not available on the widget, bug 585299,
|
|
||||||
fix by Marco Diego Aurélio Mesquita.
|
|
||||||
- Fixed makefiles as per bug 521713 (patch initially by Daniel Macks).
|
|
||||||
- Fixed mixups of properties vs packing properties (bug 637475).
|
|
||||||
- Fixed class header of GladeEditor to update when widgets unload (patch by
|
|
||||||
Marco Diego Aurélio Mesquita, bug 637541).
|
|
||||||
- Fixed particalarly nasty crasher bug when loading/saving treestore column definitions,
|
|
||||||
special thanks goes to Benjamin Otte, bug 637563.
|
|
||||||
- Add progress bar to notebook tab of currently loading project (now the whole UI doesnt
|
|
||||||
jam up while loading a big project).
|
|
||||||
- Fixed notebook tab style to use the new CSS stuff.
|
|
||||||
- Removed widgets that are not available in 3.0
|
|
||||||
- Completely removed Libglade support
|
|
||||||
- Removed GladeClipBoardView completely
|
|
||||||
- Removed GladeParameter obsolete code
|
|
||||||
- Fixed editor labels to use natural word wrapping
|
|
||||||
- Drop GtkTables in editors in favor of GtkGrid
|
|
||||||
- Added custom editor for editing GtkActionGroup and managing child actions
|
|
||||||
- Ran 'indent' on source base, new Glade coding style more similar to GTK+ style
|
|
||||||
- Removed boolean "fixed" catalog attribute, instead <create-widget-function> can
|
|
||||||
be used to specify a derived GladeWidget to be used in the runtime.
|
|
||||||
- Use locale-independent strtod & dtostr. Fixes bug 616787, fix by Christian Persch.
|
|
||||||
- Applying patch to allow better builds on win32, patch by Dieter Verfaillie, bug 634978.
|
|
||||||
- Fixed loaded state of use-action-appearance so that it always
|
|
||||||
loads as FALSE if there is no "related-action" at load time (closes bug 582882).
|
|
||||||
- Sealed entire core API, libgladeui-2 will be ABI stable after 3.10 release.
|
|
||||||
- Removed GladeApp::update-ui signal, active-project, selection handling and implied
|
|
||||||
commands, everything now must be done in context of a GladeProject.
|
|
||||||
- Optimized GladeEditor to load a widget faster by keeping all the cached pages in internal
|
|
||||||
vboxes and not remove/adding them but just hide/showing them (improves object selection
|
|
||||||
time).
|
|
||||||
- Optimized frontend to load one palette per project, verifying the palette for version
|
|
||||||
information when the related project is set costs around 1 second, this is now only
|
|
||||||
experienced when the target version is changed in the project prefs dialog.
|
|
||||||
|
|
||||||
|
|
||||||
===========
|
|
||||||
Glade 3.7.1
|
|
||||||
===========
|
|
||||||
- Changed "Close without saving" acelerator key from 'c' to 'w', (Aaron Brown, bug 612538)
|
|
||||||
- Save Glade files with UTF-8 encoding (Christian Persch, bug 596205)
|
|
||||||
- Save maximized window state of all windows in session data (Marco Diego Aurélio Mesquita, bug 607670)
|
|
||||||
- use g_timeout_add_seconds() (Javier Jardón, bug 581255)
|
|
||||||
- Fixed signal name serialization in GtkBuilder format to use '-' instead of '_' (bug 600031)
|
|
||||||
- Disable orientation properties completely and disregard them wherever they cause breakage
|
|
||||||
(Federico Mena Quintero, bug 594231)
|
|
||||||
- Now print a summery of all missing icons at startup instead of a warning for each missing icon
|
|
||||||
- Fixed some remaining crashers introduced by recent GSEAL patches
|
|
||||||
- Integrated GtkToolPalette as the internal implementation of Glade's palette (bug 613956).
|
|
||||||
- Added tooltip to palette (bug 558983)
|
|
||||||
- Revamped internal treeview support, less warnings and better refresh of workspace when
|
|
||||||
editing cell renderer attributes and liststores.
|
|
||||||
- Glade now loads/saves the "swapped" <signal> attribute.
|
|
||||||
- Signal editor revamped to now:
|
|
||||||
o show documentation links
|
|
||||||
o show warning icons for version mismatches
|
|
||||||
o edit "swapped" attribute
|
|
||||||
o edit the user-data object using an object selection dialog.
|
|
||||||
o now the signal editor is a proper widget-class (Johannes Schmid, bug 618020)
|
|
||||||
- Disallow adding of non-scrollable widgets to scrolled windows (now an informative
|
|
||||||
popup comes up instead).
|
|
||||||
- Fixed hangs in menu/treeview editors (Marco Diego Aurélio Mesquita, bug 609612)
|
|
||||||
- Changed the old glade-cell-renderer-button for a new activatable pixbuf renderer
|
|
||||||
glade-cell-renderer-icon.[ch].
|
|
||||||
- Added support to add GtkActions to GtkActionGroups
|
|
||||||
- Added support to edit the <accelerator> for an action when in a group.
|
|
||||||
- Added notebook tabs to the Glade frontend with informative labels (per open project).
|
|
||||||
- Stop showing preferences dialog at startup time (bug 574095)
|
|
||||||
- GladeProject now implements GtkTreeModel and GladeInspector view saves lots of code (Johannes Schmid)
|
|
||||||
- Allow destruction of GladeApp object (Johannes Schmid, bug 618468).
|
|
||||||
|
|
||||||
===========
|
|
||||||
Glade 3.7.0
|
|
||||||
===========
|
|
||||||
- Fixed loading state of assigned GtkTreeModels of GtkCellRendererCombo objects (bug 566928).
|
|
||||||
- Fixed crasher while copying internal widgets (bug 595156)
|
|
||||||
- Support silent build when using automake >= 1.11 (Javier Jardón)
|
|
||||||
- Proper ordering of GtkAdjustment properties in glade files (bug 578484).
|
|
||||||
- Refactoring work for GSEAL (Javier Jardón)
|
|
||||||
- Avoid collapsing commands when a project is freshly saved (this fixes a false "unmodified"
|
|
||||||
state after changing the same property before and after project save) (Marco Diego Aurélio Mesquita)
|
|
||||||
- Allow litteral strings as column type definitions in GtkTreeStores (closes bug 597059).
|
|
||||||
- Updated Glade GTK+ catalog info to include deprecations, new properties and signals since 2.18 and 2.20
|
|
||||||
and some translatable strings (brought to you also in part by Johannes H. Jensen for some translatable
|
|
||||||
strings and Javier Jardón for some deprecations), some new objects this consequently adds:
|
|
||||||
o GtkEntryBuffer
|
|
||||||
o GtkSpinner
|
|
||||||
o GtkCellRendererSpinner
|
|
||||||
- Fixed crasher editing some data types in the liststore data editor (bug 608011).
|
|
||||||
- Enhanced the GtkEntry editor to allow the user to chose between the "text" and the "buffer" exclusively.
|
|
||||||
|
|
||||||
===========
|
===========
|
||||||
Glade 3.6.7
|
Glade 3.6.7
|
||||||
@ -1883,4 +1036,3 @@ Translators:
|
|||||||
o Zbigniew Chyla
|
o Zbigniew Chyla
|
||||||
o Hasbullah Bin Pit
|
o Hasbullah Bin Pit
|
||||||
o Takeshi AIHANA
|
o Takeshi AIHANA
|
||||||
|
|
||||||
|
79
README
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
Glade
|
||||||
|
=====
|
||||||
|
|
||||||
|
A user interface designer for Gtk+ and GNOME
|
||||||
|
|
||||||
|
Web: http://glade.gnome.org
|
||||||
|
|
||||||
|
Mailing Lists: glade-users@ximian.com - For discussions about using
|
||||||
|
Glade to build applications.
|
||||||
|
glade-devel@ximian.com - For discussions about the
|
||||||
|
development of Glade itself.
|
||||||
|
|
||||||
|
|
||||||
|
General Information
|
||||||
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Glade is a RAD tool to enable quick & easy development of user interfaces
|
||||||
|
for the Gtk+ toolkit and the GNOME desktop environment.
|
||||||
|
The user interfaces designed in Glade are stored in XML format,
|
||||||
|
enabling easy integration with external tools.
|
||||||
|
In particular libglade can load the XML files and create the interfaces
|
||||||
|
at runtime. The DTD for the XML files is included with libglade, and is
|
||||||
|
also at http://glade.gnome.org/glade-2.0.dtd.
|
||||||
|
Other tools are available which can turn the XML files into source code
|
||||||
|
in languages such as C++, Perl and Python.
|
||||||
|
|
||||||
|
|
||||||
|
About Glade-3
|
||||||
|
~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
This version of Glade (Glade-3) is a complete rewrite of the original Glade codebase.
|
||||||
|
|
||||||
|
One of the main differences from glade-2 is that C code generation has been removed from
|
||||||
|
glade-3: this has been done on purpose, since using generated code is deprecated; the preferred
|
||||||
|
way to use glade files is with libglade (if code generation is needed, this can be provided
|
||||||
|
as another tool or plugin, code generation is simply not a part of the glade-3 project).
|
||||||
|
Another main difference is that glade-3 was designed to make maximal use of GObject
|
||||||
|
introspection, thus easing the integration of external toolkits and handling widgets,
|
||||||
|
signals and properties genericly; thus making it easier to write fancy features in the
|
||||||
|
future (toolkits such as gtk+ itself, gnome, gnome-db and any others are implemented
|
||||||
|
externaly as widget catalogs with optional support libraries, thus catalogs may be
|
||||||
|
distributed seperatly; possibly along with their libglade support modules).
|
||||||
|
|
||||||
|
It has a few useful new features such as stacked Undo/Redo and Multiple Project support
|
||||||
|
and respects the same XML format as glade-2.
|
||||||
|
|
||||||
|
For a more details on what has changed, what still needs work, etc. see
|
||||||
|
the NEWS file & the glade3 product at bugzilla.gnome.org.
|
||||||
|
Comments, bug reports and patches are more than welcome.
|
||||||
|
|
||||||
|
|
||||||
|
License
|
||||||
|
~~~~~~~
|
||||||
|
|
||||||
|
Glade is distributed under the GNU General Public License (GPL), as described
|
||||||
|
in the COPYING file.
|
||||||
|
Note that you are free to use whatever license you like for the source code
|
||||||
|
generated by Glade. (We do not consider the code generated by Glade to be
|
||||||
|
'a work based on the Program' as described at the start of the GPL.)
|
||||||
|
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
o GTK+ 2.20.0 or above - http://www.gtk.org
|
||||||
|
You also need the glib, pango and atk libraries.
|
||||||
|
Make sure you have the devel packages as well, as these will contain the
|
||||||
|
header files which you will need to compile C applications.
|
||||||
|
|
||||||
|
o libxml 2.4.1 - used to parse the XML files. If you have GNOME 2 you
|
||||||
|
should already have this.
|
||||||
|
|
||||||
|
|
||||||
|
Installation
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
See the file 'INSTALL'
|
||||||
|
|
||||||
|
|
122
README.md
@ -1,122 +0,0 @@
|
|||||||
# Glade
|
|
||||||
|
|
||||||
User interface designer for Gtk+ and GNOME
|
|
||||||
|
|
||||||
* Web - <https://glade.gnome.org>
|
|
||||||
* Git - <https://gitlab.gnome.org/GNOME/glade>
|
|
||||||
|
|
||||||
Mailing Lists:
|
|
||||||
|
|
||||||
Both users and devel mailing list have been archived, you can find the archives at
|
|
||||||
|
|
||||||
* https://mail.gnome.org/archives/glade-users-list/
|
|
||||||
* https://mail.gnome.org/archives/glade-devel-list/
|
|
||||||
|
|
||||||
## Development status
|
|
||||||
|
|
||||||
Glade is not being actively developed or maintained anymore.
|
|
||||||
If you are interested in becoming a maintainer please contact us on gitlab.
|
|
||||||
|
|
||||||
## General Information
|
|
||||||
|
|
||||||
Glade is a RAD tool to enable quick and easy development of user interfaces
|
|
||||||
for the GTK+ 3 toolkit and the GNOME desktop environment.
|
|
||||||
|
|
||||||
The user interfaces designed in Glade are saved as XML and these can be loaded
|
|
||||||
by applications dynamically as needed by using GtkBuilder or used directly to
|
|
||||||
define a new GtkWidget derived object class using Gtk+ new template feature.
|
|
||||||
|
|
||||||
By using GtkBuilder, Glade XML files can be used in numerous programming
|
|
||||||
languages including C, C++, C#, Vala, Java, Perl, Python, and others.
|
|
||||||
|
|
||||||
This version of Glade targets GTK 3
|
|
||||||
If you need to work with GTK 2, you can still use Glade 3.8
|
|
||||||
([more information](http://blogs.gnome.org/tvb/2011/01/15/the-glade-dl/))
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
Glade is distributed under the
|
|
||||||
[GNU General Public License](https://www.gnu.org/licenses/gpl-2.0.en.html),
|
|
||||||
version 2 (GPL) and
|
|
||||||
[GNU Library General Public License](https://www.gnu.org/licenses/old-licenses/lgpl-2.0.en.html),
|
|
||||||
version 2 (LGPL) as described in the COPYING file.
|
|
||||||
|
|
||||||
## Manual instalation
|
|
||||||
|
|
||||||
Requirements
|
|
||||||
|
|
||||||
* C compiler like [gcc](https://gcc.gnu.org/)
|
|
||||||
* [Meson](http://mesonbuild.org) build system
|
|
||||||
* [GTK](http://www.gtk.org) 3.24.0 or above
|
|
||||||
* [libxml](http://xmlsoft.org/) 2.4.1 - used to parse XML files
|
|
||||||
* libgirepository1.0 - Build-time dependency
|
|
||||||
* xsltproc - for man pages generation
|
|
||||||
|
|
||||||
Optional dependencies:
|
|
||||||
|
|
||||||
* glib-networking plugins for TLS support (Needed for survey)
|
|
||||||
* libwebkit2gtk-4.0 - For Webkit plugin
|
|
||||||
* python-gi - For Python plugin
|
|
||||||
* libgjs - For JavaScript plugin
|
|
||||||
* gettext, itstool - For translation support
|
|
||||||
|
|
||||||
Download sources from git and build using meson/ninja
|
|
||||||
|
|
||||||
# Install dependencies, for example in debian
|
|
||||||
sudo apt install gcc meson libgtk-3-dev libxml2-dev libgirepository1.0-dev xsltproc gettext itstool
|
|
||||||
|
|
||||||
# Optional dependencies
|
|
||||||
sudo apt install libgjs-dev libwebkit2gtk-4.0-dev python-gi-dev glib-networking
|
|
||||||
|
|
||||||
# Clone the source repository or download tarball
|
|
||||||
git clone https://gitlab.gnome.org/GNOME/glade.git
|
|
||||||
|
|
||||||
# Create build directory and configure project
|
|
||||||
mkdir glade/build && cd glade/build
|
|
||||||
meson --prefix=~/.local
|
|
||||||
|
|
||||||
# Build and install
|
|
||||||
ninja
|
|
||||||
ninja install
|
|
||||||
|
|
||||||
To run it you might need to set up LD_LIBRARY_PATH depending on your
|
|
||||||
distribution defaults
|
|
||||||
|
|
||||||
LD_LIBRARY_PATH=~/.local/lib/x86_64-linux-gnu/ glade
|
|
||||||
|
|
||||||
## Linux
|
|
||||||
|
|
||||||
Debian
|
|
||||||
|
|
||||||
apt install glade
|
|
||||||
|
|
||||||
Fedora
|
|
||||||
|
|
||||||
yum install glade
|
|
||||||
|
|
||||||
Any distribution with Flatpak
|
|
||||||
|
|
||||||
flatpak install flathub org.gnome.Glade
|
|
||||||
|
|
||||||
[<img width='240' alt='Download on Flathub' src='https://flathub.org/assets/badges/flathub-badge-i-en.png'/>](https://flathub.org/apps/details/org.gnome.Glade)
|
|
||||||
|
|
||||||
## Windows
|
|
||||||
|
|
||||||
Available as a
|
|
||||||
[package](https://packages.msys2.org/package/mingw-w64-x86_64-glade) in
|
|
||||||
[MSYS2](https://www.msys2.org/)
|
|
||||||
|
|
||||||
pacman -S mingw-w64-x86_64-glade
|
|
||||||
|
|
||||||
## OSX
|
|
||||||
|
|
||||||
Available as a [package](https://formulae.brew.sh/formula/glade) in
|
|
||||||
[Brew](https://brew.sh/)
|
|
||||||
|
|
||||||
brew install glade
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
7
README.svn
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
If you are a long time gnome committer and you have a minor patch
|
||||||
|
that you are sure is correct, then go ahead and commit.
|
||||||
|
|
||||||
|
For the other great majority of the time; please ask before commiting
|
||||||
|
at glade-devel@lists.ximian.com.
|
||||||
|
|
||||||
|
All commits must have a ChangeLog entry.
|
59
TODO
@ -1,45 +1,22 @@
|
|||||||
Split Project data model from view model:
|
|
||||||
========================================
|
|
||||||
|
|
||||||
Currently we create a GladeWidget object for each project object but
|
|
||||||
GladeProject and gladeui api in general uses the very same runtime object.
|
|
||||||
Ideally we should only depend on GladeWidget and the actual runtime object
|
|
||||||
should only be used for the view in the workspace.
|
|
||||||
|
|
||||||
A first step could be updating GladeProject to only use GladeWidget internally
|
3.6 blocker/high priority list
|
||||||
and then we can update gladeui api to use GladeWidget instead but this means a
|
=============================
|
||||||
API/ABI break
|
Glade renames widgets when ids are dupped: http://bugzilla.gnome.org/show_bug.cgi?id=549176
|
||||||
|
Improve attributes editor
|
||||||
|
Add actions, treestore, treemodel, adjustment, pixbuf (Gtk+ objects new group)
|
||||||
|
Nice editor resizing by Pavel, needs fix for warning icons: http://bugzilla.gnome.org/show_bug.cgi?id=546107
|
||||||
|
No way to add menus to toolbar: http://bugzilla.gnome.org/show_bug.cgi?id=429438
|
||||||
|
GdkColor null values critical errors: http://bugzilla.gnome.org/show_bug.cgi?id=426345
|
||||||
|
Add versioning metadata for libglade unsupported properties and widgets.
|
||||||
|
Sort objects from widgets in the inspector widget.
|
||||||
|
|
||||||
GtkBuilder unsuported features:
|
Make popup work in workspace with no-window widgets
|
||||||
==============================
|
Remove deleted widgets from the workspace
|
||||||
|
Take care of external object property references (sync them) at glade_widget_rebuild time
|
||||||
|
Liststore/Treestore data is not translatable
|
||||||
|
store data needs improvement and cant be released as is (cant even have spaces in data, needs real new structure).
|
||||||
|
|
||||||
* Property bindings
|
IMPORTANT!!! Go over all object type properties and mark them libglade unsupported,
|
||||||
|
newly added objects need "since" versioning info updated, all around thoroughly
|
||||||
Unsupported object classes:
|
check catalog data before release candidate.
|
||||||
==========================
|
|
||||||
|
|
||||||
Glib
|
|
||||||
|
|
||||||
* GMenu/GMenuModel (<menu> GtkBuilder element)
|
|
||||||
Because GMenu is in Glib library it can not implement GtkBuildable iface which
|
|
||||||
is in GTK+ this lead to implementing GMenu object construction in GtkBuilder
|
|
||||||
using a custom element <menu>
|
|
||||||
Ideally we should move GtkBuilder and GtkBuildable to Glib and rename them
|
|
||||||
GBuilder and GBuildable so that we can implemet GBuildable in GMenu object
|
|
||||||
A way to avoid this would be to create a new object type in GTK that derives
|
|
||||||
from GMenu say GtkMenuObject (GtkMenu is already taken ;) and make it implement
|
|
||||||
GtkBuildable iface.
|
|
||||||
|
|
||||||
* GAction, GSimpleAction, GActionGroup
|
|
||||||
|
|
||||||
GTK+ 3.4
|
|
||||||
|
|
||||||
* GtkApplication (add buildable iface to support GMenuModel?¿)
|
|
||||||
|
|
||||||
GTK+ 3.14
|
|
||||||
|
|
||||||
* type="action" children in GtkDialog
|
|
||||||
|
|
||||||
GTK+ 3.20
|
|
||||||
|
|
||||||
* GtkShortcutsWindow
|
|
||||||
|
52
autogen.sh
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Run this to generate all the initial makefiles, etc.
|
||||||
|
|
||||||
|
srcdir=`dirname $0`
|
||||||
|
test -z "$srcdir" && srcdir=.
|
||||||
|
|
||||||
|
PKG_NAME="glade"
|
||||||
|
|
||||||
|
(test -f $srcdir/configure.ac \
|
||||||
|
&& test -f $srcdir/autogen.sh) || {
|
||||||
|
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
|
||||||
|
echo " top-level $PKG_NAME directory"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
DIE=0
|
||||||
|
|
||||||
|
# This is a bit complicated here since we can't use gnome-config yet.
|
||||||
|
# It'll be easier after switching to pkg-config since we can then
|
||||||
|
# use pkg-config to find the gnome-autogen.sh script.
|
||||||
|
|
||||||
|
gnome_autogen=
|
||||||
|
gnome_datadir=
|
||||||
|
|
||||||
|
ifs_save="$IFS"; IFS=":"
|
||||||
|
for dir in $PATH ; do
|
||||||
|
test -z "$dir" && dir=.
|
||||||
|
if test -f $dir/gnome-autogen.sh ; then
|
||||||
|
gnome_autogen="$dir/gnome-autogen.sh"
|
||||||
|
gnome_datadir=`echo $dir | sed -e 's,/bin$,/share,'`
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS="$ifs_save"
|
||||||
|
|
||||||
|
if test -z "$gnome_autogen" ; then
|
||||||
|
echo "You need to install the gnome-common module and make"
|
||||||
|
echo "sure the gnome-autogen.sh script is in your \$PATH."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
automake_version=1.9
|
||||||
|
|
||||||
|
#case `uname` in
|
||||||
|
#CYGWIN*)
|
||||||
|
# automake 1.4 of cygwin does not define EGREP in libtool.m4, and
|
||||||
|
# fails to do the file magic test when -rpath is given
|
||||||
|
# automake_version=1.7
|
||||||
|
# ;;
|
||||||
|
#esac
|
||||||
|
|
||||||
|
GTKDOCIZE="gtkdocize --flavour no-tmpl" REQUIRED_GNOME_DOC_UTILS_VERSION=0.9.0 REQUIRED_AUTOMAKE_VERSION="$automake_version" GNOME_DATADIR="$gnome_datadir" USE_GNOME2_MACROS=1 . $gnome_autogen
|
310
configure.ac
Normal file
@ -0,0 +1,310 @@
|
|||||||
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
|
||||||
|
AC_PREREQ(2.52)
|
||||||
|
|
||||||
|
m4_define(glade_major_version, 3)
|
||||||
|
m4_define(glade_minor_version, 6)
|
||||||
|
m4_define(glade_micro_version, 7)
|
||||||
|
m4_define(glade_version, glade_major_version.glade_minor_version.glade_micro_version)
|
||||||
|
|
||||||
|
AC_INIT([glade3], [glade_version],
|
||||||
|
[http://bugzilla.gnome.org/enter_bug.cgi?product=glade3])
|
||||||
|
|
||||||
|
AC_CONFIG_HEADERS([config.h])
|
||||||
|
AC_CONFIG_SRCDIR([gladeui/glade.h])
|
||||||
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
|
||||||
|
AC_DEFINE(GLADE_MAJOR_VERSION, glade_major_version, [Glade major version])
|
||||||
|
AC_SUBST(GLADE_MAJOR_VERSION, glade_major_version)
|
||||||
|
AC_DEFINE(GLADE_MINOR_VERSION, glade_minor_version, [Glade minor version])
|
||||||
|
AC_SUBST(GLADE_MINOR_VERSION, glade_minor_version)
|
||||||
|
AC_DEFINE(GLADE_MICRO_VERSION, glade_micro_version, [Glade micro version])
|
||||||
|
AC_SUBST(GLADE_MICRO_VERSION, glade_micro_version)
|
||||||
|
|
||||||
|
AC_CANONICAL_SYSTEM
|
||||||
|
|
||||||
|
AM_INIT_AUTOMAKE([1.9 foreign no-dist-gzip dist-bzip2])
|
||||||
|
|
||||||
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
|
# Support silent build rules, requires at least automake-1.11. Disable
|
||||||
|
# by either passing --disable-silent-rules to configure or passing V=1
|
||||||
|
# to make
|
||||||
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||||
|
|
||||||
|
IT_PROG_INTLTOOL([0.35.0])
|
||||||
|
|
||||||
|
AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
|
||||||
|
AC_PATH_PROG(DLLTOOL, dlltool)
|
||||||
|
|
||||||
|
AC_ISC_POSIX
|
||||||
|
AC_PROG_CC
|
||||||
|
AC_DISABLE_STATIC
|
||||||
|
AC_PROG_INSTALL
|
||||||
|
AC_PROG_MAKE_SET
|
||||||
|
|
||||||
|
AC_LIBTOOL_DLOPEN
|
||||||
|
AC_LIBTOOL_WIN32_DLL
|
||||||
|
AM_PROG_LIBTOOL
|
||||||
|
|
||||||
|
# If the source code has changed at all, increment GLADE_REVISION
|
||||||
|
# If any interfaces have been added, removed, or changed, increment GLADE_CURRENT, and set GLADE_REVISION to 0.
|
||||||
|
# If any interfaces have been added since the last public release, then increment GLADE_AGE.
|
||||||
|
# If any interfaces have been removed since the last public release, then set GLADE_AGE to 0.
|
||||||
|
# Reference: http://www.gnu.org/software/libtool/manual.html#Versioning
|
||||||
|
GLADE_REVISION=3
|
||||||
|
GLADE_CURRENT=9
|
||||||
|
GLADE_AGE=0
|
||||||
|
GLADE_CURRENT_MINUS_AGE=`expr $GLADE_CURRENT - $GLADE_AGE`
|
||||||
|
AC_SUBST(GLADE_REVISION)
|
||||||
|
AC_SUBST(GLADE_CURRENT)
|
||||||
|
AC_SUBST(GLADE_AGE)
|
||||||
|
AC_SUBST(GLADE_CURRENT_MINUS_AGE)
|
||||||
|
|
||||||
|
dnl are we unstable or stable?
|
||||||
|
m4_define([glade_unstable],
|
||||||
|
m4_if(m4_eval(glade_minor_version % 2), [1], [yes], [no]))
|
||||||
|
GLADE_UNSTABLE=glade_unstable
|
||||||
|
AC_SUBST(GLADE_UNSTABLE)
|
||||||
|
|
||||||
|
dnl The symbol GLADE_UNSTABLE is defined above for substitution in
|
||||||
|
dnl Makefiles and conditionally defined here as a preprocessor symbol
|
||||||
|
dnl and automake conditional.
|
||||||
|
if test "x$GLADE_UNSTABLE" = "xyes"; then
|
||||||
|
AC_DEFINE(GLADE_UNSTABLE, 1,
|
||||||
|
[Define to 1 if this is an unstable version of Glade])
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL(GLADE_UNSTABLE, test "x$GLADE_UNSTABLE" = "xyes")
|
||||||
|
|
||||||
|
# ================================================================
|
||||||
|
|
||||||
|
GNOME_COMMON_INIT
|
||||||
|
GNOME_DEBUG_CHECK
|
||||||
|
GNOME_COMPILE_WARNINGS([maximum])
|
||||||
|
GNOME_MAINTAINER_MODE_DEFINES
|
||||||
|
|
||||||
|
# For the plugins, we don't use the warning flags defined by GNOME_COMPILE_WARNINGS.
|
||||||
|
# These flags include -Wmissing-prototypes, which we prefer not to use.
|
||||||
|
if test "x$GCC" = "xyes"; then
|
||||||
|
PLUGINS_WARN_CFLAGS="-Wall -Wnested-externs -Wpointer-arith"
|
||||||
|
fi
|
||||||
|
AC_SUBST(PLUGINS_WARN_CFLAGS)
|
||||||
|
|
||||||
|
dnl ================================================================
|
||||||
|
dnl Gettext stuff.
|
||||||
|
dnl ================================================================
|
||||||
|
GETTEXT_PACKAGE=AC_PACKAGE_NAME
|
||||||
|
AC_SUBST(GETTEXT_PACKAGE)
|
||||||
|
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Name of the gettext package.])
|
||||||
|
AM_GLIB_GNU_GETTEXT
|
||||||
|
|
||||||
|
dnl ================================================================
|
||||||
|
dnl va_copy.
|
||||||
|
dnl ================================================================
|
||||||
|
AC_MSG_CHECKING([how to copy va_list])
|
||||||
|
AC_TRY_LINK([#include <stdarg.h>], [va_list ap1, ap2; va_copy(ap1, ap2);],
|
||||||
|
AC_MSG_RESULT([va_copy]),
|
||||||
|
[ AH_TEMPLATE([va_copy], [define if va_copy is not available])
|
||||||
|
AC_TRY_LINK([#include <stdarg.h>], [va_list ap1, ap2; __va_copy(ap1, ap2);],
|
||||||
|
[ AC_DEFINE([va_copy], [__va_copy])
|
||||||
|
AC_MSG_RESULT([__va_copy])],
|
||||||
|
[ AC_DEFINE([va_copy(dest,src)], [memcpy(&dest,&src,sizeof(va_list))])
|
||||||
|
AC_MSG_RESULT([memcpy])]
|
||||||
|
)
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl ================================================================
|
||||||
|
dnl Check for gtk-doc
|
||||||
|
dnl ================================================================
|
||||||
|
GTK_DOC_CHECK(1.9)
|
||||||
|
|
||||||
|
dnl ================================================================
|
||||||
|
dnl Check for gtk+
|
||||||
|
dnl ================================================================
|
||||||
|
PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.19.5 gthread-2.0 libxml-2.0 >= 2.4.0])
|
||||||
|
AC_SUBST(GTK_LIBS)
|
||||||
|
AC_SUBST(GTK_CFLAGS)
|
||||||
|
|
||||||
|
dnl ================================================================
|
||||||
|
dnl Check for the unix print widgets in gtk+
|
||||||
|
dnl ================================================================
|
||||||
|
LIBS=$GTK_LIBS
|
||||||
|
AC_CHECK_FUNCS(gtk_print_unix_dialog_new,[have_unix_print=yes]; break,[have_unix_print=no])
|
||||||
|
AM_CONDITIONAL(HAVE_GTK_UNIX_PRINT, test x"$have_unix_print" = "xyes")
|
||||||
|
|
||||||
|
dnl ================================================================
|
||||||
|
dnl Check for optional gnome libs
|
||||||
|
dnl ================================================================
|
||||||
|
AC_ARG_ENABLE(gnome,
|
||||||
|
AS_HELP_STRING([--disable-gnome], [disable gnome catalog]),
|
||||||
|
check_gnome=$enableval, check_gnome=yes)
|
||||||
|
|
||||||
|
if test x"$check_gnome" = x"yes"; then
|
||||||
|
PKG_CHECK_MODULES(GNOME, [libbonoboui-2.0 libgnomeui-2.0],
|
||||||
|
[have_gnome=yes],[have_gnome=no])
|
||||||
|
AC_SUBST(GNOME_LIBS)
|
||||||
|
AC_SUBST(GNOME_CFLAGS)
|
||||||
|
else
|
||||||
|
have_gnome=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
AM_CONDITIONAL(BUILD_GNOME, test x"$have_gnome" = "xyes")
|
||||||
|
|
||||||
|
|
||||||
|
dnl ================================================================
|
||||||
|
dnl Python for optional python dev libs
|
||||||
|
dnl ================================================================
|
||||||
|
AC_ARG_ENABLE(python,
|
||||||
|
AS_HELP_STRING([--disable-python], [disable python catalog]),
|
||||||
|
check_python=$enableval, check_python=yes)
|
||||||
|
|
||||||
|
if test x"$check_python" = x"yes"; then
|
||||||
|
PYGTK_REQUIRED_MAJOR=2
|
||||||
|
PYGTK_REQUIRED_MINOR=10
|
||||||
|
PYGTK_REQUIRED_MICRO=0
|
||||||
|
PKG_CHECK_MODULES(PYGTK, [pygtk-2.0 >= 2.10.0], [have_python=yes],[have_python=no])
|
||||||
|
|
||||||
|
AM_CHECK_PYTHON_HEADERS(, [have_python_headers=no])
|
||||||
|
AM_CHECK_PYTHON_LIBS(, [have_python_lib=no])
|
||||||
|
|
||||||
|
if test x"$have_python_headers" = x"no"; then
|
||||||
|
have_python=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x"$have_python_lib" = x"no"; then
|
||||||
|
have_python=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
AC_DEFINE_UNQUOTED(PYGTK_REQUIRED_MAJOR, $PYGTK_REQUIRED_MAJOR, Pygtk mayor version required)
|
||||||
|
AC_DEFINE_UNQUOTED(PYGTK_REQUIRED_MINOR, $PYGTK_REQUIRED_MINOR, Pygtk minor version required)
|
||||||
|
AC_DEFINE_UNQUOTED(PYGTK_REQUIRED_MICRO, $PYGTK_REQUIRED_MICRO, Pygtk micro version required)
|
||||||
|
|
||||||
|
AC_SUBST(PYGTK_LIBS)
|
||||||
|
AC_SUBST(PYGTK_CFLAGS)
|
||||||
|
else
|
||||||
|
have_python=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
AM_CONDITIONAL(BUILD_PYTHON, test x"$have_python" = "xyes")
|
||||||
|
|
||||||
|
# ==================================================================
|
||||||
|
# Glade User Manual (requires gnome-doc-utils)
|
||||||
|
# ==================================================================
|
||||||
|
|
||||||
|
GNOME_DOC_INIT([0.9.0],[],[:])
|
||||||
|
|
||||||
|
dnl ================================================================
|
||||||
|
dnl Check for windows
|
||||||
|
dnl ================================================================
|
||||||
|
case $host_os in
|
||||||
|
*mingw* | pw32* | cygwin*)
|
||||||
|
platform_win32=yes
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
platform_win32=no
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
AM_CONDITIONAL(PLATFORM_WIN32, test x"$platform_win32" = "xyes")
|
||||||
|
|
||||||
|
case $host_os in
|
||||||
|
*mingw*)
|
||||||
|
native_win32=yes
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
native_win32=no
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
AM_CONDITIONAL(NATIVE_WIN32, test x"$native_win32" = "xyes")
|
||||||
|
|
||||||
|
if test "$native_win32" = "yes"; then
|
||||||
|
AC_CHECK_TOOL(WINDRES, windres, no)
|
||||||
|
if test "$WINDRES" = no; then
|
||||||
|
AC_MSG_ERROR([*** Could not find an implementation of windres in your PATH.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl ================================================================
|
||||||
|
dnl Check for GDK Quartz and MacOSX integration package
|
||||||
|
dnl ================================================================
|
||||||
|
_gdk_tgt=`$PKG_CONFIG --variable=target gdk-2.0`
|
||||||
|
AM_CONDITIONAL([GDK_TARGET_QUARTZ], [test x$_gdk_tgt = xquartz])
|
||||||
|
if test "x$_gdk_tgt" = xquartz; then
|
||||||
|
PKG_CHECK_MODULES(IGE_MAC, ige-mac-integration)
|
||||||
|
|
||||||
|
IGE_MAC_BUNDLE_FLAG=
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(mac-bundle,
|
||||||
|
AS_HELP_STRING([--enable-mac-bundle], [enable mac bundling]),
|
||||||
|
build_bundle=yes, build_bundle=no)
|
||||||
|
|
||||||
|
if test "x$build_bundle" = xyes; then
|
||||||
|
AC_MSG_NOTICE([enableing mac bundle..])
|
||||||
|
|
||||||
|
IGE_MAC_BUNDLE_FLAG=-DMAC_BUNDLE
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST(IGE_MAC_BUNDLE_FLAG)
|
||||||
|
AC_SUBST(IGE_MAC_LIBS)
|
||||||
|
AC_SUBST(IGE_MAC_CFLAGS)
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST([AM_CPPFLAGS])
|
||||||
|
AC_SUBST([AM_CFLAGS])
|
||||||
|
AC_SUBST([AM_CXXFLAGS])
|
||||||
|
AC_SUBST([AM_LDFLAGS])
|
||||||
|
|
||||||
|
AC_CONFIG_FILES([
|
||||||
|
Makefile
|
||||||
|
data/gladeui-1.0.pc
|
||||||
|
data/glade-3.desktop.in
|
||||||
|
data/Makefile
|
||||||
|
data/icons/Makefile
|
||||||
|
data/icons/hicolor/Makefile
|
||||||
|
data/icons/hicolor/16x16/Makefile
|
||||||
|
data/icons/hicolor/16x16/apps/Makefile
|
||||||
|
data/icons/hicolor/22x22/Makefile
|
||||||
|
data/icons/hicolor/22x22/apps/Makefile
|
||||||
|
data/icons/hicolor/24x24/Makefile
|
||||||
|
data/icons/hicolor/24x24/apps/Makefile
|
||||||
|
data/icons/hicolor/32x32/Makefile
|
||||||
|
data/icons/hicolor/32x32/apps/Makefile
|
||||||
|
data/icons/hicolor/48x48/Makefile
|
||||||
|
data/icons/hicolor/48x48/apps/Makefile
|
||||||
|
data/icons/hicolor/scalable/Makefile
|
||||||
|
data/icons/hicolor/scalable/apps/Makefile
|
||||||
|
gladeui/Makefile
|
||||||
|
gladeui/gladeui.rc
|
||||||
|
src/Makefile
|
||||||
|
src/glade-3.rc
|
||||||
|
plugins/Makefile
|
||||||
|
plugins/gtk+/Makefile
|
||||||
|
plugins/gtk+/icons/Makefile
|
||||||
|
plugins/gtk+/icons/16x16/Makefile
|
||||||
|
plugins/gtk+/icons/22x22/Makefile
|
||||||
|
plugins/gnome/Makefile
|
||||||
|
plugins/gnome/icons/Makefile
|
||||||
|
plugins/gnome/icons/16x16/Makefile
|
||||||
|
plugins/gnome/icons/22x22/Makefile
|
||||||
|
plugins/python/Makefile
|
||||||
|
po/Makefile.in
|
||||||
|
doc/Makefile
|
||||||
|
doc/version.xml
|
||||||
|
help/Makefile
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_OUTPUT
|
||||||
|
|
||||||
|
echo "
|
||||||
|
|
||||||
|
Configuration:
|
||||||
|
|
||||||
|
Source code location: ${srcdir}
|
||||||
|
Compiler: ${CC}
|
||||||
|
GTK+ UNIX Print Widgets: ${have_unix_print}
|
||||||
|
GNOME UI Widgets: ${have_gnome}
|
||||||
|
PYTHON Widgets support: ${have_python}
|
||||||
|
|
||||||
|
Build Reference Manual: ${enable_gtk_doc}
|
||||||
|
Build User Manual: ${gdu_cv_have_gdu}
|
||||||
|
"
|
4
data/.gitignore
vendored
@ -1,4 +0,0 @@
|
|||||||
/org.gnome.Glade.desktop
|
|
||||||
/org.gnome.Glade.desktop.in
|
|
||||||
/gladeui-1.0.pc
|
|
||||||
/org.gnome.Glade.appdata.xml
|
|
19
data/Makefile.am
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
SUBDIRS = icons
|
||||||
|
|
||||||
|
desktopdir = $(datadir)/applications
|
||||||
|
desktop_in_files = glade-3.desktop.in.in
|
||||||
|
desktop_DATA = $(desktop_in_files:.desktop.in.in=.desktop)
|
||||||
|
@INTLTOOL_DESKTOP_RULE@
|
||||||
|
|
||||||
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
|
pkgconfig_DATA = gladeui-1.0.pc
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
$(desktop_in_files) \
|
||||||
|
gladeui-1.0.pc.in
|
||||||
|
|
||||||
|
CLEANFILES = \
|
||||||
|
$(desktop_DATA) \
|
||||||
|
$(pkgconfig_DATA)
|
@ -1,18 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<its:rules xmlns:its="http://www.w3.org/2005/11/its"
|
|
||||||
xmlns:gt="https://www.gnu.org/s/gettext/ns/its/extensions/1.0"
|
|
||||||
version="2.0">
|
|
||||||
<its:translateRule selector="/glade-catalog" translate="no"/>
|
|
||||||
|
|
||||||
<its:translateRule selector="/glade-catalog//glade-widget-class/@title" translate="yes"/>
|
|
||||||
<its:translateRule selector="/glade-catalog//glade-widget-class//action/@name" translate="yes"/>
|
|
||||||
<its:translateRule selector="/glade-catalog//glade-widget-class//property/@name" translate="yes"/>
|
|
||||||
<its:translateRule selector="/glade-catalog//glade-widget-class//property//value/@name" translate="yes"/>
|
|
||||||
<its:translateRule selector="/glade-catalog//glade-widget-class//property/tooltip" translate="yes"/>
|
|
||||||
|
|
||||||
<its:translateRule selector="/glade-catalog//glade-widget-group/@title" translate="yes"/>
|
|
||||||
|
|
||||||
<!-- Extracted strings are consumed by the library and are never
|
|
||||||
merged back; we don't want to escape special characters. -->
|
|
||||||
<gt:escapeRule selector="/glade-catalog" escape="no"/>
|
|
||||||
</its:rules>
|
|
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<locatingRules>
|
|
||||||
<locatingRule name="GladeCatalog" pattern="*.xml">
|
|
||||||
<documentRule localName="glade-catalog" target="glade-catalog.its"/>
|
|
||||||
</locatingRule>
|
|
||||||
</locatingRules>
|
|
17
data/glade-3.desktop.in.in
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
_Name=Glade
|
||||||
|
_GenericName=Interface Designer
|
||||||
|
_X-GNOME-FullName=Glade Interface Designer
|
||||||
|
_Comment=Create or open user interface designs for GTK+ applications
|
||||||
|
Exec=glade-3 %F
|
||||||
|
Terminal=false
|
||||||
|
StartupNotify=true
|
||||||
|
Type=Application
|
||||||
|
Icon=glade-3
|
||||||
|
Categories=GNOME;GTK;Development;GUIDesigner;
|
||||||
|
MimeType=application/x-glade;
|
||||||
|
X-GNOME-DocPath=glade/glade.xml
|
||||||
|
X-GNOME-Bugzilla-Bugzilla=GNOME
|
||||||
|
X-GNOME-Bugzilla-Product=glade3
|
||||||
|
X-GNOME-Bugzilla-Version=@VERSION@
|
||||||
|
X-GNOME-Bugzilla-Component=general
|
18
data/gladeui-1.0.pc.in
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
prefix=@prefix@
|
||||||
|
exec_prefix=@exec_prefix@
|
||||||
|
libdir=@libdir@
|
||||||
|
datarootdir=@datarootdir@
|
||||||
|
datadir=@datadir@
|
||||||
|
includedir=@includedir@/libgladeui-1.0
|
||||||
|
catalogdir=@datadir@/@PACKAGE@/catalogs
|
||||||
|
pixmapdir=@datadir@/@PACKAGE@/pixmaps
|
||||||
|
moduledir=@libdir@/@PACKAGE@/modules
|
||||||
|
|
||||||
|
|
||||||
|
Name: Glade
|
||||||
|
Description: Glade interface designer library
|
||||||
|
URL: http://glade.gnome.org
|
||||||
|
Version: @PACKAGE_VERSION@
|
||||||
|
Requires: gtk+-2.0 >= 2.14.0 libxml-2.0 >= 2.4.0
|
||||||
|
Libs: -L${libdir} -lgladeui-1
|
||||||
|
Cflags: -I${includedir}
|
23
data/icons/Makefile.am
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
SUBDIRS = hicolor
|
||||||
|
|
||||||
|
gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
|
||||||
|
|
||||||
|
install-data-hook: update-icon-cache
|
||||||
|
uninstall-hook: update-icon-cache
|
||||||
|
update-icon-cache:
|
||||||
|
@-if test -z "$(DESTDIR)"; then \
|
||||||
|
echo "Updating Gtk icon cache."; \
|
||||||
|
$(gtk_update_icon_cache); \
|
||||||
|
else \
|
||||||
|
echo "*** Icon cache not updated. After (un)install, run this:"; \
|
||||||
|
echo "*** $(gtk_update_icon_cache)"; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
pixmapsdir = $(pkgdatadir)/pixmaps
|
||||||
|
pixmaps_DATA = selector.png devhelp.png plus.png atk.png drag-resize.png
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST = $(pixmaps_DATA) glade-3.ico
|
BIN
data/icons/atk.png
Normal file
After Width: | Height: | Size: 681 B |
Before Width: | Height: | Size: 437 B |
Before Width: | Height: | Size: 671 B |
BIN
data/icons/drag-resize.png
Normal file
After Width: | Height: | Size: 638 B |
Before Width: | Height: | Size: 216 B |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
1
data/icons/hicolor/16x16/Makefile.am
Normal file
@ -0,0 +1 @@
|
|||||||
|
SUBDIRS = apps
|
6
data/icons/hicolor/16x16/apps/Makefile.am
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
appicondir = $(datadir)/icons/hicolor/16x16/apps
|
||||||
|
appicon_DATA = glade-3.png
|
||||||
|
|
||||||
|
EXTRA_DIST = $(appicon_DATA) glade-3.xcf
|
BIN
data/icons/hicolor/16x16/apps/glade-3.png
Normal file
After Width: | Height: | Size: 527 B |
BIN
data/icons/hicolor/16x16/apps/glade-3.xcf
Normal file
1
data/icons/hicolor/22x22/Makefile.am
Normal file
@ -0,0 +1 @@
|
|||||||
|
SUBDIRS = apps
|
6
data/icons/hicolor/22x22/apps/Makefile.am
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
appicondir = $(datadir)/icons/hicolor/22x22/apps
|
||||||
|
appicon_DATA = glade-3.png
|
||||||
|
|
||||||
|
EXTRA_DIST = $(appicon_DATA) glade-3.xcf
|
BIN
data/icons/hicolor/22x22/apps/glade-3.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
data/icons/hicolor/22x22/apps/glade-3.xcf
Normal file
1
data/icons/hicolor/24x24/Makefile.am
Normal file
@ -0,0 +1 @@
|
|||||||
|
SUBDIRS = apps
|
6
data/icons/hicolor/24x24/apps/Makefile.am
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
appicondir = $(datadir)/icons/hicolor/24x24/apps
|
||||||
|
appicon_DATA = glade-3.png
|
||||||
|
|
||||||
|
EXTRA_DIST = $(appicon_DATA)
|
BIN
data/icons/hicolor/24x24/apps/glade-3.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
1
data/icons/hicolor/32x32/Makefile.am
Normal file
@ -0,0 +1 @@
|
|||||||
|
SUBDIRS = apps
|
6
data/icons/hicolor/32x32/apps/Makefile.am
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
appicondir = $(datadir)/icons/hicolor/32x32/apps
|
||||||
|
appicon_DATA = glade-3.png
|
||||||
|
|
||||||
|
EXTRA_DIST = $(appicon_DATA) glade-3.svg
|
BIN
data/icons/hicolor/32x32/apps/glade-3.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
771
data/icons/hicolor/32x32/apps/glade-3.svg
Normal file
@ -0,0 +1,771 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://web.resource.org/cc/"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="32"
|
||||||
|
height="32"
|
||||||
|
id="svg4908"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.44+devel"
|
||||||
|
sodipodi:docname="glade.svg"
|
||||||
|
sodipodi:docbase="/home/andreas/project/application icons/32x32"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||||
|
inkscape:export-filename="/home/andreas/project/application icons/32x32/glade.png"
|
||||||
|
inkscape:export-xdpi="90"
|
||||||
|
inkscape:export-ydpi="90"
|
||||||
|
version="1.0"
|
||||||
|
sodipodi:modified="true">
|
||||||
|
<defs
|
||||||
|
id="defs4910">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient22140">
|
||||||
|
<stop
|
||||||
|
style="stop-color:black;stop-opacity:0;"
|
||||||
|
offset="0"
|
||||||
|
id="stop22142" />
|
||||||
|
<stop
|
||||||
|
id="stop22148"
|
||||||
|
offset="0.5"
|
||||||
|
style="stop-color:black;stop-opacity:1;" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:black;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop22144" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient22140"
|
||||||
|
id="linearGradient23044"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="18.142136"
|
||||||
|
y1="35"
|
||||||
|
x2="18.142136"
|
||||||
|
y2="42.040661" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient22122"
|
||||||
|
id="radialGradient23042"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0,-1.000001,1.142856,0,-89.10259,-31.49999)"
|
||||||
|
cx="7"
|
||||||
|
cy="39.464806"
|
||||||
|
fx="7"
|
||||||
|
fy="39.464806"
|
||||||
|
r="3.5" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient22122">
|
||||||
|
<stop
|
||||||
|
style="stop-color:black;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop22124" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:black;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop22126" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient22122"
|
||||||
|
id="radialGradient23040"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0,-1.000001,1.142856,0,-41.10259,45.50001)"
|
||||||
|
cx="7"
|
||||||
|
cy="39.464806"
|
||||||
|
fx="7"
|
||||||
|
fy="39.464806"
|
||||||
|
r="3.5" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient7025">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#e6ce46;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop7027" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#d6ba1c;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop7029" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7025"
|
||||||
|
id="linearGradient10840"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="translate(53,1.428571)"
|
||||||
|
x1="13.630114"
|
||||||
|
y1="28.5"
|
||||||
|
x2="25.208096"
|
||||||
|
y2="41.180992" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient7780">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#888a85;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop7782" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#888a85;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop7784" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient7752">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#888a85;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop7754" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#888a85;stop-opacity:0"
|
||||||
|
offset="1"
|
||||||
|
id="stop7756" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient7744">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#888a85;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop7746" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#888a85;stop-opacity:0"
|
||||||
|
offset="1"
|
||||||
|
id="stop7748" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient7736">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#c1c7bc;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop7738" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#e8eae6;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop7740" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient7728">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#d3d7cf;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop7730" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#eeeeec;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop7732" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient7720">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#555753;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop7722" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#555753;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop7724" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient7686">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#555753;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop7688" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#555753;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop7690" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient6997">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#babdb6;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop6999" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#d7d9d5;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop7001" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient6905">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop6907" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop6909" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient4790">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4792" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop4794" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient4790"
|
||||||
|
id="radialGradient4796"
|
||||||
|
cx="37.030354"
|
||||||
|
cy="12.98915"
|
||||||
|
fx="37.030354"
|
||||||
|
fy="12.98915"
|
||||||
|
r="4.2929163"
|
||||||
|
gradientTransform="matrix(-1.5795056,0,0,0.9498629,62.524548,-3.1435399)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient269">
|
||||||
|
<stop
|
||||||
|
id="stop270"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop271"
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#8a8a8a;stop-opacity:1;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient259">
|
||||||
|
<stop
|
||||||
|
id="stop260"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#729fcf;stop-opacity:1" />
|
||||||
|
<stop
|
||||||
|
id="stop261"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#204a87;stop-opacity:1.0000000" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient2251">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop2253" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop2255" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2251"
|
||||||
|
id="linearGradient8166"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(2.2961811e-2,-0.6857104,-0.7001194,-2.2489236e-2,30.580101,31.011455)"
|
||||||
|
x1="32.862488"
|
||||||
|
y1="36.028366"
|
||||||
|
x2="34.170048"
|
||||||
|
y2="38.070381" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6905"
|
||||||
|
id="linearGradient6959"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="translate(11.30501,19.746952)"
|
||||||
|
x1="-15.909902"
|
||||||
|
y1="16.003418"
|
||||||
|
x2="-23"
|
||||||
|
y2="16.091806" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6905"
|
||||||
|
id="linearGradient6962"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="translate(-35,-4.5078057)"
|
||||||
|
x1="-15.909902"
|
||||||
|
y1="16.003418"
|
||||||
|
x2="-23"
|
||||||
|
y2="16.091806" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6997"
|
||||||
|
id="linearGradient7003"
|
||||||
|
x1="-17.235727"
|
||||||
|
y1="17.947962"
|
||||||
|
x2="-17.324116"
|
||||||
|
y2="32.53204"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7686"
|
||||||
|
id="linearGradient7692"
|
||||||
|
x1="35.47406"
|
||||||
|
y1="36.912945"
|
||||||
|
x2="35.47406"
|
||||||
|
y2="39.351414"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.7494886,0,0,0.7313296,-0.130915,-3.1911008)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7720"
|
||||||
|
id="linearGradient7726"
|
||||||
|
x1="-8.28125"
|
||||||
|
y1="12.475584"
|
||||||
|
x2="-8.28125"
|
||||||
|
y2="6.2509766"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.2909093,0,0,0.1748634,-24.09091,4.1256829)" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7728"
|
||||||
|
id="radialGradient7734"
|
||||||
|
cx="8.3376141"
|
||||||
|
cy="40.582108"
|
||||||
|
fx="8.3376141"
|
||||||
|
fy="40.582108"
|
||||||
|
r="20.500002"
|
||||||
|
gradientTransform="matrix(-0.7220896,5.1346809e-8,8.5653087e-7,0.6522647,32.925823,-0.8066207)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7736"
|
||||||
|
id="linearGradient7742"
|
||||||
|
x1="38.944931"
|
||||||
|
y1="12.11484"
|
||||||
|
x2="37.306168"
|
||||||
|
y2="13.392819"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(-0.6904882,0,0,0.7398648,31.536239,-3.0489861)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7744"
|
||||||
|
id="linearGradient7750"
|
||||||
|
x1="18.384777"
|
||||||
|
y1="22"
|
||||||
|
x2="23.292892"
|
||||||
|
y2="22"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.8000001,0,0,0.5,-0.2000016,2.4999997)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7752"
|
||||||
|
id="linearGradient7758"
|
||||||
|
x1="15.114408"
|
||||||
|
y1="27"
|
||||||
|
x2="20.019962"
|
||||||
|
y2="27"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.857143,0,0,0.5,-1.0000023,3.9999994)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7780"
|
||||||
|
id="linearGradient7786"
|
||||||
|
x1="20.875"
|
||||||
|
y1="14.249998"
|
||||||
|
x2="20.875"
|
||||||
|
y2="18.437498"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.7410819,0,0,0.6666666,6.21347e-2,-2.0000004)" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient22122"
|
||||||
|
id="radialGradient5157"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0,-1.000001,1.142856,0,-41.10259,45.50001)"
|
||||||
|
cx="7"
|
||||||
|
cy="39.464806"
|
||||||
|
fx="7"
|
||||||
|
fy="39.464806"
|
||||||
|
r="3.5" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient22122"
|
||||||
|
id="radialGradient5159"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0,-1.000001,1.142856,0,-89.10259,-31.49999)"
|
||||||
|
cx="7"
|
||||||
|
cy="39.464806"
|
||||||
|
fx="7"
|
||||||
|
fy="39.464806"
|
||||||
|
r="3.5" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient22140"
|
||||||
|
id="linearGradient5161"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="18.142136"
|
||||||
|
y1="35"
|
||||||
|
x2="18.142136"
|
||||||
|
y2="42.040661" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient22122"
|
||||||
|
id="radialGradient6150"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0,-1.000001,1.142856,0,-41.10259,45.50001)"
|
||||||
|
cx="7"
|
||||||
|
cy="39.464806"
|
||||||
|
fx="7"
|
||||||
|
fy="39.464806"
|
||||||
|
r="3.5" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient22122"
|
||||||
|
id="radialGradient6152"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0,-1.000001,1.142856,0,-89.10259,-31.49999)"
|
||||||
|
cx="7"
|
||||||
|
cy="39.464806"
|
||||||
|
fx="7"
|
||||||
|
fy="39.464806"
|
||||||
|
r="3.5" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient22140"
|
||||||
|
id="linearGradient6154"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="18.142136"
|
||||||
|
y1="35"
|
||||||
|
x2="18.142136"
|
||||||
|
y2="42.040661" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7025"
|
||||||
|
id="linearGradient6156"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="translate(53,1.428571)"
|
||||||
|
x1="13.630114"
|
||||||
|
y1="28.5"
|
||||||
|
x2="25.208096"
|
||||||
|
y2="41.180992" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="15.999999"
|
||||||
|
inkscape:cx="33.76609"
|
||||||
|
inkscape:cy="20.586245"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:grid-bbox="true"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:window-width="1674"
|
||||||
|
inkscape:window-height="968"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="26"
|
||||||
|
showguides="true"
|
||||||
|
inkscape:guide-bbox="true"
|
||||||
|
width="32px"
|
||||||
|
height="32px" />
|
||||||
|
<metadata
|
||||||
|
id="metadata4913">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
id="layer1"
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer">
|
||||||
|
<g
|
||||||
|
id="g5149"
|
||||||
|
style="opacity:0.3"
|
||||||
|
transform="matrix(-0.6666667,0,0,0.5714286,32,6)">
|
||||||
|
<rect
|
||||||
|
y="35"
|
||||||
|
x="0"
|
||||||
|
height="7"
|
||||||
|
width="4"
|
||||||
|
id="rect5151"
|
||||||
|
style="opacity:1;fill:url(#radialGradient5157);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
transform="scale(-1,-1)"
|
||||||
|
y="-42"
|
||||||
|
x="-48"
|
||||||
|
height="7"
|
||||||
|
width="4"
|
||||||
|
id="rect5153"
|
||||||
|
style="opacity:1;fill:url(#radialGradient5159);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
y="35"
|
||||||
|
x="4"
|
||||||
|
height="7"
|
||||||
|
width="40"
|
||||||
|
id="rect5155"
|
||||||
|
style="opacity:1;fill:url(#linearGradient5161);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
style="fill:url(#radialGradient7734);fill-opacity:1;stroke:#888a85;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
d="M 29.294093,2.4999998 L 8.7293434,2.4999998 C 8.6152711,2.4999998 1.5,9.7905242 1.5,9.9074054 L 1.5,28.289021 C 1.5,28.405903 1.5918342,28.499999 1.7059065,28.499999 L 29.294093,28.499999 C 29.408166,28.499999 29.5,28.405903 29.5,28.289021 L 29.5,2.7109774 C 29.5,2.5940958 29.565495,2.4084486 29.294093,2.4999998 z "
|
||||||
|
id="rect4916"
|
||||||
|
sodipodi:nodetypes="ccccccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:url(#linearGradient7692);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 26.500001,26.500001 L 26.500001,7.5000002 L 5.5000002,7.5000002 L 5.5000002,23.548695 L 18.151658,23.548695"
|
||||||
|
id="path4974"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
<path
|
||||||
|
style="opacity:0.64130435;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
d="M 2.4999999,9.5909104 L 8.5838808,3.5000002 L 28.437499,3.5000002 L 28.437499,27.500002 L 2.4999999,27.500002 L 2.4999999,9.5909104 z "
|
||||||
|
id="rect5887"
|
||||||
|
sodipodi:nodetypes="cccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#555753;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 4.5377704,10.5 L 27.978076,10.5"
|
||||||
|
id="path4976" />
|
||||||
|
<path
|
||||||
|
inkscape:r_cy="true"
|
||||||
|
inkscape:r_cx="true"
|
||||||
|
style="opacity:0.35714285;color:#000000;fill:url(#radialGradient4796);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
|
||||||
|
d="M 1.3527051,9.6855718 C 2.0121209,8.6892491 6.877972,6.9254979 9.4107408,6.3339567 C 9.2572783,7.4977242 9.5218979,11.008446 9.5218979,11.008446 C 7.6546325,9.9911316 2.0595082,9.5656294 1.3527051,9.6855718 z "
|
||||||
|
id="path5348"
|
||||||
|
sodipodi:nodetypes="cccc" />
|
||||||
|
<rect
|
||||||
|
style="opacity:0.64130435;fill:url(#linearGradient7786);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect7778"
|
||||||
|
width="20.009211"
|
||||||
|
height="2"
|
||||||
|
x="5.9907894"
|
||||||
|
y="8" />
|
||||||
|
<path
|
||||||
|
style="opacity:1;color:#000000;fill:url(#linearGradient7742);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
|
||||||
|
d="M 1.5000141,9.9760969 C 1.4909238,8.9290832 5.8863647,2.4241096 8.5672434,2.5006702 C 7.8953721,2.673055 7.3586439,7.0641785 8.3182291,9.1450482 C 6.4193865,9.1450482 2.1655515,8.6012994 1.5000141,9.9760969 z "
|
||||||
|
id="path2210"
|
||||||
|
sodipodi:nodetypes="cccc"
|
||||||
|
inkscape:r_cx="true"
|
||||||
|
inkscape:r_cy="true" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cccc"
|
||||||
|
id="path2247"
|
||||||
|
d="M 2.6785155,8.0439173 C 3.1887299,7.1200246 5.5915523,4.5658067 6.9383154,3.7171098 C 6.7709389,4.6953545 6.5621107,6.2435454 6.9933638,8.0015394 C 6.9933638,8.0015394 3.2253952,7.9326947 2.6785155,8.0439173 z "
|
||||||
|
style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient8166);stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
|
||||||
|
inkscape:r_cx="true"
|
||||||
|
inkscape:r_cy="true" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="opacity:0.78260869;fill:none;fill-opacity:1;stroke:#555753;stroke-width:2.43027735;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="path4978"
|
||||||
|
sodipodi:cx="11.136932"
|
||||||
|
sodipodi:cy="23.604815"
|
||||||
|
sodipodi:rx="2.3864856"
|
||||||
|
sodipodi:ry="2.4748738"
|
||||||
|
d="M 13.523418 23.604815 A 2.3864856 2.4748738 0 1 1 8.7504468,23.604815 A 2.3864856 2.4748738 0 1 1 13.523418 23.604815 z"
|
||||||
|
transform="matrix(0.4190262,0,0,0.4040609,3.833333,3.9622167)" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="opacity:0.78260869;fill:none;fill-opacity:1;stroke:#555753;stroke-width:2.43027806;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="path5951"
|
||||||
|
sodipodi:cx="11.136932"
|
||||||
|
sodipodi:cy="23.604815"
|
||||||
|
sodipodi:rx="2.3864856"
|
||||||
|
sodipodi:ry="2.4748738"
|
||||||
|
d="M 13.523418 23.604815 A 2.3864856 2.4748738 0 1 1 8.7504468,23.604815 A 2.3864856 2.4748738 0 1 1 13.523418 23.604815 z"
|
||||||
|
transform="matrix(0.4190262,0,0,0.404061,3.8333336,7.9622149)" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#linearGradient7750);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect5955"
|
||||||
|
width="8.000001"
|
||||||
|
height="1"
|
||||||
|
x="11"
|
||||||
|
y="13"
|
||||||
|
rx="0"
|
||||||
|
ry="0" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#linearGradient7758);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect5957"
|
||||||
|
width="6"
|
||||||
|
height="1"
|
||||||
|
x="11"
|
||||||
|
y="17"
|
||||||
|
rx="0"
|
||||||
|
ry="0" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:#555753;fill-opacity:1;stroke:none;stroke-width:1.00000036;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect5963"
|
||||||
|
width="1"
|
||||||
|
height="1"
|
||||||
|
x="-8"
|
||||||
|
y="-28"
|
||||||
|
transform="matrix(0,-1,-1,0,0,0)" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#555753;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
|
||||||
|
d="M 19.36965,19.5 L 13.5,19.5 L 13.5,21.5 L 20.5,21.5 L 20.5,20.680407"
|
||||||
|
id="path5965"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#linearGradient7726);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect7718"
|
||||||
|
width="1.0000006"
|
||||||
|
height="2"
|
||||||
|
x="-27"
|
||||||
|
y="5"
|
||||||
|
transform="scale(-1,1)" />
|
||||||
|
<g
|
||||||
|
id="g22150"
|
||||||
|
style="opacity:0.3"
|
||||||
|
transform="matrix(-0.916667,0,0,0.714282,48,18.00012)">
|
||||||
|
<rect
|
||||||
|
y="35"
|
||||||
|
x="0"
|
||||||
|
height="7"
|
||||||
|
width="4"
|
||||||
|
id="rect22120"
|
||||||
|
style="opacity:1;fill:url(#radialGradient23040);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
transform="scale(-1,-1)"
|
||||||
|
y="-42"
|
||||||
|
x="-48"
|
||||||
|
height="7"
|
||||||
|
width="4"
|
||||||
|
id="rect22134"
|
||||||
|
style="opacity:1;fill:url(#radialGradient23042);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
y="35"
|
||||||
|
x="4"
|
||||||
|
height="7"
|
||||||
|
width="40"
|
||||||
|
id="rect22138"
|
||||||
|
style="opacity:1;fill:url(#linearGradient23044);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g10824"
|
||||||
|
transform="matrix(-1,0,0,1,152,-1.9285711)">
|
||||||
|
<path
|
||||||
|
id="path4319"
|
||||||
|
d="M 57.5,14.928571 L 57.5,44.928571 L 96.5,44.928571 L 57.5,14.928571 z M 63.5,27.928571 L 78.5,38.928571 L 63.5,38.928571 L 63.5,27.928571 z "
|
||||||
|
style="fill:url(#linearGradient10840);fill-opacity:1;fill-rule:evenodd;stroke:#a38503;stroke-width:1.00000024px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
id="path4326"
|
||||||
|
d="M 61.5,44.928571 L 61.5,41.928571"
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a38503;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
id="path4328"
|
||||||
|
d="M 67.5,44.928571 L 67.5,41.928571"
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a38503;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
id="path4330"
|
||||||
|
d="M 73.5,44.928571 L 73.5,41.964285"
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a38503;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
id="path4332"
|
||||||
|
d="M 79.5,44.928571 L 79.5,41.928571"
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a38503;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
id="path4334"
|
||||||
|
d="M 85.5,44.928571 L 85.5,41.928571"
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a38503;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
id="path6126"
|
||||||
|
d="M 58.500002,16.928575 L 58.500002,43.928586 L 93.500014,43.928586 L 58.500002,16.928575 z "
|
||||||
|
style="opacity:0.4;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
style="opacity:0.4;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 89.455805,39.509552 L 89.5,25.5 L 70.415961,39.530368 L 89.455805,39.509552 z "
|
||||||
|
id="path12221"
|
||||||
|
sodipodi:nodetypes="cccc" />
|
||||||
|
<g
|
||||||
|
id="g6123"
|
||||||
|
style="opacity:0.3"
|
||||||
|
transform="matrix(-0.642788,0,0,0.499897,32,10.004326)">
|
||||||
|
<rect
|
||||||
|
y="35"
|
||||||
|
x="0"
|
||||||
|
height="7"
|
||||||
|
width="4"
|
||||||
|
id="rect6125"
|
||||||
|
style="opacity:1;fill:url(#radialGradient6150);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
transform="scale(-1,-1)"
|
||||||
|
y="-42"
|
||||||
|
x="-48"
|
||||||
|
height="7"
|
||||||
|
width="4"
|
||||||
|
id="rect6127"
|
||||||
|
style="opacity:1;fill:url(#radialGradient6152);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
y="35"
|
||||||
|
x="4"
|
||||||
|
height="7"
|
||||||
|
width="40"
|
||||||
|
id="rect6129"
|
||||||
|
style="opacity:1;fill:url(#linearGradient6154);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g6131"
|
||||||
|
transform="matrix(-0.712014,0,0,0.705285,72.47014,-2.2704347)">
|
||||||
|
<path
|
||||||
|
id="path6133"
|
||||||
|
d="M 57.5,14.928571 L 57.5,44.928571 L 96.5,44.928571 L 57.5,14.928571 z M 63.236662,27.131021 L 77.534429,37.865171 L 63.148883,37.953788 L 63.236662,27.131021 z "
|
||||||
|
style="fill:url(#linearGradient6156);fill-opacity:1;fill-rule:evenodd;stroke:#a38503;stroke-width:1.4111501px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
sodipodi:nodetypes="cccccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a38503;stroke-width:1.41114986px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 88.396719,44.928571 L 88.396719,41.928571"
|
||||||
|
id="path1912"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
id="path6136"
|
||||||
|
d="M 61.675558,44.928571 L 61.675558,41.928571"
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a38503;stroke-width:1.41114986px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
id="path6138"
|
||||||
|
d="M 67.324442,44.928571 L 67.324442,41.928571"
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a38503;stroke-width:1.41114986px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
id="path6140"
|
||||||
|
d="M 72.973326,44.928571 L 72.973326,41.964285"
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a38503;stroke-width:1.41114986px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
id="path6142"
|
||||||
|
d="M 78.534431,44.928571 L 78.534431,41.928571"
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a38503;stroke-width:1.41114986px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
id="path6144"
|
||||||
|
d="M 82.778851,44.928571 L 82.778851,41.928571"
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a38503;stroke-width:1.41114986px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
id="path6146"
|
||||||
|
d="M 58.893688,17.726124 L 58.893688,43.628368 L 92.40573,43.628368 L 58.893688,17.726124 z "
|
||||||
|
style="opacity:0.4;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.41115046px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
sodipodi:nodetypes="cccc" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
style="opacity:0.4;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.9999997px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 28.530931,25.46829 L 28.499421,14.788571 L 14.24226,25.482858 L 28.530931,25.46829 z "
|
||||||
|
id="path6148"
|
||||||
|
sodipodi:nodetypes="cccc" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 30 KiB |
1
data/icons/hicolor/48x48/Makefile.am
Normal file
@ -0,0 +1 @@
|
|||||||
|
SUBDIRS = apps
|
6
data/icons/hicolor/48x48/apps/Makefile.am
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
appicondir = $(datadir)/icons/hicolor/48x48/apps
|
||||||
|
appicon_DATA = glade-3.png
|
||||||
|
|
||||||
|
EXTRA_DIST = $(appicon_DATA)
|
BIN
data/icons/hicolor/48x48/apps/glade-3.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
1
data/icons/hicolor/Makefile.am
Normal file
@ -0,0 +1 @@
|
|||||||
|
SUBDIRS = 16x16 22x22 24x24 32x32 48x48 scalable
|
1
data/icons/hicolor/scalable/Makefile.am
Normal file
@ -0,0 +1 @@
|
|||||||
|
SUBDIRS = apps
|
6
data/icons/hicolor/scalable/apps/Makefile.am
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
appicondir = $(datadir)/icons/hicolor/scalable/apps
|
||||||
|
appicon_DATA = glade-3.svg
|
||||||
|
|
||||||
|
EXTRA_DIST = $(appicon_DATA)
|
648
data/icons/hicolor/scalable/apps/glade-3.svg
Normal file
@ -0,0 +1,648 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://web.resource.org/cc/"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="48px"
|
||||||
|
height="48px"
|
||||||
|
id="svg4908"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.44+devel"
|
||||||
|
sodipodi:docname="glade5.svg"
|
||||||
|
sodipodi:docbase="/home/andreas/project/application icons/48x48"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||||
|
inkscape:export-filename="/home/andreas/project/application icons/48x48/glade5.png"
|
||||||
|
inkscape:export-xdpi="90"
|
||||||
|
inkscape:export-ydpi="90"
|
||||||
|
sodipodi:modified="true">
|
||||||
|
<defs
|
||||||
|
id="defs4910">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient22140">
|
||||||
|
<stop
|
||||||
|
style="stop-color:black;stop-opacity:0;"
|
||||||
|
offset="0"
|
||||||
|
id="stop22142" />
|
||||||
|
<stop
|
||||||
|
id="stop22148"
|
||||||
|
offset="0.5"
|
||||||
|
style="stop-color:black;stop-opacity:1;" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:black;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop22144" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient22140"
|
||||||
|
id="linearGradient23044"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="18.142136"
|
||||||
|
y1="35"
|
||||||
|
x2="18.142136"
|
||||||
|
y2="42.040661" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient22122"
|
||||||
|
id="radialGradient23042"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0,-1.000001,1.142856,0,-89.10259,-31.49999)"
|
||||||
|
cx="7"
|
||||||
|
cy="39.464806"
|
||||||
|
fx="7"
|
||||||
|
fy="39.464806"
|
||||||
|
r="3.5" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient22122">
|
||||||
|
<stop
|
||||||
|
style="stop-color:black;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop22124" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:black;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop22126" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient22122"
|
||||||
|
id="radialGradient23040"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0,-1.000001,1.142856,0,-41.10259,45.50001)"
|
||||||
|
cx="7"
|
||||||
|
cy="39.464806"
|
||||||
|
fx="7"
|
||||||
|
fy="39.464806"
|
||||||
|
r="3.5" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient7025">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#e6ce46;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop7027" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#d6ba1c;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop7029" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7025"
|
||||||
|
id="linearGradient10840"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="translate(53,1.428571)"
|
||||||
|
x1="13.630114"
|
||||||
|
y1="28.5"
|
||||||
|
x2="25.208096"
|
||||||
|
y2="41.180992" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient7780">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#888a85;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop7782" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#888a85;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop7784" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient7752">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#888a85;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop7754" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#888a85;stop-opacity:0"
|
||||||
|
offset="1"
|
||||||
|
id="stop7756" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient7744">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#888a85;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop7746" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#888a85;stop-opacity:0"
|
||||||
|
offset="1"
|
||||||
|
id="stop7748" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient7736">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#c1c7bc;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop7738" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#e8eae6;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop7740" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient7728">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#d3d7cf;stop-opacity:1"
|
||||||
|
offset="0"
|
||||||
|
id="stop7730" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#eeeeec;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop7732" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient7720">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#555753;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop7722" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#555753;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop7724" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient7686">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#555753;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop7688" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#555753;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop7690" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient6997">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#babdb6;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop6999" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#d7d9d5;stop-opacity:1"
|
||||||
|
offset="1"
|
||||||
|
id="stop7001" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient6905">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop6907" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop6909" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient4790">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4792" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop4794" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient4790"
|
||||||
|
id="radialGradient4796"
|
||||||
|
cx="37.030354"
|
||||||
|
cy="12.98915"
|
||||||
|
fx="37.030354"
|
||||||
|
fy="12.98915"
|
||||||
|
r="4.2929163"
|
||||||
|
gradientTransform="matrix(-2.1313511,0,0,1.283833,86.543976,-0.1277984)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient269">
|
||||||
|
<stop
|
||||||
|
id="stop270"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#a3a3a3;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop271"
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#8a8a8a;stop-opacity:1;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient259">
|
||||||
|
<stop
|
||||||
|
id="stop260"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#729fcf;stop-opacity:1" />
|
||||||
|
<stop
|
||||||
|
id="stop261"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#204a87;stop-opacity:1.0000000" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient2251">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop2253" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop2255" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2251"
|
||||||
|
id="linearGradient8166"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(3.277938e-2,-1.0071302,-0.999463,-3.303084e-2,45.620229,49.233341)"
|
||||||
|
x1="32.862488"
|
||||||
|
y1="36.028366"
|
||||||
|
x2="34.170048"
|
||||||
|
y2="38.070381" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6905"
|
||||||
|
id="linearGradient6959"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="translate(11.30501,19.746952)"
|
||||||
|
x1="-15.909902"
|
||||||
|
y1="16.003418"
|
||||||
|
x2="-23"
|
||||||
|
y2="16.091806" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6905"
|
||||||
|
id="linearGradient6962"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="translate(-35,-4.5078057)"
|
||||||
|
x1="-15.909902"
|
||||||
|
y1="16.003418"
|
||||||
|
x2="-23"
|
||||||
|
y2="16.091806" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6997"
|
||||||
|
id="linearGradient7003"
|
||||||
|
x1="-17.235727"
|
||||||
|
y1="17.947962"
|
||||||
|
x2="-17.324116"
|
||||||
|
y2="32.53204"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7686"
|
||||||
|
id="linearGradient7692"
|
||||||
|
x1="35.47406"
|
||||||
|
y1="36.912945"
|
||||||
|
x2="35.47406"
|
||||||
|
y2="39.351414"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,1.0045696,0,-0.1855194)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7720"
|
||||||
|
id="linearGradient7726"
|
||||||
|
x1="-8.28125"
|
||||||
|
y1="12.475584"
|
||||||
|
x2="-8.28125"
|
||||||
|
y2="6.2509766"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.2909091,0,0,0.3497268,-33.090909,9.251366)" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7728"
|
||||||
|
id="radialGradient7734"
|
||||||
|
cx="8.3376141"
|
||||||
|
cy="40.582108"
|
||||||
|
fx="8.3376141"
|
||||||
|
fy="40.582108"
|
||||||
|
r="20.500002"
|
||||||
|
gradientTransform="matrix(-0.9959857,6.9120707e-8,1.181422e-6,0.8780487,46.845968,3.0487798)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7736"
|
||||||
|
id="linearGradient7742"
|
||||||
|
x1="38.944931"
|
||||||
|
y1="12.11484"
|
||||||
|
x2="37.306168"
|
||||||
|
y2="13.392819"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(-1,0,0,1,47.000004,0)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7744"
|
||||||
|
id="linearGradient7750"
|
||||||
|
x1="18.384777"
|
||||||
|
y1="22"
|
||||||
|
x2="23.292892"
|
||||||
|
y2="22"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7752"
|
||||||
|
id="linearGradient7758"
|
||||||
|
x1="15.114408"
|
||||||
|
y1="27"
|
||||||
|
x2="20.019962"
|
||||||
|
y2="27"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient7780"
|
||||||
|
id="linearGradient7786"
|
||||||
|
x1="20.875"
|
||||||
|
y1="14.249998"
|
||||||
|
x2="20.875"
|
||||||
|
y2="18.437498"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient22122"
|
||||||
|
id="radialGradient5157"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0,-1.000001,1.142856,0,-41.10259,45.50001)"
|
||||||
|
cx="7"
|
||||||
|
cy="39.464806"
|
||||||
|
fx="7"
|
||||||
|
fy="39.464806"
|
||||||
|
r="3.5" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient22122"
|
||||||
|
id="radialGradient5159"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0,-1.000001,1.142856,0,-89.10259,-31.49999)"
|
||||||
|
cx="7"
|
||||||
|
cy="39.464806"
|
||||||
|
fx="7"
|
||||||
|
fy="39.464806"
|
||||||
|
r="3.5" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient22140"
|
||||||
|
id="linearGradient5161"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="18.142136"
|
||||||
|
y1="35"
|
||||||
|
x2="18.142136"
|
||||||
|
y2="42.040661" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="15.999999"
|
||||||
|
inkscape:cx="27.406385"
|
||||||
|
inkscape:cy="33.127804"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="true"
|
||||||
|
inkscape:grid-bbox="true"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:window-width="1674"
|
||||||
|
inkscape:window-height="968"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="26"
|
||||||
|
showguides="true"
|
||||||
|
inkscape:guide-bbox="true" />
|
||||||
|
<metadata
|
||||||
|
id="metadata4913">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
id="layer1"
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer">
|
||||||
|
<g
|
||||||
|
id="g5149"
|
||||||
|
style="opacity:0.3"
|
||||||
|
transform="matrix(-0.9583333,0,0,0.714282,47,15.000156)">
|
||||||
|
<rect
|
||||||
|
y="35"
|
||||||
|
x="0"
|
||||||
|
height="7"
|
||||||
|
width="4"
|
||||||
|
id="rect5151"
|
||||||
|
style="opacity:1;fill:url(#radialGradient5157);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
transform="scale(-1,-1)"
|
||||||
|
y="-42"
|
||||||
|
x="-48"
|
||||||
|
height="7"
|
||||||
|
width="4"
|
||||||
|
id="rect5153"
|
||||||
|
style="opacity:1;fill:url(#radialGradient5159);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
y="35"
|
||||||
|
x="4"
|
||||||
|
height="7"
|
||||||
|
width="40"
|
||||||
|
id="rect5155"
|
||||||
|
style="opacity:1;fill:url(#linearGradient5161);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
style="fill:url(#radialGradient7734);fill-opacity:1;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
d="M 43.215995,7.5 L 13.471509,7.5 C 13.314168,7.5 3.5,17.314168 3.5,17.471508 L 3.5,42.215992 C 3.5,42.373332 3.626668,42.5 3.784009,42.5 L 43.215995,42.5 C 43.373336,42.5 43.500004,42.373332 43.500004,42.215992 L 43.500004,7.7840084 C 43.500004,7.6266678 43.373336,7.5 43.215995,7.5 z "
|
||||||
|
id="rect4916"
|
||||||
|
sodipodi:nodetypes="ccccccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:url(#linearGradient7692);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 35.532117,40.598798 L 35.532117,14.5 L 7.5130099,14.5 L 7.5130099,36.544822 L 24.393398,36.544822"
|
||||||
|
id="path4974"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
<path
|
||||||
|
style="opacity:0.64130435;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
d="M 4.5,16.875001 L 13.062499,8.5 L 42.5,8.5 L 42.5,41.5 L 4.5,41.5 L 4.5,16.875001 z "
|
||||||
|
id="rect5887"
|
||||||
|
sodipodi:nodetypes="cccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#555753;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 6.0648146,18.566679 L 35.435184,18.566679"
|
||||||
|
id="path4976" />
|
||||||
|
<path
|
||||||
|
inkscape:r_cy="true"
|
||||||
|
inkscape:r_cx="true"
|
||||||
|
style="opacity:0.35714285;color:#000000;fill:url(#radialGradient4796);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
|
||||||
|
d="M 4,17.212006 C 4.8898017,15.865378 11.455677,13.481495 14.873341,12.681969 C 14.666262,14.254915 15.023334,19 15.023334,19 C 12.503686,17.625 4.9537451,17.049892 4,17.212006 z "
|
||||||
|
id="path5348"
|
||||||
|
sodipodi:nodetypes="cccc" />
|
||||||
|
<rect
|
||||||
|
style="opacity:0.64130435;fill:url(#linearGradient7786);fill-opacity:1.0;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect7778"
|
||||||
|
width="27"
|
||||||
|
height="3"
|
||||||
|
x="8"
|
||||||
|
y="15" />
|
||||||
|
<path
|
||||||
|
style="opacity:1;color:#000000;fill:url(#linearGradient7742);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
|
||||||
|
d="M 3.500024,17.60468 C 3.486859,16.189538 9.852559,7.3974268 13.735143,7.500906 C 12.762105,7.733901 11.984788,13.668936 13.374508,16.481436 C 10.624508,16.481436 4.463889,15.746506 3.500024,17.60468 z "
|
||||||
|
id="path2210"
|
||||||
|
sodipodi:nodetypes="cccc"
|
||||||
|
inkscape:r_cx="true"
|
||||||
|
inkscape:r_cy="true" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cccc"
|
||||||
|
id="path2247"
|
||||||
|
d="M 5.78902,15.499999 C 6.517382,14.143041 9.947557,10.391559 11.870143,9.1450438 C 11.631203,10.581831 11.333088,12.855721 11.948728,15.437757 C 11.948728,15.437757 6.569724,15.336642 5.78902,15.499999 z "
|
||||||
|
style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient8166);stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
|
||||||
|
inkscape:r_cx="true"
|
||||||
|
inkscape:r_cy="true" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="opacity:0.7826087;fill:none;fill-opacity:1;stroke:#555753;stroke-width:1.62018538;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="path4978"
|
||||||
|
sodipodi:cx="11.136932"
|
||||||
|
sodipodi:cy="23.604815"
|
||||||
|
sodipodi:rx="2.3864856"
|
||||||
|
sodipodi:ry="2.4748738"
|
||||||
|
d="M 13.523418 23.604815 A 2.3864856 2.4748738 0 1 1 8.7504468,23.604815 A 2.3864856 2.4748738 0 1 1 13.523418 23.604815 z"
|
||||||
|
transform="matrix(0.6285393,0,0,0.6060913,3.9999997,7.6933267)" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="opacity:0.7826087;fill:none;fill-opacity:1;stroke:#555753;stroke-width:1.62018538;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="path5951"
|
||||||
|
sodipodi:cx="11.136932"
|
||||||
|
sodipodi:cy="23.604815"
|
||||||
|
sodipodi:rx="2.3864856"
|
||||||
|
sodipodi:ry="2.4748738"
|
||||||
|
d="M 13.523418 23.604815 A 2.3864856 2.4748738 0 1 1 8.7504468,23.604815 A 2.3864856 2.4748738 0 1 1 13.523418 23.604815 z"
|
||||||
|
transform="matrix(0.6285393,0,0,0.6060915,4.0000003,12.693323)" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#linearGradient7750);fill-opacity:1.0;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect5955"
|
||||||
|
width="10"
|
||||||
|
height="2"
|
||||||
|
x="14"
|
||||||
|
y="21"
|
||||||
|
rx="0"
|
||||||
|
ry="0" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#linearGradient7758);fill-opacity:1.0;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect5957"
|
||||||
|
width="7"
|
||||||
|
height="2"
|
||||||
|
x="14"
|
||||||
|
y="26"
|
||||||
|
rx="0"
|
||||||
|
ry="0" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:#555753;fill-opacity:1;stroke:#555753;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect5963"
|
||||||
|
width="0.15951318"
|
||||||
|
height="3"
|
||||||
|
x="-14.659513"
|
||||||
|
y="-38.5"
|
||||||
|
transform="matrix(0,-1,-1,0,0,0)" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-rule:evenodd;stroke:#555753;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
|
||||||
|
d="M 23.906407,31.559768 L 15.5,31.559768 L 15.5,34.500001 L 25.525275,34.500001 L 25.525275,33.295103"
|
||||||
|
id="path5965"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:url(#linearGradient7726);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect7718"
|
||||||
|
width="1"
|
||||||
|
height="4"
|
||||||
|
x="-36"
|
||||||
|
y="11"
|
||||||
|
transform="scale(-1,1)" />
|
||||||
|
<g
|
||||||
|
id="g22150"
|
||||||
|
style="opacity:0.3"
|
||||||
|
transform="matrix(-0.916667,0,0,0.714282,48,18.00012)">
|
||||||
|
<rect
|
||||||
|
y="35"
|
||||||
|
x="0"
|
||||||
|
height="7"
|
||||||
|
width="4"
|
||||||
|
id="rect22120"
|
||||||
|
style="opacity:1;fill:url(#radialGradient23040);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
transform="scale(-1,-1)"
|
||||||
|
y="-42"
|
||||||
|
x="-48"
|
||||||
|
height="7"
|
||||||
|
width="4"
|
||||||
|
id="rect22134"
|
||||||
|
style="opacity:1;fill:url(#radialGradient23042);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
|
||||||
|
<rect
|
||||||
|
y="35"
|
||||||
|
x="4"
|
||||||
|
height="7"
|
||||||
|
width="40"
|
||||||
|
id="rect22138"
|
||||||
|
style="opacity:1;fill:url(#linearGradient23044);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g10824"
|
||||||
|
transform="matrix(-1,0,0,1,103,0.5714291)">
|
||||||
|
<path
|
||||||
|
id="path4319"
|
||||||
|
d="M 57.5,14.928571 L 57.5,44.928571 L 96.5,44.928571 L 57.5,14.928571 z M 63.5,27.928571 L 78.5,38.928571 L 63.5,38.928571 L 63.5,27.928571 z "
|
||||||
|
style="fill:url(#linearGradient10840);fill-opacity:1;fill-rule:evenodd;stroke:#a38503;stroke-width:1.00000024px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
id="path4326"
|
||||||
|
d="M 61.5,44.928571 L 61.5,41.928571"
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a38503;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
id="path4328"
|
||||||
|
d="M 67.5,44.928571 L 67.5,41.928571"
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a38503;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
id="path4330"
|
||||||
|
d="M 73.5,44.928571 L 73.5,41.964285"
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a38503;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
id="path4332"
|
||||||
|
d="M 79.5,44.928571 L 79.5,41.928571"
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a38503;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
id="path4334"
|
||||||
|
d="M 85.5,44.928571 L 85.5,41.928571"
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#a38503;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
id="path6126"
|
||||||
|
d="M 58.500002,16.928575 L 58.500002,43.928586 L 93.500014,43.928586 L 58.500002,16.928575 z "
|
||||||
|
style="opacity:0.4;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000006px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
style="opacity:0.4;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 40.498252,40.542446 L 40.542447,26.532894 L 21.458408,40.563262 L 40.498252,40.542446 z "
|
||||||
|
id="path12221"
|
||||||
|
sodipodi:nodetypes="cccc" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 97 KiB |
Before Width: | Height: | Size: 6.2 KiB |
@ -1,125 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
sodipodi:docname="glade-symbolic.svg"
|
|
||||||
height="16"
|
|
||||||
id="svg7384"
|
|
||||||
inkscape:version="0.92.2 2405546, 2018-03-11"
|
|
||||||
version="1.1"
|
|
||||||
width="16">
|
|
||||||
<metadata
|
|
||||||
id="metadata90">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title>Gnome Symbolic Icon Theme</dc:title>
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<sodipodi:namedview
|
|
||||||
inkscape:bbox-paths="true"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1"
|
|
||||||
inkscape:current-layer="layer9"
|
|
||||||
inkscape:cx="20.812152"
|
|
||||||
inkscape:cy="4.0924638"
|
|
||||||
gridtolerance="10"
|
|
||||||
inkscape:guide-bbox="true"
|
|
||||||
guidetolerance="10"
|
|
||||||
id="namedview88"
|
|
||||||
inkscape:object-nodes="false"
|
|
||||||
inkscape:object-paths="false"
|
|
||||||
objecttolerance="10"
|
|
||||||
pagecolor="#555753"
|
|
||||||
inkscape:pageopacity="1"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
showborder="true"
|
|
||||||
showgrid="false"
|
|
||||||
showguides="true"
|
|
||||||
inkscape:snap-bbox="true"
|
|
||||||
inkscape:snap-bbox-midpoints="false"
|
|
||||||
inkscape:snap-global="true"
|
|
||||||
inkscape:snap-grids="true"
|
|
||||||
inkscape:snap-nodes="true"
|
|
||||||
inkscape:snap-others="false"
|
|
||||||
inkscape:snap-to-guides="true"
|
|
||||||
inkscape:window-height="1381"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:window-width="2560"
|
|
||||||
inkscape:window-x="1600"
|
|
||||||
inkscape:window-y="27"
|
|
||||||
inkscape:zoom="1"
|
|
||||||
borderlayer="true"
|
|
||||||
inkscape:showpageshadow="false">
|
|
||||||
<inkscape:grid
|
|
||||||
empspacing="2"
|
|
||||||
enabled="true"
|
|
||||||
id="grid4866"
|
|
||||||
snapvisiblegridlinesonly="true"
|
|
||||||
spacingx="1"
|
|
||||||
spacingy="1"
|
|
||||||
type="xygrid"
|
|
||||||
visible="true"
|
|
||||||
originx="0"
|
|
||||||
originy="0" />
|
|
||||||
</sodipodi:namedview>
|
|
||||||
<title
|
|
||||||
id="title9167">Gnome Symbolic Icon Theme</title>
|
|
||||||
<defs
|
|
||||||
id="defs7386" />
|
|
||||||
<g
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer9"
|
|
||||||
inkscape:label="apps"
|
|
||||||
style="display:inline"
|
|
||||||
transform="translate(-223.0002,-215)">
|
|
||||||
<path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
d="m 239.00778,222.70429 v 8.31023 h -14 z m -2,3.95138 -4,2.35885 h 4 z"
|
|
||||||
id="path4349"
|
|
||||||
sodipodi:nodetypes="cccccccc"
|
|
||||||
style="display:inline;fill:#3d3846;fill-opacity:1;stroke:none;enable-background:new" />
|
|
||||||
<circle
|
|
||||||
r="1.5"
|
|
||||||
cy="219.51451"
|
|
||||||
cx="227.50777"
|
|
||||||
id="circle1750"
|
|
||||||
style="display:inline;opacity:1;vector-effect:none;fill:#3d3846;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
|
|
||||||
<path
|
|
||||||
style="display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:0.99607843;stroke:#3d3846;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
|
|
||||||
d="m 224.00778,229.01452 v -13 h 14 v 4"
|
|
||||||
id="path1752"
|
|
||||||
inkscape:connector-curvature="0" />
|
|
||||||
<rect
|
|
||||||
style="display:inline;opacity:1;vector-effect:none;fill:#3d3846;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
|
|
||||||
id="rect1754"
|
|
||||||
width="5"
|
|
||||||
height="1"
|
|
||||||
x="230.00777"
|
|
||||||
y="219.01451" />
|
|
||||||
<circle
|
|
||||||
style="display:inline;opacity:1;vector-effect:none;fill:#3d3846;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
|
|
||||||
id="circle1761"
|
|
||||||
cx="227.50777"
|
|
||||||
cy="223.51451"
|
|
||||||
r="1.5" />
|
|
||||||
<rect
|
|
||||||
y="223.01451"
|
|
||||||
x="230.00777"
|
|
||||||
height="1"
|
|
||||||
width="5"
|
|
||||||
id="rect1763"
|
|
||||||
style="display:inline;opacity:1;vector-effect:none;fill:#3d3846;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 240 B |
BIN
data/icons/selector.png
Normal file
After Width: | Height: | Size: 705 B |
@ -1,65 +0,0 @@
|
|||||||
desktop_conf = configuration_data()
|
|
||||||
desktop_conf.set('VERSION', glade_version)
|
|
||||||
|
|
||||||
i18n.merge_file(
|
|
||||||
type: 'desktop',
|
|
||||||
input: configure_file(
|
|
||||||
input: 'org.gnome.Glade.desktop.in.in',
|
|
||||||
output: '@BASENAME@',
|
|
||||||
configuration: desktop_conf,
|
|
||||||
),
|
|
||||||
output: '@BASENAME@',
|
|
||||||
po_dir: po_dir,
|
|
||||||
install: true,
|
|
||||||
install_dir: glade_datadir / 'applications',
|
|
||||||
)
|
|
||||||
|
|
||||||
appdata = glade_name + '.appdata.xml'
|
|
||||||
|
|
||||||
i18n.merge_file(
|
|
||||||
input: 'org.gnome.Glade.appdata.xml.in',
|
|
||||||
output: '@BASENAME@',
|
|
||||||
po_dir: po_dir,
|
|
||||||
install: true,
|
|
||||||
install_dir: glade_datadir / 'metainfo',
|
|
||||||
)
|
|
||||||
|
|
||||||
# FIXME: replace these by install_subdir once autotools is removed
|
|
||||||
install_data(
|
|
||||||
'icons/hicolor/scalable/apps/org.gnome.Glade.svg',
|
|
||||||
install_dir: glade_datadir / 'icons/hicolor/scalable/apps',
|
|
||||||
)
|
|
||||||
|
|
||||||
icon_symbolic_data = files(
|
|
||||||
'icons/hicolor/symbolic/apps/glade-brand-symbolic.svg',
|
|
||||||
'icons/hicolor/symbolic/apps/org.gnome.Glade-symbolic.svg',
|
|
||||||
)
|
|
||||||
|
|
||||||
install_data(
|
|
||||||
icon_symbolic_data,
|
|
||||||
install_dir: glade_datadir / 'icons/hicolor/symbolic/apps',
|
|
||||||
)
|
|
||||||
|
|
||||||
pixmaps_data = files(
|
|
||||||
'icons/deprecated-16x16.png',
|
|
||||||
'icons/deprecated-22x22.png',
|
|
||||||
'icons/devhelp.png',
|
|
||||||
'icons/fixed-bg.png',
|
|
||||||
'icons/placeholder.png',
|
|
||||||
'icons/plus.png',
|
|
||||||
)
|
|
||||||
|
|
||||||
install_data(
|
|
||||||
pixmaps_data,
|
|
||||||
install_dir: glade_datadir / glade_pixmapdir,
|
|
||||||
)
|
|
||||||
|
|
||||||
its_data = files(
|
|
||||||
'gettext/its/glade-catalog.its',
|
|
||||||
'gettext/its/glade-catalog.loc',
|
|
||||||
)
|
|
||||||
|
|
||||||
install_data(
|
|
||||||
its_data,
|
|
||||||
install_dir: glade_datadir / 'gettext/its',
|
|
||||||
)
|
|
@ -1,171 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<component type="desktop">
|
|
||||||
<id>org.gnome.Glade</id>
|
|
||||||
<metadata_license>CC0-1.0</metadata_license>
|
|
||||||
<project_license>GPL-2.0+ and LGPL-2.0+</project_license>
|
|
||||||
<name>Glade</name>
|
|
||||||
<summary>Create or open user interface designs for GTK+ applications</summary>
|
|
||||||
<description>
|
|
||||||
|
|
||||||
<!-- To translators: AppData description first paragraph -->
|
|
||||||
<p>
|
|
||||||
Glade is a RAD tool to enable quick & easy development of user interfaces
|
|
||||||
for the GTK+ 3 toolkit and the GNOME desktop environment.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<!-- To translators: AppData description second paragraph -->
|
|
||||||
<p>
|
|
||||||
The user interfaces designed in Glade are saved as XML and these can be
|
|
||||||
loaded by applications dynamically as needed by using GtkBuilder or used
|
|
||||||
directly to define a new GtkWidget derived object class using
|
|
||||||
GTK+ new template feature.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<!-- To translators: AppData description third paragraph -->
|
|
||||||
<p>
|
|
||||||
By using GtkBuilder, Glade XML files can be used in numerous programming
|
|
||||||
languages including C, C++, C#, Vala, Java, Perl, Python, and others.
|
|
||||||
</p>
|
|
||||||
</description>
|
|
||||||
<screenshots>
|
|
||||||
<screenshot type="default">
|
|
||||||
<image>https://glade.gnome.org/images/glade-main-page.png</image>
|
|
||||||
</screenshot>
|
|
||||||
</screenshots>
|
|
||||||
<provides>
|
|
||||||
<id>glade.desktop</id>
|
|
||||||
</provides>
|
|
||||||
<launchable type="desktop-id">org.gnome.Glade.desktop</launchable>
|
|
||||||
<url type="homepage">https://glade.gnome.org/</url>
|
|
||||||
<url type="bugtracker">https://gitlab.gnome.org/GNOME/glade/issues</url>
|
|
||||||
<url type="donation">https://www.gnome.org/friends/</url>
|
|
||||||
<url type="help">https://help.gnome.org/users/glade/stable/</url>
|
|
||||||
<update_contact>juanpablougarte_at_gmail.com</update_contact>
|
|
||||||
<kudos>
|
|
||||||
<kudo>HiDpiIcon</kudo>
|
|
||||||
<kudo>ModernToolkit</kudo>
|
|
||||||
<kudo>UserDocs</kudo>
|
|
||||||
</kudos>
|
|
||||||
<project_group>GNOME</project_group>
|
|
||||||
<translation type="gettext">glade</translation>
|
|
||||||
<releases>
|
|
||||||
<release version="3.40.0" date="2022-08-10">
|
|
||||||
<description>
|
|
||||||
<p>Last Release!
|
|
||||||
Glade is not being actively developed or maintained anymore.
|
|
||||||
If you are interested in becoming a maintainer please contact us on gitlab.
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>Remove survey</li>
|
|
||||||
<li>Add user manual menu item (Sabri Ünal)</li>
|
|
||||||
<li>'Clear' action in "Setup Text Attributes" dialog now clears only selected attributes (crvi)</li>
|
|
||||||
<li>Fix windows build on msys</li>
|
|
||||||
<li>Fix build against Python 3.9</li>
|
|
||||||
<li>Fix issue pasing widget with ctrl+v in GtkGrid</li>
|
|
||||||
<li>Several bug fixes</li>
|
|
||||||
</ul>
|
|
||||||
</description>
|
|
||||||
<issues>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/502">Fix issue #502 sync draw-indicator on setting xalign (Caolán McNamara)</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/499">Fix issue #499 and #509 "Drop overzealous check using only the first child"</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/385">Fix Segfault in gnome-builder when widget doesn't have a name (Peter Maatman)</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/373">Fix issue #373 "Move separator in hamburger menu one up, to be consistent with other GNOME applications"</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/484">Fix issue #484 "Crash with GtkRecentChooserDialog"</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/194">Fix issue #194 "Using List Store can result in program crash."</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/53">Fix issue #53 "Can't choose a FileChooserDialog for a FileChooserButton"</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/98">Fix issue #98 #491</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/355">Fix issue #355 "Make notification text selectable"</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/360">Fix issue #360 "No examples in documentation on using custom catalogues with gtkBuilder"</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/406">Fix issue #406 "AtkObject::accessible-role should not be translatable"</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/479">Fix issue #479 "Glade 3.36.0 segfaults when opening a file"</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/471">Fix issue #471 "XML not updated after adding element"</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/474">Fix issue #474 "GtkLabel: setup text attribute issues"</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/480">Fix issue #480 "version field not always updated in XML"</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/470">Fix issue #470 "Widgets of type need placeholders to add children"</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/472">Fix issue #472 "gnome-nightly: About dialog should display git commit rev"</issue>
|
|
||||||
</issues>
|
|
||||||
</release>
|
|
||||||
<release version="3.38.0" date="2020-09-12">
|
|
||||||
<description>
|
|
||||||
<p>Glade 3.38.0 release!</p>
|
|
||||||
<ul>
|
|
||||||
<li>Load template files as new GTypes and add them to "User templates" widget group automatically without the need of a catalog</li>
|
|
||||||
<li>Added JavaScript widget support</li>
|
|
||||||
<li>Use version data from gir to improve deprecation/target tests</li>
|
|
||||||
<li>Implement survey using new backend at surveys.gnome.org</li>
|
|
||||||
<li>Keep survey state in config file</li>
|
|
||||||
<li>Associate with application/x-gtk-builder (Caolán McNamara)</li>
|
|
||||||
<li>Project properties dialog improvements. (Use headerbar, stack and stach switcher, add warnings textview)</li>
|
|
||||||
<li>Improve toolkit target version selection in project properties dialog</li>
|
|
||||||
<li>Improve treemodel char data type handling</li>
|
|
||||||
<li>Remove autotools (Iñigo Martínez)</li>
|
|
||||||
<li>New gjs-1.0 1.64 dependency</li>
|
|
||||||
<li>Bump Gtk dependency to 3.24</li>
|
|
||||||
<li>Bump webkit2gtk dependency to 2.28</li>
|
|
||||||
<li>Fixed all compiler/gir warnings</li>
|
|
||||||
</ul>
|
|
||||||
</description>
|
|
||||||
<issues>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/385">Issue #385: GtkCellRendererText causes deprecated warnings for ghost properties</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/444">Issue #444: show-emoji-icon is missing "minimum version"/since constraint</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/367">Issue #367: Glade removes double/triple slashes from URLs</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/452">Issue #452: GtkComboBox cell renderers editor is too hard to discover</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/363">Issue #363: Toplevel windows are leaked when closing a project</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/462">Issue #462: Crash when creating a new GtkAssistant and pressing it</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/463">Issue #463: Specify file on command line</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/461">Issue #461: Glade resets number of rows and columns in GtkGrid</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/460">Issue #460: 3.37.0: test suite fails because glade uses incorrectly asserts in test units</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/412">Issue #412: Fix inconsistent "top-level", "top level", "toplevel" spelling in translatable strings</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/281">Issue #281: GladeProperty: Do not replace - with _</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/389">Issue #389: GladeProject: show message on invalid GtkBuilder file</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/446">Issue #446: GladeGtkListBox: fix size request issue</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/432">Issue #432: GladeStandarStock, GladeStandarStockImage: fix get_type() functions for introspection</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/447">Issue #447: GladeGtkWindow: Fix CSD support</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/456">Issue #456: Utils: use g_param_spec_uchar() for uchar types</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/459">Issue #459: Gtk catalog: add GtkRecentChooserMenu to Display group</issue>
|
|
||||||
<issue url="https://gitlab.gnome.org/GNOME/glade/-/issues/433">Issue #433: Implement survey using new backend at surveys.gnome.org</issue>
|
|
||||||
<issue>Build: use gtk-mac-integration only when creating bundle (Tom Schoonjans)</issue>
|
|
||||||
<issue>Ignore locale when saving numeric values (Alberto Fanjul)</issue>
|
|
||||||
<issue>Remove config for external builds (Alberto Fanjul)</issue>
|
|
||||||
<issue>Python plugin: fix linking error</issue>
|
|
||||||
<issue>Tests: add python and javascript test case</issue>
|
|
||||||
<issue>gtk: Add GtkScrolledWindow propagate-natural-width property (Corentin Noël)</issue>
|
|
||||||
<issue>GladeScrolledWindowEditor: Squeeze width/height properties in two columns</issue>
|
|
||||||
<issue>Gtk plugin: add missing displayable values</issue>
|
|
||||||
<issue>Webkit2gtk plugin: add missing displayable values and sandbox web view</issue>
|
|
||||||
<issue>dtd: Make init-function an element, not an attribute (Adrien Plazas)</issue>
|
|
||||||
</issues>
|
|
||||||
</release>
|
|
||||||
<release version="3.36.0" date="2020-05-06"/>
|
|
||||||
<release version="3.22.0" date="2018-03-12"/>
|
|
||||||
</releases>
|
|
||||||
<content_rating type="oars-1.1">
|
|
||||||
<content_attribute id="violence-cartoon">none</content_attribute>
|
|
||||||
<content_attribute id="violence-fantasy">none</content_attribute>
|
|
||||||
<content_attribute id="violence-realistic">none</content_attribute>
|
|
||||||
<content_attribute id="violence-bloodshed">none</content_attribute>
|
|
||||||
<content_attribute id="violence-sexual">none</content_attribute>
|
|
||||||
<content_attribute id="violence-desecration">none</content_attribute>
|
|
||||||
<content_attribute id="violence-slavery">none</content_attribute>
|
|
||||||
<content_attribute id="violence-worship">none</content_attribute>
|
|
||||||
<content_attribute id="drugs-alcohol">none</content_attribute>
|
|
||||||
<content_attribute id="drugs-narcotics">none</content_attribute>
|
|
||||||
<content_attribute id="drugs-tobacco">none</content_attribute>
|
|
||||||
<content_attribute id="sex-nudity">none</content_attribute>
|
|
||||||
<content_attribute id="sex-themes">none</content_attribute>
|
|
||||||
<content_attribute id="sex-homosexuality">none</content_attribute>
|
|
||||||
<content_attribute id="sex-prostitution">none</content_attribute>
|
|
||||||
<content_attribute id="sex-adultery">none</content_attribute>
|
|
||||||
<content_attribute id="sex-appearance">none</content_attribute>
|
|
||||||
<content_attribute id="language-profanity">none</content_attribute>
|
|
||||||
<content_attribute id="language-humor">none</content_attribute>
|
|
||||||
<content_attribute id="language-discrimination">none</content_attribute>
|
|
||||||
<content_attribute id="social-chat">none</content_attribute>
|
|
||||||
<content_attribute id="social-info">none</content_attribute>
|
|
||||||
<content_attribute id="social-audio">none</content_attribute>
|
|
||||||
<content_attribute id="social-location">none</content_attribute>
|
|
||||||
<content_attribute id="social-contacts">none</content_attribute>
|
|
||||||
<content_attribute id="money-purchasing">none</content_attribute>
|
|
||||||
<content_attribute id="money-gambling">none</content_attribute>
|
|
||||||
</content_rating>
|
|
||||||
</component>
|
|
@ -1,15 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Name=Glade
|
|
||||||
GenericName=Interface Designer
|
|
||||||
Comment=Create or open user interface designs for GTK+ applications
|
|
||||||
# Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
|
|
||||||
Keywords=GUI designer;user interface;ui builder;
|
|
||||||
Exec=glade %F
|
|
||||||
Terminal=false
|
|
||||||
StartupNotify=true
|
|
||||||
Type=Application
|
|
||||||
# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
|
|
||||||
Icon=org.gnome.Glade
|
|
||||||
Categories=GNOME;GTK;Development;GUIDesigner;
|
|
||||||
MimeType=application/x-gtk-builder;application/x-glade;
|
|
||||||
X-GNOME-DocPath=glade/glade.xml
|
|
1
doc/.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
/version.xml
|
|
143
doc/Makefile.am
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
# We require automake 1.6 at least.
|
||||||
|
AUTOMAKE_OPTIONS = 1.6
|
||||||
|
|
||||||
|
# This is a blank Makefile.am for using gtk-doc.
|
||||||
|
# Copy this to your project's API docs directory and modify the variables to
|
||||||
|
# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
|
||||||
|
# of using the various options.
|
||||||
|
|
||||||
|
# The name of the module, e.g. 'glib'.
|
||||||
|
DOC_MODULE=gladeui
|
||||||
|
|
||||||
|
# The top-level SGML file. You can change this if you want to.
|
||||||
|
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
|
||||||
|
|
||||||
|
# The directory containing the source code. Relative to $(srcdir).
|
||||||
|
# gtk-doc will search all .c & .h files beneath here for inline comments
|
||||||
|
# documenting the functions and macros.
|
||||||
|
DOC_SOURCE_DIR=../gladeui
|
||||||
|
|
||||||
|
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
|
||||||
|
SCANGOBJ_OPTIONS=
|
||||||
|
|
||||||
|
# Extra options to supply to gtkdoc-scan.
|
||||||
|
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
|
||||||
|
SCAN_OPTIONS=
|
||||||
|
|
||||||
|
# Extra options to supply to gtkdoc-mkdb.
|
||||||
|
# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
|
||||||
|
MKDB_OPTIONS=--sgml-mode --output-format=xml
|
||||||
|
|
||||||
|
# Extra options to supply to gtkdoc-mktmpl
|
||||||
|
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
|
||||||
|
MKTMPL_OPTIONS=
|
||||||
|
|
||||||
|
# Extra options to supply to gtkdoc-fixref. Not normally needed.
|
||||||
|
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
|
||||||
|
# XXX We'll maybe want to use this to cross-ref into GTK+ docs...
|
||||||
|
FIXXREF_OPTIONS=
|
||||||
|
|
||||||
|
# Used for dependencies. The docs will be rebuilt if any of these change.
|
||||||
|
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
|
||||||
|
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
|
||||||
|
HFILE_GLOB=$(top_srcdir)/gladeui/*.h
|
||||||
|
CFILE_GLOB=$(top_srcdir)/gladeui/*.c
|
||||||
|
|
||||||
|
# Header files to ignore when scanning.
|
||||||
|
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
|
||||||
|
IGNORE_HFILES=\
|
||||||
|
glade-builtins.h \
|
||||||
|
glade-debug.h \
|
||||||
|
glade-accumulators.h \
|
||||||
|
glade-marshallers.h \
|
||||||
|
glade-paths.h \
|
||||||
|
glade-custom.h \
|
||||||
|
glade-cursor.h \
|
||||||
|
glade-id-allocator.h \
|
||||||
|
glade-catalog.h \
|
||||||
|
glade.h \
|
||||||
|
glade-design-layout.h \
|
||||||
|
glade-popup.h \
|
||||||
|
glade-gtk.h \
|
||||||
|
glade-palette-expander.h \
|
||||||
|
glade-palette-item.h \
|
||||||
|
glade-named-icon-chooser-dialog.h \
|
||||||
|
glade-palette-box.h
|
||||||
|
|
||||||
|
# Images to copy into HTML directory.
|
||||||
|
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
|
||||||
|
HTML_IMAGES=
|
||||||
|
|
||||||
|
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
|
||||||
|
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
|
||||||
|
content_files=\
|
||||||
|
version.xml \
|
||||||
|
catalogintro.sgml \
|
||||||
|
widgetclasses.sgml \
|
||||||
|
properties.sgml \
|
||||||
|
gladepython.sgml
|
||||||
|
|
||||||
|
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
|
||||||
|
# These files must be listed here *and* in content_files
|
||||||
|
# e.g. expand_content_files=running.sgml
|
||||||
|
expand_content_files=\
|
||||||
|
catalogintro.sgml \
|
||||||
|
widgetclasses.sgml \
|
||||||
|
properties.sgml \
|
||||||
|
gladepython.sgml
|
||||||
|
|
||||||
|
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
|
||||||
|
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
|
||||||
|
# signals and properties.
|
||||||
|
# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
|
||||||
|
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
|
||||||
|
GTKDOC_CFLAGS= \
|
||||||
|
-I$(top_srcdir)/gladeui \
|
||||||
|
-I$(top_builddir)/gladeui \
|
||||||
|
-I$(top_srcdir) \
|
||||||
|
-I$(top_builddir) \
|
||||||
|
`pkg-config --cflags gtk+-2.0`
|
||||||
|
|
||||||
|
GTKDOC_LIBS=${top_builddir}/gladeui/libgladeui-1.la
|
||||||
|
|
||||||
|
# This includes the standard gtk-doc make rules, copied by gtkdocize.
|
||||||
|
include $(top_srcdir)/gtk-doc.make
|
||||||
|
|
||||||
|
# Other files to distribute
|
||||||
|
# e.g. EXTRA_DIST += version.xml.in
|
||||||
|
EXTRA_DIST += version.xml.in
|
||||||
|
|
||||||
|
|
||||||
|
# XXX Seems this is no longer working with gtkdoc 1.9 :(
|
||||||
|
GTK_HOME = http://library.gnome.org/devel/gtk/stable
|
||||||
|
GDK_HOME = http://library.gnome.org/devel/gdk/stable
|
||||||
|
GOBJECT_HOME = http://library.gnome.org/devel/gobject/stable
|
||||||
|
GLIB_HOME = http://library.gnome.org/devel/glib/stable
|
||||||
|
|
||||||
|
webdocs: all
|
||||||
|
rm -rf html-web
|
||||||
|
mkdir -p html-web
|
||||||
|
for file in `find html`; do \
|
||||||
|
ROOT_PATH=`echo $${file} | sed 's/^html//'`; \
|
||||||
|
if test "" != "$${ROOT_PATH}"; then \
|
||||||
|
if test -d $$file; then \
|
||||||
|
echo "Creating directory html-web$${ROOT_PATH}..."; \
|
||||||
|
mkdir -p html-web$${ROOT_PATH}; \
|
||||||
|
else \
|
||||||
|
if echo $$file | grep -q '\.html$$'; then \
|
||||||
|
echo "Creating file html-web$${ROOT_PATH}..."; \
|
||||||
|
cat $$file | sed \
|
||||||
|
-e 's!href="../gtk!href="$(GTK_HOME)!g' \
|
||||||
|
-e 's!href="../gdk!href="$(GDK_HOME)!g' \
|
||||||
|
-e 's!href="../gobject!href="$(GOBJECT_HOME)!g' \
|
||||||
|
-e 's!href="../glib!href="$(GLIB_HOME)!g' \
|
||||||
|
> html-web$${ROOT_PATH}; \
|
||||||
|
else \
|
||||||
|
echo "Copying file html-web$${ROOT_PATH}..."; \
|
||||||
|
cp $$file html-web$${ROOT_PATH}; \
|
||||||
|
fi \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
done
|
@ -35,41 +35,33 @@ some basic examples and describe a wealth of options that can be used to
|
|||||||
enhance UI editing and workaround exceptions.
|
enhance UI editing and workaround exceptions.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
|
||||||
Keep in mind you need to take extra steps to ensure GtkBuilder can pick up your
|
|
||||||
new object types at runtime. Ussualy all you need is to link your executable
|
|
||||||
with your widget library assuming it has properly named get_type() functions.
|
|
||||||
|
|
||||||
<![CDATA[GtkWindow -> gtk_window_get_type
|
|
||||||
GtkHBox -> gtk_hbox_get_type
|
|
||||||
GtkUIManager -> gtk_ui_manager_get_type
|
|
||||||
GWeatherLocation -> gweather_location_get_type]]>
|
|
||||||
|
|
||||||
If not you can always register your widgets with the type system with g_type_ensure ()
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The catalog file starts by specifying the name of the catalog and the plugin
|
The catalog file starts by specifying the name of the catalog and the plugin
|
||||||
library to use, the following examples assume you have a namespace "Foo" and
|
library to use, the following examples assume you have a namespace "Foo" and
|
||||||
are integrating an object "Frobnicator":
|
are integrating an object "Frobnicator":
|
||||||
<programlisting>
|
<programlisting>
|
||||||
<![CDATA[<?xml version="1.0" encoding="UTF-8"?>
|
<![CDATA[<glade-catalog name="foo" library="foo" depends="gtk+">
|
||||||
<glade-catalog name="foo" library="foo" depends="gtk+">
|
|
||||||
<init-function>my_catalog_init</init-function>
|
<init-function>my_catalog_init</init-function>
|
||||||
|
|
||||||
<glade-widget-classes>
|
<glade-widget-classes>
|
||||||
|
|
||||||
<glade-widget-class name="FooFrobnicator" generic-name="frobnicator" title="Frobnicator"/>
|
<glade-widget-class name="FooFrobnicator" generic-name="frobnicator" title="Frobnicator"/>
|
||||||
|
|
||||||
... widget classes go here
|
... widget classes go here
|
||||||
|
|
||||||
</glade-widget-classes>
|
</glade-widget-classes>
|
||||||
|
|
||||||
<glade-widget-group name="foo" title="Foo">
|
<glade-widget-group name="foo" title="Foo">
|
||||||
|
|
||||||
<glade-widget-class-ref name="FooFrobnicator"/>
|
<glade-widget-class-ref name="FooFrobnicator"/>
|
||||||
|
|
||||||
... widget class references go here
|
... widget class references go here
|
||||||
|
|
||||||
</glade-widget-group>
|
</glade-widget-group>
|
||||||
|
|
||||||
... widget groups go here
|
... widget groups go here
|
||||||
|
|
||||||
</glade-catalog>]]></programlisting>
|
</glade-catalog>]]></programlisting>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@ -78,7 +70,7 @@ are integrating an object "Frobnicator":
|
|||||||
<title>Toplevel catalog properties and tags</title>
|
<title>Toplevel catalog properties and tags</title>
|
||||||
<para>
|
<para>
|
||||||
When defining the catalog, the 'name' and 'library'
|
When defining the catalog, the 'name' and 'library'
|
||||||
are both mandatory attributes of the 'glade-catalog' tag; optionally
|
are both manditory attributes of the 'glade-catalog' tag; optionally
|
||||||
you can also use 'icon-prefix', 'depends' and 'domain'.
|
you can also use 'icon-prefix', 'depends' and 'domain'.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@ -109,7 +101,7 @@ Please note that all versioning related support is completely optional.
|
|||||||
<term>targetable</term>
|
<term>targetable</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
A comma separated list of 'major.minor' formed versions describing sensible previous
|
A comma separated list of 'major.minor' formed versions describing sensable previous
|
||||||
targetable versions of the underlying toolkit not including the current version;
|
targetable versions of the underlying toolkit not including the current version;
|
||||||
example: <literal>targetable="0.6,0.8"</literal>.
|
example: <literal>targetable="0.6,0.8"</literal>.
|
||||||
</para>
|
</para>
|
||||||
@ -158,7 +150,7 @@ for your plugin.
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The domain in which to search for translatable strings from the
|
The domain in which to search for translatable strings from the
|
||||||
catalog file; please note that all strings from the catalog that will appear in the UI are
|
catalog file; please note that all strings from the catalog that will apear in the UI are
|
||||||
translated using this domain. If the 'domain' is not specified, the library property will
|
translated using this domain. If the 'domain' is not specified, the library property will
|
||||||
be used in it's stead.
|
be used in it's stead.
|
||||||
</para>
|
</para>
|
||||||
@ -170,7 +162,7 @@ be used in it's stead.
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Used to specify a namespace to search devhelp docs library with
|
Used to specify a namespace to search devhelp docs library with
|
||||||
(specifically, it is the $(DOC_MODULE) that you specified in your gtk-doc Makefile.am).
|
(specificly, it is the $(DOC_MODULE) that you specified in your gtk-doc Makefile.am).
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@ -210,12 +202,12 @@ this is described in the next chapter.
|
|||||||
<para>
|
<para>
|
||||||
You can also load your catalog from a user directory by specifying
|
You can also load your catalog from a user directory by specifying
|
||||||
additional load path(s) in the environment, for instance:
|
additional load path(s) in the environment, for instance:
|
||||||
<programlisting>GLADE_CATALOG_SEARCH_PATH=~/mycatalogs:~/work/foo/glade</programlisting>
|
<programlisting>GLADE_CATALOG_PATH=~/mycatalogs:~/work/foo/glade</programlisting>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Same goes for optional plugin libraries, for instance:
|
Same goes for optional plugin libraries, for instance:
|
||||||
<programlisting>GLADE_MODULE_SEARCH_PATH=~/work/foo/src</programlisting>
|
<programlisting>GLADE_MODULE_PATH=~/work/foo/src</programlisting>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
@ -1,99 +0,0 @@
|
|||||||
<refentry id="gjssupport" revision="5 Jun 2020">
|
|
||||||
<refmeta>
|
|
||||||
<refentrytitle>JavaScript Gtk widgets support</refentrytitle>
|
|
||||||
<refmiscinfo>Glade UI</refmiscinfo>
|
|
||||||
</refmeta>
|
|
||||||
<refnamediv>
|
|
||||||
<refname>Add GJS/JavaScript support to your catalog</refname>
|
|
||||||
<refpurpose>
|
|
||||||
How to write and install a catalog for a JavaScript widget library
|
|
||||||
</refpurpose>
|
|
||||||
</refnamediv>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Introduction</title>
|
|
||||||
<para>
|
|
||||||
Glade supports loading widgets programed in JavaScript by linking and running GJS from the gladegjs catalog plugin.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
So in order for glade to support your JavaScript widgets you will have to:
|
|
||||||
|
|
||||||
<varlistentry><listitem>
|
|
||||||
a) specify gladegjs support code as your plugin library.
|
|
||||||
</listitem></varlistentry>
|
|
||||||
|
|
||||||
<varlistentry><listitem>
|
|
||||||
b) set glade_gjs_init as you init function.
|
|
||||||
</listitem></varlistentry>
|
|
||||||
|
|
||||||
<varlistentry><listitem>
|
|
||||||
c) make sure your catalog name is the same as your JavaScript import library since
|
|
||||||
glade_gjs_init() will use this name to import your widgets into the
|
|
||||||
interpreter.
|
|
||||||
</listitem></varlistentry>
|
|
||||||
|
|
||||||
<programlisting>
|
|
||||||
<![CDATA[
|
|
||||||
<glade-catalog name="gjsplugin" library="gladegjs" domain="glade-3" depends="gtk+">
|
|
||||||
<init-function>glade_gjs_init</init-function>
|
|
||||||
|
|
||||||
<glade-widget-classes>
|
|
||||||
<glade-widget-class title="MyJSGrid" name="MyJSGrid" generic-name="mygrid"/>
|
|
||||||
</glade-widget-classes>
|
|
||||||
|
|
||||||
<glade-widget-group name="gjs" title="Gjs">
|
|
||||||
<glade-widget-class-ref name="MyJSGrid"/>
|
|
||||||
</glade-widget-group>
|
|
||||||
</glade-catalog>]]>
|
|
||||||
</programlisting>
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
GJS will look up for your widgets in the same places it looks
|
|
||||||
for regular catalogs plugins, that is $GLADE_ENV_MODULE_PATH
|
|
||||||
environment variable and `pkg-config --variable=moduledir gladeui-2.0`
|
|
||||||
|
|
||||||
So the easiest thing would be to make a symlink in one of those directory, just
|
|
||||||
do not forget that the name should be the one specified in your catalog name.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
gjsplugin.js
|
|
||||||
<programlisting>
|
|
||||||
<![CDATA[
|
|
||||||
#!/usr/bin/gjs
|
|
||||||
|
|
||||||
const GObject = imports.gi.GObject;
|
|
||||||
const Gtk = imports.gi.Gtk;
|
|
||||||
|
|
||||||
var MyJSGrid = GObject.registerClass({
|
|
||||||
GTypeName: 'MyJSGrid',
|
|
||||||
Properties: {
|
|
||||||
'string-property': GObject.ParamSpec.string('string-property', 'String Prop',
|
|
||||||
'Longer description', GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT,
|
|
||||||
'Foobar'),
|
|
||||||
'int-property': GObject.ParamSpec.int('int-property', 'Integer Prop',
|
|
||||||
'Longer description',
|
|
||||||
GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT,
|
|
||||||
0, 10, 5)
|
|
||||||
},
|
|
||||||
Signals: {'mysignal': {param_types: [GObject.TYPE_INT]}},
|
|
||||||
}, class MyJSGrid extends Gtk.Grid {
|
|
||||||
_init(props) {
|
|
||||||
super._init(props);
|
|
||||||
this.label = new Gtk.Label ({ visible: true });
|
|
||||||
this.add (this.label);
|
|
||||||
this.connect('notify::string-property', this._update.bind(this));
|
|
||||||
this.connect('notify::int-property', this._update.bind(this));
|
|
||||||
this._update();
|
|
||||||
}
|
|
||||||
_update (obj, pspec) {
|
|
||||||
this.label.set_text ('JS Properties\nInteger = ' + this.int_property + '\nString = \'' + this.string_property + '\'');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
]]>
|
|
||||||
</programlisting>
|
|
||||||
</para>
|
|
||||||
</refsect1>
|
|
||||||
</refentry>
|
|
@ -1,4 +1,4 @@
|
|||||||
<refentry id="pythonsupport" revision="26 Feb 2011">
|
<refentry id="pythonsupport" revision="7 Nov 2008">
|
||||||
<refmeta>
|
<refmeta>
|
||||||
<refentrytitle>Python Gtk widgets support</refentrytitle>
|
<refentrytitle>Python Gtk widgets support</refentrytitle>
|
||||||
<refmiscinfo>Glade UI</refmiscinfo>
|
<refmiscinfo>Glade UI</refmiscinfo>
|
||||||
@ -12,9 +12,10 @@ How to write and install a catalog for a python widget library
|
|||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Introduction</title>
|
<title>Introduction</title>
|
||||||
<para>
|
|
||||||
Glade supports loading widgets coded in python by linking and running the python
|
Glade supports loading widgets coded in python by linking and running the python
|
||||||
interpreter from the gladepython catalog plugin.
|
interpreter from the gladepython catalog plugin.
|
||||||
|
<para>
|
||||||
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@ -34,7 +35,6 @@ glade_python_init() will use this name to import your widgets into the
|
|||||||
interpreter.
|
interpreter.
|
||||||
</listitem></varlistentry>
|
</listitem></varlistentry>
|
||||||
|
|
||||||
pythonplugin.xml
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
<glade-catalog name="pythonplugin" library="gladepython"
|
<glade-catalog name="pythonplugin" library="gladepython"
|
||||||
@ -42,11 +42,11 @@ domain="glade-3" depends="gtk+">
|
|||||||
<init-function>glade_python_init</init-function>
|
<init-function>glade_python_init</init-function>
|
||||||
|
|
||||||
<glade-widget-classes>
|
<glade-widget-classes>
|
||||||
<glade-widget-class title="MyPythonBox" name="MyPythonBox" generic-name="mypythonbox"/>
|
<glade-widget-class title="MyBox" name="MyBox" generic-name="mybox"/>
|
||||||
</glade-widget-classes>
|
</glade-widget-classes>
|
||||||
|
|
||||||
<glade-widget-group name="python" title="Python">
|
<glade-widget-group name="python" title="Python">
|
||||||
<glade-widget-class-ref name="MyPythonBox"/>
|
<glade-widget-class-ref name="MyBox"/>
|
||||||
</glade-widget-group>
|
</glade-widget-group>
|
||||||
</glade-catalog>]]>
|
</glade-catalog>]]>
|
||||||
</programlisting>
|
</programlisting>
|
||||||
@ -55,9 +55,9 @@ domain="glade-3" depends="gtk+">
|
|||||||
<para>
|
<para>
|
||||||
Glade's python interpreter will look up for your widgets in the same
|
Glade's python interpreter will look up for your widgets in the same
|
||||||
places it looks
|
places it looks
|
||||||
for regular catalogs plugins, that is $GLADE_ENV_MODULE_PATH
|
for regular catalogs plugins, that is $GLADE_ENV_CATALOG_PATH
|
||||||
environment variable
|
enviroment variable
|
||||||
and `pkg-config --variable=moduledir gladeui-2.0`
|
and `pkg-config --variable=catalogdir gladeui-1.0`
|
||||||
|
|
||||||
So the easiest thing would be to make a symlink in one of those directory, just
|
So the easiest thing would be to make a symlink in one of those directory, just
|
||||||
do not forget that the name should be the one specified in your catalog name.
|
do not forget that the name should be the one specified in your catalog name.
|
||||||
@ -67,24 +67,14 @@ do not forget that the name should be the one specified in your catalog name.
|
|||||||
pythonplugin.py
|
pythonplugin.py
|
||||||
<programlisting>
|
<programlisting>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
from gi.repository import GLib, Gtk, GObject
|
import gobject
|
||||||
|
import gtk
|
||||||
|
|
||||||
class MyPythonBox(Gtk.Box):
|
class MyBox(gtk.HBox):
|
||||||
__gtype_name__ = 'MyPythonBox'
|
__gtype_name__ = 'MyBox'
|
||||||
|
|
||||||
foo = GObject.Property(type=int, nick='An integer')
|
def __init__(self):
|
||||||
bar = GObject.Property(type=str, nick='A String')
|
gtk.HBox.__init__(self)
|
||||||
|
|
||||||
def _update(self, obj, pspec):
|
|
||||||
self.label.set_text ('Python Properties\nInteger = ' + str(self.foo) + '\nString = \'' + self.bar + '\'')
|
|
||||||
|
|
||||||
def __init__ (self):
|
|
||||||
Gtk.Box.__init__ (self)
|
|
||||||
self.label = Gtk.Label (visible = True)
|
|
||||||
self.add (self.label)
|
|
||||||
self.connect('notify::foo', self._update)
|
|
||||||
self.connect('notify::bar', self._update)
|
|
||||||
self._update(None, None)
|
|
||||||
]]>
|
]]>
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
|
104
doc/gladeui-docs.sgml
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||||
|
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
|
||||||
|
<!ENTITY CatalogIntro SYSTEM "xml/catalogintro.sgml">
|
||||||
|
<!ENTITY WidgetClasses SYSTEM "xml/widgetclasses.sgml">
|
||||||
|
<!ENTITY Properties SYSTEM "xml/properties.sgml">
|
||||||
|
<!ENTITY PythonSupport SYSTEM "xml/gladepython.sgml">
|
||||||
|
<!ENTITY GladeCommand SYSTEM "xml/glade-command.xml">
|
||||||
|
<!ENTITY GladeApp SYSTEM "xml/glade-app.xml">
|
||||||
|
<!ENTITY GladeClipboardView SYSTEM "xml/glade-clipboard-view.xml">
|
||||||
|
<!ENTITY GladeClipboard SYSTEM "xml/glade-clipboard.xml">
|
||||||
|
<!ENTITY GladeEditorProperty SYSTEM "xml/glade-editor-property.xml">
|
||||||
|
<!ENTITY GladeEditor SYSTEM "xml/glade-editor.xml">
|
||||||
|
<!ENTITY GladePalette SYSTEM "xml/glade-palette.xml">
|
||||||
|
<!ENTITY GladeParameter SYSTEM "xml/glade-parameter.xml">
|
||||||
|
<!ENTITY GladePlaceholder SYSTEM "xml/glade-placeholder.xml">
|
||||||
|
<!ENTITY GladeInspector SYSTEM "xml/glade-inspector.xml">
|
||||||
|
<!ENTITY GladeProject SYSTEM "xml/glade-project.xml">
|
||||||
|
<!ENTITY GladePropertyClass SYSTEM "xml/glade-property-class.xml">
|
||||||
|
<!ENTITY GladeProperty SYSTEM "xml/glade-property.xml">
|
||||||
|
<!ENTITY GladeSignalEditor SYSTEM "xml/glade-signal-editor.xml">
|
||||||
|
<!ENTITY GladeUtils SYSTEM "xml/glade-utils.xml">
|
||||||
|
<!ENTITY GladeWidgetAdaptor SYSTEM "xml/glade-widget-adaptor.xml">
|
||||||
|
<!ENTITY GladeWidget SYSTEM "xml/glade-widget.xml">
|
||||||
|
<!ENTITY GladeFixed SYSTEM "xml/glade-fixed.xml">
|
||||||
|
<!ENTITY GladeBaseEditor SYSTEM "xml/glade-base-editor.xml">
|
||||||
|
<!ENTITY GladeDesignView SYSTEM "xml/glade-design-view.xml">
|
||||||
|
<!ENTITY GladeXmlUtils SYSTEM "xml/glade-xml-utils.xml">
|
||||||
|
<!ENTITY GladeWidgetAction SYSTEM "xml/glade-widget-action.xml">
|
||||||
|
<!ENTITY version SYSTEM "version.xml">
|
||||||
|
]>
|
||||||
|
<book id="index">
|
||||||
|
<bookinfo>
|
||||||
|
<title>Glade User Interface Designer Reference Manual</title>
|
||||||
|
<abstract>
|
||||||
|
<para>
|
||||||
|
This document attempts to describe how to use the Glade UI Designer core
|
||||||
|
library to integrate Glade into your application and how to integrate your
|
||||||
|
custom GTK+ derived widgets into the Glade UI Designer.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
You can always get the latest version of this document
|
||||||
|
<ulink url="http://library.gnome.org/devel/gladeui/unstable/">here</ulink>
|
||||||
|
and you should have received a copy with the glade-3 tarball.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</abstract>
|
||||||
|
<releaseinfo>for &version;</releaseinfo>
|
||||||
|
<authorgroup>
|
||||||
|
<author>
|
||||||
|
<firstname>Tristan</firstname>
|
||||||
|
<surname>Van Berkom</surname>
|
||||||
|
</author>
|
||||||
|
</authorgroup>
|
||||||
|
|
||||||
|
</bookinfo>
|
||||||
|
|
||||||
|
<part id="catalog">
|
||||||
|
<title>Adding your custom widgets</title>
|
||||||
|
&CatalogIntro;
|
||||||
|
&WidgetClasses;
|
||||||
|
&Properties;
|
||||||
|
&PythonSupport;
|
||||||
|
</part>
|
||||||
|
|
||||||
|
<part id="core">
|
||||||
|
<title>Glade Core</title>
|
||||||
|
&GladeApp;
|
||||||
|
&GladeProject;
|
||||||
|
&GladeWidget;
|
||||||
|
&GladeFixed;
|
||||||
|
&GladeProperty;
|
||||||
|
&GladeWidgetAdaptor;
|
||||||
|
&GladePropertyClass;
|
||||||
|
&GladeWidgetAction;
|
||||||
|
&GladeCommand;
|
||||||
|
&GladeClipboard;
|
||||||
|
&GladeBaseEditor;
|
||||||
|
&GladePlaceholder;
|
||||||
|
&GladeXmlUtils;
|
||||||
|
</part>
|
||||||
|
|
||||||
|
<part id="dockables">
|
||||||
|
<title>Dockable Glade UI Widgets</title>
|
||||||
|
&GladeEditor;
|
||||||
|
&GladeEditorProperty;
|
||||||
|
&GladePalette;
|
||||||
|
&GladeClipboardView;
|
||||||
|
&GladeInspector;
|
||||||
|
&GladeSignalEditor;
|
||||||
|
&GladeDesignView;
|
||||||
|
</part>
|
||||||
|
|
||||||
|
<part id="misc">
|
||||||
|
<title>Miscellaneous utilities</title>
|
||||||
|
&GladeParameter;
|
||||||
|
&GladeUtils;
|
||||||
|
</part>
|
||||||
|
|
||||||
|
<index>
|
||||||
|
<title>Index</title>
|
||||||
|
</index>
|
||||||
|
</book>
|
@ -1,90 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<!DOCTYPE book PUBLIC '-//OASIS//DTD DocBook XML V4.5//EN'
|
|
||||||
'http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd' [
|
|
||||||
|
|
||||||
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
|
|
||||||
<!ENTITY version SYSTEM "version.xml">
|
|
||||||
]>
|
|
||||||
<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
|
|
||||||
<bookinfo>
|
|
||||||
<title>Glade User Interface Designer Reference Manual</title>
|
|
||||||
<releaseinfo>
|
|
||||||
for gladeui &version;.
|
|
||||||
This document attempts to describe how to use the Glade UI Designer core
|
|
||||||
library to integrate Glade into your application and how to integrate your
|
|
||||||
custom GTK+ derived widgets into the Glade UI Designer.
|
|
||||||
|
|
||||||
The latest version of this documentation can be found on-line at
|
|
||||||
<ulink role="online-location" url="https://developer.gnome.org/gladeui/stable/">
|
|
||||||
https://developer.gnome.org/gladeui/stable
|
|
||||||
</ulink>.
|
|
||||||
</releaseinfo>
|
|
||||||
</bookinfo>
|
|
||||||
|
|
||||||
<part id="catalog">
|
|
||||||
<title>Adding your custom widgets</title>
|
|
||||||
<xi:include href="catalogintro.sgml"/>
|
|
||||||
<xi:include href="widgetclasses.sgml"/>
|
|
||||||
<xi:include href="properties.sgml"/>
|
|
||||||
<xi:include href="gladepython.sgml"/>
|
|
||||||
<xi:include href="gladegjs.sgml"/>
|
|
||||||
</part>
|
|
||||||
|
|
||||||
<part id="core">
|
|
||||||
<title>Glade Core</title>
|
|
||||||
<xi:include href="xml/glade-init.xml"/>
|
|
||||||
<xi:include href="xml/glade-catalog.xml"/>
|
|
||||||
<xi:include href="xml/glade-app.xml"/>
|
|
||||||
<xi:include href="xml/glade-project.xml"/>
|
|
||||||
<xi:include href="xml/glade-widget.xml"/>
|
|
||||||
<xi:include href="xml/glade-widget-adaptor.xml"/>
|
|
||||||
<xi:include href="xml/glade-widget-action.xml"/>
|
|
||||||
<xi:include href="xml/glade-widget-action-def.xml"/>
|
|
||||||
<xi:include href="xml/glade-fixed.xml"/>
|
|
||||||
<xi:include href="xml/glade-property.xml"/>
|
|
||||||
<xi:include href="xml/glade-property-def.xml"/>
|
|
||||||
<xi:include href="xml/glade-command.xml"/>
|
|
||||||
<xi:include href="xml/glade-clipboard.xml"/>
|
|
||||||
<xi:include href="xml/glade-base-editor.xml"/>
|
|
||||||
<xi:include href="xml/glade-placeholder.xml"/>
|
|
||||||
<xi:include href="xml/glade-signal.xml"/>
|
|
||||||
<xi:include href="xml/glade-signal-def.xml"/>
|
|
||||||
<xi:include href="xml/glade-name-context.xml"/>
|
|
||||||
<xi:include href="xml/glade-xml-utils.xml"/>
|
|
||||||
</part>
|
|
||||||
|
|
||||||
<part id="dockables">
|
|
||||||
<title>Dockable Glade UI Widgets</title>
|
|
||||||
<xi:include href="xml/glade-editable.xml"/>
|
|
||||||
<xi:include href="xml/glade-editor.xml"/>
|
|
||||||
<xi:include href="xml/glade-editor-property.xml"/>
|
|
||||||
<xi:include href="xml/glade-palette.xml"/>
|
|
||||||
<xi:include href="xml/glade-inspector.xml"/>
|
|
||||||
<xi:include href="xml/glade-signal-editor.xml"/>
|
|
||||||
<xi:include href="xml/glade-previewer.xml"/>
|
|
||||||
<xi:include href="xml/glade-design-view.xml"/>
|
|
||||||
<xi:include href="xml/glade-preview.xml"/>
|
|
||||||
<xi:include href="xml/glade-adaptor-chooser.xml"/>
|
|
||||||
<xi:include href="xml/glade-property-label.xml"/>
|
|
||||||
<xi:include href="xml/glade-property-shell.xml"/>
|
|
||||||
</part>
|
|
||||||
|
|
||||||
<part id="misc">
|
|
||||||
<title>Miscellaneous utilities</title>
|
|
||||||
<xi:include href="xml/glade-cell-renderer-icon.xml"/>
|
|
||||||
<xi:include href="xml/glade-object-stub.xml"/>
|
|
||||||
<xi:include href="xml/glade-signal-model.xml"/>
|
|
||||||
<xi:include href="xml/glade-utils.xml"/>
|
|
||||||
</part>
|
|
||||||
|
|
||||||
<index id="api-index-full">
|
|
||||||
<title>Index</title>
|
|
||||||
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
|
|
||||||
</index>
|
|
||||||
<index id="api-index-deprecated" role="deprecated">
|
|
||||||
<title>Index of deprecated symbols</title>
|
|
||||||
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
|
|
||||||
</index>
|
|
||||||
|
|
||||||
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
|
||||||
</book>
|
|
@ -2,17 +2,19 @@
|
|||||||
|
|
||||||
glade_app_get_type
|
glade_app_get_type
|
||||||
glade_clipboard_get_type
|
glade_clipboard_get_type
|
||||||
|
glade_clipboard_view_get_type
|
||||||
glade_command_get_type
|
glade_command_get_type
|
||||||
glade_editor_get_type
|
glade_editor_get_type
|
||||||
glade_editor_property_get_type
|
glade_editor_property_get_type
|
||||||
|
glade_fixed_get_type
|
||||||
glade_palette_get_type
|
glade_palette_get_type
|
||||||
glade_placeholder_get_type
|
glade_placeholder_get_type
|
||||||
glade_project_get_type
|
glade_project_get_type
|
||||||
glade_inspector_get_type
|
glade_inspector_get_type
|
||||||
glade_property_get_type
|
glade_property_get_type
|
||||||
glade_signal_get_type
|
|
||||||
glade_widget_get_type
|
glade_widget_get_type
|
||||||
glade_widget_adaptor_get_type
|
glade_widget_adaptor_get_type
|
||||||
glade_design_view_get_type
|
glade_design_view_get_type
|
||||||
|
glade_design_layout_get_type
|
||||||
glade_base_editor_get_type
|
glade_base_editor_get_type
|
||||||
glade_widget_action_get_type
|
glade_widget_action_get_type
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
private_doc_headers = [
|
|
||||||
'glade-builtins.h',
|
|
||||||
'glade-debug.h',
|
|
||||||
'glade-design-private.h',
|
|
||||||
'glade-drag.h',
|
|
||||||
'glade-accumulators.h',
|
|
||||||
'glade-marshallers.h',
|
|
||||||
'glade-paths.h',
|
|
||||||
'glade-custom.h',
|
|
||||||
'glade-cursor.h',
|
|
||||||
'glade-id-allocator.h',
|
|
||||||
'glade.h',
|
|
||||||
'glade-design-layout.h',
|
|
||||||
'glade-popup.h',
|
|
||||||
'glade-gtk.h',
|
|
||||||
'glade-palette-expander.h',
|
|
||||||
'glade-palette-item.h',
|
|
||||||
'glade-named-icon-chooser-dialog.h',
|
|
||||||
'glade-palette-box.h',
|
|
||||||
'glade-private.h',
|
|
||||||
]
|
|
||||||
|
|
||||||
content_files = files(
|
|
||||||
'catalogintro.sgml',
|
|
||||||
'gladepython.sgml',
|
|
||||||
'properties.sgml',
|
|
||||||
'widgetclasses.sgml',
|
|
||||||
)
|
|
||||||
|
|
||||||
version_conf = configuration_data()
|
|
||||||
version_conf.set('PACKAGE_STRING', '@0@ @1@'.format(glade_name, glade_version))
|
|
||||||
|
|
||||||
content_files += configure_file(
|
|
||||||
input: 'version.xml.in',
|
|
||||||
output: '@BASENAME@',
|
|
||||||
configuration: version_conf,
|
|
||||||
)
|
|
||||||
|
|
||||||
gnome.gtkdoc(
|
|
||||||
gladeui_name,
|
|
||||||
main_xml: gladeui_name + '-docs.xml',
|
|
||||||
module_version: gladeui_major_version.to_string(),
|
|
||||||
src_dir: gladeui_inc,
|
|
||||||
ignore_headers: private_doc_headers,
|
|
||||||
include_directories: top_inc,
|
|
||||||
dependencies: libgladeui_dep,
|
|
||||||
content_files: content_files,
|
|
||||||
install: true,
|
|
||||||
)
|
|
@ -1,19 +1,19 @@
|
|||||||
<refentry id="properties" revision="8 Feb 2006">
|
<refentry id="properties" revision="8 Feb 2006">
|
||||||
<refmeta>
|
<refmeta>
|
||||||
<refentrytitle>Property Definitions</refentrytitle>
|
<refentrytitle>Property Class Definitions</refentrytitle>
|
||||||
<refmiscinfo>Glade UI</refmiscinfo>
|
<refmiscinfo>Glade UI</refmiscinfo>
|
||||||
</refmeta>
|
</refmeta>
|
||||||
<refnamediv>
|
<refnamediv>
|
||||||
<refname>Property Definitions</refname>
|
<refname>Property Classes</refname>
|
||||||
<refpurpose>
|
<refpurpose>
|
||||||
How to augment or define a #GladePropertyDef
|
How to augment or define a #GladePropertyClass
|
||||||
</refpurpose>
|
</refpurpose>
|
||||||
</refnamediv>
|
</refnamediv>
|
||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Property Definition Configuration</title>
|
<title>Property Class Configuration</title>
|
||||||
<para>
|
<para>
|
||||||
Properties are introspected at load time and loaded into #GladePropertyDef structures.
|
Properties are introspected at load time and loaded into #GladePropertyClass structures.
|
||||||
The behaviour of properties can be modified by the catalog and fake properties can be added
|
The behaviour of properties can be modified by the catalog and fake properties can be added
|
||||||
for editing purposes. Here is an example of the xml form:
|
for editing purposes. Here is an example of the xml form:
|
||||||
<programlisting><![CDATA[...
|
<programlisting><![CDATA[...
|
||||||
@ -30,6 +30,7 @@ for editing purposes. Here is an example of the xml form:
|
|||||||
... values here
|
... values here
|
||||||
|
|
||||||
</displayable-values>
|
</displayable-values>
|
||||||
|
|
||||||
</property>
|
</property>
|
||||||
|
|
||||||
...]]></programlisting>
|
...]]></programlisting>
|
||||||
@ -43,7 +44,7 @@ Properties of the 'property' tag:
|
|||||||
<term>id</term>
|
<term>id</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
This is mandatory and specifies the property that we are modifying (or adding)
|
This is manditory and specifies the property that we are modifying (or adding)
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
@ -210,7 +211,7 @@ the widget when pasted to a new container that supports the same properties.
|
|||||||
<term>save-always</term>
|
<term>save-always</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Specifies that the property should be saved regardless of its value (properties at their
|
Specifies that the property should be saved regardless of its value (properties at thier
|
||||||
default values are normally not saved).
|
default values are normally not saved).
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -16,7 +16,7 @@ Adding support for custom widgets
|
|||||||
<para>
|
<para>
|
||||||
Widget support in Glade is provided by the #GladeWidgetAdaptor object, each
|
Widget support in Glade is provided by the #GladeWidgetAdaptor object, each
|
||||||
`glade-widget-class' definition in the catalog will result in the creation
|
`glade-widget-class' definition in the catalog will result in the creation
|
||||||
of an adaptor, which inherits the functionality of the adaptor created for its
|
of an adaptor, which inherits the funcionality of the adaptor created for its
|
||||||
parent, or the closest adaptor available in the ancestry. Adaptor methods can
|
parent, or the closest adaptor available in the ancestry. Adaptor methods can
|
||||||
be overridden by functions in the plugin by specifying them in the catalog.
|
be overridden by functions in the plugin by specifying them in the catalog.
|
||||||
There is also a wealth of options you can use in the `glade-widget-class' without
|
There is also a wealth of options you can use in the `glade-widget-class' without
|
||||||
@ -31,43 +31,57 @@ A typical basic example of a widget class definition is as follows:
|
|||||||
Here is the complete example of the form of the `glade-widget-class' definition:
|
Here is the complete example of the form of the `glade-widget-class' definition:
|
||||||
<programlisting>
|
<programlisting>
|
||||||
<![CDATA[<glade-widget-class name="FooFrobnicator" generic-name="frobnicator" title="Frobnicator"/>
|
<![CDATA[<glade-widget-class name="FooFrobnicator" generic-name="frobnicator" title="Frobnicator"/>
|
||||||
|
|
||||||
<post-create-function>foo_frobnicator_plugin_post_create</post-create-function>
|
<post-create-function>foo_frobnicator_plugin_post_create</post-create-function>
|
||||||
|
|
||||||
... widget class support functions go here
|
... widget class support functions go here
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
|
||||||
<property id="frobnicated" default="False"/>
|
<property id="frobnicated" default="False"/>
|
||||||
|
|
||||||
... property definitions go here
|
... property definitions go here
|
||||||
|
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<signals>
|
<signals>
|
||||||
|
|
||||||
<signal id="frobnicate" since="1.0"/>
|
<signal id="frobnicate" since="1.0"/>
|
||||||
|
|
||||||
... signal definitions go here
|
... signal definitions go here
|
||||||
|
|
||||||
</signals>
|
</signals>
|
||||||
|
|
||||||
<packing-properties>
|
<packing-properties>
|
||||||
|
|
||||||
... child packing property definitions go here
|
... child packing property definitions go here
|
||||||
|
|
||||||
</packing-properties>
|
</packing-properties>
|
||||||
|
|
||||||
<actions>
|
<actions>
|
||||||
|
|
||||||
<action id="launch_editor" name="Edit Frob" stock="gtk-edit"/>
|
<action id="launch_editor" name="Edit Frob" stock="gtk-edit"/>
|
||||||
|
|
||||||
... context menu action definitions go here
|
... context menu action definitions go here
|
||||||
|
|
||||||
</actions>
|
</actions>
|
||||||
|
|
||||||
<packing-actions>
|
<packing-actions>
|
||||||
|
|
||||||
... context menu action definitions for child objects go here
|
... context menu action definitions for child objects go here
|
||||||
|
|
||||||
</packing-actions>
|
</packing-actions>
|
||||||
|
|
||||||
<packing-defaults>
|
<packing-defaults>
|
||||||
|
|
||||||
<parent-class name="GtkVBox">
|
<parent-class name="GtkVBox">
|
||||||
<child-property id="expand" default="false"/>
|
<child-property id="expand" default="false"/>
|
||||||
</parent-class>
|
</parent-class>
|
||||||
|
|
||||||
... packing default definitions go here
|
... packing default definitions go here
|
||||||
|
|
||||||
</packing-defaults>
|
</packing-defaults>
|
||||||
|
|
||||||
</glade-widget-class>]]></programlisting>
|
</glade-widget-class>]]></programlisting>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@ -76,7 +90,7 @@ Here is the complete example of the form of the `glade-widget-class' definition:
|
|||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Widget Class Properties</title>
|
<title>Widget Class Properties</title>
|
||||||
<para>
|
<para>
|
||||||
The following are all properties of the `glade-widget-class' tag
|
The following are all properies of the `glade-widget-class' tag
|
||||||
</para>
|
</para>
|
||||||
<variablelist>
|
<variablelist>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
@ -168,7 +182,7 @@ tree and will be translated before use in the interface.
|
|||||||
<para>
|
<para>
|
||||||
Use this to specify the name of the parent your widget derives from, you
|
Use this to specify the name of the parent your widget derives from, you
|
||||||
can use this option instead of loading a real widget type (this allows you
|
can use this option instead of loading a real widget type (this allows you
|
||||||
to fake derive and still add properties and run your catalog independently
|
to fake derive and still add properties and run your catalog independantly
|
||||||
of any plugins or libraries).
|
of any plugins or libraries).
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -188,7 +202,7 @@ in Glade context. This property will be inherited from the adaptors parent.
|
|||||||
<term>fixed</term>
|
<term>fixed</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Used to mark a #GladeWidgetAdaptor for free form placement capacities
|
Used to mark a #GladeWidgetClass for free form placement capacities
|
||||||
to be handled with a #GladeFixed. This property will be inherited from the adaptors parent.
|
to be handled with a #GladeFixed. This property will be inherited from the adaptors parent.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -506,7 +520,7 @@ are added to the toolbar.
|
|||||||
<para>
|
<para>
|
||||||
Default values can be specified for packing properties on your widget when added
|
Default values can be specified for packing properties on your widget when added
|
||||||
to a said type of parent, as the example shows above; use the `parent-class' to
|
to a said type of parent, as the example shows above; use the `parent-class' to
|
||||||
specify what parent (or derivative of that parent) you are targeting and fill
|
specify what parent (or derivative of that parent) you are targetting and fill
|
||||||
in any `child-property' tags you need for that parent using `id' property to
|
in any `child-property' tags you need for that parent using `id' property to
|
||||||
specify the property name and the `default' property for the value.
|
specify the property name and the `default' property for the value.
|
||||||
</para>
|
</para>
|
||||||
@ -542,7 +556,7 @@ and GENERIC_NAME is the value of an widget class's generic name attribute.
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
To explicitly set an icon name for a widget class, the "icon-name" attribute of the
|
To explicity set an icon name for a widget class, the "icon-name" attribute of the
|
||||||
"glade-widget-class" element can be specified. This will override the default icon
|
"glade-widget-class" element can be specified. This will override the default icon
|
||||||
name assigned to the widget class.
|
name assigned to the widget class.
|
||||||
</para>
|
</para>
|
||||||
|
40
glade.doap
@ -1,40 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
|
|
||||||
xmlns:foaf="http://xmlns.com/foaf/0.1/"
|
|
||||||
xmlns:gnome="http://api.gnome.org/doap-extensions#"
|
|
||||||
xmlns="http://usefulinc.com/ns/doap#">
|
|
||||||
|
|
||||||
<name xml:lang="en">Glade Interface Designer</name>
|
|
||||||
<description>Glade is a RAD tool to enable quick and easy development of user interfaces for the GTK+ 3 toolkit and the GNOME desktop environment.</description>
|
|
||||||
<shortdesc xml:lang="en">User Interface Builder for GTK+ applications</shortdesc>
|
|
||||||
<homepage rdf:resource="http://glade.gnome.org/" />
|
|
||||||
<developer-forum rdf:resource="https://discourse.gnome.org/tag/glade" />
|
|
||||||
<download-page rdf:resource="https://download.gnome.org/sources/glade/" />
|
|
||||||
<bug-database rdf:resource="https://gitlab.gnome.org/GNOME/glade/issues" />
|
|
||||||
|
|
||||||
<category rdf:resource="http://api.gnome.org/doap-extensions#apps" />
|
|
||||||
<programming-language>C</programming-language>
|
|
||||||
|
|
||||||
<!-- <maintainer>
|
|
||||||
<foaf:Person>
|
|
||||||
<foaf:name>Tristan Van Berkom</foaf:name>
|
|
||||||
<foaf:mbox rdf:resource="mailto:tristan.van.berkom@gmail.com" />
|
|
||||||
<gnome:userid>tvb</gnome:userid>
|
|
||||||
</foaf:Person>
|
|
||||||
</maintainer> -->
|
|
||||||
<maintainer>
|
|
||||||
<foaf:Person>
|
|
||||||
<foaf:name>Juan Pablo Ugarte</foaf:name>
|
|
||||||
<foaf:mbox rdf:resource="mailto:juanpablougarte@gmail.com" />
|
|
||||||
<gnome:userid>jpu</gnome:userid>
|
|
||||||
</foaf:Person>
|
|
||||||
</maintainer>
|
|
||||||
<maintainer>
|
|
||||||
<foaf:Person>
|
|
||||||
<foaf:name>Alberto Fanjul Alonso</foaf:name>
|
|
||||||
<foaf:mbox rdf:resource="mailto:albfan@gnome.org" />
|
|
||||||
<gnome:userid>albfan</gnome:userid>
|
|
||||||
</foaf:Person>
|
|
||||||
</maintainer>
|
|
||||||
</Project>
|
|
38
glade3.doap
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
|
||||||
|
xmlns:foaf="http://xmlns.com/foaf/0.1/"
|
||||||
|
xmlns:gnome="http://api.gnome.org/doap-extensions#"
|
||||||
|
xmlns="http://usefulinc.com/ns/doap#">
|
||||||
|
|
||||||
|
<name xml:lang="en">Glade Interface Designer</name>
|
||||||
|
<shortdesc xml:lang="en">User Interface Builder for GTK+ applications</shortdesc>
|
||||||
|
<homepage rdf:resource="http://glade.gnome.org/" />
|
||||||
|
<mailing-list rdf:resource="http://lists.ximian.com/mailman/listinfo/glade-devel" />
|
||||||
|
<download-page rdf:resource="http://download.gnome.org/sources/glade3/" />
|
||||||
|
<bug-database rdf:resource="http://bugzilla.gnome.org/browse.cgi?product=glade3" />
|
||||||
|
|
||||||
|
<!-- DOAP category: This is used to categorize repositories in cgit.
|
||||||
|
Pulse has taken its best guess at the correct category. You may
|
||||||
|
want to replace the rdf:resource attribute with one of the following:
|
||||||
|
http://api.gnome.org/doap-extensions#admin
|
||||||
|
http://api.gnome.org/doap-extensions#bindings
|
||||||
|
http://api.gnome.org/doap-extensions#deprecated
|
||||||
|
http://api.gnome.org/doap-extensions#desktop
|
||||||
|
http://api.gnome.org/doap-extensions#development
|
||||||
|
http://api.gnome.org/doap-extensions#infrastructure
|
||||||
|
http://api.gnome.org/doap-extensions#platform
|
||||||
|
http://api.gnome.org/doap-extensions#productivity
|
||||||
|
NOTE: There is an "Other" categorization on cgit, but we do not have a
|
||||||
|
DOAP category for it. If your module does not belong to one of these
|
||||||
|
groups, then do not include a category property in your DOAP file.
|
||||||
|
-->
|
||||||
|
<category rdf:resource="http://api.gnome.org/doap-extensions#development" />
|
||||||
|
|
||||||
|
<maintainer>
|
||||||
|
<foaf:Person>
|
||||||
|
<foaf:name>Tristan Van Berkom</foaf:name>
|
||||||
|
<foaf:mbox rdf:resource="tristan.van.berkom@gmail.com" />
|
||||||
|
<gnome:userid>tvb</gnome:userid>
|
||||||
|
</foaf:Person>
|
||||||
|
</maintainer>
|
||||||
|
</Project>
|
6
gladeui/.gitignore
vendored
@ -1,6 +0,0 @@
|
|||||||
/glade-marshallers.c
|
|
||||||
/glade-marshallers.h
|
|
||||||
/gladeui.rc
|
|
||||||
|
|
||||||
/glade-previewer
|
|
||||||
/glade-previewer.rc
|
|
170
gladeui/Makefile.am
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
|
||||||
|
common_defines = \
|
||||||
|
-DG_LOG_DOMAIN=\"GladeUI\" \
|
||||||
|
-DGLADE_DATADIR="\"$(pkgdatadir)\"" \
|
||||||
|
-DGLADE_LIBDIR="\"$(pkglibdir)\"" \
|
||||||
|
-DGLADE_CATALOGSDIR="\"$(pkgdatadir)/catalogs\""\
|
||||||
|
-DGLADE_MODULESDIR="\"$(pkglibdir)/modules\"" \
|
||||||
|
-DGLADE_PLUGINSDIR="\"$(pkglibdir)/plugins\"" \
|
||||||
|
-DGLADE_PIXMAPSDIR="\"$(pkgdatadir)/pixmaps\"" \
|
||||||
|
-DGLADE_LOCALEDIR="\"$(datadir)/locale\""
|
||||||
|
|
||||||
|
lib_LTLIBRARIES = libgladeui-1.la
|
||||||
|
|
||||||
|
BUILT_SOURCES = glade-marshallers.c glade-marshallers.h
|
||||||
|
|
||||||
|
EXTRA_DIST = glade-marshallers.list gladeui.rc.in icon-naming-spec.c
|
||||||
|
|
||||||
|
# The glade-3 core library
|
||||||
|
libgladeui_1_la_SOURCES = \
|
||||||
|
glade-widget-adaptor.c \
|
||||||
|
glade-debug.c \
|
||||||
|
glade-project.c \
|
||||||
|
glade-parameter.c \
|
||||||
|
glade-placeholder.c \
|
||||||
|
glade-custom.c \
|
||||||
|
glade-inspector.c \
|
||||||
|
glade-xml-utils.c \
|
||||||
|
glade-palette.c \
|
||||||
|
glade-palette-item.c \
|
||||||
|
glade-palette-box.c \
|
||||||
|
glade-palette-expander.c \
|
||||||
|
glade-design-layout.c \
|
||||||
|
glade-design-view.c \
|
||||||
|
glade-named-icon-chooser-dialog.c \
|
||||||
|
glade-named-icon-chooser-dialog.h \
|
||||||
|
glade-cursor.c \
|
||||||
|
glade-catalog.c \
|
||||||
|
glade-property.c \
|
||||||
|
glade-property-class.c \
|
||||||
|
glade-popup.c \
|
||||||
|
glade-widget.c \
|
||||||
|
glade-editor-property.c \
|
||||||
|
glade-editor.c \
|
||||||
|
glade-utils.c \
|
||||||
|
glade-signal.c \
|
||||||
|
glade-signal-editor.c \
|
||||||
|
glade-clipboard.c \
|
||||||
|
glade-clipboard-view.c \
|
||||||
|
glade-command.c \
|
||||||
|
glade-id-allocator.c \
|
||||||
|
glade-id-allocator.h \
|
||||||
|
glade-marshallers.c \
|
||||||
|
glade-accumulators.c \
|
||||||
|
glade-builtins.c \
|
||||||
|
glade-app.c \
|
||||||
|
glade-fixed.c \
|
||||||
|
glade-base-editor.c \
|
||||||
|
glade-palette-item.h \
|
||||||
|
glade-palette-box.h \
|
||||||
|
glade-palette-expander.h \
|
||||||
|
glade-popup.h \
|
||||||
|
glade-marshallers.h \
|
||||||
|
glade-accumulators.h \
|
||||||
|
glade-widget-action.c \
|
||||||
|
glade-name-context.c \
|
||||||
|
glade-displayable-values.c \
|
||||||
|
glade-editable.c \
|
||||||
|
glade-editor-table.c
|
||||||
|
|
||||||
|
libgladeui_1_la_CPPFLAGS = \
|
||||||
|
$(common_defines) \
|
||||||
|
-I$(top_srcdir) \
|
||||||
|
-I$(top_builddir) \
|
||||||
|
$(AM_CPPFLAGS)
|
||||||
|
|
||||||
|
libgladeui_1_la_CFLAGS = \
|
||||||
|
$(GTK_CFLAGS) \
|
||||||
|
$(IGE_MAC_BUNDLE_FLAG) \
|
||||||
|
$(IGE_MAC_CFLAGS) \
|
||||||
|
$(WARN_CFLAGS) \
|
||||||
|
$(AM_CFLAGS)
|
||||||
|
|
||||||
|
libgladeui_1_la_LDFLAGS = -version-info $(GLADE_CURRENT):$(GLADE_REVISION):$(GLADE_AGE) $(AM_LDFLAGS)
|
||||||
|
libgladeui_1_la_LIBADD = $(GTK_LIBS) $(IGE_MAC_LIBS)
|
||||||
|
|
||||||
|
|
||||||
|
libgladeuiincludedir=$(includedir)/libgladeui-1.0/gladeui
|
||||||
|
libgladeuiinclude_HEADERS = \
|
||||||
|
glade.h \
|
||||||
|
glade-debug.h \
|
||||||
|
glade-project.h \
|
||||||
|
glade-inspector.h \
|
||||||
|
glade-parameter.h \
|
||||||
|
glade-placeholder.h \
|
||||||
|
glade-custom.h \
|
||||||
|
glade-editor.h \
|
||||||
|
glade-editor-property.h \
|
||||||
|
glade-signal-editor.h \
|
||||||
|
glade-palette.h \
|
||||||
|
glade-palette-item.h \
|
||||||
|
glade-design-layout.h \
|
||||||
|
glade-design-view.h \
|
||||||
|
glade-widget.h \
|
||||||
|
glade-widget-adaptor.h \
|
||||||
|
glade-property.h \
|
||||||
|
glade-property-class.h \
|
||||||
|
glade-utils.h \
|
||||||
|
glade-clipboard.h \
|
||||||
|
glade-clipboard-view.h \
|
||||||
|
glade-command.h \
|
||||||
|
glade-app.h \
|
||||||
|
glade-builtins.h \
|
||||||
|
glade-fixed.h \
|
||||||
|
glade-base-editor.h \
|
||||||
|
glade-xml-utils.h \
|
||||||
|
glade-signal.h \
|
||||||
|
glade-cursor.h \
|
||||||
|
glade-catalog.h \
|
||||||
|
glade-widget-action.h \
|
||||||
|
glade-name-context.h \
|
||||||
|
glade-displayable-values.h \
|
||||||
|
glade-editable.h \
|
||||||
|
glade-editor-table.h
|
||||||
|
|
||||||
|
|
||||||
|
if PLATFORM_WIN32
|
||||||
|
libgladeui_1_la_LDFLAGS += -no-undefined
|
||||||
|
endif
|
||||||
|
|
||||||
|
if NATIVE_WIN32
|
||||||
|
libgladeui_1_la_LDFLAGS += -Wl,gladeui-win32-res.o -export-symbols gladeui.def
|
||||||
|
libgladeui_1_la_DEPENDENCIES = gladeui-win32-res.o gladeui.def
|
||||||
|
endif
|
||||||
|
|
||||||
|
gladeui-win32-res.o: gladeui.rc
|
||||||
|
$(WINDRES) $< $@
|
||||||
|
|
||||||
|
# gladeui.def: auto-generated DEF file for linker input
|
||||||
|
# The routines below will scan the header files and extracts symbol declarations.
|
||||||
|
# The symbol 'custom_get_type' is added manually. It's naming deviates from
|
||||||
|
# the pattern set by all other public symbols in the glade namespace.
|
||||||
|
#
|
||||||
|
gladeui.def: $(libgladeuiinclude_HEADERS)
|
||||||
|
@echo Generating $@
|
||||||
|
@(echo EXPORTS; \
|
||||||
|
echo 'custom_get_type'; \
|
||||||
|
(cd $(srcdir); cat $(libgladeuiinclude_HEADERS) || echo 'glade_ERROR ()' ) | \
|
||||||
|
grep -v -E '^# *include' | \
|
||||||
|
grep -v -E '^# *define' | \
|
||||||
|
grep -E '[^\(]glade_.*[[:space:]]+\(.*' | \
|
||||||
|
sed -e 's/[ ]*(.*//' | \
|
||||||
|
sed -e 's/.*glade_/glade_/' | \
|
||||||
|
sort; \
|
||||||
|
) >$@
|
||||||
|
@ ! grep -q glade_ERROR $@ || ($(RM) $@; false)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Marshaller generation
|
||||||
|
#
|
||||||
|
glade-marshallers.h: glade-marshallers.list $(GLIB_GENMARSHAL)
|
||||||
|
$(GLIB_GENMARSHAL) --prefix=glade_marshal $(srcdir)/glade-marshallers.list --header > glade-marshallers-h.tmp \
|
||||||
|
&& mv glade-marshallers-h.tmp glade-marshallers.h \
|
||||||
|
|| ( rm -f glade-marshallers-h.tmp && exit 1)
|
||||||
|
glade-marshallers.c: glade-marshallers.list $(GLIB_GENMARSHAL)
|
||||||
|
$(GLIB_GENMARSHAL) --prefix=glade_marshal $(srcdir)/glade-marshallers.list --body --header > glade-marshallers-c.tmp \
|
||||||
|
&& mv glade-marshallers-c.tmp glade-marshallers.c \
|
||||||
|
|| ( rm -f glade-marshallers-c.tmp && exit 1 )
|
||||||
|
|
||||||
|
|
||||||
|
CLEANFILES = $(BUILT_SOURCES) gladeui.def
|
BIN
gladeui/atk.png
Before Width: | Height: | Size: 914 B |
@ -1,3 +1,4 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
||||||
/*
|
/*
|
||||||
* glade-clipboard.c - An object for handling Cut/Copy/Paste.
|
* glade-clipboard.c - An object for handling Cut/Copy/Paste.
|
||||||
*
|
*
|
||||||
@ -18,7 +19,7 @@
|
|||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||||
* USA.
|
* USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -30,7 +31,7 @@
|
|||||||
|
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
_glade_single_object_accumulator (GSignalInvocationHint *ihint,
|
glade_single_object_accumulator (GSignalInvocationHint *ihint,
|
||||||
GValue *return_accu,
|
GValue *return_accu,
|
||||||
const GValue *handler_return,
|
const GValue *handler_return,
|
||||||
gpointer dummy)
|
gpointer dummy)
|
||||||
@ -42,7 +43,7 @@ _glade_single_object_accumulator (GSignalInvocationHint *ihint,
|
|||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
_glade_integer_handled_accumulator (GSignalInvocationHint *ihint,
|
glade_integer_handled_accumulator (GSignalInvocationHint *ihint,
|
||||||
GValue *return_accu,
|
GValue *return_accu,
|
||||||
const GValue *handler_return,
|
const GValue *handler_return,
|
||||||
gpointer dummy)
|
gpointer dummy)
|
||||||
@ -59,7 +60,7 @@ _glade_integer_handled_accumulator (GSignalInvocationHint *ihint,
|
|||||||
|
|
||||||
/* From gtkmain.c */
|
/* From gtkmain.c */
|
||||||
gboolean
|
gboolean
|
||||||
_glade_boolean_handled_accumulator (GSignalInvocationHint *ihint,
|
glade_boolean_handled_accumulator (GSignalInvocationHint *ihint,
|
||||||
GValue *return_accu,
|
GValue *return_accu,
|
||||||
const GValue *handler_return,
|
const GValue *handler_return,
|
||||||
gpointer dummy)
|
gpointer dummy)
|
||||||
@ -75,14 +76,14 @@ _glade_boolean_handled_accumulator (GSignalInvocationHint *ihint,
|
|||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
_glade_string_accumulator (GSignalInvocationHint *ihint,
|
glade_string_accumulator (GSignalInvocationHint *ihint,
|
||||||
GValue *return_accu,
|
GValue *return_accu,
|
||||||
const GValue *handler_return,
|
const GValue *handler_return,
|
||||||
gpointer dummy)
|
gpointer dummy)
|
||||||
{
|
{
|
||||||
const gchar *handler_str;
|
const gchar *handler_str;
|
||||||
|
|
||||||
g_free ((void *) g_value_get_string (return_accu));
|
g_free ((void *)g_value_get_string (return_accu));
|
||||||
|
|
||||||
handler_str = g_value_get_string (handler_return);
|
handler_str = g_value_get_string (handler_return);
|
||||||
g_value_set_string (return_accu, handler_str);
|
g_value_set_string (return_accu, handler_str);
|
||||||
@ -91,20 +92,7 @@ _glade_string_accumulator (GSignalInvocationHint *ihint,
|
|||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
_glade_strv_handled_accumulator (GSignalInvocationHint *ihint,
|
glade_stop_emission_accumulator (GSignalInvocationHint *ihint,
|
||||||
GValue *return_accu,
|
|
||||||
const GValue *handler_return, gpointer dummy)
|
|
||||||
{
|
|
||||||
const gchar **handler_strv;
|
|
||||||
|
|
||||||
handler_strv = g_value_get_boxed (handler_return);
|
|
||||||
g_value_set_boxed (return_accu, handler_strv);
|
|
||||||
|
|
||||||
return (handler_strv == NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
_glade_stop_emission_accumulator (GSignalInvocationHint *ihint,
|
|
||||||
GValue *return_accu,
|
GValue *return_accu,
|
||||||
const GValue *handler_return,
|
const GValue *handler_return,
|
||||||
gpointer dummy)
|
gpointer dummy)
|
||||||
|
@ -1,27 +1,4 @@
|
|||||||
/*
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
||||||
* glade-clipboard.h
|
|
||||||
*
|
|
||||||
* Copyright (C) 2005 The GNOME Foundation.
|
|
||||||
*
|
|
||||||
* Author(s):
|
|
||||||
* Tristan Van Berkom <tvb@gnome.org>
|
|
||||||
*
|
|
||||||
* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
|
||||||
* USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLADE_ACCUMULATORS_H__
|
#ifndef __GLADE_ACCUMULATORS_H__
|
||||||
#define __GLADE_ACCUMULATORS_H__
|
#define __GLADE_ACCUMULATORS_H__
|
||||||
|
|
||||||
@ -29,32 +6,27 @@
|
|||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
gboolean _glade_single_object_accumulator (GSignalInvocationHint *ihint,
|
gboolean glade_single_object_accumulator (GSignalInvocationHint *ihint,
|
||||||
GValue *return_accu,
|
GValue *return_accu,
|
||||||
const GValue *handler_return,
|
const GValue *handler_return,
|
||||||
gpointer dummy);
|
gpointer dummy);
|
||||||
|
|
||||||
gboolean _glade_integer_handled_accumulator (GSignalInvocationHint *ihint,
|
gboolean glade_integer_handled_accumulator (GSignalInvocationHint *ihint,
|
||||||
GValue *return_accu,
|
GValue *return_accu,
|
||||||
const GValue *handler_return,
|
const GValue *handler_return,
|
||||||
gpointer dummy);
|
gpointer dummy);
|
||||||
|
|
||||||
gboolean _glade_boolean_handled_accumulator (GSignalInvocationHint *ihint,
|
gboolean glade_boolean_handled_accumulator (GSignalInvocationHint *ihint,
|
||||||
GValue *return_accu,
|
GValue *return_accu,
|
||||||
const GValue *handler_return,
|
const GValue *handler_return,
|
||||||
gpointer dummy);
|
gpointer dummy);
|
||||||
|
|
||||||
gboolean _glade_string_accumulator (GSignalInvocationHint *ihint,
|
gboolean glade_string_accumulator (GSignalInvocationHint *ihint,
|
||||||
GValue *return_accu,
|
GValue *return_accu,
|
||||||
const GValue *handler_return,
|
const GValue *handler_return,
|
||||||
gpointer dummy);
|
gpointer dummy);
|
||||||
|
|
||||||
gboolean _glade_strv_handled_accumulator (GSignalInvocationHint *ihint,
|
gboolean glade_stop_emission_accumulator (GSignalInvocationHint *ihint,
|
||||||
GValue *return_accu,
|
|
||||||
const GValue *handler_return,
|
|
||||||
gpointer dummy);
|
|
||||||
|
|
||||||
gboolean _glade_stop_emission_accumulator (GSignalInvocationHint *ihint,
|
|
||||||
GValue *return_accu,
|
GValue *return_accu,
|
||||||
const GValue *handler_return,
|
const GValue *handler_return,
|
||||||
gpointer dummy);
|
gpointer dummy);
|
||||||
|
@ -1,650 +0,0 @@
|
|||||||
/*
|
|
||||||
* glade-adaptor-chooser-widget.c
|
|
||||||
*
|
|
||||||
* Copyright (C) 2014-2017 Juan Pablo Ugarte
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU Lesser General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2.1 of
|
|
||||||
* the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This library 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
|
|
||||||
* Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
|
||||||
* License along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
* Authors:
|
|
||||||
* Juan Pablo Ugarte <juanpablougarte@gmail.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "glade-app.h"
|
|
||||||
#include "glade-private.h"
|
|
||||||
#include "gladeui-enum-types.h"
|
|
||||||
#include "glade-adaptor-chooser-widget.h"
|
|
||||||
#include "glade-dnd.h"
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
COLUMN_ADAPTOR = 0,
|
|
||||||
COLUMN_GROUP,
|
|
||||||
COLUMN_NORMALIZED_NAME,
|
|
||||||
COLUMN_NORMALIZED_NAME_LEN,
|
|
||||||
N_COLUMN
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct __GladeAdaptorChooserWidgetPrivate _GladeAdaptorChooserWidgetPrivate;
|
|
||||||
struct __GladeAdaptorChooserWidgetPrivate
|
|
||||||
{
|
|
||||||
GtkTreeView *treeview;
|
|
||||||
GtkListStore *store;
|
|
||||||
GtkTreeModelFilter *treemodelfilter;
|
|
||||||
GtkSearchEntry *searchentry;
|
|
||||||
GtkEntryCompletion *entrycompletion;
|
|
||||||
GtkScrolledWindow *scrolledwindow;
|
|
||||||
|
|
||||||
/* Needed for gtk_tree_view_column_set_cell_data_func() */
|
|
||||||
GtkTreeViewColumn *column_icon;
|
|
||||||
GtkCellRenderer *icon_cell;
|
|
||||||
GtkTreeViewColumn *column_adaptor;
|
|
||||||
GtkCellRenderer *adaptor_cell;
|
|
||||||
|
|
||||||
/* Properties */
|
|
||||||
_GladeAdaptorChooserWidgetFlags flags;
|
|
||||||
GladeProject *project;
|
|
||||||
gboolean show_group_title;
|
|
||||||
gchar *search_text;
|
|
||||||
};
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
PROP_0,
|
|
||||||
|
|
||||||
PROP_SHOW_FLAGS,
|
|
||||||
PROP_PROJECT,
|
|
||||||
PROP_SHOW_GROUP_TITLE
|
|
||||||
};
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
ADAPTOR_SELECTED,
|
|
||||||
|
|
||||||
LAST_SIGNAL
|
|
||||||
};
|
|
||||||
|
|
||||||
static guint adaptor_chooser_signals[LAST_SIGNAL] = { 0 };
|
|
||||||
|
|
||||||
G_DEFINE_TYPE_WITH_PRIVATE (_GladeAdaptorChooserWidget, _glade_adaptor_chooser_widget, GTK_TYPE_BOX)
|
|
||||||
|
|
||||||
#define GET_PRIVATE(d) ((_GladeAdaptorChooserWidgetPrivate *) _glade_adaptor_chooser_widget_get_instance_private((_GladeAdaptorChooserWidget*)d))
|
|
||||||
|
|
||||||
static void
|
|
||||||
_glade_adaptor_chooser_widget_init (_GladeAdaptorChooserWidget *chooser)
|
|
||||||
{
|
|
||||||
gtk_widget_init_template (GTK_WIDGET (chooser));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_glade_adaptor_chooser_widget_dispose (GObject *object)
|
|
||||||
{
|
|
||||||
_glade_adaptor_chooser_widget_set_project (GLADE_ADAPTOR_CHOOSER_WIDGET (object), NULL);
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (_glade_adaptor_chooser_widget_parent_class)->dispose (object);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_glade_adaptor_chooser_widget_finalize (GObject *object)
|
|
||||||
{
|
|
||||||
_GladeAdaptorChooserWidgetPrivate *priv = GET_PRIVATE (object);
|
|
||||||
|
|
||||||
g_clear_pointer (&priv->search_text, g_free);
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (_glade_adaptor_chooser_widget_parent_class)->finalize (object);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_glade_adaptor_chooser_widget_set_property (GObject *object,
|
|
||||||
guint prop_id,
|
|
||||||
const GValue *value,
|
|
||||||
GParamSpec *pspec)
|
|
||||||
{
|
|
||||||
_GladeAdaptorChooserWidgetPrivate *priv;
|
|
||||||
|
|
||||||
g_return_if_fail (GLADE_IS_ADAPTOR_CHOOSER_WIDGET (object));
|
|
||||||
|
|
||||||
priv = GET_PRIVATE (object);
|
|
||||||
|
|
||||||
switch (prop_id)
|
|
||||||
{
|
|
||||||
case PROP_SHOW_FLAGS:
|
|
||||||
priv->flags = g_value_get_flags (value);
|
|
||||||
break;
|
|
||||||
case PROP_PROJECT:
|
|
||||||
_glade_adaptor_chooser_widget_set_project (GLADE_ADAPTOR_CHOOSER_WIDGET (object),
|
|
||||||
g_value_get_object (value));
|
|
||||||
break;
|
|
||||||
case PROP_SHOW_GROUP_TITLE:
|
|
||||||
priv->show_group_title = g_value_get_boolean (value);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_glade_adaptor_chooser_widget_get_property (GObject *object,
|
|
||||||
guint prop_id,
|
|
||||||
GValue *value,
|
|
||||||
GParamSpec *pspec)
|
|
||||||
{
|
|
||||||
_GladeAdaptorChooserWidgetPrivate *priv;
|
|
||||||
|
|
||||||
g_return_if_fail (GLADE_IS_ADAPTOR_CHOOSER_WIDGET (object));
|
|
||||||
|
|
||||||
priv = GET_PRIVATE (object);
|
|
||||||
|
|
||||||
switch (prop_id)
|
|
||||||
{
|
|
||||||
case PROP_SHOW_FLAGS:
|
|
||||||
g_value_set_flags (value, priv->flags);
|
|
||||||
break;
|
|
||||||
case PROP_PROJECT:
|
|
||||||
g_value_set_object (value, priv->project);
|
|
||||||
break;
|
|
||||||
case PROP_SHOW_GROUP_TITLE:
|
|
||||||
g_value_set_boolean (value, priv->show_group_title);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline gchar *
|
|
||||||
normalize_name (const gchar *name)
|
|
||||||
{
|
|
||||||
gchar *normalized_name = g_utf8_normalize (name, -1, G_NORMALIZE_DEFAULT);
|
|
||||||
gchar *casefold_name = g_utf8_casefold (normalized_name, -1);
|
|
||||||
g_free (normalized_name);
|
|
||||||
return casefold_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void
|
|
||||||
store_append_adaptor (GtkListStore *store, GladeWidgetAdaptor *adaptor)
|
|
||||||
{
|
|
||||||
gchar *normalized_name = normalize_name (glade_widget_adaptor_get_display_name (adaptor));
|
|
||||||
|
|
||||||
gtk_list_store_insert_with_values (store, NULL, -1,
|
|
||||||
COLUMN_ADAPTOR, adaptor,
|
|
||||||
COLUMN_NORMALIZED_NAME, normalized_name,
|
|
||||||
COLUMN_NORMALIZED_NAME_LEN, strlen (normalized_name),
|
|
||||||
-1);
|
|
||||||
g_free (normalized_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
on_treeview_row_activated (GtkTreeView *tree_view,
|
|
||||||
GtkTreePath *path,
|
|
||||||
GtkTreeViewColumn *column,
|
|
||||||
_GladeAdaptorChooserWidget *chooser)
|
|
||||||
{
|
|
||||||
GtkTreeModel *model = gtk_tree_view_get_model (tree_view);
|
|
||||||
GtkTreeIter iter;
|
|
||||||
|
|
||||||
if (gtk_tree_model_get_iter (model, &iter, path))
|
|
||||||
{
|
|
||||||
GladeWidgetAdaptor *adaptor;
|
|
||||||
|
|
||||||
gtk_tree_model_get (model, &iter, COLUMN_ADAPTOR, &adaptor, -1);
|
|
||||||
|
|
||||||
if (!adaptor)
|
|
||||||
return;
|
|
||||||
|
|
||||||
/* Emit selected signal */
|
|
||||||
g_signal_emit (chooser, adaptor_chooser_signals[ADAPTOR_SELECTED], 0, adaptor);
|
|
||||||
|
|
||||||
g_object_unref (adaptor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
on_searchentry_search_changed (GtkEntry *entry,
|
|
||||||
_GladeAdaptorChooserWidget *chooser)
|
|
||||||
{
|
|
||||||
_GladeAdaptorChooserWidgetPrivate *priv = GET_PRIVATE (chooser);
|
|
||||||
const gchar *text = gtk_entry_get_text (entry);
|
|
||||||
|
|
||||||
g_clear_pointer (&priv->search_text, g_free);
|
|
||||||
|
|
||||||
if (g_utf8_strlen (text, -1))
|
|
||||||
priv->search_text = normalize_name (text);
|
|
||||||
|
|
||||||
gtk_tree_model_filter_refilter (priv->treemodelfilter);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
on_searchentry_activate (GtkEntry *entry, _GladeAdaptorChooserWidget *chooser)
|
|
||||||
{
|
|
||||||
_GladeAdaptorChooserWidgetPrivate *priv = GET_PRIVATE (chooser);
|
|
||||||
const gchar *text = gtk_entry_get_text (entry);
|
|
||||||
GladeWidgetAdaptor *adaptor;
|
|
||||||
|
|
||||||
/* try to find an adaptor by name */
|
|
||||||
if (!(adaptor = glade_widget_adaptor_get_by_name (text)))
|
|
||||||
{
|
|
||||||
GtkTreeModel *model = GTK_TREE_MODEL (priv->treemodelfilter);
|
|
||||||
gchar *normalized_name = normalize_name (text);
|
|
||||||
GtkTreeIter iter;
|
|
||||||
gboolean valid;
|
|
||||||
gint count = 0;
|
|
||||||
|
|
||||||
valid = gtk_tree_model_get_iter_first (model, &iter);
|
|
||||||
|
|
||||||
/* we could not find it check if we can find it by normalized name */
|
|
||||||
while (valid)
|
|
||||||
{
|
|
||||||
gchar *name;
|
|
||||||
|
|
||||||
gtk_tree_model_get (model, &iter, COLUMN_NORMALIZED_NAME, &name, -1);
|
|
||||||
|
|
||||||
if (g_strcmp0 (name, normalized_name) == 0)
|
|
||||||
{
|
|
||||||
gtk_tree_model_get (model, &iter, COLUMN_ADAPTOR, &adaptor, -1);
|
|
||||||
g_free (name);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
valid = gtk_tree_model_iter_next (model, &iter);
|
|
||||||
g_free (name);
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* if not, and there is only one row, then we select that one */
|
|
||||||
if (!adaptor && count == 1 && gtk_tree_model_get_iter_first (model, &iter))
|
|
||||||
gtk_tree_model_get (model, &iter, COLUMN_ADAPTOR, &adaptor, -1);
|
|
||||||
|
|
||||||
g_free (normalized_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (adaptor)
|
|
||||||
g_signal_emit (chooser, adaptor_chooser_signals[ADAPTOR_SELECTED], 0, adaptor);
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
chooser_match_func (_GladeAdaptorChooserWidget *chooser,
|
|
||||||
GtkTreeModel *model,
|
|
||||||
const gchar *key,
|
|
||||||
GtkTreeIter *iter)
|
|
||||||
{
|
|
||||||
gboolean visible;
|
|
||||||
gint name_len;
|
|
||||||
gchar *name;
|
|
||||||
|
|
||||||
if (!key || *key == '\0')
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
gtk_tree_model_get (model, iter,
|
|
||||||
COLUMN_NORMALIZED_NAME, &name,
|
|
||||||
COLUMN_NORMALIZED_NAME_LEN, &name_len,
|
|
||||||
-1);
|
|
||||||
if (!name)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
visible = (g_strstr_len (name, name_len, key) != NULL);
|
|
||||||
g_free (name);
|
|
||||||
|
|
||||||
return visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
treemodelfilter_visible_func (GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
|
|
||||||
{
|
|
||||||
_GladeAdaptorChooserWidgetPrivate *priv = GET_PRIVATE (data);
|
|
||||||
GladeWidgetAdaptor *adaptor = NULL;
|
|
||||||
gboolean visible = TRUE;
|
|
||||||
|
|
||||||
gtk_tree_model_get (model, iter, COLUMN_ADAPTOR, &adaptor, -1);
|
|
||||||
|
|
||||||
if (!adaptor)
|
|
||||||
return priv->show_group_title && !priv->search_text;
|
|
||||||
|
|
||||||
/* Skip classes not available in project target version */
|
|
||||||
if (priv->project)
|
|
||||||
{
|
|
||||||
const gchar *catalog = NULL;
|
|
||||||
gint major, minor;
|
|
||||||
|
|
||||||
catalog = glade_widget_adaptor_get_catalog (adaptor);
|
|
||||||
glade_project_get_target_version (priv->project, catalog, &major, &minor);
|
|
||||||
|
|
||||||
visible = GLADE_WIDGET_ADAPTOR_VERSION_CHECK (adaptor, major, minor);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (visible && priv->flags)
|
|
||||||
{
|
|
||||||
GType type = glade_widget_adaptor_get_object_type (adaptor);
|
|
||||||
_GladeAdaptorChooserWidgetFlags flags = priv->flags;
|
|
||||||
|
|
||||||
/* Skip adaptors according to flags */
|
|
||||||
if (flags & GLADE_ADAPTOR_CHOOSER_WIDGET_SKIP_DEPRECATED && GLADE_WIDGET_ADAPTOR_DEPRECATED (adaptor))
|
|
||||||
visible = FALSE;
|
|
||||||
else if (flags & GLADE_ADAPTOR_CHOOSER_WIDGET_SKIP_TOPLEVEL && GLADE_WIDGET_ADAPTOR_IS_TOPLEVEL (adaptor))
|
|
||||||
visible = FALSE;
|
|
||||||
else if (flags & GLADE_ADAPTOR_CHOOSER_WIDGET_WIDGET && !g_type_is_a (type, GTK_TYPE_WIDGET))
|
|
||||||
visible = FALSE;
|
|
||||||
else if (flags & GLADE_ADAPTOR_CHOOSER_WIDGET_TOPLEVEL && !GLADE_WIDGET_ADAPTOR_IS_TOPLEVEL (adaptor))
|
|
||||||
visible = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (visible && priv->search_text)
|
|
||||||
visible = chooser_match_func (data, model, priv->search_text, iter);
|
|
||||||
|
|
||||||
g_clear_object (&adaptor);
|
|
||||||
|
|
||||||
return visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
entrycompletion_match_func (GtkEntryCompletion *entry, const gchar *key, GtkTreeIter *iter, gpointer data)
|
|
||||||
{
|
|
||||||
return chooser_match_func (data, gtk_entry_completion_get_model (entry), key, iter);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
adaptor_icon_cell_data_func (GtkTreeViewColumn *tree_column,
|
|
||||||
GtkCellRenderer *cell,
|
|
||||||
GtkTreeModel *tree_model,
|
|
||||||
GtkTreeIter *iter,
|
|
||||||
gpointer data)
|
|
||||||
{
|
|
||||||
GladeWidgetAdaptor *adaptor;
|
|
||||||
gtk_tree_model_get (tree_model, iter, COLUMN_ADAPTOR, &adaptor, -1);
|
|
||||||
|
|
||||||
if (adaptor)
|
|
||||||
g_object_set (cell, "sensitive", TRUE, "icon-name", glade_widget_adaptor_get_icon_name (adaptor), NULL);
|
|
||||||
else
|
|
||||||
g_object_set (cell, "sensitive", FALSE, "icon-name", "go-down-symbolic", NULL);
|
|
||||||
|
|
||||||
g_clear_object (&adaptor);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
adaptor_text_cell_data_func (GtkTreeViewColumn *tree_column,
|
|
||||||
GtkCellRenderer *cell,
|
|
||||||
GtkTreeModel *tree_model,
|
|
||||||
GtkTreeIter *iter,
|
|
||||||
gpointer data)
|
|
||||||
{
|
|
||||||
GladeWidgetAdaptor *adaptor;
|
|
||||||
gchar *group;
|
|
||||||
|
|
||||||
gtk_tree_model_get (tree_model, iter,
|
|
||||||
COLUMN_ADAPTOR, &adaptor,
|
|
||||||
COLUMN_GROUP, &group,
|
|
||||||
-1);
|
|
||||||
if (adaptor)
|
|
||||||
g_object_set (cell,
|
|
||||||
"sensitive", TRUE,
|
|
||||||
"text", glade_widget_adaptor_get_display_name (adaptor),
|
|
||||||
"style", PANGO_STYLE_NORMAL,
|
|
||||||
NULL);
|
|
||||||
else
|
|
||||||
g_object_set (cell,
|
|
||||||
"sensitive", FALSE,
|
|
||||||
"text", group,
|
|
||||||
"style", PANGO_STYLE_ITALIC,
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
g_clear_object (&adaptor);
|
|
||||||
g_free (group);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
glade_adaptor_chooser_widget_drag_begin (GtkWidget *widget,
|
|
||||||
GdkDragContext *context,
|
|
||||||
gpointer data)
|
|
||||||
{
|
|
||||||
GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
|
|
||||||
GtkTreeModel *model;
|
|
||||||
GtkTreeIter iter;
|
|
||||||
|
|
||||||
if (gtk_tree_selection_get_selected (selection, &model, &iter))
|
|
||||||
{
|
|
||||||
GladeWidgetAdaptor *adaptor;
|
|
||||||
gtk_tree_model_get (model, &iter, COLUMN_ADAPTOR, &adaptor, -1);
|
|
||||||
_glade_dnd_set_icon_widget (context,
|
|
||||||
glade_widget_adaptor_get_icon_name (adaptor),
|
|
||||||
glade_widget_adaptor_get_display_name (adaptor));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
glade_adaptor_chooser_widget_drag_data_get (GtkWidget *widget,
|
|
||||||
GdkDragContext *context,
|
|
||||||
GtkSelectionData *data,
|
|
||||||
guint info,
|
|
||||||
guint time,
|
|
||||||
gpointer userdata)
|
|
||||||
{
|
|
||||||
GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
|
|
||||||
GtkTreeModel *model;
|
|
||||||
GtkTreeIter iter;
|
|
||||||
|
|
||||||
if (gtk_tree_selection_get_selected (selection, &model, &iter))
|
|
||||||
{
|
|
||||||
GladeWidgetAdaptor *adaptor;
|
|
||||||
gtk_tree_model_get (model, &iter, COLUMN_ADAPTOR, &adaptor, -1);
|
|
||||||
_glade_dnd_set_data (data, G_OBJECT (adaptor));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_glade_adaptor_chooser_widget_constructed (GObject *object)
|
|
||||||
{
|
|
||||||
_GladeAdaptorChooserWidget *chooser = GLADE_ADAPTOR_CHOOSER_WIDGET (object);
|
|
||||||
_GladeAdaptorChooserWidgetPrivate *priv = GET_PRIVATE (chooser);
|
|
||||||
|
|
||||||
/* Set cell data function: this save us from alocating name and icon name for each adaptor. */
|
|
||||||
gtk_tree_view_column_set_cell_data_func (priv->column_icon,
|
|
||||||
priv->icon_cell,
|
|
||||||
adaptor_icon_cell_data_func,
|
|
||||||
NULL, NULL);
|
|
||||||
gtk_tree_view_column_set_cell_data_func (priv->column_adaptor,
|
|
||||||
priv->adaptor_cell,
|
|
||||||
adaptor_text_cell_data_func,
|
|
||||||
NULL, NULL);
|
|
||||||
/* Set tree model filter function */
|
|
||||||
gtk_tree_model_filter_set_visible_func (priv->treemodelfilter,
|
|
||||||
treemodelfilter_visible_func,
|
|
||||||
chooser, NULL);
|
|
||||||
/* Set completion match function */
|
|
||||||
gtk_entry_completion_set_match_func (priv->entrycompletion,
|
|
||||||
entrycompletion_match_func,
|
|
||||||
chooser, NULL);
|
|
||||||
/* Enable Drag & Drop */
|
|
||||||
gtk_tree_view_enable_model_drag_source (priv->treeview, GDK_BUTTON1_MASK,
|
|
||||||
_glade_dnd_get_target (), 1, GDK_ACTION_MOVE | GDK_ACTION_COPY);
|
|
||||||
g_signal_connect_after (priv->treeview, "drag-begin",
|
|
||||||
G_CALLBACK (glade_adaptor_chooser_widget_drag_begin),
|
|
||||||
NULL);
|
|
||||||
g_signal_connect (priv->treeview, "drag-data-get",
|
|
||||||
G_CALLBACK (glade_adaptor_chooser_widget_drag_data_get),
|
|
||||||
NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_glade_adaptor_chooser_widget_map (GtkWidget *widget)
|
|
||||||
{
|
|
||||||
GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
|
|
||||||
|
|
||||||
if (toplevel)
|
|
||||||
{
|
|
||||||
_GladeAdaptorChooserWidgetPrivate *priv = GET_PRIVATE (widget);
|
|
||||||
gint height = gtk_widget_get_allocated_height (toplevel) - 100;
|
|
||||||
|
|
||||||
if (height > 512)
|
|
||||||
height = height * 0.75;
|
|
||||||
|
|
||||||
gtk_scrolled_window_set_max_content_height (priv->scrolledwindow, height);
|
|
||||||
}
|
|
||||||
|
|
||||||
GTK_WIDGET_CLASS (_glade_adaptor_chooser_widget_parent_class)->map (widget);
|
|
||||||
}
|
|
||||||
|
|
||||||
static GType
|
|
||||||
_glade_adaptor_chooser_widget_flags_get_type (void)
|
|
||||||
{
|
|
||||||
static GType etype = 0;
|
|
||||||
if (G_UNLIKELY(etype == 0)) {
|
|
||||||
static const GFlagsValue values[] = {
|
|
||||||
{ GLADE_ADAPTOR_CHOOSER_WIDGET_WIDGET, "GLADE_ADAPTOR_CHOOSER_WIDGET_WIDGET", "widget" },
|
|
||||||
{ GLADE_ADAPTOR_CHOOSER_WIDGET_TOPLEVEL, "GLADE_ADAPTOR_CHOOSER_WIDGET_TOPLEVEL", "toplevel" },
|
|
||||||
{ GLADE_ADAPTOR_CHOOSER_WIDGET_SKIP_TOPLEVEL, "GLADE_ADAPTOR_CHOOSER_WIDGET_SKIP_TOPLEVEL", "skip-toplevel" },
|
|
||||||
{ GLADE_ADAPTOR_CHOOSER_WIDGET_SKIP_DEPRECATED, "GLADE_ADAPTOR_CHOOSER_WIDGET_SKIP_DEPRECATED", "skip-deprecated" },
|
|
||||||
{ 0, NULL, NULL }
|
|
||||||
};
|
|
||||||
etype = g_flags_register_static (g_intern_static_string ("_GladeAdaptorChooserWidgetFlag"), values);
|
|
||||||
}
|
|
||||||
return etype;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_glade_adaptor_chooser_widget_class_init (_GladeAdaptorChooserWidgetClass *klass)
|
|
||||||
{
|
|
||||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
|
||||||
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
|
||||||
|
|
||||||
object_class->dispose = _glade_adaptor_chooser_widget_dispose;
|
|
||||||
object_class->finalize = _glade_adaptor_chooser_widget_finalize;
|
|
||||||
object_class->set_property = _glade_adaptor_chooser_widget_set_property;
|
|
||||||
object_class->get_property = _glade_adaptor_chooser_widget_get_property;
|
|
||||||
object_class->constructed = _glade_adaptor_chooser_widget_constructed;
|
|
||||||
|
|
||||||
widget_class->map = _glade_adaptor_chooser_widget_map;
|
|
||||||
|
|
||||||
g_object_class_install_property (object_class,
|
|
||||||
PROP_SHOW_FLAGS,
|
|
||||||
g_param_spec_flags ("show-flags",
|
|
||||||
"Show flags",
|
|
||||||
"Widget adaptors show flags",
|
|
||||||
_glade_adaptor_chooser_widget_flags_get_type (),
|
|
||||||
0,
|
|
||||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
|
|
||||||
g_object_class_install_property (object_class,
|
|
||||||
PROP_SHOW_GROUP_TITLE,
|
|
||||||
g_param_spec_boolean ("show-group-title",
|
|
||||||
"Show group title",
|
|
||||||
"Whether to show the group title",
|
|
||||||
FALSE,
|
|
||||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
|
|
||||||
g_object_class_install_property (object_class,
|
|
||||||
PROP_PROJECT,
|
|
||||||
g_param_spec_object ("project",
|
|
||||||
"Glade Project",
|
|
||||||
"If set, use project target version to skip unsupported classes",
|
|
||||||
GLADE_TYPE_PROJECT,
|
|
||||||
G_PARAM_READWRITE));
|
|
||||||
|
|
||||||
adaptor_chooser_signals[ADAPTOR_SELECTED] =
|
|
||||||
g_signal_new ("adaptor-selected", G_OBJECT_CLASS_TYPE (klass), 0, 0,
|
|
||||||
NULL, NULL, NULL,
|
|
||||||
G_TYPE_NONE, 1,
|
|
||||||
GLADE_TYPE_WIDGET_ADAPTOR);
|
|
||||||
|
|
||||||
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/gladeui/glade-adaptor-chooser-widget.ui");
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, _GladeAdaptorChooserWidget, treeview);
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, _GladeAdaptorChooserWidget, store);
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, _GladeAdaptorChooserWidget, treemodelfilter);
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, _GladeAdaptorChooserWidget, searchentry);
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, _GladeAdaptorChooserWidget, entrycompletion);
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, _GladeAdaptorChooserWidget, column_icon);
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, _GladeAdaptorChooserWidget, icon_cell);
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, _GladeAdaptorChooserWidget, column_adaptor);
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, _GladeAdaptorChooserWidget, adaptor_cell);
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, _GladeAdaptorChooserWidget, scrolledwindow);
|
|
||||||
gtk_widget_class_bind_template_callback (widget_class, on_treeview_row_activated);
|
|
||||||
gtk_widget_class_bind_template_callback (widget_class, on_searchentry_search_changed);
|
|
||||||
gtk_widget_class_bind_template_callback (widget_class, on_searchentry_activate);
|
|
||||||
}
|
|
||||||
|
|
||||||
GtkWidget *
|
|
||||||
_glade_adaptor_chooser_widget_new (_GladeAdaptorChooserWidgetFlags flags, GladeProject *project)
|
|
||||||
{
|
|
||||||
return GTK_WIDGET (g_object_new (GLADE_TYPE_ADAPTOR_CHOOSER_WIDGET,
|
|
||||||
"show-flags", flags,
|
|
||||||
"project", project,
|
|
||||||
NULL));
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_glade_adaptor_chooser_widget_set_project (_GladeAdaptorChooserWidget *chooser,
|
|
||||||
GladeProject *project)
|
|
||||||
{
|
|
||||||
_GladeAdaptorChooserWidgetPrivate *priv;
|
|
||||||
|
|
||||||
g_return_if_fail (GLADE_IS_ADAPTOR_CHOOSER_WIDGET (chooser));
|
|
||||||
priv = GET_PRIVATE (chooser);
|
|
||||||
|
|
||||||
if (priv->project)
|
|
||||||
{
|
|
||||||
g_object_remove_weak_pointer (G_OBJECT (priv->project), (gpointer *) &priv->project);
|
|
||||||
priv->project = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (project)
|
|
||||||
{
|
|
||||||
priv->project = project;
|
|
||||||
g_object_add_weak_pointer (G_OBJECT (project), (gpointer *) &priv->project);
|
|
||||||
|
|
||||||
gtk_tree_model_filter_refilter (priv->treemodelfilter);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_glade_adaptor_chooser_widget_populate (_GladeAdaptorChooserWidget *chooser)
|
|
||||||
{
|
|
||||||
GList *l;
|
|
||||||
|
|
||||||
for (l = glade_app_get_catalogs (); l; l = g_list_next (l))
|
|
||||||
_glade_adaptor_chooser_widget_add_catalog (chooser, l->data);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_glade_adaptor_chooser_widget_add_catalog (_GladeAdaptorChooserWidget *chooser,
|
|
||||||
GladeCatalog *catalog)
|
|
||||||
{
|
|
||||||
GList *groups;
|
|
||||||
|
|
||||||
g_return_if_fail (GLADE_IS_ADAPTOR_CHOOSER_WIDGET (chooser));
|
|
||||||
|
|
||||||
for (groups = glade_catalog_get_widget_groups (catalog); groups;
|
|
||||||
groups = g_list_next (groups))
|
|
||||||
_glade_adaptor_chooser_widget_add_group (chooser, groups->data);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
_glade_adaptor_chooser_widget_add_group (_GladeAdaptorChooserWidget *chooser,
|
|
||||||
GladeWidgetGroup *group)
|
|
||||||
{
|
|
||||||
_GladeAdaptorChooserWidgetPrivate *priv;
|
|
||||||
const GList *adaptors;
|
|
||||||
|
|
||||||
g_return_if_fail (GLADE_IS_ADAPTOR_CHOOSER_WIDGET (chooser));
|
|
||||||
priv = GET_PRIVATE (chooser);
|
|
||||||
|
|
||||||
if (priv->show_group_title)
|
|
||||||
gtk_list_store_insert_with_values (priv->store, NULL, -1,
|
|
||||||
COLUMN_GROUP, glade_widget_group_get_title (group),
|
|
||||||
-1);
|
|
||||||
|
|
||||||
for (adaptors = glade_widget_group_get_adaptors (group); adaptors;
|
|
||||||
adaptors = g_list_next (adaptors))
|
|
||||||
store_append_adaptor (priv->store, adaptors->data);
|
|
||||||
}
|
|
||||||
|
|
@ -1,64 +0,0 @@
|
|||||||
/*
|
|
||||||
* glade-adaptor-chooser-widget.h
|
|
||||||
*
|
|
||||||
* Copyright (C) 2014-2017 Juan Pablo Ugarte
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU Lesser General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2.1 of
|
|
||||||
* the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This library 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
|
|
||||||
* Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
|
||||||
* License along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
* Authors:
|
|
||||||
* Juan Pablo Ugarte <juanpablougarte@gmail.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _GLADE_ADAPTOR_CHOOSER_WIDGET_H_
|
|
||||||
#define _GLADE_ADAPTOR_CHOOSER_WIDGET_H_
|
|
||||||
|
|
||||||
#include <gladeui/glade-widget-adaptor.h>
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
|
||||||
|
|
||||||
#define GLADE_TYPE_ADAPTOR_CHOOSER_WIDGET _glade_adaptor_chooser_widget_get_type ()
|
|
||||||
G_DECLARE_DERIVABLE_TYPE (_GladeAdaptorChooserWidget, _glade_adaptor_chooser_widget, GLADE, ADAPTOR_CHOOSER_WIDGET, GtkBox)
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
GLADE_ADAPTOR_CHOOSER_WIDGET_WIDGET = 1 << 0,
|
|
||||||
GLADE_ADAPTOR_CHOOSER_WIDGET_TOPLEVEL = 1 << 1,
|
|
||||||
GLADE_ADAPTOR_CHOOSER_WIDGET_SKIP_TOPLEVEL = 1 << 2,
|
|
||||||
GLADE_ADAPTOR_CHOOSER_WIDGET_SKIP_DEPRECATED = 1 << 3
|
|
||||||
} _GladeAdaptorChooserWidgetFlags;
|
|
||||||
|
|
||||||
struct __GladeAdaptorChooserWidgetClass
|
|
||||||
{
|
|
||||||
GtkBoxClass parent_class;
|
|
||||||
};
|
|
||||||
|
|
||||||
GtkWidget *_glade_adaptor_chooser_widget_new (_GladeAdaptorChooserWidgetFlags flags,
|
|
||||||
GladeProject *project);
|
|
||||||
|
|
||||||
void _glade_adaptor_chooser_widget_set_project (_GladeAdaptorChooserWidget *chooser,
|
|
||||||
GladeProject *project);
|
|
||||||
|
|
||||||
void _glade_adaptor_chooser_widget_populate (_GladeAdaptorChooserWidget *chooser);
|
|
||||||
|
|
||||||
void _glade_adaptor_chooser_widget_add_catalog (_GladeAdaptorChooserWidget *chooser,
|
|
||||||
GladeCatalog *catalog);
|
|
||||||
|
|
||||||
void _glade_adaptor_chooser_widget_add_group (_GladeAdaptorChooserWidget *chooser,
|
|
||||||
GladeWidgetGroup *group);
|
|
||||||
|
|
||||||
G_END_DECLS
|
|
||||||
|
|
||||||
#endif /* _GLADE_ADAPTOR_CHOOSER_WIDGET_H_ */
|
|
||||||
|
|
@ -1,96 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!-- Generated with glade 3.21.0 -->
|
|
||||||
<interface>
|
|
||||||
<requires lib="gtk+" version="3.20"/>
|
|
||||||
<object class="GtkListStore" id="store">
|
|
||||||
<columns>
|
|
||||||
<!-- column-name adaptor -->
|
|
||||||
<column type="GObject"/>
|
|
||||||
<!-- column-name group -->
|
|
||||||
<column type="gchararray"/>
|
|
||||||
<!-- column-name normalized-name -->
|
|
||||||
<column type="gchararray"/>
|
|
||||||
<!-- column-name normalized-name-len -->
|
|
||||||
<column type="gint"/>
|
|
||||||
</columns>
|
|
||||||
</object>
|
|
||||||
<object class="GtkTreeModelFilter" id="treemodelfilter">
|
|
||||||
<property name="child_model">store</property>
|
|
||||||
</object>
|
|
||||||
<object class="GtkEntryCompletion" id="entrycompletion">
|
|
||||||
<property name="model">treemodelfilter</property>
|
|
||||||
<property name="text_column">1</property>
|
|
||||||
<property name="inline_completion">True</property>
|
|
||||||
<property name="popup_completion">False</property>
|
|
||||||
<property name="popup_single_match">False</property>
|
|
||||||
</object>
|
|
||||||
<template class="_GladeAdaptorChooserWidget" parent="GtkBox">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="border_width">6</property>
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<property name="spacing">6</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkSearchEntry" id="searchentry">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="primary_icon_name">edit-find-symbolic</property>
|
|
||||||
<property name="primary_icon_activatable">False</property>
|
|
||||||
<property name="primary_icon_sensitive">False</property>
|
|
||||||
<property name="completion">entrycompletion</property>
|
|
||||||
<property name="input_hints">GTK_INPUT_HINT_WORD_COMPLETION | GTK_INPUT_HINT_NONE</property>
|
|
||||||
<signal name="activate" handler="on_searchentry_activate" swapped="no"/>
|
|
||||||
<signal name="search-changed" handler="on_searchentry_search_changed" swapped="no"/>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkScrolledWindow" id="scrolledwindow">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="hscrollbar_policy">never</property>
|
|
||||||
<property name="shadow_type">in</property>
|
|
||||||
<property name="max_content_height">512</property>
|
|
||||||
<property name="propagate_natural_width">True</property>
|
|
||||||
<property name="propagate_natural_height">True</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkTreeView" id="treeview">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="model">treemodelfilter</property>
|
|
||||||
<property name="headers_visible">False</property>
|
|
||||||
<property name="enable_search">False</property>
|
|
||||||
<property name="activate_on_single_click">True</property>
|
|
||||||
<signal name="row-activated" handler="on_treeview_row_activated" swapped="no"/>
|
|
||||||
<child internal-child="selection">
|
|
||||||
<object class="GtkTreeSelection" id="treeview-selection"/>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkTreeViewColumn" id="column_icon">
|
|
||||||
<child>
|
|
||||||
<object class="GtkCellRendererPixbuf" id="icon_cell"/>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkTreeViewColumn" id="column_adaptor">
|
|
||||||
<child>
|
|
||||||
<object class="GtkCellRendererText" id="adaptor_cell"/>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</template>
|
|
||||||
</interface>
|
|
@ -1,436 +0,0 @@
|
|||||||
/*
|
|
||||||
* glade-adaptor-chooser.c
|
|
||||||
*
|
|
||||||
* Copyright (C) 2017 Juan Pablo Ugarte
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU Lesser General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2.1 of
|
|
||||||
* the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This library 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
|
|
||||||
* Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
|
||||||
* License along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
* Authors:
|
|
||||||
* Juan Pablo Ugarte <juanpablougarte@gmail.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "glade-adaptor-chooser-widget.h"
|
|
||||||
#include "glade-adaptor-chooser.h"
|
|
||||||
#include "glade-app.h"
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
GladeProject *project;
|
|
||||||
|
|
||||||
GtkWidget *gtk_button_box;
|
|
||||||
GtkWidget *extra_button;
|
|
||||||
GtkWidget *others_button;
|
|
||||||
GtkImage *class_image;
|
|
||||||
GtkLabel *class_label;
|
|
||||||
GtkWidget *all_button;
|
|
||||||
|
|
||||||
GtkWidget *others_chooser;
|
|
||||||
GtkWidget *all_chooser;
|
|
||||||
GList *choosers;
|
|
||||||
|
|
||||||
gboolean needs_update;
|
|
||||||
} GladeAdaptorChooserPrivate;
|
|
||||||
|
|
||||||
struct _GladeAdaptorChooser
|
|
||||||
{
|
|
||||||
GtkBox parent_instance;
|
|
||||||
};
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
PROP_0,
|
|
||||||
PROP_PROJECT,
|
|
||||||
|
|
||||||
N_PROPERTIES
|
|
||||||
};
|
|
||||||
|
|
||||||
static GParamSpec *properties[N_PROPERTIES];
|
|
||||||
|
|
||||||
G_DEFINE_TYPE_WITH_PRIVATE (GladeAdaptorChooser,
|
|
||||||
glade_adaptor_chooser,
|
|
||||||
GTK_TYPE_BOX);
|
|
||||||
|
|
||||||
#define GET_PRIVATE(d) ((GladeAdaptorChooserPrivate *) glade_adaptor_chooser_get_instance_private((GladeAdaptorChooser*)d))
|
|
||||||
|
|
||||||
static void
|
|
||||||
glade_adaptor_chooser_init (GladeAdaptorChooser *chooser)
|
|
||||||
{
|
|
||||||
gtk_widget_init_template (GTK_WIDGET (chooser));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
glade_adaptor_chooser_finalize (GObject *object)
|
|
||||||
{
|
|
||||||
GladeAdaptorChooserPrivate *priv = GET_PRIVATE (object);
|
|
||||||
|
|
||||||
g_list_free (priv->choosers);
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (glade_adaptor_chooser_parent_class)->finalize (object);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
glade_adaptor_chooser_set_property (GObject *object,
|
|
||||||
guint prop_id,
|
|
||||||
const GValue *value,
|
|
||||||
GParamSpec *pspec)
|
|
||||||
{
|
|
||||||
g_return_if_fail (GLADE_IS_ADAPTOR_CHOOSER (object));
|
|
||||||
|
|
||||||
switch (prop_id)
|
|
||||||
{
|
|
||||||
case PROP_PROJECT:
|
|
||||||
glade_adaptor_chooser_set_project (GLADE_ADAPTOR_CHOOSER (object),
|
|
||||||
g_value_get_object (value));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
glade_adaptor_chooser_get_property (GObject *object,
|
|
||||||
guint prop_id,
|
|
||||||
GValue *value,
|
|
||||||
GParamSpec *pspec)
|
|
||||||
{
|
|
||||||
GladeAdaptorChooserPrivate *priv;
|
|
||||||
|
|
||||||
g_return_if_fail (GLADE_IS_ADAPTOR_CHOOSER (object));
|
|
||||||
priv = GET_PRIVATE (object);
|
|
||||||
|
|
||||||
switch (prop_id)
|
|
||||||
{
|
|
||||||
case PROP_PROJECT:
|
|
||||||
g_value_set_object (value, priv->project);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
on_adaptor_selected (GtkWidget *widget,
|
|
||||||
GladeWidgetAdaptor *adaptor,
|
|
||||||
GladeAdaptorChooser *chooser)
|
|
||||||
{
|
|
||||||
GladeAdaptorChooserPrivate *priv = GET_PRIVATE (chooser);
|
|
||||||
|
|
||||||
/* Auto-create toplevel types */
|
|
||||||
if (GLADE_WIDGET_ADAPTOR_IS_TOPLEVEL (adaptor))
|
|
||||||
{
|
|
||||||
glade_command_create (adaptor, NULL, NULL, priv->project);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
glade_project_set_add_item (priv->project, adaptor);
|
|
||||||
glade_project_set_pointer_mode (priv->project, GLADE_POINTER_ADD_WIDGET);
|
|
||||||
}
|
|
||||||
|
|
||||||
gtk_popover_popdown (GTK_POPOVER (gtk_widget_get_parent (widget)));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
glade_adaptor_chooser_button_add_chooser (GtkWidget *button, GtkWidget *chooser)
|
|
||||||
{
|
|
||||||
GtkPopover *popover = gtk_menu_button_get_popover (GTK_MENU_BUTTON (button));
|
|
||||||
|
|
||||||
if (!popover)
|
|
||||||
{
|
|
||||||
popover = GTK_POPOVER (gtk_popover_new (button));
|
|
||||||
gtk_menu_button_set_popover (GTK_MENU_BUTTON (button),
|
|
||||||
GTK_WIDGET (popover));
|
|
||||||
}
|
|
||||||
|
|
||||||
gtk_container_add (GTK_CONTAINER (popover), chooser);
|
|
||||||
gtk_widget_show (chooser);
|
|
||||||
}
|
|
||||||
|
|
||||||
static GtkWidget *
|
|
||||||
glade_adaptor_chooser_add_chooser (GladeAdaptorChooser *chooser,
|
|
||||||
gboolean show_group_title)
|
|
||||||
{
|
|
||||||
GladeAdaptorChooserPrivate *priv = GET_PRIVATE (chooser);
|
|
||||||
GtkWidget *chooser_widget = g_object_new (GLADE_TYPE_ADAPTOR_CHOOSER_WIDGET,
|
|
||||||
"show-group-title", show_group_title,
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
priv->choosers = g_list_prepend (priv->choosers, chooser_widget);
|
|
||||||
g_signal_connect (chooser_widget, "adaptor-selected",
|
|
||||||
G_CALLBACK (on_adaptor_selected),
|
|
||||||
chooser);
|
|
||||||
|
|
||||||
return chooser_widget;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
button_box_populate_from_catalog (GladeAdaptorChooser *chooser,
|
|
||||||
GladeCatalog *catalog)
|
|
||||||
{
|
|
||||||
GladeAdaptorChooserPrivate *priv = GET_PRIVATE (chooser);
|
|
||||||
GtkWidget *extra_chooser = NULL;
|
|
||||||
GList *groups;
|
|
||||||
|
|
||||||
groups = glade_catalog_get_widget_groups (catalog);
|
|
||||||
gtk_box_set_homogeneous (GTK_BOX (priv->gtk_button_box), FALSE);
|
|
||||||
|
|
||||||
for (; groups; groups = g_list_next (groups))
|
|
||||||
{
|
|
||||||
GladeWidgetGroup *group = GLADE_WIDGET_GROUP (groups->data);
|
|
||||||
|
|
||||||
if (!glade_widget_group_get_adaptors (group))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (glade_widget_group_get_expanded (group))
|
|
||||||
{
|
|
||||||
GtkWidget *button, *chooser_widget;
|
|
||||||
|
|
||||||
chooser_widget = glade_adaptor_chooser_add_chooser (chooser, FALSE);
|
|
||||||
button = gtk_menu_button_new ();
|
|
||||||
gtk_button_set_label (GTK_BUTTON (button), glade_widget_group_get_title (group));
|
|
||||||
glade_adaptor_chooser_button_add_chooser (button, chooser_widget);
|
|
||||||
_glade_adaptor_chooser_widget_add_group (GLADE_ADAPTOR_CHOOSER_WIDGET (chooser_widget), group);
|
|
||||||
gtk_box_pack_start (GTK_BOX (priv->gtk_button_box), button, FALSE, FALSE, 0);
|
|
||||||
gtk_widget_show (button);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!extra_chooser)
|
|
||||||
{
|
|
||||||
extra_chooser = glade_adaptor_chooser_add_chooser (chooser, TRUE);
|
|
||||||
glade_adaptor_chooser_button_add_chooser (priv->extra_button, extra_chooser);
|
|
||||||
gtk_widget_show (priv->extra_button);
|
|
||||||
}
|
|
||||||
|
|
||||||
_glade_adaptor_chooser_widget_add_group (GLADE_ADAPTOR_CHOOSER_WIDGET (extra_chooser), group);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
remove_chooser_widget (GladeAdaptorChooser *chooser, GtkWidget *widget)
|
|
||||||
{
|
|
||||||
if (widget)
|
|
||||||
{
|
|
||||||
GladeAdaptorChooserPrivate *priv = GET_PRIVATE (chooser);
|
|
||||||
priv->choosers = g_list_remove (priv->choosers, widget);
|
|
||||||
gtk_widget_destroy (widget);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
update_all_others_chooser (GladeAdaptorChooser *chooser)
|
|
||||||
{
|
|
||||||
GladeAdaptorChooserPrivate *priv = GET_PRIVATE (chooser);
|
|
||||||
GladeCatalog *gtk_catalog;
|
|
||||||
GList *l;
|
|
||||||
|
|
||||||
priv->needs_update = FALSE;
|
|
||||||
|
|
||||||
gtk_catalog = glade_app_get_catalog ("gtk+");
|
|
||||||
|
|
||||||
remove_chooser_widget (chooser, priv->others_chooser);
|
|
||||||
remove_chooser_widget (chooser, priv->all_chooser);
|
|
||||||
|
|
||||||
priv->others_chooser = glade_adaptor_chooser_add_chooser (chooser, TRUE);
|
|
||||||
priv->all_chooser = glade_adaptor_chooser_add_chooser (chooser, TRUE);
|
|
||||||
|
|
||||||
glade_adaptor_chooser_button_add_chooser (priv->others_button, priv->others_chooser);
|
|
||||||
glade_adaptor_chooser_button_add_chooser (priv->all_button, priv->all_chooser);
|
|
||||||
|
|
||||||
/* then the rest */
|
|
||||||
for (l = glade_app_get_catalogs (); l; l = g_list_next (l))
|
|
||||||
{
|
|
||||||
GladeCatalog *catalog = l->data;
|
|
||||||
|
|
||||||
_glade_adaptor_chooser_widget_add_catalog (GLADE_ADAPTOR_CHOOSER_WIDGET (priv->all_chooser), catalog);
|
|
||||||
|
|
||||||
if (catalog != gtk_catalog)
|
|
||||||
_glade_adaptor_chooser_widget_add_catalog (GLADE_ADAPTOR_CHOOSER_WIDGET (priv->others_chooser), catalog);
|
|
||||||
}
|
|
||||||
|
|
||||||
_glade_adaptor_chooser_widget_set_project (GLADE_ADAPTOR_CHOOSER_WIDGET (priv->others_chooser), priv->project);
|
|
||||||
_glade_adaptor_chooser_widget_set_project (GLADE_ADAPTOR_CHOOSER_WIDGET (priv->all_chooser), priv->project);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
on_widget_adaptor_registered (GladeApp *app,
|
|
||||||
GladeWidgetAdaptor *adaptor,
|
|
||||||
GladeAdaptorChooser *chooser)
|
|
||||||
{
|
|
||||||
GladeAdaptorChooserPrivate *priv = GET_PRIVATE (chooser);
|
|
||||||
priv->needs_update = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
on_button_clicked (GtkButton *button, GladeAdaptorChooser *chooser)
|
|
||||||
{
|
|
||||||
GladeAdaptorChooserPrivate *priv = GET_PRIVATE (chooser);
|
|
||||||
|
|
||||||
if (priv->needs_update)
|
|
||||||
update_all_others_chooser (chooser);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
glade_adaptor_chooser_constructed (GObject *object)
|
|
||||||
{
|
|
||||||
GladeAdaptorChooser *chooser = GLADE_ADAPTOR_CHOOSER (object);
|
|
||||||
GladeAdaptorChooserPrivate *priv = GET_PRIVATE (chooser);
|
|
||||||
GladeCatalog *gtk_catalog;
|
|
||||||
|
|
||||||
/* GTK+ catalog goes first subdivided by group */
|
|
||||||
gtk_catalog = glade_app_get_catalog ("gtk+");
|
|
||||||
button_box_populate_from_catalog (chooser, gtk_catalog);
|
|
||||||
|
|
||||||
update_all_others_chooser (chooser);
|
|
||||||
|
|
||||||
g_signal_connect (glade_app_get(), "widget-adaptor-registered",
|
|
||||||
G_CALLBACK (on_widget_adaptor_registered),
|
|
||||||
chooser);
|
|
||||||
|
|
||||||
g_signal_connect (priv->others_button, "clicked",
|
|
||||||
G_CALLBACK (on_button_clicked),
|
|
||||||
chooser);
|
|
||||||
g_signal_connect (priv->all_button, "clicked",
|
|
||||||
G_CALLBACK (on_button_clicked),
|
|
||||||
chooser);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
glade_adaptor_chooser_class_init (GladeAdaptorChooserClass *klass)
|
|
||||||
{
|
|
||||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
|
||||||
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
|
||||||
|
|
||||||
object_class->finalize = glade_adaptor_chooser_finalize;
|
|
||||||
object_class->constructed = glade_adaptor_chooser_constructed;
|
|
||||||
object_class->set_property = glade_adaptor_chooser_set_property;
|
|
||||||
object_class->get_property = glade_adaptor_chooser_get_property;
|
|
||||||
|
|
||||||
/* Properties */
|
|
||||||
properties[PROP_PROJECT] =
|
|
||||||
g_param_spec_object ("project", "Project",
|
|
||||||
"This adaptor chooser's current project",
|
|
||||||
GLADE_TYPE_PROJECT,
|
|
||||||
G_PARAM_READWRITE);
|
|
||||||
|
|
||||||
g_object_class_install_properties (object_class, N_PROPERTIES, properties);
|
|
||||||
|
|
||||||
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/gladeui/glade-adaptor-chooser.ui");
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, GladeAdaptorChooser, gtk_button_box);
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, GladeAdaptorChooser, extra_button);
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, GladeAdaptorChooser, others_button);
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, GladeAdaptorChooser, class_image);
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, GladeAdaptorChooser, class_label);
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, GladeAdaptorChooser, all_button);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Public API */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* glade_adaptor_chooser_new:
|
|
||||||
*
|
|
||||||
* Returns: (transfer full): A new #GladeAdaptorChooser
|
|
||||||
*/
|
|
||||||
GtkWidget *
|
|
||||||
glade_adaptor_chooser_new ()
|
|
||||||
{
|
|
||||||
return (GtkWidget*) g_object_new (GLADE_TYPE_ADAPTOR_CHOOSER, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
glade_adaptor_chooser_update_adaptor (GladeAdaptorChooser *chooser)
|
|
||||||
{
|
|
||||||
GladeAdaptorChooserPrivate *priv = GET_PRIVATE (chooser);
|
|
||||||
GladeWidgetAdaptor *adaptor;
|
|
||||||
|
|
||||||
if (priv->project && (adaptor = glade_project_get_add_item (priv->project)))
|
|
||||||
{
|
|
||||||
gtk_image_set_from_icon_name (priv->class_image,
|
|
||||||
glade_widget_adaptor_get_icon_name (adaptor),
|
|
||||||
GTK_ICON_SIZE_BUTTON);
|
|
||||||
gtk_label_set_label (priv->class_label,
|
|
||||||
glade_widget_adaptor_get_display_name (adaptor));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gtk_image_set_from_pixbuf (priv->class_image, NULL);
|
|
||||||
gtk_label_set_label (priv->class_label, "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
on_project_weak_notify (gpointer data, GObject *project)
|
|
||||||
{
|
|
||||||
GladeAdaptorChooser *chooser = data;
|
|
||||||
GladeAdaptorChooserPrivate *priv = GET_PRIVATE (chooser);
|
|
||||||
|
|
||||||
priv->project = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
glade_adaptor_chooser_set_project (GladeAdaptorChooser *chooser,
|
|
||||||
GladeProject *project)
|
|
||||||
{
|
|
||||||
GladeAdaptorChooserPrivate *priv;
|
|
||||||
GList *l;
|
|
||||||
|
|
||||||
g_return_if_fail (GLADE_IS_ADAPTOR_CHOOSER (chooser));
|
|
||||||
priv = GET_PRIVATE (chooser);
|
|
||||||
|
|
||||||
if (priv->project)
|
|
||||||
{
|
|
||||||
g_signal_handlers_disconnect_by_func (G_OBJECT (priv->project),
|
|
||||||
G_CALLBACK (glade_adaptor_chooser_update_adaptor),
|
|
||||||
chooser);
|
|
||||||
g_object_weak_unref (G_OBJECT (priv->project), on_project_weak_notify, chooser);
|
|
||||||
priv->project = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (project)
|
|
||||||
{
|
|
||||||
priv->project = project;
|
|
||||||
g_object_weak_ref (G_OBJECT (project), on_project_weak_notify, chooser);
|
|
||||||
|
|
||||||
g_signal_connect_swapped (G_OBJECT (project), "notify::add-item",
|
|
||||||
G_CALLBACK (glade_adaptor_chooser_update_adaptor),
|
|
||||||
chooser);
|
|
||||||
gtk_widget_set_sensitive (GTK_WIDGET (chooser), TRUE);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
gtk_widget_set_sensitive (GTK_WIDGET (chooser), FALSE);
|
|
||||||
|
|
||||||
/* Set project in chooser for filter to work */
|
|
||||||
for (l = priv->choosers; l; l = g_list_next (l))
|
|
||||||
_glade_adaptor_chooser_widget_set_project (l->data, project);
|
|
||||||
|
|
||||||
/* Update class image and label */
|
|
||||||
glade_adaptor_chooser_update_adaptor (chooser);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* glade_adaptor_chooser_get_project:
|
|
||||||
* @chooser: a #GladeAdaptorChooser
|
|
||||||
*
|
|
||||||
* Returns: (transfer full): A #GladeProject
|
|
||||||
*/
|
|
||||||
GladeProject *
|
|
||||||
glade_adaptor_chooser_get_project (GladeAdaptorChooser *chooser)
|
|
||||||
{
|
|
||||||
g_return_val_if_fail (GLADE_IS_ADAPTOR_CHOOSER (chooser), NULL);
|
|
||||||
|
|
||||||
return GET_PRIVATE (chooser)->project;
|
|
||||||
}
|
|
@ -1,43 +0,0 @@
|
|||||||
/*
|
|
||||||
* glade-adaptor-chooser.h
|
|
||||||
*
|
|
||||||
* Copyright (C) 2017 Juan Pablo Ugarte
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU Lesser General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2.1 of
|
|
||||||
* the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This library 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
|
|
||||||
* Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
|
||||||
* License along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
* Authors:
|
|
||||||
* Juan Pablo Ugarte <juanpablougarte@gmail.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _GLADE_ADAPTOR_CHOOSER_H_
|
|
||||||
#define _GLADE_ADAPTOR_CHOOSER_H_
|
|
||||||
|
|
||||||
#include <gladeui/glade-widget-adaptor.h>
|
|
||||||
#include <gladeui/glade-project.h>
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
|
||||||
|
|
||||||
#define GLADE_TYPE_ADAPTOR_CHOOSER (glade_adaptor_chooser_get_type ())
|
|
||||||
G_DECLARE_FINAL_TYPE (GladeAdaptorChooser, glade_adaptor_chooser, GLADE, ADAPTOR_CHOOSER, GtkBox)
|
|
||||||
|
|
||||||
GtkWidget *glade_adaptor_chooser_new (void);
|
|
||||||
|
|
||||||
void glade_adaptor_chooser_set_project (GladeAdaptorChooser *chooser,
|
|
||||||
GladeProject *project);
|
|
||||||
GladeProject *glade_adaptor_chooser_get_project (GladeAdaptorChooser *chooser);
|
|
||||||
|
|
||||||
G_END_DECLS
|
|
||||||
|
|
||||||
#endif /* _GLADE_ADAPTOR_CHOOSER_H_ */
|
|
@ -1,114 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!-- Generated with glade 3.20.0 -->
|
|
||||||
<interface domain="glade">
|
|
||||||
<requires lib="gtk+" version="3.20"/>
|
|
||||||
<template class="GladeAdaptorChooser" parent="GtkBox">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="spacing">4</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkMenuButton" id="all_button">
|
|
||||||
<property name="name">adaptor-search-button</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="receives_default">True</property>
|
|
||||||
<property name="tooltip_text" translatable="yes">All available widgets and objects</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkImage">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="icon_name">edit-find-symbolic</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkImage" id="class_image">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="class_label">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="tooltip_text" translatable="yes">Click on a placeholder to create this class
|
|
||||||
(use middle button to create more than one)</property>
|
|
||||||
<property name="ellipsize">end</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">2</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkMenuButton" id="others_button">
|
|
||||||
<property name="name">adaptor-others-button</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="receives_default">True</property>
|
|
||||||
<property name="tooltip_text" translatable="yes">Non-GTK+ widgets and objects</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkImage">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="icon_name">view-more-symbolic</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="pack_type">end</property>
|
|
||||||
<property name="position">3</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButtonBox" id="gtk_button_box">
|
|
||||||
<property name="name">adaptor-gtk-buttonbox</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="layout_style">expand</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkMenuButton" id="extra_button">
|
|
||||||
<property name="name">adaptor-extra-button</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="receives_default">True</property>
|
|
||||||
<property name="tooltip_text" translatable="yes">Extra GTK+ objects</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkImage">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="icon_name">pan-down-symbolic</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="pack_type">end</property>
|
|
||||||
<property name="position">2</property>
|
|
||||||
<property name="non_homogeneous">True</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="pack_type">end</property>
|
|
||||||
<property name="position">4</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</template>
|
|
||||||
</interface>
|
|
1511
gladeui/glade-app.c
@ -1,3 +1,4 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2001 Ximian, Inc.
|
* Copyright (C) 2001 Ximian, Inc.
|
||||||
*
|
*
|
||||||
@ -29,62 +30,183 @@
|
|||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define GLADE_TYPE_APP glade_app_get_type ()
|
#define GLADE_TYPE_APP (glade_app_get_type())
|
||||||
G_DECLARE_DERIVABLE_TYPE (GladeApp, glade_app, GLADE, APP, GObject)
|
#define GLADE_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_APP, GladeApp))
|
||||||
|
#define GLADE_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_APP, GladeAppClass))
|
||||||
|
#define GLADE_IS_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_APP))
|
||||||
|
#define GLADE_IS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_APP))
|
||||||
|
#define GLADE_APP_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_APP, GladeAppClass))
|
||||||
|
|
||||||
#define GLADE_ENV_CATALOG_PATH "GLADE_CATALOG_SEARCH_PATH"
|
#define GLADE_TYPE_POINTER_MODE (glade_pointer_mode_get_type())
|
||||||
#define GLADE_ENV_MODULE_PATH "GLADE_MODULE_SEARCH_PATH"
|
|
||||||
#define GLADE_ENV_TESTING "GLADE_TESTING"
|
#define GLADE_ENV_CATALOG_PATH "GLADE_CATALOG_PATH"
|
||||||
#define GLADE_ENV_PIXMAP_DIR "GLADE_PIXMAP_DIR"
|
#define GLADE_ENV_MODULE_PATH "GLADE_MODULE_PATH"
|
||||||
#define GLADE_ENV_ICON_THEME_PATH "GLADE_ICON_THEME_PATH"
|
|
||||||
#define GLADE_ENV_BUNDLED "GLADE_BUNDLED"
|
typedef struct _GladeApp GladeApp;
|
||||||
|
typedef struct _GladeAppPrivate GladeAppPrivate;
|
||||||
|
typedef struct _GladeAppClass GladeAppClass;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GladePointerMode:
|
||||||
|
* @GLADE_POINTER_SELECT: Mouse pointer used for selecting widgets
|
||||||
|
* @GLADE_POINTER_ADD_WIDGET: Mouse pointer used for adding widgets
|
||||||
|
* @GLADE_POINTER_DRAG_RESIZE: Mouse pointer used for dragging and
|
||||||
|
* resizing widgets in containers
|
||||||
|
*
|
||||||
|
* Indicates what the pointer is used for in the workspace.
|
||||||
|
*/
|
||||||
|
enum _GladePointerMode
|
||||||
|
{
|
||||||
|
GLADE_POINTER_SELECT = 0,
|
||||||
|
GLADE_POINTER_ADD_WIDGET,
|
||||||
|
GLADE_POINTER_DRAG_RESIZE
|
||||||
|
};
|
||||||
|
typedef enum _GladePointerMode GladePointerMode;
|
||||||
|
|
||||||
|
|
||||||
|
struct _GladeApp
|
||||||
|
{
|
||||||
|
GObject parent_instance;
|
||||||
|
|
||||||
|
GladeAppPrivate *priv;
|
||||||
|
};
|
||||||
|
|
||||||
struct _GladeAppClass
|
struct _GladeAppClass
|
||||||
{
|
{
|
||||||
GObjectClass parent_class;
|
GObjectClass parent_class;
|
||||||
|
|
||||||
gpointer padding[6];
|
/* class methods */
|
||||||
|
void (* show_properties) (GladeApp* app,
|
||||||
|
gboolean raise);
|
||||||
|
void (* hide_properties) (GladeApp* app);
|
||||||
|
|
||||||
|
/* signals */
|
||||||
|
void (* update_ui_signal) (GladeApp *app);
|
||||||
|
void (* signal_editor_created) (GladeApp *app, GladeSignalEditor *signal_editor);
|
||||||
};
|
};
|
||||||
|
|
||||||
void glade_init (void);
|
|
||||||
|
GType glade_app_get_type (void) G_GNUC_CONST;
|
||||||
|
|
||||||
GladeApp* glade_app_new (void);
|
GladeApp* glade_app_new (void);
|
||||||
|
|
||||||
|
GType glade_pointer_mode_get_type (void) G_GNUC_CONST;
|
||||||
|
|
||||||
GladeApp* glade_app_get (void);
|
GladeApp* glade_app_get (void);
|
||||||
GKeyFile* glade_app_get_config (void);
|
|
||||||
gint glade_app_config_save (void);
|
|
||||||
|
|
||||||
gboolean glade_app_do_event (GdkEvent *event);
|
void glade_app_update_ui (void);
|
||||||
|
|
||||||
gboolean glade_app_get_catalog_version (const gchar *name,
|
|
||||||
gint *major,
|
|
||||||
gint *minor);
|
|
||||||
GList *glade_app_get_catalogs (void);
|
|
||||||
GladeCatalog *glade_app_get_catalog (const gchar *name);
|
|
||||||
GladeClipboard* glade_app_get_clipboard (void);
|
|
||||||
|
|
||||||
void glade_app_add_project (GladeProject *project);
|
|
||||||
void glade_app_remove_project (GladeProject *project);
|
|
||||||
GList* glade_app_get_projects (void);
|
|
||||||
gboolean glade_app_is_project_loaded (const gchar *project_path);
|
|
||||||
GladeProject* glade_app_get_project_by_path (const gchar *project_path);
|
|
||||||
|
|
||||||
void glade_app_set_window (GtkWidget *window);
|
void glade_app_set_window (GtkWidget *window);
|
||||||
|
|
||||||
GtkWidget* glade_app_get_window (void);
|
GtkWidget* glade_app_get_window (void);
|
||||||
|
|
||||||
|
gboolean glade_app_get_catalog_version (const gchar *name, gint *major, gint *minor);
|
||||||
|
|
||||||
|
GList *glade_app_get_catalogs (void);
|
||||||
|
|
||||||
|
GladeCatalog *glade_app_get_catalog (const gchar *name);
|
||||||
|
|
||||||
|
GladeEditor* glade_app_get_editor (void);
|
||||||
|
|
||||||
|
GladePalette* glade_app_get_palette (void);
|
||||||
|
|
||||||
|
GladeClipboard* glade_app_get_clipboard (void);
|
||||||
|
|
||||||
|
GtkWidget* glade_app_get_clipboard_view (void);
|
||||||
|
|
||||||
|
GladeProject* glade_app_get_project (void);
|
||||||
|
|
||||||
|
GladeProject* glade_app_check_get_project (void);
|
||||||
|
|
||||||
|
void glade_app_set_project (GladeProject *project);
|
||||||
|
|
||||||
|
GladePointerMode glade_app_get_pointer_mode (void);
|
||||||
|
|
||||||
|
void glade_app_set_pointer_mode (GladePointerMode mode);
|
||||||
|
|
||||||
|
void glade_app_add_project (GladeProject *project);
|
||||||
|
|
||||||
|
void glade_app_remove_project (GladeProject *project);
|
||||||
|
|
||||||
|
GList* glade_app_get_projects (void);
|
||||||
|
|
||||||
|
GKeyFile* glade_app_get_config (void);
|
||||||
|
|
||||||
|
gboolean glade_app_is_project_loaded (const gchar *project_path);
|
||||||
|
|
||||||
|
GladeProject* glade_app_get_project_by_path (const gchar *project_path);
|
||||||
|
|
||||||
|
void glade_app_show_properties (gboolean raise);
|
||||||
|
|
||||||
|
void glade_app_hide_properties (void);
|
||||||
|
|
||||||
|
|
||||||
|
void glade_app_command_copy (void);
|
||||||
|
|
||||||
|
void glade_app_command_cut (void);
|
||||||
|
|
||||||
|
void glade_app_command_paste (GladePlaceholder *placeholder);
|
||||||
|
|
||||||
|
void glade_app_command_delete (void);
|
||||||
|
|
||||||
|
void glade_app_command_delete_clipboard (void);
|
||||||
|
|
||||||
|
void glade_app_command_undo (void);
|
||||||
|
|
||||||
|
void glade_app_command_redo (void);
|
||||||
|
|
||||||
|
|
||||||
|
gint glade_app_config_save (void);
|
||||||
|
|
||||||
|
void glade_app_set_transient_parent (GtkWindow *parent);
|
||||||
|
|
||||||
|
GtkWindow *glade_app_get_transient_parent (void);
|
||||||
|
|
||||||
void glade_app_set_accel_group (GtkAccelGroup *accel_group);
|
void glade_app_set_accel_group (GtkAccelGroup *accel_group);
|
||||||
|
|
||||||
GtkAccelGroup *glade_app_get_accel_group (void);
|
GtkAccelGroup *glade_app_get_accel_group (void);
|
||||||
|
|
||||||
void glade_app_search_docs (const gchar *book,
|
void glade_app_update_instance_count (GladeProject *project);
|
||||||
const gchar *page,
|
|
||||||
const gchar *search);
|
|
||||||
|
GtkWidget *glade_app_undo_button_new (void);
|
||||||
|
|
||||||
|
GtkWidget *glade_app_redo_button_new (void);
|
||||||
|
|
||||||
|
|
||||||
|
GList *glade_app_get_selection (void);
|
||||||
|
|
||||||
|
|
||||||
|
/* These handle selection on a global scope and take care
|
||||||
|
* of multiple project logic.
|
||||||
|
*/
|
||||||
|
|
||||||
|
gboolean glade_app_is_selected (GObject *object);
|
||||||
|
|
||||||
|
void glade_app_selection_set (GObject *object,
|
||||||
|
gboolean emit_signal);
|
||||||
|
|
||||||
|
void glade_app_selection_add (GObject *object,
|
||||||
|
gboolean emit_signal);
|
||||||
|
|
||||||
|
void glade_app_selection_remove (GObject *object,
|
||||||
|
gboolean emit_signal);
|
||||||
|
|
||||||
|
void glade_app_selection_clear (gboolean emit_signal);
|
||||||
|
|
||||||
|
void glade_app_selection_changed (void);
|
||||||
|
|
||||||
/* package paths */
|
/* package paths */
|
||||||
|
|
||||||
const gchar *glade_app_get_catalogs_dir (void) G_GNUC_CONST;
|
const gchar *glade_app_get_catalogs_dir (void) G_GNUC_CONST;
|
||||||
|
|
||||||
const gchar *glade_app_get_modules_dir (void) G_GNUC_CONST;
|
const gchar *glade_app_get_modules_dir (void) G_GNUC_CONST;
|
||||||
|
|
||||||
|
const gchar *glade_app_get_plugins_dir (void) G_GNUC_CONST;
|
||||||
|
|
||||||
const gchar *glade_app_get_pixmaps_dir (void) G_GNUC_CONST;
|
const gchar *glade_app_get_pixmaps_dir (void) G_GNUC_CONST;
|
||||||
|
|
||||||
const gchar *glade_app_get_locale_dir (void) G_GNUC_CONST;
|
const gchar *glade_app_get_locale_dir (void) G_GNUC_CONST;
|
||||||
const gchar *glade_app_get_bin_dir (void) G_GNUC_CONST;
|
|
||||||
const gchar *glade_app_get_lib_dir (void) G_GNUC_CONST;
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2006 Juan Pablo Ugarte.
|
* Copyright (C) 2006 Juan Pablo Ugarte.
|
||||||
*
|
*
|
||||||
@ -18,7 +19,6 @@
|
|||||||
* Authors:
|
* Authors:
|
||||||
* Juan Pablo Ugarte <juanpablougarte@gmail.com>
|
* Juan Pablo Ugarte <juanpablougarte@gmail.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __GLADE_BASE_EDITOR_H__
|
#ifndef __GLADE_BASE_EDITOR_H__
|
||||||
#define __GLADE_BASE_EDITOR_H__
|
#define __GLADE_BASE_EDITOR_H__
|
||||||
|
|
||||||
@ -28,23 +28,39 @@
|
|||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define GLADE_TYPE_BASE_EDITOR glade_base_editor_get_type ()
|
#define GLADE_TYPE_BASE_EDITOR (glade_base_editor_get_type ())
|
||||||
G_DECLARE_DERIVABLE_TYPE (GladeBaseEditor, glade_base_editor, GLADE, BASE_EDITOR, GtkBox)
|
#define GLADE_BASE_EDITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GLADE_TYPE_BASE_EDITOR, GladeBaseEditor))
|
||||||
|
#define GLADE_BASE_EDITOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GLADE_TYPE_BASE_EDITOR, GladeBaseEditorClass))
|
||||||
|
#define GLADE_IS_BASE_EDITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GLADE_TYPE_BASE_EDITOR))
|
||||||
|
#define GLADE_IS_BASE_EDITOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GLADE_TYPE_BASE_EDITOR))
|
||||||
|
#define GLADE_BASE_EDITOR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_TYPE_BASE_EDITOR, GladeBaseEditorClass))
|
||||||
|
|
||||||
|
typedef struct _GladeBaseEditor GladeBaseEditor;
|
||||||
|
typedef struct _GladeBaseEditorPrivate GladeBaseEditorPrivate;
|
||||||
|
typedef struct _GladeBaseEditorClass GladeBaseEditorClass;
|
||||||
|
|
||||||
|
struct _GladeBaseEditor
|
||||||
|
{
|
||||||
|
GtkVBox parent;
|
||||||
|
|
||||||
|
GladeBaseEditorPrivate *priv;
|
||||||
|
};
|
||||||
|
|
||||||
struct _GladeBaseEditorClass
|
struct _GladeBaseEditorClass
|
||||||
{
|
{
|
||||||
GtkBoxClass parent_class;
|
GtkVBoxClass parent_class;
|
||||||
|
|
||||||
void (*child_selected) (GladeBaseEditor *editor, GladeWidget *gchild);
|
void (*child_selected) (GladeBaseEditor *, GladeWidget *);
|
||||||
gboolean (*change_type) (GladeBaseEditor *editor, GladeWidget *gchild, GType type);
|
gboolean (*change_type) (GladeBaseEditor *, GladeWidget *, GType);
|
||||||
gchar * (*get_display_name) (GladeBaseEditor *editor, GladeWidget *gchild);
|
gchar * (*get_display_name) (GladeBaseEditor *, GladeWidget *);
|
||||||
GladeWidget * (*build_child) (GladeBaseEditor *editor, GladeWidget *parent, GType type);
|
GladeWidget * (*build_child) (GladeBaseEditor *, GladeWidget *, GType);
|
||||||
gboolean (*delete_child) (GladeBaseEditor *editor, GladeWidget *parent, GladeWidget *gchild);
|
gboolean (*delete_child) (GladeBaseEditor *, GladeWidget *, GladeWidget *);
|
||||||
gboolean (*move_child) (GladeBaseEditor *editor, GladeWidget *gparent, GladeWidget *gchild);
|
gboolean (*move_child) (GladeBaseEditor *, GladeWidget *, GladeWidget *);
|
||||||
|
|
||||||
gpointer padding[6];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
GType glade_base_editor_get_type (void);
|
||||||
|
|
||||||
GladeBaseEditor *glade_base_editor_new (GObject *container,
|
GladeBaseEditor *glade_base_editor_new (GObject *container,
|
||||||
GladeEditable *main_editable,
|
GladeEditable *main_editable,
|
||||||
...);
|
...);
|
||||||
|
@ -1,259 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!-- Generated with glade 3.21.0 -->
|
|
||||||
<interface>
|
|
||||||
<requires lib="gtk+" version="3.20"/>
|
|
||||||
<requires lib="gladeui" version="0.0"/>
|
|
||||||
<template class="GladeBaseEditor" parent="GtkBox">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="events"/>
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<property name="spacing">8</property>
|
|
||||||
<signal name="realize" handler="glade_base_editor_realize_callback" swapped="no"/>
|
|
||||||
<child>
|
|
||||||
<object class="GtkPaned" id="paned">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="events"/>
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<property name="wide_handle">True</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkPaned">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="wide_handle">True</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="events"/>
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkScrolledWindow">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="events"/>
|
|
||||||
<property name="hscrollbar_policy">never</property>
|
|
||||||
<property name="vscrollbar_policy">always</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkTreeView" id="treeview">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="events">GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_TOUCH_MASK</property>
|
|
||||||
<property name="reorderable">True</property>
|
|
||||||
<property name="rules_hint">True</property>
|
|
||||||
<property name="search_column">2</property>
|
|
||||||
<signal name="button-press-event" handler="glade_base_editor_popup_handler" swapped="no"/>
|
|
||||||
<signal name="cursor-changed" handler="glade_base_editor_treeview_cursor_changed" swapped="no"/>
|
|
||||||
<signal name="key-press-event" handler="glade_base_editor_treeview_key_press_event" swapped="no"/>
|
|
||||||
<child internal-child="selection">
|
|
||||||
<object class="GtkTreeSelection"/>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="border_width">4</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButtonBox">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="layout_style">expand</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton" id="help_button">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="receives_default">True</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkImage">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="icon_name">help-browser</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButtonBox">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="halign">end</property>
|
|
||||||
<property name="layout_style">expand</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton" id="add_button">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="receives_default">True</property>
|
|
||||||
<property name="events"/>
|
|
||||||
<signal name="clicked" handler="glade_base_editor_add_activate" swapped="no"/>
|
|
||||||
<child>
|
|
||||||
<object class="GtkImage">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="icon_name">list-add</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton" id="delete_button">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="receives_default">True</property>
|
|
||||||
<property name="events"/>
|
|
||||||
<signal name="clicked" handler="glade_base_editor_delete_activate" swapped="no"/>
|
|
||||||
<child>
|
|
||||||
<object class="GtkImage">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="icon_name">list-remove</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="resize">True</property>
|
|
||||||
<property name="shrink">False</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="tip_label">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="margin_left">4</property>
|
|
||||||
<property name="margin_right">4</property>
|
|
||||||
<property name="use_markup">True</property>
|
|
||||||
<property name="xalign">0</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">False</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkScrolledWindow">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
<property name="events"/>
|
|
||||||
<property name="hscrollbar_policy">never</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkViewport">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="events"/>
|
|
||||||
<child>
|
|
||||||
<object class="GtkGrid" id="table">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="events"/>
|
|
||||||
<property name="margin_left">4</property>
|
|
||||||
<property name="margin_right">4</property>
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<property name="row_spacing">4</property>
|
|
||||||
<property name="column_spacing">4</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel" id="message_label">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="use_markup">True</property>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="left_attach">0</property>
|
|
||||||
<property name="top_attach">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">1</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="resize">True</property>
|
|
||||||
<property name="shrink">False</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="resize">True</property>
|
|
||||||
<property name="shrink">False</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GladeSignalEditor" id="signal_editor">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="events"/>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="resize">True</property>
|
|
||||||
<property name="shrink">False</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
<property name="fill">True</property>
|
|
||||||
<property name="position">0</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</template>
|
|
||||||
</interface>
|
|
@ -1,3 +1,4 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
||||||
/*
|
/*
|
||||||
* glade-clipboard.c - An object for handling Cut/Copy/Paste.
|
* glade-clipboard.c - An object for handling Cut/Copy/Paste.
|
||||||
*
|
*
|
||||||
@ -18,7 +19,7 @@
|
|||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||||
* USA.
|
* USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -33,8 +34,7 @@
|
|||||||
#include "glade-displayable-values.h"
|
#include "glade-displayable-values.h"
|
||||||
|
|
||||||
|
|
||||||
struct _GladeParamSpecObjects
|
struct _GladeParamSpecObjects {
|
||||||
{
|
|
||||||
GParamSpec parent_instance;
|
GParamSpec parent_instance;
|
||||||
|
|
||||||
GType type; /* Object or interface type accepted
|
GType type; /* Object or interface type accepted
|
||||||
@ -42,8 +42,7 @@ struct _GladeParamSpecObjects
|
|||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct _GladeStockItem
|
typedef struct _GladeStockItem {
|
||||||
{
|
|
||||||
gchar *value_name;
|
gchar *value_name;
|
||||||
gchar *value_nick;
|
gchar *value_nick;
|
||||||
gchar *clean_name;
|
gchar *clean_name;
|
||||||
@ -56,7 +55,8 @@ typedef struct _GladeStockItem
|
|||||||
************************************************************/
|
************************************************************/
|
||||||
|
|
||||||
/* Hard-coded list of stock images (and displayable translations) from gtk+ that are not stock "items" */
|
/* Hard-coded list of stock images (and displayable translations) from gtk+ that are not stock "items" */
|
||||||
static const gchar *builtin_stock_images[] = {
|
static const gchar *builtin_stock_images[] =
|
||||||
|
{
|
||||||
"gtk-dialog-authentication", /* GTK_STOCK_DIALOG_AUTHENTICATION */
|
"gtk-dialog-authentication", /* GTK_STOCK_DIALOG_AUTHENTICATION */
|
||||||
"gtk-dnd", /* GTK_STOCK_DND */
|
"gtk-dnd", /* GTK_STOCK_DND */
|
||||||
"gtk-dnd-multiple", /* GTK_STOCK_DND_MULTIPLE */
|
"gtk-dnd-multiple", /* GTK_STOCK_DND_MULTIPLE */
|
||||||
@ -66,21 +66,15 @@ static const gchar *builtin_stock_images[] = {
|
|||||||
"gtk-missing-image" /* GTK_STOCK_MISSING_IMAGE */
|
"gtk-missing-image" /* GTK_STOCK_MISSING_IMAGE */
|
||||||
};
|
};
|
||||||
|
|
||||||
static const gchar *builtin_stock_displayables[] = {
|
static const gchar *builtin_stock_displayables[] =
|
||||||
/* GTK_STOCK_DIALOG_AUTHENTICATION */
|
{
|
||||||
N_("Authentication"),
|
N_("Authentication"), /* GTK_STOCK_DIALOG_AUTHENTICATION */
|
||||||
/* GTK_STOCK_DND */
|
N_("DnD"), /* GTK_STOCK_DND */
|
||||||
N_("Drag and Drop"),
|
N_("DnD Multiple"), /* GTK_STOCK_DND_MULTIPLE */
|
||||||
/* GTK_STOCK_DND_MULTIPLE */
|
N_("Color Picker"), /* GTK_STOCK_COLOR_PICKER */
|
||||||
N_("Drag and Drop Multiple"),
|
N_("Directory"), /* GTK_STOCK_DIRECTORY */
|
||||||
/* GTK_STOCK_COLOR_PICKER */
|
N_("File"), /* GTK_STOCK_FILE */
|
||||||
N_("Color Picker"),
|
N_("Missing Image") /* GTK_STOCK_MISSING_IMAGE */
|
||||||
/* GTK_STOCK_DIRECTORY */
|
|
||||||
N_("Directory"),
|
|
||||||
/* GTK_STOCK_FILE */
|
|
||||||
N_("File"),
|
|
||||||
/* GTK_STOCK_MISSING_IMAGE */
|
|
||||||
N_("Missing Image")
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static GSList *stock_prefixs = NULL;
|
static GSList *stock_prefixs = NULL;
|
||||||
@ -89,12 +83,11 @@ static gboolean stock_prefixs_done = FALSE;
|
|||||||
/* FIXME: func needs documentation
|
/* FIXME: func needs documentation
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
glade_standard_stock_append_prefix (const gchar * prefix)
|
glade_standard_stock_append_prefix (const gchar *prefix)
|
||||||
{
|
{
|
||||||
if (stock_prefixs_done)
|
if (stock_prefixs_done)
|
||||||
{
|
{
|
||||||
g_warning
|
g_warning ("glade_standard_stock_append_prefix should be used in catalog init-function");
|
||||||
("glade_standard_stock_append_prefix should be used in catalog init-function");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,7 +95,7 @@ glade_standard_stock_append_prefix (const gchar * prefix)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static GladeStockItem *
|
static GladeStockItem *
|
||||||
new_from_values (const gchar * name, const gchar * nick, gint value)
|
new_from_values (const gchar *name, const gchar *nick, gint value)
|
||||||
{
|
{
|
||||||
GladeStockItem *new_gsi = NULL;
|
GladeStockItem *new_gsi = NULL;
|
||||||
gchar *clean_name;
|
gchar *clean_name;
|
||||||
@ -110,7 +103,7 @@ new_from_values (const gchar * name, const gchar * nick, gint value)
|
|||||||
guint i = 0;
|
guint i = 0;
|
||||||
guint j = 0;
|
guint j = 0;
|
||||||
|
|
||||||
new_gsi = (GladeStockItem *) g_malloc0 (sizeof (GladeStockItem));
|
new_gsi = (GladeStockItem *) g_malloc0 (sizeof(GladeStockItem));
|
||||||
|
|
||||||
new_gsi->value_name = g_strdup (name);
|
new_gsi->value_name = g_strdup (name);
|
||||||
new_gsi->value_nick = g_strdup (nick);
|
new_gsi->value_nick = g_strdup (nick);
|
||||||
@ -120,12 +113,12 @@ new_from_values (const gchar * name, const gchar * nick, gint value)
|
|||||||
clean_name = g_strdup (name);
|
clean_name = g_strdup (name);
|
||||||
len = strlen (clean_name);
|
len = strlen (clean_name);
|
||||||
|
|
||||||
while (i + j <= len)
|
while (i+j <= len)
|
||||||
{
|
{
|
||||||
if (clean_name[i + j] == '_')
|
if (clean_name[i+j] == '_')
|
||||||
j++;
|
j++;
|
||||||
|
|
||||||
clean_name[i] = clean_name[i + j];
|
clean_name[i] = clean_name[i+j];
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -146,6 +139,7 @@ compare_two_gsi (gconstpointer a, gconstpointer b)
|
|||||||
return strcmp (gsi1->clean_name, gsi2->clean_name);
|
return strcmp (gsi1->clean_name, gsi2->clean_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static GArray *
|
static GArray *
|
||||||
list_stock_items (gboolean include_images)
|
list_stock_items (gboolean include_images)
|
||||||
{
|
{
|
||||||
@ -159,21 +153,7 @@ list_stock_items (gboolean include_images)
|
|||||||
GSList *gsi_list = NULL;
|
GSList *gsi_list = NULL;
|
||||||
GSList *gsi_list_list = NULL;
|
GSList *gsi_list_list = NULL;
|
||||||
|
|
||||||
if (gdk_display_get_default () == NULL)
|
|
||||||
{
|
|
||||||
values = g_array_sized_new (TRUE, TRUE, sizeof (GEnumValue), 1);
|
|
||||||
|
|
||||||
value.value = 0;
|
|
||||||
value.value_name = "dummy";
|
|
||||||
value.value_nick = "Dummy";
|
|
||||||
g_array_append_val (values, value);
|
|
||||||
|
|
||||||
return values;
|
|
||||||
}
|
|
||||||
|
|
||||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|
||||||
stock_list = g_slist_reverse (gtk_stock_list_ids ());
|
stock_list = g_slist_reverse (gtk_stock_list_ids ());
|
||||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
||||||
|
|
||||||
values = g_array_sized_new (TRUE, TRUE, sizeof (GEnumValue),
|
values = g_array_sized_new (TRUE, TRUE, sizeof (GEnumValue),
|
||||||
g_slist_length (stock_list));
|
g_slist_length (stock_list));
|
||||||
@ -190,16 +170,12 @@ G_GNUC_END_IGNORE_DEPRECATIONS
|
|||||||
for (l = stock_list; l; l = g_slist_next (l))
|
for (l = stock_list; l; l = g_slist_next (l))
|
||||||
{
|
{
|
||||||
stock_id = l->data;
|
stock_id = l->data;
|
||||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|
||||||
if (g_str_has_prefix (stock_id, prefix) == FALSE ||
|
if (g_str_has_prefix (stock_id, prefix) == FALSE ||
|
||||||
gtk_stock_lookup (stock_id, &item) == FALSE)
|
gtk_stock_lookup (stock_id, &item) == FALSE )
|
||||||
continue;
|
continue;
|
||||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
||||||
|
|
||||||
gsi = new_from_values (item.label, stock_id, stock_enum++);
|
gsi = new_from_values (item.label, stock_id, stock_enum++ );
|
||||||
gsi_list =
|
gsi_list = g_slist_insert_sorted (gsi_list, gsi, (GCompareFunc) compare_two_gsi);
|
||||||
g_slist_insert_sorted (gsi_list, gsi,
|
|
||||||
(GCompareFunc) compare_two_gsi);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gsi_list_list = g_slist_append (gsi_list_list, gsi_list);
|
gsi_list_list = g_slist_append (gsi_list_list, gsi_list);
|
||||||
@ -210,12 +186,8 @@ G_GNUC_END_IGNORE_DEPRECATIONS
|
|||||||
{
|
{
|
||||||
for (i = 0; i < G_N_ELEMENTS (builtin_stock_images); i++)
|
for (i = 0; i < G_N_ELEMENTS (builtin_stock_images); i++)
|
||||||
{
|
{
|
||||||
gsi =
|
gsi = new_from_values (builtin_stock_images[i], builtin_stock_images[i], stock_enum++);
|
||||||
new_from_values (builtin_stock_images[i],
|
gsi_list = g_slist_insert_sorted (gsi_list, gsi, (GCompareFunc) compare_two_gsi);
|
||||||
builtin_stock_images[i], stock_enum++);
|
|
||||||
gsi_list =
|
|
||||||
g_slist_insert_sorted (gsi_list, gsi,
|
|
||||||
(GCompareFunc) compare_two_gsi);
|
|
||||||
}
|
}
|
||||||
gsi_list_list = g_slist_append (gsi_list_list, gsi_list);
|
gsi_list_list = g_slist_append (gsi_list_list, gsi_list);
|
||||||
gsi_list = NULL;
|
gsi_list = NULL;
|
||||||
@ -244,13 +216,13 @@ G_GNUC_END_IGNORE_DEPRECATIONS
|
|||||||
g_slist_free (gsi_list_list);
|
g_slist_free (gsi_list_list);
|
||||||
|
|
||||||
stock_prefixs_done = TRUE;
|
stock_prefixs_done = TRUE;
|
||||||
g_slist_free_full (stock_list, g_free);
|
g_slist_free (stock_list);
|
||||||
|
|
||||||
return values;
|
return values;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gchar *
|
static gchar *
|
||||||
clean_stock_name (const gchar * name)
|
clean_stock_name (const gchar *name)
|
||||||
{
|
{
|
||||||
gchar *clean_name, *str;
|
gchar *clean_name, *str;
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
@ -262,12 +234,12 @@ clean_stock_name (const gchar * name)
|
|||||||
str = g_strdup (name);
|
str = g_strdup (name);
|
||||||
len = strlen (str);
|
len = strlen (str);
|
||||||
|
|
||||||
while (i + j <= len)
|
while (i+j <= len)
|
||||||
{
|
{
|
||||||
if (str[i + j] == '_')
|
if (str[i+j] == '_')
|
||||||
j++;
|
j++;
|
||||||
|
|
||||||
str[i] = str[i + j];
|
str[i] = str[i+j];
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
clean_name = g_strndup (str, i - j);
|
clean_name = g_strndup (str, i - j);
|
||||||
@ -281,32 +253,21 @@ glade_standard_stock_get_type (void)
|
|||||||
{
|
{
|
||||||
static GType etype = 0;
|
static GType etype = 0;
|
||||||
|
|
||||||
if (etype == 0)
|
if (etype == 0) {
|
||||||
{
|
|
||||||
GArray *values = list_stock_items (FALSE);
|
GArray *values = list_stock_items (FALSE);
|
||||||
gint i, n_values = values->len;
|
gint i, n_values = values->len;
|
||||||
GEnumValue *enum_values = (GEnumValue *) values->data;
|
GEnumValue *enum_values = (GEnumValue *)values->data;
|
||||||
GtkStockItem item;
|
GtkStockItem item;
|
||||||
|
|
||||||
etype = g_enum_register_static ("GladeStock",
|
etype = g_enum_register_static ("GladeStock",
|
||||||
(GEnumValue *) g_array_free (values,
|
(GEnumValue *)g_array_free (values, FALSE));
|
||||||
FALSE));
|
|
||||||
|
|
||||||
if (gdk_display_get_default () == NULL)
|
|
||||||
return etype;
|
|
||||||
|
|
||||||
/* Register displayable by GType, i.e. after the types been created. */
|
/* Register displayable by GType, i.e. after the types been created. */
|
||||||
for (i = 0; i < n_values; i++)
|
for (i = 0; i < n_values; i++)
|
||||||
{
|
{
|
||||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
if (gtk_stock_lookup (enum_values[i].value_nick, &item))
|
||||||
gboolean valid_item = gtk_stock_lookup (enum_values[i].value_nick, &item);
|
|
||||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
||||||
|
|
||||||
if (valid_item)
|
|
||||||
{
|
{
|
||||||
gchar *clean_name = clean_stock_name (item.label);
|
gchar *clean_name = clean_stock_name (item.label);
|
||||||
|
|
||||||
if (!glade_get_displayable_value (etype, enum_values[i].value_nick))
|
|
||||||
glade_register_translated_value (etype, enum_values[i].value_nick, clean_name);
|
glade_register_translated_value (etype, enum_values[i].value_nick, clean_name);
|
||||||
g_free (clean_name);
|
g_free (clean_name);
|
||||||
}
|
}
|
||||||
@ -321,32 +282,23 @@ glade_standard_stock_image_get_type (void)
|
|||||||
{
|
{
|
||||||
static GType etype = 0;
|
static GType etype = 0;
|
||||||
|
|
||||||
if (etype == 0)
|
if (etype == 0) {
|
||||||
{
|
|
||||||
GArray *values = list_stock_items (TRUE);
|
GArray *values = list_stock_items (TRUE);
|
||||||
gint i, n_values = values->len;
|
gint i, n_values = values->len;
|
||||||
GEnumValue *enum_values = (GEnumValue *) values->data;
|
GEnumValue *enum_values = (GEnumValue *)values->data;
|
||||||
GtkStockItem item;
|
GtkStockItem item;
|
||||||
|
|
||||||
etype = g_enum_register_static ("GladeStockImage",
|
etype = g_enum_register_static ("GladeStockImage",
|
||||||
(GEnumValue *) g_array_free (values,
|
(GEnumValue *)g_array_free (values, FALSE));
|
||||||
FALSE));
|
|
||||||
|
|
||||||
if (gdk_display_get_default () == NULL)
|
|
||||||
return etype;
|
|
||||||
|
|
||||||
/* Register displayable by GType, i.e. after the types been created. */
|
/* Register displayable by GType, i.e. after the types been created. */
|
||||||
for (i = 0; i < n_values; i++)
|
for (i = 0; i < n_values; i++)
|
||||||
{
|
{
|
||||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
if (gtk_stock_lookup (enum_values[i].value_nick, &item))
|
||||||
gboolean valid_item = gtk_stock_lookup (enum_values[i].value_nick, &item);
|
|
||||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
|
||||||
if (valid_item)
|
|
||||||
{
|
{
|
||||||
gchar *clean_name = clean_stock_name (item.label);
|
gchar *clean_name = clean_stock_name (item.label);
|
||||||
|
|
||||||
/* These are translated, we just cut out the mnemonic underscores */
|
/* These are translated, we just cut out the mnemonic underscores */
|
||||||
if (!glade_get_displayable_value (etype, enum_values[i].value_nick))
|
|
||||||
glade_register_translated_value (etype, enum_values[i].value_nick, clean_name);
|
glade_register_translated_value (etype, enum_values[i].value_nick, clean_name);
|
||||||
g_free (clean_name);
|
g_free (clean_name);
|
||||||
}
|
}
|
||||||
@ -354,41 +306,31 @@ G_GNUC_END_IGNORE_DEPRECATIONS
|
|||||||
|
|
||||||
for (i = 0; i < G_N_ELEMENTS (builtin_stock_images); i++)
|
for (i = 0; i < G_N_ELEMENTS (builtin_stock_images); i++)
|
||||||
{
|
{
|
||||||
/* these ones are translated from glade */
|
/* these ones are translated from glade3 */
|
||||||
if (!glade_get_displayable_value (etype, builtin_stock_images[i]))
|
|
||||||
glade_register_displayable_value (etype,
|
glade_register_displayable_value (etype,
|
||||||
builtin_stock_images[i],
|
builtin_stock_images[i], GETTEXT_PACKAGE,
|
||||||
GETTEXT_PACKAGE,
|
|
||||||
builtin_stock_displayables[i]);
|
builtin_stock_displayables[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return etype;
|
return etype;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* glade_standard_stock_spec:
|
|
||||||
*
|
|
||||||
* Returns: (transfer full): a #GParamSpec describing a list of builtin stock item
|
|
||||||
*/
|
|
||||||
GParamSpec *
|
GParamSpec *
|
||||||
glade_standard_stock_spec (void)
|
glade_standard_stock_spec (void)
|
||||||
{
|
{
|
||||||
return g_param_spec_enum ("stock", _("Stock"),
|
return g_param_spec_enum ("stock", _("Stock"),
|
||||||
_("A builtin stock item"),
|
_("A builtin stock item"),
|
||||||
GLADE_TYPE_STOCK, 0, G_PARAM_READWRITE);
|
GLADE_TYPE_STOCK,
|
||||||
|
0, G_PARAM_READWRITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* glade_standard_stock_image_spec:
|
|
||||||
*
|
|
||||||
* Returns: (transfer full): a #GParamSpec describing a list of builtin stock image
|
|
||||||
*/
|
|
||||||
GParamSpec *
|
GParamSpec *
|
||||||
glade_standard_stock_image_spec (void)
|
glade_standard_stock_image_spec (void)
|
||||||
{
|
{
|
||||||
return g_param_spec_enum ("stock-image", _("Stock Image"),
|
return g_param_spec_enum ("stock-image", _("Stock Image"),
|
||||||
_("A builtin stock image"),
|
_("A builtin stock image"),
|
||||||
GLADE_TYPE_STOCK_IMAGE, 0, G_PARAM_READWRITE);
|
GLADE_TYPE_STOCK_IMAGE,
|
||||||
|
0, G_PARAM_READWRITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************
|
/****************************************************************
|
||||||
@ -403,24 +345,26 @@ glade_glist_get_type (void)
|
|||||||
if (!type_id)
|
if (!type_id)
|
||||||
type_id = g_boxed_type_register_static
|
type_id = g_boxed_type_register_static
|
||||||
("GladeGList",
|
("GladeGList",
|
||||||
(GBoxedCopyFunc) g_list_copy, (GBoxedFreeFunc) g_list_free);
|
(GBoxedCopyFunc) g_list_copy,
|
||||||
|
(GBoxedFreeFunc) g_list_free);
|
||||||
return type_id;
|
return type_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************
|
/****************************************************************
|
||||||
* Built-in GladeParamSpecObjects for object list properties *
|
* Built-in GladeParamSpecObjects for object list properties *
|
||||||
* (Used as a pspec to describe an AtkRelationSet, but can *
|
* (Used as a pspec to desctibe an AtkRelationSet, but can *
|
||||||
* for any object list property) *
|
* for any object list property) *
|
||||||
****************************************************************/
|
****************************************************************/
|
||||||
static void
|
static void
|
||||||
param_objects_init (GParamSpec * pspec)
|
param_objects_init (GParamSpec *pspec)
|
||||||
{
|
{
|
||||||
GladeParamSpecObjects *ospec = GLADE_PARAM_SPEC_OBJECTS (pspec);
|
GladeParamSpecObjects *ospec = GLADE_PARAM_SPEC_OBJECTS (pspec);
|
||||||
ospec->type = G_TYPE_OBJECT;
|
ospec->type = G_TYPE_OBJECT;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
param_objects_set_default (GParamSpec * pspec, GValue * value)
|
param_objects_set_default (GParamSpec *pspec,
|
||||||
|
GValue *value)
|
||||||
{
|
{
|
||||||
if (value->data[0].v_pointer != NULL)
|
if (value->data[0].v_pointer != NULL)
|
||||||
{
|
{
|
||||||
@ -430,7 +374,8 @@ param_objects_set_default (GParamSpec * pspec, GValue * value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
param_objects_validate (GParamSpec * pspec, GValue * value)
|
param_objects_validate (GParamSpec *pspec,
|
||||||
|
GValue *value)
|
||||||
{
|
{
|
||||||
GladeParamSpecObjects *ospec = GLADE_PARAM_SPEC_OBJECTS (pspec);
|
GladeParamSpecObjects *ospec = GLADE_PARAM_SPEC_OBJECTS (pspec);
|
||||||
GList *objects, *list, *toremove = NULL;
|
GList *objects, *list, *toremove = NULL;
|
||||||
@ -442,9 +387,16 @@ param_objects_validate (GParamSpec * pspec, GValue * value)
|
|||||||
{
|
{
|
||||||
object = list->data;
|
object = list->data;
|
||||||
|
|
||||||
if (!(G_OBJECT_TYPE (object) == ospec->type ||
|
if (G_TYPE_IS_INTERFACE (ospec->type) &&
|
||||||
g_type_is_a (G_OBJECT_TYPE (object), ospec->type)))
|
glade_util_class_implements_interface
|
||||||
|
(G_OBJECT_TYPE (object), ospec->type) == FALSE)
|
||||||
toremove = g_list_prepend (toremove, object);
|
toremove = g_list_prepend (toremove, object);
|
||||||
|
else if (G_TYPE_IS_INTERFACE (ospec->type) == FALSE &&
|
||||||
|
g_type_is_a (G_OBJECT_TYPE (object),
|
||||||
|
ospec->type) == FALSE)
|
||||||
|
toremove = g_list_prepend (toremove, object);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (list = toremove; list; list = list->next)
|
for (list = toremove; list; list = list->next)
|
||||||
@ -452,8 +404,7 @@ param_objects_validate (GParamSpec * pspec, GValue * value)
|
|||||||
object = list->data;
|
object = list->data;
|
||||||
objects = g_list_remove (objects, object);
|
objects = g_list_remove (objects, object);
|
||||||
}
|
}
|
||||||
if (toremove)
|
if (toremove) g_list_free (toremove);
|
||||||
g_list_free (toremove);
|
|
||||||
|
|
||||||
value->data[0].v_pointer = objects;
|
value->data[0].v_pointer = objects;
|
||||||
|
|
||||||
@ -461,8 +412,9 @@ param_objects_validate (GParamSpec * pspec, GValue * value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
param_objects_values_cmp (GParamSpec * pspec,
|
param_objects_values_cmp (GParamSpec *pspec,
|
||||||
const GValue * value1, const GValue * value2)
|
const GValue *value1,
|
||||||
|
const GValue *value2)
|
||||||
{
|
{
|
||||||
guint8 *p1 = value1->data[0].v_pointer;
|
guint8 *p1 = value1->data[0].v_pointer;
|
||||||
guint8 *p2 = value2->data[0].v_pointer;
|
guint8 *p2 = value2->data[0].v_pointer;
|
||||||
@ -497,16 +449,12 @@ glade_param_objects_get_type (void)
|
|||||||
return objects_type;
|
return objects_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* glade_param_spec_objects:
|
|
||||||
*
|
|
||||||
* Returns: (transfer full): a #GParamSpec describing a list of #GObject
|
|
||||||
*/
|
|
||||||
GParamSpec *
|
GParamSpec *
|
||||||
glade_param_spec_objects (const gchar * name,
|
glade_param_spec_objects (const gchar *name,
|
||||||
const gchar * nick,
|
const gchar *nick,
|
||||||
const gchar * blurb,
|
const gchar *blurb,
|
||||||
GType accepted_type, GParamFlags flags)
|
GType accepted_type,
|
||||||
|
GParamFlags flags)
|
||||||
{
|
{
|
||||||
GladeParamSpecObjects *pspec;
|
GladeParamSpecObjects *pspec;
|
||||||
|
|
||||||
@ -518,39 +466,32 @@ glade_param_spec_objects (const gchar * name,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
glade_param_spec_objects_set_type (GladeParamSpecObjects * pspec, GType type)
|
glade_param_spec_objects_set_type (GladeParamSpecObjects *pspec,
|
||||||
|
GType type)
|
||||||
{
|
{
|
||||||
pspec->type = type;
|
pspec->type = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
GType
|
GType
|
||||||
glade_param_spec_objects_get_type (GladeParamSpecObjects * pspec)
|
glade_param_spec_objects_get_type (GladeParamSpecObjects *pspec)
|
||||||
{
|
{
|
||||||
return pspec->type;
|
return pspec->type;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/* This was developed for the purpose of holding a list
|
||||||
* glade_standard_objects_spec:
|
|
||||||
*
|
|
||||||
* This was developed for the purpose of holding a list
|
|
||||||
* of 'targets' in an AtkRelation (we are setting it up
|
* of 'targets' in an AtkRelation (we are setting it up
|
||||||
* as a property)
|
* as a property)
|
||||||
*
|
|
||||||
* Returns: (transfer full): a #GParamSpec describing a list of #GObject
|
|
||||||
*/
|
*/
|
||||||
GParamSpec *
|
GParamSpec *
|
||||||
glade_standard_objects_spec (void)
|
glade_standard_objects_spec (void)
|
||||||
{
|
{
|
||||||
return glade_param_spec_objects ("objects", _("Objects"),
|
return glade_param_spec_objects ("objects", _("Objects"),
|
||||||
_("A list of objects"),
|
_("A list of objects"),
|
||||||
G_TYPE_OBJECT, G_PARAM_READWRITE);
|
G_TYPE_OBJECT,
|
||||||
|
G_PARAM_READWRITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/* Pixbuf Type */
|
||||||
* glade_standard_pixbuf_spec:
|
|
||||||
*
|
|
||||||
* Returns: (transfer full): a #GParamSpec describing a #GdkPixbuf
|
|
||||||
*/
|
|
||||||
GParamSpec *
|
GParamSpec *
|
||||||
glade_standard_pixbuf_spec (void)
|
glade_standard_pixbuf_spec (void)
|
||||||
{
|
{
|
||||||
@ -560,15 +501,11 @@ glade_standard_pixbuf_spec (void)
|
|||||||
G_PARAM_READWRITE);
|
G_PARAM_READWRITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/* GdkColor */
|
||||||
* glade_standard_gdkcolor_spec:
|
|
||||||
*
|
|
||||||
* Returns: (transfer full): a #GParamSpec describing a #GdkColor
|
|
||||||
*/
|
|
||||||
GParamSpec *
|
GParamSpec *
|
||||||
glade_standard_gdkcolor_spec (void)
|
glade_standard_gdkcolor_spec (void)
|
||||||
{
|
{
|
||||||
return g_param_spec_boxed ("gdkcolor", _("Color"),
|
return g_param_spec_boxed ("gdkcolor", _("GdkColor"),
|
||||||
_("A GDK color value"), GDK_TYPE_COLOR,
|
_("A GDK color value"), GDK_TYPE_COLOR,
|
||||||
G_PARAM_READWRITE);
|
G_PARAM_READWRITE);
|
||||||
}
|
}
|
||||||
@ -576,78 +513,74 @@ glade_standard_gdkcolor_spec (void)
|
|||||||
/****************************************************************
|
/****************************************************************
|
||||||
* Basic types follow *
|
* Basic types follow *
|
||||||
****************************************************************/
|
****************************************************************/
|
||||||
|
|
||||||
/**
|
|
||||||
* glade_standard_int_spec:
|
|
||||||
*
|
|
||||||
* Returns: (transfer full): a #GParamSpec describing an int
|
|
||||||
*/
|
|
||||||
GParamSpec *
|
GParamSpec *
|
||||||
glade_standard_int_spec (void)
|
glade_standard_int_spec (void)
|
||||||
{
|
{
|
||||||
return g_param_spec_int ("int", "Integer",
|
return g_param_spec_int ("int", _("Integer"),
|
||||||
"An integer value",
|
_("An integer value"),
|
||||||
G_MININT, G_MAXINT, 0, G_PARAM_READWRITE);
|
G_MININT, G_MAXINT,
|
||||||
|
0, G_PARAM_READWRITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* glade_standard_uint_spec:
|
|
||||||
*
|
|
||||||
* Returns: (transfer full): a #GParamSpec describing an uint
|
|
||||||
*/
|
|
||||||
GParamSpec *
|
GParamSpec *
|
||||||
glade_standard_uint_spec (void)
|
glade_standard_uint_spec (void)
|
||||||
{
|
{
|
||||||
return g_param_spec_uint ("uint", "Unsigned Integer",
|
return g_param_spec_uint ("uint", _("Unsigned Integer"),
|
||||||
"An unsigned integer value",
|
_("An unsigned integer value"),
|
||||||
0, G_MAXUINT, 0, G_PARAM_READWRITE);
|
0, G_MAXUINT, 0, G_PARAM_READWRITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* glade_standard_string_spec:
|
|
||||||
*
|
|
||||||
* Returns: (transfer full): a #GParamSpec describing a string
|
|
||||||
*/
|
|
||||||
GParamSpec *
|
GParamSpec *
|
||||||
glade_standard_string_spec (void)
|
glade_standard_string_spec (void)
|
||||||
{
|
{
|
||||||
return g_param_spec_string ("string", _("String"),
|
return g_param_spec_string ("string", _("String"),
|
||||||
_("An entry"), "", G_PARAM_READWRITE);
|
_("An entry"), "",
|
||||||
|
G_PARAM_READWRITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* glade_standard_strv_spec:
|
|
||||||
*
|
|
||||||
* Returns: (transfer full): a #GParamSpec describing an array of strings
|
|
||||||
*/
|
|
||||||
GParamSpec *
|
GParamSpec *
|
||||||
glade_standard_strv_spec (void)
|
glade_standard_strv_spec (void)
|
||||||
{
|
{
|
||||||
return g_param_spec_boxed ("strv", "Strv",
|
return g_param_spec_boxed ("strv", _("Strv"),
|
||||||
"String array", G_TYPE_STRV, G_PARAM_READWRITE);
|
_("String array"),
|
||||||
|
G_TYPE_STRV,
|
||||||
|
G_PARAM_READWRITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* glade_standard_float_spec:
|
|
||||||
*
|
|
||||||
* Returns: (transfer full): a #GParamSpec describing a float
|
|
||||||
*/
|
|
||||||
GParamSpec *
|
GParamSpec *
|
||||||
glade_standard_float_spec (void)
|
glade_standard_float_spec (void)
|
||||||
{
|
{
|
||||||
return g_param_spec_float ("float", "Float",
|
return g_param_spec_float ("float", _("Float"),
|
||||||
"A floating point entry",
|
_("A floating point entry"),
|
||||||
0.0F, G_MAXFLOAT, 0.0F, G_PARAM_READWRITE);
|
0.0F, G_MAXFLOAT, 0.0F,
|
||||||
|
G_PARAM_READWRITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* glade_standard_boolean_spec:
|
|
||||||
*
|
|
||||||
* Returns: (transfer full): a #GParamSpec describing a boolean
|
|
||||||
*/
|
|
||||||
GParamSpec *
|
GParamSpec *
|
||||||
glade_standard_boolean_spec (void)
|
glade_standard_boolean_spec (void)
|
||||||
{
|
{
|
||||||
return g_param_spec_boolean ("boolean", "Boolean",
|
return g_param_spec_boolean ("boolean", _("Boolean"),
|
||||||
"A boolean value", FALSE, G_PARAM_READWRITE);
|
_("A boolean value"), FALSE,
|
||||||
|
G_PARAM_READWRITE);
|
||||||
|
}
|
||||||
|
|
||||||
|
GType
|
||||||
|
glade_item_appearance_get_type (void)
|
||||||
|
{
|
||||||
|
static GType etype = 0;
|
||||||
|
|
||||||
|
if (etype == 0)
|
||||||
|
{
|
||||||
|
static const GEnumValue values[] = {
|
||||||
|
{ GLADE_ITEM_ICON_AND_LABEL, "GLADE_ITEM_ICON_AND_LABEL", "icon-and-label" },
|
||||||
|
{ GLADE_ITEM_ICON_ONLY, "GLADE_ITEM_ICON_ONLY", "icon-only" },
|
||||||
|
{ GLADE_ITEM_LABEL_ONLY, "GLADE_ITEM_LABEL_ONLY", "label-only" },
|
||||||
|
{ 0, NULL, NULL }
|
||||||
|
};
|
||||||
|
|
||||||
|
etype = g_enum_register_static ("GladeItemAppearance", values);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return etype;
|
||||||
}
|
}
|
||||||
|
@ -1,27 +1,4 @@
|
|||||||
/*
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
||||||
* glade-clipboard.c - An object for handling Cut/Copy/Paste.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2005 The GNOME Foundation.
|
|
||||||
*
|
|
||||||
* Author(s):
|
|
||||||
* Tristan Van Berkom <tvb@gnome.org>
|
|
||||||
*
|
|
||||||
* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
|
||||||
* USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLADE_BUILTINS_H__
|
#ifndef __GLADE_BUILTINS_H__
|
||||||
#define __GLADE_BUILTINS_H__
|
#define __GLADE_BUILTINS_H__
|
||||||
|
|
||||||
@ -37,6 +14,7 @@ typedef struct _GladeParamSpecObjects GladeParamSpecObjects;
|
|||||||
#define GLADE_TYPE_STOCK_IMAGE (glade_standard_stock_image_get_type())
|
#define GLADE_TYPE_STOCK_IMAGE (glade_standard_stock_image_get_type())
|
||||||
#define GLADE_TYPE_GLIST (glade_glist_get_type())
|
#define GLADE_TYPE_GLIST (glade_glist_get_type())
|
||||||
#define GLADE_TYPE_PARAM_OBJECTS (glade_param_objects_get_type())
|
#define GLADE_TYPE_PARAM_OBJECTS (glade_param_objects_get_type())
|
||||||
|
#define GLADE_TYPE_ITEM_APPEARANCE (glade_item_appearance_get_type())
|
||||||
|
|
||||||
#define GLADE_IS_STOCK(pspec) \
|
#define GLADE_IS_STOCK(pspec) \
|
||||||
(G_TYPE_CHECK_INSTANCE_TYPE ((pspec), GLADE_TYPE_STOCK))
|
(G_TYPE_CHECK_INSTANCE_TYPE ((pspec), GLADE_TYPE_STOCK))
|
||||||
@ -55,6 +33,7 @@ GType glade_standard_stock_get_type (void) G_GNUC_CONST;
|
|||||||
GType glade_standard_stock_image_get_type (void) G_GNUC_CONST;
|
GType glade_standard_stock_image_get_type (void) G_GNUC_CONST;
|
||||||
GType glade_glist_get_type (void) G_GNUC_CONST;
|
GType glade_glist_get_type (void) G_GNUC_CONST;
|
||||||
GType glade_param_objects_get_type (void) G_GNUC_CONST;
|
GType glade_param_objects_get_type (void) G_GNUC_CONST;
|
||||||
|
GType glade_item_appearance_get_type (void) G_GNUC_CONST;
|
||||||
|
|
||||||
GParamSpec *glade_param_spec_objects (const gchar *name,
|
GParamSpec *glade_param_spec_objects (const gchar *name,
|
||||||
const gchar *nick,
|
const gchar *nick,
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2001 Ximian, Inc.
|
* Copyright (C) 2001 Ximian, Inc.
|
||||||
* Copyright (C) 2004 Imendio AB
|
* Copyright (C) 2004 Imendio AB
|
||||||
@ -42,10 +43,26 @@ typedef struct _GladeWidgetGroup GladeWidgetGroup;
|
|||||||
* @name: The name of the catalog
|
* @name: The name of the catalog
|
||||||
*
|
*
|
||||||
* Called once at glade startup time for every catalog, catalogs
|
* Called once at glade startup time for every catalog, catalogs
|
||||||
* are initialized in order of dependencies.
|
* are initialized in order of dependancies.
|
||||||
*/
|
*/
|
||||||
typedef void (*GladeCatalogInitFunc) (const gchar *name);
|
typedef void (*GladeCatalogInitFunc) (const gchar *name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GladeProjectConvertFunc:
|
||||||
|
* @project: A #GladeProject
|
||||||
|
* @new_format: The format to convert @project to
|
||||||
|
*
|
||||||
|
* Generally format transperency is implemented at load/save time,
|
||||||
|
* but if some objects need to be setup differently, or some new
|
||||||
|
* objects created (like real GtkAdjustment objects for old inline
|
||||||
|
* property values) this is the place to do those things, be careful
|
||||||
|
* to use the GladeCommand api because conversions are undoable.
|
||||||
|
*
|
||||||
|
* Returns: FALSE if any errors occurred during the conversion.
|
||||||
|
*/
|
||||||
|
typedef gboolean (*GladeProjectConvertFunc) (GladeProject *project,
|
||||||
|
GladeProjectFormat new_format);
|
||||||
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
gint major;
|
gint major;
|
||||||
@ -53,16 +70,12 @@ typedef struct {
|
|||||||
} GladeTargetableVersion;
|
} GladeTargetableVersion;
|
||||||
|
|
||||||
|
|
||||||
void glade_catalog_add_path (const gchar *path);
|
|
||||||
void glade_catalog_remove_path (const gchar *path);
|
|
||||||
const GList *glade_catalog_get_extra_paths (void);
|
|
||||||
const GList *glade_catalog_load_all (void);
|
const GList *glade_catalog_load_all (void);
|
||||||
|
|
||||||
const gchar *glade_catalog_get_name (GladeCatalog *catalog);
|
G_CONST_RETURN gchar *glade_catalog_get_name (GladeCatalog *catalog);
|
||||||
const gchar *glade_catalog_get_prefix (GladeCatalog *catalog);
|
G_CONST_RETURN gchar *glade_catalog_get_icon_prefix(GladeCatalog *catalog);
|
||||||
const gchar *glade_catalog_get_icon_prefix(GladeCatalog *catalog);
|
G_CONST_RETURN gchar *glade_catalog_get_domain (GladeCatalog *catalog);
|
||||||
const gchar *glade_catalog_get_domain (GladeCatalog *catalog);
|
G_CONST_RETURN gchar *glade_catalog_get_book (GladeCatalog *catalog);
|
||||||
const gchar *glade_catalog_get_book (GladeCatalog *catalog);
|
|
||||||
|
|
||||||
GList *glade_catalog_get_targets (GladeCatalog *catalog);
|
GList *glade_catalog_get_targets (GladeCatalog *catalog);
|
||||||
|
|
||||||
@ -86,6 +99,14 @@ gboolean glade_widget_group_get_expanded (GladeWidgetGroup *group);
|
|||||||
|
|
||||||
const GList *glade_widget_group_get_adaptors (GladeWidgetGroup *group);
|
const GList *glade_widget_group_get_adaptors (GladeWidgetGroup *group);
|
||||||
|
|
||||||
|
gboolean glade_catalog_convert_project (GladeCatalog *catalog,
|
||||||
|
GladeProject *project,
|
||||||
|
GladeProjectFormat new_format);
|
||||||
|
|
||||||
|
|
||||||
|
gboolean glade_catalog_supports_libglade (GladeCatalog *catalog);
|
||||||
|
gboolean glade_catalog_supports_gtkbuilder (GladeCatalog *catalog);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __GLADE_CATALOG_H__ */
|
#endif /* __GLADE_CATALOG_H__ */
|
||||||
|
@ -1,239 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2008 Tristan Van Berkom.
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU Lesser General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2.1 of
|
|
||||||
* the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This library 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
|
|
||||||
* Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
|
||||||
* License along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
* Authors:
|
|
||||||
* Tristan Van Berkom <tvb@gnome.org>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
#include "glade-cell-renderer-icon.h"
|
|
||||||
#include "glade-marshallers.h"
|
|
||||||
|
|
||||||
static void glade_cell_renderer_icon_get_property (GObject *object,
|
|
||||||
guint param_id,
|
|
||||||
GValue *value,
|
|
||||||
GParamSpec *pspec);
|
|
||||||
static void glade_cell_renderer_icon_set_property (GObject *object,
|
|
||||||
guint param_id,
|
|
||||||
const GValue *value,
|
|
||||||
GParamSpec *pspec);
|
|
||||||
static gboolean glade_cell_renderer_icon_activate (GtkCellRenderer *cell,
|
|
||||||
GdkEvent *event,
|
|
||||||
GtkWidget *widget,
|
|
||||||
const gchar *path,
|
|
||||||
const GdkRectangle *background_area,
|
|
||||||
const GdkRectangle *cell_area,
|
|
||||||
GtkCellRendererState flags);
|
|
||||||
|
|
||||||
typedef struct _GladeCellRendererIconPrivate
|
|
||||||
{
|
|
||||||
guint active : 1;
|
|
||||||
guint activatable : 1;
|
|
||||||
} GladeCellRendererIconPrivate;
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
ACTIVATE,
|
|
||||||
LAST_SIGNAL
|
|
||||||
};
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
PROP_0,
|
|
||||||
PROP_ACTIVATABLE,
|
|
||||||
PROP_ACTIVE,
|
|
||||||
N_PROPERTIES
|
|
||||||
};
|
|
||||||
|
|
||||||
static GParamSpec *properties[N_PROPERTIES];
|
|
||||||
static guint icon_cell_signals[LAST_SIGNAL] = { 0 };
|
|
||||||
|
|
||||||
|
|
||||||
G_DEFINE_TYPE_WITH_PRIVATE (GladeCellRendererIcon,
|
|
||||||
glade_cell_renderer_icon,
|
|
||||||
GTK_TYPE_CELL_RENDERER_PIXBUF)
|
|
||||||
|
|
||||||
static void glade_cell_renderer_icon_init (GladeCellRendererIcon *cellicon)
|
|
||||||
{
|
|
||||||
GladeCellRendererIconPrivate *priv = glade_cell_renderer_icon_get_instance_private (cellicon);
|
|
||||||
|
|
||||||
priv->activatable = TRUE;
|
|
||||||
priv->active = FALSE;
|
|
||||||
|
|
||||||
g_object_set (G_OBJECT (cellicon), "mode", GTK_CELL_RENDERER_MODE_ACTIVATABLE,
|
|
||||||
NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
glade_cell_renderer_icon_class_init (GladeCellRendererIconClass *class)
|
|
||||||
{
|
|
||||||
GObjectClass *object_class = G_OBJECT_CLASS (class);
|
|
||||||
GtkCellRendererClass *cell_class = GTK_CELL_RENDERER_CLASS (class);
|
|
||||||
|
|
||||||
object_class->get_property = glade_cell_renderer_icon_get_property;
|
|
||||||
object_class->set_property = glade_cell_renderer_icon_set_property;
|
|
||||||
|
|
||||||
cell_class->activate = glade_cell_renderer_icon_activate;
|
|
||||||
|
|
||||||
properties[PROP_ACTIVE] =
|
|
||||||
g_param_spec_boolean ("active", "Icon state",
|
|
||||||
"The icon state of the button",
|
|
||||||
FALSE,
|
|
||||||
G_PARAM_READABLE | G_PARAM_WRITABLE);
|
|
||||||
|
|
||||||
properties[PROP_ACTIVATABLE] =
|
|
||||||
g_param_spec_boolean ("activatable",
|
|
||||||
"Activatable",
|
|
||||||
"The icon button can be activated",
|
|
||||||
TRUE,
|
|
||||||
G_PARAM_READABLE | G_PARAM_WRITABLE);
|
|
||||||
|
|
||||||
/* Install all properties */
|
|
||||||
g_object_class_install_properties (object_class, N_PROPERTIES, properties);
|
|
||||||
|
|
||||||
icon_cell_signals[ACTIVATE] =
|
|
||||||
g_signal_new ("activate",
|
|
||||||
G_OBJECT_CLASS_TYPE (object_class),
|
|
||||||
G_SIGNAL_RUN_LAST,
|
|
||||||
G_STRUCT_OFFSET (GladeCellRendererIconClass, activate),
|
|
||||||
NULL, NULL,
|
|
||||||
_glade_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
glade_cell_renderer_icon_get_property (GObject *object,
|
|
||||||
guint param_id,
|
|
||||||
GValue *value,
|
|
||||||
GParamSpec *pspec)
|
|
||||||
{
|
|
||||||
GladeCellRendererIcon *cellicon = GLADE_CELL_RENDERER_ICON (object);
|
|
||||||
GladeCellRendererIconPrivate *priv = glade_cell_renderer_icon_get_instance_private (cellicon);
|
|
||||||
|
|
||||||
switch (param_id)
|
|
||||||
{
|
|
||||||
case PROP_ACTIVE:
|
|
||||||
g_value_set_boolean (value, priv->active);
|
|
||||||
break;
|
|
||||||
case PROP_ACTIVATABLE:
|
|
||||||
g_value_set_boolean (value, priv->activatable);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
glade_cell_renderer_icon_set_property (GObject *object,
|
|
||||||
guint param_id,
|
|
||||||
const GValue *value,
|
|
||||||
GParamSpec *pspec)
|
|
||||||
{
|
|
||||||
GladeCellRendererIcon *cellicon = GLADE_CELL_RENDERER_ICON (object);
|
|
||||||
GladeCellRendererIconPrivate *priv = glade_cell_renderer_icon_get_instance_private (cellicon);
|
|
||||||
|
|
||||||
switch (param_id)
|
|
||||||
{
|
|
||||||
case PROP_ACTIVE:
|
|
||||||
priv->active = g_value_get_boolean (value);
|
|
||||||
break;
|
|
||||||
case PROP_ACTIVATABLE:
|
|
||||||
priv->activatable = g_value_get_boolean (value);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
GtkCellRenderer *
|
|
||||||
glade_cell_renderer_icon_new (void)
|
|
||||||
{
|
|
||||||
return g_object_new (GLADE_TYPE_CELL_RENDERER_ICON, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static gint
|
|
||||||
glade_cell_renderer_icon_activate (GtkCellRenderer *cell,
|
|
||||||
GdkEvent *event,
|
|
||||||
GtkWidget *widget,
|
|
||||||
const gchar *path,
|
|
||||||
const GdkRectangle *background_area,
|
|
||||||
const GdkRectangle *cell_area,
|
|
||||||
GtkCellRendererState flags)
|
|
||||||
{
|
|
||||||
GladeCellRendererIcon *cellicon = GLADE_CELL_RENDERER_ICON (cell);
|
|
||||||
GladeCellRendererIconPrivate *priv = glade_cell_renderer_icon_get_instance_private (cellicon);
|
|
||||||
|
|
||||||
if (priv->activatable)
|
|
||||||
{
|
|
||||||
g_signal_emit (cell, icon_cell_signals[ACTIVATE], 0, path);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
glade_cell_renderer_icon_get_active (GladeCellRendererIcon *icon)
|
|
||||||
{
|
|
||||||
GladeCellRendererIconPrivate *priv = glade_cell_renderer_icon_get_instance_private (icon);
|
|
||||||
|
|
||||||
g_return_val_if_fail (GLADE_IS_CELL_RENDERER_ICON (icon), FALSE);
|
|
||||||
|
|
||||||
return priv->active;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
glade_cell_renderer_icon_set_active (GladeCellRendererIcon *icon,
|
|
||||||
gboolean setting)
|
|
||||||
{
|
|
||||||
GladeCellRendererIconPrivate *priv = glade_cell_renderer_icon_get_instance_private (icon);
|
|
||||||
|
|
||||||
g_return_if_fail (GLADE_IS_CELL_RENDERER_ICON (icon));
|
|
||||||
|
|
||||||
if (priv->active != setting)
|
|
||||||
{
|
|
||||||
priv->active = setting ? TRUE : FALSE;
|
|
||||||
g_object_notify_by_pspec (G_OBJECT (icon), properties[PROP_ACTIVE]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
glade_cell_renderer_icon_get_activatable (GladeCellRendererIcon *icon)
|
|
||||||
{
|
|
||||||
GladeCellRendererIconPrivate *priv = glade_cell_renderer_icon_get_instance_private (icon);
|
|
||||||
|
|
||||||
g_return_val_if_fail (GLADE_IS_CELL_RENDERER_ICON (icon), FALSE);
|
|
||||||
|
|
||||||
return priv->activatable;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
glade_cell_renderer_icon_set_activatable (GladeCellRendererIcon *icon,
|
|
||||||
gboolean setting)
|
|
||||||
{
|
|
||||||
GladeCellRendererIconPrivate *priv = glade_cell_renderer_icon_get_instance_private (icon);
|
|
||||||
|
|
||||||
g_return_if_fail (GLADE_IS_CELL_RENDERER_ICON (icon));
|
|
||||||
|
|
||||||
if (priv->activatable != setting)
|
|
||||||
{
|
|
||||||
priv->activatable = setting ? TRUE : FALSE;
|
|
||||||
g_object_notify_by_pspec (G_OBJECT (icon), properties[PROP_ACTIVATABLE]);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,54 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2010 Tristan Van Berkom.
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU Lesser General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2.1 of
|
|
||||||
* the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This library 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
|
|
||||||
* Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
|
||||||
* License along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
* Authors:
|
|
||||||
* Tristan Van Berkom <tvb@gnome.org>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __GLADE_CELL_RENDERER_ICON_H__
|
|
||||||
#define __GLADE_CELL_RENDERER_ICON_H__
|
|
||||||
|
|
||||||
#include <gtk/gtk.h>
|
|
||||||
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
|
||||||
|
|
||||||
#define GLADE_TYPE_CELL_RENDERER_ICON glade_cell_renderer_icon_get_type ()
|
|
||||||
G_DECLARE_DERIVABLE_TYPE (GladeCellRendererIcon, glade_cell_renderer_icon, GLADE, CELL_RENDERER_ICON, GtkCellRendererPixbuf)
|
|
||||||
|
|
||||||
struct _GladeCellRendererIconClass
|
|
||||||
{
|
|
||||||
GtkCellRendererPixbufClass parent_class;
|
|
||||||
|
|
||||||
void (* activate) (GladeCellRendererIcon *cell_renderer_icon,
|
|
||||||
const gchar *path);
|
|
||||||
};
|
|
||||||
|
|
||||||
GtkCellRenderer *glade_cell_renderer_icon_new (void);
|
|
||||||
|
|
||||||
gboolean glade_cell_renderer_icon_get_active (GladeCellRendererIcon *icon);
|
|
||||||
void glade_cell_renderer_icon_set_active (GladeCellRendererIcon *icon,
|
|
||||||
gboolean setting);
|
|
||||||
|
|
||||||
gboolean glade_cell_renderer_icon_get_activatable (GladeCellRendererIcon *icon);
|
|
||||||
void glade_cell_renderer_icon_set_activatable (GladeCellRendererIcon *icon,
|
|
||||||
gboolean setting);
|
|
||||||
|
|
||||||
|
|
||||||
G_END_DECLS
|
|
||||||
|
|
||||||
#endif /* __GLADE_CELL_RENDERER_ICON_H__ */
|
|