parent
8a3227506f
commit
4e76bba2e6
549 changed files with 30929 additions and 0 deletions
@ -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< |