parent
d744ab1f70
commit
664d811ff9
30 changed files with 1757 additions and 0 deletions
@ -0,0 +1,2 @@ |
||||
The Rasterman (Carsten Haitzler) <raster@rasterman.com> |
||||
|
@ -0,0 +1,28 @@ |
||||
Copyright (C) 2000 Carsten Haitzler and various contributors (see AUTHORS) |
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
of this software and associated documentation files (the "Software"), to |
||||
deal in the Software without restriction, including without limitation the |
||||
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
||||
sell copies of the Software, and to permit persons to whom the Software is |
||||
furnished to do so, subject to the following conditions: |
||||
|
||||
The above copyright notice and this permission notice shall be included in |
||||
all copies of the Software and its Copyright notices. In addition publicly |
||||
documented acknowledgment must be given that this software has been used if no |
||||
source code of this software is made available publicly. This includes |
||||
acknowledgments in either Copyright notices, Manuals, Publicity and Marketing |
||||
documents or any documentation provided with any product containing this |
||||
software. This License does not apply to any software that links to the |
||||
libraries provided by this software (statically or dynamically), but only to |
||||
the software provided. |
||||
|
||||
Please see the COPYING.PLAIN for a plain-english explanation of this notice |
||||
and it's intent. |
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
||||
THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER |
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
@ -0,0 +1,33 @@ |
||||
Plain English Copyright Notice |
||||
|
||||
This file is not intended to be the actual License. The reason this file |
||||
exists is that we here are programmers and engineers. We aren't lawyers. We |
||||
provide licenses that we THINK say the right things, but we have our own |
||||
intentions at heart. This is a plain-english explanation of what those |
||||
intentions are, and if you follow them you will be within the "spirit" of |
||||
the license. |
||||
|
||||
The intent is for us to enjoy writing software that is useful to us (the |
||||
AUTHORS) and allow others to use it freely and also benefit from the work we |
||||
put into making it. We don't want to restrict others using it. They should |
||||
not *HAVE* to make the source code of the applications they write that |
||||
simply link to these libraries (be that statically or dynamically), or for |
||||
them to be limited as to what license they choose to use (be it open, closed |
||||
or anything else). But we would like to know you are using these libraries. |
||||
We simply would like to know that it has been useful to someone. This is why |
||||
we ask for acknowledgement of some sort. |
||||
|
||||
You can do what you want with the source of this software - it doesn't |
||||
matter. We still have it here for ourselves and it is open and free to use |
||||
and download and play with. It can't be taken away. We don't really mind what |
||||
you do with the source to your software. We would simply like to know that |
||||
you are using it - especially if it makes it to a commerical product. If you |
||||
simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and |
||||
then make sure you include a paragraph or page in the manual for the product |
||||
with the copyright notice and state that you used this software, we will be |
||||
very happy. If you want to contribute back modifications and fixes you may have |
||||
made we will welcome those too with open arms (generally). If you want help |
||||
with changes needed, ports needed or features to be added, arrangements can |
||||
be easily made with some dialogue. |
||||
|
||||
Carsten Haitzler <raster@rasterman.com> |
@ -0,0 +1,145 @@ |
||||
PROJECT_NAME = Edje |
||||
PROJECT_NUMBER = |
||||
OUTPUT_DIRECTORY = doc |
||||
INPUT = edje.c |
||||
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/edje.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 = NO |
||||
EXTRACT_PRIVATE = NO |
||||
EXTRACT_STATIC = NO |
||||
EXTRACT_LOCAL_CLASSES = NO |
||||
HIDE_UNDOC_MEMBERS = YES |
||||
HIDE_UNDOC_CLASSES = YES |
||||
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 = NO |
||||
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 = NO |
||||
HIDE_UNDOC_RELATIONS = YES |
||||
HAVE_DOT = NO |
||||
CLASS_GRAPH = NO |
||||
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 |
||||
CGI_NAME = search.cgi |
||||
CGI_URL = |
||||
DOC_URL = |
||||
DOC_ABSPATH = |
||||
BIN_ABSPATH = /usr/bin/ |
||||
EXT_DOC_PATHS = |
@ -0,0 +1,14 @@ |
||||
COMPILING and INSTALLING: |
||||
|
||||
If you got a official release tar archive do: |
||||
./configure |
||||
|
||||
( otherwise if you got this from enlightenment cvs do: ./autogen.sh ) |
||||
|
||||
Then to compile: |
||||
make |
||||
|
||||
To install (run this as root, or the user who handles installs): |
||||
make install |
||||
|
||||
NOTE: You MUST make install Edje for it to run properly. |
@ -0,0 +1,18 @@ |
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
SUBDIRS = src
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess \
|
||||
config.h.in config.sub configure install-sh \
|
||||
ltconfig ltmain.sh missing mkinstalldirs \
|
||||
stamp-h.in edje_docs.tar edje_docs.tar.gz edje.c
|
||||
|
||||
dist-hook: |
||||
./gendoc; \
|
||||
tar cvf edje_docs.tar doc; \
|
||||
rm -f edje_docs.tar.gz; \
|
||||
gzip -9 edje_docs.tar;
|
||||
|
||||
bin_SCRIPTS = edje-config
|
||||
|
||||
EXTRA_DIST = README AUTHORS COPYING COPYING-PLAIN edje.spec edje.c.in gendoc Doxyfile edje_docs.tar.gz
|
@ -0,0 +1 @@ |
||||
Edje 0.0.1 |
@ -0,0 +1,3 @@ |
||||
#undef PACKAGE_SOURCE_DIR |
||||
#undef PACKAGE_BIN_DIR |
||||
#undef PACKAGE_LIB_DIR |
@ -0,0 +1,137 @@ |
||||
#!/bin/sh |
||||
# Run this to generate all the initial makefiles, etc. |
||||
|
||||
srcdir=`dirname $0` |
||||
PKG_NAME="the package." |
||||
|
||||
DIE=0 |
||||
|
||||
(autoconf --version) < /dev/null > /dev/null 2>&1 || { |
||||
echo |
||||
echo "**Error**: You must have \`autoconf' installed to." |
||||
echo "Download the appropriate package for your distribution," |
||||
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" |
||||
DIE=1 |
||||
} |
||||
|
||||
(grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && { |
||||
(libtool --version) < /dev/null > /dev/null 2>&1 || { |
||||
echo |
||||
echo "**Error**: You must have \`libtool' installed." |
||||
echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz" |
||||
echo "(or a newer version if it is available)" |
||||
DIE=1 |
||||
} |
||||
} |
||||
|
||||
grep "^AM_GNU_GETTEXT" $srcdir/configure.in >/dev/null && { |
||||
grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \ |
||||
(gettext --version) < /dev/null > /dev/null 2>&1 || { |
||||
echo |
||||
echo "**Error**: You must have \`gettext' installed." |
||||
echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz" |
||||
echo "(or a newer version if it is available)" |
||||
DIE=1 |
||||
} |
||||
} |
||||
|
||||
(automake --version) < /dev/null > /dev/null 2>&1 || { |
||||
echo |
||||
echo "**Error**: You must have \`automake' installed." |
||||
echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" |
||||
echo "(or a newer version if it is available)" |
||||
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 "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" |
||||
echo "(or a newer version if it is available)" |
||||
DIE=1 |
||||
} |
||||
|
||||
if test "$DIE" -eq 1; then |
||||
exit 1 |
||||
fi |
||||
|
||||
if test -z "$*"; then |
||||
echo "**Warning**: I am going to run \`configure' with no arguments." |
||||
echo "If you wish to pass any to it, please specify them on the" |
||||
echo \`$0\'" command line." |
||||
echo |
||||
fi |
||||
|
||||
case $CC in |
||||
xlc ) |
||||
am_opt=--include-deps;; |
||||
esac |
||||
|
||||
for coin in `find $srcdir -name configure.in -print` |
||||
do |
||||
dr=`dirname $coin` |
||||
if test -f $dr/NO-AUTO-GEN; then |
||||
echo skipping $dr -- flagged as no auto-gen |
||||
else |
||||
echo processing $dr |
||||
macrodirs=`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin` |
||||
( cd $dr |
||||
aclocalinclude="$ACLOCAL_FLAGS" |
||||
for k in $macrodirs; do |
||||
if test -d $k; then |
||||
aclocalinclude="$aclocalinclude -I $k" |
||||
##else |
||||
## echo "**Warning**: No such directory \`$k'. Ignored." |
||||
fi |
||||
done |
||||
if grep "^AM_GNU_GETTEXT" configure.in >/dev/null; then |
||||
if grep "sed.*POTFILES" configure.in >/dev/null; then |
||||
: do nothing -- we still have an old unmodified configure.in |
||||
else |
||||
echo "Creating $dr/aclocal.m4 ..." |
||||
test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 |
||||
echo "Running gettextize... Ignore non-fatal messages." |
||||
echo "no" | gettextize --force --copy |
||||
echo "Making $dr/aclocal.m4 writable ..." |
||||
test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 |
||||
fi |
||||
fi |
||||
if grep "^AM_GNOME_GETTEXT" configure.in >/dev/null; then |
||||
echo "Creating $dr/aclocal.m4 ..." |
||||
test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 |
||||
echo "Running gettextize... Ignore non-fatal messages." |
||||
echo "no" | gettextize --force --copy |
||||
echo "Making $dr/aclocal.m4 writable ..." |
||||
test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 |
||||
fi |
||||
if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then |
||||
echo "Running libtoolize..." |
||||
libtoolize --force --copy |
||||
fi |
||||
echo "Running aclocal $aclocalinclude ..." |
||||
aclocal $aclocalinclude |
||||
if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then |
||||
echo "Running autoheader..." |
||||
autoheader |
||||
fi |
||||
echo "Running automake --gnu $am_opt ..." |
||||
automake --add-missing --gnu $am_opt |
||||
echo "Running autoconf ..." |
||||
autoconf |
||||
) |
||||
fi |
||||
done |
||||
|
||||
#conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c |
||||
|
||||
if test x$NOCONFIGURE = x; then |
||||
echo Running $srcdir/configure $conf_flags "$@" ... |
||||
$srcdir/configure $conf_flags "$@" \ |
||||
&& echo Now type \`make\' to compile $PKG_NAME |
||||
else |
||||
echo Skipping configure process. |
||||
fi |
@ -0,0 +1,86 @@ |
||||
dnl Process this file with autoconf to produce a configure script. |
||||
|
||||
# get rid of that stupid cache mechanism |
||||
rm -f config.cache |
||||
|
||||
AC_INIT(configure.in) |
||||
AM_INIT_AUTOMAKE(edje, 0.0.1) |
||||
AM_CONFIG_HEADER(config.h) |
||||
|
||||
AC_ISC_POSIX |
||||
AC_PROG_CC |
||||
AM_PROG_CC_STDC |
||||
AC_HEADER_STDC |
||||
AC_C_CONST |
||||
AM_ENABLE_SHARED |
||||
AM_PROG_LIBTOOL |
||||
|
||||
if test "x${exec_prefix}" = "xNONE"; then |
||||
if test "x${prefix}" = "xNONE"; then |
||||
bindir="${ac_default_prefix}/bin"; |
||||
else |
||||
bindir="${prefix}/bin"; |
||||
fi |
||||
else |
||||
if test "x${prefix}" = "xNONE"; then |
||||
bindir="${ac_default_prefix}/bin"; |
||||
else |
||||
bindir="${prefix}/bin"; |
||||
fi |
||||
fi |
||||
|
||||
if test "x${exec_prefix}" = "xNONE"; then |
||||
if test "x${prefix}" = "xNONE"; then |
||||
libdir="${ac_default_prefix}/lib"; |
||||
else |
||||
libdir="${prefix}/lib"; |
||||
fi |
||||
else |
||||
if test "x${prefix}" = "xNONE"; then |
||||
libdir="${ac_default_prefix}/lib"; |
||||
else |
||||
libdir="${prefix}/lib"; |
||||
fi |
||||
fi |
||||
|
||||
dnl Set PACKAGE_BIN_DIR in config.h. |
||||
if test "x${bindir}" = 'xNONE'; then |
||||
if test "x${prefix}" = "xNONE"; then |
||||
AC_DEFINE_UNQUOTED(PACKAGE_BIN_DIR, "${ac_default_prefix}/bin") |
||||
else |
||||
AC_DEFINE_UNQUOTED(PACKAGE_BIN_DIR, "${prefix}/bin") |
||||
fi |
||||
else |
||||
AC_DEFINE_UNQUOTED(PACKAGE_BIN_DIR, "${bindir}") |
||||
fi |
||||
|
||||
dnl Set PACKAGE_LIB_DIR in config.h. |
||||
if test "x${libdir}" = 'xNONE'; then |
||||
if test "x${prefix}" = "xNONE"; then |
||||
AC_DEFINE_UNQUOTED(PACKAGE_LIB_DIR, "${ac_default_prefix}/lib") |
||||
else |
||||
AC_DEFINE_UNQUOTED(PACKAGE_LIB_DIR, "${prefix}/lib") |
||||
fi |
||||
else |
||||
AC_DEFINE_UNQUOTED(PACKAGE_LIB_DIR, "${libdir}") |
||||
fi |
||||
|
||||
dnl Set PACKAGE_SOURCE_DIR in config.h. |
||||
packagesrcdir=`cd $srcdir && pwd` |
||||
AC_DEFINE_UNQUOTED(PACKAGE_SOURCE_DIR, "${packagesrcdir}") |
||||
|
||||
my_includes=`eet-config --cflags`" "`evas-config --cflags`" "`ecore-config --cflags` |
||||
my_libs=`eet-config --libs`" "`evas-config --libs`" "`ecore-config --libs` |
||||
AC_SUBST(my_includes) |
||||
AC_SUBST(my_libs) |
||||
|
||||
AC_OUTPUT([ |
||||
Makefile |
||||
src/Makefile |
||||
src/lib/Makefile |
||||
src/bin/Makefile |
||||
edje-config |
||||
],[ |
||||
chmod +x edje-config |
||||
touch edje_docs.tar.gz |
||||
]) |
@ -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; |
||||
} |
@ -0,0 +1,2 @@ |
||||
</body> |
||||
</html> |
@ -0,0 +1,19 @@ |
||||
<html> |
||||
|
||||
<head> |
||||
|
||||
<title>$title</title> |
||||
<link href=edje.css rel=stylesheet type=text/css> |
||||
|
||||
</head> |
||||
|
||||
<body> |
||||
<div class=nav> |
||||
<table border=0 align=center><tr> |
||||
<td width=16><img src=edje_mini.png width=16 height=16 alt=E></td> |
||||
<td width=100% align=center> |
||||
E : V : O : A : K |
||||
</td> |
||||
<td width=16><img src=edje_mini.png width=16 height=16 alt=E></td> |
||||
</tr></table> |
||||
</div> |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 915 KiB |
After Width: | Height: | Size: 753 B |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 6.0 KiB |
@ -0,0 +1,59 @@ |
||||
#!/bin/sh |
||||
|
||||
prefix=@prefix@ |
||||
exec_prefix=@exec_prefix@ |
||||
exec_prefix_set=no |
||||
|
||||
usage="\ |
||||
Usage: evas-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--libs] [--cflags]" |
||||
|
||||
if test $# -eq 0; then |
||||
echo "${usage}" 1>&2 |
||||
exit 1 |
||||
fi |
||||
|
||||
while test $# -gt 0; do |
||||
case "$1" in |
||||
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; |
||||
*) optarg= ;; |
||||
esac |
||||
|
||||
case $1 in |
||||
--prefix=*) |
||||
prefix=$optarg |
||||
if test $exec_prefix_set = no ; then |
||||
exec_prefix=$optarg |
||||
fi |
||||
;; |
||||
--prefix) |
||||
echo $prefix |
||||
;; |
||||
--exec-prefix=*) |
||||
exec_prefix=$optarg |
||||
exec_prefix_set=yes |
||||
;; |
||||
--exec-prefix) |
||||
echo $exec_prefix |
||||
;; |
||||
--version) |
||||
echo @VERSION@ |
||||
;; |
||||
--cflags) |
||||
if test @includedir@ != /usr/include ; then |
||||
includes=-I@includedir@ |
||||
fi |
||||
echo $includes |
||||
;; |
||||
--libs) |
||||
libdirs=-L@libdir@ |
||||
echo $libdirs -ledje |
||||
;; |
||||
*) |
||||
echo "${usage}" 1>&2 |
||||
exit 1 |
||||
;; |
||||
esac |
||||
shift |
||||
done |
||||
|
||||
exit 0 |
@ -0,0 +1,59 @@ |
||||
/**
|
||||
@file |
||||
@brief Edje Graphical Design Library |
||||
|
||||
These routines are used for Edje. |
||||
*/ |
||||
|
||||
/**
|
||||
|
||||
@mainpage Edje Library Documentation |
||||
@image html edje.png |
||||
@version 0.0.1 |
||||
@author Carsten Haitzler <raster@rasterman.com> |
||||
@date 2000-2002 |
||||
|
||||
@section intro What is Edje? |
||||
|
||||
A Graphical Design & Layout Library. |
||||
|
||||
It's purpose is to be a sequel to "Ebits" which to date has serviced the |
||||
needs of Enlightenment development for version 0.17. The original design |
||||
paramteres under which Ebits came about were a lot more restricted than the |
||||
resulting use of them, thus Edje was born. |
||||
|
||||
Edje is a more complex layout engine compared to Ebits. It doesn't pretend to |
||||
do containering and regular layout like a widget set. It still inherits the |
||||
more simplistic layour ideas behind Ebits, but it now does them a lot more |
||||
cleanly, allowing for easy expansion, and the ability to cover much more |
||||
ground than Ebits ever could. For the purposes of Enlightenment 0.17, Edje |
||||
should server all the purposes of creating visual elements (borders of |
||||
windows, scrollbars, etc.) and allow the deswigner the ability to animate, |
||||
layout and control the look and feel of any program using Edje as its basic |
||||
GUI constructor. This library allows for multiple collections of Layouts in |
||||
one file, sharing the same image database and thus allowing a whole theme to |
||||
be conveneintly packaged into 1 file and shipped around. |
||||
|
||||
Edje, unlike Ebits, separates the layout and behavior logic. Edje files ship |
||||
with an image database, used by all the parts in all the collections to |
||||
source graphical data. It has a directory of logical part names pointing to |
||||
the part collection entry ID in the file (thus allowing for multiple logical |
||||
names to point to the same part collection, allowing for the sharing of data |
||||
betwene display elements). Each part collection consists of a list of visual |
||||
parts, as well as a list of programs. A program is a conditionally run |
||||
program that if a particula event occurs (a button is pressed, a mouse enters |
||||
or leaves a part) will trigger an action that may affect other parts. In this |
||||
was a part collection can be "programmed" via its file as to hilight buttons |
||||
when the mouse passes over them or show hidden parts when a button is clicked |
||||
somewhere etc. The actions perfromed in changing from one state to another ar |
||||
also allowed to transition over a period of time, allowing animation. |
||||
|
||||
This separation and simplistic event driven style of programming can produce |
||||
almost any look and feel one could want for basic visual elements. Anything |
||||
more complex is likely the domain of an application or widget set that may |
||||
use Edje as a conveneient way of being able to configure parts of the display. |
||||
|
||||
|
||||
@todo Complete documentation of API |
||||
|
||||
*/ |
@ -0,0 +1,79 @@ |
||||
# Note that this is NOT a relocatable package |
||||
%define ver 0.0.1 |
||||
%define rel 1 |
||||
%define prefix /usr |
||||
|
||||
Summary: edje |
||||
Name: edje |
||||
Version: %ver |
||||
Release: %rel |
||||
Copyright: BSD |
||||
Group: System Environment/Libraries |
||||
Source: ftp://ftp.enlightenment.org/pub/evoak/edje-%{ver}.tar.gz |
||||
BuildRoot: /var/tmp/edje-root |
||||
Packager: The Rasterman <raster@rasterman.com> |
||||
URL: http://www.enlightenment.org/ |
||||
BuildRequires: libjpeg-devel |
||||
BuildRequires: zlib-devel |
||||
Requires: libjpeg |
||||
Requires: zlib |
||||
|
||||
Docdir: %{prefix}/doc |
||||
|
||||
%description |
||||
|
||||
Edje is a Graphical Design Library |
||||
|
||||
%package devel |
||||
Summary: Edje headers, static libraries, documentation and test programs |
||||
Group: System Environment/Libraries |
||||
Requires: %{name} = %{version} |
||||
|
||||
%description devel |
||||
Headers, static libraries, test programs and documentation for Eet |
||||
|
||||
%prep |
||||
rm -rf $RPM_BUILD_ROOT |
||||
|
||||
%setup -q |
||||
|
||||
%build |
||||
./configure --prefix=%prefix |
||||
|
||||
if [ "$SMP" != "" ]; then |
||||
(make "MAKE=make -k -j $SMP"; exit 0) |
||||
make |
||||
else |
||||
make |
||||
fi |
||||
########################################################################### |
||||
|
||||
%install |
||||
make DESTDIR=$RPM_BUILD_ROOT install |
||||
|
||||
%clean |
||||
rm -rf $RPM_BUILD_ROOT |
||||
|
||||
%post |
||||
/sbin/ldconfig |
||||
|
||||
%postun |
||||
/sbin/ldconfig |
||||
|
||||
%files |
||||
%defattr(-,root,root) |
||||
%attr(755,root,root) %{prefix}/lib/libedje.so* |
||||
%attr(755,root,root) %{prefix}/lib/libedje.la |
||||
|
||||
%files devel |
||||
%attr(755,root,root) %{prefix}/lib/libedje.a |
||||
%attr(755,root,root) %{prefix}/bin/edje* |
||||
%{prefix}/include/Edje* |
||||
%doc AUTHORS |
||||
%doc COPYING |
||||
%doc README |
||||
%doc edje_docs.tar.gz |
||||
|
||||
%changelog |
||||
* Sat Jun 23 2001 The Rasterman <raster@rasterman.com> |
||||
- Created spec file |
@ -0,0 +1,12 @@ |
||||
#!/bin/sh |
||||
cp ./edje.c.in ./edje.c |
||||
for I in `find ./src/lib -name "edje.h" -print`; do |
||||
cat $I >> ./edje.c |
||||
done |
||||
#for I in `find ./src/lib -name "*.c" -print`; do |
||||
# cat $I >> ./edje.c |
||||
#done |
||||
rm -rf ./doc/html ./doc/latex ./doc/man |
||||
doxygen |
||||
cp doc/img/*.png doc/html/ |
||||
exit 0 |
@ -0,0 +1,3 @@ |
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
SUBDIRS = lib bin
|
@ -0,0 +1,22 @@ |
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
INCLUDES = \
|
||||
-I.. \ |
||||
-I../lib \ |
||||
-I../.. \ |
||||
-I$(top_srcdir) \ |
||||
-I$(top_builddir) \ |
||||
-I$(top_srcdir)/lib \ |
||||
-I$(top_builddir)/lib \ |
||||
-I/usr/local/include \ |
||||
@my_includes@ |
||||
|
||||
bin_PROGRAMS = edje
|
||||
|
||||
edje_SOURCES = \
|
||||
edje_main.c |
||||
|
||||
edje_LDADD = \
|
||||
$(top_builddir)/src/lib/libedje.la |
||||
|
||||
edje_DEPENDENCIES = $(top_builddir)/src/lib/libedje.la
|
@ -0,0 +1,4 @@ |
||||
#include <Evas.h> |
||||
#include <Ecore.h> |
||||
#include <Ecore_Evas.h> |
||||
#include "Edje.h" |
@ -0,0 +1,90 @@ |
||||
#include "edje.h" |
||||
|
||||
double start_time = 0.0; |
||||
Ecore_Evas *ecore_evas = NULL; |
||||
Evas *evas = NULL; |
||||
|
||||
static int main_start(int argc, char **argv); |
||||
static void main_stop(void); |
||||
static void main_resize(Ecore_Evas *ee); |
||||
static int main_signal_exit(void *data, int ev_type, void *ev); |
||||
static void main_delete_request(Ecore_Evas *ee); |
||||
|
||||
static int |
||||
main_start(int argc, char **argv) |
||||
{ |
||||
start_time = ecore_time_get(); |
||||
if (!ecore_init()) return -1; |
||||
ecore_app_args_set(argc, (const char **)argv); |
||||
ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, main_signal_exit, NULL); |
||||
if (!ecore_evas_init()) return -1; |
||||
if ((argc > 1) && (!strcmp(argv[1], "-fb"))) |
||||
ecore_evas = ecore_evas_fb_new(NULL, 0, 240, 320); |
||||
else if ((argc > 1) && (!strcmp(argv[1], "-x"))) |
||||
ecore_evas = ecore_evas_software_x11_new(NULL, 0, 0, 0, 240, 320); |
||||
else if ((argc > 1) && (!strcmp(argv[1], "-h"))) |
||||
{ |
||||
printf("%s -x Run in X (default)\n" |
||||
"%s -fb Run in the Framebuffer\n" |
||||
"%s -h Display this help\n", |
||||
argv[0], argv[0], argv[0]); |
||||
ecore_evas_shutdown(); |
||||
ecore_shutdown(); |
||||
return 0; |
||||
} |
||||
else |
||||
ecore_evas = ecore_evas_software_x11_new(NULL, 0, 0, 0, 240, 320); |
||||
if (!ecore_evas) return -1; |
||||
ecore_evas_callback_delete_request_set(ecore_evas, main_delete_request); |
||||
ecore_evas_callback_resize_set(ecore_evas, main_resize); |
||||
ecore_evas_title_set(ecore_evas, "Evoak"); |
||||
ecore_evas_name_class_set(ecore_evas, "evoak", "main"); |
||||
ecore_evas_show(ecore_evas); |
||||
evas = ecore_evas_get(ecore_evas); |
||||
evas_image_cache_set(evas, 8192 * 1024); |
||||
evas_font_cache_set(evas, 512 * 1024); |
||||
// evas_font_path_append(evas, FN);
|
||||
return 1; |
||||
} |
||||
|
||||
static void |
||||
main_stop(void) |
||||
{ |
||||
ecore_evas_shutdown(); |
||||
ecore_shutdown(); |
||||
} |
||||
|
||||
static void |
||||
main_resize(Ecore_Evas *ee) |
||||
{ |
||||
double w, h; |
||||
|
||||
evas_output_viewport_get(evas, NULL, NULL, &w, &h); |
||||
// FIXME: do something for resize
|
||||
} |
||||
|
||||
static int |
||||
main_signal_exit(void *data, int ev_type, void *ev) |
||||
{ |
||||
ecore_main_loop_quit(); |
||||
return 1; |
||||
} |
||||
|
||||
static void |
||||
main_delete_request(Ecore_Evas *ee) |
||||
{ |
||||
ecore_main_loop_quit(); |
||||
} |
||||
|
||||
int |
||||
main(int argc, char **argv) |
||||
{
|
||||
if (main_start(argc, argv) < 1) return -1; |
||||
|
||||
ecore_main_loop_begin(); |
||||
|
||||
main_stop(); |
||||
|
||||
return 0; |
||||
} |
||||
|
@ -0,0 +1,21 @@ |
||||
#ifndef _EDJE_H |
||||
#define _EDJE_H |
||||
|
||||
#include <Evas.h> |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/***************************************************************************/ |
||||
/* API here */ |
||||
/***************************************************************************/ |
||||
|
||||
Evas_Object *edje_add(Evas *evas); |
||||
void edje_file_set(Evas_Object *o, const char *file, const char *part); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
@ -0,0 +1,24 @@ |
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
AUTOMAKE_OPTIONS = 1.4 foreign
|
||||
|
||||
# A list of all the files in the current directory which can be regenerated
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
LDFLAGS = -L/usr/local/lib
|
||||
INCLUDES = \
|
||||
-I/usr/local/include \ |
||||
-I$(top_srcdir) \ |
||||
-I$(top_builddir) \ |
||||
-I$(includedir) \ |
||||
@my_includes@ |
||||
|
||||
lib_LTLIBRARIES = libedje.la
|
||||
include_HEADERS = Edje.h
|
||||
libedje_la_SOURCES = \
|
||||
edje_main.c \ |
||||
edje_private.h |
||||
|
||||
libedje_la_LIBADD = $(LDFLAGS) @my_libs@
|
||||
libedje_la_DEPENDENCIES = $(top_builddir)/config.h
|
||||
libedje_la_LDFLAGS = -version-info 0:1:0
|
@ -0,0 +1,383 @@ |
||||
#include "Edje.h" |
||||
#include "edje_private.h" |
||||
|
||||
Edje *_edje_fetch(Evas_Object *obj); |
||||
|
||||
static void _edje_smart_add(Evas_Object * obj); |
||||
static void _edje_smart_del(Evas_Object * obj); |
||||
static void _edje_smart_layer_set(Evas_Object * obj, int layer); |
||||
static void _edje_smart_raise(Evas_Object * obj); |
||||
static void _edje_smart_lower(Evas_Object * obj); |
||||
static void _edje_smart_stack_above(Evas_Object * obj, Evas_Object * above); |
||||
static void _edje_smart_stack_below(Evas_Object * obj, Evas_Object * below); |
||||
static void _edje_smart_move(Evas_Object * obj, double x, double y); |
||||
static void _edje_smart_resize(Evas_Object * obj, double w, double h); |
||||
static void _edje_smart_show(Evas_Object * obj); |
||||
static void _edje_smart_hide(Evas_Object * obj); |
||||
static void _edje_smart_color_set(Evas_Object * obj, int r, int g, int b, int a); |
||||
static void _edje_smart_clip_set(Evas_Object * obj, Evas_Object * clip); |
||||
static void _edje_smart_clip_unset(Evas_Object * obj); |
||||
|
||||
static Evas_Smart *_edje_smart = NULL; |
||||
|
||||
Evas_Object * |
||||
edje_add(Evas *evas) |
||||
{ |
||||
if (!_edje_smart) |
||||
_edje_smart = evas_smart_new("edje", |
||||
_edje_smart_add, |
||||
_edje_smart_del, |
||||
_edje_smart_layer_set, |
||||
_edje_smart_raise, |
||||
_edje_smart_lower, |
||||
_edje_smart_stack_above, |
||||
_edje_smart_stack_below, |
||||
_edje_smart_move, |
||||
_edje_smart_resize, |
||||
_edje_smart_show, |
||||
_edje_smart_hide, |
||||
_edje_smart_color_set, |
||||
_edje_smart_clip_set,
|
||||
_edje_smart_clip_unset,
|
||||
NULL); |
||||
return evas_object_smart_add(evas, _edje_smart); |
||||
} |
||||
|
||||
void |
||||
edje_file_set(Evas_Object *obj, const char *file, const char *part) |
||||
{ |
||||
Edje *ed; |
||||
|
||||
ed = _edje_fetch(obj); |
||||
if (!ed) return; |
||||
} |
||||
|
||||
/*** internal calls ***/ |
||||
|
||||
/* manipulation calls */ |
||||
|
||||
static void |
||||
_edje_part_description_apply(Edje *ed,
|
||||
Edje_Real_Part *ep,
|
||||
Edje_Part_Description *de1,
|
||||
Edje_Part_Description *de2,
|
||||
double pos) |
||||
{ |
||||
if ((ep->param1.description == de1) &&
|
||||
(ep->param2.description == de2) &&
|
||||
(ep->description_pos == pos)) |
||||
return; |
||||
|
||||
ep->param1.description = de1; |
||||
ep->param2.description = de2; |
||||
ep->description_pos = pos; |
||||
|
||||
ed->dirty = 1; |
||||
ep->dirty = 1; |
||||
} |
||||
|
||||
/* calculation functions */ |
||||
|
||||
static void |
||||
_edje_part_recalc_single(Edje *ed, |
||||
Edje_Real_Part *ep,
|
||||
Edje_Part_Description *desc,
|
||||
Edje_Real_Part *rel1_to,
|
||||
Edje_Real_Part *rel2_to,
|
||||
Edje_Real_Part *confine_to, |
||||
Edje_Calc_Params *params) |
||||
{ |
||||
/* horiz */ |
||||
if (rel1_to) |
||||
{ |
||||
params->x = desc->rel1.offset_x + |
||||
rel1_to->x + (desc->rel1.relative_x * rel1_to->w); |
||||
} |
||||
else |
||||
{ |
||||
params->x = desc->rel1.offset_x + |
||||
(desc->rel1.relative_x * ed->w); |
||||
} |
||||
if (rel2_to) |
||||
{ |
||||
params->w = desc->rel2.offset_x + |
||||
rel2_to->x + (desc->rel2.relative_x * rel2_to->w) - |
||||
params->x; |
||||
} |
||||
else |
||||
{ |
||||
params->w = desc->rel2.offset_x + |
||||
(desc->rel2.relative_x * ed->w) - |
||||
params->x; |
||||
} |
||||
|
||||
/* vert */ |
||||
} |
||||
|
||||
static void |
||||
_edje_part_recalc(Edje *ed, Edje_Real_Part *ep) |
||||
{ |
||||
Edje_Calc_Params p1, p2; |
||||
|
||||
if (ep->calculated) return; |
||||
if (ep->param1.rel1_to) _edje_part_recalc(ed, ep->param1.rel1_to); |
||||
if (ep->param1.rel2_to) _edje_part_recalc(ed, ep->param1.rel2_to); |
||||
if (ep->param1.confine_to) _edje_part_recalc(ed, ep->param1.confine_to); |
||||
if (ep->param2.rel1_to) _edje_part_recalc(ed, ep->param2.rel1_to); |
||||
if (ep->param2.rel2_to) _edje_part_recalc(ed, ep->param2.rel2_to); |
||||
if (ep->param2.confine_to) _edje_part_recalc(ed, ep->param2.confine_to); |
||||
|
||||
/* actually calculate now */ |
||||
if (ep->param1.description) |
||||
_edje_part_recalc_single(ed, ep, ep->param1.description, ep->param1.rel1_to, ep->param1.rel2_to, ep->param1.confine_to, &p1); |
||||
if (ep->param2.description) |
||||
_edje_part_recalc_single(ed, ep, ep->param1.description, ep->param2.rel1_to, ep->param2.rel2_to, ep->param2.confine_to, &p2); |
||||
|
||||
ep->calculated = 1; |
||||
ep->dirty = 0; |
||||
} |
||||
|
||||
static void |
||||
_edje_recalc(Edje *ed) |
||||
{ |
||||
Evas_List *l; |
||||
|
||||
if (!ed->dirty) return; |
||||
for (l = ed->parts; l; l = l->next) |
||||
{ |
||||
Edje_Real_Part *ep; |
||||
|
||||
ep = l->data; |
||||
ep->calculated = 0; |
||||
} |
||||
for (l = ed->parts; l; l = l->next) |
||||
{ |
||||
Edje_Real_Part *ep; |
||||
|
||||
ep = l->data; |
||||
if (!ep->calculated) _edje_part_recalc(ed, ep); |
||||
} |
||||
ed->dirty = 0; |
||||
} |
||||
|
||||
/* utility functions we will use a lot */ |
||||
|
||||
Edje * |
||||
_edje_fetch(Evas_Object *obj) |
||||
{ |
||||
Edje *ed; |
||||
char *type; |
||||
|
||||
type = (char *)evas_object_type_get(obj); |
||||
if (!type) return NULL; |
||||
if (strcmp(type, "edje")) return NULL; |
||||
ed = evas_object_smart_data_get(obj); |
||||
return ed; |
||||
} |
||||
|
||||
/* evas smart object methods - required by evas smart objects to do the */ |
||||
/* dirty work on smrt objects */ |
||||
|
||||
static void |
||||
_edje_smart_add(Evas_Object * obj) |
||||
{ |
||||
Edje *ed; |
||||
|
||||
ed = calloc(1, sizeof(Edje)); |
||||
if (!ed) return; |
||||
evas_object_smart_data_set(obj, ed); |
||||
ed->evas = evas_object_evas_get(obj); |
||||
ed->clipper = evas_object_rectangle_add(ed->evas); |
||||
evas_object_smart_member_add(ed->clipper, obj); |
||||
evas_object_color_set(ed->clipper, 255, 255, 255, 255); |
||||
evas_object_move(ed->clipper, 0, 0); |
||||
evas_object_resize(ed->clipper, 0, 0); |
||||
} |
||||
|
||||
static void |
||||
_edje_smart_del(Evas_Object * obj) |
||||
{ |
||||
Edje *ed; |
||||
|
||||
ed = evas_object_smart_data_get(obj); |
||||
if (!ed) return; |
||||
evas_object_del(ed->clipper); |
||||
free(ed); |
||||
} |
||||
|
||||
static void |
||||
_edje_smart_layer_set(Evas_Object * obj, int layer) |
||||
{ |
||||
Edje *ed; |
||||
Evas_List *l; |
||||
|
||||
ed = evas_object_smart_data_get(obj); |
||||
if (!ed) return; |
||||
if (ed->layer == layer) return; |
||||
ed->layer = layer; |
||||
for (l = ed->parts; l; l = l->next) |
||||
{ |
||||
Edje_Real_Part *ep; |
||||
|
||||
ep = l->data; |
||||
evas_object_layer_set(ep->object, ed->layer); |
||||
} |
||||
} |
||||
|
||||
static void |
||||
_edje_smart_raise(Evas_Object * obj) |
||||
{ |
||||
Edje *ed; |
||||
Evas_List *l; |
||||
|
||||
ed = evas_object_smart_data_get(obj); |
||||
if (!ed) return; |
||||
for (l = ed->parts; l; l = l->next) |
||||
{ |
||||
Edje_Real_Part *ep; |
||||
|
||||
ep = l->data; |
||||
evas_object_raise(ep->object); |
||||
} |
||||
} |
||||
|
||||
static void |
||||
_edje_smart_lower(Evas_Object * obj) |
||||
{ |
||||
Edje *ed; |
||||
Evas_List *l; |
||||
|
||||
ed = evas_object_smart_data_get(obj); |
||||
if (!ed) return; |
||||
for (l = evas_list_last(ed->parts); l; l = l->prev) |
||||
{ |
||||
Edje_Real_Part *ep; |
||||
|
||||
ep = l->data; |
||||
evas_object_lower(ep->object); |
||||
} |
||||
} |
||||
|
||||
static void
|
||||
_edje_smart_stack_above(Evas_Object * obj, Evas_Object * above) |
||||
{ |
||||
Edje *ed; |
||||
Evas_List *l; |
||||
|
||||
ed = evas_object_smart_data_get(obj); |
||||
if (!ed) return; |
||||
for (l = evas_list_last(ed->parts); l; l = l->prev) |
||||
{ |
||||
Edje_Real_Part *ep; |
||||
|
||||
ep = l->data; |
||||
evas_object_stack_above(ep->object, above); |
||||
} |
||||
} |
||||
|
||||
static void |
||||
_edje_smart_stack_below(Evas_Object * obj, Evas_Object * below) |
||||
{ |
||||
Edje *ed; |
||||
Evas_List *l; |
||||
|
||||
ed = evas_object_smart_data_get(obj); |
||||
if (!ed) return; |
||||
for (l = ed->parts; l; l = l->next) |
||||
{ |
||||
Edje_Real_Part *ep; |
||||
|
||||
ep = l->data; |
||||
evas_object_stack_below(ep->object, below); |
||||
} |
||||
} |
||||
|
||||
static void
|
||||
_edje_smart_move(Evas_Object * obj, double x, double y) |
||||
{ |
||||
Edje *ed; |
||||
Evas_List *l; |
||||
|
||||
ed = evas_object_smart_data_get(obj); |
||||
if (!ed) return; |
||||
ed->x = x; |
||||
ed->y = y; |
||||
|
||||
evas_object_move(ed->clipper, ed->x, ed->y); |
||||
|
||||
for (l = ed->parts; l; l = l->next) |
||||
{ |
||||
Edje_Real_Part *ep; |
||||
|
||||
ep = l->data; |
||||
evas_object_move(ep->object, ed->x + ep->x, ed->y + ep->y); |
||||
} |
||||
} |
||||
|
||||
static void
|
||||
_edje_smart_resize(Evas_Object * obj, double w, double h) |
||||
{ |
||||
Edje *ed; |
||||
int nw, nh; |
||||
|
||||
ed = evas_object_smart_data_get(obj); |
||||
if (!ed) return; |
||||
nw = w; |
||||
nh = h; |
||||
ed->w = w; |
||||
ed->h = h; |
||||
if ((nw == ed->w) || (nh == ed->h)) return; |
||||
evas_object_resize(ed->clipper, ed->w, ed->h); |
||||
ed->dirty = 1; |
||||
_edje_recalc(ed); |
||||
} |
||||
|
||||
static void
|
||||
_edje_smart_show(Evas_Object * obj) |
||||
{ |
||||
Edje *ed; |
||||
|
||||
ed = evas_object_smart_data_get(obj); |
||||
if (!ed) return; |
||||
evas_object_show(ed->clipper); |
||||
} |
||||
|
||||
static void
|
||||
_edje_smart_hide(Evas_Object * obj) |
||||
{ |
||||
Edje *ed; |
||||
|
||||
ed = evas_object_smart_data_get(obj); |
||||
if (!ed) return; |
||||
evas_object_hide(ed->clipper); |
||||
} |
||||
|
||||
static void
|
||||
_edje_smart_color_set(Evas_Object * obj, int r, int g, int b, int a) |
||||
{ |
||||
Edje *ed; |
||||
|
||||
ed = evas_object_smart_data_get(obj); |
||||
if (!ed) return; |
||||
evas_object_color_set(ed->clipper, r, g, b, a); |
||||
} |
||||
|
||||
static void
|
||||
_edje_smart_clip_set(Evas_Object * obj, Evas_Object * clip) |
||||
{ |
||||
Edje *ed; |
||||
|
||||
ed = evas_object_smart_data_get(obj); |
||||
if (!ed) return; |
||||
evas_object_clip_set(ed->clipper, clip); |
||||
} |
||||
|
||||