mv PROTO/eflpp BINDINGS/cxx

SVN revision: 35517
This commit is contained in:
Gustavo Sverzut Barbieri 2008-08-17 16:34:48 +00:00
commit a551a7f056
258 changed files with 12131 additions and 0 deletions

24
.cvsignore Normal file
View File

@ -0,0 +1,24 @@
stamp-h1
ltmain.sh
libtool
eflpp.pws
eflpp.pc
eflpp-uninstalled.pc
configure
config.sub
config.status
config.log
config.h.in
config.h
config.guess
autom4te.cache
aclocal.m4
Makefile.in
Makefile
.tm_project.cache
missing
install-sh
depcomp
.tm_project2.cache
.anjuta

2
AUTHORS Normal file
View File

@ -0,0 +1,2 @@
Michael 'Mickey' Lauer <mickey@Vanille.de>
Andreas 'audifahrer' Volz <andreas.volz@tux-style.com>

0
COPYING Normal file
View File

38
ChangeLog Normal file
View File

@ -0,0 +1,38 @@
2006-06-27 mickeyl
* Catch up with changes in EWL
* Start wrapping ETK
* Embedding an EWL in an Evas now finally works
2006-05-01 mickeyl
* Add new demo programs
* TextBlock is currently disabled due to internal Evas
changes. The next release will contain a working TextBlock
* Released EFL++ 0.1.0
2005-09-01 mickeyl
* Started wrapping Emotion
* Add EdjePart abstraction
2005-08-29 mickeyl
* Started wrapping Esmart_Container
* Started wrapping EWL
* Started wrapping Edje
* Released EFL++ 0.0.3
2005-08-01 mickeyl
* Catch up example programs with changes in Evas API
* Released EFL++ 0.0.2
2005-07-01 mickeyl
* Added the new Evas TextBlock, more work on it will follow
when the Evas TextBlock API has stabilized
2005-05-05 mickeyl
* Released EFL++ 0.0.1
2004-09-01 mickeyl
* Started working on the Ecore part of EFL++
* Released EFL++ 0.0.0
2004-08-10 mickeyl
* Started working on Evas part of EFL++

139
Doxyfile Normal file
View File

@ -0,0 +1,139 @@
PROJECT_NAME = EFLpp
PROJECT_NUMBER =
OUTPUT_DIRECTORY = doc
INPUT = ./src ./src/edje
IMAGE_PATH = doc/img
OUTPUT_LANGUAGE = English
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER = doc/head.html
HTML_FOOTER = doc/foot.html
HTML_STYLESHEET = doc/eflpp.css
HTML_ALIGN_MEMBERS = YES
ENUM_VALUES_PER_LINE = 1
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO
EXTRACT_STATIC = NO
EXTRACT_LOCAL_CLASSES = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = YES
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = NO
STRIP_FROM_PATH =
INTERNAL_DOCS = NO
STRIP_CODE_COMMENTS = YES
CASE_SENSE_NAMES = YES
SHORT_NAMES = NO
HIDE_SCOPE_NAMES = NO
VERBATIM_HEADERS = NO
SHOW_INCLUDE_FILES = NO
JAVADOC_AUTOBRIEF = YES
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO
INHERIT_DOCS = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO
TAB_SIZE = 2
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ALIASES =
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
SHOW_USED_FILES = NO
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
FILE_PATTERNS =
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
INPUT_FILTER =
FILTER_SOURCE_FILES = NO
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 2
IGNORE_PREFIX =
GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
GENERATE_LATEX = YES
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = YES
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
GENERATE_MAN = YES
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = YES
GENERATE_XML = NO
XML_SCHEMA =
XML_DTD =
GENERATE_AUTOGEN_DEF = NO
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = NO
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
CLASS_DIAGRAMS = YES
HIDE_UNDOC_RELATIONS = NO
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = NO
INCLUDED_BY_GRAPH = NO
GRAPHICAL_HIERARCHY = NO
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 512
MAX_DOT_GRAPH_HEIGHT = 512
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
SEARCHENGINE = NO

0
INSTALL Normal file
View File

29
Makefile.am Normal file
View File

@ -0,0 +1,29 @@
## Process this file with automake to produce Makefile.in
## Created by Anjuta - will *NOT* be overwritten
SUBDIRS = src examples data
libeflppdocdir = ${prefix}/doc/eflpp
libeflppdoc_DATA = \
README\
COPYING\
AUTHORS\
ChangeLog\
INSTALL\
NEWS\
TODO
EXTRA_DIST = $(libeflppdoc_DATA)\
eflpp.pc.in\
eflpp-uninstalled.pc.in
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = eflpp.pc
# 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
NEWS Normal file
View File

46
README Normal file
View File

@ -0,0 +1,46 @@
//=========================================================================================================//
// Enlightenment Foundation Libraries C++ Bindings. (C) 2004-2006 Vanille Media, Michael 'Mickey' Lauer.
//=========================================================================================================//
Some FAQs to get you started:
Q: Where's the homepage?
A: http://www.vanille-media.de/site/index.php/projects/efl/
Q: What's the license?
A: LGPL
Q: What are the requirements?
A: You need a C++ toolchain (recommended: g++ 4.1.1), libsigc-2.x, Evas, Ecore, Edje.
For a debugging build, you need libcwd, see http://libcwd.sourceforge.net
Optional parts need Esmart, Epsilon, Ewl, Etk, and Emotion
Q: How do I build eflpp?
A: ./autogen.sh && make && make install
Q: Why no inline functions [yet]?
A: Premature optimization is the root of all evil.
Q: Why is it using const char* and not some string class?
A: I couldn't decide yet whether libstdc++ should be optional or not.
After all, I'm targetting embedded systems...
Q: Why a monolithic library and not just one library for every EFL sublibrary?
A: EFLpp as a class library benefits from putting everything into one library.
I may reconsider this when I have more knowledge about the EFLpp use-cases.
Q: How stable is the API yet?
A: Not at all! Trust me, everything can change. I know this is a bit sucky for all potential
users of this library and I promise it will improve once we get nearer towards v0.9.
Q: How can I contribute?
A: Send patches adding more C-API coverage, tests, examples, etc.
Q: Where are the largest construction sites?
A: See TODO
Q: How can I see the debug messages?
A: export EFL_DEBUG="1" and regenerate all Makefiles
Q: It takes a long time to 'make' and 'make install'. This is bad while development. Are there alternatives?
A: Yes. You could simpy add the eflpp top level directory to the PKG_CONFIG_PATH variable. Then pkg-config is able to find the unsinstalled lib and include files. No need to do a 'make install'.

6
TODO Normal file
View File

@ -0,0 +1,6 @@
* memory handling, it leaks like hell
* parent/child chaining
* callback handling needs more thinking
* much more :/
* wrap evas_color_* functions (e.g. evas_color_argb_premul)
* move all #include <config.h> from *.h to *.cpp

16
autogen.sh Executable file
View File

@ -0,0 +1,16 @@
#!/bin/sh
rm -rf autom4te.cache
rm -f aclocal.m4 ltmain.sh
touch README
echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS || exit 1
echo "Running autoheader..." ; autoheader || exit 1
echo "Running autoconf..." ; autoconf || exit 1
echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) || exit 1
echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1
if [ -z "$NOCONFIGURE" ]; then
./configure "$@"
fi

201
configure.ac Normal file
View File

@ -0,0 +1,201 @@
dnl Process this file with autoconf to produce a configure script.
dnl Created by Anjuta - will *NOT* be overwritten
AC_INIT(EFLpp, 0.1, mickey@vanille-media.de)
AM_INIT_AUTOMAKE(eflpp, 0.1)
AM_CONFIG_HEADER(config.h)
dnl Disable libtool 1.5 support for languages we don't use
define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
define([AC_LIBTOOL_LANG_GCJ_CONFIG], [:])dnl
AM_MAINTAINER_MODE
AC_PROG_CC
AM_PROG_CC_STDC
AC_PROG_CPP
AC_PROG_CXX
AC_HEADER_STDC
AC_PROG_LIBTOOL
dnl Check for option to enable esmart
AC_MSG_CHECKING(whether to enable esmart)
AC_ARG_ENABLE(emotion,
[ --enable-esmart=[no/yes] enables esmart build (default=yes)],,
enable_esmart=yes)
if [ ! test "x$enable_esmart" != "xyes"]; then
AC_DEFINE(EFL_SUPPORT_ESMART, 1, [Define to enable esmart support])
esmart_modules="esmart_container esmart_text_entry"
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
dnl Check for option to enable emotion
AC_MSG_CHECKING(whether to enable emotion)
AC_ARG_ENABLE(emotion,
[ --enable-emotion=[no/yes] enables emotion build (default=yes)],,
enable_emotion=yes)
if [ ! test "x$enable_emotion" != "xyes"]; then
AC_DEFINE(EFL_SUPPORT_EMOTION, 1, [Define to enable emotion support])
emotion_modules="emotion"
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
dnl Check for programs
dnl Checks for libraries
AC_ARG_ENABLE(fbcon,
[AC_HELP_STRING([--enable-fbcon],[enable fbcon support])],
[enable_fbcon=$enableval], [enable_fbcon="auto"])
have_fbcon=no
if test "x$enable_fbcon" != "xno" ; then
AC_CHECK_HEADERS(Evas_Engine_FB.h,
[AC_CHECK_HEADER(Ecore_Fb.h,
[have_fbcon=yes],
[], [#include <Ecore.h>])],
[], [#include <Evas.h>])
if test "x$have_fbcon" = "xyes" ; then
AC_DEFINE(ENABLE_EFLPP_FB, 1, [Enable FB])
elif test "x$enable_fbcon" = "xyes" ; then
AC_MSG_ERROR(fbcon requested but no evas/ecore support found)
fi
fi
AM_CONDITIONAL(EFLPP_ENABLE_FB, test "x$have_fbcon" = xyes)
dnl Check for pkg-config stuff
pkg_modules="$esmart_modules $emotion_modules evas ecore ecore-config ecore-evas ecore-ipc ecore-txt ecore-con ecore-job sigc++-2.0 etk ewl"
PKG_CHECK_MODULES(PACKAGE, [$pkg_modules])
dnl Check for headers
dnl Check for functions
dnl Check for edce_cc
EDJE_DEF=""
AC_SUBST(EDJE_DEF)
AC_ARG_WITH(edje-cc,
AC_HELP_STRING([--with-edje-cc=PATH],[Specify a specific path to edje_cc]),
[
v=$withval;
edje_cc=$v
echo " Enlightenment edje_cc explicitly set to "$edje_cc;
],[
edje_cc=$(pkg-config --variable=prefix edje)/bin/edje_cc
])
AC_SUBST(edje_cc)
dnl Set PACKAGE SOURCE DIR
packagesrcdir=`cd $srcdir && pwd`
dnl Set PACKAGE PREFIX
if test "x${prefix}" = "xNONE"; then
packageprefix=${ac_default_prefix}
else
packageprefix=${prefix}
fi
dnl Set PACKAGE DIRS in config.h
packagedatadir=share/${PACKAGE}
packagedocdir=doc/${PACKAGE}
packagepixmapsdir=share/pixmaps/${PACKAGE}
systempixmapsdir=share/pixmaps
dnl Subst PACKAGE_DATA_DIR.
NO_PREFIX_PACKAGE_DATA_DIR="${packagedatadir}"
AC_SUBST(NO_PREFIX_PACKAGE_DATA_DIR)
PACKAGE_DATA_DIR="${packageprefix}/${packagedatadir}"
AC_SUBST(PACKAGE_DATA_DIR)
dnl Subst PACKAGE_DOC_DIR.
NO_PREFIX_PACKAGE_DOC_DIR="${packagedocdir}"
AC_SUBST(NO_PREFIX_PACKAGE_DOC_DIR)
PACKAGE_DOC_DIR="${packageprefix}/${packagedocdir}"
AC_SUBST(PACKAGE_DOC_DIR)
dnl Subst PACKAGE_PIXMAPS_DIR.
NO_PREFIX_PACKAGE_PIXMAPS_DIR="${packagepixmapsdir}"
AC_SUBST(NO_PREFIX_PACKAGE_PIXMAPS_DIR)
PACKAGE_PIXMAPS_DIR="${packageprefix}/${packagepixmapsdir}"
AC_SUBST(PACKAGE_PIXMAPS_DIR)
dnl Subst SYSTEM_PIXMAPS_DIR.
NO_PREFIX_SYSTEM_PIXMAPS_DIR="${packagepixmapsdir}"
AC_SUBST(NO_PREFIX_SYSTEM_PIXMAPS_DIR)
SYSTEM_PIXMAPS_DIR="${packageprefix}/${systempixmapsdir}"
AC_SUBST(SYSTEM_PIXMAPS_DIR)
dnl Subst PACKAGE_SOURCE_DIR
PACKAGE_SOURCE_DIR="${packagesrcdir}"
AC_SUBST(PACKAGE_SOURCE_DIR)
AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${packageprefix}/${packagedatadir}","")
AC_DEFINE_UNQUOTED(PACKAGE_DOC_DIR, "${packageprefix}/${packagedocdir}","")
AC_DEFINE_UNQUOTED(PACKAGE_PIXMAPS_DIR, "${packageprefix}/${packagepixmapsdir}","")
AC_DEFINE_UNQUOTED(SYSTEM_PIXMAPS_DIR, "${packageprefix}/${systempixmapsdir}","")
AC_DEFINE_UNQUOTED(PACKAGE_SOURCE_DIR, "${packagesrcdir}","")
AC_OUTPUT([
eflpp.pc
eflpp-uninstalled.pc
Makefile
src/Makefile
src/common/Makefile
src/ecore/Makefile
src/edje/Makefile
src/esmart/Makefile
src/evas/Makefile
src/edb/Makefile
src/eet/Makefile
src/emotion/Makefile
src/etk/Makefile
src/ewl/Makefile
src/misc/Makefile
examples/Makefile
examples/edje/Makefile
examples/edje/simple/Makefile
examples/esmart/Makefile
examples/esmart/container/Makefile
examples/esmart/textentry/Makefile
examples/esmart/group/Makefile
examples/etk/Makefile
examples/etk/embed/Makefile
examples/etk/simple/Makefile
examples/ewl/Makefile
examples/ewl/embed/Makefile
examples/ewl/simple/Makefile
examples/signals/Makefile
examples/signals/simple/Makefile
examples/emotion/Makefile
examples/emotion/simple/Makefile
examples/debug/Makefile
examples/debug/simple/Makefile
examples/ecore/Makefile
examples/ecore/3dstars/Makefile
examples/ecore/calibrate/Makefile
examples/ecore/callbacks/Makefile
examples/ecore/config/Makefile
examples/ecore/paint/Makefile
examples/ecore/simple/Makefile
examples/ecore/stars/Makefile
examples/ecore/timers/Makefile
examples/ecore/list/Makefile
examples/ecore/x/Makefile
examples/angstrom/Makefile
examples/angstrom/bootmanager/Makefile
examples/evas/Makefile
examples/evas/hash/Makefile
examples/evas/list/Makefile
data/Makefile
data/edjes/Makefile
data/fonts/Makefile
data/images/Makefile
])

2
data/.cvsignore Normal file
View File

@ -0,0 +1,2 @@
Makefile.in
Makefile

1
data/Makefile.am Normal file
View File

@ -0,0 +1 @@
SUBDIRS = edjes fonts images

3
data/edjes/.cvsignore Normal file
View File

@ -0,0 +1,3 @@
*.edj
Makefile.in
Makefile

44
data/edjes/Makefile.am Normal file
View File

@ -0,0 +1,44 @@
MAINTAINERCLEANFILES = Makefile.in
EDJE_CC = @edje_cc@
EDJE_FLAGS = \
-v \
-id $(top_srcdir)/data/images \
-fd $(top_srcdir)/data/fonts \
@EDJE_DEF@
filesdir = $(pkgdatadir)/edjes
files_DATA = simple.edj angstrom-bootmanager.edj angstrom-calibrate.edj angstrom-installer.edj esmart_text_entry_test.edj
EXTRA_DIST = angstrom-background.edc \
angstrom-bootmanager.edc \
angstrom-calibrate.edc \
angstrom-installer.edc \
e17-default-clock.edc \
entrance-buttons.edc \
simple.edc \
esmart_text_entry_test.edc
simple.edj: Makefile simple.edc
$(EDJE_CC) $(EDJE_FLAGS) \
$(top_srcdir)/data/edjes/simple.edc
angstrom-bootmanager.edj: Makefile angstrom-bootmanager.edc
$(EDJE_CC) $(EDJE_FLAGS) \
$(top_srcdir)/data/edjes/angstrom-bootmanager.edc
angstrom-calibrate.edj: Makefile angstrom-calibrate.edc
$(EDJE_CC) $(EDJE_FLAGS) \
$(top_srcdir)/data/edjes/angstrom-calibrate.edc
angstrom-installer.edj: Makefile angstrom-installer.edc
$(EDJE_CC) $(EDJE_FLAGS) \
$(top_srcdir)/data/edjes/angstrom-installer.edc
esmart_text_entry_test.edj: Makefile esmart_text_entry_test.edc
$(EDJE_CC) $(EDJE_FLAGS) \
$(top_srcdir)/data/edjes/esmart_text_entry_test.edc
clean-local:
rm -f *.edj

View File

@ -0,0 +1,411 @@
images {
image: "logo_shad.png" COMP;
image: "shad.png" COMP;
image: "tex.png" LOSSY 85;
image: "ref.png" LOSSY 60;
image: "bar_l.png" COMP;
image: "bar_r.png" COMP;
image: "bar_l_sh.png" COMP;
image: "bar_r_sh.png" COMP;
image: "angstrom.png" COMP;
}
fonts {
font: "Vera.ttf" "Vera";
}
group {
name: "background";
parts {
part {
name: "background_image";
description {
state: "default" 0.0;
image {
normal: "tex.png";
}
fill {
size {
relative: 0 0;
offset: 800 510;
}
}
}
}
part {
name: "shad";
description {
state: "default" 0.0;
image {
normal: "shad.png";
}
}
}
part {
name: "bar_l_sh";
description {
state: "default" 0.0;
min: 0 39;
max: 99999 39;
align: 0.0 1.0;
rel1 {
to: "bar_l";
offset: 0 -7;
}
rel2 {
to: "bar_l";
offset: 5 6;
}
image {
normal: "bar_l_sh.png";
border: 0 60 0 0;
}
fill {
smooth: 0;
}
}
}
part {
name: "bar_r_sh";
description {
state: "default" 0.0;
min: 0 39;
max: 99999 39;
align: 0.0 1.0;
rel1 {
to: "bar_r";
offset: -5 -7;
}
rel2 {
to: "bar_r";
offset: -1 6;
}
image {
normal: "bar_r_sh.png";
border: 60 0 0 0;
}
fill {
smooth: 0;
}
}
}
part {
name: "bar_l1";
description {
state: "default" 0.0;
min: 0 4;
max: 99999 4;
rel1 {
to: "bar_l";
relative: 0.0 0.0;
offset: 0 6;
}
rel2 {
to: "bar_l";
relative: 1.0 0.0;
offset: -15 9;
}
image {
normal: "ref.png";
}
fill {
origin {
relative: 0 0;
offset: 0 0;
}
size {
relative: 0 0;
offset: 400 80;
}
}
}
description {
state: "default2" 0.0;
inherit: "default" 0.0;
fill {
origin {
offset: -400 80;
}
}
}
}
part {
name: "bar_l2";
description {
state: "default" 0.0;
min: 0 4;
max: 99999 4;
rel1 {
to: "bar_l";
relative: 0.0 1.0;
offset: 0 -10;
}
rel2 {
to: "bar_l";
relative: 1.0 1.0;
offset: -7 -7;
}
image {
normal: "ref.png";
}
fill {
origin {
relative: 0 0;
offset: 0 0;
}
size {
relative: 0 0;
offset: 400 80;
}
}
}
description {
state: "default2" 0.0;
inherit: "default" 0.0;
fill {
origin {
offset: -400 -80;
}
}
}
}
part {
name: "bar_r1";
description {
state: "default" 0.0;
min: 0 4;
max: 99999 4;
rel1 {
to: "bar_r";
relative: 0.0 0.0;
offset: 14 6;
}
rel2 {
to: "bar_r";
relative: 1.0 0.0;
offset: -1 9;
}
image {
normal: "ref.png";
}
fill {
origin {
relative: 0 0;
offset: 0 0;
}
size {
relative: 0 0;
offset: 400 80;
}
}
}
description {
state: "default2" 0.0;
inherit: "default" 0.0;
fill {
origin {
offset: 400 80;
}
}
}
}
part {
name: "bar_r2";
description {
state: "default" 0.0;
min: 0 4;
max: 99999 4;
rel1 {
to: "bar_r";
relative: 0.0 1.0;
offset: 6 -10;
}
rel2 {
to: "bar_r";
relative: 1.0 1.0;
offset: 0 -7;
}
image {
normal: "ref.png";
}
fill {
origin {
relative: 0 0;
offset: 0 0;
}
size {
relative: 0 0;
offset: 400 80;
}
}
}
description {
state: "default2" 0.0;
inherit: "default" 0.0;
fill {
origin {
offset: 400 -80;
}
}
}
}
part {
name: "bar_l";
description {
state: "default" 0.0;
min: 0 25;
max: 99999 25;
align: 0.0 1.0;
rel1 {
relative: 0.0 1.0;
offset: 0 -50;
}
rel2 {
relative: 0.5 1.0;
offset: -50 -50;
}
image {
normal: "bar_l.png";
border: 0 30 0 0;
}
fill {
smooth: 0;
}
}
}
part {
name: "bar_r";
description {
state: "default" 0.0;
min: 0 25;
max: 99999 25;
align: 1.0 1.0;
rel1 {
relative: 0.5 1.0;
offset: 49 -50;
}
rel2 {
relative: 1.0 1.0;
offset: -1 -50;
}
image {
normal: "bar_r.png";
border: 30 0 0 0;
}
fill {
smooth: 0;
}
}
}
part {
name: "logo";
description {
state: "default" 0.0;
min: 128 100;
max: 256 200;
align: 0.5 1.0;
rel1 {
relative: 0.5 1.0;
offset: 0 -20;
}
rel2 {
relative: 0.5 1.0;
offset: 0 -20;
}
image {
normal: "angstrom.png";
}
}
}
/* version text at bottom in the middle */
part {
name: "version";
type: "TEXT";
effect: OUTLINE_SOFT_SHADOW;
description {
state: "default" 0.0;
color: 255 255 255 255;
/*align: 0.0 0.0;*/
rel1 {
relative: 0.0 0.97;
offset: 0 0;
}
rel2 {
relative: 1.0 0.97;
offset: 0 0;
}
text {
text: "SETME: Angstrom Version";
font: "Vera";
size: 14;
}
}
}
programs {
program {
name: "ref1_1";
signal: "show";
source: "";
action: STATE_SET "default2" 0.0;
transition: LINEAR 4.0;
target: "bar_l1";
after: "ref1_2";
}
program {
name: "ref1_2";
action: STATE_SET "default" 0.0;
target: "bar_l1";
after: "ref1_1";
}
program {
name: "ref2_1";
signal: "show";
source: "";
action: STATE_SET "default2" 0.0;
transition: LINEAR 5.71;
target: "bar_l2";
after: "ref2_2";
}
program {
name: "ref2_2";
action: STATE_SET "default" 0.0;
target: "bar_l2";
after: "ref2_1";
}
program {
name: "ref3_1";
signal: "show";
source: "";
action: STATE_SET "default2" 0.0;
transition: LINEAR 3.46;
target: "bar_r1";
after: "ref3_2";
}
program {
name: "ref3_2";
action: STATE_SET "default" 0.0;
target: "bar_r1";
after: "ref3_1";
}
program {
name: "ref4_1";
signal: "show";
source: "";
action: STATE_SET "default2" 0.0;
transition: LINEAR 6.32;
target: "bar_r2";
after: "ref4_2";
}
program {
name: "ref4_2";
action: STATE_SET "default" 0.0;
target: "bar_r2";
after: "ref4_1";
}
}
}
}

View File

@ -0,0 +1,7 @@
/* most artwork is taken by the Enlightenment Team
* the respective licenses apply */
collections {
#include "angstrom-background.edc"
#include "entrance-buttons.edc"
}

View File

@ -0,0 +1,128 @@
collections {
images {
image: "panel.png" COMP;
image: "shadow.png" COMP;
image: "angstrom.png" COMP;
image: "crosshair.png" COMP;
}
fonts {
font: "Vera.ttf" "Vera";
}
group {
name: "background";
parts {
part {
name: "background_image";
description {
state: "default" 0.0;
image {
normal: "panel.png";
}
}
}
part {
name: "shadow";
description {
state: "default" 0.0;
image {
normal: "shadow.png";
}
}
}
part {
name: "crosshair";
description {
state: "default" 0.0;
min: 31 31;
max: 31 31;
align: 0.5 0.5;
rel1 {
relative: 0.5 0.5;
offset: 0 0;
}
rel2 {
relative: 0.5 0.5;
offset: 0 0;
}
image {
normal: "crosshair.png";
}
}
}
part {
name: "logo";
description {
state: "default" 0.0;
min: 128 100;
max: 256 200;
align: 0.5 1.0;
rel1 {
relative: 0.5 1.0;
offset: 0 0;
}
rel2 {
relative: 0.5 1.0;
offset: 0 0;
}
image {
normal: "angstrom.png";
}
}
}
part {
name: "help";
type: "TEXT";
effect: NONE;
description {
state: "default" 0.0;
color: 0 0 0 255;
rel1 {
relative: 0.0 0.3;
offset: 0 0;
}
rel2 {
relative: 1.0 0.3;
offset: 0 0;
}
text {
text: "Click to calibrate your touchscreen";
font: "Vera";
size: 10;
}
}
}
programs {
program {
name: "init";
signal: "load";
source: "";
}
program {
name: "user_startup";
signal: "show";
source: "";
action: SIGNAL_EMIT "user" "on";
after: "crosshair_animate";
}
program {
name: "crosshair_animate";
action: STATE_SET "default" 0.0;
transition: LINEAR 2.0;
target: "crosshair";
after: "crosshair_animate";
}
}
}
}

View File

@ -0,0 +1,144 @@
// Sample EDC
images {
image, "background.png" LOSSY 95;
}
collections {
group {
name, "test";
min, 32 32;
max, 1024 768;
parts {
part {
name, "background";
type, IMAGE;
mouse_events, 0;
description {
state, "default" 0.0;
rel1 {
relative, 0.0 0.0;
offset, 0 0;
}
rel2 {
relative, 1.0 1.0;
offset, -1 -1;
}
image {
normal, "background.png";
}
}
}
part {
name, "button";
type, RECT;
mouse_events, 1;
description {
state, "default" 0.0;
min, 100 50;
max, 100 50;
align, 0.5 0.5;
color, 211 168 234 255;
rel1 {
relative, 0.0 0.0;
offset, 0 0;
}
rel2 {
relative, 1.0 1.0;
offset, -1 -1;
}
}
description {
state, "clicked" 0.0;
min, 100 50;
max, 100 50;
align, 0.5 0.5;
color, 170 89 214 255;
rel1 {
relative, 0.0 0.0;
offset, 0 0;
}
rel2 {
relative, 1.0 1.0;
offset, -1 -1;
}
}
}
part {
name, "text";
type, TEXT;
mouse_events, 0;
description {
state, "default" 0.0;
rel1 {
relative, 0.0 0.0;
offset, 0 0;
to, "button";
}
rel2 {
relative, 1.0 1.0;
offset, -1 -1;
to, "button";
}
text {
text, "Press Me";
font, "Vera";
size, 14;
align, 0.5 0.5;
}
}
}
} /* Close Parts */
programs {
program {
name, "button_click";
signal, "mouse,down,1";
source, "button";
action, STATE_SET "clicked" 0.0;
target, "button";
after, "do_me";
}
program {
name, "button_unclick";
signal, "mouse,up,1";
source, "button";
action, STATE_SET "default" 0.0;
target, "button";
after, "stop_doing_me";
}
program {
name, "do_me";
signal, "*";
source, "button_click";
action, SIGNAL_EMIT "PANTS ON" "button";
in, 1.0 0.0;
after, "do_me";
}
program {
name, "stop_doing_me";
signal, "*";
source, "button_unclick";
action, ACTION_STOP;
target, "do_me";
}
} /* Close Prog */
} /* Close Group */
} /* Close Coll */

View File

@ -0,0 +1,268 @@
images {
image: "power_button_0.png" LOSSY 90;
image: "power_button_1.png" LOSSY 90;
image: "power_button_glow_0.png" LOSSY 90;
image: "power_button_glow_1.png" LOSSY 90;
image: "reset_button_0.png" LOSSY 90;
image: "reset_button_1.png" LOSSY 90;
image: "reset_button_glow_0.png" LOSSY 90;
image: "reset_button_glow_1.png" LOSSY 90;
}
group {
name: "buttons";
parts {
part {
name: "all_clip";
type: RECT;
mouse_events: 0;
description {
state: "default" 0.0;
visible: 1;
color: 255 0 0 0;
}
description {
state: "hidden" 0.0;
visible: 0;
color: 255 0 0 0;
}
}
part {
name: "power_button";
mouse_events: 1;
description {
state: "default" 0.0;
min: 32 32;
max: 32 32;
align: 1.0 1.0;
rel1 {
relative: 0.98 0.98;
offset: 0 0;
}
rel2 {
relative: 0.98 0.98;
offset: 0 0;
}
image {
normal: "power_button_0.png";
}
}
description {
state: "clicked" 0.0;
inherit: "default" 0.0;
image {
normal: "power_button_1.png";
}
}
}
part {
name: "power_button_glow";
mouse_events: 0;
description {
state: "default" 0.0;
visible: 0;
rel1 {
to: "power_button";
}
rel2 {
to: "power_button";
}
color: 255 255 255 0;
image {
normal: "power_button_glow_0.png";
}
}
description {
state: "hilited" 0.0;
inherit: "default" 0.0;
visible: 1;
color: 255 255 255 255;
}
description {
state: "clicked" 0.0;
inherit: "default" 0.0;
visible: 1;
color: 255 255 255 255;
image {
normal: "power_button_glow_1.png";
}
}
}
part {
name: "reset_button";
mouse_events: 1;
description {
state: "default" 0.0;
min: 32 32;
max: 32 32;
align: 0.0 1.0;
rel1 {
relative: 0.02 0.98;
offset: 0 0;
}
rel2 {
relative: 0.02 0.98;
offset: 0 0;
}
image {
normal: "reset_button_0.png";
}
}
description {
state: "clicked" 0.0;
inherit: "default" 0.0;
image {
normal: "reset_button_1.png";
}
}
}
part {
name: "reset_button_glow";
mouse_events: 0;
description {
state: "default" 0.0;
visible: 0;
rel1 {
to: "reset_button";
}
rel2 {
to: "reset_button";
}
color: 255 255 255 0;
image {
normal: "reset_button_glow_0.png";
}
}
description {
state: "hilited" 0.0;
inherit: "default" 0.0;
visible: 1;
color: 255 255 255 255;
}
description {
state: "clicked" 0.0;
inherit: "default" 0.0;
visible: 1;
color: 255 255 255 255;
image {
normal: "reset_button_glow_1.png";
}
}
}
}
programs {
program {
name: "power_button_in";
signal: "mouse,in";
source: "power_button";
action: STATE_SET "hilited" 0.0;
transition: LINEAR 0.5;
target: "power_button_glow";
}
program {
name: "power_button_out";
signal: "mouse,out";
source: "power_button";
action: STATE_SET "default" 0.0;
transition: LINEAR 0.5;
target: "power_button_glow";
}
program {
name: "power_button_down";
signal: "mouse,down,1";
source: "power_button";
action: STATE_SET "clicked" 0.0;
transition: LINEAR 0.0;
target: "power_button";
target: "power_button_glow";
}
program {
name: "power_button_up";
signal: "mouse,up,1";
source: "power_button";
action: STATE_SET "default" 0.0;
transition: LINEAR 0.0;
target: "power_button";
target: "power_button_glow";
}
program {
name: "power_button_up2";
signal: "mouse,clicked,1";
source: "power_button";
action: STATE_SET "hilited" 0.0;
target: "power_button_glow";
after: "power_button_up3";
}
program {
name: "power_button_up3";
action: STATE_SET "hidden" 0.0;
transition: SINUSOIDAL 2.0;
target: "all_clip";
}
program {
name: "power_button_clicked";
signal: "mouse,clicked,1";
source: "power_button";
action: SIGNAL_EMIT "angstrom|system|suspend" "2nd parameter";
in: 2.0 0.0;
}
program {
name: "reset_button_in";
signal: "mouse,in";
source: "reset_button";
action: STATE_SET "hilited" 0.0;
transition: LINEAR 0.5;
target: "reset_button_glow";
}
program {
name: "reset_button_out";
signal: "mouse,out";
source: "reset_button";
action: STATE_SET "default" 0.0;
transition: LINEAR 0.5;
target: "reset_button_glow";
}
program {
name: "reset_button_down";
signal: "mouse,down,1";
source: "reset_button";
action: STATE_SET "clicked" 0.0;
transition: LINEAR 0.0;
target: "reset_button";
target: "reset_button_glow";
}
program {
name: "reset_button_up";
signal: "mouse,up,1";
source: "reset_button";
action: STATE_SET "default" 0.0;
transition: LINEAR 0.0;
target: "reset_button";
target: "reset_button_glow";
}
program {
name: "reset_button_up2";
signal: "mouse,clicked,1";
source: "reset_button";
action: STATE_SET "hilited" 0.0;
target: "reset_button_glow";
after: "reset_button_up3";
}
program {
name: "reset_button_up3";
action: STATE_SET "hidden" 0.0;
transition: SINUSOIDAL 2.0;
target: "all_clip";
}
program {
name: "reset_button_clicked";
signal: "mouse,clicked,1";
source: "reset_button";
action: SIGNAL_EMIT "angstrom|system|reboot" "2nd parameter";
in: 2.0 0.0;
}
}
}

View File

@ -0,0 +1,143 @@
// Esmart Text Entry Example EDC
images
{
image, "text_view_bg.png" COMP;
image, "text_view_over.png" COMP;
image, "entry_cursor.png" COMP;
}
collections {
group {
name, "text_entry";
min, 10 10;
max, 1024 768;
parts {
part {
name, "back_clip";
description {
state, "default" 0.0;
rel1 {
relative, 0 0;
offset, 0 0;
}
}
}
part {
name, "background";
type, IMAGE;
mouse_events, 1;
description {
state, "default" 0.0;
rel1 {
relative, 0 0;
offset, 0 0;
}
image {
normal, "text_view_bg.png";
border: 10 6 9 7;
}
}
}
part {
name, "overlay";
type, IMAGE;
mouse_events, 1;
description {
state, "default" 0.0;
rel1 {
relative, 0 0;
offset, 0 0;
}
image {
normal, "text_view_over.png";
border: 10 6 9 7;
}
}
}
part
{
name: "text";
type: TEXT;
mouse_events: 1;
effect: SHADOW;
description
{
state: "default" 0.0;
color: 0 0 0 255;
align: 0 0;
text
{
font: "FreeSans";
size: 12;
// fit: 0 1;
min: 1 0;
align: 0 0.5;
}
rel1
{
relative: 0 0;
offset: 7 0;
}
rel2
{
relative: 0 1;
offset: 0 0;
}
}
}
part {
name, "cursor";
type, IMAGE;
mouse_events, 1;
clip_to: "back_clip";
description {
state, "default" 0.0;
aspect: 1.0 1.0;
aspect_preference: VERTICAL;
align: 0.0 0.5;
rel1 {
relative, 1 0;
offset, 0 5;
to: "text";
}
rel2 {
relative, 1 1;
offset, 0 -5;
}
image {
normal, "entry_cursor.png";
}
}
}
} /* Close Parts */
programs {
} /* Close Prog */
} /* Close Group */
} /* Close Coll */

148
data/edjes/simple.edc Normal file
View File

@ -0,0 +1,148 @@
// Simple Button edc
images {
image: "tex.png" LOSSY 95;
image: "item_normal.png" LOSSY 95;
image: "item_selected.png" LOSSY 95;
}
collections {
group {
name, "test";
min, 32 32;
max, 1024 768;
parts {
part {
name, "background";
type, IMAGE;
mouse_events, 0;
description {
state, "default" 0.0;
rel1 {
relative, 0.0 0.0;
offset, 0 0;
}
rel2 {
relative, 1.0 1.0;
offset, -1 -1;
}
image {
normal, "tex.png";
}
}
}
part {
name, "button";
type, IMAGE;
mouse_events, 1;
description {
state, "default" 0.0;
min, 100 50;
max, 100 50;
align, 0.5 0.5;
rel1 {
relative, 0.0 0.0;
offset, 0 0;
}
rel2 {
relative, 1.0 1.0;
offset, -1 -1;
}
image {
normal: "item_normal.png";
}
}
description {
state, "clicked" 0.0;
min, 100 50;
max, 100 50;
align, 0.5 0.5;
rel1 {
relative, 0.0 0.0;
offset, 0 0;
}
rel2 {
relative, 1.0 1.0;
offset, -1 -1;
}
image {
normal: "item_selected.png";
}
}
}
part {
name, "text";
type, TEXT;
effect: "OUTLINE";
mouse_events, 0;
description {
state, "default" 0.0;
rel1 {
relative, 0.0 0.0;
offset, 0 0;
to, "button";
}
rel2 {
relative, 1.0 1.0;
offset, -1 -1;
to, "button";
}
text {
text, "Press Me";
font, "Vera";
size, 14;
align, 0.5 0.5;
}
}
}
} /* Close Parts */
programs {
program {
name, "button_click";
signal, "mouse,down,1";
source, "button";
action, STATE_SET "clicked" 0.0;
target, "button";
after, "do_me";
}
program {
name, "button_unclick";
signal, "mouse,up,1";
source, "button";
action, STATE_SET "default" 0.0;
target, "button";
after, "stop_doing_me";
}
program {
name, "do_me";
signal, "*";
source, "button_click";
action, SIGNAL_EMIT "PANTS ON" "button";
in, 1.0 0.0;
after, "do_me";
}
program {
name, "stop_doing_me";
signal, "*";
source, "button_unclick";
action, ACTION_STOP;
target, "do_me";
}
} /* Close Prog */
} /* Close Group */
} /* Close Coll */

2
data/fonts/.cvsignore Normal file
View File

@ -0,0 +1,2 @@
Makefile.in
Makefile

BIN
data/fonts/Gentium.ttf Normal file

Binary file not shown.

BIN
data/fonts/GentiumI.ttf Normal file

Binary file not shown.

15
data/fonts/Makefile.am Normal file
View File

@ -0,0 +1,15 @@
## Process this file with automake to produce Makefile.in
## Created by Anjuta - will be overwritten
## If you don't want it to overwrite it,
## Please disable it in the Anjuta project configuration
eflpp_fontsdir = @PACKAGE_DATA_DIR@/fonts
eflpp_fonts_DATA = \
GentiumI.ttf \
Gentium.ttf \
VeraMono.ttf \
Vera.ttf
EXTRA_DIST = $(eflpp_fonts_DATA)

BIN
data/fonts/Vera.ttf Normal file

Binary file not shown.

BIN
data/fonts/VeraMono.ttf Normal file

Binary file not shown.

2
data/images/.cvsignore Normal file
View File

@ -0,0 +1,2 @@
Makefile.in
Makefile

49
data/images/Makefile.am Normal file
View File

@ -0,0 +1,49 @@
## Process this file with automake to produce Makefile.in
# TODO: not all images need to be installed!
eflpp_pixmapsdir = @PACKAGE_DATA_DIR@/images
eflpp_pixmaps_DATA = \
angstrom.png \
background.png \
bar_l.png \
bar_l_sh.png \
bar_r.png \
bar_r_sh.png \
bg.png \
blue_type.png \
boing-shadow.png \
border.png \
brushed_metal.png \
crosshair.png \
e_logo.png \
e_logo_small.png \
evas_logo.png \
fleur_de_lis.png \
floral.png \
item_normal.png \
item_selected.png \
item_title.png \
logo.png \
logo_shad.png \
numbers.png \
panel.png \
panel_shadow.png \
panel_top.png \
pingi-shadow.png \
power_button_0.png \
power_button_1.png \
power_button_glow_0.png \
power_button_glow_1.png \
ref.png \
reset_button_0.png \
reset_button_1.png \
reset_button_glow_0.png \
reset_button_glow_1.png \
shadow.png \
shad.png \
tex.png \
vanille.png
EXTRA_DIST = $(eflpp_pixmaps_DATA)

BIN
data/images/angstrom.png Normal file

Binary file not shown.

BIN
data/images/background.png Normal file

Binary file not shown.

BIN
data/images/bar_l.png Normal file

Binary file not shown.

BIN
data/images/bar_l_sh.png Normal file

Binary file not shown.

BIN
data/images/bar_r.png Normal file

Binary file not shown.

BIN
data/images/bar_r_sh.png Normal file

Binary file not shown.

BIN
data/images/bg.png Normal file

Binary file not shown.

BIN
data/images/blue_type.png Normal file

Binary file not shown.

Binary file not shown.

BIN
data/images/border.png Normal file

Binary file not shown.

Binary file not shown.

BIN
data/images/crosshair.png Normal file

Binary file not shown.

BIN
data/images/e_logo.png Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 B

BIN
data/images/evas_logo.png Normal file

Binary file not shown.

Binary file not shown.

BIN
data/images/floral.png Normal file

Binary file not shown.

BIN
data/images/item_normal.png Normal file

Binary file not shown.

Binary file not shown.

BIN
data/images/item_title.png Normal file

Binary file not shown.

BIN
data/images/logo.png Normal file

Binary file not shown.

BIN
data/images/logo_shad.png Normal file

Binary file not shown.

BIN
data/images/numbers.png Normal file

Binary file not shown.

BIN
data/images/panel.png Normal file

Binary file not shown.

Binary file not shown.

BIN
data/images/panel_top.png Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
data/images/ref.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
data/images/shad.png Normal file

Binary file not shown.

BIN
data/images/shadow.png Normal file

Binary file not shown.

BIN
data/images/tex.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
data/images/vanille.png Normal file

Binary file not shown.

178
doc/eflpp.css Normal file
View File

@ -0,0 +1,178 @@
td.md {
background-color: #ffffff;
font-family: monospace;
text-align: left;
vertical-align: center;
font-size: 10;
padding-right : 1px;
padding-top : 1px;
padding-left : 1px;
padding-bottom : 1px;
margin-left : 1px;
margin-right : 1px;
margin-top : 1px;
margin-bottom : 1px
}
td.mdname {
font-family: monospace;
text-align: left;
vertical-align: center;
font-size: 10;
padding-right : 1px;
padding-top : 1px;
padding-left : 1px;
padding-bottom : 1px;
margin-left : 1px;
margin-right : 1px;
margin-top : 1px;
margin-bottom : 1px
}
h1
{
text-align: center;
color: #333333
}
h2
{
text-align: left;
color: #333333
}
h3
{
text-align: left;
color: #333333
}
a:link
{
text-decoration: none;
color: #444444;
font-weight: bold;
}
a:visited
{
text-decoration: none;
color: #666666;
font-weight: bold;
}
a:hover
{
text-decoration: none;
color: #000000;
font-weight: bold;
}
a.nav:link
{
text-decoration: none;
color: #444444;
font-weight: normal;
}
a.nav:visited
{
text-decoration: none;
color: #666666;
font-weight: normal;
}
a.nav:hover
{
text-decoration: none;
color: #000000;
font-weight: normal;
}
a.qindex:link
{
text-decoration: none;
color: #444444;
font-weight: normal;
}
a.qindex:visited
{
text-decoration: none;
color: #666666;
font-weight: normal;
}
a.qindex:hover
{
text-decoration: none;
color: #000000;
font-weight: normal;
}
p
{
color: #000000;
font-family: sans-serif;
font-size: 10;
}
body {
background-image: url("hilite.png");
background-repeat: no-repeat;
background-position: left top;
background-color: #dddddd;
color: #000000;
font-family: sans-serif;
padding: 8px;
margin: 0;
}
div.fragment
{
background-image: url("hilite.png");
background-repeat: no-repeat;
background-position: left top;
border: thin solid #888888;
background-color: #eeeeee;
padding: 4px;
text-align: left;
vertical-align: center;
font-size: 12;
}
hr
{
border: 0;
background-color: #000000;
width: 80%;
height: 1;
}
dl
{
background-image: url("hilite.png");
background-repeat: no-repeat;
background-position: left top;
border: thin solid #aaaaaa;
background-color: #eeeeee;
padding: 4px;
text-align: left;
vertical-align: center;
font-size: 12;
}
em
{
color: #334466;
font-family: courier;
font-size: 10;
font-style: normal;
}
div.nav
{
border: thin solid #000000;
background-color: #ffffff;
padding: 1px;
text-align: center;
vertical-align: center;
font-size: 12;
}
div.body
{
border: thin solid #000000;
background-color: #ffffff;
padding: 4px;
text-align: left;
font-size: 10;
}
div.diag
{
border: thin solid #888888;
background-color: #eeeeee;
padding: 4px;
text-align: center;
font-size: 8;
}

2
doc/foot.html Normal file
View File

@ -0,0 +1,2 @@
</body>
</html>

19
doc/head.html Normal file
View File

@ -0,0 +1,19 @@
<html>
<head>
<title>$title</title>
<link href=eflpp.css rel=stylesheet type=text/css>
</head>
<body>
<div class=nav>
<table border=0 align=center><tr>
<td width=16><img src=eflpp_mini.png width=16 height=16 alt=E></td>
<td width=100% align=center>
E : F : L : P : P
</td>
<td width=16><img src=eflpp_mini.png width=16 height=16 alt=E></td>
</tr></table>
</div>

BIN
doc/img/eflpp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

BIN
doc/img/eflpp_big.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 915 KiB

BIN
doc/img/eflpp_mini.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 B

BIN
doc/img/eflpp_small.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
doc/img/hilite.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

13
eflpp-uninstalled.pc.in Normal file
View File

@ -0,0 +1,13 @@
prefix=
exec_prefix=
libdir=src
includedir=src
Name: @PACKAGE@
Description: EFL C++ Wrapper, Not installed
Version: @VERSION@
Requires: sigc++-2.0
Conflicts:
Libs: ${pcfiledir}/${libdir}/libeflpp.la
Cflags: -I${pcfiledir}/${includedir}/common -I${pcfiledir}/${includedir}/ecore -I${pcfiledir}/${includedir}/edb -I${pcfiledir}/${includedir}/edje -I${pcfiledir}/${includedir}/eet -I${pcfiledir}/${includedir}/embryo -I${pcfiledir}/${includedir}/emotion -I${pcfiledir}/${includedir}/esmart -I${pcfiledir}/${includedir}/etk -I${pcfiledir}/${includedir}/evas -I${pcfiledir}/${includedir}/ewl -I${pcfiledir}/${includedir}/misc

44
eflpp.anjuta Normal file
View File

@ -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="Location"
value="anjuta-symbol-browser:SymbolBrowserPlugin"/>
</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>

13
eflpp.pc.in Normal file
View File

@ -0,0 +1,13 @@
prefix=@prefix@
exec_prefix=@prefix@
libdir=@exec_prefix@/lib
includedir=@prefix@/include/eflpp
Name: @PACKAGE@
Description: EFL C++ Wrapper
Version: @VERSION@
Requires: sigc++-2.0
Conflicts:
Libs: -L${libdir} -leflpp
Cflags: -I${includedir}

2
examples/.cvsignore Normal file
View File

@ -0,0 +1,2 @@
Makefile
Makefile.in

1
examples/Makefile.am Normal file
View File

@ -0,0 +1 @@
SUBDIRS = edje esmart etk ewl emotion ecore signals debug

View File

@ -0,0 +1,2 @@
Makefile
Makefile.in

View File

@ -0,0 +1 @@
SUBDIRS = bootmanager

View File

@ -0,0 +1,3 @@
Makefile
Makefile.in
.deps

View File

@ -0,0 +1,30 @@
## Process this file with automake to produce Makefile.in
INCLUDES =
AM_CXXFLAGS =\
@PACKAGE_CFLAGS@ \
-I$(top_srcdir)/src/ecore/ \
-I$(top_srcdir)/src/evas/ \
-I$(top_srcdir)/src/edje/ \
-I$(top_srcdir)/src/common/ \
-Wall
bin_PROGRAMS = eflpp_angstrom_bootmanager
eflpp_angstrom_bootmanager_SOURCES = \
app.cpp \
app.h \
calibrate.cpp \
calibrate.h \
main.cpp \
Makefile.am \
win.cpp \
win.h
eflpp_angstrom_bootmanager_LDFLAGS = @PACKAGE_LIBS@
eflpp_angstrom_bootmanager_LDADD = $(top_builddir)/src/libeflpp.la
eflpp_angstrom_bootmanager_DEPENDENCIES = $(top_builddir)/src/libeflpp.la

View File

@ -0,0 +1,31 @@
#include "app.h"
#include <eflpp_ecore.h>
using namespace efl;
#include <cstdlib>
#include <iostream>
using namespace std;
BootManagerApp::BootManagerApp( int argc, const char** argv, const char* title )
:EcoreApplication( argc, argv, title )
{
}
BootManagerApp::~BootManagerApp()
{
}
void BootManagerApp::suspend( const char*, const char* )
{
cout << "APP: suspending..." << endl;
//FIXME Add confirmation dialog
//::system( "apm --suspend" );
}
void BootManagerApp::reboot()
{
cout << "APP: rebooting..." << endl;
//FIXME Add confirmation dialog
//::system( "reboot" );
}

View File

@ -0,0 +1,20 @@
#ifndef BOOTMANAGER_APP_H
#define BOOTMANAGER_APP_H
#include <eflpp_ecore.h>
using namespace efl;
class BootManagerApp : public EcoreApplication
{
public:
BootManagerApp( int argc, const char** argv, const char* title );
~BootManagerApp();
public: /* slots */
void suspend( const char*, const char* );
void reboot();
};
#endif

View File

@ -0,0 +1,301 @@
#include "calibrate.h"
#include <cstdio>
#include <cerrno>
using namespace std;
#include <eflpp_evas.h>
#include <eflpp_ecore.h>
#ifdef ENABLE_EFLPP_FB
#include <Ecore_Fb.h>
#endif
#include <Ecore.h>
const unsigned int offset = 32;
static Ecore_Event_Filter* filter = 0;
static void* calibration_event_filter_start( void* data )
{
return 0;
}
static int calibration_event_filter_event( void* loop_data, void *data, int type, void* event )
{
#ifdef ENABLE_EFLPP_FB
if ( type == ECORE_FB_EVENT_MOUSE_BUTTON_UP )
{
Ecore_Fb_Event_Mouse_Button_Up* ev = static_cast<Ecore_Fb_Event_Mouse_Button_Up*>( event );
cout << " - data = " << data << endl;
cout << " - mouse button up at position = " << ev->x << ", " << ev->y << endl;
CalibrationRectangle* cr = reinterpret_cast<CalibrationRectangle*>( data );
cr->nextPoint( ev->x, ev->y );
return 0; // swallow event
}
else
#endif
{
return 1; // keep event
}
}
static void calibration_event_filter_end( void* data, void *loop_data )
{
}
CalibrationRectangle::CalibrationRectangle( int x, int y, int width, int height, EvasCanvas* evas )
:EvasRectangle( x, y, width, height, evas, "CalibrationRectangle" )
{
setLayer( 255 );
setColor( 255, 255, 255, 0 ); // white, fully transparent
// setup the five calibration points
Size s = evas->size();
cd.canvasPoints[TopLeft].set( offset, offset );
cd.canvasPoints[BottomLeft].set( offset, s.height()-offset );
cd.canvasPoints[BottomRight].set( s.width()-offset, s.height()-offset );
cd.canvasPoints[TopRight].set( s.width()-offset, offset );
cd.canvasPoints[Center].set( s.width()/2, s.height()/2 );
switch ( eApp->mainWindow()->rotation() )
{
case 0:
cout << "ROT 0" << endl;
cd.screenPoints[TopLeft] = cd.canvasPoints[TopLeft];
cd.screenPoints[BottomLeft] = cd.canvasPoints[BottomLeft];
cd.screenPoints[BottomRight] = cd.canvasPoints[BottomRight];
cd.screenPoints[TopRight] = cd.canvasPoints[TopRight];
cd.screenPoints[Center] = cd.canvasPoints[Center];
break;
case 90:
cd.screenPoints[TopLeft] = cd.canvasPoints[TopLeft];
cd.screenPoints[BottomLeft] = cd.canvasPoints[BottomLeft];
cd.screenPoints[BottomRight] = cd.canvasPoints[BottomRight];
cd.screenPoints[TopRight] = cd.canvasPoints[TopRight];
cd.screenPoints[Center] = cd.canvasPoints[Center];
break;
case 180:
cd.screenPoints[TopLeft] = cd.canvasPoints[TopLeft];
cd.screenPoints[BottomLeft] = cd.canvasPoints[BottomLeft];
cd.screenPoints[BottomRight] = cd.canvasPoints[BottomRight];
cd.screenPoints[TopRight] = cd.canvasPoints[TopRight];
cd.screenPoints[Center] = cd.canvasPoints[Center];
break;
case 270:
cout << "ROT 270" << endl;
cd.screenPoints[TopLeft].set( s.height()-offset, offset );
cd.screenPoints[BottomLeft].set( offset, offset );
cd.screenPoints[BottomRight].set( offset, s.width()-offset );
cd.screenPoints[TopRight].set( s.height()-offset, s.width()-offset );
cd.screenPoints[Center].set( s.height()/2, s.width()/2 );
break;
}
// setup background
background = new EvasGradient( 0, 0, s.width(), s.height(), evas );
background->setLayer( 21 );
background->setAngle( 15 );
background->addColor( 255, 255, 255, 255, 10 );
background->addColor( 200, 200, 200, 255, 10 );
background->addColor( 255, 255, 255, 255, 10 );
background->show();
// setup text
text = new EvasText( PACKAGE_DATA_DIR "/fonts/Vera.ttf", 12, 0, s.height()/2, "foo", evas );
text->setColor( 0, 0, 0, 255 );
text->setLayer( 22 );
text->setText( "Click on crosshair to calibrate screen" );
text->show();
// setup crosshair
#if 0
crosshair = new EvasImage( PACKAGE_DATA_DIR "/images/crosshair.png", evas );
crosshair->setLayer( 23 );
#else
crosshairhorz = new EvasLine( evas );
crosshairvert = new EvasLine( evas );
crosshairhorz->setLayer( 23 );
crosshairvert->setLayer( 23 );
crosshairhorz->setColor( 0, 0, 0, 255 );
crosshairvert->setColor( 0, 0, 0, 255 );
crosshairhorz->show();
crosshairvert->show();
#endif
}
CalibrationRectangle::~CalibrationRectangle()
{
}
bool CalibrationRectangle::handleShow()
{
#ifdef ENABLE_EFLPP_FB
ecore_fb_touch_screen_calibrate_set( 1, 0, 0, 0, 0 );
#endif
cout << "this = " << this << endl;
filter = ecore_event_filter_add( &calibration_event_filter_start,
&calibration_event_filter_event,
&calibration_event_filter_end, this );
position = TopLeft;
moveCrossHair();
}
void CalibrationRectangle::nextPoint( int x, int y )
{
cd.devicePoints[position].set( x, y );
if ( ++position <= LastPosition )
{
moveCrossHair();
}
else
{
//FIXME: Don't delete or hide, dissolve, and after that, hide :D
//hide();
hide();
delete background;
#if 0
delete crosshair;
#else
delete crosshairhorz;
delete crosshairvert;
#endif
delete text;
//crosshair->hide();
//text->hide();
#ifdef ENABLE_EFLPP_FB
ecore_fb_touch_screen_calibrate_set( 0, 0, 0, 0, 0 );
#endif
ecore_event_filter_del( filter );
calibrate();
done.emit();
}
}
void CalibrationRectangle::moveCrossHair()
{
#if 0
crosshair->move( cd.canvasPoints[position] );
crosshair->show();
#else
int x = cd.canvasPoints[position].x();
int y = cd.canvasPoints[position].y();
crosshairhorz->setGeometry( x-offset/2, y, offset, 0 );
crosshairvert->setGeometry( x, y-offset/2, 0, offset );
#endif
}
bool CalibrationRectangle::calibrate()
{
// calibration code based on ts_calibrate.c (C) Russell King
int j;
float n, x, y, x2, y2, xy, z, zx, zy;
float det, cal_a, cal_b, cal_c, cal_d, cal_e, cal_f, cal_i;
float scaling = 65536.0;
int cal_x[5], cal_xfb[5], cal_y[5], cal_yfb[5], cal_o[7];
cal_x[0]=cd.devicePoints[ TopLeft ].x();
cal_y[0]=cd.devicePoints[ TopLeft ].y();
cal_x[1]=cd.devicePoints[ TopRight ].x();
cal_y[1]=cd.devicePoints[ TopRight ].y();
cal_x[2]=cd.devicePoints[ BottomLeft ].x();
cal_y[2]=cd.devicePoints[ BottomLeft ].y();
cal_x[3]=cd.devicePoints[ BottomRight ].x();
cal_y[3]=cd.devicePoints[ BottomRight ].y();
cal_x[4]=cd.devicePoints[ Center ].x();
cal_y[4]=cd.devicePoints[ Center ].y();
cal_xfb[0]=cd.screenPoints[ TopLeft ].x();
cal_yfb[0]=cd.screenPoints[ TopLeft ].y();
cal_xfb[1]=cd.screenPoints[ TopRight ].x();
cal_yfb[1]=cd.screenPoints[ TopRight ].y();
cal_xfb[2]=cd.screenPoints[ BottomLeft ].x();
cal_yfb[2]=cd.screenPoints[ BottomLeft ].y();
cal_xfb[3]=cd.screenPoints[ BottomRight ].x();
cal_yfb[3]=cd.screenPoints[ BottomRight ].y();
cal_xfb[4]=cd.screenPoints[ Center ].x();
cal_yfb[4]=cd.screenPoints[ Center ].y();
// Get sums for matrix
n = x = y = x2 = y2 = xy = 0;
for(j=0;j<5;j++) {
n += 1.0;
x += (float)cal_x[j];
y += (float)cal_y[j];
x2 += (float)(cal_x[j]*cal_x[j]);
y2 += (float)(cal_y[j]*cal_y[j]);
xy += (float)(cal_x[j]*cal_y[j]);
}
// Get determinant of matrix -- check if determinant is too small
det = n*(x2*y2 - xy*xy) + x*(xy*y - x*y2) + y*(x*xy - y*x2);
if ( det < 0.1 && det > -0.1 )
{
cout << "CalibrationRectangle::calibrate() - determinant " << det << " is too small - aborting." << endl;
return false;
}
// Get elements of inverse matrix
cal_a = (x2*y2 - xy*xy)/det;
cal_b = (xy*y - x*y2)/det;
cal_c = (x*xy - y*x2)/det;
cal_e = (n*y2 - y*y)/det;
cal_f = (x*y - n*xy)/det;
cal_i = (n*x2 - x*x)/det;
// Get sums for x calibration
z = zx = zy = 0;
for( j=0; j < 5; j++ ) {
z += (float)cal_xfb[j];
zx += (float)(cal_xfb[j]*cal_x[j]);
zy += (float)(cal_xfb[j]*cal_y[j]);
}
// Now multiply out to get the calibration for framebuffer x coord
cal_o[0] = (int)((cal_a*z + cal_b*zx + cal_c*zy)*(scaling));
cal_o[1] = (int)((cal_b*z + cal_e*zx + cal_f*zy)*(scaling));
cal_o[2] = (int)((cal_c*z + cal_f*zx + cal_i*zy)*(scaling));
cout << "CAL: " << (cal_a*z + cal_b*zx + cal_c*zy) << " "
<< (cal_b*z + cal_e*zx + cal_f*zy) << " "
<< (cal_c*z + cal_f*zx + cal_i*zy) << endl;
// Get sums for y calibration
z = zx = zy = 0;
for (j=0;j<5;j++) {
z += (float)cal_yfb[j];
zx += (float)(cal_yfb[j]*cal_x[j]);
zy += (float)(cal_yfb[j]*cal_y[j]);
}
// Now multiply out to get the calibration for framebuffer y coord
cal_o[3] = (int)((cal_a*z + cal_b*zx + cal_c*zy)*(scaling));
cal_o[4] = (int)((cal_b*z + cal_e*zx + cal_f*zy)*(scaling));
cal_o[5] = (int)((cal_c*z + cal_f*zx + cal_i*zy)*(scaling));
cout << "CAL: " << (cal_a*z + cal_b*zx + cal_c*zy) << " "
<< (cal_b*z + cal_e*zx + cal_f*zy) << " "
<< (cal_c*z + cal_f*zx + cal_i*zy) << endl;
// If we got here, we're OK, so assign scaling to a[6] and return
cal_o[6] = (int) scaling;
cout << "CAL constants: " << cal_o[0] << " " << cal_o[1] << " " << cal_o[2] << " "
<< cal_o[3] << " " << cal_o[4] << " " << cal_o[5] << " " << cal_o[6] << endl;
FILE* stream = fopen( "/etc/pointercal", "w" );
if ( stream == NULL )
{
cout << "CalibrationRectangle::calibrate() - couldn't open /etc/pointercal (" << strerror( errno ) << ")" << endl;
return false;
}
fprintf( stream, "%d %d %d %d %d %d %d\n", cal_o[1], cal_o[2], cal_o[0], cal_o[4], cal_o[5], cal_o[3], cal_o[6] );
fclose( stream );
return true;
}

View File

@ -0,0 +1,50 @@
#ifndef CALIBRATE_H
#define CALIBRATE_H
#include <eflpp_evas.h>
using namespace efl;
enum
{
TopLeft = 0,
TopRight = 1,
BottomRight = 2,
BottomLeft = 3,
Center = 4,
LastPosition = Center
};
class CalibrationData
{
public:
Point devicePoints[5]; // unrotated, unscaled
Point screenPoints[5]; // unrotated, scaled
Point canvasPoints[5]; // rotated, scaled
};
class CalibrationRectangle : public EvasRectangle
{
public:
CalibrationRectangle( int x, int y, int width, int height, EvasCanvas* evas );
virtual ~CalibrationRectangle();
Signal done;
bool calibrate();
void nextPoint( int x, int y );
protected:
virtual bool handleShow();
void moveCrossHair();
private:
CalibrationData cd;
unsigned int position;
EvasGradient* background;
EvasImage* crosshair;
EvasLine* crosshairhorz;
EvasLine* crosshairvert;
EvasText* text;
};
#endif

View File

@ -0,0 +1,16 @@
#include "app.h"
#include "win.h"
// Ångström BootManager
int main( int argc, const char **argv )
{
BootManagerApp application( argc, argv, "Angstrom BootManager" );
BootManagerWin* window = new BootManagerWin( 240, 320 );
window->show();
application.exec();
return 0;
}

View File

@ -0,0 +1,42 @@
#include "app.h"
#include "win.h"
/* EFL */
#include <eflpp_ecore.h>
#include <eflpp_evas.h>
#include <eflpp_edje.h>
#include <assert.h>
using namespace efl;
BootManagerWin::BootManagerWin( int width, int height )
:EcoreEvasWindow( width, height ), _app( static_cast<BootManagerApp*>( eApp ) )
{
EvasCanvas* evas = canvas();
//FIXME: Why does that crash if created in slotCalibrationDone() ?
background = new EvasEdje( 0, 0, PACKAGE_DATA_DIR "/edjes/angstrom-bootmanager.edj", "background", evas );
background->setLayer( 0 );
background->resize( evas->size() );
background->part( "version" )->setText( "Angstrom V2006.01" );
background->show();
//FIXME: Focus handling on buttons is not quite right if and only if the calibration is created... evas/edje bug?
buttons = new EvasEdje( 0, 0, PACKAGE_DATA_DIR "/edjes/angstrom-bootmanager.edj", "buttons", evas );
buttons->setLayer( 1 );
buttons->resize( evas->size() );
buttons->show();
buttons->connect( "angstrom|system|suspend", "*", sigc::mem_fun( _app, &BootManagerApp::suspend ) );
buttons->connect( "angstrom|system|reboot", "*", sigc::hide(sigc::hide(sigc::mem_fun( _app, &BootManagerApp::reboot ) ) ) );
}
BootManagerWin::~BootManagerWin()
{
}
void BootManagerWin::slotCalibrationDone()
{
// scan available boot devices and show them in a list
}

View File

@ -0,0 +1,27 @@
#ifndef BOOTMANAGER_WIN_H
#define BOOTMANAGER_WIN_H
#include <eflpp_ecore.h>
#include <eflpp_evas.h>
#include <eflpp_edje.h>
using namespace efl;
class BootManagerApp;
class BootManagerWin : public EcoreEvasWindow
{
public:
BootManagerWin( int height, int width );
~BootManagerWin();
void slotCalibrationDone();
private:
BootManagerApp* _app;
EvasEdje* background;
EvasEdje* buttons;
};
#endif

View File

@ -0,0 +1,2 @@
Makefile
Makefile.in

View File

@ -0,0 +1 @@
SUBDIRS = simple

Some files were not shown because too many files have changed in this diff Show More