forked from enlightenment/efl
in we go edje... no it doesnt do anything useful at the moment...
SVN revision: 6968
This commit is contained in:
parent
d744ab1f70
commit
664d811ff9
|
@ -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>
|
Binary file not shown.
After Width: | Height: | Size: 73 KiB |
Binary file not shown.
After Width: | Height: | Size: 915 KiB |
Binary file not shown.
After Width: | Height: | Size: 753 B |
Binary file not shown.
After Width: | Height: | Size: 3.7 KiB |
Binary file not shown.
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);
|
||||
}
|
||||
|
||||
static void
|
||||
_edje_smart_clip_unset(Evas_Object * obj)
|
||||
{
|
||||
Edje *ed;
|
||||
|
||||
ed = evas_object_smart_data_get(obj);
|
||||
if (!ed) return;
|
||||
evas_object_clip_unset(ed->clipper);
|
||||
}
|
|
@ -0,0 +1,335 @@
|
|||
#ifndef _EDJE_PRIVATE_H
|
||||
#define _EDJE_PRIVATE_H
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <Evas.h>
|
||||
#include <Ecore.h>
|
||||
#include <Eet.h>
|
||||
|
||||
/* HOW THIS ALL WORKS:
|
||||
* -------------------
|
||||
*
|
||||
* A part file contains:
|
||||
* a list of images stored
|
||||
* the images
|
||||
* a list of part collections
|
||||
* the part collections
|
||||
*
|
||||
* A part collection contains:
|
||||
* a list of programs
|
||||
* a list of actions
|
||||
* a list of parts
|
||||
*
|
||||
* when a signal is emitted and matches the conditionals of a program a
|
||||
* specific action is started. that action may affect one or more parts in
|
||||
* a part collection and may operate over a period of time. it may also
|
||||
* spawn another action when it is done (able to loop!) over a period of
|
||||
* time. A part is set into a certain state and the calculated outputs of the
|
||||
* staret and end state are mixed based on the kind of tweening and time. a
|
||||
* tween time of 0.0 = do it right away. an image_id list for tweening is
|
||||
* also able ot be provided and shoudl be run through over time during the
|
||||
* tween to the new state.
|
||||
*
|
||||
* the signals that can be emitted are:
|
||||
* "mouse.down"
|
||||
* "mouse.up"
|
||||
* "mouse.in"
|
||||
* "mouse.out"
|
||||
* "mouse.move"
|
||||
* "clicked"
|
||||
* "drag.start"
|
||||
* "drag"
|
||||
* "drag.stop"
|
||||
*/
|
||||
typedef struct _Edje_File Edje_File;
|
||||
typedef struct _Edje_Image_Directory Edje_Image_Directory;
|
||||
typedef struct _Edje_Image_Directory_Entry Edje_Image_Directory_Entry;
|
||||
typedef struct _Edje_Program Edje_Program;
|
||||
typedef struct _Edje_Action_Directory Edje_Action_Directory;
|
||||
typedef struct _Edje_Action Edje_Action;
|
||||
typedef struct _Edje_Action_Target Edje_Action_Target;
|
||||
typedef struct _Edje_Part_Collection_Directory Edje_Part_Collection_Directory;
|
||||
typedef struct _Edje_Part_Collection_Directory_Entry Edje_Part_Collection_Directory_Entry;
|
||||
typedef struct _Edje_Part_Collection Edje_Part_Collection;
|
||||
typedef struct _Edje_Part Edje_Part;
|
||||
typedef struct _Edje_Part_Image_Id Edje_Part_Image_Id;
|
||||
typedef struct _Edje_Part_Description Edje_Part_Description;
|
||||
|
||||
#define EDJE_PART_TYPE_NONE 0
|
||||
#define EDJE_PART_TYPE_RECTANGLE 1
|
||||
#define EDJE_PART_TYPE_TEXT 2
|
||||
#define EDJE_PART_TYPE_IMAGE 3
|
||||
#define EDJE_PART_TYPE_LAST 4
|
||||
|
||||
#define EDJE_ACTION_TYPE_NONE 0
|
||||
#define EDJE_ACTION_TYPE_STATE_SET 1
|
||||
#define EDJE_ACTION_TYPE_ACTION_STOP 2
|
||||
#define EDJE_ACTION_TYPE_DRAG_SET 3
|
||||
#define EDJE_ACTION_TYPE_LAST 4
|
||||
|
||||
#define EDJE_IMAGE_SOURCE_TYPE_NONE 0
|
||||
#define EDJE_IMAGE_SOURCE_TYPE_INLINE 1
|
||||
#define EDJE_IMAGE_SOURCE_TYPE_ABSOLUTE 2
|
||||
#define EDJE_IMAGE_SOURCE_TYPE_HOMEDIR 3
|
||||
#define EDJE_IMAGE_SOURCE_TYPE_LAST 4
|
||||
|
||||
#define EDJE_TEXT_EFFECT_NONE 0
|
||||
#define EDJE_TEXT_EFFECT_PLAIN 1
|
||||
#define EDJE_TEXT_EFFECT_OUTLINE 2
|
||||
#define EDJE_TEXT_EFFECT_SHADOW 3
|
||||
#define EDJE_TEXT_EFFECT_OUTLINE_SHADOW 4
|
||||
#define EDJE_TEXT_EFFECT_LAST 5
|
||||
|
||||
#define EDJE_TWEEN_MODE_NONE 0
|
||||
#define EDJE_TWEEN_MODE_LINEAR 1
|
||||
#define EDJE_TWEEN_MODE_SINUSOIDAL 2
|
||||
#define EDJE_TWEEN_MODE_ACCELERATE 3
|
||||
#define EDJE_TWEEN_MODE_DECELERATE 4
|
||||
#define EDJE_TWEEN_MODE_LAST 5
|
||||
|
||||
/*----------*/
|
||||
|
||||
struct _Edje_File
|
||||
{
|
||||
char *path;
|
||||
|
||||
Edje_Image_Directory *image_dir;
|
||||
Edje_Part_Collection_Directory *collection_dir;
|
||||
|
||||
Evas_List *collection_loaded;
|
||||
|
||||
int references;
|
||||
};
|
||||
|
||||
/*----------*/
|
||||
|
||||
struct _Edje_Image_Directory
|
||||
{
|
||||
Evas_List *entries; /* a list of Edje_Image_Directory_Entry */
|
||||
|
||||
int references;
|
||||
};
|
||||
|
||||
struct _Edje_Image_Directory_Entry
|
||||
{
|
||||
char *entry; /* the nominal name of the image - if any */
|
||||
int source_type; /* alternate source mode. 0 = none */
|
||||
int id; /* the id no. of the image */
|
||||
};
|
||||
|
||||
/*----------*/
|
||||
|
||||
struct _Edje_Program /* a conditional program to be run */
|
||||
{
|
||||
char *emission; /* if signal emission name matches the glob here... */
|
||||
char *part; /* & if part that emitted the signal (name) matches this glob */
|
||||
int action_id; /* perform action number here */
|
||||
};
|
||||
|
||||
/*----------*/
|
||||
|
||||
struct _Edje_Action_Directory /* a list of possible actions to perform */
|
||||
{
|
||||
Evas_List *actions; /* a list of Edje_Action */
|
||||
};
|
||||
|
||||
struct _Edje_Action /* action to perfrom on parts within a part collection */
|
||||
{
|
||||
int action; /* type - set state, stop action, set drag pos etc. */
|
||||
double tween_time; /* time to graduate between current and new state */
|
||||
int tween_mode; /* how to tween - linear, sinusoidal etc. */
|
||||
char *state; /* what state of alternates to apply */
|
||||
double drag_set_rel_x; /* x drag pos to set targets to, relative to container */
|
||||
double drag_set_rel_y; /* y drag pos to set targets to, relative to container */
|
||||
int drag_set_abs_offset_x;
|
||||
int drag_set_abs_offset_y;
|
||||
Evas_List *targets; /* list of target parts to apply the state to */
|
||||
int end_action_id; /* id of action to run when this one finished */
|
||||
};
|
||||
|
||||
struct _Edje_Action_Target /* the target of an action */
|
||||
{
|
||||
int id; /* just the part id no, or action id no */
|
||||
};
|
||||
|
||||
/*----------*/
|
||||
|
||||
struct _Edje_Part_Collection_Directory
|
||||
{
|
||||
Evas_List *entries; /* a list of Edje_Part_Collection_Directory_Entry */
|
||||
|
||||
int references;
|
||||
};
|
||||
|
||||
struct _Edje_Part_Collection_Directory_Entry
|
||||
{
|
||||
char *entry; /* the nominal name of the part collection */
|
||||
int id; /* the id of this named part collection */
|
||||
};
|
||||
|
||||
/*----------*/
|
||||
|
||||
struct _Edje_Part_Collection
|
||||
{
|
||||
Evas_List *programs; /* a list of Edje_Program */
|
||||
Evas_List *parts; /* a list of Edje_Part */
|
||||
|
||||
int id; /* the collection id */
|
||||
|
||||
int references;
|
||||
};
|
||||
|
||||
struct _Edje_Part
|
||||
{
|
||||
char *name; /* the name if any of the part */
|
||||
unsigned char type; /* what type (image, rect, text) */
|
||||
int id; /* its id number */
|
||||
char *color_class; /* how to modify the color */
|
||||
char *text_class; /* how to apply/modify the font */
|
||||
Edje_Part_Description *default_desc; /* the part descriptor for default */
|
||||
Evas_List *other_desc; /* other possible descriptors */
|
||||
};
|
||||
|
||||
struct _Edje_Part_Image_Id
|
||||
{
|
||||
int image_id;
|
||||
};
|
||||
|
||||
struct _Edje_Part_Description
|
||||
{
|
||||
struct {
|
||||
char *name; /* the named state if any */
|
||||
double value; /* the value of the state (for ranges) */
|
||||
} state;
|
||||
|
||||
unsigned char visible; /* is it shown */
|
||||
|
||||
struct {
|
||||
char x; /* can u click & draqg this bit & which dir */
|
||||
int step_x; /* drag jumps n pixels (0 = no limit) */
|
||||
int count_x; /* drag area divided by n (0 = no limit) */
|
||||
|
||||
char y; /* can u click & drag this bit & which dir */
|
||||
int step_y; /* drag jumps n pixels (0 = no limit) */
|
||||
int count_y; /* drag area divided by n (0 = no limit) */
|
||||
|
||||
int confine_id; /* dragging within this bit, -1 = no */
|
||||
} dragable;
|
||||
|
||||
int clip_to_id; /* the part id to clip this one to */
|
||||
|
||||
struct {
|
||||
double x, y; /* 0 <-> 1.0 alignment within allocated space */
|
||||
} align;
|
||||
|
||||
struct {
|
||||
int w, h; /* min & max size, 0 = none */
|
||||
} min, max;
|
||||
|
||||
struct {
|
||||
int x, y; /* size stepping by n pixels, 0 = none */
|
||||
} step;
|
||||
|
||||
struct {
|
||||
double min, max; /* aspect = w/h */
|
||||
} aspect;
|
||||
|
||||
struct {
|
||||
double relative_x;
|
||||
double relative_y;
|
||||
int offset_x;
|
||||
int offset_y;
|
||||
int id; /* -1 = whole part collection, or part ID */
|
||||
} rel1, rel2;
|
||||
|
||||
struct {
|
||||
int id; /* the image id to use */
|
||||
Evas_List *tween_list; /* list of Edje_Part_Image_Id */
|
||||
} image;
|
||||
|
||||
struct {
|
||||
int l, r, t, b; /* border scaling on image fill */
|
||||
} border;
|
||||
|
||||
struct {
|
||||
double pos_rel_x; /* fill offset x relative to area */
|
||||
int pos_abs_x; /* fill offset x added to fill offset */
|
||||
double rel_x; /* relative size compared to area */
|
||||
int abs_x; /* size of fill added to relative fill */
|
||||
double pos_rel_y; /* fill offset y relative to area */
|
||||
int pos_abs_y; /* fill offset y added to fill offset */
|
||||
double rel_y; /* relative size compared to area */
|
||||
int abs_y; /* size of fill added to relative fill */
|
||||
} fill;
|
||||
|
||||
struct {
|
||||
unsigned char r, g, b, a; /* color for rect or text, shadow etc. */
|
||||
} color, color2, color3;
|
||||
|
||||
struct {
|
||||
char *text; /* if "" or NULL, then leave text unchanged */
|
||||
|
||||
int size; /* 0 = use user set size */
|
||||
|
||||
unsigned char effect; /* 0 = plain... */
|
||||
unsigned char fit_x; /* resize font size down to fit in x dir */
|
||||
unsigned char fit_y; /* resize font size down to fit in y dir */
|
||||
} text;
|
||||
};
|
||||
|
||||
/*----------*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
typedef struct _Edje Edje;
|
||||
typedef struct _Edje_Real_Part Edje_Real_Part;
|
||||
|
||||
struct _Edje
|
||||
{
|
||||
int layer;
|
||||
int x, y, w, h;
|
||||
unsigned char dirty : 1;
|
||||
Evas *evas; /* the evas this edje belongs to */
|
||||
Evas_Object *clipper; /* a big rect to clip this edje to */
|
||||
Edje_File *file; /* the file the data comes form */
|
||||
Edje_Part_Collection *collection; /* the description being used */
|
||||
Evas_List *parts; /* private list of parts */
|
||||
Evas_List *actions; /* currently running actions */
|
||||
};
|
||||
|
||||
struct _Edje_Real_Part
|
||||
{
|
||||
int x, y, w, h;
|
||||
Evas_Object *object;
|
||||
unsigned char calculated : 1;
|
||||
unsigned char dirty : 1;
|
||||
Edje_Part *part;
|
||||
double description_pos;
|
||||
struct {
|
||||
Edje_Part_Description *description;
|
||||
Edje_Real_Part *rel1_to;
|
||||
Edje_Real_Part *rel2_to;
|
||||
Edje_Real_Part *confine_to;
|
||||
} param1, param2;
|
||||
};
|
||||
|
||||
typedef struct _Edje_Calc_Params Edje_Calc_Params;
|
||||
|
||||
struct _Edje_Calc_Params
|
||||
{
|
||||
double x, y, w, h;
|
||||
|
||||
struct {
|
||||
double x, y, w, h;
|
||||
} fill;
|
||||
struct {
|
||||
unsigned char r, g, b, a;
|
||||
} color, color2, color3;
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue