added new splitted c++ wrapper for EFL (eflxx)
SVN revision: 41355
This commit is contained in:
parent
8a3227506f
commit
4e76bba2e6
|
@ -0,0 +1,85 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
####################
|
||||||
|
##### functions ####
|
||||||
|
####################
|
||||||
|
|
||||||
|
do_bootstrap ()
|
||||||
|
{
|
||||||
|
module=$1
|
||||||
|
|
||||||
|
cd $BASEDIR/$module
|
||||||
|
|
||||||
|
echo "Bootstrapping '$module'..."
|
||||||
|
|
||||||
|
./bootstrap &> $BASEDIR/logs/$module.bootstrap.log
|
||||||
|
|
||||||
|
if [ $? != 0 ]; then
|
||||||
|
echo "Failed while bootstrapping!"
|
||||||
|
$val_skip_error || exit
|
||||||
|
else
|
||||||
|
echo "Successfull bootstrapped!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
do_configure ()
|
||||||
|
{
|
||||||
|
module=$1
|
||||||
|
|
||||||
|
cd $BASEDIR/$module
|
||||||
|
|
||||||
|
echo "Configuring '$module'..."
|
||||||
|
|
||||||
|
## choose debug
|
||||||
|
if [ $val_debug = true ]; then
|
||||||
|
CXXFLAGS="-O0 -ggdb" CFLAGS="-O0 -ggdb" ./configure &> $BASEDIR/logs/$module.configure.log
|
||||||
|
else
|
||||||
|
./configure &> $BASEDIR/logs/$module.configure.log
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $? != 0 ]; then
|
||||||
|
echo "Failed while configuring!"
|
||||||
|
$val_skip_error || exit
|
||||||
|
else
|
||||||
|
echo "Successfull configuring!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
do_make ()
|
||||||
|
{
|
||||||
|
module=$1
|
||||||
|
params=$2
|
||||||
|
|
||||||
|
cd $BASEDIR/$module
|
||||||
|
|
||||||
|
echo "Compiling '$module'... ($params)"
|
||||||
|
|
||||||
|
make $params &> $BASEDIR/logs/$module.make.log
|
||||||
|
if [ $? != 0 ]; then
|
||||||
|
echo "Failed while compiling ($params)!"
|
||||||
|
$val_skip_error || exit
|
||||||
|
else
|
||||||
|
echo "Successfull compiled ($params)!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
print_help()
|
||||||
|
{
|
||||||
|
cat << EOF
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
$0 [OPTIONS]...
|
||||||
|
--help show this help
|
||||||
|
--disable-autogen don't generate autools files (autogen.sh)
|
||||||
|
--skip-error skip errors while generating/building otherwise exit
|
||||||
|
--clean clean the sources (without generating)
|
||||||
|
--make make the sources (default)
|
||||||
|
EOF
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,60 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
PKG="eflxx
|
||||||
|
evasxx
|
||||||
|
eetxx
|
||||||
|
edjexx
|
||||||
|
ecorexx
|
||||||
|
esmartxx
|
||||||
|
etkxx
|
||||||
|
ewlxx
|
||||||
|
emotionxx
|
||||||
|
elementaryxx
|
||||||
|
eflxx_examples"
|
||||||
|
|
||||||
|
BASEDIR=`pwd`
|
||||||
|
|
||||||
|
## some defaults...
|
||||||
|
val_bootstrap=true
|
||||||
|
val_configure=true
|
||||||
|
val_skip_error=false
|
||||||
|
val_clean=false
|
||||||
|
val_make=true
|
||||||
|
val_debug=true
|
||||||
|
|
||||||
|
## include all needed functions
|
||||||
|
source compile.functions
|
||||||
|
|
||||||
|
# do tests
|
||||||
|
for i
|
||||||
|
do case "$i" in
|
||||||
|
--help) print_help; exit 0 ;;
|
||||||
|
--no-bootstrap) val_bootstrap=false ;;
|
||||||
|
--no-configure) val_configure=false ;;
|
||||||
|
--no-debug) val_debug=false ;;
|
||||||
|
--skip-error) val_skip_error=true ;;
|
||||||
|
--clean) val_clean=true ;;
|
||||||
|
--no-make) val_make=false ;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "$0: wrong parameter"
|
||||||
|
echo "--help to show help" >&2; exit 1 ;;
|
||||||
|
|
||||||
|
esac;
|
||||||
|
done
|
||||||
|
|
||||||
|
## create log directory
|
||||||
|
mkdir -p logs
|
||||||
|
|
||||||
|
for module in $PKG
|
||||||
|
do
|
||||||
|
$val_bootstrap && do_bootstrap $module
|
||||||
|
|
||||||
|
($val_configure || $val_bootstrap) && do_configure $module
|
||||||
|
|
||||||
|
$val_clean && do_make $module clean
|
||||||
|
$val_make && do_make $module all
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
.anjuta
|
||||||
|
.tm_project*
|
||||||
|
.libs
|
||||||
|
.deps
|
||||||
|
.*swp
|
||||||
|
.nautilus-metafile.xml
|
||||||
|
*.autosave
|
||||||
|
*.pws
|
||||||
|
*.bak
|
||||||
|
*~
|
||||||
|
#*#
|
||||||
|
*.gladep
|
||||||
|
*.la
|
||||||
|
*.lo
|
||||||
|
*.o
|
||||||
|
*.class
|
||||||
|
*.pyc
|
||||||
|
aclocal.m4
|
||||||
|
autom4te.cache
|
||||||
|
config.h
|
||||||
|
config.h.in
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
configure
|
||||||
|
intltool-extract*
|
||||||
|
intltool-merge*
|
||||||
|
intltool-modules*
|
||||||
|
intltool-update*
|
||||||
|
libtool
|
||||||
|
prepare.sh
|
||||||
|
stamp-h*
|
||||||
|
ltmain.sh
|
||||||
|
mkinstalldirs
|
||||||
|
config.guess
|
||||||
|
config.sub
|
||||||
|
Makefile
|
||||||
|
Makefile.in
|
|
@ -0,0 +1,166 @@
|
||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
|
||||||
|
This version of the GNU Lesser General Public License incorporates
|
||||||
|
the terms and conditions of version 3 of the GNU General Public
|
||||||
|
License, supplemented by the additional permissions listed below.
|
||||||
|
|
||||||
|
0. Additional Definitions.
|
||||||
|
|
||||||
|
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||||
|
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||||
|
General Public License.
|
||||||
|
|
||||||
|
"The Library" refers to a covered work governed by this License,
|
||||||
|
other than an Application or a Combined Work as defined below.
|
||||||
|
|
||||||
|
An "Application" is any work that makes use of an interface provided
|
||||||
|
by the Library, but which is not otherwise based on the Library.
|
||||||
|
Defining a subclass of a class defined by the Library is deemed a mode
|
||||||
|
of using an interface provided by the Library.
|
||||||
|
|
||||||
|
A "Combined Work" is a work produced by combining or linking an
|
||||||
|
Application with the Library. The particular version of the Library
|
||||||
|
with which the Combined Work was made is also called the "Linked
|
||||||
|
Version".
|
||||||
|
|
||||||
|
The "Minimal Corresponding Source" for a Combined Work means the
|
||||||
|
Corresponding Source for the Combined Work, excluding any source code
|
||||||
|
for portions of the Combined Work that, considered in isolation, are
|
||||||
|
based on the Application, and not on the Linked Version.
|
||||||
|
|
||||||
|
The "Corresponding Application Code" for a Combined Work means the
|
||||||
|
object code and/or source code for the Application, including any data
|
||||||
|
and utility programs needed for reproducing the Combined Work from the
|
||||||
|
Application, but excluding the System Libraries of the Combined Work.
|
||||||
|
|
||||||
|
1. Exception to Section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
You may convey a covered work under sections 3 and 4 of this License
|
||||||
|
without being bound by section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
2. Conveying Modified Versions.
|
||||||
|
|
||||||
|
If you modify a copy of the Library, and, in your modifications, a
|
||||||
|
facility refers to a function or data to be supplied by an Application
|
||||||
|
that uses the facility (other than as an argument passed when the
|
||||||
|
facility is invoked), then you may convey a copy of the modified
|
||||||
|
version:
|
||||||
|
|
||||||
|
a) under this License, provided that you make a good faith effort to
|
||||||
|
ensure that, in the event an Application does not supply the
|
||||||
|
function or data, the facility still operates, and performs
|
||||||
|
whatever part of its purpose remains meaningful, or
|
||||||
|
|
||||||
|
b) under the GNU GPL, with none of the additional permissions of
|
||||||
|
this License applicable to that copy.
|
||||||
|
|
||||||
|
3. Object Code Incorporating Material from Library Header Files.
|
||||||
|
|
||||||
|
The object code form of an Application may incorporate material from
|
||||||
|
a header file that is part of the Library. You may convey such object
|
||||||
|
code under terms of your choice, provided that, if the incorporated
|
||||||
|
material is not limited to numerical parameters, data structure
|
||||||
|
layouts and accessors, or small macros, inline functions and templates
|
||||||
|
(ten or fewer lines in length), you do both of the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the object code that the
|
||||||
|
Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
4. Combined Works.
|
||||||
|
|
||||||
|
You may convey a Combined Work under terms of your choice that,
|
||||||
|
taken together, effectively do not restrict modification of the
|
||||||
|
portions of the Library contained in the Combined Work and reverse
|
||||||
|
engineering for debugging such modifications, if you also do each of
|
||||||
|
the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the Combined Work that
|
||||||
|
the Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
c) For a Combined Work that displays copyright notices during
|
||||||
|
execution, include the copyright notice for the Library among
|
||||||
|
these notices, as well as a reference directing the user to the
|
||||||
|
copies of the GNU GPL and this license document.
|
||||||
|
|
||||||
|
d) Do one of the following:
|
||||||
|
|
||||||
|
0) Convey the Minimal Corresponding Source under the terms of this
|
||||||
|
License, and the Corresponding Application Code in a form
|
||||||
|
suitable for, and under terms that permit, the user to
|
||||||
|
recombine or relink the Application with a modified version of
|
||||||
|
the Linked Version to produce a modified Combined Work, in the
|
||||||
|
manner specified by section 6 of the GNU GPL for conveying
|
||||||
|
Corresponding Source.
|
||||||
|
|
||||||
|
1) Use a suitable shared library mechanism for linking with the
|
||||||
|
Library. A suitable mechanism is one that (a) uses at run time
|
||||||
|
a copy of the Library already present on the user's computer
|
||||||
|
system, and (b) will operate properly with a modified version
|
||||||
|
of the Library that is interface-compatible with the Linked
|
||||||
|
Version.
|
||||||
|
|
||||||
|
e) Provide Installation Information, but only if you would otherwise
|
||||||
|
be required to provide such information under section 6 of the
|
||||||
|
GNU GPL, and only to the extent that such information is
|
||||||
|
necessary to install and execute a modified version of the
|
||||||
|
Combined Work produced by recombining or relinking the
|
||||||
|
Application with a modified version of the Linked Version. (If
|
||||||
|
you use option 4d0, the Installation Information must accompany
|
||||||
|
the Minimal Corresponding Source and Corresponding Application
|
||||||
|
Code. If you use option 4d1, you must provide the Installation
|
||||||
|
Information in the manner specified by section 6 of the GNU GPL
|
||||||
|
for conveying Corresponding Source.)
|
||||||
|
|
||||||
|
5. Combined Libraries.
|
||||||
|
|
||||||
|
You may place library facilities that are a work based on the
|
||||||
|
Library side by side in a single library together with other library
|
||||||
|
facilities that are not Applications and are not covered by this
|
||||||
|
License, and convey such a combined library under terms of your
|
||||||
|
choice, if you do both of the following:
|
||||||
|
|
||||||
|
a) Accompany the combined library with a copy of the same work based
|
||||||
|
on the Library, uncombined with any other library facilities,
|
||||||
|
conveyed under the terms of this License.
|
||||||
|
|
||||||
|
b) Give prominent notice with the combined library that part of it
|
||||||
|
is a work based on the Library, and explaining where to find the
|
||||||
|
accompanying uncombined form of the same work.
|
||||||
|
|
||||||
|
6. Revised Versions of the GNU Lesser General Public License.
|
||||||
|
|
||||||
|
The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the GNU Lesser General Public License from time to time. Such new
|
||||||
|
versions will be similar in spirit to the present version, but may
|
||||||
|
differ in detail to address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the
|
||||||
|
Library as you received it specifies that a certain numbered version
|
||||||
|
of the GNU Lesser General Public License "or any later version"
|
||||||
|
applies to it, you have the option of following the terms and
|
||||||
|
conditions either of that published version or of any later version
|
||||||
|
published by the Free Software Foundation. If the Library as you
|
||||||
|
received it does not specify a version number of the GNU Lesser
|
||||||
|
General Public License, you may choose any version of the GNU Lesser
|
||||||
|
General Public License ever published by the Free Software Foundation.
|
||||||
|
|
||||||
|
If the Library as you received it specifies that a proxy can decide
|
||||||
|
whether future versions of the GNU Lesser General Public License shall
|
||||||
|
apply, that proxy's public statement of acceptance of any version is
|
||||||
|
permanent authorization for you to choose that version for the
|
||||||
|
Library.
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
|
@ -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' will install the package's files in
|
||||||
|
`/usr/local/bin', `/usr/local/man', 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
|
||||||
|
give `configure' the option `--exec-prefix=PREFIX', the package will
|
||||||
|
use PREFIX as the prefix for installing programs and libraries.
|
||||||
|
Documentation and other data files will 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 `--target=TYPE' option 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.
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
## Created by Anjuta
|
||||||
|
|
||||||
|
SUBDIRS = src \
|
||||||
|
include
|
||||||
|
|
||||||
|
ecorexxdocdir = ${prefix}/doc/ecorexx
|
||||||
|
ecorexxdoc_DATA = \
|
||||||
|
README\
|
||||||
|
COPYING\
|
||||||
|
AUTHORS\
|
||||||
|
ChangeLog\
|
||||||
|
INSTALL\
|
||||||
|
NEWS
|
||||||
|
|
||||||
|
EXTRA_DIST = $(ecorexxdoc_DATA)
|
||||||
|
|
||||||
|
# Copy all the spec files. Of cource, only one is actually used.
|
||||||
|
dist-hook:
|
||||||
|
for specfile in *.spec; do \
|
||||||
|
if test -f $$specfile; then \
|
||||||
|
cp -p $$specfile $(distdir); \
|
||||||
|
fi \
|
||||||
|
done
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<gtodo>
|
||||||
|
<category title="Bugs" place="0">
|
||||||
|
<item>
|
||||||
|
<attribute id="1243189348" priority="1" done="0" start_date="733551" enddate="99999999" notify="0" endtime="-60" last_edited="1243189533"/>
|
||||||
|
<summary>Choose resolution by env?</summary>
|
||||||
|
<comment>deactivated because of const. But is this really solved in a good way?</comment>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<attribute id="1243025629" priority="1" done="1" start_date="733549" completed_date="733559" notify="0" last_edited="1243852302"/>
|
||||||
|
<summary>EvasFont needed?</summary>
|
||||||
|
<comment/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<attribute id="1243288030" priority="1" done="1" start_date="733552" completed_date="733559" notify="0" last_edited="1243854845"/>
|
||||||
|
<summary>ecore_evas_init/ecore_evas_shutdown</summary>
|
||||||
|
<comment>where to do this automatic?
|
||||||
|
maybe a EcoreEvasApplication class?
|
||||||
|
and also a EcoreEdjeApplication?</comment>
|
||||||
|
</item>
|
||||||
|
</category>
|
||||||
|
<category title="Features" place="1">
|
||||||
|
<item>
|
||||||
|
<attribute id="1243025089" priority="1" done="0" start_date="733549" enddate="99999999" notify="0" endtime="-60" last_edited="1243025089"/>
|
||||||
|
<summary>Framebuffer support?</summary>
|
||||||
|
<comment/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<attribute id="1243244287" priority="1" done="0" start_date="733552" enddate="99999999" notify="0" endtime="-60" last_edited="1243244287"/>
|
||||||
|
<summary>a pc.in file for each wrapped ecore lib</summary>
|
||||||
|
<comment/>
|
||||||
|
</item>
|
||||||
|
</category>
|
||||||
|
</gtodo>
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
./bootstrap && ./configure $@
|
|
@ -0,0 +1,73 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# Run this to bootstrap the files
|
||||||
|
|
||||||
|
srcdir=`dirname $0`
|
||||||
|
test -z "$srcdir" && srcdir=.
|
||||||
|
|
||||||
|
DIE=0
|
||||||
|
|
||||||
|
# check if configure.ac is there
|
||||||
|
(test -f $srcdir/configure.ac) || {
|
||||||
|
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
|
||||||
|
echo " top-level package directory"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# check for autoconf
|
||||||
|
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: You must have \`autoconf' installed."
|
||||||
|
echo "Download the appropriate package for your distribution,"
|
||||||
|
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
|
||||||
|
DIE=1
|
||||||
|
}
|
||||||
|
|
||||||
|
# check for libtool
|
||||||
|
(libtool --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: You must have \`libtool' installed."
|
||||||
|
echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
|
||||||
|
DIE=1
|
||||||
|
}
|
||||||
|
|
||||||
|
# check for automake
|
||||||
|
(automake --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: You must have \`automake' installed."
|
||||||
|
echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
|
||||||
|
DIE=1
|
||||||
|
NO_AUTOMAKE=yes
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# if no automake, don't bother testing for aclocal
|
||||||
|
test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: Missing \`aclocal'. The version of \`automake'"
|
||||||
|
echo "installed doesn't appear recent enough."
|
||||||
|
echo "You can get automake from ftp://ftp.gnu.org/pub/gnu/"
|
||||||
|
DIE=1
|
||||||
|
}
|
||||||
|
|
||||||
|
if test "$DIE" -eq 1; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Running libtoolize..."
|
||||||
|
libtoolize --force --copy
|
||||||
|
|
||||||
|
aclocalinclude="$ACLOCAL_FLAGS -I m4"
|
||||||
|
echo "Running aclocal $aclocalinclude ..."
|
||||||
|
aclocal $aclocalinclude
|
||||||
|
|
||||||
|
echo "Running autoheader..."
|
||||||
|
autoheader
|
||||||
|
|
||||||
|
echo "Running automake..."
|
||||||
|
automake --add-missing --foreign $am_opt
|
||||||
|
|
||||||
|
echo "Running autoconf ..."
|
||||||
|
autoconf
|
||||||
|
|
||||||
|
echo "You could now exec ./configure --help to see available options"
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
dnl Created by Anjuta application wizard.
|
||||||
|
|
||||||
|
AC_INIT(ecorexx, 0.1)
|
||||||
|
|
||||||
|
AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
|
||||||
|
AC_CONFIG_HEADERS([config.h])
|
||||||
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
|
AC_ISC_POSIX
|
||||||
|
AC_PROG_CXX
|
||||||
|
AM_PROG_CC_STDC
|
||||||
|
AC_HEADER_STDC
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
AM_PROG_LIBTOOL
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PKG_CHECK_MODULES(EFL, eflxx evasxx ecore ecore-x ecore-evas ecore-config)
|
||||||
|
AC_OUTPUT([
|
||||||
|
Makefile
|
||||||
|
include/Makefile
|
||||||
|
include/ecorexx/Makefile
|
||||||
|
src/Makefile
|
||||||
|
ecorexx.pc
|
||||||
|
ecorexx-uninstalled.pc
|
||||||
|
|
||||||
|
])
|
|
@ -0,0 +1,12 @@
|
||||||
|
prefix=
|
||||||
|
exec_prefix=
|
||||||
|
libdir=src
|
||||||
|
includedir=include
|
||||||
|
|
||||||
|
Name: @PACKAGE@
|
||||||
|
Description: Ecore (EFL) C++ Wrapper, Not installed
|
||||||
|
Version: @VERSION@
|
||||||
|
Requires: sigc++-2.0 eflxx evasxx
|
||||||
|
Conflicts:
|
||||||
|
Libs: ${pcfiledir}/${libdir}/libecorexx.la
|
||||||
|
Cflags: -I${pcfiledir}/${includedir}
|
|
@ -0,0 +1,44 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<anjuta>
|
||||||
|
<plugin name="GBF Project Manager"
|
||||||
|
url="http://anjuta.org/plugins/"
|
||||||
|
mandatory="yes">
|
||||||
|
<require group="Anjuta Plugin"
|
||||||
|
attribute="Interfaces"
|
||||||
|
value="IAnjutaProjectManager"/>
|
||||||
|
<require group="Project"
|
||||||
|
attribute="Supported-Project-Types"
|
||||||
|
value="automake"/>
|
||||||
|
</plugin>
|
||||||
|
<plugin name="Symbol Browser"
|
||||||
|
url="http://anjuta.org/plugins/"
|
||||||
|
mandatory="yes">
|
||||||
|
<require group="Anjuta Plugin"
|
||||||
|
attribute="Interfaces"
|
||||||
|
value="IAnjutaSymbolManager"/>
|
||||||
|
</plugin>
|
||||||
|
<plugin name="Make Build System"
|
||||||
|
url="http://anjuta.org/plugins/"
|
||||||
|
mandatory="yes">
|
||||||
|
<require group="Anjuta Plugin"
|
||||||
|
attribute="Interfaces"
|
||||||
|
value="IAnjutaBuildable"/>
|
||||||
|
<require group="Build"
|
||||||
|
attribute="Supported-Build-Types"
|
||||||
|
value="make"/>
|
||||||
|
</plugin>
|
||||||
|
<plugin name="Task Manager"
|
||||||
|
url="http://anjuta.org/plugins/"
|
||||||
|
mandatory="no">
|
||||||
|
<require group="Anjuta Plugin"
|
||||||
|
attribute="Interfaces"
|
||||||
|
value="IAnjutaTodo"/>
|
||||||
|
</plugin>
|
||||||
|
<plugin name="Debug Manager"
|
||||||
|
url="http://anjuta.org/plugins/"
|
||||||
|
mandatory="no">
|
||||||
|
<require group="Anjuta Plugin"
|
||||||
|
attribute="Interfaces"
|
||||||
|
value="IAnjutaDebuggerManager"/>
|
||||||
|
</plugin>
|
||||||
|
</anjuta>
|
|
@ -0,0 +1,13 @@
|
||||||
|
prefix=@prefix@
|
||||||
|
exec_prefix=@prefix@
|
||||||
|
libdir=@exec_prefix@/lib
|
||||||
|
includedir=@prefix@/include
|
||||||
|
|
||||||
|
Name: @PACKAGE@
|
||||||
|
Description: Ecore (EFL) C++ Wrapper
|
||||||
|
Version: @VERSION@
|
||||||
|
Requires: sigc++-2.0 eflxx evasxx
|
||||||
|
Conflicts:
|
||||||
|
Libs: -L${libdir} -lecorexx
|
||||||
|
Cflags: -I${includedir}
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
|
||||||
|
SUBDIRS = \
|
||||||
|
ecorexx
|
||||||
|
|
||||||
|
## File created by the gnome-build tools
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
#ifndef ECORE_ANIMATOR_H
|
||||||
|
#define ECORE_ANIMATOR_H
|
||||||
|
|
||||||
|
/* EFL */
|
||||||
|
#include <Ecore.h>
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
class EcoreAnimator
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EcoreAnimator();
|
||||||
|
virtual ~EcoreAnimator();
|
||||||
|
|
||||||
|
virtual bool tick();
|
||||||
|
static void setFrameTime( double frametime );
|
||||||
|
static double frameTime();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ecore_Animator* _ea;
|
||||||
|
|
||||||
|
static int __dispatcher( void* data );
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end namespace efl
|
||||||
|
|
||||||
|
#endif // ECORE_ANIMATOR_H
|
|
@ -0,0 +1,101 @@
|
||||||
|
#ifndef ECORE_APPLICATION_H
|
||||||
|
#define ECORE_APPLICATION_H
|
||||||
|
|
||||||
|
/* EFLxx */
|
||||||
|
#include "EcoreEvasWindow.h"
|
||||||
|
|
||||||
|
/* EFL */
|
||||||
|
#include <Evas.h>
|
||||||
|
#include <Ecore_Config.h>
|
||||||
|
#include <Ecore_Data.h>
|
||||||
|
#include <Ecore_Ipc.h>
|
||||||
|
#include <Ecore_Txt.h>
|
||||||
|
#include <Ecore_Con.h>
|
||||||
|
#include <Ecore_Evas.h>
|
||||||
|
#include <Ecore.h>
|
||||||
|
#include <Ecore_Job.h>
|
||||||
|
|
||||||
|
/* STD */
|
||||||
|
#include <string>
|
||||||
|
#include <list>
|
||||||
|
|
||||||
|
#define eApp EcoreApplication::application()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* C++ Wrapper for the Enlightenment Core Library (Ecore)
|
||||||
|
*
|
||||||
|
* @author Michael 'Mickey' Lauer <mickey@Vanille.de>
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
/* Forward declarations */
|
||||||
|
class EcoreEvasWindow;
|
||||||
|
class EcoreApplication;
|
||||||
|
class EcoreCallback;
|
||||||
|
class EcoreConfig;
|
||||||
|
class EcoreTimer;
|
||||||
|
|
||||||
|
class EcoreCallback
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EcoreCallback( EcoreApplication* object ) : o(object) {};
|
||||||
|
~EcoreCallback() {};
|
||||||
|
private:
|
||||||
|
EcoreApplication* o;
|
||||||
|
};
|
||||||
|
|
||||||
|
//===============================================================================================
|
||||||
|
// EcoreApplication
|
||||||
|
//===============================================================================================
|
||||||
|
|
||||||
|
class EcoreApplication : public Trackable
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EcoreApplication( int argc, const char** argv, const std::string& name );
|
||||||
|
virtual ~EcoreApplication();
|
||||||
|
|
||||||
|
static EcoreApplication* application();
|
||||||
|
|
||||||
|
std::string getName() const;
|
||||||
|
|
||||||
|
/* Main Window */
|
||||||
|
void setMainWindow( EcoreEvasWindow* );
|
||||||
|
EcoreEvasWindow* getMainWindow() const;
|
||||||
|
|
||||||
|
/* Main Loop */
|
||||||
|
static void exec();
|
||||||
|
static void processOneEvent();
|
||||||
|
static void quit();
|
||||||
|
|
||||||
|
/* Timer */
|
||||||
|
void startTimer( double seconds );
|
||||||
|
virtual void timerEvent( EcoreTimer* ) {};
|
||||||
|
|
||||||
|
/* Font */
|
||||||
|
/*EvasFont font();
|
||||||
|
EvasFont fixedFont();
|
||||||
|
void setFont( const EvasFont& );
|
||||||
|
void setFixedFont( const EvasFont& );*/
|
||||||
|
|
||||||
|
/* Configuration */
|
||||||
|
EcoreConfig* getConfig();
|
||||||
|
|
||||||
|
private:
|
||||||
|
const std::string _binary;
|
||||||
|
std::string _name;
|
||||||
|
static EcoreApplication* _instance;
|
||||||
|
EcoreEvasWindow* _mainWindow;
|
||||||
|
//EvasFont* _font;
|
||||||
|
//EvasFont* _fixedFont;
|
||||||
|
EcoreConfig* _config;
|
||||||
|
|
||||||
|
private:
|
||||||
|
EcoreApplication();
|
||||||
|
bool operator=( const EcoreApplication& );
|
||||||
|
bool operator==( const EcoreApplication& );
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end namespace efl
|
||||||
|
|
||||||
|
#endif // ECORE_APPLICATION_H
|
|
@ -0,0 +1,49 @@
|
||||||
|
#ifndef ECORE_CONFIG_H
|
||||||
|
#define ECORE_CONFIG_H
|
||||||
|
|
||||||
|
/* STD */
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* C++ Wrapper for the Enlightenment Core Configuration Library (Ecore_Config)
|
||||||
|
*
|
||||||
|
* @author Michael 'Mickey' Lauer <mickey@Vanille.de>
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
//===============================================================================================
|
||||||
|
// EcoreConfig
|
||||||
|
//===============================================================================================
|
||||||
|
|
||||||
|
class EcoreConfig
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @class: EcoreConfig ecoreconfig.h
|
||||||
|
* A simple persistent Key=Value configuration database.
|
||||||
|
* @author: Michael 'Mickey' Lauer <mickey@Vanille.de>
|
||||||
|
**/
|
||||||
|
public:
|
||||||
|
EcoreConfig( const std::string& name );
|
||||||
|
~EcoreConfig();
|
||||||
|
|
||||||
|
/* group handling */
|
||||||
|
void setGroup( const std::string& );
|
||||||
|
std::string getGroup() const;
|
||||||
|
|
||||||
|
/* read / write */
|
||||||
|
void setValue( const std::string &key, const bool value);
|
||||||
|
bool getBool( const std::string &key, const bool value);
|
||||||
|
void setValue( const std::string &key, const int value);
|
||||||
|
int getInt( const std::string &key, const int value);
|
||||||
|
void setValue( const std::string &key, const std::string& value);
|
||||||
|
std::string getString( const std::string &key, const std::string& value);
|
||||||
|
void setValue( const std::string &key, const float value);
|
||||||
|
float getFloat( const std::string &key, const float value);
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::string _group;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
|
@ -0,0 +1,225 @@
|
||||||
|
#ifndef ECORE_EVAS_WINDOW_H
|
||||||
|
#define ECORE_EVAS_WINDOW_H
|
||||||
|
|
||||||
|
/* EFLxx */
|
||||||
|
#include <eflxx/eflpp_common.h>
|
||||||
|
#include "EcoreApplication.h"
|
||||||
|
#include "EcoreEvasWindow.h"
|
||||||
|
|
||||||
|
/* EFL */
|
||||||
|
#include <Ecore_Evas.h>
|
||||||
|
|
||||||
|
//===============================================================================================
|
||||||
|
// EcoreEvasWindow
|
||||||
|
//===============================================================================================
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
/* forward declarations */
|
||||||
|
class EvasCanvas;
|
||||||
|
class EcoreXWindow;
|
||||||
|
|
||||||
|
// TODO: Test for supported backends?
|
||||||
|
class EcoreEvasWindow : public Trackable
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
enum Event { Resize, Move, Show, Hide, DeleteRequest, Destroy,
|
||||||
|
FocusIn, FocusOut, MouseIn, MouseOut, PreRender, PostRender
|
||||||
|
};
|
||||||
|
|
||||||
|
enum EngineType
|
||||||
|
{
|
||||||
|
SoftwareX11 = ECORE_EVAS_ENGINE_SOFTWARE_X11,
|
||||||
|
SoftwareFB = ECORE_EVAS_ENGINE_SOFTWARE_FB,
|
||||||
|
GLX11 = ECORE_EVAS_ENGINE_OPENGL_X11,
|
||||||
|
SoftwareBuffer = ECORE_EVAS_ENGINE_SOFTWARE_BUFFER,
|
||||||
|
XRenderX11 = ECORE_EVAS_ENGINE_XRENDER_X11,
|
||||||
|
DirectFB = ECORE_EVAS_ENGINE_DIRECTFB,
|
||||||
|
SoftwareX11_16 = ECORE_EVAS_ENGINE_SOFTWARE_16_X11,
|
||||||
|
SDL = ECORE_EVAS_ENGINE_SOFTWARE_SDL
|
||||||
|
};
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual ~EcoreEvasWindow();
|
||||||
|
|
||||||
|
EvasCanvas &getCanvas() const;
|
||||||
|
|
||||||
|
/* Events */
|
||||||
|
void setEventEnabled( Event, bool );
|
||||||
|
virtual void resizeEvent();
|
||||||
|
virtual void moveEvent();
|
||||||
|
virtual void showEvent();
|
||||||
|
virtual void hideEvent();
|
||||||
|
virtual void deleteRequestEvent();
|
||||||
|
virtual void destroyEvent();
|
||||||
|
virtual void focusInEvent();
|
||||||
|
virtual void focusOutEvent();
|
||||||
|
virtual void mouseInEvent();
|
||||||
|
virtual void mouseOutEvent();
|
||||||
|
virtual void preRenderEvent();
|
||||||
|
virtual void postRenderEvent();
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \return A boolean specifying whether the window should be closed upon a delete request or not.
|
||||||
|
* The default implementation returns true.
|
||||||
|
*/
|
||||||
|
virtual bool canClose() const;
|
||||||
|
|
||||||
|
static bool isEngineTypeSupported (EngineType et);
|
||||||
|
|
||||||
|
/* Window Management */
|
||||||
|
void move( const Point& );
|
||||||
|
void resize( const Size& );
|
||||||
|
void setGeometry( const Rect& );
|
||||||
|
Rect geometry() const;
|
||||||
|
|
||||||
|
void setRotation( int );
|
||||||
|
int rotation() const;
|
||||||
|
void setShaped( bool );
|
||||||
|
bool isShaped() const;
|
||||||
|
|
||||||
|
void setAlpha( bool alpha );
|
||||||
|
bool hasAlpha () const;
|
||||||
|
|
||||||
|
void show();
|
||||||
|
void hide();
|
||||||
|
void raise();
|
||||||
|
void lower();
|
||||||
|
|
||||||
|
void setTitle( const std::string &title );
|
||||||
|
const std::string getTitle() const;
|
||||||
|
|
||||||
|
// void ecore_evas_name_class_set(Ecore_Evas *ee, const char *n, const char *c);
|
||||||
|
// void ecore_evas_name_class_get(Ecore_Evas *ee, const char **n, const char **c);
|
||||||
|
|
||||||
|
void setMinimumSize( const Size& );
|
||||||
|
Size getMinimumSize() const;
|
||||||
|
void setMaximumSize( const Size& );
|
||||||
|
Size getMaximumSize() const;
|
||||||
|
void setBaseSize( const Size& );
|
||||||
|
Size getBaseSize() const;
|
||||||
|
void setStepSize( const Size& );
|
||||||
|
Size getStepSize() const;
|
||||||
|
|
||||||
|
void setCursor( const char* file, int layer, int hot_x, int hot_y );
|
||||||
|
// void ecore_evas_cursor_get(Ecore_Evas *ee, char **file, int *layer, int *hot_x, int *hot_y);
|
||||||
|
|
||||||
|
void setLayer( int layer );
|
||||||
|
int getLayer() const;
|
||||||
|
|
||||||
|
void setFocus( int on );
|
||||||
|
int hasFocus() const;
|
||||||
|
|
||||||
|
void setIconified( int on );
|
||||||
|
int isIconified() const;
|
||||||
|
|
||||||
|
void setBorderless( int on );
|
||||||
|
int isBorderless() const;
|
||||||
|
|
||||||
|
void setOverride( int on );
|
||||||
|
int isOverride() const;
|
||||||
|
|
||||||
|
void setMaximized( int on );
|
||||||
|
int isMaximized() const;
|
||||||
|
|
||||||
|
void setFullscreen( int on );
|
||||||
|
int isFullscreen() const;
|
||||||
|
|
||||||
|
void setAvoidDamage( Ecore_Evas_Avoid_Damage_Type value );
|
||||||
|
Ecore_Evas_Avoid_Damage_Type AvoidDamage() const;
|
||||||
|
|
||||||
|
void setWithdrawn( int on );
|
||||||
|
int isWithdrawn() const;
|
||||||
|
|
||||||
|
void setSticky( int on );
|
||||||
|
int isSticky() const;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
EvasCanvas *_canvas;
|
||||||
|
Ecore_Evas *_ee;
|
||||||
|
|
||||||
|
EcoreEvasWindow();
|
||||||
|
static EcoreEvasWindow* objectLink( Ecore_Evas* );
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool operator=( const EcoreEvasWindow& );
|
||||||
|
bool operator==( const EcoreEvasWindow& );
|
||||||
|
};
|
||||||
|
|
||||||
|
class EcoreEvasWindowSoftwareX11 : public EcoreEvasWindow
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EcoreEvasWindowSoftwareX11( const Size &size, const char* display = 0 );
|
||||||
|
virtual ~EcoreEvasWindowSoftwareX11();
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Gets a pointer to the X window. The returned pointer needs to be
|
||||||
|
* deleted if you don't need it any longer.
|
||||||
|
*
|
||||||
|
* \return The EcoreXWindow.
|
||||||
|
*/
|
||||||
|
EcoreXWindow *getXWindow();
|
||||||
|
|
||||||
|
private:
|
||||||
|
EcoreEvasWindowSoftwareX11();
|
||||||
|
bool operator=( const EcoreEvasWindowSoftwareX11& );
|
||||||
|
bool operator==( const EcoreEvasWindowSoftwareX11& );
|
||||||
|
};
|
||||||
|
|
||||||
|
class EcoreEvasWindowGLX11 : public EcoreEvasWindow
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EcoreEvasWindowGLX11( const Size &size, const char* display = 0 );
|
||||||
|
virtual ~EcoreEvasWindowGLX11();
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Gets a pointer to the X window. The returned pointer needs to be
|
||||||
|
* deleted if you don't need it any longer.
|
||||||
|
*
|
||||||
|
* \return The EcoreXWindow.
|
||||||
|
*/
|
||||||
|
EcoreXWindow *getXWindow();
|
||||||
|
|
||||||
|
private:
|
||||||
|
EcoreEvasWindowGLX11();
|
||||||
|
bool operator=( const EcoreEvasWindowGLX11& );
|
||||||
|
bool operator==( const EcoreEvasWindowGLX11& );
|
||||||
|
};
|
||||||
|
|
||||||
|
class EcoreEvasWindowXRenderX11 : public EcoreEvasWindow
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EcoreEvasWindowXRenderX11( const Size &size, const char* display = 0 );
|
||||||
|
virtual ~EcoreEvasWindowXRenderX11();
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Gets a pointer to the X window. The returned pointer needs to be
|
||||||
|
* deleted if you don't need it any longer.
|
||||||
|
*
|
||||||
|
* \return The EcoreXWindow.
|
||||||
|
*/
|
||||||
|
EcoreXWindow *getXWindow();
|
||||||
|
|
||||||
|
private:
|
||||||
|
EcoreEvasWindowXRenderX11();
|
||||||
|
bool operator=( const EcoreEvasWindowXRenderX11& );
|
||||||
|
bool operator==( const EcoreEvasWindowXRenderX11& );
|
||||||
|
};
|
||||||
|
|
||||||
|
class EcoreEvasWindowFB : public EcoreEvasWindow
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EcoreEvasWindowFB( const Size &size, const char* display = 0, int rotation = 0 );
|
||||||
|
virtual ~EcoreEvasWindowFB();
|
||||||
|
|
||||||
|
EcoreXWindow *getXWindow();
|
||||||
|
|
||||||
|
private:
|
||||||
|
EcoreEvasWindowFB();
|
||||||
|
bool operator=( const EcoreEvasWindowFB& );
|
||||||
|
bool operator==( const EcoreEvasWindowFB& );
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end namespace efl
|
||||||
|
|
||||||
|
#endif // ECORE_EVAS_WINDOW_H
|
|
@ -0,0 +1,521 @@
|
||||||
|
#ifndef ECORE_DATA_H
|
||||||
|
#define ECORE_DATA_H
|
||||||
|
|
||||||
|
/* EFL */
|
||||||
|
#include <Ecore_Data.h>
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
class EcoreList
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/*!
|
||||||
|
* Create a new EcoreList.
|
||||||
|
*/
|
||||||
|
EcoreList();
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Create a EcoreList from by using a existing Ecore_List C object.
|
||||||
|
* Notice that the destructor deletes the C object list.
|
||||||
|
*/
|
||||||
|
EcoreList(Ecore_List *list); // TODO: wrap?
|
||||||
|
|
||||||
|
virtual ~EcoreList();
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* return The internal Ecore_List object
|
||||||
|
*/
|
||||||
|
Ecore_List *obj();
|
||||||
|
|
||||||
|
/* Adding items to the list */
|
||||||
|
bool append( T *data );
|
||||||
|
bool prepend( T *data );
|
||||||
|
bool insert( T *data );
|
||||||
|
bool appendList( EcoreList <T> *append);
|
||||||
|
bool prependList( EcoreList <T> *prepend);
|
||||||
|
|
||||||
|
/* Removing items from the list */
|
||||||
|
// TODO: how to integrate this with destructors?
|
||||||
|
//int ecore_list_remove_destroy(Ecore_List *list);
|
||||||
|
T *remove();
|
||||||
|
T *removeFirst();
|
||||||
|
T *removeLast();
|
||||||
|
|
||||||
|
/* Retrieve the current position in the list */
|
||||||
|
T *current();
|
||||||
|
T *first();
|
||||||
|
T *last();
|
||||||
|
int index();
|
||||||
|
int count();
|
||||||
|
|
||||||
|
/* Traversing the list */
|
||||||
|
// not wrapped! -> std::for_each exist. -> #include <algorithm>
|
||||||
|
// TODO: need to implement an iterator to get this working
|
||||||
|
//EAPI int ecore_list_for_each(Ecore_List *list, Ecore_For_Each function,
|
||||||
|
// void *user_data);
|
||||||
|
T *gotoFirst();
|
||||||
|
T *gotoLast();
|
||||||
|
T *gotoIndex(int index);
|
||||||
|
T *gotoElement(const T *data);
|
||||||
|
|
||||||
|
/* Traversing the list and returning data */
|
||||||
|
T *next();
|
||||||
|
// not wrapped! -> std::find* exist. -> #include <algorithm>
|
||||||
|
// TODO: need to implement an iterator to get this working
|
||||||
|
//EAPI void *ecore_list_find(Ecore_List *list, Ecore_Compare_Cb function,
|
||||||
|
// const void *user_data);
|
||||||
|
|
||||||
|
/* Sorting the list */
|
||||||
|
// TODO: it may help to implement operators <,>,== to wrap it
|
||||||
|
/*EAPI int ecore_list_sort(Ecore_List *list, Ecore_Compare_Cb compare,
|
||||||
|
char order);
|
||||||
|
EAPI int ecore_list_mergesort(Ecore_List *list, Ecore_Compare_Cb compare,
|
||||||
|
char order);
|
||||||
|
EAPI int ecore_list_heapsort(Ecore_List *list, Ecore_Compare_Cb compare,
|
||||||
|
char order);*/
|
||||||
|
|
||||||
|
bool isEmpty();
|
||||||
|
bool clear();
|
||||||
|
|
||||||
|
/*class forward_iterator
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
forward_iterator ()
|
||||||
|
{
|
||||||
|
list = m_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Prefix
|
||||||
|
forward_iterator& operator++ ()
|
||||||
|
{
|
||||||
|
list = list->next ();
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Postfix
|
||||||
|
forward_iterator operator++ (int)
|
||||||
|
{
|
||||||
|
forward_iterator oldIterator =* this;
|
||||||
|
list = list->next ();
|
||||||
|
return oldIterator;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
EcoreList<T> list;
|
||||||
|
|
||||||
|
};*/
|
||||||
|
|
||||||
|
//forward_iterator begin ();
|
||||||
|
//forward_iterator end ();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ecore_List *m_list;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
class EcoreDList
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/*!
|
||||||
|
* Create a new EcoreList.
|
||||||
|
*/
|
||||||
|
EcoreDList();
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Create a EcoreList from by using a existing Ecore_List C object.
|
||||||
|
* Notice that the destructor deletes the C object list.
|
||||||
|
*/
|
||||||
|
EcoreDList(Ecore_DList *list);
|
||||||
|
|
||||||
|
virtual ~EcoreDList();
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* return The internal Ecore_DList object
|
||||||
|
*/
|
||||||
|
Ecore_DList *obj();
|
||||||
|
|
||||||
|
/* Adding items to the list */
|
||||||
|
bool append( T *data );
|
||||||
|
bool prepend( T *data );
|
||||||
|
bool insert( T *data );
|
||||||
|
bool appendList( EcoreDList <T> *append);
|
||||||
|
bool prependList( EcoreDList <T> *prepend);
|
||||||
|
// not wrapped! -> std::for_each exist. -> #include <algorithm>
|
||||||
|
// need to implement an iterator to get this working
|
||||||
|
/* Removing items from the list */
|
||||||
|
// TODO: how to integrate this with destructors?
|
||||||
|
//int ecore_dlist_remove_destroy(Ecore_List *list);
|
||||||
|
T *remove();
|
||||||
|
T *removeFirst();
|
||||||
|
T *removeLast();
|
||||||
|
|
||||||
|
/* Retrieve the current position in the list */
|
||||||
|
T *current();
|
||||||
|
// TODO: Why no first and last in Ecore_DList?
|
||||||
|
//T *first();
|
||||||
|
//T *last();
|
||||||
|
int index();
|
||||||
|
int count();
|
||||||
|
|
||||||
|
/* Traversing the list */
|
||||||
|
// not wrapped! -> std::for_each exist. -> #include <algorithm>
|
||||||
|
// need to implement an iterator to get this working
|
||||||
|
//EAPI int ecore_dlist_for_each(Ecore_List *list, Ecore_For_Each function,
|
||||||
|
// void *user_data);
|
||||||
|
T *gotoFirst();
|
||||||
|
T *gotoLast();
|
||||||
|
T *gotoIndex(int index);
|
||||||
|
T *gotoElement(const T *data);
|
||||||
|
|
||||||
|
|
||||||
|
/* Traversing the list and returning data */
|
||||||
|
T *next();
|
||||||
|
T *previous();
|
||||||
|
// not wrapped! -> std::find* exist. -> #include <algorithm>
|
||||||
|
// TODO: need to implement an iterator to get this working
|
||||||
|
//EAPI void *ecore_dlist_find(Ecore_List *list, Ecore_Compare_Cb function,
|
||||||
|
// const void *user_data);
|
||||||
|
|
||||||
|
/* Sorting the list */
|
||||||
|
/*EAPI int ecore_dlist_sort(Ecore_List *list, Ecore_Compare_Cb compare,
|
||||||
|
char order);
|
||||||
|
EAPI int ecore_dlist_mergesort(Ecore_List *list, Ecore_Compare_Cb compare,
|
||||||
|
char order);
|
||||||
|
EAPI int ecore_dlist_heapsort(Ecore_List *list, Ecore_Compare_Cb compare,
|
||||||
|
char order);*/
|
||||||
|
|
||||||
|
bool isEmpty();
|
||||||
|
bool clear();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ecore_DList *m_list;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** Implementaion **/
|
||||||
|
|
||||||
|
/*************/
|
||||||
|
/* EcoreList */
|
||||||
|
/*************/
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
EcoreList<T>::EcoreList()
|
||||||
|
{
|
||||||
|
m_list = ecore_list_new();
|
||||||
|
// todo: how to handle error return? -> Exception?
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
EcoreList<T>::EcoreList(Ecore_List *list)
|
||||||
|
{
|
||||||
|
m_list = list;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
EcoreList<T>::~EcoreList()
|
||||||
|
{
|
||||||
|
ecore_list_destroy( m_list );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
Ecore_List *EcoreList<T>::obj()
|
||||||
|
{
|
||||||
|
return m_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool EcoreList<T>::append( T *data )
|
||||||
|
{
|
||||||
|
return ecore_list_append( m_list, static_cast <void*> (data) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool EcoreList<T>::prepend( T *data )
|
||||||
|
{
|
||||||
|
return ecore_list_prepend( m_list, static_cast <void*> (data) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool EcoreList<T>::insert( T *data )
|
||||||
|
{
|
||||||
|
return ecore_list_insert( m_list, static_cast <void*> (data) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool EcoreList<T>::appendList( EcoreList <T> *append)
|
||||||
|
{
|
||||||
|
return ecore_list_append_list( m_list, append.m_list);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool EcoreList<T>::prependList( EcoreList <T> *prepend)
|
||||||
|
{
|
||||||
|
return ecore_list_prepend_list( m_list, prepend.m_list);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreList<T>::remove()
|
||||||
|
{
|
||||||
|
return static_cast <T*> (ecore_list_remove( m_list ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreList<T>::removeFirst()
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_list_first_remove( m_list ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreList<T>::removeLast()
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_list_last_remove( m_list ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreList<T>::current()
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_list_current( m_list ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreList<T>::first()
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_list_first( m_list ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreList<T>::last()
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_list_last( m_list) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
int EcoreList<T>::index()
|
||||||
|
{
|
||||||
|
return ecore_list_index( m_list );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
int EcoreList<T>::count()
|
||||||
|
{
|
||||||
|
return ecore_list_count( m_list );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreList<T>::gotoFirst()
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_list_first_goto( m_list ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T* EcoreList<T>::gotoLast()
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_list_last_goto( m_list ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreList<T>::gotoIndex(int index)
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_list_index_goto( m_list, index ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreList<T>::gotoElement(const T *data)
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_list_goto( m_list,
|
||||||
|
static_cast <const void*> ( data ) ));
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreList<T>::next()
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_list_next( m_list ));
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool EcoreList<T>::isEmpty()
|
||||||
|
{
|
||||||
|
return ecore_list_empty_is ( m_list );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool EcoreList<T>::clear()
|
||||||
|
{
|
||||||
|
return ecore_list_clear( m_list );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*template <typename T>
|
||||||
|
forward_iterator EcoreList<T>::begin ()
|
||||||
|
{
|
||||||
|
//forward_iterator fi;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
EcoreList<T>::forward_iterator EcoreList<T>::end ()
|
||||||
|
{
|
||||||
|
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************/
|
||||||
|
/* EcoreDList */
|
||||||
|
/**************/
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
EcoreDList<T>::EcoreDList()
|
||||||
|
{
|
||||||
|
m_list = ecore_dlist_new();
|
||||||
|
// todo: how to handle error return? -> Exception?
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
EcoreDList<T>::EcoreDList(Ecore_DList *list)
|
||||||
|
{
|
||||||
|
m_list = list;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
EcoreDList<T>::~EcoreDList()
|
||||||
|
{
|
||||||
|
ecore_dlist_destroy( m_list );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
Ecore_DList *EcoreDList<T>::obj()
|
||||||
|
{
|
||||||
|
return m_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool EcoreDList<T>::append( T *data )
|
||||||
|
{
|
||||||
|
return ecore_dlist_append( m_list, static_cast <void*> (data) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool EcoreDList<T>::prepend( T *data )
|
||||||
|
{
|
||||||
|
return ecore_dlist_prepend( m_list, static_cast <void*> (data) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool EcoreDList<T>::insert( T *data )
|
||||||
|
{
|
||||||
|
return ecore_dlist_insert( m_list, static_cast <void*> (data) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool EcoreDList<T>::appendList( EcoreDList <T> *append)
|
||||||
|
{
|
||||||
|
return ecore_dlist_append_list( m_list, append.m_list);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool EcoreDList<T>::prependList( EcoreDList <T> *prepend)
|
||||||
|
{
|
||||||
|
return ecore_dlist_prepend_list( m_list, prepend.m_list);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreDList<T>::remove()
|
||||||
|
{
|
||||||
|
return static_cast <T*> (ecore_dlist_remove( m_list ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T* EcoreDList<T>::removeFirst()
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_dlist_first_remove( m_list ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreDList<T>::removeLast()
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_dlist_last_remove( m_list ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreDList<T>::current()
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_dlist_current( m_list ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*template <typename T>
|
||||||
|
T EcoreDList<T>::first()
|
||||||
|
{
|
||||||
|
return static_cast <T> ( ecore_dlist_first( m_list ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T EcoreDList<T>::last()
|
||||||
|
{
|
||||||
|
return static_cast <T> ( ecore_dlist_last( m_list) );
|
||||||
|
}*/
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
int EcoreDList<T>::index()
|
||||||
|
{
|
||||||
|
return ecore_dlist_index( m_list );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
int EcoreDList<T>::count()
|
||||||
|
{
|
||||||
|
return ecore_dlist_count( m_list );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreDList<T>::gotoFirst()
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_dlist_first_goto( m_list ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreDList<T>::gotoLast()
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_dlist_last_goto( m_list ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreDList<T>::gotoIndex(int index)
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_dlist_index_goto( m_list, index ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreDList<T>::gotoElement(const T *data)
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_dlist_goto( m_list,
|
||||||
|
static_cast <const void*> ( data ) ));
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreDList<T>::next()
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_dlist_next( m_list ));
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T *EcoreDList<T>::previous()
|
||||||
|
{
|
||||||
|
return static_cast <T*> ( ecore_dlist_previous( m_list ));
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool EcoreDList<T>::isEmpty()
|
||||||
|
{
|
||||||
|
return ecore_dlist_empty_is ( m_list );
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool EcoreDList<T>::clear()
|
||||||
|
{
|
||||||
|
return ecore_dlist_clear( m_list );
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end namespace efl
|
||||||
|
|
||||||
|
#endif // ECORE_BASE_H
|
|
@ -0,0 +1,38 @@
|
||||||
|
#ifndef ECORETIMER_H
|
||||||
|
#define ECORETIMER_H
|
||||||
|
|
||||||
|
/* EFLxx */
|
||||||
|
#include <eflxx/eflpp_common.h>
|
||||||
|
|
||||||
|
/* EFL */
|
||||||
|
#include <Ecore.h>
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
class EcoreTimer
|
||||||
|
{
|
||||||
|
typedef sigc::signal<void,EcoreTimer*> Signal;
|
||||||
|
typedef sigc::slot1<void,EcoreTimer*> Slot;
|
||||||
|
|
||||||
|
public:
|
||||||
|
EcoreTimer( double seconds, bool singleshot = false );
|
||||||
|
virtual ~EcoreTimer();
|
||||||
|
|
||||||
|
virtual void tick();
|
||||||
|
void setInterval( double );
|
||||||
|
|
||||||
|
static EcoreTimer* singleShot( double seconds, const EcoreTimer::Slot& );
|
||||||
|
|
||||||
|
public: /* signals */
|
||||||
|
EcoreTimer::Signal timeout;
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ecore_Timer* _et;
|
||||||
|
bool _ss;
|
||||||
|
|
||||||
|
static int __dispatcher( void* data );
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end namespace efl
|
||||||
|
|
||||||
|
#endif // ECORETIMER_H
|
|
@ -0,0 +1,62 @@
|
||||||
|
#ifndef ECORE_X_WINDOW_H
|
||||||
|
#define ECORE_X_WINDOW_H
|
||||||
|
|
||||||
|
/* EFLxx */
|
||||||
|
#include "EcoreApplication.h"
|
||||||
|
|
||||||
|
/* EFL */
|
||||||
|
#include <Ecore_X.h>
|
||||||
|
|
||||||
|
//===============================================================================================
|
||||||
|
// EcoreXWindow
|
||||||
|
//===============================================================================================
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* This is an initial wrapper for Ecore_X.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
class EcoreXWindow //: public Trackable
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
enum EcoreXWindowType
|
||||||
|
{
|
||||||
|
Desktop = ECORE_X_WINDOW_TYPE_DESKTOP,
|
||||||
|
Dock = ECORE_X_WINDOW_TYPE_DOCK,
|
||||||
|
Toolbar = ECORE_X_WINDOW_TYPE_TOOLBAR,
|
||||||
|
Menu = ECORE_X_WINDOW_TYPE_MENU,
|
||||||
|
Utility = ECORE_X_WINDOW_TYPE_UTILITY,
|
||||||
|
Spash = ECORE_X_WINDOW_TYPE_SPLASH,
|
||||||
|
Dialog = ECORE_X_WINDOW_TYPE_DIALOG,
|
||||||
|
Normal = ECORE_X_WINDOW_TYPE_NORMAL,
|
||||||
|
Unknown = ECORE_X_WINDOW_TYPE_UNKNOWN
|
||||||
|
};
|
||||||
|
|
||||||
|
public:
|
||||||
|
//EcoreXWindow () {};
|
||||||
|
EcoreXWindow( Ecore_X_Window exw ); // wrap?
|
||||||
|
virtual ~EcoreXWindow();
|
||||||
|
|
||||||
|
void setNetWMWindowType( EcoreXWindowType type );
|
||||||
|
//void getNetWMWindowTypePrefetch();
|
||||||
|
//void getNetWMWindowTypeFetc ();
|
||||||
|
bool getNetWMWindowType( EcoreXWindowType &outType );
|
||||||
|
|
||||||
|
// TODO: not sure where to put DPMS and all other functions
|
||||||
|
static bool getDPMSEnabled ();
|
||||||
|
static void setDPMSEnabled (bool enabled);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool operator=( const EcoreXWindow& );
|
||||||
|
bool operator==( const EcoreXWindow& );
|
||||||
|
|
||||||
|
Ecore_X_Window _exwin;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
} // end namespace efl
|
||||||
|
|
||||||
|
#endif // ECORE_X_WINDOW_H
|
|
@ -0,0 +1,18 @@
|
||||||
|
|
||||||
|
libecorexx_HEADERS = \
|
||||||
|
EcoreApplication.h\
|
||||||
|
EcoreConfig.h \
|
||||||
|
EcoreEvasWindow.h \
|
||||||
|
EcoreList.h \
|
||||||
|
EcoreXWindow.h \
|
||||||
|
EcoreAnimator.h \
|
||||||
|
EcoreTimer.h
|
||||||
|
|
||||||
|
libecorexxdir = \
|
||||||
|
$(pkgincludedir)
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
$(libecorexx_HEADERS)
|
||||||
|
|
||||||
|
## File created by the gnome-build tools
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
.libs
|
||||||
|
.deps
|
||||||
|
.*swp
|
||||||
|
.nautilus-metafile.xml
|
||||||
|
*.autosave
|
||||||
|
*.bak
|
||||||
|
*~
|
||||||
|
#*#
|
||||||
|
*.gladep
|
||||||
|
*.la
|
||||||
|
*.lo
|
||||||
|
*.o
|
||||||
|
*.class
|
||||||
|
*.pyc
|
||||||
|
*.plugin
|
||||||
|
Makefile
|
||||||
|
Makefile.in
|
|
@ -0,0 +1,45 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "../include/ecorexx/EcoreAnimator.h"
|
||||||
|
#include <eflxx/eflpp_common.h>
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
EcoreAnimator::EcoreAnimator()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreAnimator::EcoreAnimator() - current frametime is " << frameTime() );
|
||||||
|
_ea = ecore_animator_add( &EcoreAnimator::__dispatcher, this );
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreAnimator::~EcoreAnimator()
|
||||||
|
{
|
||||||
|
ecore_animator_del( _ea );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreAnimator::setFrameTime( double frametime )
|
||||||
|
{
|
||||||
|
ecore_animator_frametime_set( frametime );
|
||||||
|
}
|
||||||
|
|
||||||
|
double EcoreAnimator::frameTime()
|
||||||
|
{
|
||||||
|
return ecore_animator_frametime_get();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool EcoreAnimator::tick()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreAnimator[ " << this << " ]::tick()" );
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
int EcoreAnimator::__dispatcher( void* data )
|
||||||
|
{
|
||||||
|
EcoreAnimator* object = reinterpret_cast<EcoreAnimator*>( data );
|
||||||
|
int result = object->tick();
|
||||||
|
if ( !result ) delete object;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end namespace efl
|
|
@ -0,0 +1,144 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* EFLxx */
|
||||||
|
#include <eflxx/eflpp_common.h>
|
||||||
|
#include <eflxx/eflpp_sys.h>
|
||||||
|
#include <eflxx/eflpp_debug_internal.h>
|
||||||
|
#include "../include/ecorexx/EcoreApplication.h"
|
||||||
|
#include "../include/ecorexx/EcoreConfig.h"
|
||||||
|
#include "../include/ecorexx/EcoreTimer.h"
|
||||||
|
|
||||||
|
/* STD */
|
||||||
|
#ifdef ENABLE_EFLPP_FB // TODO: configure support!
|
||||||
|
#include <linux/fb.h>
|
||||||
|
#endif
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
EcoreApplication* EcoreApplication::_instance = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//===============================================================================================
|
||||||
|
// EcoreApplication
|
||||||
|
//===============================================================================================
|
||||||
|
|
||||||
|
EcoreApplication::EcoreApplication( int argc, const char **argv, const string& name )
|
||||||
|
:Trackable( "EcoreApplication" ), _binary( argv[0] ), _name( name ), _config( 0 )
|
||||||
|
{
|
||||||
|
if ( EcoreApplication::_instance )
|
||||||
|
{
|
||||||
|
DoutFatal( dc::fatal, "ECoreApplication object already created" );
|
||||||
|
}
|
||||||
|
Dout( dc::notice, "Application::Application" );
|
||||||
|
ecore_init();
|
||||||
|
ecore_app_args_set( argc, argv );
|
||||||
|
EcoreApplication::_instance = this;
|
||||||
|
|
||||||
|
//FIXME: read from configuration system
|
||||||
|
//_font = new EvasFont( "Vera", 12 );
|
||||||
|
//_fixedFont = new EvasFont( "VeraMono", 10 );
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreApplication::~EcoreApplication()
|
||||||
|
{
|
||||||
|
//delete _font;
|
||||||
|
//delete _fixedFont;
|
||||||
|
|
||||||
|
Dout( dc::notice, "EcoreApplication::~EcoreApplication" );
|
||||||
|
ecore_shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreApplication* EcoreApplication::application()
|
||||||
|
{
|
||||||
|
if ( !EcoreApplication::_instance )
|
||||||
|
{
|
||||||
|
DoutFatal( dc::core, "ECoreApplication object hasn't been created yet" );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return EcoreApplication::_instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string EcoreApplication::getName() const
|
||||||
|
{
|
||||||
|
return _name;
|
||||||
|
};
|
||||||
|
|
||||||
|
void EcoreApplication::setMainWindow( EcoreEvasWindow* mw )
|
||||||
|
{
|
||||||
|
_mainWindow = mw;
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreEvasWindow* EcoreApplication::getMainWindow() const
|
||||||
|
{
|
||||||
|
return _mainWindow;
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreApplication::exec()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreApplication::exec() - >>> jumping into main loop" );
|
||||||
|
ecore_main_loop_begin();
|
||||||
|
Dout( dc::notice, "EcoreApplication::exec() - <<< returned from main loop" );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreApplication::processOneEvent()
|
||||||
|
{
|
||||||
|
ecore_main_loop_iterate();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreApplication::quit()
|
||||||
|
{
|
||||||
|
ecore_main_loop_quit();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreApplication::startTimer( double seconds )
|
||||||
|
{
|
||||||
|
EcoreTimer* ecoretimer = new EcoreTimer( seconds );
|
||||||
|
ecoretimer->timeout.connect( sigc::mem_fun( this, &EcoreApplication::timerEvent ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*EvasFont EcoreApplication::font()
|
||||||
|
{
|
||||||
|
assert( _font );
|
||||||
|
return *_font;
|
||||||
|
}
|
||||||
|
|
||||||
|
EvasFont EcoreApplication::fixedFont()
|
||||||
|
{
|
||||||
|
assert( _fixedFont );
|
||||||
|
return *_fixedFont;
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreApplication::setFont( const EvasFont& font )
|
||||||
|
{
|
||||||
|
delete _font;
|
||||||
|
_font = new EvasFont( font );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreApplication::setFixedFont( const EvasFont& font )
|
||||||
|
{
|
||||||
|
delete _fixedFont;
|
||||||
|
_fixedFont = new EvasFont( font );
|
||||||
|
}*/
|
||||||
|
|
||||||
|
EcoreConfig* EcoreApplication::getConfig()
|
||||||
|
{
|
||||||
|
if ( !_config ) _config = new EcoreConfig( _binary );
|
||||||
|
return _config;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end namespace efl
|
|
@ -0,0 +1,86 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* EFL++ */
|
||||||
|
#include <eflxx/eflpp_sys.h>
|
||||||
|
#include <eflxx/eflpp_debug_internal.h>
|
||||||
|
#include <eflxx/eflpp_common.h>
|
||||||
|
#include "../include/ecorexx/EcoreConfig.h"
|
||||||
|
|
||||||
|
/* EFL */
|
||||||
|
#include <Ecore_Config.h>
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
//===============================================================================================
|
||||||
|
// EcoreConfig
|
||||||
|
//===============================================================================================
|
||||||
|
|
||||||
|
EcoreConfig::EcoreConfig( const string& name )
|
||||||
|
:_group( "default/" )
|
||||||
|
{
|
||||||
|
ecore_config_init( const_cast<char*>( name.c_str() ) );
|
||||||
|
ecore_config_load();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreConfig::setGroup( const string &group )
|
||||||
|
{
|
||||||
|
_group = group;
|
||||||
|
}
|
||||||
|
|
||||||
|
string EcoreConfig::getGroup() const
|
||||||
|
{
|
||||||
|
return _group;
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreConfig::setValue( const string &key, const bool value )
|
||||||
|
{
|
||||||
|
ecore_config_boolean_set( key.c_str (), value );
|
||||||
|
}
|
||||||
|
bool EcoreConfig::getBool( const string &key, const bool defaultValue )
|
||||||
|
{
|
||||||
|
ecore_config_boolean_default( key.c_str (), defaultValue );
|
||||||
|
return ecore_config_boolean_get( key.c_str () );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreConfig::setValue( const string &key, const int value )
|
||||||
|
{
|
||||||
|
ecore_config_int_set( key.c_str (), value );
|
||||||
|
}
|
||||||
|
int EcoreConfig::getInt( const string &key, const int defaultValue )
|
||||||
|
{
|
||||||
|
ecore_config_int_default( key.c_str (), defaultValue );
|
||||||
|
return ecore_config_int_get( key.c_str () );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreConfig::setValue( const string &key, const string& value )
|
||||||
|
{
|
||||||
|
ecore_config_string_set( key.c_str (), const_cast<char*>( value.c_str () ) );
|
||||||
|
}
|
||||||
|
string EcoreConfig::getString( const string &key, const string& defaultValue )
|
||||||
|
{
|
||||||
|
ecore_config_string_default( key.c_str (), const_cast<char*>( defaultValue.c_str() ) );
|
||||||
|
return ecore_config_string_get( key.c_str () );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreConfig::setValue( const string &key, const float value )
|
||||||
|
{
|
||||||
|
ecore_config_float_set( key.c_str (), value );
|
||||||
|
}
|
||||||
|
float EcoreConfig::getFloat( const string &key, const float defaultValue )
|
||||||
|
{
|
||||||
|
ecore_config_float_default( key.c_str (), defaultValue );
|
||||||
|
return ecore_config_float_get( key.c_str () );
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreConfig::~EcoreConfig()
|
||||||
|
{
|
||||||
|
ecore_config_save();
|
||||||
|
ecore_config_shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,628 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* EFLxx */
|
||||||
|
#include <evasxx/EvasCanvas.h>
|
||||||
|
#include "../include/ecorexx/EcoreEvasWindow.h"
|
||||||
|
#include "../include/ecorexx/EcoreXWindow.h"
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
#include <assert.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <linux/fb.h>
|
||||||
|
|
||||||
|
//===============================================================================================
|
||||||
|
// EcoreEvasWindow
|
||||||
|
//===============================================================================================
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
#define ECORE_EVAS_CALLBACK( name, func ) \
|
||||||
|
static void name( Ecore_Evas* ee ) \
|
||||||
|
{ \
|
||||||
|
eApp->getMainWindow()->func(); \
|
||||||
|
}
|
||||||
|
|
||||||
|
ECORE_EVAS_CALLBACK( callback_resize_dispatcher, resizeEvent )
|
||||||
|
ECORE_EVAS_CALLBACK( callback_move_dispatcher, moveEvent )
|
||||||
|
ECORE_EVAS_CALLBACK( callback_show_dispatcher, showEvent )
|
||||||
|
ECORE_EVAS_CALLBACK( callback_hide_dispatcher, hideEvent )
|
||||||
|
ECORE_EVAS_CALLBACK( callback_delete_request_dispatcher, deleteRequestEvent )
|
||||||
|
ECORE_EVAS_CALLBACK( callback_destroy_dispatcher, destroyEvent )
|
||||||
|
ECORE_EVAS_CALLBACK( callback_focus_in_dispatcher, focusInEvent )
|
||||||
|
ECORE_EVAS_CALLBACK( callback_focus_out_dispatcher, focusOutEvent )
|
||||||
|
ECORE_EVAS_CALLBACK( callback_mouse_in_dispatcher, mouseInEvent )
|
||||||
|
ECORE_EVAS_CALLBACK( callback_mouse_out_dispatcher, mouseOutEvent )
|
||||||
|
ECORE_EVAS_CALLBACK( callback_pre_render_dispatcher, preRenderEvent )
|
||||||
|
ECORE_EVAS_CALLBACK( callback_post_render_dispatcher, postRenderEvent )
|
||||||
|
|
||||||
|
EcoreEvasWindow::EcoreEvasWindow()
|
||||||
|
:Trackable( "EcoreEvasWindow" )
|
||||||
|
{
|
||||||
|
// initialize the Evas backend
|
||||||
|
ecore_evas_init ();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
EcoreEvasWindow::~EcoreEvasWindow()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreEvasWindow::~EcoreEvasWindow" );
|
||||||
|
|
||||||
|
delete _canvas;
|
||||||
|
|
||||||
|
// shutdown the Evas backend (if internal count is zero)
|
||||||
|
ecore_evas_shutdown ();
|
||||||
|
}
|
||||||
|
|
||||||
|
EvasCanvas &EcoreEvasWindow::getCanvas() const
|
||||||
|
{
|
||||||
|
// be sure that we never dereference a NULL pointer. If we have a NULL
|
||||||
|
// pointer here than something is really broken!
|
||||||
|
assert (_canvas);
|
||||||
|
|
||||||
|
return *_canvas;
|
||||||
|
};
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setEventEnabled( Event e, bool on )
|
||||||
|
{
|
||||||
|
switch ( e )
|
||||||
|
{
|
||||||
|
case Resize:
|
||||||
|
ecore_evas_callback_resize_set( _ee, on? &callback_resize_dispatcher:0 );
|
||||||
|
break;
|
||||||
|
case Move:
|
||||||
|
ecore_evas_callback_move_set( _ee, on? &callback_move_dispatcher:0 );
|
||||||
|
break;
|
||||||
|
case Show:
|
||||||
|
ecore_evas_callback_show_set( _ee, on? &callback_show_dispatcher:0 );
|
||||||
|
break;
|
||||||
|
case Hide:
|
||||||
|
ecore_evas_callback_hide_set( _ee, on? &callback_hide_dispatcher:0 );
|
||||||
|
break;
|
||||||
|
case DeleteRequest:
|
||||||
|
ecore_evas_callback_delete_request_set( _ee, on? &callback_delete_request_dispatcher:0 );
|
||||||
|
break;
|
||||||
|
case Destroy:
|
||||||
|
ecore_evas_callback_destroy_set( _ee, on? &callback_destroy_dispatcher:0 );
|
||||||
|
break;
|
||||||
|
case FocusIn:
|
||||||
|
ecore_evas_callback_focus_in_set( _ee, on? &callback_focus_in_dispatcher:0 );
|
||||||
|
break;
|
||||||
|
case FocusOut:
|
||||||
|
ecore_evas_callback_focus_out_set( _ee, on? &callback_focus_out_dispatcher:0 );
|
||||||
|
break;
|
||||||
|
case MouseIn:
|
||||||
|
ecore_evas_callback_mouse_in_set( _ee, on? &callback_mouse_in_dispatcher:0 );
|
||||||
|
break;
|
||||||
|
case MouseOut:
|
||||||
|
ecore_evas_callback_mouse_out_set( _ee, on? &callback_mouse_out_dispatcher:0 );
|
||||||
|
break;
|
||||||
|
case PreRender:
|
||||||
|
ecore_evas_callback_pre_render_set( _ee, on? &callback_pre_render_dispatcher:0 );
|
||||||
|
break;
|
||||||
|
case PostRender:
|
||||||
|
ecore_evas_callback_post_render_set( _ee, on? &callback_post_render_dispatcher:0 );
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
assert( 0 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::resizeEvent()
|
||||||
|
{
|
||||||
|
int x, y, w, h;
|
||||||
|
ecore_evas_geometry_get( _ee, &x, &y, &w, &h );
|
||||||
|
Dout( dc::notice, "EcoreEvasWindow::resizeEvent( " << x << "," << y << "*" << w << "," << h << " )" );
|
||||||
|
Dout( dc::notice, " - evas viewport size = " << _canvas->viewport() );
|
||||||
|
Dout( dc::notice, " - evas output size = " << _canvas->size() );
|
||||||
|
//FIXME: Resize manually if not fullscreen
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::moveEvent()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreEvasWindow::moveEvent()" );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::showEvent()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreEvasWindow::showEvent()" );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::hideEvent()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreEvasWindow::hideEvent()" );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void EcoreEvasWindow::deleteRequestEvent()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreEvasWindow::deleteRequestEvent()" );
|
||||||
|
if ( canClose() ) eApp->quit();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::destroyEvent()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreEvasWindow::destroyEvent()" );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void EcoreEvasWindow::focusInEvent()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreEvasWindow::focusInEvent()" );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::focusOutEvent()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreEvasWindow::focusOutEvent()" );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::mouseInEvent()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreEvasWindow::mouseInEvent()" );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::mouseOutEvent()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreEvasWindow::mouseOutEvent()" );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::preRenderEvent()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreEvasWindow::preRenderEvent()" );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::postRenderEvent()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreEvasWindow::postRenderEvent()" );
|
||||||
|
}
|
||||||
|
|
||||||
|
bool EcoreEvasWindow::isEngineTypeSupported (EngineType et)
|
||||||
|
{
|
||||||
|
return ecore_evas_engine_type_supported_get (static_cast <Ecore_Evas_Engine_Type> (et));
|
||||||
|
}
|
||||||
|
|
||||||
|
bool EcoreEvasWindow::canClose() const
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::move( const Point& point )
|
||||||
|
{
|
||||||
|
ecore_evas_move( _ee, point.x(), point.y() );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::resize( const Size& size )
|
||||||
|
{
|
||||||
|
ecore_evas_resize( _ee, size.width(), size.height() );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setGeometry( const Rect& rect )
|
||||||
|
{
|
||||||
|
ecore_evas_move_resize( _ee, rect.x(), rect.y(), rect.width(), rect.height() );
|
||||||
|
}
|
||||||
|
|
||||||
|
Rect EcoreEvasWindow::geometry() const
|
||||||
|
{
|
||||||
|
int x, y, width, height;
|
||||||
|
ecore_evas_geometry_get( _ee, &x, &y, &width, &height );
|
||||||
|
return Rect( x, y, width, height );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setRotation( int rot )
|
||||||
|
{
|
||||||
|
ecore_evas_rotation_set( _ee, rot );
|
||||||
|
}
|
||||||
|
|
||||||
|
int EcoreEvasWindow::rotation() const
|
||||||
|
{
|
||||||
|
return ecore_evas_rotation_get( _ee );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setShaped( bool b )
|
||||||
|
{
|
||||||
|
ecore_evas_shaped_set( _ee, b );
|
||||||
|
}
|
||||||
|
|
||||||
|
bool EcoreEvasWindow::isShaped() const
|
||||||
|
{
|
||||||
|
return ecore_evas_shaped_get( _ee );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setAlpha( bool alpha )
|
||||||
|
{
|
||||||
|
ecore_evas_alpha_set( _ee, alpha );
|
||||||
|
}
|
||||||
|
|
||||||
|
bool EcoreEvasWindow::hasAlpha () const
|
||||||
|
{
|
||||||
|
return ecore_evas_alpha_get( _ee );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::show()
|
||||||
|
{
|
||||||
|
ecore_evas_show( _ee );
|
||||||
|
}
|
||||||
|
void EcoreEvasWindow::hide()
|
||||||
|
{
|
||||||
|
ecore_evas_hide( _ee );
|
||||||
|
}
|
||||||
|
void EcoreEvasWindow::raise()
|
||||||
|
{
|
||||||
|
ecore_evas_raise( _ee );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::lower()
|
||||||
|
{
|
||||||
|
ecore_evas_lower( _ee );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setTitle( const std::string &title )
|
||||||
|
{
|
||||||
|
ecore_evas_title_set( _ee, title.c_str () );
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::string EcoreEvasWindow::getTitle() const
|
||||||
|
{
|
||||||
|
return ecore_evas_title_get( _ee );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setMinimumSize( const Size& size )
|
||||||
|
{
|
||||||
|
ecore_evas_size_min_set( _ee, size.width(), size.height() );
|
||||||
|
}
|
||||||
|
|
||||||
|
Size EcoreEvasWindow::getMinimumSize() const
|
||||||
|
{
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
ecore_evas_size_min_get( _ee, &x, &y );
|
||||||
|
return Size( x, y );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setMaximumSize( const Size& size )
|
||||||
|
{
|
||||||
|
ecore_evas_size_max_set( _ee, size.width(), size.height() );
|
||||||
|
}
|
||||||
|
|
||||||
|
Size EcoreEvasWindow::getMaximumSize() const
|
||||||
|
{
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
ecore_evas_size_max_get( _ee, &x, &y );
|
||||||
|
return Size( x, y );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setBaseSize( const Size& size )
|
||||||
|
{
|
||||||
|
ecore_evas_size_base_set( _ee, size.width(), size.height() );
|
||||||
|
}
|
||||||
|
|
||||||
|
Size EcoreEvasWindow::getBaseSize() const
|
||||||
|
{
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
ecore_evas_size_base_get( _ee, &x, &y );
|
||||||
|
return Size( x, y );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setStepSize( const Size& size )
|
||||||
|
{
|
||||||
|
ecore_evas_size_step_set( _ee, size.width(), size.height() );
|
||||||
|
}
|
||||||
|
|
||||||
|
Size EcoreEvasWindow::getStepSize() const
|
||||||
|
{
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
ecore_evas_size_step_get( _ee, &x, &y );
|
||||||
|
return Size( x, y );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setCursor( const char* file, int layer, int hot_x, int hot_y )
|
||||||
|
{
|
||||||
|
ecore_evas_cursor_set( _ee, file, layer, hot_x, hot_y );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setLayer( int layer )
|
||||||
|
{
|
||||||
|
ecore_evas_layer_set( _ee, layer );
|
||||||
|
}
|
||||||
|
|
||||||
|
int EcoreEvasWindow::getLayer() const
|
||||||
|
{
|
||||||
|
return ecore_evas_layer_get( _ee );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setFocus( int on )
|
||||||
|
{
|
||||||
|
ecore_evas_focus_set( _ee, on );
|
||||||
|
}
|
||||||
|
|
||||||
|
int EcoreEvasWindow::hasFocus() const
|
||||||
|
{
|
||||||
|
return ecore_evas_focus_get( _ee );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setIconified( int on )
|
||||||
|
{
|
||||||
|
ecore_evas_iconified_set( _ee, on );
|
||||||
|
}
|
||||||
|
|
||||||
|
int EcoreEvasWindow::isIconified() const
|
||||||
|
{
|
||||||
|
return ecore_evas_iconified_get( _ee );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setBorderless( int on )
|
||||||
|
{
|
||||||
|
ecore_evas_borderless_set( _ee, on );
|
||||||
|
}
|
||||||
|
|
||||||
|
int EcoreEvasWindow::isBorderless() const
|
||||||
|
{
|
||||||
|
return ecore_evas_borderless_get( _ee );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setOverride( int on )
|
||||||
|
{
|
||||||
|
ecore_evas_override_set( _ee, on );
|
||||||
|
}
|
||||||
|
|
||||||
|
int EcoreEvasWindow::isOverride() const
|
||||||
|
{
|
||||||
|
return ecore_evas_override_get( _ee );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setMaximized( int on )
|
||||||
|
{
|
||||||
|
ecore_evas_maximized_set( _ee, on );
|
||||||
|
}
|
||||||
|
int EcoreEvasWindow::isMaximized() const
|
||||||
|
{
|
||||||
|
return ecore_evas_maximized_get( _ee );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setFullscreen( int on )
|
||||||
|
{
|
||||||
|
ecore_evas_fullscreen_set( _ee, on );
|
||||||
|
}
|
||||||
|
|
||||||
|
int EcoreEvasWindow::isFullscreen() const
|
||||||
|
{
|
||||||
|
return ecore_evas_fullscreen_get( _ee );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setAvoidDamage( Ecore_Evas_Avoid_Damage_Type value )
|
||||||
|
{
|
||||||
|
ecore_evas_avoid_damage_set( _ee, value );
|
||||||
|
}
|
||||||
|
|
||||||
|
Ecore_Evas_Avoid_Damage_Type EcoreEvasWindow::AvoidDamage() const
|
||||||
|
{
|
||||||
|
return ecore_evas_avoid_damage_get( _ee );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setWithdrawn( int on )
|
||||||
|
{
|
||||||
|
ecore_evas_withdrawn_set( _ee, on );
|
||||||
|
}
|
||||||
|
|
||||||
|
int EcoreEvasWindow::isWithdrawn() const
|
||||||
|
{
|
||||||
|
return ecore_evas_withdrawn_get( _ee );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreEvasWindow::setSticky( int on )
|
||||||
|
{
|
||||||
|
ecore_evas_sticky_set( _ee, on );
|
||||||
|
}
|
||||||
|
|
||||||
|
int EcoreEvasWindow::isSticky() const
|
||||||
|
{
|
||||||
|
return ecore_evas_sticky_get( _ee );
|
||||||
|
}
|
||||||
|
|
||||||
|
/* PRIVATE */
|
||||||
|
EcoreEvasWindow* EcoreEvasWindow::objectLink( Ecore_Evas* ee )
|
||||||
|
{
|
||||||
|
return static_cast<EcoreEvasWindow*>( ecore_evas_data_get( ee, "obj_c++" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreEvasWindowSoftwareX11::EcoreEvasWindowSoftwareX11( const Size &size, const char* display )
|
||||||
|
:EcoreEvasWindow()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreEvasWindow::EcoreEvasWindowSoftwareX11" );
|
||||||
|
EcoreApplication::application()->setMainWindow( this );
|
||||||
|
|
||||||
|
/*if ( ::getenv( "EFL_DISPLAY" ) ) display = ::getenv( "EFL_DISPLAY" );
|
||||||
|
if ( ::getenv( "EFL_WIDTH" ) ) size.width (atoi( ::getenv( "EFL_WIDTH" ) ));
|
||||||
|
if ( ::getenv( "EFL_HEIGHT" ) ) size.height (atoi( ::getenv( "EFL_HEIGHT" ) ));*/
|
||||||
|
|
||||||
|
Dout( dc::notice, "- detected display string '" << ( display ? display:"<null>" ) << "' - starting X11 engine" );
|
||||||
|
//FIXME: Should we care about positioning? 0, 0 for now
|
||||||
|
_ee = ecore_evas_software_x11_new( const_cast<char*>( display ), 0, 0, 0, size.width (), size.height () );
|
||||||
|
|
||||||
|
ecore_evas_title_set( _ee, eApp->getName().c_str() );
|
||||||
|
ecore_evas_borderless_set( _ee, 0 );
|
||||||
|
|
||||||
|
_canvas = new EvasCanvas( ecore_evas_get( _ee ) );
|
||||||
|
|
||||||
|
/* Set up magic object back link */
|
||||||
|
ecore_evas_data_set( _ee, "obj_c++", this );
|
||||||
|
|
||||||
|
/* Set up default callbacks */
|
||||||
|
setEventEnabled( Resize, true );
|
||||||
|
setEventEnabled( DeleteRequest, true );
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreEvasWindowSoftwareX11::~EcoreEvasWindowSoftwareX11()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreXWindow *EcoreEvasWindowSoftwareX11::getXWindow()
|
||||||
|
{
|
||||||
|
Ecore_X_Window exw = ecore_evas_software_x11_window_get( _ee );
|
||||||
|
EcoreXWindow *exwin = new EcoreXWindow( exw );
|
||||||
|
|
||||||
|
return exwin;
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreEvasWindowGLX11::EcoreEvasWindowGLX11( const Size &size, const char* display )
|
||||||
|
:EcoreEvasWindow()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreEvasWindow::EcoreEvasWindowGL" );
|
||||||
|
EcoreApplication::application()->setMainWindow( this );
|
||||||
|
|
||||||
|
/*if ( ::getenv( "EFL_DISPLAY" ) ) display = ::getenv( "EFL_DISPLAY" );
|
||||||
|
if ( ::getenv( "EFL_WIDTH" ) ) size.width (atoi( ::getenv( "EFL_WIDTH" ) ));
|
||||||
|
if ( ::getenv( "EFL_HEIGHT" ) ) size.height (atoi( ::getenv( "EFL_HEIGHT" ) ));*/
|
||||||
|
|
||||||
|
Dout( dc::notice, "- detected display string '" << ( display ? display:"<null>" ) << "' - starting X11 engine" );
|
||||||
|
//FIXME: Should we care about positioning? 0, 0 for now
|
||||||
|
_ee = ecore_evas_gl_x11_new( const_cast<char*>( display ), 0, 0, 0, size.width (), size.height () );
|
||||||
|
|
||||||
|
ecore_evas_title_set( _ee, eApp->getName().c_str() );
|
||||||
|
ecore_evas_borderless_set( _ee, 0 );
|
||||||
|
|
||||||
|
_canvas = new EvasCanvas( ecore_evas_get( _ee ) );
|
||||||
|
|
||||||
|
/* Set up magic object back link */
|
||||||
|
ecore_evas_data_set( _ee, "obj_c++", this );
|
||||||
|
|
||||||
|
/* Set up default callbacks */
|
||||||
|
setEventEnabled( Resize, true );
|
||||||
|
setEventEnabled( DeleteRequest, true );
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreEvasWindowGLX11::~EcoreEvasWindowGLX11()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreXWindow *EcoreEvasWindowGLX11::getXWindow()
|
||||||
|
{
|
||||||
|
Ecore_X_Window exw = ecore_evas_gl_x11_window_get( _ee );
|
||||||
|
EcoreXWindow *exwin = new EcoreXWindow( exw );
|
||||||
|
|
||||||
|
return exwin;
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreEvasWindowXRenderX11::EcoreEvasWindowXRenderX11( const Size &size, const char* display )
|
||||||
|
:EcoreEvasWindow()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreEvasWindow::EcoreEvasWindowGL" );
|
||||||
|
EcoreApplication::application()->setMainWindow( this );
|
||||||
|
|
||||||
|
/*if ( ::getenv( "EFL_DISPLAY" ) ) display = ::getenv( "EFL_DISPLAY" );
|
||||||
|
if ( ::getenv( "EFL_WIDTH" ) ) size.width (atoi( ::getenv( "EFL_WIDTH" ) ));
|
||||||
|
if ( ::getenv( "EFL_HEIGHT" ) ) size.height (atoi( ::getenv( "EFL_HEIGHT" ) ));*/
|
||||||
|
|
||||||
|
Dout( dc::notice, "- detected display string '" << ( display ? display:"<null>" ) << "' - starting X11 engine" );
|
||||||
|
//FIXME: Should we care about positioning? 0, 0 for now
|
||||||
|
_ee = ecore_evas_xrender_x11_new( const_cast<char*>( display ), 0, 0, 0, size.width (), size.height () );
|
||||||
|
|
||||||
|
ecore_evas_title_set( _ee, eApp->getName().c_str() );
|
||||||
|
ecore_evas_borderless_set( _ee, 0 );
|
||||||
|
|
||||||
|
_canvas = new EvasCanvas( ecore_evas_get( _ee ) );
|
||||||
|
|
||||||
|
/* Set up magic object back link */
|
||||||
|
ecore_evas_data_set( _ee, "obj_c++", this );
|
||||||
|
|
||||||
|
/* Set up default callbacks */
|
||||||
|
setEventEnabled( Resize, true );
|
||||||
|
setEventEnabled( DeleteRequest, true );
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreEvasWindowXRenderX11::~EcoreEvasWindowXRenderX11()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreXWindow *EcoreEvasWindowXRenderX11::getXWindow()
|
||||||
|
{
|
||||||
|
Ecore_X_Window exw = ecore_evas_xrender_x11_window_get( _ee );
|
||||||
|
EcoreXWindow *exwin = new EcoreXWindow( exw );
|
||||||
|
|
||||||
|
return exwin;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Possible without #ifdef stuff?
|
||||||
|
EcoreEvasWindowFB::EcoreEvasWindowFB( const Size &size, const char* display, int rotation )
|
||||||
|
:EcoreEvasWindow()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreEvasWindow::EcoreEvasWindowFB" );
|
||||||
|
EcoreApplication::application()->setMainWindow( this );
|
||||||
|
|
||||||
|
/*if ( ::getenv( "EFL_DISPLAY" ) ) display = ::getenv( "EFL_DISPLAY" );
|
||||||
|
if ( ::getenv( "EFL_WIDTH" ) ) size.width (atoi( ::getenv( "EFL_WIDTH" ) ));
|
||||||
|
if ( ::getenv( "EFL_HEIGHT" ) ) size.height (atoi( ::getenv( "EFL_HEIGHT" ) ));
|
||||||
|
if ( ::getenv( "EFL_ROTATION" ) ) rotation = atoi( ::getenv( "EFL_ROTATION" ) );*/
|
||||||
|
|
||||||
|
if ( display /*&& ::strstr( display, "/dev/fb" )*/ )
|
||||||
|
{
|
||||||
|
#ifdef ENABLE_EFLPP_FB
|
||||||
|
int fb_dev_fd = ::open( display, O_RDONLY );
|
||||||
|
if ( fb_dev_fd < 0 )
|
||||||
|
{
|
||||||
|
fprintf(stderr,"Can't open display '%s': %s\n", display, strerror(errno));
|
||||||
|
exit( 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
struct fb_var_screeninfo fb_vinfo;
|
||||||
|
struct fb_fix_screeninfo fb_finfo;
|
||||||
|
|
||||||
|
// read VScreen info from fb
|
||||||
|
if ( ioctl( fb_dev_fd, FBIOGET_VSCREENINFO, &fb_vinfo ) )
|
||||||
|
{
|
||||||
|
fprintf(stderr,"Can't get VSCREENINFO: %s\n", strerror(errno));
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// readFScreen info from fb
|
||||||
|
if ( ioctl( fb_dev_fd, FBIOGET_FSCREENINFO, &fb_finfo ) )
|
||||||
|
{
|
||||||
|
fprintf(stderr,"Can't get FSCREENINFO: %s\n", strerror(errno));
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
Dout( dc::notice, "- using display '" << display << "' [" << fb_finfo.id << "] - " << fb_vinfo.xres << "x" << fb_vinfo.yres << "@" << rotation );
|
||||||
|
width = ( rotation % 180 ) ? fb_vinfo.yres : fb_vinfo.xres;
|
||||||
|
height = ( rotation % 180 ) ? fb_vinfo.xres : fb_vinfo.yres;
|
||||||
|
Dout( dc::notice, "- using size (after rotating) " << size.width () << "x" << size.height () );
|
||||||
|
#ifdef ECORE_FB_NO_ROTATION_BUG
|
||||||
|
//FIXME EFL BUG: initial rotation is not taken into account for evas calculation
|
||||||
|
_ee = ecore_evas_fb_new( const_cast<char*>( display ), rotation, 50, 50 );
|
||||||
|
#else
|
||||||
|
_ee = ecore_evas_fb_new( const_cast<char*>( display ), 0, 50, 50 ); // start with rotation 0 to workaround bug
|
||||||
|
#endif
|
||||||
|
ecore_evas_fullscreen_set( _ee, 1 ); // fullscreen is default to get auto resize on changing rotation
|
||||||
|
ecore_evas_rotation_set( _ee, rotation ); // force resize
|
||||||
|
#else
|
||||||
|
printf("FB engine not enabled\n");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
ecore_evas_title_set( _ee, eApp->getName().c_str() );
|
||||||
|
ecore_evas_borderless_set( _ee, 0 );
|
||||||
|
|
||||||
|
_canvas = new EvasCanvas( ecore_evas_get( _ee ) );
|
||||||
|
|
||||||
|
/* Set up magic object back link */
|
||||||
|
ecore_evas_data_set( _ee, "obj_c++", this );
|
||||||
|
|
||||||
|
/* Set up default callbacks */
|
||||||
|
setEventEnabled( Resize, true );
|
||||||
|
setEventEnabled( DeleteRequest, true );
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreEvasWindowFB::~EcoreEvasWindowFB()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end namespace efl
|
|
@ -0,0 +1,52 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* EFLxx */
|
||||||
|
#include "../include/ecorexx/EcoreTimer.h"
|
||||||
|
|
||||||
|
#include <cassert>
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
EcoreTimer::EcoreTimer( double seconds, bool singleshot )
|
||||||
|
:_ss( singleshot )
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreTimer::EcoreTimer() - current frequency is " << seconds );
|
||||||
|
_et = ecore_timer_add( seconds, &EcoreTimer::__dispatcher, this );
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreTimer::~EcoreTimer()
|
||||||
|
{
|
||||||
|
ecore_timer_del( _et );
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreTimer* EcoreTimer::singleShot( double seconds, const EcoreTimer::Slot& slot )
|
||||||
|
{
|
||||||
|
EcoreTimer* ecoretimer = new EcoreTimer( seconds, true );
|
||||||
|
ecoretimer->timeout.connect( slot );
|
||||||
|
return ecoretimer;
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreTimer::setInterval( double seconds )
|
||||||
|
{
|
||||||
|
ecore_timer_interval_set( _et, seconds );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreTimer::tick()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EcoreTimer[ " << this << " ]::tick()" );
|
||||||
|
}
|
||||||
|
|
||||||
|
int EcoreTimer::__dispatcher( void* data )
|
||||||
|
{
|
||||||
|
EcoreTimer* object = reinterpret_cast<EcoreTimer*>( data );
|
||||||
|
assert( object );
|
||||||
|
object->timeout.emit( object );
|
||||||
|
object->tick();
|
||||||
|
bool singleshot = object->_ss;
|
||||||
|
if ( singleshot ) delete object;
|
||||||
|
return singleshot? 0:1;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end namespace efl
|
|
@ -0,0 +1,52 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "../include/ecorexx/EcoreXWindow.h"
|
||||||
|
|
||||||
|
//===============================================================================================
|
||||||
|
// EcoreXWindow
|
||||||
|
//===============================================================================================
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
EcoreXWindow::EcoreXWindow( Ecore_X_Window exwin )
|
||||||
|
{
|
||||||
|
_exwin = exwin;
|
||||||
|
}
|
||||||
|
|
||||||
|
EcoreXWindow::~EcoreXWindow()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreXWindow::setNetWMWindowType( EcoreXWindowType type )
|
||||||
|
{
|
||||||
|
ecore_x_netwm_window_type_set( _exwin, static_cast <Ecore_X_Window_Type> (type) );
|
||||||
|
}
|
||||||
|
|
||||||
|
//void EcoreXWindow::getNetWMWindowTypePrefetch()
|
||||||
|
//void EcoreXWindow::getNetWMWindowTypeFetch ()
|
||||||
|
//EAPI void ecore_x_netwm_window_type_get_prefetch(Ecore_X_Window window);
|
||||||
|
//EAPI void ecore_x_netwm_window_type_get_fetch(void);
|
||||||
|
|
||||||
|
bool EcoreXWindow::getNetWMWindowType( EcoreXWindowType &outType )
|
||||||
|
{
|
||||||
|
Ecore_X_Window_Type eWinType;
|
||||||
|
bool ret = ecore_x_netwm_window_type_get( _exwin, &eWinType );
|
||||||
|
outType = static_cast <EcoreXWindowType> (eWinType);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool EcoreXWindow::getDPMSEnabled ()
|
||||||
|
{
|
||||||
|
return ecore_x_dpms_enabled_get ();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EcoreXWindow::setDPMSEnabled (bool enabled)
|
||||||
|
{
|
||||||
|
ecore_x_dpms_enabled_set (enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end namespace efl
|
|
@ -0,0 +1,28 @@
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
## Created by Anjuta
|
||||||
|
|
||||||
|
AM_CPPFLAGS = \
|
||||||
|
-DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
|
||||||
|
-DPACKAGE_SRC_DIR=\""$(srcdir)"\" \
|
||||||
|
-DPACKAGE_DATA_DIR=\""$(datadir)"\" \
|
||||||
|
$(EFL_CFLAGS)
|
||||||
|
|
||||||
|
AM_CFLAGS =\
|
||||||
|
-Wall\
|
||||||
|
-g
|
||||||
|
|
||||||
|
lib_LTLIBRARIES = \
|
||||||
|
libecorexx.la
|
||||||
|
|
||||||
|
libecorexx_la_SOURCES = \
|
||||||
|
EcoreApplication.cpp\
|
||||||
|
EcoreConfig.cpp \
|
||||||
|
EcoreEvasWindow.cpp \
|
||||||
|
EcoreXWindow.cpp \
|
||||||
|
EcoreAnimator.cpp \
|
||||||
|
EcoreTimer.cpp
|
||||||
|
|
||||||
|
libecorexx_la_LIBADD = \
|
||||||
|
$(EFL_LIBS)
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
.anjuta
|
||||||
|
.tm_project*
|
||||||
|
.libs
|
||||||
|
.deps
|
||||||
|
.*swp
|
||||||
|
.nautilus-metafile.xml
|
||||||
|
*.autosave
|
||||||
|
*.pws
|
||||||
|
*.bak
|
||||||
|
*~
|
||||||
|
#*#
|
||||||
|
*.gladep
|
||||||
|
*.la
|
||||||
|
*.lo
|
||||||
|
*.o
|
||||||
|
*.class
|
||||||
|
*.pyc
|
||||||
|
aclocal.m4
|
||||||
|
autom4te.cache
|
||||||
|
config.h
|
||||||
|
config.h.in
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
configure
|
||||||
|
intltool-extract*
|
||||||
|
intltool-merge*
|
||||||
|
intltool-modules*
|
||||||
|
intltool-update*
|
||||||
|
libtool
|
||||||
|
prepare.sh
|
||||||
|
stamp-h*
|
||||||
|
ltmain.sh
|
||||||
|
mkinstalldirs
|
||||||
|
config.guess
|
||||||
|
config.sub
|
||||||
|
Makefile
|
||||||
|
Makefile.in
|
|
@ -0,0 +1,26 @@
|
||||||
|
Copyright (c) The Regents of the University of California.
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
3. Neither the name of the University nor the names of its contributors
|
||||||
|
may be used to endorse or promote products derived from this software
|
||||||
|
without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||||
|
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
SUCH DAMAGE.
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
|
@ -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' will install the package's files in
|
||||||
|
`/usr/local/bin', `/usr/local/man', 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
|
||||||
|
give `configure' the option `--exec-prefix=PREFIX', the package will
|
||||||
|
use PREFIX as the prefix for installing programs and libraries.
|
||||||
|
Documentation and other data files will 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 `--target=TYPE' option 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.
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
## Created by Anjuta
|
||||||
|
|
||||||
|
SUBDIRS = src \
|
||||||
|
include
|
||||||
|
|
||||||
|
edjexxdocdir = ${prefix}/doc/edjexx
|
||||||
|
edjexxdoc_DATA = \
|
||||||
|
README\
|
||||||
|
COPYING\
|
||||||
|
AUTHORS\
|
||||||
|
ChangeLog\
|
||||||
|
INSTALL\
|
||||||
|
NEWS
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST = $(edjexxdoc_DATA)
|
||||||
|
|
||||||
|
|
||||||
|
# Remove doc directory on uninstall
|
||||||
|
uninstall-local:
|
||||||
|
-rm -r $(edjexxdocdir)
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<gtodo>
|
||||||
|
<category title="Bugs" place="0"/>
|
||||||
|
<category title="Features" place="1">
|
||||||
|
<item>
|
||||||
|
<attribute id="1242992670" priority="1" done="0" start_date="733549" enddate="99999999" notify="0" endtime="-60" last_edited="1243854883"/>
|
||||||
|
<summary>split EdjeBase.h in more classes</summary>
|
||||||
|
<comment>e.g. *file() functions</comment>
|
||||||
|
</item>
|
||||||
|
</category>
|
||||||
|
</gtodo>
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
./bootstrap && ./configure $@
|
|
@ -0,0 +1,73 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# Run this to bootstrap the files
|
||||||
|
|
||||||
|
srcdir=`dirname $0`
|
||||||
|
test -z "$srcdir" && srcdir=.
|
||||||
|
|
||||||
|
DIE=0
|
||||||
|
|
||||||
|
# check if configure.ac is there
|
||||||
|
(test -f $srcdir/configure.ac) || {
|
||||||
|
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
|
||||||
|
echo " top-level package directory"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# check for autoconf
|
||||||
|
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: You must have \`autoconf' installed."
|
||||||
|
echo "Download the appropriate package for your distribution,"
|
||||||
|
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
|
||||||
|
DIE=1
|
||||||
|
}
|
||||||
|
|
||||||
|
# check for libtool
|
||||||
|
(libtool --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: You must have \`libtool' installed."
|
||||||
|
echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
|
||||||
|
DIE=1
|
||||||
|
}
|
||||||
|
|
||||||
|
# check for automake
|
||||||
|
(automake --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: You must have \`automake' installed."
|
||||||
|
echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
|
||||||
|
DIE=1
|
||||||
|
NO_AUTOMAKE=yes
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# if no automake, don't bother testing for aclocal
|
||||||
|
test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: Missing \`aclocal'. The version of \`automake'"
|
||||||
|
echo "installed doesn't appear recent enough."
|
||||||
|
echo "You can get automake from ftp://ftp.gnu.org/pub/gnu/"
|
||||||
|
DIE=1
|
||||||
|
}
|
||||||
|
|
||||||
|
if test "$DIE" -eq 1; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Running libtoolize..."
|
||||||
|
libtoolize --force --copy
|
||||||
|
|
||||||
|
aclocalinclude="$ACLOCAL_FLAGS -I m4"
|
||||||
|
echo "Running aclocal $aclocalinclude ..."
|
||||||
|
aclocal $aclocalinclude
|
||||||
|
|
||||||
|
echo "Running autoheader..."
|
||||||
|
autoheader
|
||||||
|
|
||||||
|
echo "Running automake..."
|
||||||
|
automake --add-missing --foreign $am_opt
|
||||||
|
|
||||||
|
echo "Running autoconf ..."
|
||||||
|
autoconf
|
||||||
|
|
||||||
|
echo "You could now exec ./configure --help to see available options"
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
dnl Created by Anjuta application wizard.
|
||||||
|
|
||||||
|
AC_INIT(edjexx, 0.1)
|
||||||
|
|
||||||
|
AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
|
||||||
|
AC_CONFIG_HEADERS([config.h])
|
||||||
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
|
AC_ISC_POSIX
|
||||||
|
AC_PROG_CXX
|
||||||
|
AM_PROG_CC_STDC
|
||||||
|
AC_HEADER_STDC
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
AM_PROG_LIBTOOL
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PKG_CHECK_MODULES(EFL, eflxx evasxx edje)
|
||||||
|
AC_OUTPUT([
|
||||||
|
Makefile
|
||||||
|
include/Makefile
|
||||||
|
include/edjexx/Makefile
|
||||||
|
src/Makefile
|
||||||
|
edjexx.pc
|
||||||
|
edjexx-uninstalled.pc
|
||||||
|
|
||||||
|
])
|
|
@ -0,0 +1,12 @@
|
||||||
|
prefix=
|
||||||
|
exec_prefix=
|
||||||
|
libdir=src
|
||||||
|
includedir=include
|
||||||
|
|
||||||
|
Name: @PACKAGE@
|
||||||
|
Description: Edje (EFL) C++ Wrapper, Not installed
|
||||||
|
Version: @VERSION@
|
||||||
|
Requires: sigc++-2.0 evasxx
|
||||||
|
Conflicts:
|
||||||
|
Libs: ${pcfiledir}/${libdir}/libedjexx.la
|
||||||
|
Cflags: -I${pcfiledir}/${includedir}
|
|
@ -0,0 +1,44 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<anjuta>
|
||||||
|
<plugin name="GBF Project Manager"
|
||||||
|
url="http://anjuta.org/plugins/"
|
||||||
|
mandatory="yes">
|
||||||
|
<require group="Anjuta Plugin"
|
||||||
|
attribute="Interfaces"
|
||||||
|
value="IAnjutaProjectManager"/>
|
||||||
|
<require group="Project"
|
||||||
|
attribute="Supported-Project-Types"
|
||||||
|
value="automake"/>
|
||||||
|
</plugin>
|
||||||
|
<plugin name="Symbol Browser"
|
||||||
|
url="http://anjuta.org/plugins/"
|
||||||
|
mandatory="yes">
|
||||||
|
<require group="Anjuta Plugin"
|
||||||
|
attribute="Interfaces"
|
||||||
|
value="IAnjutaSymbolManager"/>
|
||||||
|
</plugin>
|
||||||
|
<plugin name="Make Build System"
|
||||||
|
url="http://anjuta.org/plugins/"
|
||||||
|
mandatory="yes">
|
||||||
|
<require group="Anjuta Plugin"
|
||||||
|
attribute="Interfaces"
|
||||||
|
value="IAnjutaBuildable"/>
|
||||||
|
<require group="Build"
|
||||||
|
attribute="Supported-Build-Types"
|
||||||
|
value="make"/>
|
||||||
|
</plugin>
|
||||||
|
<plugin name="Task Manager"
|
||||||
|
url="http://anjuta.org/plugins/"
|
||||||
|
mandatory="no">
|
||||||
|
<require group="Anjuta Plugin"
|
||||||
|
attribute="Interfaces"
|
||||||
|
value="IAnjutaTodo"/>
|
||||||
|
</plugin>
|
||||||
|
<plugin name="Debug Manager"
|
||||||
|
url="http://anjuta.org/plugins/"
|
||||||
|
mandatory="no">
|
||||||
|
<require group="Anjuta Plugin"
|
||||||
|
attribute="Interfaces"
|
||||||
|
value="IAnjutaDebugManager"/>
|
||||||
|
</plugin>
|
||||||
|
</anjuta>
|
|
@ -0,0 +1,13 @@
|
||||||
|
prefix=@prefix@
|
||||||
|
exec_prefix=@prefix@
|
||||||
|
libdir=@exec_prefix@/lib
|
||||||
|
includedir=@prefix@/include
|
||||||
|
|
||||||
|
Name: @PACKAGE@
|
||||||
|
Description: Edje (EFL) C++ Wrapper
|
||||||
|
Version: @VERSION@
|
||||||
|
Requires: sigc++-2.0 evasxx
|
||||||
|
Conflicts:
|
||||||
|
Libs: -L${libdir} -ledjexx
|
||||||
|
Cflags: -I${includedir}
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
$(libedjexx_HEADERS)
|
||||||
|
|
||||||
|
SUBDIRS = \
|
||||||
|
edjexx
|
||||||
|
|
||||||
|
## File created by the gnome-build tools
|
||||||
|
|
|
@ -0,0 +1,86 @@
|
||||||
|
#ifndef EFLPP_EDJE_H
|
||||||
|
#define EFLPP_EDJE_H
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* EFL++ */
|
||||||
|
#include <evasxx/EvasUtils.h>
|
||||||
|
#include <eflxx/eflpp_common.h>
|
||||||
|
|
||||||
|
/* STD */
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
/* EFL */
|
||||||
|
#include <Edje.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* C++ Wrapper for the Enlightenment EdjeBase Library (EDJE)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
class EdjeBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static int init();
|
||||||
|
static int shutdown();
|
||||||
|
|
||||||
|
static double getFrametime();
|
||||||
|
static void setFrametime( double t );
|
||||||
|
|
||||||
|
static void freeze();
|
||||||
|
static void thaw();
|
||||||
|
|
||||||
|
static const std::string getFontset();
|
||||||
|
static void setFontSet( const std::string &fonts );
|
||||||
|
|
||||||
|
static double getScale ();
|
||||||
|
static void setScale (double scale);
|
||||||
|
|
||||||
|
static Eina_List *collection( const std::string &file ); // TODO: wrap Eina_List
|
||||||
|
static void freeCollection( Eina_List *lst ); // TODO: wrap Eina_List
|
||||||
|
|
||||||
|
static bool exitsFileGroup (const std::string &file, const std::string &glob);
|
||||||
|
|
||||||
|
static const std::string data( const std::string &file, const std::string &key );
|
||||||
|
|
||||||
|
static void setFileCache( int count );
|
||||||
|
static int getFileCache();
|
||||||
|
static void flushFileCache();
|
||||||
|
|
||||||
|
static void setCollectionCache( int count );
|
||||||
|
static int getCollectionCache();
|
||||||
|
static void flushCollectionCache();
|
||||||
|
|
||||||
|
static void setColorClass( const std::string &colorclass, const Color& object, const Color& outline, const Color& shadow );
|
||||||
|
static void delColorClass( const std::string &colorclass );
|
||||||
|
|
||||||
|
static Eina_List *listColorclass( ); // TODO: wrap Eina_List
|
||||||
|
|
||||||
|
static void setTextClass( const std::string &textclass, const std::string &font, int size );
|
||||||
|
static void delTextClass (const std::string &textclass);
|
||||||
|
|
||||||
|
static Eina_List *listTextClass (); // TODO: wrap Eina_List
|
||||||
|
|
||||||
|
/*
|
||||||
|
TODO: what do do with this functions?; what are their usage?
|
||||||
|
EAPI void edje_extern_object_min_size_set (Evas_Object *obj, Evas_Coord minw, Evas_Coord minh);
|
||||||
|
EAPI void edje_extern_object_max_size_set (Evas_Object *obj, Evas_Coord maxw, Evas_Coord maxh);
|
||||||
|
EAPI void edje_extern_object_aspect_set(Evas_Object *obj, Edje_Aspect_Control aspect, Evas_Coord aw, Evas_Coord ah);
|
||||||
|
EAPI void edje_box_layout_register(const char *name, Evas_Object_Box_Layout func, void *(*layout_data_get)(void *), void (*layout_data_free)(void *), void (*free_data)(void *), void *data);
|
||||||
|
*/
|
||||||
|
|
||||||
|
static void processSignalMessage ();
|
||||||
|
|
||||||
|
private:
|
||||||
|
EdjeBase();
|
||||||
|
EdjeBase( const EdjeBase& );
|
||||||
|
~EdjeBase();
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // EFLPP_EDJE_H
|
|
@ -0,0 +1,37 @@
|
||||||
|
#ifndef EDJEEXCEPTIONS_H
|
||||||
|
#define EDJEEXCEPTIONS_H
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
class EdjeLoadException : public std::exception
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EdjeLoadException (const std::string &filename, const std::string &groupname, int errorcode)
|
||||||
|
: mFilename (filename),
|
||||||
|
mGroupname (groupname),
|
||||||
|
mErrorcode (errorcode)
|
||||||
|
{}
|
||||||
|
|
||||||
|
const char* what () const throw ();
|
||||||
|
|
||||||
|
private:
|
||||||
|
const std::string &mFilename;
|
||||||
|
const std::string &mGroupname;
|
||||||
|
int &mErrorcode;
|
||||||
|
};
|
||||||
|
|
||||||
|
class EdjePartNotExistingException : public std::exception
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EdjePartNotExistingException (const std::string &partname) : txt (partname) {}
|
||||||
|
const char* what () const throw ();
|
||||||
|
|
||||||
|
private:
|
||||||
|
const std::string &txt;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end namespace efl
|
||||||
|
|
||||||
|
#endif // EDJEEXCEPTIONS_H
|
|
@ -0,0 +1,74 @@
|
||||||
|
#ifndef EFLPP_EDJEPART_H
|
||||||
|
#define EFLPP_EDJEPART_H
|
||||||
|
|
||||||
|
/* STL */
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
/* EFL++ */
|
||||||
|
#include <eflxx/eflpp_common.h>
|
||||||
|
#include <eflxx/CountedPtr.h>
|
||||||
|
|
||||||
|
#include <evasxx/EvasObject.h>
|
||||||
|
|
||||||
|
using std::string;
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
class EvasEdje;
|
||||||
|
|
||||||
|
class EdjePart
|
||||||
|
{
|
||||||
|
friend class EvasEdje;
|
||||||
|
|
||||||
|
private:
|
||||||
|
EdjePart( EvasEdje* parent, const std::string &partname );
|
||||||
|
|
||||||
|
public:
|
||||||
|
~EdjePart();
|
||||||
|
|
||||||
|
Rect getGeometry() const;
|
||||||
|
|
||||||
|
void setText( const std::string &text );
|
||||||
|
const std::string getText() const;
|
||||||
|
|
||||||
|
void swallow( EvasObject* );
|
||||||
|
void unswallow( EvasObject* );
|
||||||
|
|
||||||
|
CountedPtr <EvasObject> swallow();
|
||||||
|
|
||||||
|
//const EvasObject* getObject ( const char* name );
|
||||||
|
|
||||||
|
private:
|
||||||
|
EvasEdje* _parent;
|
||||||
|
const std::string &_partname;
|
||||||
|
|
||||||
|
/* State?
|
||||||
|
EAPI const char *edje_object_part_state_get (Evas_Object *obj, const char *part, double *val_ret);
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Directions?
|
||||||
|
EAPI int edje_object_part_drag_dir_get (Evas_Object *obj, const char *part);
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Drag?
|
||||||
|
EAPI void edje_object_part_drag_value_set (Evas_Object *obj, const char *part, double dx, double dy);
|
||||||
|
EAPI void edje_object_part_drag_value_get (Evas_Object *obj, const char *part, double *dx, double *dy);
|
||||||
|
EAPI void edje_object_part_drag_size_set (Evas_Object *obj, const char *part, double dw, double dh);
|
||||||
|
EAPI void edje_object_part_drag_size_get (Evas_Object *obj, const char *part, double *dw, double *dh);
|
||||||
|
EAPI void edje_object_part_drag_step_set (Evas_Object *obj, const char *part, double dx, double dy);
|
||||||
|
EAPI void edje_object_part_drag_step_get (Evas_Object *obj, const char *part, double *dx, double *dy);
|
||||||
|
EAPI void edje_object_part_drag_page_set (Evas_Object *obj, const char *part, double dx, double dy);
|
||||||
|
EAPI void edje_object_part_drag_page_get (Evas_Object *obj, const char *part, double *dx, double *dy);
|
||||||
|
EAPI void edje_object_part_drag_step (Evas_Object *obj, const char *part, double dx, double dy);
|
||||||
|
EAPI void edje_object_part_drag_page (Evas_Object *obj, const char *part, double dx, double dy);
|
||||||
|
*/
|
||||||
|
private:
|
||||||
|
EdjePart();
|
||||||
|
EdjePart( const EdjePart& );
|
||||||
|
bool operator=( const EdjePart& );
|
||||||
|
bool operator==( const EdjePart& );
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end namespace efl
|
||||||
|
|
||||||
|
#endif // EFLPP_EDJEPART_H
|
|
@ -0,0 +1,16 @@
|
||||||
|
#ifndef EDJEXX_H
|
||||||
|
#define EDJEXX_H
|
||||||
|
|
||||||
|
/* This is the main include header for Edjexx. You should include it in your
|
||||||
|
* application. you could also use a combination of some headers and forward
|
||||||
|
* declarations to speed up compiling. But the default way is to simply
|
||||||
|
* #include "Edjexx.h".
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "EdjeBase.h"
|
||||||
|
#include "EdjeExceptions.h"
|
||||||
|
#include "EdjePart.h"
|
||||||
|
#include "EvasEdje.h"
|
||||||
|
|
||||||
|
#endif // EDJEXX_H
|
||||||
|
|
|
@ -0,0 +1,107 @@
|
||||||
|
#ifndef EFLPP_EVASEDJE_H
|
||||||
|
#define EFLPP_EVASEDJE_H
|
||||||
|
|
||||||
|
/* STL */
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
/* EFL++ */
|
||||||
|
#include <eflxx/eflpp_common.h>
|
||||||
|
#include <eflxx/CountedPtr.h>
|
||||||
|
|
||||||
|
#include <evasxx/EvasObject.h>
|
||||||
|
#include <evasxx/EvasCanvas.h>
|
||||||
|
#include "EdjePart.h"
|
||||||
|
|
||||||
|
/* EFL */
|
||||||
|
#include <Edje.h>
|
||||||
|
|
||||||
|
using std::string;
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
typedef sigc::signal<void, const char*, const char*> EdjeSignalSignal;
|
||||||
|
typedef sigc::slot2<void, const char*, const char*> EdjeSignalSlot;
|
||||||
|
|
||||||
|
class EvasEdje : public EvasObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EvasEdje( EvasCanvas &canvas );
|
||||||
|
EvasEdje( EvasCanvas &canvas, const std::string &filename, const std::string &groupname );
|
||||||
|
EvasEdje( EvasCanvas &canvas, const Point &pos, const std::string &filename, const std::string &groupname );
|
||||||
|
|
||||||
|
~EvasEdje();
|
||||||
|
|
||||||
|
/*
|
||||||
|
EAPI void edje_object_signal_callback_add (Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *obj, const char *emission, const char *source), void *data);
|
||||||
|
|
||||||
|
EAPI void *edje_object_signal_callback_del (Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *obj, const char *emission, const char *source));
|
||||||
|
|
||||||
|
EAPI void edje_object_signal_emit (Evas_Object *obj, const char *emission, const char *source);
|
||||||
|
|
||||||
|
EAPI void edje_object_text_change_cb_set (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, const char *part), void *data);
|
||||||
|
|
||||||
|
EAPI void edje_object_message_send (Evas_Object *obj, Edje_Message_Type type, int id, void *msg);
|
||||||
|
|
||||||
|
EAPI void edje_object_message_handler_set (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg), void *data);
|
||||||
|
|
||||||
|
EAPI void edje_object_message_signal_process (Evas_Object *obj);
|
||||||
|
|
||||||
|
EAPI void edje_message_signal_process (void);
|
||||||
|
*/
|
||||||
|
|
||||||
|
void setFile( const std::string &filename, const std::string &partname );
|
||||||
|
|
||||||
|
void setPlaying( bool b );
|
||||||
|
bool isPlaying() const;
|
||||||
|
void setAnimated( bool b );
|
||||||
|
bool isAnimated() const;
|
||||||
|
|
||||||
|
// TODO: implement
|
||||||
|
int freeze();
|
||||||
|
int thaw();
|
||||||
|
|
||||||
|
// TODO: implement
|
||||||
|
void setColorClass( const std::string &colorclass, const Color& object, const Color& outline, const Color& shadow );
|
||||||
|
void setTextClass( const std::string &textclass, const std::string &fontname, int size );
|
||||||
|
|
||||||
|
void setMinimumSize( const Size& size );
|
||||||
|
void setMaximumSize( const Size& size );
|
||||||
|
Size getMinimalSize() const;
|
||||||
|
Size getMaximumSize() const;
|
||||||
|
|
||||||
|
// TODO: implement
|
||||||
|
void recalculateLayout();
|
||||||
|
|
||||||
|
bool hasPart( const std::string &partname ) const;
|
||||||
|
CountedPtr <EdjePart> operator[]( const std::string &partname );
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* @param partname Access a EdjePart in the EvasEdje.
|
||||||
|
* @throw EdjePartNotExistingException
|
||||||
|
*/
|
||||||
|
CountedPtr <EdjePart> getPart( const std::string &partname );
|
||||||
|
|
||||||
|
/* signals and slots */
|
||||||
|
void connect( const std::string &emission, const std::string &source, const EdjeSignalSlot& slot );
|
||||||
|
void emit( const std::string &emission, const std::string &source );
|
||||||
|
|
||||||
|
static EvasEdje *wrap( Evas_Object* o );
|
||||||
|
|
||||||
|
private:
|
||||||
|
// TODO: wrap Edje_Message_Type to avoid include of C header
|
||||||
|
static void _edje_message_handler_callback( void* data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg );
|
||||||
|
static void _edje_signal_handler_callback( void *data, Evas_Object *obj, const char *emission, const char *source );
|
||||||
|
|
||||||
|
EvasEdje();
|
||||||
|
EvasEdje( const EvasEdje& );
|
||||||
|
|
||||||
|
EvasEdje( Evas_Object* object );
|
||||||
|
|
||||||
|
bool operator=( const EvasEdje& );
|
||||||
|
bool operator==( const EvasEdje& );
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
} // end namespace efl
|
||||||
|
|
||||||
|
#endif // EFLPP_EVASEDJE_H
|
|
@ -0,0 +1,16 @@
|
||||||
|
|
||||||
|
libedjexx_HEADERS = \
|
||||||
|
EdjeBase.h \
|
||||||
|
EdjePart.h \
|
||||||
|
EvasEdje.h \
|
||||||
|
EdjeExceptions.h \
|
||||||
|
Edjexx.h
|
||||||
|
|
||||||
|
libedjexxdir = \
|
||||||
|
$(pkgincludedir)
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
$(libedjexx_HEADERS)
|
||||||
|
|
||||||
|
## File created by the gnome-build tools
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
.libs
|
||||||
|
.deps
|
||||||
|
.*swp
|
||||||
|
.nautilus-metafile.xml
|
||||||
|
*.autosave
|
||||||
|
*.bak
|
||||||
|
*~
|
||||||
|
#*#
|
||||||
|
*.gladep
|
||||||
|
*.la
|
||||||
|
*.lo
|
||||||
|
*.o
|
||||||
|
*.class
|
||||||
|
*.pyc
|
||||||
|
*.plugin
|
||||||
|
Makefile
|
||||||
|
Makefile.in
|
|
@ -0,0 +1,153 @@
|
||||||
|
#include "../include/edjexx/EdjeBase.h"
|
||||||
|
#include <eflxx/eflpp_debug_internal.h>
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <cassert>
|
||||||
|
#include <string>
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
int EdjeBase::init()
|
||||||
|
{
|
||||||
|
return edje_init ();
|
||||||
|
}
|
||||||
|
|
||||||
|
int EdjeBase::shutdown()
|
||||||
|
{
|
||||||
|
return edje_shutdown ();
|
||||||
|
}
|
||||||
|
|
||||||
|
double EdjeBase::getFrametime()
|
||||||
|
{
|
||||||
|
return edje_frametime_get ();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EdjeBase::setFrametime( double t )
|
||||||
|
{
|
||||||
|
edje_frametime_set (t);
|
||||||
|
}
|
||||||
|
|
||||||
|
void EdjeBase::freeze()
|
||||||
|
{
|
||||||
|
edje_freeze ();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EdjeBase::thaw()
|
||||||
|
{
|
||||||
|
edje_thaw ();
|
||||||
|
}
|
||||||
|
|
||||||
|
const string EdjeBase::getFontset()
|
||||||
|
{
|
||||||
|
return edje_fontset_append_get ();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EdjeBase::setFontSet( const string &fonts )
|
||||||
|
{
|
||||||
|
edje_fontset_append_set (fonts.c_str ());
|
||||||
|
}
|
||||||
|
|
||||||
|
double scale ()
|
||||||
|
{
|
||||||
|
return edje_scale_get ();
|
||||||
|
}
|
||||||
|
|
||||||
|
void setScale (double scale)
|
||||||
|
{
|
||||||
|
edje_scale_set (scale);
|
||||||
|
}
|
||||||
|
|
||||||
|
Eina_List *EdjeBase::collection( const string &file )
|
||||||
|
{
|
||||||
|
return edje_file_collection_list (file.c_str ());
|
||||||
|
}
|
||||||
|
|
||||||
|
void EdjeBase::freeCollection( Eina_List *lst )
|
||||||
|
{
|
||||||
|
edje_file_collection_list_free (lst);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool EdjeBase::exitsFileGroup (const string &file, const string &glob)
|
||||||
|
{
|
||||||
|
return edje_file_group_exists (file.c_str (), glob.c_str ());
|
||||||
|
}
|
||||||
|
|
||||||
|
const string EdjeBase::data( const string &file, const string &key )
|
||||||
|
{
|
||||||
|
return edje_file_data_get (file.c_str (), key.c_str ());
|
||||||
|
}
|
||||||
|
|
||||||
|
void EdjeBase::setFileCache( int count )
|
||||||
|
{
|
||||||
|
edje_file_cache_set (count);
|
||||||
|
}
|
||||||
|
|
||||||
|
int EdjeBase::getFileCache()
|
||||||
|
{
|
||||||
|
return edje_file_cache_get ();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EdjeBase::flushFileCache()
|
||||||
|
{
|
||||||
|
edje_file_cache_flush ();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EdjeBase::setCollectionCache( int count )
|
||||||
|
{
|
||||||
|
edje_collection_cache_set (count);
|
||||||
|
}
|
||||||
|
|
||||||
|
int EdjeBase::getCollectionCache()
|
||||||
|
{
|
||||||
|
return edje_file_cache_get ();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EdjeBase::flushCollectionCache()
|
||||||
|
{
|
||||||
|
edje_file_cache_flush ();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EdjeBase::setColorClass( const string &colorclass, const Color& object, const Color& outline, const Color& shadow )
|
||||||
|
{
|
||||||
|
edje_color_class_set (colorclass.c_str (),
|
||||||
|
object.red (), object.green (), object.blue (), object.alpha (),
|
||||||
|
outline.red (), outline.green (), outline.blue (), outline.alpha (),
|
||||||
|
shadow.red (), shadow.green (), shadow.blue (), shadow.alpha ()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void EdjeBase::delColorClass( const string &colorclass )
|
||||||
|
{
|
||||||
|
edje_color_class_del (colorclass.c_str ());
|
||||||
|
}
|
||||||
|
|
||||||
|
Eina_List *EdjeBase::listColorclass( )
|
||||||
|
{
|
||||||
|
return edje_color_class_list();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EdjeBase::setTextClass( const string &textclass, const string &font, Evas_Font_Size size )
|
||||||
|
{
|
||||||
|
edje_text_class_set (textclass.c_str (), font.c_str (), size);
|
||||||
|
}
|
||||||
|
|
||||||
|
void EdjeBase::delTextClass (const string &textclass)
|
||||||
|
{
|
||||||
|
edje_text_class_del (textclass.c_str ());
|
||||||
|
}
|
||||||
|
|
||||||
|
Eina_List *EdjeBase::listTextClass ()
|
||||||
|
{
|
||||||
|
return edje_text_class_list ();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EdjeBase::processSignalMessage ()
|
||||||
|
{
|
||||||
|
edje_message_signal_process ();
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end namespace efl
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
#include "../include/edjexx/EdjeExceptions.h"
|
||||||
|
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
const char* EdjeLoadException::what () const throw ()
|
||||||
|
{
|
||||||
|
static std::ostringstream os;
|
||||||
|
os << "EvasEdje file load error: filename: '"
|
||||||
|
<< mFilename
|
||||||
|
<< "' groupname: '"
|
||||||
|
<< mGroupname
|
||||||
|
<< "' errorcode: "
|
||||||
|
<< mErrorcode
|
||||||
|
<< ".";
|
||||||
|
return static_cast <const char*> (os.str ().c_str ());
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* EdjePartNotExistingException::what () const throw ()
|
||||||
|
{
|
||||||
|
std::ostringstream os;
|
||||||
|
os << "EvasEdje loaded with not existing part '";
|
||||||
|
os << txt.c_str (); // TODO: why is c_str() needed! -> rework Exception concept!
|
||||||
|
os << "'.";
|
||||||
|
return static_cast <const char*> (os.str ().c_str ());
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end namespace efl
|
|
@ -0,0 +1,73 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "../include/edjexx/EdjePart.h"
|
||||||
|
#include "../include/edjexx/EvasEdje.h"
|
||||||
|
|
||||||
|
/* EFL */
|
||||||
|
#include <Edje.h>
|
||||||
|
|
||||||
|
/* STD */
|
||||||
|
#include <map>
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
EdjePart::EdjePart( EvasEdje* parent, const std::string &partname )
|
||||||
|
:_parent( parent), _partname( partname )
|
||||||
|
{
|
||||||
|
Dout( dc::notice, " EdjePart::EdjePart( '" << _partname << "' ) constructing..." );
|
||||||
|
}
|
||||||
|
|
||||||
|
EdjePart::~EdjePart()
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "~EdjePart::EdjePart( '" << _partname << "' ) destructing..." );
|
||||||
|
}
|
||||||
|
|
||||||
|
Rect EdjePart::getGeometry() const
|
||||||
|
{
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
int w;
|
||||||
|
int h;
|
||||||
|
edje_object_part_geometry_get( _parent->obj(), _partname.c_str (), &x, &y, &w, &h );
|
||||||
|
return Rect( x, y, w, h );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void EdjePart::setText( const std::string &text )
|
||||||
|
{
|
||||||
|
edje_object_part_text_set( _parent->obj(), _partname.c_str (), text.c_str () );
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::string EdjePart::getText() const
|
||||||
|
{
|
||||||
|
return edje_object_part_text_get( _parent->obj(), _partname.c_str () );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void EdjePart::swallow( EvasObject* object )
|
||||||
|
{
|
||||||
|
edje_object_part_swallow( _parent->obj(), _partname.c_str (), object->obj() );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EdjePart::unswallow( EvasObject* object )
|
||||||
|
{
|
||||||
|
edje_object_part_unswallow( _parent->obj(), object->obj() );
|
||||||
|
}
|
||||||
|
|
||||||
|
CountedPtr <EvasObject> EdjePart::swallow()
|
||||||
|
{
|
||||||
|
Evas_Object *eo = edje_object_part_swallow_get( _parent->obj(), _partname.c_str () );
|
||||||
|
|
||||||
|
EvasObject *ret_o = EvasObject::wrap (eo);
|
||||||
|
|
||||||
|
return CountedPtr <EvasObject> (ret_o);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*const EvasObject* EdjePart::getObject ( const char* name )
|
||||||
|
{
|
||||||
|
return EvasObject::objectLink( edje_object_part_object_get( static_cast <const Evas_Object*> (_parent->obj()), name ) );
|
||||||
|
}*/
|
||||||
|
|
||||||
|
} // end namespace efl
|
|
@ -0,0 +1,153 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "../include/edjexx/EdjePart.h"
|
||||||
|
#include "../include/edjexx/EvasEdje.h"
|
||||||
|
#include "../include/edjexx/EdjeBase.h"
|
||||||
|
#include "../include/edjexx/EdjeExceptions.h"
|
||||||
|
|
||||||
|
/* EFL */
|
||||||
|
#include <Edje.h>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
EvasEdje::EvasEdje( EvasCanvas &canvas )
|
||||||
|
{
|
||||||
|
// Initialize the Edje library
|
||||||
|
EdjeBase::init ();
|
||||||
|
|
||||||
|
o = edje_object_add( canvas.obj() );
|
||||||
|
init();
|
||||||
|
|
||||||
|
#ifdef CWDEBUG
|
||||||
|
edje_object_message_handler_set( o, &_edje_message_handler_callback, 0 );
|
||||||
|
edje_object_signal_callback_add( o, "*", "*", &_edje_signal_handler_callback, 0 );
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
EvasEdje::EvasEdje( EvasCanvas &canvas, const std::string &filename, const std::string &groupname )
|
||||||
|
{
|
||||||
|
// Initialize the Edje library
|
||||||
|
EdjeBase::init ();
|
||||||
|
|
||||||
|
o = edje_object_add( canvas.obj() );
|
||||||
|
init();
|
||||||
|
|
||||||
|
#ifdef CWDEBUG
|
||||||
|
edje_object_message_handler_set( o, &_edje_message_handler_callback, 0 );
|
||||||
|
edje_object_signal_callback_add( o, "*", "*", &_edje_signal_handler_callback, 0 );
|
||||||
|
#endif
|
||||||
|
setFile( filename, groupname );
|
||||||
|
}
|
||||||
|
|
||||||
|
EvasEdje::EvasEdje( EvasCanvas &canvas, const Point &pos, const std::string &filename, const std::string &groupname )
|
||||||
|
{
|
||||||
|
// Initialize the Edje library
|
||||||
|
EdjeBase::init ();
|
||||||
|
|
||||||
|
o = edje_object_add( canvas.obj() );
|
||||||
|
init();
|
||||||
|
|
||||||
|
#ifdef CWDEBUG
|
||||||
|
edje_object_message_handler_set( o, &_edje_message_handler_callback, 0 );
|
||||||
|
edje_object_signal_callback_add( o, "*", "*", &_edje_signal_handler_callback, 0 );
|
||||||
|
#endif
|
||||||
|
setFile( filename, groupname );
|
||||||
|
move (pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
EvasEdje::EvasEdje( Evas_Object* object)
|
||||||
|
{
|
||||||
|
o = object;
|
||||||
|
mFree = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
EvasEdje::~EvasEdje()
|
||||||
|
{
|
||||||
|
//FIXME: Remove callbacks?
|
||||||
|
evas_object_del( o );
|
||||||
|
|
||||||
|
// Shut down the Edje library (if internal count is zero)
|
||||||
|
EdjeBase::shutdown ();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EvasEdje::setFile( const std::string &filename, const std::string &groupname )
|
||||||
|
{
|
||||||
|
if (!edje_object_file_set( o, filename.c_str (), groupname.c_str () ))
|
||||||
|
{
|
||||||
|
throw EdjeLoadException (filename, groupname, edje_object_load_error_get(o));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Size EvasEdje::getMinimalSize() const
|
||||||
|
{
|
||||||
|
int w, h;
|
||||||
|
edje_object_size_min_get( o, &w, &h );
|
||||||
|
Dout( dc::notice, "size min get seems to be " << w << " x " << h );
|
||||||
|
return Size( w, h );
|
||||||
|
}
|
||||||
|
|
||||||
|
Size EvasEdje::getMaximumSize() const
|
||||||
|
{
|
||||||
|
int w, h;
|
||||||
|
edje_object_size_max_get( o, &w, &h );
|
||||||
|
Dout( dc::notice, "size max get seems to be " << w << " x " << h );
|
||||||
|
return Size( w, h );
|
||||||
|
}
|
||||||
|
|
||||||
|
bool EvasEdje::hasPart( const std::string &partname ) const
|
||||||
|
{
|
||||||
|
return edje_object_part_exists( o, partname.c_str () );
|
||||||
|
}
|
||||||
|
|
||||||
|
CountedPtr <EdjePart> EvasEdje::operator[]( const std::string &partname )
|
||||||
|
{
|
||||||
|
return getPart( partname );
|
||||||
|
}
|
||||||
|
|
||||||
|
CountedPtr <EdjePart> EvasEdje::getPart( const std::string &partname )
|
||||||
|
{
|
||||||
|
if ( hasPart( partname ) )
|
||||||
|
{
|
||||||
|
EdjePart* ep = new EdjePart( this, partname );
|
||||||
|
return CountedPtr <EdjePart> (ep);
|
||||||
|
}
|
||||||
|
throw EdjePartNotExistingException (partname);
|
||||||
|
}
|
||||||
|
|
||||||
|
void EvasEdje::connect( const std::string &emission, const std::string &source, const EdjeSignalSlot& slot )
|
||||||
|
{
|
||||||
|
EdjeSignalSignal* signal = new EdjeSignalSignal();
|
||||||
|
AllocTag( signal, emission );
|
||||||
|
signal->connect( slot );
|
||||||
|
edje_object_signal_callback_add( o, emission.c_str (), source.c_str (), &_edje_signal_handler_callback, static_cast<void*>( signal ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EvasEdje::emit( const std::string &emission, const std::string &source )
|
||||||
|
{
|
||||||
|
edje_object_signal_emit( o, emission.c_str (), source.c_str () );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EvasEdje::_edje_message_handler_callback( void* data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg )
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EvasEdje::_edje_message_handler_callback()" );
|
||||||
|
//EvasEdje* instance = reinterpret_cast<EvasEdje*>( data );
|
||||||
|
}
|
||||||
|
|
||||||
|
void EvasEdje::_edje_signal_handler_callback( void *data, Evas_Object *obj, const char *emission, const char *source )
|
||||||
|
{
|
||||||
|
Dout( dc::notice, "EvasEdje::_edje_signal_handler_callback( " << (emission ? emission:"<null>") << ", " << (source ? source:"<null>") << " ) " );
|
||||||
|
EdjeSignalSignal* signal = reinterpret_cast<EdjeSignalSignal*>( data );
|
||||||
|
if ( signal ) signal->emit( emission, source );
|
||||||
|
else Dout( dc::warning, "EvasEdje::_edje_signal_handler_callback() - got callback without valid signal" );
|
||||||
|
}
|
||||||
|
|
||||||
|
EvasEdje* EvasEdje::wrap( Evas_Object* o )
|
||||||
|
{
|
||||||
|
return new EvasEdje( o );
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end namespace efl
|
|
@ -0,0 +1,26 @@
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
## Created by Anjuta
|
||||||
|
|
||||||
|
AM_CPPFLAGS = \
|
||||||
|
-DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
|
||||||
|
-DPACKAGE_SRC_DIR=\""$(srcdir)"\" \
|
||||||
|
-DPACKAGE_DATA_DIR=\""$(datadir)"\" \
|
||||||
|
$(EFL_CFLAGS)
|
||||||
|
|
||||||
|
AM_CFLAGS =\
|
||||||
|
-Wall\
|
||||||
|
-g
|
||||||
|
|
||||||
|
lib_LTLIBRARIES = \
|
||||||
|
libedjexx.la
|
||||||
|
|
||||||
|
libedjexx_la_SOURCES = \
|
||||||
|
EdjeBase.cpp \
|
||||||
|
EdjePart.cpp \
|
||||||
|
EvasEdje.cpp \
|
||||||
|
EdjeExceptions.cpp
|
||||||
|
|
||||||
|
libedjexx_la_LIBADD = \
|
||||||
|
$(EFL_LIBS)
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
.anjuta
|
||||||
|
.tm_project*
|
||||||
|
.libs
|
||||||
|
.deps
|
||||||
|
.*swp
|
||||||
|
.nautilus-metafile.xml
|
||||||
|
*.autosave
|
||||||
|
*.pws
|
||||||
|
*.bak
|
||||||
|
*~
|
||||||
|
#*#
|
||||||
|
*.gladep
|
||||||
|
*.la
|
||||||
|
*.lo
|
||||||
|
*.o
|
||||||
|
*.class
|
||||||
|
*.pyc
|
||||||
|
aclocal.m4
|
||||||
|
autom4te.cache
|
||||||
|
config.h
|
||||||
|
config.h.in
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
configure
|
||||||
|
intltool-extract*
|
||||||
|
intltool-merge*
|
||||||
|
intltool-modules*
|
||||||
|
intltool-update*
|
||||||
|
libtool
|
||||||
|
prepare.sh
|
||||||
|
stamp-h*
|
||||||
|
ltmain.sh
|
||||||
|
mkinstalldirs
|
||||||
|
config.guess
|
||||||
|
config.sub
|
||||||
|
Makefile
|
||||||
|
Makefile.in
|
|
@ -0,0 +1,2 @@
|
||||||
|
Jonathan Muller <jonathan.muller@drylm.org>
|
||||||
|
Andreas Volz <andreas.volz@tux-style.com>
|
|
@ -0,0 +1,166 @@
|
||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
|
||||||
|
This version of the GNU Lesser General Public License incorporates
|
||||||
|
the terms and conditions of version 3 of the GNU General Public
|
||||||
|
License, supplemented by the additional permissions listed below.
|
||||||
|
|
||||||
|
0. Additional Definitions.
|
||||||
|
|
||||||
|
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||||
|
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||||
|
General Public License.
|
||||||
|
|
||||||
|
"The Library" refers to a covered work governed by this License,
|
||||||
|
other than an Application or a Combined Work as defined below.
|
||||||
|
|
||||||
|
An "Application" is any work that makes use of an interface provided
|
||||||
|
by the Library, but which is not otherwise based on the Library.
|
||||||
|
Defining a subclass of a class defined by the Library is deemed a mode
|
||||||
|
of using an interface provided by the Library.
|
||||||
|
|
||||||
|
A "Combined Work" is a work produced by combining or linking an
|
||||||
|
Application with the Library. The particular version of the Library
|
||||||
|
with which the Combined Work was made is also called the "Linked
|
||||||
|
Version".
|
||||||
|
|
||||||
|
The "Minimal Corresponding Source" for a Combined Work means the
|
||||||
|
Corresponding Source for the Combined Work, excluding any source code
|
||||||
|
for portions of the Combined Work that, considered in isolation, are
|
||||||
|
based on the Application, and not on the Linked Version.
|
||||||
|
|
||||||
|
The "Corresponding Application Code" for a Combined Work means the
|
||||||
|
object code and/or source code for the Application, including any data
|
||||||
|
and utility programs needed for reproducing the Combined Work from the
|
||||||
|
Application, but excluding the System Libraries of the Combined Work.
|
||||||
|
|
||||||
|
1. Exception to Section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
You may convey a covered work under sections 3 and 4 of this License
|
||||||
|
without being bound by section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
2. Conveying Modified Versions.
|
||||||
|
|
||||||
|
If you modify a copy of the Library, and, in your modifications, a
|
||||||
|
facility refers to a function or data to be supplied by an Application
|
||||||
|
that uses the facility (other than as an argument passed when the
|
||||||
|
facility is invoked), then you may convey a copy of the modified
|
||||||
|
version:
|
||||||
|
|
||||||
|
a) under this License, provided that you make a good faith effort to
|
||||||
|
ensure that, in the event an Application does not supply the
|
||||||
|
function or data, the facility still operates, and performs
|
||||||
|
whatever part of its purpose remains meaningful, or
|
||||||
|
|
||||||
|
b) under the GNU GPL, with none of the additional permissions of
|
||||||
|
this License applicable to that copy.
|
||||||
|
|
||||||
|
3. Object Code Incorporating Material from Library Header Files.
|
||||||
|
|
||||||
|
The object code form of an Application may incorporate material from
|
||||||
|
a header file that is part of the Library. You may convey such object
|
||||||
|
code under terms of your choice, provided that, if the incorporated
|
||||||
|
material is not limited to numerical parameters, data structure
|
||||||
|
layouts and accessors, or small macros, inline functions and templates
|
||||||
|
(ten or fewer lines in length), you do both of the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the object code that the
|
||||||
|
Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
4. Combined Works.
|
||||||
|
|
||||||
|
You may convey a Combined Work under terms of your choice that,
|
||||||
|
taken together, effectively do not restrict modification of the
|
||||||
|
portions of the Library contained in the Combined Work and reverse
|
||||||
|
engineering for debugging such modifications, if you also do each of
|
||||||
|
the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the Combined Work that
|
||||||
|
the Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
c) For a Combined Work that displays copyright notices during
|
||||||
|
execution, include the copyright notice for the Library among
|
||||||
|
these notices, as well as a reference directing the user to the
|
||||||
|
copies of the GNU GPL and this license document.
|
||||||
|
|
||||||
|
d) Do one of the following:
|
||||||
|
|
||||||
|
0) Convey the Minimal Corresponding Source under the terms of this
|
||||||
|
License, and the Corresponding Application Code in a form
|
||||||
|
suitable for, and under terms that permit, the user to
|
||||||
|
recombine or relink the Application with a modified version of
|
||||||
|
the Linked Version to produce a modified Combined Work, in the
|
||||||
|
manner specified by section 6 of the GNU GPL for conveying
|
||||||
|
Corresponding Source.
|
||||||
|
|
||||||
|
1) Use a suitable shared library mechanism for linking with the
|
||||||
|
Library. A suitable mechanism is one that (a) uses at run time
|
||||||
|
a copy of the Library already present on the user's computer
|
||||||
|
system, and (b) will operate properly with a modified version
|
||||||
|
of the Library that is interface-compatible with the Linked
|
||||||
|
Version.
|
||||||
|
|
||||||
|
e) Provide Installation Information, but only if you would otherwise
|
||||||
|
be required to provide such information under section 6 of the
|
||||||
|
GNU GPL, and only to the extent that such information is
|
||||||
|
necessary to install and execute a modified version of the
|
||||||
|
Combined Work produced by recombining or relinking the
|
||||||
|
Application with a modified version of the Linked Version. (If
|
||||||
|
you use option 4d0, the Installation Information must accompany
|
||||||
|
the Minimal Corresponding Source and Corresponding Application
|
||||||
|
Code. If you use option 4d1, you must provide the Installation
|
||||||
|
Information in the manner specified by section 6 of the GNU GPL
|
||||||
|
for conveying Corresponding Source.)
|
||||||
|
|
||||||
|
5. Combined Libraries.
|
||||||
|
|
||||||
|
You may place library facilities that are a work based on the
|
||||||
|
Library side by side in a single library together with other library
|
||||||
|
facilities that are not Applications and are not covered by this
|
||||||
|
License, and convey such a combined library under terms of your
|
||||||
|
choice, if you do both of the following:
|
||||||
|
|
||||||
|
a) Accompany the combined library with a copy of the same work based
|
||||||
|
on the Library, uncombined with any other library facilities,
|
||||||
|
conveyed under the terms of this License.
|
||||||
|
|
||||||
|
b) Give prominent notice with the combined library that part of it
|
||||||
|
is a work based on the Library, and explaining where to find the
|
||||||
|
accompanying uncombined form of the same work.
|
||||||
|
|
||||||
|
6. Revised Versions of the GNU Lesser General Public License.
|
||||||
|
|
||||||
|
The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the GNU Lesser General Public License from time to time. Such new
|
||||||
|
versions will be similar in spirit to the present version, but may
|
||||||
|
differ in detail to address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the
|
||||||
|
Library as you received it specifies that a certain numbered version
|
||||||
|
of the GNU Lesser General Public License "or any later version"
|
||||||
|
applies to it, you have the option of following the terms and
|
||||||
|
conditions either of that published version or of any later version
|
||||||
|
published by the Free Software Foundation. If the Library as you
|
||||||
|
received it does not specify a version number of the GNU Lesser
|
||||||
|
General Public License, you may choose any version of the GNU Lesser
|
||||||
|
General Public License ever published by the Free Software Foundation.
|
||||||
|
|
||||||
|
If the Library as you received it specifies that a proxy can decide
|
||||||
|
whether future versions of the GNU Lesser General Public License shall
|
||||||
|
apply, that proxy's public statement of acceptance of any version is
|
||||||
|
permanent authorization for you to choose that version for the
|
||||||
|
Library.
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
|
@ -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' will install the package's files in
|
||||||
|
`/usr/local/bin', `/usr/local/man', 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
|
||||||
|
give `configure' the option `--exec-prefix=PREFIX', the package will
|
||||||
|
use PREFIX as the prefix for installing programs and libraries.
|
||||||
|
Documentation and other data files will 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 `--target=TYPE' option 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.
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
## Created by Anjuta
|
||||||
|
|
||||||
|
SUBDIRS = src \
|
||||||
|
include
|
||||||
|
|
||||||
|
eetxxdocdir = ${prefix}/doc/eetxx
|
||||||
|
eetxxdoc_DATA = \
|
||||||
|
README\
|
||||||
|
COPYING\
|
||||||
|
AUTHORS\
|
||||||
|
ChangeLog\
|
||||||
|
INSTALL\
|
||||||
|
NEWS
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST = $(eetxxdoc_DATA)
|
||||||
|
|
||||||
|
|
||||||
|
# Remove doc directory on uninstall
|
||||||
|
uninstall-local:
|
||||||
|
-rm -r $(eetxxdocdir)
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<gtodo>
|
||||||
|
<category title="Persönlich" place="0"/>
|
||||||
|
<category title="Geschäftlich" place="1"/>
|
||||||
|
<category title="Nicht einsortiert" place="2"/>
|
||||||
|
</gtodo>
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
./bootstrap && ./configure $@
|
|
@ -0,0 +1,73 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# Run this to bootstrap the files
|
||||||
|
|
||||||
|
srcdir=`dirname $0`
|
||||||
|
test -z "$srcdir" && srcdir=.
|
||||||
|
|
||||||
|
DIE=0
|
||||||
|
|
||||||
|
# check if configure.ac is there
|
||||||
|
(test -f $srcdir/configure.ac) || {
|
||||||
|
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
|
||||||
|
echo " top-level package directory"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# check for autoconf
|
||||||
|
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: You must have \`autoconf' installed."
|
||||||
|
echo "Download the appropriate package for your distribution,"
|
||||||
|
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
|
||||||
|
DIE=1
|
||||||
|
}
|
||||||
|
|
||||||
|
# check for libtool
|
||||||
|
(libtool --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: You must have \`libtool' installed."
|
||||||
|
echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
|
||||||
|
DIE=1
|
||||||
|
}
|
||||||
|
|
||||||
|
# check for automake
|
||||||
|
(automake --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: You must have \`automake' installed."
|
||||||
|
echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
|
||||||
|
DIE=1
|
||||||
|
NO_AUTOMAKE=yes
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# if no automake, don't bother testing for aclocal
|
||||||
|
test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: Missing \`aclocal'. The version of \`automake'"
|
||||||
|
echo "installed doesn't appear recent enough."
|
||||||
|
echo "You can get automake from ftp://ftp.gnu.org/pub/gnu/"
|
||||||
|
DIE=1
|
||||||
|
}
|
||||||
|
|
||||||
|
if test "$DIE" -eq 1; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Running libtoolize..."
|
||||||
|
libtoolize --force --copy
|
||||||
|
|
||||||
|
aclocalinclude="$ACLOCAL_FLAGS -I m4"
|
||||||
|
echo "Running aclocal $aclocalinclude ..."
|
||||||
|
aclocal $aclocalinclude
|
||||||
|
|
||||||
|
echo "Running autoheader..."
|
||||||
|
autoheader
|
||||||
|
|
||||||
|
echo "Running automake..."
|
||||||
|
automake --add-missing --foreign $am_opt
|
||||||
|
|
||||||
|
echo "Running autoconf ..."
|
||||||
|
autoconf
|
||||||
|
|
||||||
|
echo "You could now exec ./configure --help to see available options"
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
dnl Created by Anjuta application wizard.
|
||||||
|
|
||||||
|
AC_INIT(eetxx, 0.1)
|
||||||
|
|
||||||
|
AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
|
||||||
|
AC_CONFIG_HEADERS([config.h])
|
||||||
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
|
AC_ISC_POSIX
|
||||||
|
AC_PROG_CXX
|
||||||
|
AM_PROG_CC_STDC
|
||||||
|
AC_HEADER_STDC
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
AM_PROG_LIBTOOL
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PKG_CHECK_MODULES(EFL, eet)
|
||||||
|
AC_OUTPUT([
|
||||||
|
eetxx.pc
|
||||||
|
eetxx-uninstalled.pc
|
||||||
|
Makefile
|
||||||
|
include/Makefile
|
||||||
|
include/eetxx/Makefile
|
||||||
|
src/Makefile
|
||||||
|
|
||||||
|
])
|
|
@ -0,0 +1,12 @@
|
||||||
|
prefix=
|
||||||
|
exec_prefix=
|
||||||
|
libdir=src
|
||||||
|
includedir=include
|
||||||
|
|
||||||
|
Name: @PACKAGE@
|
||||||
|
Description: Eet (EFL) C++ Wrapper, Not installed
|
||||||
|
Version: @VERSION@
|
||||||
|
Requires: eet
|
||||||
|
Conflicts:
|
||||||
|
Libs: ${pcfiledir}/${libdir}/libeetxx.la
|
||||||
|
Cflags: -I${pcfiledir}/${includedir}
|
|
@ -0,0 +1,44 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<anjuta>
|
||||||
|
<plugin name="GBF Project Manager"
|
||||||
|
url="http://anjuta.org/plugins/"
|
||||||
|
mandatory="yes">
|
||||||
|
<require group="Anjuta Plugin"
|
||||||
|
attribute="Interfaces"
|
||||||
|
value="IAnjutaProjectManager"/>
|
||||||
|
<require group="Project"
|
||||||
|
attribute="Supported-Project-Types"
|
||||||
|
value="automake"/>
|
||||||
|
</plugin>
|
||||||
|
<plugin name="Symbol Browser"
|
||||||
|
url="http://anjuta.org/plugins/"
|
||||||
|
mandatory="yes">
|
||||||
|
<require group="Anjuta Plugin"
|
||||||
|
attribute="Interfaces"
|
||||||
|
value="IAnjutaSymbolManager"/>
|
||||||
|
</plugin>
|
||||||
|
<plugin name="Make Build System"
|
||||||
|
url="http://anjuta.org/plugins/"
|
||||||
|
mandatory="yes">
|
||||||
|
<require group="Anjuta Plugin"
|
||||||
|
attribute="Interfaces"
|
||||||
|
value="IAnjutaBuildable"/>
|
||||||
|
<require group="Build"
|
||||||
|
attribute="Supported-Build-Types"
|
||||||
|
value="make"/>
|
||||||
|
</plugin>
|
||||||
|
<plugin name="Task Manager"
|
||||||
|
url="http://anjuta.org/plugins/"
|
||||||
|
mandatory="no">
|
||||||
|
<require group="Anjuta Plugin"
|
||||||
|
attribute="Interfaces"
|
||||||
|
value="IAnjutaTodo"/>
|
||||||
|
</plugin>
|
||||||
|
<plugin name="Debug Manager"
|
||||||
|
url="http://anjuta.org/plugins/"
|
||||||
|
mandatory="no">
|
||||||
|
<require group="Anjuta Plugin"
|
||||||
|
attribute="Interfaces"
|
||||||
|
value="IAnjutaDebugManager"/>
|
||||||
|
</plugin>
|
||||||
|
</anjuta>
|
|
@ -0,0 +1,13 @@
|
||||||
|
prefix=@prefix@
|
||||||
|
exec_prefix=@prefix@
|
||||||
|
libdir=@exec_prefix@/lib
|
||||||
|
includedir=@prefix@/include
|
||||||
|
|
||||||
|
Name: @PACKAGE@
|
||||||
|
Description: Eet (EFL) C++ Wrapper
|
||||||
|
Version: @VERSION@
|
||||||
|
Requires: eet
|
||||||
|
Conflicts:
|
||||||
|
Libs: -L${libdir} -leetxx
|
||||||
|
Cflags: -I${includedir}
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
|
||||||
|
SUBDIRS = \
|
||||||
|
eetxx
|
||||||
|
|
||||||
|
## File created by the gnome-build tools
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
#ifndef CHUNK_ITERATOR_H
|
||||||
|
#define CHUNK_ITERATOR_H
|
||||||
|
|
||||||
|
/* EFLxx includes */
|
||||||
|
#include "EetChunk.h"
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
/* forward declarations */
|
||||||
|
class EetDocument;
|
||||||
|
|
||||||
|
class ChunkIterator :
|
||||||
|
public std::iterator<std::forward_iterator_tag, char *, void>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ChunkIterator (char **chunk, EetDocument &doc);
|
||||||
|
|
||||||
|
EetChunk operator * () const throw ();
|
||||||
|
|
||||||
|
bool operator == (const ChunkIterator &i);
|
||||||
|
|
||||||
|
bool operator != (const ChunkIterator &i);
|
||||||
|
|
||||||
|
ChunkIterator &operator ++ () throw ();
|
||||||
|
|
||||||
|
ChunkIterator operator ++ (int) throw ();
|
||||||
|
|
||||||
|
private:
|
||||||
|
ChunkIterator ();
|
||||||
|
char **the_chunk;
|
||||||
|
EetDocument &_doc;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end namespace efl
|
||||||
|
|
||||||
|
#endif // CHUNK_ITERATOR_H
|
|
@ -0,0 +1,40 @@
|
||||||
|
#ifndef DATA_INFORMATION_H
|
||||||
|
#define DATA_INFORMATION_H
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
template <typename _Ty>
|
||||||
|
class DataInformation
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
DataInformation (_Ty data,
|
||||||
|
bool compress = false,
|
||||||
|
unsigned int size = sizeof (_Ty) )
|
||||||
|
: _data (data),
|
||||||
|
_compress (compress),
|
||||||
|
_size (size)
|
||||||
|
{}
|
||||||
|
|
||||||
|
_Ty _data;
|
||||||
|
bool _compress;
|
||||||
|
unsigned int _size;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Helper function to avoid explicit template instantiation by the user */
|
||||||
|
template<typename _Ty>
|
||||||
|
DataInformation<_Ty>
|
||||||
|
make_data (_Ty data, bool compress = false, unsigned int size = sizeof (_Ty))
|
||||||
|
{
|
||||||
|
return DataInformation<_Ty> (data, compress, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename _Ty>
|
||||||
|
DataInformation<_Ty *>
|
||||||
|
make_data (_Ty *data, bool compress = false, unsigned int size = sizeof (_Ty))
|
||||||
|
{
|
||||||
|
return DataInformation<_Ty *> (data, compress, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace efl
|
||||||
|
|
||||||
|
#endif // DATA_INFORMATION_H
|
|
@ -0,0 +1,75 @@
|
||||||
|
#ifndef EETCHUNK_H
|
||||||
|
#define EETCHUNK_H
|
||||||
|
|
||||||
|
//! Eet includes
|
||||||
|
#include <Eet.h>
|
||||||
|
|
||||||
|
//! STL includes
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
//! EFLxx includes
|
||||||
|
#include "DataInformation.h"
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
/* forward declarations */
|
||||||
|
class EetDocument;
|
||||||
|
|
||||||
|
class EetChunk
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
typedef void* ptr_type;
|
||||||
|
typedef const ptr_type const_ptr_type;
|
||||||
|
|
||||||
|
EetChunk (Eet_File *ef, const std::string &key_name);
|
||||||
|
|
||||||
|
~EetChunk ();
|
||||||
|
|
||||||
|
ptr_type get () const;
|
||||||
|
|
||||||
|
std::string get_key () const;
|
||||||
|
|
||||||
|
template <typename _Ty>
|
||||||
|
EetChunk &
|
||||||
|
operator = (const _Ty& raw_data)
|
||||||
|
{
|
||||||
|
DataInformation<_Ty> data_to_store = make_data (raw_data);
|
||||||
|
operator = (data_to_store);
|
||||||
|
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename _Ty>
|
||||||
|
EetChunk&
|
||||||
|
operator = (const DataInformation<_Ty>& data_to_store)
|
||||||
|
{
|
||||||
|
eet_write (_ef,
|
||||||
|
_key_name.c_str (),
|
||||||
|
&data_to_store._data,
|
||||||
|
data_to_store._size,
|
||||||
|
data_to_store._compress);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename _Ty>
|
||||||
|
EetChunk&
|
||||||
|
operator = (const DataInformation<_Ty *>& data_to_store)
|
||||||
|
{
|
||||||
|
eet_write (_ef,
|
||||||
|
_key_name.c_str (),
|
||||||
|
data_to_store._data,
|
||||||
|
data_to_store._size,
|
||||||
|
data_to_store._compress);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
Eet_File *_ef;
|
||||||
|
std::string _key_name;
|
||||||
|
int _size;
|
||||||
|
ptr_type _data;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end namespace efl
|
||||||
|
|
||||||
|
#endif // EETCHUNK_H
|
|
@ -0,0 +1,42 @@
|
||||||
|
#ifndef EET_DOCUMENT_H
|
||||||
|
#define EET_DOCUMENT_H
|
||||||
|
|
||||||
|
//! Eet includes
|
||||||
|
#include <Eet.h>
|
||||||
|
|
||||||
|
//! STL includes
|
||||||
|
#include <iterator>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* C++ Wrapper for the Enlightenment EET
|
||||||
|
*
|
||||||
|
* @author Jonathan Muller <jonathan.muller@drylm.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
class EetDocument
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EetDocument (const std::string &file_name, Eet_File_Mode mode):
|
||||||
|
_ef (eet_open (file_name.c_str (), mode))
|
||||||
|
{}
|
||||||
|
|
||||||
|
~EetDocument () { /*eet_close (_ef);*/ }
|
||||||
|
|
||||||
|
static void init ();
|
||||||
|
|
||||||
|
void close ();
|
||||||
|
|
||||||
|
Eet_File_Mode mode ();
|
||||||
|
|
||||||
|
Eet_File *get ();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Eet_File *_ef;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end namespace efl
|
||||||
|
|
||||||
|
#endif //EET_DOCUMENT_H
|
|
@ -0,0 +1,36 @@
|
||||||
|
#ifndef EET_LIST_H
|
||||||
|
#define EET_LIST_H
|
||||||
|
|
||||||
|
/* includes */
|
||||||
|
#include "EetChunk.h"
|
||||||
|
#include "ChunkIterator.h"
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
/* forward declarations */
|
||||||
|
class EetDocument;
|
||||||
|
|
||||||
|
class EetList
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EetList (EetDocument& doc, const std::string &filter = "*" );
|
||||||
|
|
||||||
|
~EetList ();
|
||||||
|
|
||||||
|
ChunkIterator begin ();
|
||||||
|
|
||||||
|
ChunkIterator end ();
|
||||||
|
|
||||||
|
const EetChunk operator [] (const std::string &key_name) const;
|
||||||
|
|
||||||
|
EetChunk operator [] (const std::string &key_name);
|
||||||
|
|
||||||
|
private:
|
||||||
|
EetDocument &_doc;
|
||||||
|
char **_list;
|
||||||
|
int _nb_elems;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace efl
|
||||||
|
|
||||||
|
#endif // EET_LIST_H
|
|
@ -0,0 +1,16 @@
|
||||||
|
#ifndef EETXX_H
|
||||||
|
#define EETXX_H
|
||||||
|
|
||||||
|
/* This is the main include header for Eetxx. You should include it in your
|
||||||
|
* application. you could also use a combination of some headers and forward
|
||||||
|
* declarations to speed up compiling. But the default way is to simply
|
||||||
|
* #include "Eetxx.h".
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ChunkIterator.h"
|
||||||
|
#include "DataInformation.h"
|
||||||
|
#include "EetChunk.h"
|
||||||
|
#include "EetDocument.h"
|
||||||
|
#include "EetList.h"
|
||||||
|
|
||||||
|
#endif // EETXX_H
|
|
@ -0,0 +1,17 @@
|
||||||
|
|
||||||
|
libeetxx_HEADERS = \
|
||||||
|
EetDocument.h\
|
||||||
|
DataInformation.h \
|
||||||
|
EetChunk.h \
|
||||||
|
EetList.h \
|
||||||
|
ChunkIterator.h \
|
||||||
|
Eetxx.h
|
||||||
|
|
||||||
|
libeetxxdir = \
|
||||||
|
$(pkgincludedir)
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
$(libeetxx_HEADERS)
|
||||||
|
|
||||||
|
## File created by the gnome-build tools
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
.libs
|
||||||
|
.deps
|
||||||
|
.*swp
|
||||||
|
.nautilus-metafile.xml
|
||||||
|
*.autosave
|
||||||
|
*.bak
|
||||||
|
*~
|
||||||
|
#*#
|
||||||
|
*.gladep
|
||||||
|
*.la
|
||||||
|
*.lo
|
||||||
|
*.o
|
||||||
|
*.class
|
||||||
|
*.pyc
|
||||||
|
*.plugin
|
||||||
|
Makefile
|
||||||
|
Makefile.in
|
|
@ -0,0 +1,43 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "../include/eetxx/ChunkIterator.h"
|
||||||
|
#include "../include/eetxx/EetDocument.h"
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
ChunkIterator::ChunkIterator (char **chunk, EetDocument &doc)
|
||||||
|
: the_chunk (chunk),
|
||||||
|
_doc(doc)
|
||||||
|
{}
|
||||||
|
|
||||||
|
EetChunk ChunkIterator::operator * () const throw ()
|
||||||
|
{
|
||||||
|
return EetChunk (_doc.get (), *the_chunk);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ChunkIterator::operator == (const ChunkIterator &i)
|
||||||
|
{
|
||||||
|
return the_chunk == i.the_chunk;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ChunkIterator::operator != (const ChunkIterator &i)
|
||||||
|
{
|
||||||
|
return the_chunk != i.the_chunk;
|
||||||
|
}
|
||||||
|
|
||||||
|
ChunkIterator &ChunkIterator::operator ++ () throw ()
|
||||||
|
{
|
||||||
|
the_chunk = &the_chunk[1];
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
ChunkIterator ChunkIterator::operator ++ (int) throw ()
|
||||||
|
{
|
||||||
|
ChunkIterator tem (the_chunk, _doc);
|
||||||
|
++ *this;
|
||||||
|
return tem;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end namespace efl
|
|
@ -0,0 +1,33 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "../include/eetxx/EetChunk.h"
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
EetChunk::EetChunk (Eet_File *ef, const std::string &key_name)
|
||||||
|
: _ef (ef),
|
||||||
|
_key_name (key_name),
|
||||||
|
_size (0),
|
||||||
|
_data (eet_read (_ef, key_name.c_str (), &_size))
|
||||||
|
{ }
|
||||||
|
|
||||||
|
EetChunk::~EetChunk ()
|
||||||
|
{
|
||||||
|
_ef = 0;
|
||||||
|
//free (_data);
|
||||||
|
_data = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
EetChunk::ptr_type EetChunk::get () const
|
||||||
|
{
|
||||||
|
return _data;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string EetChunk::get_key () const
|
||||||
|
{
|
||||||
|
return _key_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end namespace efl
|
|
@ -0,0 +1,29 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "../include/eetxx/EetDocument.h"
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
void EetDocument::init ()
|
||||||
|
{
|
||||||
|
eet_init ();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EetDocument::close ()
|
||||||
|
{
|
||||||
|
eet_close (_ef);
|
||||||
|
}
|
||||||
|
|
||||||
|
Eet_File_Mode EetDocument::mode ()
|
||||||
|
{
|
||||||
|
return eet_mode_get (_ef);
|
||||||
|
}
|
||||||
|
|
||||||
|
Eet_File *EetDocument::get ()
|
||||||
|
{
|
||||||
|
return _ef;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end namespace efl
|
|
@ -0,0 +1,43 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "../include/eetxx/EetList.h"
|
||||||
|
#include "../include/eetxx/EetDocument.h"
|
||||||
|
|
||||||
|
namespace efl {
|
||||||
|
|
||||||
|
EetList::EetList (EetDocument& doc, const std::string &filter)
|
||||||
|
: _doc (doc),
|
||||||
|
_list (0),
|
||||||
|
_nb_elems (0)
|
||||||
|
{
|
||||||
|
_list = eet_list (_doc.get (), filter.c_str (), &_nb_elems);
|
||||||
|
}
|
||||||
|
|
||||||
|
EetList::~EetList ()
|
||||||
|
{
|
||||||
|
free(_list);
|
||||||
|
}
|
||||||
|
|
||||||
|
ChunkIterator EetList::begin ()
|
||||||
|
{
|
||||||
|
return ChunkIterator(&_list[0], _doc);
|
||||||
|
}
|
||||||
|
|
||||||
|
ChunkIterator EetList::end ()
|
||||||
|
{
|
||||||
|
return ChunkIterator(&_list[_nb_elems], _doc);
|
||||||
|
}
|
||||||
|
|
||||||
|
const EetChunk EetList::operator [] (const std::string &key_name) const
|
||||||
|
{
|
||||||
|
return EetChunk (_doc.get (), key_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
EetChunk EetList::operator [] (const std::string &key_name)
|
||||||
|
{
|
||||||
|
return EetChunk (_doc.get (), key_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end namespace efl
|
|
@ -0,0 +1,26 @@
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
## Created by Anjuta
|
||||||
|
|
||||||
|
AM_CPPFLAGS = \
|
||||||
|
-DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
|
||||||
|
-DPACKAGE_SRC_DIR=\""$(srcdir)"\" \
|
||||||
|
-DPACKAGE_DATA_DIR=\""$(datadir)"\" \
|
||||||
|
$(EFL_CFLAGS)
|
||||||
|
|
||||||
|
AM_CFLAGS =\
|
||||||
|
-Wall\
|
||||||
|
-g
|
||||||
|
|
||||||
|
lib_LTLIBRARIES = \
|
||||||
|
libeetxx.la
|
||||||
|
|
||||||
|
libeetxx_la_SOURCES = \
|
||||||
|
EetDocument.cpp\
|
||||||
|
EetList.cpp \
|
||||||
|
EetChunk.cpp \
|
||||||
|
ChunkIterator.cpp
|
||||||
|
|
||||||
|
libeetxx_la_LIBADD = \
|
||||||
|
$(EFL_LIBS)
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
.anjuta
|
||||||
|
.tm_project*
|
||||||
|
.libs
|
||||||
|
.deps
|
||||||
|
.*swp
|
||||||
|
.nautilus-metafile.xml
|
||||||
|
*.autosave
|
||||||
|
*.pws
|
||||||
|
*.bak
|
||||||
|
*~
|
||||||
|
#*#
|
||||||
|
*.gladep
|
||||||
|
*.la
|
||||||
|
*.lo
|
||||||
|
*.o
|
||||||
|
*.class
|
||||||
|
*.pyc
|
||||||
|
aclocal.m4
|
||||||
|
autom4te.cache
|
||||||
|
config.h
|
||||||
|
config.h.in
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
configure
|
||||||
|
intltool-extract*
|
||||||
|
intltool-merge*
|
||||||
|
intltool-modules*
|
||||||
|
intltool-update*
|
||||||
|
libtool
|
||||||
|
prepare.sh
|
||||||
|
stamp-h*
|
||||||
|
ltmain.sh
|
||||||
|
mkinstalldirs
|
||||||
|
config.guess
|
||||||
|
config.sub
|
||||||
|
Makefile
|
||||||
|
Makefile.in
|
|
@ -0,0 +1,166 @@
|
||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
|
||||||
|
This version of the GNU Lesser General Public License incorporates
|
||||||
|
the terms and conditions of version 3 of the GNU General Public
|
||||||
|
License, supplemented by the additional permissions listed below.
|
||||||
|
|
||||||
|
0. Additional Definitions.
|
||||||
|
|
||||||
|
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||||
|
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||||
|
General Public License.
|
||||||
|
|
||||||
|
"The Library" refers to a covered work governed by this License,
|
||||||
|
other than an Application or a Combined Work as defined below.
|
||||||
|
|
||||||
|
An "Application" is any work that makes use of an interface provided
|
||||||
|
by the Library, but which is not otherwise based on the Library.
|
||||||
|
Defining a subclass of a class defined by the Library is deemed a mode
|
||||||
|
of using an interface provided by the Library.
|
||||||
|
|
||||||
|
A "Combined Work" is a work produced by combining or linking an
|
||||||
|
Application with the Library. The particular version of the Library
|
||||||
|
with which the Combined Work was made is also called the "Linked
|
||||||
|
Version".
|
||||||
|
|
||||||
|
The "Minimal Corresponding Source" for a Combined Work means the
|
||||||
|
Corresponding Source for the Combined Work, excluding any source code
|
||||||
|
for portions of the Combined Work that, considered in isolation, are
|
||||||
|
based on the Application, and not on the Linked Version.
|
||||||
|
|
||||||
|
The "Corresponding Application Code" for a Combined Work means the
|
||||||
|
object code and/or source code for the Application, including any data
|
||||||
|
and utility programs needed for reproducing the Combined Work from the
|
||||||
|
Application, but excluding the System Libraries of the Combined Work.
|
||||||
|
|
||||||
|
1. Exception to Section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
You may convey a covered work under sections 3 and 4 of this License
|
||||||
|
without being bound by section 3 of the GNU GPL.
|
||||||
|
|
||||||
|
2. Conveying Modified Versions.
|
||||||
|
|
||||||
|
If you modify a copy of the Library, and, in your modifications, a
|
||||||
|
facility refers to a function or data to be supplied by an Application
|
||||||
|
that uses the facility (other than as an argument passed when the
|
||||||
|
facility is invoked), then you may convey a copy of the modified
|
||||||
|
version:
|
||||||
|
|
||||||
|
a) under this License, provided that you make a good faith effort to
|
||||||
|
ensure that, in the event an Application does not supply the
|
||||||
|
function or data, the facility still operates, and performs
|
||||||
|
whatever part of its purpose remains meaningful, or
|
||||||
|
|
||||||
|
b) under the GNU GPL, with none of the additional permissions of
|
||||||
|
this License applicable to that copy.
|
||||||
|
|
||||||
|
3. Object Code Incorporating Material from Library Header Files.
|
||||||
|
|
||||||
|
The object code form of an Application may incorporate material from
|
||||||
|
a header file that is part of the Library. You may convey such object
|
||||||
|
code under terms of your choice, provided that, if the incorporated
|
||||||
|
material is not limited to numerical parameters, data structure
|
||||||
|
layouts and accessors, or small macros, inline functions and templates
|
||||||
|
(ten or fewer lines in length), you do both of the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the object code that the
|
||||||
|
Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
4. Combined Works.
|
||||||
|
|
||||||
|
You may convey a Combined Work under terms of your choice that,
|
||||||
|
taken together, effectively do not restrict modification of the
|
||||||
|
portions of the Library contained in the Combined Work and reverse
|
||||||
|
engineering for debugging such modifications, if you also do each of
|
||||||
|
the following:
|
||||||
|
|
||||||
|
a) Give prominent notice with each copy of the Combined Work that
|
||||||
|
the Library is used in it and that the Library and its use are
|
||||||
|
covered by this License.
|
||||||
|
|
||||||
|
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||||
|
document.
|
||||||
|
|
||||||
|
c) For a Combined Work that displays copyright notices during
|
||||||
|
execution, include the copyright notice for the Library among
|
||||||
|
these notices, as well as a reference directing the user to the
|
||||||
|
copies of the GNU GPL and this license document.
|
||||||
|
|
||||||
|
d) Do one of the following:
|
||||||
|
|
||||||
|
0) Convey the Minimal Corresponding Source under the terms of this
|
||||||
|
License, and the Corresponding Application Code in a form
|
||||||
|
suitable for, and under terms that permit, the user to
|
||||||
|
recombine or relink the Application with a modified version of
|
||||||
|
the Linked Version to produce a modified Combined Work, in the
|
||||||
|
manner specified by section 6 of the GNU GPL for conveying
|
||||||
|
Corresponding Source.
|
||||||
|
|
||||||
|
1) Use a suitable shared library mechanism for linking with the
|
||||||
|
Library. A suitable mechanism is one that (a) uses at run time
|
||||||
|
a copy of the Library already present on the user's computer
|
||||||
|
system, and (b) will operate properly with a modified version
|
||||||
|
of the Library that is interface-compatible with the Linked
|
||||||
|
Version.
|
||||||
|
|
||||||
|
e) Provide Installation Information, but only if you would otherwise
|
||||||
|
be required to provide such information under section 6 of the
|
||||||
|
GNU GPL, and only to the extent that such information is
|
||||||
|
necessary to install and execute a modified version of the
|
||||||
|
Combined Work produced by recombining or relinking the
|
||||||
|
Application with a modified version of the Linked Version. (If
|
||||||
|
you use option 4d0, the Installation Information must accompany
|
||||||
|
the Minimal Corresponding Source and Corresponding Application
|
||||||
|
Code. If you use option 4d1, you must provide the Installation
|
||||||
|
Information in the manner specified by section 6 of the GNU GPL
|
||||||
|
for conveying Corresponding Source.)
|
||||||
|
|
||||||
|
5. Combined Libraries.
|
||||||
|
|
||||||
|
You may place library facilities that are a work based on the
|
||||||
|
Library side by side in a single library together with other library
|
||||||
|
facilities that are not Applications and are not covered by this
|
||||||
|
License, and convey such a combined library under terms of your
|
||||||
|
choice, if you do both of the following:
|
||||||
|
|
||||||
|
a) Accompany the combined library with a copy of the same work based
|
||||||
|
on the Library, uncombined with any other library facilities,
|
||||||
|
conveyed under the terms of this License.
|
||||||
|
|
||||||
|
b) Give prominent notice with the combined library that part of it
|
||||||
|
is a work based on the Library, and explaining where to find the
|
||||||
|
accompanying uncombined form of the same work.
|
||||||
|
|
||||||
|
6. Revised Versions of the GNU Lesser General Public License.
|
||||||
|
|
||||||
|
The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the GNU Lesser General Public License from time to time. Such new
|
||||||
|
versions will be similar in spirit to the present version, but may
|
||||||
|
differ in detail to address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the
|
||||||
|
Library as you received it specifies that a certain numbered version
|
||||||
|
of the GNU Lesser General Public License "or any later version"
|
||||||
|
applies to it, you have the option of following the terms and
|
||||||
|
conditions either of that published version or of any later version
|
||||||
|
published by the Free Software Foundation. If the Library as you
|
||||||
|
received it does not specify a version number of the GNU Lesser
|
||||||
|
General Public License, you may choose any version of the GNU Lesser
|
||||||
|
General Public License ever published by the Free Software Foundation.
|
||||||
|
|
||||||
|
If the Library as you received it specifies that a proxy can decide
|
||||||
|
whether future versions of the GNU Lesser General Public License shall
|
||||||
|
apply, that proxy's public statement of acceptance of any version is
|
||||||
|
permanent authorization for you to choose that version for the
|
||||||
|
Library.
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
|
|
@ -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' will install the package's files in
|
||||||
|
`/usr/local/bin', `/usr/local/man', 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
|
||||||
|
give `configure' the option `--exec-prefix=PREFIX', the package will
|
||||||
|
use PREFIX as the prefix for installing programs and libraries.
|
||||||
|
Documentation and other data files will 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 `--target=TYPE' option 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.
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
## Created by Anjuta
|
||||||
|
|
||||||
|
SUBDIRS = src \
|
||||||
|
include
|
||||||
|
|
||||||
|
eflxxdocdir = ${prefix}/doc/eflxx
|
||||||
|
eflxxdoc_DATA = \
|
||||||
|
README\
|
||||||
|
COPYING\
|
||||||
|
AUTHORS\
|
||||||
|
ChangeLog\
|
||||||
|
INSTALL\
|
||||||
|
NEWS
|
||||||
|
|
||||||
|
EXTRA_DIST = $(eflxxdoc_DATA)
|
||||||
|
|
||||||
|
# Copy all the spec files. Of cource, only one is actually used.
|
||||||
|
dist-hook:
|
||||||
|
for specfile in *.spec; do \
|
||||||
|
if test -f $$specfile; then \
|
||||||
|
cp -p $$specfile $(distdir); \
|
||||||
|
fi \
|
||||||
|
done
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
./bootstrap && ./configure $@
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue