From 154f99de7f36df04b71e558a8275ae1e1558c937 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sun, 30 Jul 2000 20:21:14 +0000 Subject: [PATCH] evas........ SVN revision: 2938 --- legacy/evas/AUTHORS | 1 + legacy/evas/COPYING | 20 +++ legacy/evas/Makefile.am | 14 ++ legacy/evas/README | 25 +++ legacy/evas/autogen.sh | 34 ++++ legacy/evas/configure.in | 21 +++ legacy/evas/src/Evas.h | 159 +++++++++++++++++++ legacy/evas/src/Makefile.am | 25 +++ legacy/evas/src/evas_main.c | 300 +++++++++++++++++++++++++++++++++++ legacy/evas/test/Makefile.am | 12 ++ legacy/evas/test/evas_test.c | 6 + 11 files changed, 617 insertions(+) create mode 100644 legacy/evas/AUTHORS create mode 100644 legacy/evas/COPYING create mode 100644 legacy/evas/Makefile.am create mode 100644 legacy/evas/README create mode 100755 legacy/evas/autogen.sh create mode 100644 legacy/evas/configure.in create mode 100644 legacy/evas/src/Evas.h create mode 100644 legacy/evas/src/Makefile.am create mode 100644 legacy/evas/src/evas_main.c create mode 100644 legacy/evas/test/Makefile.am create mode 100644 legacy/evas/test/evas_test.c diff --git a/legacy/evas/AUTHORS b/legacy/evas/AUTHORS new file mode 100644 index 0000000000..207158677d --- /dev/null +++ b/legacy/evas/AUTHORS @@ -0,0 +1 @@ +The Rasterman (Carsten Haitzler) diff --git a/legacy/evas/COPYING b/legacy/evas/COPYING new file mode 100644 index 0000000000..dee3047c34 --- /dev/null +++ b/legacy/evas/COPYING @@ -0,0 +1,20 @@ +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, its documentation and marketing & publicity +materials, and acknowledgment shall be given in the documentation, materials +and software packages that this Software was used. + +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. diff --git a/legacy/evas/Makefile.am b/legacy/evas/Makefile.am new file mode 100644 index 0000000000..5739707aef --- /dev/null +++ b/legacy/evas/Makefile.am @@ -0,0 +1,14 @@ + +## 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 = INSTALL Makefile.in aclocal.m4 config.guess \ + config.h.in config.sub configure install-sh \ + ltconfig ltmain.sh missing mkinstalldirs \ + stamp-h.in + +SUBDIRS = src test + +EXTRA_DIST = README AUTHORS COPYING diff --git a/legacy/evas/README b/legacy/evas/README new file mode 100644 index 0000000000..0ae786f9c5 --- /dev/null +++ b/legacy/evas/README @@ -0,0 +1,25 @@ +------------------------------------------------------------------------------- + E V A S - 0.0.0 +------------------------------------------------------------------------------- + +This is the ``E Canvas'' - a rip off of some of the other canvas's floating +about - Tk and gnome too. it's at the Xlib level. it's intended to be +accelerated byhardware or highly optimised software where possible. It is +intended to be simple and allow for the building of interfaces ontop of it. + +if you got this from cvs do: +./autogen.sh + +otherwise do: +./configure + +then to compile: +make + +if you wish to install (as root): +make install + +in the test directory you will find a test program: +cd test +./evas_test + diff --git a/legacy/evas/autogen.sh b/legacy/evas/autogen.sh new file mode 100755 index 0000000000..1d0f0b11c6 --- /dev/null +++ b/legacy/evas/autogen.sh @@ -0,0 +1,34 @@ +#! /bin/sh + +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +THEDIR="`pwd`" +cd "$srcdir" +DIE=0 + +set -x +autoheader +libtoolize --ltdl --force --copy +aclocal +automake --foreign --add-missing +autoconf + +if test -z "$*"; then + echo "I am going to run ./configure with no arguments - if you wish " + echo "to pass any to it, please specify them on the $0 command line." +fi + +cd "$THEDIR" + +$srcdir/configure "$@" + +set +x + +echo "Now type:" +echo +echo "make" +echo "make install" +echo +echo "have fun." + diff --git a/legacy/evas/configure.in b/legacy/evas/configure.in new file mode 100644 index 0000000000..8ad360c00a --- /dev/null +++ b/legacy/evas/configure.in @@ -0,0 +1,21 @@ +AC_INIT(src/Evas.h) +AM_CONFIG_HEADER(config.h) +AM_INIT_AUTOMAKE(evas, 0.0.1) +AC_PROG_CC +AM_PROG_CC_STDC +AC_C_CONST +AM_ENABLE_SHARED +AM_PROG_LIBTOOL +AM_WITH_DMALLOC +if test X"$enable_shared" = Xyes; then + DLLDFLAGS=-export-dynamic + AC_SUBST(DLLDFLAGS) +fi +AC_PROG_INSTALL +AC_PROG_MAKE_SET +AC_CHECK_LIB(Imlib2, imlib_context_set_image, IMLIB2=yes ,[ +echo "" +echo "ERROR: Imlib 2 needed" +echo "" +AC_MSG_ERROR([Fatal Error: no Imlib2 detected.])], -L/usr/X11R6/lib -L/usr/local/lib -lm -ldl -lttf -lX11 -lXext) +AC_OUTPUT(Makefile src/Makefile test/Makefile) diff --git a/legacy/evas/src/Evas.h b/legacy/evas/src/Evas.h new file mode 100644 index 0000000000..7ea6b6fcb0 --- /dev/null +++ b/legacy/evas/src/Evas.h @@ -0,0 +1,159 @@ +#ifndef _EVAS_H +#define _EVAS_H 1 + +#include +#include + +typedef struct _Evas * Evas; +typedef struct _Evas_Gradient * Evas_Gradient; +typedef void * Evas_Object; +typedef void * Evas_Group; +typedef int Evas_Callback_Type; +typedef int Evas_Image_Format; +typedef struct _Evas_List * Evas_List; + +#define RENDER_METHOD_FASTEST 0 +#define RENDER_METHOD_BEST 1 + +struct _Evas +{ + struct _state { + Display *display; + Drawable drawable; + Visual *visual; + Colormap colormap; + + struct _output { + int x, y, w, h; + } output; + + struct _viewport { + double x, y, w, h; + } viewport; + + Evas_List *active_layers; + + Evas_List *objects; + + int render_method; + + } current, previous; + + /* externally provided updates for drawable relative rects */ + Evas_List *updates; +}; + +struct _Evas_Gradient +{ + Imlib_Color_Range color_range; +}; + +struct _Evas_List +{ + Evas_List *prev, *next; + void *data; +}; + +#ifdef __cplusplus +extern "C" { +#endif + +/* create and destroy */ +Evas evas_new(void); +void evas_free(Evas e); + +/* for exposes or forced redraws (relative to output drawable) */ +void evas_update_rect(Evas e, int x, int y, int w, int h); + +/* drawing */ +void evas_render(Evas e); + +/* query for settings to use */ +Visual *evas_get_optimal_visual(Display *disp); +Colormap evas_get_optimal_colormap(Display *disp); + +/* the output settings */ +void evas_set_output(Evas e, Display *disp, Drawable d, Visual *v, Colormap c); +void evas_set_output_rect(Evas e, int x, int y, int w, int h); +void evas_set_viewport(Evas e, double x, double y, double w, double h); + +/* deleting objects */ +void evas_del_object(Evas e, Evas_Object o); + +/* adding objects */ +Evas_Object evas_add_image_from_file(Evas e, char *file); +Evas_Object evas_add_image_from_data(Evas e, void *data, Evas_Image_Format format, int w, int h); +Evas_Object evas_add_text(Evas e, char *font, int size, char *text); +Evas_Object evas_add_rectangle(Evas e, int r, Evas_Group g, int b); +Evas_Object evas_add_line(Evas e, int r, Evas_Group g, int b, int a); +Evas_Object evas_add_gradient_box(Evas e); +Evas_Object evas_add_bits(Evas e, char *file); +Evas_Object evas_add_evas(Evas e, Evas evas); + +/* set object settings */ +void evas_set_image_file(Evas e, Evas_Object o, char *file); +void evas_set_image_fill_size(Evas e, Evas_Object o, double w, double h); +void evas_set_bits_file(Evas e, Evas_Object o, char *file); +void evas_set_color(Evas e, Evas_Object o, int r, Evas_Group g, int b, int a); +void evas_set_gradient_angle(Evas e, Evas_Object o, double angle); +void evas_set_gradient(Evas e, Evas_Object o, Evas_Gradient grad); +void evas_set_angle(Evas e, Evas_Object o, double angle); +void evas_set_blend_mode(Evas e, int mode); +void evas_set_zoom_scale(Evas e, Evas_Object o, int scale); + +/* layer stacking for object */ +void evas_set_layer(Evas e, Evas_Object o, int l); + +/* gradient creating / deletion / modification */ +Evas_Gradient evas_gradient_new(void); +void evas_gradient_free(Evas_Gradient grad); +void evas_gradient_add_color(Evas_Gradient grad, int r, int g, int b, int a, int dist); + +/* stacking within a layer */ +void evas_raise(Evas e, Evas_Object o); +void evas_lower(Evas e, Evas_Object o); +void evas_stack_above(Evas e, Evas_Object o, int above); +void evas_stack_below(Evas e, Evas_Object o, int above); + +/* object geoemtry */ +void evas_move(Evas e, Evas_Object o, double x, double y); +void evas_resize(Evas e, Evas_Object o, double w, double h); +void evas_get_geometry(Evas e, Evas_Object o, double *x, double *y, double *w, double *h); + +/* object visibility */ +void evas_show(Evas e, Evas_Object o); +void evas_hide(Evas e, Evas_Object o); + +/* group operations */ +Evas_Group evas_add_group(Evas e); +void evas_add_to_group(Evas e, Evas_Object o, Evas_Group g); +void evas_disband_group(Evas e, Evas_Group g); +void evas_del_from_group(Evas e, Evas_Object o, Evas_Group g); + +/* evas bits ops */ +void evas_bits_get_padding(Evas e, Evas_Object o, double *l, double *r, double *t, double *b); +void evas_bits_get_min(Evas e, Evas_Object o, double *w, double *h); +void evas_bits_get_max(Evas e, Evas_Object o, double *w, double *h); +void evas_bits_get_classed_bit_geoemtry(Evas e, Evas_Object o, char *class, double *x, double *y, double *w, double *h); + +/* image query ops */ +void evas_get_image_size(Evas e, Evas_Object o, int *w, int *h); + +/* events */ +void evas_event_button_down(Evas e, int x, int y, int b); +void evas_event_button_up(Evas e, int x, int y, int b); +void evas_event_move(Evas e, int x, int y); +void evas_event_enter(Evas e); +void evas_event_leave(Evas e); + +/* callbacks */ +void evas_callback_add(Evas e, Evas_Object o, Evas_Callback_Type callback, void (*func) (void *_data, Evas _e, char *_class, Evas_Object _o, int _b, int _x, int _y), void *data); +void evas_callback_del(Evas e, Evas_Object o, Evas_Callback_Type callback); + +#ifdef __cplusplus +} +#endif + +#endif + + diff --git a/legacy/evas/src/Makefile.am b/legacy/evas/src/Makefile.am new file mode 100644 index 0000000000..3824c7ae16 --- /dev/null +++ b/legacy/evas/src/Makefile.am @@ -0,0 +1,25 @@ +## 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/X11R6/lib -L/usr/local/lib +INCLUDES = -I/usr/X11R6/include -I/usr/local/include \ + $(X_CFLAGS) -I$(includedir) \ + -DLIBDIR=\"$(libdir)\" \ + -DBINDIR=\"$(bindir)\" \ + -DDATADIR=\"$(datadir)\" + +lib_LTLIBRARIES = libevas.la +include_HEADERS = \ +Evas.h + +libevas_la_SOURCES = \ +evas_main.c \ +Evas.h + +libevas_la_LIBADD = -lX11 -lXext -lttf -ldl -lm -lImlib2 $(LDFLAGS) +libevas_la_DEPENDENCIES = $(top_builddir)/config.h +libevas_la_LDFLAGS = -version-info 0:1:0 diff --git a/legacy/evas/src/evas_main.c b/legacy/evas/src/evas_main.c new file mode 100644 index 0000000000..94b5f75508 --- /dev/null +++ b/legacy/evas/src/evas_main.c @@ -0,0 +1,300 @@ +#include "Evas.h" + +/* create and destroy */ +Evas +evas_new(void) +{ +} + +void +evas_free(Evas e) +{ +} + +/* for exposes or forced redraws (relative to output drawable) */ +void +evas_update_rect(Evas e, int x, int y, int w, int h) +{ +} + +/* drawing */ +void +evas_render(Evas e) +{ +} + +/* query for settings to use */ +Visual * +evas_get_optimal_visual(Display *disp) +{ +} + +Colormap +evas_get_optimal_colormap(Display *disp) +{ +} + +/* the output settings */ +void +evas_set_output(Evas e, Display *disp, Drawable d, Visual *v, Colormap c) +{ +} + +void +evas_set_output_rect(Evas e, int x, int y, int w, int h) +{ +} + +void +evas_set_viewport(Evas e, double x, double y, double w, double h) +{ +} + +/* deleting objects */ +void +evas_del_object(Evas e, Evas_Object o) +{ +} + +/* adding objects */ +Evas_Object +evas_add_image_from_file(Evas e, char *file) +{ +} + +Evas_Object +evas_add_image_from_data(Evas e, void *data, Evas_Image_Format format, int w, int h) +{ +} + +Evas_Object +evas_add_text(Evas e, char *font, int size, char *text) +{ +} + +Evas_Object +evas_add_rectangle(Evas e, int r, Evas_Group g, int b) +{ +} + +Evas_Object +evas_add_line(Evas e, int r, Evas_Group g, int b, int a) +{ +} + +Evas_Object +evas_add_gradient_box(Evas e) +{ +} + +Evas_Object +evas_add_bits(Evas e, char *file) +{ +} + +Evas_Object +evas_add_evas(Evas e, Evas evas) +{ +} + +/* set object settings */ +void +evas_set_image_file(Evas e, Evas_Object o, char *file) +{ +} + +void +evas_set_image_fill_size(Evas e, Evas_Object o, double w, double h) +{ +} + +void +evas_set_bits_file(Evas e, Evas_Object o, char *file) +{ +} + +void +evas_set_color(Evas e, Evas_Object o, int r, Evas_Group g, int b, int a) +{ +} + +void +evas_set_gradient_angle(Evas e, Evas_Object o, double angle) +{ +} + +void +evas_set_gradient(Evas e, Evas_Object o, Evas_Gradient grad) +{ +} + +void +evas_set_angle(Evas e, Evas_Object o, double angle) +{ +} + +void +evas_set_blend_mode(Evas e, int mode) +{ +} + +void +evas_set_zoom_scale(Evas e, Evas_Object o, int scale) +{ +} + +/* layer stacking for object */ +void +evas_set_layer(Evas e, Evas_Object o, int l) +{ +} + +/* gradient creating / deletion / modification */ +Evas_Gradient +evas_gradient_new(void) +{ +} + +void +evas_gradient_free(Evas_Gradient grad) +{ +} + +void +evas_gradient_add_color(Evas_Gradient grad, int r, int g, int b, int a, int dist) +{ +} + +/* stacking within a layer */ +void +evas_raise(Evas e, Evas_Object o) +{ +} + +void +evas_lower(Evas e, Evas_Object o) +{ +} + +void +evas_stack_above(Evas e, Evas_Object o, int above) +{ +} + +void +evas_stack_below(Evas e, Evas_Object o, int above) +{ +} + +/* object geoemtry */ +void +evas_move(Evas e, Evas_Object o, double x, double y) +{ +} + +void +evas_resize(Evas e, Evas_Object o, double w, double h) +{ +} + +void +evas_get_geometry(Evas e, Evas_Object o, double *x, double *y, double *w, double *h) +{ +} + +/* object visibility */ +void +evas_show(Evas e, Evas_Object o) +{ +} + +void +evas_hide(Evas e, Evas_Object o) +{ +} + +/* group operations */ +Evas_Group +evas_add_group(Evas e) +{ +} + +void +evas_add_to_group(Evas e, Evas_Object o, Evas_Group g) +{ +} + +void +evas_disband_group(Evas e, Evas_Group g) +{ +} + +void +evas_del_from_group(Evas e, Evas_Object o, Evas_Group g) +{ +} + +/* evas bits ops */ +void +evas_bits_get_padding(Evas e, Evas_Object o, double *l, double *r, double *t, double *b) +{ +} + +void +evas_bits_get_min(Evas e, Evas_Object o, double *w, double *h) +{ +} + +void +evas_bits_get_max(Evas e, Evas_Object o, double *w, double *h) +{ +} + +void +evas_bits_get_classed_bit_geoemtry(Evas e, Evas_Object o, char *class, double *x, double *y, double *w, double *h) +{ +} + +/* image query ops */ +void +evas_get_image_size(Evas e, Evas_Object o, int *w, int *h) +{ +} + +/* events */ +void +evas_event_button_down(Evas e, int x, int y, int b) +{ +} + +void +evas_event_button_up(Evas e, int x, int y, int b) +{ +} + +void +evas_event_move(Evas e, int x, int y) +{ +} + +void +evas_event_enter(Evas e) +{ +} + +void +evas_event_leave(Evas e) +{ +} + +/* callbacks */ +void +evas_callback_add(Evas e, Evas_Object o, Evas_Callback_Type callback, void (*func) (void *_data, Evas _e, char *_class, Evas_Object _o, int _b, int _x, int _y), void *data) +{ +} + +void +evas_callback_del(Evas e, Evas_Object o, Evas_Callback_Type callback) +{ +} + diff --git a/legacy/evas/test/Makefile.am b/legacy/evas/test/Makefile.am new file mode 100644 index 0000000000..25e1fd3774 --- /dev/null +++ b/legacy/evas/test/Makefile.am @@ -0,0 +1,12 @@ +INCLUDES = \ + -I$(top_srcdir)/src -I/usr/local/include + +noinst_PROGRAMS = evas_test + +evas_test_DEPENDENCIES = $(top_srcdir)/src/libevas.la + +evas_test_SOURCES = evas_test.c + +evas_test_LDFLAGS = -static + +evas_test_LDADD = $(top_builddir)/src/libevas.la -lImlib2 -lttf -lX11 -lXext -ldl diff --git a/legacy/evas/test/evas_test.c b/legacy/evas/test/evas_test.c new file mode 100644 index 0000000000..251a89aa37 --- /dev/null +++ b/legacy/evas/test/evas_test.c @@ -0,0 +1,6 @@ +#include + +int +main(int argc, char **argv) +{ +}