From: <enl...@li...> - 2001-12-27 15:32:55
|
Enlightenment CVS committal Author : tillsan Project : e17 Module : libs/etox Dir : e17/libs/etox/doc Log Message: Directory /cvsroot/enlightenment/e17/libs/etox/doc added to the repository |
From: <enl...@li...> - 2001-12-27 15:37:54
|
Enlightenment CVS committal Author : tillsan Project : e17 Module : libs/etox Dir : e17/libs/etox/src Modified Files: Etox.h Log Message: While reading through the e17 codebase I thought I'd continue cK's effort to document as much as possible. So this is the start of Etox documentation. Could the people hacking on etox look over it and fill in the blanks while doing so? That'd be great. I'll try to flesh this out in the next couple of days. Wasnt there someone with tutorials for the various libs on his webpage? Whoedver you are, if you have something on Etox, would you consider integrating your work into this, please? Thanks and happy whatever to all of you. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/src/Etox.h,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- Etox.h 2001/11/12 00:04:15 1.23 +++ Etox.h 2001/12/27 15:37:53 1.24 @@ -82,69 +82,367 @@ { #endif + +/* Public API */ + +/** + * etox_new - Creates a new etox object + * @evas: The evas this etox object will be part of + * @name: The name of the etox object + * + * Creates an Etox object with the specified name for the specified evas and + * returns it. + */ Etox etox_new(Evas evas, char *name); + +/** + * etox_new_all - Creates a new Etox object with all parameters + * @evas: The evas this Etox object will be part of + * @name: The name of the Etox object + * @x: initial horizontal position on the evas relative to the upper left corner + * @y: initial vertical position on the evas relative to the upper left corner + * @w: initial width of the Etox object + * @h: initial height of the Etox object + * @alpha: initial alpha value of the Etox object + * @padding: initial padding value of the Etox object + * @v_align: initial vertival align value + * @h_align: initial horizontal align value + * @callback: callback function to be associated with this Etox + * @color: initial text color for this Etox + * @font: initial font to be used for this Etox + * @font_size: initial fontsize to be used for this Etox + * @style: initial fontstyle to be used for this Etox + * + * Creates an Etox object with the specified properties and returns it. + */ + Etox etox_new_all(Evas evas, char *name, double x, double y, double w, double h, int alpha, double padding, Etox_Align_Type v_align, Etox_Align_Type h_align, Etox_Callback callback, Etox_Color color, char *font, int font_size, Etox_Style style); + + +/** + * etox_free - Release all memory associated with this Etox + * @e: The Etox to free + * + * Release all memory associated with the specified Etox + */ void etox_free(Etox e); +/** + * etox_show - Set visibility of the Etox to on + * @e: The Etox to show + * + * Set visibility of the Etox to on + */ void etox_show(Etox e); + +/** + * etox_hide - Set visibility of the Etox to off + * @e: The Etox to hide + * + * Set visibility of the Etox to off + */ void etox_hide(Etox e); + +/** + * etox_raise - Raise the Etox on its Evas + * @e: The Etox + * + * Raise the Etox one layer on its corresponding Evas + */ void etox_raise(Etox e); + +/** + * etox_lower - Lower the Etox on its Evas + * @e: The Etox + * + * Lower the Etox one layer on its corresponding Evas + */ void etox_lower(Etox e); +/** + * etox_move - Move the Etox + * @e: The Etox + * @x: horizontal coordinate to move the Etox to + * @y: vertical coordinate to move the Etox to + * + * Moves the Etox to the specified coordinates on the associated Evas + */ void etox_move(Etox e, double x, double y); + +/** + * etox_resize - Resize the Etox + * @e: The Etox + * @w: The target width of the Etox + * @h: The target height of the Etox + * + * Changes the width and height to the specified values. + */ void etox_resize(Etox e, double w, double h); +/** + * etox_set_evas - Change the Evas associated with an Etox + * @e: The Etox + * @evas: The Evas to move the Etox to + * + * Changes the evas associated with an Etox. + */ void etox_set_evas(Etox e, Evas evas); + +/** + * etox_set_name - Rename the Etox + * @e: The Etox + * @name: The new name for the Etox + * + * Sets the name of the Etox to the specified string. + */ void etox_set_name(Etox e, char *name); + +/** + * etox_set_alpha - Adjust the alpha value of the Etox + * @e: The Etox + * @alpha: The new alpha value + * + * Sets the alpha value for the Etox to the specified value. + */ void etox_set_alpha(Etox e, int alpha); + +/** + * etox_set_padding - Adjust the padding value of the Etox + * @e: The Etox + * @padding: The new padding value + * + * Sets the alpha value for the Etox to the specified value. + */ void etox_set_padding(Etox e, double padding); +/** + * etox_set_layer - Change the layer the Etox is on + * @e: The Etox + * @layer: The layer to move the Etox to + * + * Changes the evas layer associated with an Etox. + */ void etox_set_layer(Etox e, int layer); + +/** + * etox_set_clip - Clip the Etox with the specified object + * @e: The Etox + * @clip: The Evas_Object to clip the Etox with + * + * Clip the Etox with the specified object. + */ void etox_set_clip(Etox e, Evas_Object clip); + +/** + * etox_unset_clip - Remove all clipping objects from the Etox + * @e: The Etox + * + * Remove all clipping objects from the Etox + */ void etox_unset_clip(Etox e); -/* these funcs set the defaults.. */ +/** + * etox_set_align - set the align values + * @e: The Etox + * @h_align: The new horizontal align value + * @v_align: The new vertical align value + * + * Sets the horizontal and vertical align values of the Etox. + */ void etox_set_align(Etox e, Etox_Align_Type h_align, Etox_Align_Type v_align); + +/** + * etox_set_color - Set the color for the Etox + * @e: The Etox + * @color: The new color + * + * Sets the Etox's color to the specified Etox_Color + */ void etox_set_color(Etox e, Etox_Color color); + +/** + * etox_set_font - change the font of the Etox + * @e: The Etox + * @font: The name of the font to switch to + * @size: The new font size + * + * Set the font used with this Etox to the specified name and size + */ void etox_set_font(Etox e, char *font, int size); + +/** + * etox_set_style - change the style of the Etox + * @e: The Etox + * @style: The new style to be used + * + * Set the font style used with this Etox to the specified Etox_Style + */ void etox_set_style(Etox e, Etox_Style style); +/** + * etox_set_text - change the text of the Etox + * @e: The Etox + * + * This functions takes a variable number of arguments and can be used to set + * the text associated with an Etox including changes in formating and + * properties as they happen within the text. + */ void etox_set_text(Etox e, ...); +/* + * Accessor functions + */ + +/** + * etox_get_evas - Return the Evas associated with the etox + * @e: The Etox + */ Evas etox_get_evas(Etox e); + +/** + * etox_get_name - Return the name of an Etox + * @e: The Etox + */ char * etox_get_name(Etox e); + +/** + * etox_get_alpha - Return the current alpha value of the Etox + * @e: The Etox + */ int etox_get_alpha(Etox e); + + +/** + * etox_get_padding - Return the current padding value of the Etox + * @e: The Etox + */ double etox_get_padding(Etox e); +/** + * etox_get_layer - Return the current layer of the Etox + * @e: The Etox + */ int etox_get_layer(Etox e); + +/** + * etox_get_clip - Return the list of Evas_Objects currently set to clip the + * Etox + * @e: The Etox + */ Evas_Object etox_get_clip(Etox e); +/** + * etox_get_align_v - Return the current vertical alignment value of the Etox + * @e: The Etox + */ Etox_Align_Type etox_get_align_v(Etox e); + +/** + * etox_get_align_h - Return the current horizontal alignment value of the Etox + * @e: The Etox + */ Etox_Align_Type etox_get_align_h(Etox e); + +/** + * etox_get_color - Return the current color of the Etox + * @e: The Etox + */ Etox_Color etox_get_color(Etox e); + +/** + * etox_get_font_name - Return the name of the font used with the Etox + * @e: The Etox + */ char * etox_get_font_name(Etox e); + +/** + * etox_get_font_size - Return the size of the font used with the Etox + * @e: The Etox + */ int etox_get_font_size(Etox e); + +/** + * etox_get_style - Return the style of the font used with the Etox + * @e: The Etox + */ Etox_Style etox_get_style(Etox e); +/** + * etox_get_text_string_length - + * @e: The Etox + */ int etox_get_text_string_lenght(Etox e); + +/** + * etox_get_text_string - + * @e: The Etox + */ char * etox_get_text_string(Etox e); + +/** + * etox_get_actual_text_string_length - + * @e: The Etox + */ int etox_get_actual_text_string_lenght(Etox e); + +/** + * etox_get_actual_text_string - + * @e: The Etox + */ char * etox_get_actual_text_string(Etox e); + +/** + * etox_get_geometry - + * @e: The Etox + * @x: pointer to the memory location for the x value + * @y: pointer to the memory location for the y value + * @w: pointer to the memory location for the w value + * @h: pointer to the memory location for the h value + */ void etox_get_geometry(Etox e, double *x, double *y, double *w, double *h); + +/** + * etox_get_actual_geometry - + * @e: The Etox + * @x: pointer to the memory location for the x value + * @y: pointer to the memory location for the y value + * @w: pointer to the memory location for the w value + * @h: pointer to the memory location for the h value + */ void etox_get_actual_geometry(Etox e, double *x, double *y, double *w, double *h); +/** + * etox_get_char_gemometry_at - + * @e: The Etox + * @index: + * @char_x: pointer to the memory location for the char_x value + * @char_y: pointer to the memory location for the char_y value + * @char_w: pointer to the memory location for the char_w value + * @char_h: pointer to the memory location for the char_h value + */ void etox_get_char_geometry_at(Etox e, int index, double *char_x, double *char_y, double *char_w, double *char_h); + +/** + * etox_get_char_geometry_at_position - + * @e: The Etox + * @x: horizontal offset from the upper left corner of the Evas + * @y: vertical offset from the upper left corner of the Evas + * @char_x: pointer to the memory location for the char_x value + * @char_y: pointer to the memory location for the char_y value + * @char_w: pointer to the memory location for the char_w value + * @char_h: pointer to the memory location for the char_h value + */ int etox_get_char_geometry_at_position(Etox e, double x, double y, double *char_x, double *char_y, @@ -152,35 +450,175 @@ double *char_h); +/* + * Obstacles + */ + +/** + * etox_obstacle_add - Add an obstacle to the Etox + * @x: Horizontal offset on the Evas for this obstacle + * @y: Vertical offset on the Evas for this obstacle + * @w: Width of the obstacle. + * @h: Height of the obstacle. + * + * Each Etox objects has an associated list of obstacles the text flows around. + * For each of those obstacles the x and y position as well as their width and + * height must be specified. Use this function to add such an obstacle to the + * Etox. + */ Etox_Obstacle etox_obstacle_add(Etox e, double x, double y, double w, double h); + +/** + * etox_obstacle_set - Change the geometry of the obstacle + * @x: New horizontal offset on the Evas for this obstacle + * @y: New vertical offset on the Evas for this obstacle + * @w: New width of the obstacle. + * @h: New height of the obstacle. + * + * Change the geometry settings for a given obstacle to the specified values. + */ void etox_obstacle_set(Etox e, Etox_Obstacle obst, double x, double y, double w, double h); + +/** + * etox_obstacle_del - Remove object form the list of obstacles + * @e: The Etox + * @obst: The Obstacle to remove + */ void etox_obstacle_del(Etox e, Etox_Obstacle obst); +/* + * Styles + */ + +/** + * etox_style_new - Load a new font style of the given name + * @name: The name of the font style to load. + * + * Looks for a font style in the stylepath, loads it if it finds it and + * returns it. + */ Etox_Style etox_style_new(char *name); + +/** + * etox_style_free - Free all memory associated with the given style + * @style: The style to free + */ void etox_style_free(Etox_Style style); +/** + * etox_style_add_path - Add a path to the pathlist + * @path: The path to add to the pathlist + * + * Etox keeps a global structure called the pathlist, which is a list of paths + * that are searched for styles. This function adds such a path to the list. + */ void etox_style_add_path(char *path); + +/** + * etox_style_del_path - Delete a path from the pathlist + * @path: The path to delete from the pathlist + * + * Etox keeps a global structure called the pathlist, which is a list of paths + * that are searched for styles. This function deletes the given path from this + * list. + */ void etox_style_del_path(char *path); + +/** + * etox_style_get_paths - List the search paths for styles + * + * Etox keeps a global structure called the pathlist, which is a list of paths + * that are searched for styles. This function returnes this list. + */ Ewd_List *etox_style_get_paths(void); +/* + * Colors + */ + +/** + * etox_color_new - Create a new Etox_Color object + */ Etox_Color etox_color_new(void); + +/** + * etox_color_set_member - Set the r,g,b and alpha values of a member + * @color: The Etox_Color to be manipulated + * @member: one of fg (foreground), ol (outline) or sh (shadow) + * @r: The red value for the color member + * @g: The green value for the color member + * @b: The blue value for the color member + * @a: The alpha value for the color member + * + * Each color consists of a foreground, an outline and a shadow component. To + * specify the red, green, blue and alpha values for one of them use this + * function and pass either fg, ol or sh as the member. + */ + void etox_color_set_member(Etox_Color color, char *member, int r, int g, int b, int a); + +/** + * etox_color_get_member - Get the r,g,b and alpha values of a member + * @color: The Etox_Color to be manipulated + * @member: one of fg (foreground), ol (outline) or sh (shadow) + * @r: Pointer to int for the red value for the color member + * @g: Pointer to int for the green value for the color member + * @b: Pointer to int for the blue value for the color member + * @a: Pointer to int for the alpha value for the color member + * + * Each color consists of a foreground, an outline and a shadow component. To + * get the red, green, blue and alpha values for one of them use this + * function and pass either fg, ol or sh as the member. + */ int etox_color_get_member(Etox_Color color, char *member, int *r, int *g, int *b, int *a); + +/** + * etox_color_free - Free all memory associated with an Etox_Color + */ void etox_color_free(Etox_Color color); -/* NOTE: don't forget to free the stuff returned by these funcs.. */ +/* + * Text manipulation functions + * + * NOTE: don't forget to free the stuff returned by these funcs.. + * + */ + +/** + * etox_str_remove_beginning_spaces - + */ char *etox_str_remove_beginning_spaces(char *str); + +/** + * etox_str_remove_ending_spaces - + */ char *etox_str_remove_ending_spaces(char *str); + +/** + * etox_str_chop_off_beginning_string - + */ char *etox_str_chop_off_beginning_string(char *str, char *chop); + +/** + * etox_str_chop_off_beginning_word - + */ char *etox_str_chop_off_beginning_word(char *str); + +/** + * etox_str_chop_off_ending_string - + */ char *etox_str_chop_off_ending_string(char *str, char *chop); + +/** + * etox_str_chop_off_ending_word - + */ char *etox_str_chop_off_ending_word(char *str); |
From: <enl...@li...> - 2001-12-27 15:38:23
|
Enlightenment CVS committal Author : tillsan Project : e17 Module : libs/etox Dir : e17/libs/etox Modified Files: Makefile.am configure.ac configure.in etox-config.h.in Log Message: While reading through the e17 codebase I thought I'd continue cK's effort to document as much as possible. So this is the start of Etox documentation. Could the people hacking on etox look over it and fill in the blanks while doing so? That'd be great. I'll try to flesh this out in the next couple of days. Wasnt there someone with tutorials for the various libs on his webpage? Whoedver you are, if you have something on Etox, would you consider integrating your work into this, please? Thanks and happy whatever to all of you. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/Makefile.am,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- Makefile.am 2001/08/17 12:20:33 1.5 +++ Makefile.am 2001/12/27 15:37:53 1.6 @@ -1,6 +1,6 @@ ## Process this file with automake to produce Makefile.in -SUBDIRS = src test +SUBDIRS = src test doc MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess \ config.h.in config.sub configure install-sh \ =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/configure.ac,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- configure.ac 2001/09/27 20:53:24 1.1 +++ configure.ac 2001/12/27 15:37:53 1.2 @@ -1,7 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT -AC_CONFIG_SRCDIR([configure.in]) +AC_INIT(configure.in) AM_INIT_AUTOMAKE(etox, 0.0.1) AM_CONFIG_HEADER(etox-config.h) @@ -45,6 +44,181 @@ fi changequote([,])dnl +EBITS_CONFIG="ebits-config" +AC_ARG_WITH(ebits, +[ --with-ebits-config=FILE ebits-config script to use (eg /usr/bin/ebits-config)], +[ + EBITS_CONFIG=$withval + AC_CHECK_PROG(EBITS_CONFIG_IN_PATH, $EBITS_CONFIG, yes, no) + if test $EBITS_CONFIG_IN_PATH = no; then + echo "ERROR:" + echo "The ebits-config development script you specified:" + echo "$EBITS_CONFIG" + echo "was not found. Please check the path and make sure " + echo "the script exists and is executable." + AC_MSG_ERROR([Fatal Error: no ebits-config detected.]) + exit; + fi +], +[ + AC_CHECK_PROG(EBITS_CONFIG_IN_PATH, $EBITS_CONFIG, yes, no) + if test $EBITS_CONFIG_IN_PATH = no; then + echo "ERROR:" + echo "The ebits-config development script was not found in your execute" + echo "path. This may mean one of several things" + echo "1. You may not have installed the ebits-devel (or ebits-dev)" + echo " packages." + echo "2. You may have ebits installed somewhere not covered by your path." + echo "" + echo "If this is the case make sure you have the packages installed, AND" + echo "that the ebits-config script is in your execute path (see your" + echo "shell's manual page on setting the \$PATH environment variable), OR" + echo "alternatively, specify the script to use with --with-ebits-config." + AC_MSG_ERROR([Fatal Error: no ebits-config detected.]) + exit; + fi +]) + +EDB_CONFIG="edb-config" +AC_ARG_WITH(edb, +[ --with-edb-config=FILE edb-config script to use (eg /usr/bin/edb-config)], +[ + EDB_CONFIG=$withval + AC_CHECK_PROG(EDB_CONFIG_IN_PATH, $EDB_CONFIG, yes, no) + if test $EDB_CONFIG_IN_PATH = no; then + echo "ERROR:" + echo "The edb-config development script you specified:" + echo "$EDB_CONFIG" + echo "was not found. Please check the path and make sure " + echo "the script exists and is executable." + AC_MSG_ERROR([Fatal Error: no edb-config detected.]) + exit; + fi +], +[ + AC_CHECK_PROG(EDB_CONFIG_IN_PATH, $EDB_CONFIG, yes, no) + if test $EDB_CONFIG_IN_PATH = no; then + echo "ERROR:" + echo "The edb-config development script was not found in your execute" + echo "path. This may mean one of several things" + echo "1. You may not have installed the edb-devel (or edb-dev)" + echo " packages." + echo "2. You may have edb installed somewhere not covered by your path." + echo "" + echo "If this is the case make sure you have the packages installed, AND" + echo "that the edb-config script is in your execute path (see your" + echo "shell's manual page on setting the \$PATH environment variable), OR" + echo "alternatively, specify the script to use with --with-edb-config." + AC_MSG_ERROR([Fatal Error: no edb-config detected.]) + exit; + fi +]) + +EVAS_CONFIG="evas-config" +AC_ARG_WITH(evas, +[ --with-evas-config=FILE evas-config script to use (eg /usr/bin/evas-config)], +[ + EVAS_CONFIG=$withval + AC_CHECK_PROG(EVAS_CONFIG_IN_PATH, $EVAS_CONFIG, yes, no) + if test $EVAS_CONFIG_IN_PATH = no; then + echo "ERROR:" + echo "The evas-config development script you specified:" + echo "$EVAS_CONFIG" + echo "was not found. Please check the path and make sure " + echo "the script exists and is executable." + AC_MSG_ERROR([Fatal Error: no evas-config detected.]) + exit; + fi +], +[ + AC_CHECK_PROG(EVAS_CONFIG_IN_PATH, $EVAS_CONFIG, yes, no) + if test $EVAS_CONFIG_IN_PATH = no; then + echo "ERROR:" + echo "The evas-config development script was not found in your execute" + echo "path. This may mean one of several things" + echo "1. You may not have installed the evas-devel (or evas-dev)" + echo " packages." + echo "2. You may have evas installed somewhere not covered by your path." + echo "" + echo "If this is the case make sure you have the packages installed, AND" + echo "that the evas-config script is in your execute path (see your" + echo "shell's manual page on setting the \$PATH environment variable), OR" + echo "alternatively, specify the script to use with --with-evas-config." + AC_MSG_ERROR([Fatal Error: no evas-config detected.]) + exit; + fi +]) + +EWD_CONFIG="ewd-config" +AC_ARG_WITH(ewd, +[ --with-ewd-config=FILE ewd-config script to use (eg /usr/bin/ewd-config)], +[ + EWD_CONFIG=$withval + AC_CHECK_PROG(EWD_CONFIG_IN_PATH, $EWD_CONFIG, yes, no) + if test $EWD_CONFIG_IN_PATH = no; then + echo "ERROR:" + echo "The ewd-config development script you specified:" + echo "$EWD_CONFIG" + echo "was not found. Please check the path and make sure " + echo "the script exists and is executable." + AC_MSG_ERROR([Fatal Error: no ewd-config detected.]) + exit; + fi +], +[ + AC_CHECK_PROG(EWD_CONFIG_IN_PATH, $EWD_CONFIG, yes, no) + if test $EWD_CONFIG_IN_PATH = no; then + echo "ERROR:" + echo "The ewd-config development script was not found in your execute" + echo "path. This may mean one of several things" + echo "1. You may not have installed the ewd-devel (or ewd-dev)" + echo " packages." + echo "2. You may have ewd installed somewhere not covered by your path." + echo "" + echo "If this is the case make sure you have the packages installed, AND" + echo "that the ewd-config script is in your execute path (see your" + echo "shell's manual page on setting the \$PATH environment variable), OR" + echo "alternatively, specify the script to use with --with-ewd-config." + AC_MSG_ERROR([Fatal Error: no ewd-config detected.]) + exit; + fi +]) + +IMLIB2_CONFIG="imlib2-config" +AC_ARG_WITH(imlib2, +[ --with-imlib2-config=FILE imlib2-config script to use (eg /usr/bin/imlib2-config)], +[ + IMLIB2_CONFIG=$withval + AC_CHECK_PROG(IMLIB2_CONFIG_IN_PATH, $IMLIB2_CONFIG, yes, no) + if test $IMLIB2_CONFIG_IN_PATH = no; then + echo "ERROR:" + echo "The imlib2-config development script you specified:" + echo "$IMLIB2_CONFIG" + echo "was not found. Please check the path and make sure " + echo "the script exists and is executable." + AC_MSG_ERROR([Fatal Error: no imlib2-config detected.]) + exit; + fi +], +[ + AC_CHECK_PROG(IMLIB2_CONFIG_IN_PATH, $IMLIB2_CONFIG, yes, no) + if test $IMLIB2_CONFIG_IN_PATH = no; then + echo "ERROR:" + echo "The imlib2-config development script was not found in your execute" + echo "path. This may mean one of several things" + echo "1. You may not have installed the imlib2-devel (or imlib2-dev)" + echo " packages." + echo "2. You may have imlib2 installed somewhere not covered by your path." + echo "" + echo "If this is the case make sure you have the packages installed, AND" + echo "that the imlib2-config script is in your execute path (see your" + echo "shell's manual page on setting the \$PATH environment variable), OR" + echo "alternatively, specify the script to use with --with-imlib2-config." + AC_MSG_ERROR([Fatal Error: no imlib2-config detected.]) + exit; + fi +]) + AC_SUBST(ebits_cflags) AC_SUBST(ebits_libs) ebits_cflags=`ebits-config --cflags` @@ -74,18 +248,34 @@ AC_SUBST(imlib2_libs) imlib2_cflags=`imlib2-config --cflags` imlib2_libs=`imlib2-config --libs` + -AC_CONFIG_FILES([ +dnl Checking for Perl: +AC_PATH_PROG(PERL,perl,0) +AC_SUBST(PERL) + +dnl Look for jade for sgml translations. +AC_ARG_WITH(dbsheets, + [ --with-dbsheets=DIR use DIR to specify your DocBook stylesheets installation path.], + DB_STYLESHEETS="$withval", DB_STYLESHEETS="/usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh") +AC_SUBST(DB_STYLESHEETS) +AC_PATH_PROG(JADE, jade) +AM_CONDITIONAL(HAVE_JADE, test "x$JADE" != "x" && test -d "$DB_STYLESHEETS") + + +AC_OUTPUT([ Makefile etox-config src/Makefile +doc/kernel-doc +doc/html-customizations.dsl +doc/Makefile test/Makefile test/fnt/Makefile test/img/Makefile test/style/Makefile -]) -AC_CONFIG_COMMANDS([default],[[ +], [ chmod +x etox-config - -]],[[]]) -AC_OUTPUT +chmod +x doc/kernel-doc +] +) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/configure.in,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- configure.in 2001/10/01 04:04:48 1.7 +++ configure.in 2001/12/27 15:37:53 1.8 @@ -249,15 +249,33 @@ imlib2_cflags=`imlib2-config --cflags` imlib2_libs=`imlib2-config --libs` + +dnl Checking for Perl: +AC_PATH_PROG(PERL,perl,0) +AC_SUBST(PERL) + +dnl Look for jade for sgml translations. +AC_ARG_WITH(dbsheets, + [ --with-dbsheets=DIR use DIR to specify your DocBook stylesheets installation path.], + DB_STYLESHEETS="$withval", DB_STYLESHEETS="/usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh") +AC_SUBST(DB_STYLESHEETS) +AC_PATH_PROG(JADE, jade) +AM_CONDITIONAL(HAVE_JADE, test "x$JADE" != "x" && test -d "$DB_STYLESHEETS") + + AC_OUTPUT([ Makefile etox-config src/Makefile +doc/kernel-doc +doc/html-customizations.dsl +doc/Makefile test/Makefile test/fnt/Makefile test/img/Makefile test/style/Makefile ], [ chmod +x etox-config +chmod +x doc/kernel-doc ] ) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/etox-config.h.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- etox-config.h.in 2001/11/12 00:04:15 1.3 +++ etox-config.h.in 2001/12/27 15:37:53 1.4 @@ -1,19 +1,24 @@ -/* etox-config.h.in. Generated automatically from configure.ac by autoheader. */ +/* etox-config.h.in. Generated automatically from configure.in by autoheader. */ + +/* Define to empty if the keyword does not work. */ +#undef const + +/* Define if you need to in order for stat and other things to work. */ +#undef _POSIX_SOURCE + +/* Define if you have the ANSI C header files. */ +#undef STDC_HEADERS + #undef PACKAGE_DATA_DIR #undef PACKAGE_LOCALE_DIR #undef PACKAGE_SOURCE_DIR -/* Define if you have the <dlfcn.h> header file. */ +/* Define if you have the <dlfcn.h> header file. */ #undef HAVE_DLFCN_H /* Name of package */ #undef PACKAGE -/* Define if you have the ANSI C header files. */ -#undef STDC_HEADERS - /* Version number of package */ #undef VERSION -/* Define to empty if `const' does not conform to ANSI C. */ -#undef const |
From: <enl...@li...> - 2001-12-31 14:04:59
|
Enlightenment CVS committal Author : tillsan Project : e17 Module : libs/etox Dir : e17/libs/etox/src Modified Files: Etox_private.h etox.c etox_create.c etox_object.c etox_obstacle.c etox_set.c Log Message: - only rebuild internal object lists when necessary - greatly simplified obstacle algorithm. it works correctly in the cases I tested and appears to be no worse than the original - comments here and there - various cleanups - a couple of additional functions (etox_object_*_clone and etox_object_string_set_string) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/src/Etox_private.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- Etox_private.h 2001/11/12 00:04:15 1.7 +++ Etox_private.h 2001/12/31 14:04:57 1.8 @@ -33,7 +33,6 @@ #endif - enum _Etox_Object_Bit_Type { ETOX_OBJECT_BIT_TYPE_NULL, @@ -100,15 +99,31 @@ struct _Etox_All_Bits def; + /* This is the list of Etox_Bits as passed in by the user. */ Ewd_List *bits; Ewd_List *obstacles; + /* This is a list of Etox_Object_Bits. It only needs to be built once + * initially and then everytime the text changes. The dirty flag is set + * whenever that happens.*/ + struct _etox_object_bits + { + Ewd_List *list; + int dirty; + } etox_object_bits; + + /* This is a list of Etox_Objects. Those continuous chunks that group + * together several Etox_Object_Bits. They need to be recalculated once + * initially and on every change of layout. */ struct _etox_objects { double h; Ewd_List *list; + int dirty; } etox_objects; + /* These are the actual evas objects that are rendered. They change whenever + * the above etox_objects change. */ struct _evas_objects { Ewd_List *list; @@ -246,6 +261,7 @@ int _etox_object_add_bit(Etox_Object obj, Etox_Object_Bit obj_bit); Etox_Object_Bit _etox_object_bit_new(void); +Etox_Object_Bit _etox_object_bit_clone(Etox_Object_Bit); void _etox_object_bit_free(Etox_Object_Bit bit); void _etox_object_bit_set_body(Etox e, Etox_Object_Bit bit, @@ -272,12 +288,16 @@ Etox_Font font, Etox_Style style); void _etox_object_string_free(Etox_Object_String string); +void _etox_object_string_set_string( + Etox_Object_String string, char *t); +Etox_Object_String _etox_object_string_clone(Etox_Object_String string); Etox_Object_Newline _etox_object_newline_new(void); void _etox_object_newline_free(Etox_Object_Newline nl); Etox_Object_Tab _etox_object_tab_new(Etox_Align align, Etox_Callback callback, Etox_Font font); void _etox_object_tab_free(Etox_Object_Tab tab); +Etox_Object_Tab _etox_object_tab_clone(Etox_Object_Tab tab); void _etox_align_etox_object(Etox e, Etox_Object obj); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/src/etox.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- etox.c 2001/11/12 00:04:15 1.20 +++ etox.c 2001/12/31 14:04:57 1.21 @@ -9,7 +9,6 @@ #endif { _etox_create_etox_objects(e); - _etox_create_evas_objects(e); _etox_refresh(e); } @@ -139,8 +138,12 @@ e->bits = NULL; e->obstacles = NULL; + e->etox_object_bits.list = NULL; + e->etox_object_bits.dirty = 1; + e->etox_objects.list = NULL; e->etox_objects.h = 0.0; + e->etox_objects.dirty = 1; e->evas_objects.list = NULL; return e; @@ -267,6 +270,7 @@ e->w = w; e->h = h; + e->etox_objects.dirty = 1; _etox_rebuild(e); } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/src/etox_create.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- etox_create.c 2001/12/19 19:36:54 1.8 +++ etox_create.c 2001/12/31 14:04:57 1.9 @@ -5,7 +5,8 @@ static int __get_next_all_bits(Etox e, Ewd_List *bits_list, Etox_All_Bits bits); static char *__my_strchr(char *str, int *c); static Ewd_List *__get_etox_object_bits_list(Etox e); -static int __check_if_in_obstacle_from_sort(Etox e, Etox_Sort sort, double x); +static int __etox_get_next_obstacle_to_the_right(Etox e, Etox_Sort sort, + double x, int *inside); static Etox_Object __create_etox_object(Etox e, double *x, double *y); static int __compare_obstacles(void *ptr1, void *ptr2); static Ewd_List *__add_as_many_bits_as_possible_from_list(Etox e, @@ -120,143 +121,125 @@ static Ewd_List * __get_etox_object_bits_list(Etox e) { - Ewd_List *bit_list = NULL; + Ewd_List *bit_list = NULL, *ret = NULL; + void *temp; struct _Etox_All_Bits bits; Etox_Object_Bit obj_bit; char *p = NULL, *q = NULL, *r = NULL; int c; if (!e || !e->bits) - return NULL; - - /* put defaults.. */ - bits.align = e->def.align; - bits.callback = e->def.callback; - bits.color = e->def.color; - bits.font = e->def.font; - bits.style = e->def.style; - bits.text = e->def.text; + return NULL; - /* We don't need to free the bits because they'll be move to the + /* only rebuild this list when the underlying bit list changes. */ + if (e->etox_object_bits.dirty) + { + bit_list = ewd_list_new(); + ewd_list_set_free_cb(bit_list,EWD_FREE_CB(_etox_object_bit_free)); + + /* put defaults.. */ + bits.align = e->def.align; + bits.callback = e->def.callback; + bits.color = e->def.color; + bits.font = e->def.font; + bits.style = e->def.style; + bits.text = e->def.text; + + ewd_list_goto_first(e->bits); + while (__get_next_all_bits(e, e->bits, &bits)) + { + if ((p = __my_strchr(bits.text->str, &c))) + { + r = bits.text->str; + do + { + IF_FREE(q); + q = etox_str_chop_off_ending_string(r, p); + obj_bit = _etox_object_bit_new(); + _etox_object_bit_set_body(e, obj_bit, + _etox_object_string_new(q, + bits.align, + bits.callback, + bits.color, + bits.font, + bits.style), + ETOX_OBJECT_BIT_TYPE_STRING); + ewd_list_append(bit_list, obj_bit); + switch (c) + { + case '\n': + obj_bit = _etox_object_bit_new(); + _etox_object_bit_set_body(e, obj_bit, + _etox_object_newline_new(), + ETOX_OBJECT_BIT_TYPE_NEWLINE); + ewd_list_append(bit_list, obj_bit); + break; + case '\t': + obj_bit = _etox_object_bit_new(); + _etox_object_bit_set_body(e, obj_bit, + _etox_object_tab_new(bits.align, + bits.callback, + bits.font), + ETOX_OBJECT_BIT_TYPE_TAB); + ewd_list_append(bit_list, obj_bit); + break; + default: + D_PRINT("Error!\n"); + break; + } + + r = ++p; + + } while ((p = __my_strchr(r, &c))); + + if ((p = strrchr(bits.text->str, c)) && strlen(p)) + { + p++; + obj_bit = _etox_object_bit_new(); + _etox_object_bit_set_body(e, obj_bit, + _etox_object_string_new(p, + bits.align, + bits.callback, + bits.color, + bits.font, + bits.style), + ETOX_OBJECT_BIT_TYPE_STRING); + ewd_list_append(bit_list, obj_bit); + } + } + else + { + obj_bit = _etox_object_bit_new(); + _etox_object_bit_set_body(e, obj_bit, + _etox_object_string_new(bits.text->str, + bits.align, + bits.callback, + bits.color, + bits.font, + bits.style), + ETOX_OBJECT_BIT_TYPE_STRING); + ewd_list_append(bit_list, obj_bit); + } + } + e->etox_object_bits.list = bit_list; + } + e->etox_object_bits.dirty = 0; + + /* + * Return a copy of the list because it will be consumed. + * We don't need to free the bits because they'll be move to the * Etox_Objects.. */ - bit_list = ewd_list_new(); - ewd_list_set_free_cb(bit_list, NULL); - - /* put defaults.. */ - bits.align = e->def.align; - bits.callback = e->def.callback; - bits.color = e->def.color; - bits.font = e->def.font; - bits.style = e->def.style; - bits.text = e->def.text; - - ewd_list_goto_first(e->bits); - while (__get_next_all_bits(e, e->bits, &bits)) - { - if ((p = __my_strchr(bits.text->str, &c))) - { - r = bits.text->str; - do - { - IF_FREE(q); - q = etox_str_chop_off_ending_string(r, p); - obj_bit = _etox_object_bit_new(); - _etox_object_bit_set_body(e, obj_bit, - _etox_object_string_new(q, - bits.align, - bits.callback, - bits.color, - bits.font, - bits.style), - ETOX_OBJECT_BIT_TYPE_STRING); - ewd_list_append(bit_list, obj_bit); - switch (c) - { - case '\n': - obj_bit = _etox_object_bit_new(); - _etox_object_bit_set_body(e, obj_bit, - _etox_object_newline_new(), - ETOX_OBJECT_BIT_TYPE_NEWLINE); - ewd_list_append(bit_list, obj_bit); - break; - case '\t': - obj_bit = _etox_object_bit_new(); - _etox_object_bit_set_body(e, obj_bit, - _etox_object_tab_new(bits.align, - bits.callback, - bits.font), - ETOX_OBJECT_BIT_TYPE_TAB); - ewd_list_append(bit_list, obj_bit); - break; - default: - D_PRINT("Error!\n"); - break; - } - - r = ++p; - - } while ((p = __my_strchr(r, &c))); - if ((p = strrchr(bits.text->str, c)) && strlen(p)) - { - p++; - obj_bit = _etox_object_bit_new(); - _etox_object_bit_set_body(e, obj_bit, - _etox_object_string_new(p, - bits.align, - bits.callback, - bits.color, - bits.font, - bits.style), - ETOX_OBJECT_BIT_TYPE_STRING); - ewd_list_append(bit_list, obj_bit); - } - } - else - { - obj_bit = _etox_object_bit_new(); - _etox_object_bit_set_body(e, obj_bit, - _etox_object_string_new(bits.text->str, - bits.align, - bits.callback, - bits.color, - bits.font, - bits.style), - ETOX_OBJECT_BIT_TYPE_STRING); - ewd_list_append(bit_list, obj_bit); - } - } - - return bit_list; + ret = ewd_list_new(); + ewd_list_set_free_cb(ret, NULL); + ewd_list_goto_first(e->etox_object_bits.list); + while ((temp = ewd_list_next(e->etox_object_bits.list))) + ewd_list_append(ret, temp); + + return ret; } static int -__check_if_in_obstacle_from_sort(Etox e, Etox_Sort sort, double x) -{ - Etox_Obstacle obst; - int i; - - if (!e || !sort) - return -1; - - /* this func returns the index in the sort from the obstacle */ - - for (i = 0; i <= _etox_sort_get_size(sort); i++) - { - obst = (Etox_Obstacle) _etox_sort_get_data(sort, i); - - if ((ET_X_TO_EV(x) > obst->x) && - (ET_X_TO_EV(x) < (obst->x + obst->w))) - { - /* we're in an obstacle */ - return i; - } - } - - return -1; -} - -static int __compare_obstacles(void *ptr1, void *ptr2) { Etox_Obstacle obst1, obst2; @@ -275,16 +258,73 @@ return 0; } +Ewd_List * +__etox_get_obstacles_at_height(Etox e, int height) +{ + Ewd_List *obst_list = NULL; + Etox_Obstacle obst; + + obst_list = ewd_list_new(); + ewd_list_set_free_cb(obst_list, NULL); + + ewd_list_goto_first(e->obstacles); + while ((obst = (Etox_Obstacle) ewd_list_next(e->obstacles))) + { + if ( ((ET_Y_TO_EV(height) > obst->y) && + (ET_Y_TO_EV(height) < (obst->y + obst->h))) || + ((ET_Y_TO_EV(height + e->etox_objects.h) > obst->y) && + (ET_Y_TO_EV(height + e->etox_objects.h) < (obst->y + obst->h))) || + ((ET_Y_TO_EV(height) < obst->y) && + (ET_Y_TO_EV(height + e->etox_objects.h) > obst->y)) ) + { + ewd_list_append(obst_list, obst); + } + } + return obst_list; +} + +static int +__etox_get_next_obstacle_to_the_right(Etox e, Etox_Sort sort, + double x, int *inside) +{ + Etox_Obstacle obst; + int i; + + if (!e || !sort) + return -1; + + /* iterate over obstacles and return the first one to the right of the + * current coordinate. Set inside flag when we are inside the obstacle */ + + for (i = 0; i <= _etox_sort_get_size(sort); i++) + { + obst = (Etox_Obstacle) _etox_sort_get_data(sort, i); + + if ( (ET_X_TO_EV(x) < obst->x) ) + { + *inside = 0; + return i; + } + else if ((ET_X_TO_EV(x) > obst->x) && + (ET_X_TO_EV(x) < (obst->x + obst->w))) + { + /* we're in an obstacle */ + *inside = 1; + return i; + } + } + return -1; +} + static Etox_Object __create_etox_object(Etox e, double *x, double *y) { - /* FIXME: this func is _too long_ :) -redalb */ - + Ewd_List *obst_list = NULL; Etox_Object obj = NULL; Etox_Obstacle obst; - Ewd_List *obst_list = NULL; Etox_Sort sort; int i; + int inside= 0; if (!e) return NULL; @@ -292,184 +332,48 @@ obj = _etox_object_new(e, *x, *y); D_PRINT("xx Creating %p: -----\n", obj); - - if (!e->obstacles || ewd_list_is_empty(e->obstacles)) - { - D_PRINT("xx No obstacles..\n"); - obj->w = e->w; - /* move to next line if no obstacles */ - *x = 0.0; - *y += e->etox_objects.h + e->padding; - } - else + /* Default is to advance to the next line */ + obj->w = e->w - obj->x; + *x = 0.0; + *y += e->etox_objects.h + e->padding; + + if (e->obstacles && !ewd_list_is_empty(e->obstacles)) { D_PRINT("xx Obstacles..\n"); - /* create list that contains all obstacles at the current height */ - ewd_list_goto_first(e->obstacles); - while ((obst = (Etox_Obstacle) ewd_list_next(e->obstacles))) - if ( ((ET_Y_TO_EV(obj->y) > obst->y) && - (ET_Y_TO_EV(obj->y) < (obst->y + obst->h))) || - ((ET_Y_TO_EV(obj->y + e->etox_objects.h) > obst->y) && - (ET_Y_TO_EV(obj->y + e->etox_objects.h) < (obst->y + obst->h))) || - ((ET_Y_TO_EV(obj->y) < obst->y) && - (ET_Y_TO_EV(obj->y + e->etox_objects.h) > obst->y)) ) - { - /* obstacle is at the current height.. */ - if (!obst_list) - { - /* free'ing is not necessary 'cause it's a list of - * _pointers_, and we still need the stuff they point - * to later on.. - */ - obst_list = ewd_list_new(); - ewd_list_set_free_cb(obst_list, NULL); - } - ewd_list_append(obst_list, obst); - } + obst_list = __etox_get_obstacles_at_height(e, obj->y); + /* return whole row, there are no obstacles */ if (!obst_list || ewd_list_is_empty(obst_list)) - { - /* Yay! No obstacles at current height.. */ - D_PRINT("xx No obstacles at current height..\n"); - obj->w = e->w; - *x = 0.0; - *y += e->etox_objects.h + e->padding; - D_PRINT("xx obj->w = %f\n", obj->w); - return obj; - } - + return obj; + /* sort obstacles from left to right.. */ sort = _etox_sort_new(ewd_list_nodes(obst_list) - 1); _etox_sort_set_data_from_list(sort, obst_list); - _etox_sort_now(sort, 0, _etox_sort_get_size(sort), __compare_obstacles); - - obst = (Etox_Obstacle) _etox_sort_get_data(sort, 0); - if (obst && (ET_X_TO_EV(obj->x) < obst->x)) - { - /* we're at the left of the first obstacle */ - D_PRINT("xx At the left of first obstacle..\n"); - obj->w = EV_X_TO_ET(obst->x) - obj->x; - *x = EV_X_TO_ET(obst->x) + obst->w; - } - else - { - /* we're either in or at the right of the first obstacle */ - D_PRINT("xx At the right of or in first obstacle..\n"); - - if ((i = __check_if_in_obstacle_from_sort(e, sort, obj->x)) >= 0) - { - /* move the x-coord 'cause we're in an obstacle */ - do - { - D_PRINT("xx In an obstacle..\n"); - obst = (Etox_Obstacle) _etox_sort_get_data(sort, i); - obj->x = EV_X_TO_ET(obst->x) + obst->w; - /* check if there are obstacles at the right of the x-coord */ - if ((obst = (Etox_Obstacle) _etox_sort_get_data(sort, i + 1))) - { - D_PRINT("xx Obstacle(s) at the right..\n"); - obj->w = EV_X_TO_ET(obst->x) - obj->x; - *x = EV_X_TO_ET(obst->x) + obst->w; - } - else - { - D_PRINT("xx No obstacles at the right..\n"); - obj->w = e->w - obj->x; - *x = 0.0; - *y += e->etox_objects.h + e->padding; - } - } while ((i = __check_if_in_obstacle_from_sort(e, sort, obj->x)) - >= 0); - D_PRINT("xx Moving on..\n"); - } - else - { - /* we're at the right of the first but not in an obstacle */ - - switch(_etox_sort_get_size(sort)) - { - case 0: /* there's only one obstacle */ - D_PRINT("xx There's only one obstacle\n"); - obj->w = e->w - obj->x; - *x = 0.0; - *y += e->etox_objects.h + e->padding; - break; - case 1: /* there are 2 obstacles.. */ - D_PRINT("xx There are 2 obstacles..\n"); - obst = (Etox_Obstacle) _etox_sort_get_data(sort, 1); - if (ET_X_TO_EV(obj->x) < obst->x) - { - /* were at the left of the last obst */ - D_PRINT("xx We're at the left of last obstacle\n"); - obj->w = EV_X_TO_ET(obst->x) - obj->x; - *x = EV_X_TO_ET(obst->x) + obst->w; - } - else - { - /* were at the right of the last obst */ - D_PRINT("xx We're at the right of last obstacle\n"); - obj->w = e->w - obj->x; - *x = 0.0; - *y += e->etox_objects.h + e->padding; - } - break; - default: /* there are at least 3 obstacles.. */ - D_PRINT("xx There are at least 3 obstacles..\n"); - /* check all obstacles exept the first and the last */ - for (i = 1; i < _etox_sort_get_size(sort); i++) - { - obst = (Etox_Obstacle) _etox_sort_get_data(sort, i); - if (ET_X_TO_EV(obj->x) < obst->x) - { - /* were at the left of 'obst' */ - obj->w = EV_X_TO_ET(obst->x) - obj->x; - *x = EV_X_TO_ET(obst->x) + obst->w; - break; - } - } - if (i == _etox_sort_get_size(sort)) - { - /* check the last obstacle */ - obst = (Etox_Obstacle) _etox_sort_get_data(sort, i); - if (ET_X_TO_EV(obj->x) < obst->x) - { - /* were at the left of the last obstacle */ - obj->w = EV_X_TO_ET(obst->x) - obj->x; - *x = EV_X_TO_ET(obst->x) + obst->w; - } - else - { - /* were at the right of the last obstacle */ - obj->w = e->w - obj->x; - *x = 0.0; - *y += e->etox_objects.h + e->padding; - } - } - break; - } - } - } - - - D_PRINT("xx Checking if still in etox.. %f >= %f ?\n", obj->x, e->w); - /* move to next line anyway if we're out of the etox */ - if (obj->x >= e->w) - { - D_PRINT("xx Out of the etox..\n"); - obj->x = 0.0; - obj->y += e->etox_objects.h + e->padding; - obj->w = e->w; - *x = 0.0; - *y = obj->y + e->etox_objects.h + e->padding; - } - - /* cleanup.. */ - _etox_sort_free(sort); + _etox_sort_now(sort, 0, _etox_sort_get_size(sort), __compare_obstacles); + i = __etox_get_next_obstacle_to_the_right(e, sort, obj->x, &inside); + if (i >= 0) + { + obst = (Etox_Obstacle) _etox_sort_get_data(sort, i); + + /* the next obj will have to be to the right of obstacle */ + *x = EV_X_TO_ET(obst->x) + obst->w; + *y -= e->etox_objects.h + e->padding; + + if (inside) + { + /* inside, try again with new coordinates */ + printf("recures\n"); + return __create_etox_object(e, x, y); + } + else + { + obj->w = EV_X_TO_ET(obst->x) - obj->x; + } + } ewd_list_destroy(obst_list); - } - + _etox_sort_free(sort); + } D_PRINT("xx obj->w = %f\n", obj->w); - D_PRINT("xx Created %p: -----\n", obj); return obj; @@ -481,7 +385,7 @@ { /* FIXME: this func is _too long_ :) -redalb */ - /* Adds as may bits (Etox_Object_Bit) as possible from + /* Adds as many bits (Etox_Object_Bit) as possible from * list to obj and returns the list of bits it couldn't add.. * The bits that could be added will be removed from list.. */ @@ -496,15 +400,18 @@ while (!ewd_list_is_empty(list)) { - obj_bit = (Etox_Object_Bit) ewd_list_remove_first(list); + obj_bit = _etox_object_bit_clone( + (Etox_Object_Bit) ewd_list_remove_first(list)); if (!_etox_object_add_bit(obj, obj_bit)) { - /* if there is space left, break a bit in two and add the first one */ + /* obj_bit didnt fit into the obj if there is space left in the obj, + * and it is a string bit, break the bit in two and try again with + * the first part */ if (_etox_object_get_available_size(obj, &w)) switch (obj_bit->type) - { - case ETOX_OBJECT_BIT_TYPE_STRING: - { + { + case ETOX_OBJECT_BIT_TYPE_STRING: + { Etox_Align align; Etox_Callback callback; Etox_Color color; @@ -597,7 +504,7 @@ IF_FREE(q); IF_FREE(r); break; - } + } default: break; } @@ -612,7 +519,6 @@ } ewd_list_append(todo, obj_bit); } - break; } #ifdef DEBUG @@ -633,12 +539,12 @@ _etox_create_etox_objects(Etox e) { Ewd_List *et_obj_bits, *l; - static Ewd_List *todo = NULL; + Ewd_List *todo = NULL; Etox_Object obj; Etox_Object_Bit obj_bit; double x = 0.0, y = 0.0; - if (!e || !e->bits || ewd_list_is_empty(e->bits)) + if (!e || !e->bits || ewd_list_is_empty(e->bits) || !e->etox_objects.dirty) return; if (e->etox_objects.list) @@ -649,7 +555,7 @@ et_obj_bits = __get_etox_object_bits_list(e); - /* add value to e->etox_objects.h */ + /* set e->etox_objects.h to the height of the tallest object_bit */ e->etox_objects.h = 0.0; ewd_list_goto_first(et_obj_bits); while ((obj_bit = (Etox_Object_Bit) ewd_list_next(et_obj_bits))) @@ -674,11 +580,11 @@ if (todo && !ewd_list_is_empty(todo)) continue; } - todo = __add_as_many_bits_as_possible_from_list(e, obj, et_obj_bits); } - ewd_list_destroy(et_obj_bits); + e->etox_objects.dirty = 0; + _etox_create_evas_objects(e); } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/src/etox_object.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- etox_object.c 2001/11/22 15:30:27 1.8 +++ etox_object.c 2001/12/31 14:04:57 1.9 @@ -114,6 +114,42 @@ return bit; } +Etox_Object_Bit +_etox_object_bit_clone(Etox_Object_Bit old) +{ + Etox_Object_Bit bit; + + bit = _etox_object_bit_new(); + bit->type = old->type; + bit->w = old->w; + bit->h = old->h; + if (bit->evas_objects_list.fg) + bit->evas_objects_list.fg = bit->evas_objects_list.fg; + if (bit->evas_objects_list.sh) + bit->evas_objects_list.sh = bit->evas_objects_list.sh; + if (bit->evas_objects_list.ol) + bit->evas_objects_list.ol = bit->evas_objects_list.ol; + + switch (bit->type) + { + case ETOX_OBJECT_BIT_TYPE_STRING: + bit->body = _etox_object_string_clone((Etox_Object_String) old->body); + break; + case ETOX_OBJECT_BIT_TYPE_NEWLINE: + bit->body = _etox_object_newline_new(); + break; + case ETOX_OBJECT_BIT_TYPE_TAB: + bit->body = _etox_object_tab_clone((Etox_Object_Tab) old->body); + break; + default: + D_PRINT("Unkown Etox_Object_Bit, not cloned!\n"); + break; + } + + return bit; +} + + void _etox_object_bit_free(Etox_Object_Bit bit) { @@ -337,6 +373,25 @@ return string; } +Etox_Object_String +_etox_object_string_clone(Etox_Object_String old) +{ + Etox_Object_String string; + + if (!old) + return NULL; + + string = (Etox_Object_String) malloc(sizeof(struct _Etox_Object_String)); + string->str = strdup(old->str); + string->align = old->align; + string->callback = old->callback; + string->color = old->color; + string->font = old->font; + string->style = old->style; + + return string; +} + void _etox_object_string_free(Etox_Object_String string) { @@ -346,6 +401,16 @@ FREE(string); } +void +_etox_object_string_set_string(Etox_Object_String string, char *t) +{ + if (!string) + return; + IF_FREE(string->str); + string->str = t; +} + + Etox_Object_Newline _etox_object_newline_new(void) { @@ -378,6 +443,15 @@ return tab; } + +Etox_Object_Tab +_etox_object_tab_clone(Etox_Object_Tab old) +{ + Etox_Object_Tab tab; + tab = _etox_object_tab_new(old->align, old->callback, old->font); + return tab; +} + void _etox_object_tab_free(Etox_Object_Tab tab) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/src/etox_obstacle.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- etox_obstacle.c 2001/08/17 12:20:33 1.4 +++ etox_obstacle.c 2001/12/31 14:04:57 1.5 @@ -22,7 +22,7 @@ obst->h = h; ewd_list_append(e->obstacles, obst); - + e->etox_objects.dirty = 1; _etox_rebuild(e); return obst; @@ -40,6 +40,7 @@ obst->w = w; obst->h = h; + e->etox_objects.dirty = 1; _etox_rebuild(e); } @@ -53,6 +54,6 @@ ewd_list_remove(e->obstacles); FREE(obst); + e->etox_objects.dirty = 1; _etox_rebuild(e); } - =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/src/etox_set.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- etox_set.c 2001/11/21 17:20:29 1.8 +++ etox_set.c 2001/12/31 14:04:57 1.9 @@ -173,6 +173,7 @@ va_end(ap); + e->etox_object_bits.dirty = 1; _etox_rebuild(e); } |
From: <enl...@li...> - 2002-01-01 12:34:15
|
Enlightenment CVS committal Author : tillsan Project : e17 Module : libs/etox Dir : e17/libs/etox/src Modified Files: etox_create.c Log Message: - split a few functions into more manageable chunks - give functions names that hint at what they do ;) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/src/etox_create.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- etox_create.c 2001/12/31 14:04:57 1.9 +++ etox_create.c 2002/01/01 12:34:12 1.10 @@ -13,8 +13,9 @@ Etox_Object obj, Ewd_List *list); -/* _etox_create_evas_objects() helper funcs */ -static void __create_evas_objects(Etox e, Etox_Object obj); +static void __etox_free_evas_objects(Etox e); +static void __etox_string_create_individual_evas_objects(Etox e, + Etox_Object_Bit bit); static int @@ -362,7 +363,6 @@ if (inside) { /* inside, try again with new coordinates */ - printf("recures\n"); return __create_etox_object(e, x, y); } else @@ -383,8 +383,6 @@ __add_as_many_bits_as_possible_from_list(Etox e, Etox_Object obj, Ewd_List *list) { - /* FIXME: this func is _too long_ :) -redalb */ - /* Adds as many bits (Etox_Object_Bit) as possible from * list to obj and returns the list of bits it couldn't add.. * The bits that could be added will be removed from list.. @@ -587,177 +585,185 @@ _etox_create_evas_objects(e); } - static void -__create_evas_objects(Etox e, Etox_Object obj) +__etox_free_evas_objects(Etox e) { - Evas_Object ev_obj, prev = NULL; - Etox_Style_Bit style_bit; - Etox_Color_Bit cb; - Etox_Object_Bit bit; - Etox_Object_String string; - Etox_Object_Tab tab; - - if (!e || !obj || !obj->bits) - return; + Evas_Object ev_obj; + Etox_Object et_obj; + Etox_Object_Bit et_obj_bit; + + if (!e->evas_objects.list) + return; + + ewd_list_goto_first(e->evas_objects.list); + while ((ev_obj = (Evas_Object) ewd_list_next(e->evas_objects.list))) + evas_del_object(e->evas, ev_obj); + ewd_list_destroy(e->evas_objects.list); + e->evas_objects.list = NULL; + + if (!e->etox_objects.list) + return; + + ewd_list_goto_first(e->etox_objects.list); + while ((et_obj = (Etox_Object) ewd_list_next(e->etox_objects.list))) + { + if (!et_obj->bits) + continue; + ewd_list_goto_first(et_obj->bits); + while ((et_obj_bit = (Etox_Object_Bit) ewd_list_next(et_obj->bits))) + { + if (et_obj_bit->evas_objects_list.fg) + { + D_PRINT("detroying et_obj_bit->evas_objects_list.fg\n"); + ewd_list_destroy(et_obj_bit->evas_objects_list.fg); + et_obj_bit->evas_objects_list.fg = NULL; + } + if (et_obj_bit->evas_objects_list.sh) + { + D_PRINT("detroying et_obj_bit->evas_objects_list.sh\n"); + ewd_list_destroy(et_obj_bit->evas_objects_list.sh); + et_obj_bit->evas_objects_list.sh = NULL; + } + if (et_obj_bit->evas_objects_list.ol) + { + D_PRINT("detroying et_obj_bit->evas_objects_list.ol\n"); + ewd_list_destroy(et_obj_bit->evas_objects_list.ol); + et_obj_bit->evas_objects_list.ol = NULL; + } + } + } +} - D_PRINT("__create_evas_objects(): (obj = %p)\n", obj); +static void +__etox_string_create_individual_evas_objects(Etox e, Etox_Object_Bit bit) +{ + Etox_Style_Bit style_bit; + Etox_Color_Bit cb; + Evas_Object ev_obj, prev=NULL; + Etox_Object_String string; + + string = (Etox_Object_String) bit->body; + + ewd_list_goto_first(string->style->bits); + while ((style_bit = (Etox_Style_Bit) + ewd_list_next(string->style->bits))) + { + ev_obj = evas_add_text(e->evas, string->font->name, + string->font->size, string->str); + D_PRINT(" Adding evas '%s'\n", string->str); + evas_stack_above(e->evas, ev_obj, prev); + prev = ev_obj; + if (!e->evas_objects.list) + { + e->evas_objects.list = ewd_list_new(); + ewd_list_set_free_cb(e->evas_objects.list, NULL); + } + ewd_list_append(e->evas_objects.list, ev_obj); - D_PRINT("------ ALIGNING %p ------\n", obj); - _etox_align_etox_object(e, obj); - D_PRINT("-------------------------\n"); + evas_move(e->evas, ev_obj, + ET_X_TO_EV(bit->x) + style_bit->x, + ET_Y_TO_EV(bit->y) + style_bit->y); - ewd_list_goto_first(obj->bits); - while ((bit = (Etox_Object_Bit) ewd_list_next(obj->bits))) - { - D_PRINT(" bit->type = %d\n", bit->type); - switch (bit->type) - { - case ETOX_OBJECT_BIT_TYPE_STRING: - string = (Etox_Object_String) bit->body; - ewd_list_goto_first(string->style->bits); - while ((style_bit = (Etox_Style_Bit) - ewd_list_next(string->style->bits))) - { - ev_obj = evas_add_text(e->evas, string->font->name, - string->font->size, string->str); - D_PRINT(" Adding evas '%s'\n", string->str); - evas_stack_above(e->evas, ev_obj, prev); - prev = ev_obj; - if (!e->evas_objects.list) - { - e->evas_objects.list = ewd_list_new(); - ewd_list_set_free_cb(e->evas_objects.list, NULL); - } - ewd_list_append(e->evas_objects.list, ev_obj); + switch (style_bit->type) + { + case ETOX_STYLE_TYPE_FOREGROUND: + default: + if ((cb = _etox_color_get_bit(string->color, "fg"))) + evas_set_color(e->evas, ev_obj, cb->r, cb->g, cb->b, + ((style_bit->a * e->a * cb->a) / 65025)); + if (!bit->evas_objects_list.fg) + { + bit->evas_objects_list.fg = ewd_list_new(); + ewd_list_set_free_cb(bit->evas_objects_list.fg, NULL); + } + ewd_list_append(bit->evas_objects_list.fg, ev_obj); + break; + case ETOX_STYLE_TYPE_SHADOW: + if ((cb = _etox_color_get_bit(string->color, "sh"))) + evas_set_color(e->evas, ev_obj, cb->r, cb->g, cb->b, + ((style_bit->a * e->a * cb->a) / 65025)); + if (!bit->evas_objects_list.sh) + { + bit->evas_objects_list.sh = ewd_list_new(); + ewd_list_set_free_cb(bit->evas_objects_list.sh, NULL); + } + ewd_list_append(bit->evas_objects_list.sh, ev_obj); + break; + case ETOX_STYLE_TYPE_OUTLINE: + if ((cb = _etox_color_get_bit(string->color, "ol"))) + evas_set_color(e->evas, ev_obj, cb->r, cb->g, cb->b, + ((style_bit->a * e->a * cb->a) / 65025)); + if (!bit->evas_objects_list.ol) + { + bit->evas_objects_list.ol = ewd_list_new(); + ewd_list_set_free_cb(bit->evas_objects_list.ol, NULL); + } + ewd_list_append(bit->evas_objects_list.ol, ev_obj); + break; + } + } - evas_move(e->evas, ev_obj, - ET_X_TO_EV(bit->x) + style_bit->x, - ET_Y_TO_EV(bit->y) + style_bit->y); - - switch (style_bit->type) - { - case ETOX_STYLE_TYPE_FOREGROUND: - default: - if ((cb = _etox_color_get_bit(string->color, "fg"))) - evas_set_color(e->evas, ev_obj, cb->r, cb->g, cb->b, - ((style_bit->a * e->a * cb->a) / 65025)); - if (!bit->evas_objects_list.fg) - { - bit->evas_objects_list.fg = ewd_list_new(); - ewd_list_set_free_cb(bit->evas_objects_list.fg, NULL); - } - ewd_list_append(bit->evas_objects_list.fg, ev_obj); - break; - case ETOX_STYLE_TYPE_SHADOW: - if ((cb = _etox_color_get_bit(string->color, "sh"))) - evas_set_color(e->evas, ev_obj, cb->r, cb->g, cb->b, - ((style_bit->a * e->a * cb->a) / 65025)); - if (!bit->evas_objects_list.sh) - { - bit->evas_objects_list.sh = ewd_list_new(); - ewd_list_set_free_cb(bit->evas_objects_list.sh, NULL); - } - ewd_list_append(bit->evas_objects_list.sh, ev_obj); - break; - case ETOX_STYLE_TYPE_OUTLINE: - if ((cb = _etox_color_get_bit(string->color, "ol"))) - evas_set_color(e->evas, ev_obj, cb->r, cb->g, cb->b, - ((style_bit->a * e->a * cb->a) / 65025)); - if (!bit->evas_objects_list.ol) - { - bit->evas_objects_list.ol = ewd_list_new(); - ewd_list_set_free_cb(bit->evas_objects_list.ol, NULL); - } - ewd_list_append(bit->evas_objects_list.ol, ev_obj); - break; - } - } - break; - case ETOX_OBJECT_BIT_TYPE_NEWLINE: - default: - break; - case ETOX_OBJECT_BIT_TYPE_TAB: - tab = (Etox_Object_Tab) bit->body; - ev_obj = evas_add_text(e->evas, tab->font->name, - tab->font->size, " "); - D_PRINT(" Adding evas '%s'\n", " "); - if (!e->evas_objects.list) - { - e->evas_objects.list = ewd_list_new(); - ewd_list_set_free_cb(e->evas_objects.list, NULL); - } - ewd_list_append(e->evas_objects.list, ev_obj); - if (!bit->evas_objects_list.fg) - { - bit->evas_objects_list.fg = ewd_list_new(); - ewd_list_set_free_cb(bit->evas_objects_list.fg, NULL); - } - ewd_list_append(bit->evas_objects_list.fg, ev_obj); - evas_move(e->evas, ev_obj, - ET_X_TO_EV(bit->x), ET_Y_TO_EV(bit->y)); - break; - } - } } + void _etox_create_evas_objects(Etox e) { - Etox_Object et_obj; - Etox_Object_Bit et_obj_bit; Evas_Object ev_obj; + Etox_Object_Tab tab; + Etox_Object obj; + Etox_Object_Bit bit; if (!e || !e->etox_objects.list || ewd_list_is_empty(e->etox_objects.list)) return; - D_PRINT("_etox_create_evas_objects():\n"); - - if (e->evas_objects.list) - { - ewd_list_goto_first(e->evas_objects.list); - while ((ev_obj = (Evas_Object) ewd_list_next(e->evas_objects.list))) - evas_del_object(e->evas, ev_obj); - ewd_list_destroy(e->evas_objects.list); - e->evas_objects.list = NULL; + __etox_free_evas_objects(e); + + ewd_list_goto_first(e->etox_objects.list); + while ((obj = (Etox_Object) ewd_list_next(e->etox_objects.list))) + { + D_PRINT("Creating evas objects.. (%p)\n", et_obj); - ewd_list_goto_first(e->etox_objects.list); - while ((et_obj = (Etox_Object) ewd_list_next(e->etox_objects.list))) - { - if (!et_obj->bits) - continue; - ewd_list_goto_first(et_obj->bits); - while ((et_obj_bit = (Etox_Object_Bit) ewd_list_next(et_obj->bits))) - { - if (et_obj_bit->evas_objects_list.fg) - { - D_PRINT("detroying et_obj_bit->evas_objects_list.fg\n"); - ewd_list_destroy(et_obj_bit->evas_objects_list.fg); - et_obj_bit->evas_objects_list.fg = NULL; - } - if (et_obj_bit->evas_objects_list.sh) - { - D_PRINT("detroying et_obj_bit->evas_objects_list.sh\n"); - ewd_list_destroy(et_obj_bit->evas_objects_list.sh); - et_obj_bit->evas_objects_list.sh = NULL; - } - if (et_obj_bit->evas_objects_list.ol) - { - D_PRINT("detroying et_obj_bit->evas_objects_list.ol\n"); - ewd_list_destroy(et_obj_bit->evas_objects_list.ol); - et_obj_bit->evas_objects_list.ol = NULL; - } - } - } - } + D_PRINT("------ ALIGNING %p ------\n", obj); + _etox_align_etox_object(e, obj); + D_PRINT("-------------------------\n"); + if (!obj->bits) + continue; - ewd_list_goto_first(e->etox_objects.list); - while ((et_obj = (Etox_Object) ewd_list_next(e->etox_objects.list))) - { - /* little optimisation.. */ - if (!et_obj->bits) - continue; - D_PRINT("Creating evas objects.. (%p)\n", et_obj); - __create_evas_objects(e, et_obj); - } + ewd_list_goto_first(obj->bits); + while ((bit = (Etox_Object_Bit) ewd_list_next(obj->bits))) + { + D_PRINT(" bit->type = %d\n", bit->type); + switch (bit->type) + { + case ETOX_OBJECT_BIT_TYPE_STRING: + __etox_string_create_individual_evas_objects(e, bit); + break; + case ETOX_OBJECT_BIT_TYPE_NEWLINE: + default: + break; + case ETOX_OBJECT_BIT_TYPE_TAB: + tab = (Etox_Object_Tab) bit->body; + ev_obj = evas_add_text(e->evas, tab->font->name, + tab->font->size, " "); + D_PRINT(" Adding evas '%s'\n", " "); + if (!e->evas_objects.list) + { + e->evas_objects.list = ewd_list_new(); + ewd_list_set_free_cb(e->evas_objects.list, NULL); + } + ewd_list_append(e->evas_objects.list, ev_obj); + if (!bit->evas_objects_list.fg) + { + bit->evas_objects_list.fg = ewd_list_new(); + ewd_list_set_free_cb(bit->evas_objects_list.fg, NULL); + } + ewd_list_append(bit->evas_objects_list.fg, ev_obj); + evas_move(e->evas, ev_obj, + ET_X_TO_EV(bit->x), ET_Y_TO_EV(bit->y)); + break; + } + } + } } + |
From: <enl...@li...> - 2002-01-01 14:29:24
|
Enlightenment CVS committal Author : tillsan Project : e17 Module : libs/etox Dir : e17/libs/etox Modified Files: Makefile.am configure.ac Log Message: I appear to have broken configure.ac when adding the doc stuff. I hope this fixes it. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/Makefile.am,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- Makefile.am 2001/12/27 15:37:53 1.6 +++ Makefile.am 2002/01/01 14:29:22 1.7 @@ -25,3 +25,11 @@ m4datadir = $(datadir)/aclocal m4data_DATA = etox.m4 + +docs: + $(MAKE) -C $(top_srcdir)/doc docs + +if HAVE_JADE +html-docs: + $(MAKE) -C $(top_srcdir)/doc html-docs +endif =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/configure.ac,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- configure.ac 2001/12/27 15:37:53 1.2 +++ configure.ac 2002/01/01 14:29:22 1.3 @@ -1,6 +1,7 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT(configure.in) +AC_INIT +AC_CONFIG_SRCDIR([configure.in]) AM_INIT_AUTOMAKE(etox, 0.0.1) AM_CONFIG_HEADER(etox-config.h) @@ -44,181 +45,6 @@ fi changequote([,])dnl -EBITS_CONFIG="ebits-config" -AC_ARG_WITH(ebits, -[ --with-ebits-config=FILE ebits-config script to use (eg /usr/bin/ebits-config)], -[ - EBITS_CONFIG=$withval - AC_CHECK_PROG(EBITS_CONFIG_IN_PATH, $EBITS_CONFIG, yes, no) - if test $EBITS_CONFIG_IN_PATH = no; then - echo "ERROR:" - echo "The ebits-config development script you specified:" - echo "$EBITS_CONFIG" - echo "was not found. Please check the path and make sure " - echo "the script exists and is executable." - AC_MSG_ERROR([Fatal Error: no ebits-config detected.]) - exit; - fi -], -[ - AC_CHECK_PROG(EBITS_CONFIG_IN_PATH, $EBITS_CONFIG, yes, no) - if test $EBITS_CONFIG_IN_PATH = no; then - echo "ERROR:" - echo "The ebits-config development script was not found in your execute" - echo "path. This may mean one of several things" - echo "1. You may not have installed the ebits-devel (or ebits-dev)" - echo " packages." - echo "2. You may have ebits installed somewhere not covered by your path." - echo "" - echo "If this is the case make sure you have the packages installed, AND" - echo "that the ebits-config script is in your execute path (see your" - echo "shell's manual page on setting the \$PATH environment variable), OR" - echo "alternatively, specify the script to use with --with-ebits-config." - AC_MSG_ERROR([Fatal Error: no ebits-config detected.]) - exit; - fi -]) - -EDB_CONFIG="edb-config" -AC_ARG_WITH(edb, -[ --with-edb-config=FILE edb-config script to use (eg /usr/bin/edb-config)], -[ - EDB_CONFIG=$withval - AC_CHECK_PROG(EDB_CONFIG_IN_PATH, $EDB_CONFIG, yes, no) - if test $EDB_CONFIG_IN_PATH = no; then - echo "ERROR:" - echo "The edb-config development script you specified:" - echo "$EDB_CONFIG" - echo "was not found. Please check the path and make sure " - echo "the script exists and is executable." - AC_MSG_ERROR([Fatal Error: no edb-config detected.]) - exit; - fi -], -[ - AC_CHECK_PROG(EDB_CONFIG_IN_PATH, $EDB_CONFIG, yes, no) - if test $EDB_CONFIG_IN_PATH = no; then - echo "ERROR:" - echo "The edb-config development script was not found in your execute" - echo "path. This may mean one of several things" - echo "1. You may not have installed the edb-devel (or edb-dev)" - echo " packages." - echo "2. You may have edb installed somewhere not covered by your path." - echo "" - echo "If this is the case make sure you have the packages installed, AND" - echo "that the edb-config script is in your execute path (see your" - echo "shell's manual page on setting the \$PATH environment variable), OR" - echo "alternatively, specify the script to use with --with-edb-config." - AC_MSG_ERROR([Fatal Error: no edb-config detected.]) - exit; - fi -]) - -EVAS_CONFIG="evas-config" -AC_ARG_WITH(evas, -[ --with-evas-config=FILE evas-config script to use (eg /usr/bin/evas-config)], -[ - EVAS_CONFIG=$withval - AC_CHECK_PROG(EVAS_CONFIG_IN_PATH, $EVAS_CONFIG, yes, no) - if test $EVAS_CONFIG_IN_PATH = no; then - echo "ERROR:" - echo "The evas-config development script you specified:" - echo "$EVAS_CONFIG" - echo "was not found. Please check the path and make sure " - echo "the script exists and is executable." - AC_MSG_ERROR([Fatal Error: no evas-config detected.]) - exit; - fi -], -[ - AC_CHECK_PROG(EVAS_CONFIG_IN_PATH, $EVAS_CONFIG, yes, no) - if test $EVAS_CONFIG_IN_PATH = no; then - echo "ERROR:" - echo "The evas-config development script was not found in your execute" - echo "path. This may mean one of several things" - echo "1. You may not have installed the evas-devel (or evas-dev)" - echo " packages." - echo "2. You may have evas installed somewhere not covered by your path." - echo "" - echo "If this is the case make sure you have the packages installed, AND" - echo "that the evas-config script is in your execute path (see your" - echo "shell's manual page on setting the \$PATH environment variable), OR" - echo "alternatively, specify the script to use with --with-evas-config." - AC_MSG_ERROR([Fatal Error: no evas-config detected.]) - exit; - fi -]) - -EWD_CONFIG="ewd-config" -AC_ARG_WITH(ewd, -[ --with-ewd-config=FILE ewd-config script to use (eg /usr/bin/ewd-config)], -[ - EWD_CONFIG=$withval - AC_CHECK_PROG(EWD_CONFIG_IN_PATH, $EWD_CONFIG, yes, no) - if test $EWD_CONFIG_IN_PATH = no; then - echo "ERROR:" - echo "The ewd-config development script you specified:" - echo "$EWD_CONFIG" - echo "was not found. Please check the path and make sure " - echo "the script exists and is executable." - AC_MSG_ERROR([Fatal Error: no ewd-config detected.]) - exit; - fi -], -[ - AC_CHECK_PROG(EWD_CONFIG_IN_PATH, $EWD_CONFIG, yes, no) - if test $EWD_CONFIG_IN_PATH = no; then - echo "ERROR:" - echo "The ewd-config development script was not found in your execute" - echo "path. This may mean one of several things" - echo "1. You may not have installed the ewd-devel (or ewd-dev)" - echo " packages." - echo "2. You may have ewd installed somewhere not covered by your path." - echo "" - echo "If this is the case make sure you have the packages installed, AND" - echo "that the ewd-config script is in your execute path (see your" - echo "shell's manual page on setting the \$PATH environment variable), OR" - echo "alternatively, specify the script to use with --with-ewd-config." - AC_MSG_ERROR([Fatal Error: no ewd-config detected.]) - exit; - fi -]) - -IMLIB2_CONFIG="imlib2-config" -AC_ARG_WITH(imlib2, -[ --with-imlib2-config=FILE imlib2-config script to use (eg /usr/bin/imlib2-config)], -[ - IMLIB2_CONFIG=$withval - AC_CHECK_PROG(IMLIB2_CONFIG_IN_PATH, $IMLIB2_CONFIG, yes, no) - if test $IMLIB2_CONFIG_IN_PATH = no; then - echo "ERROR:" - echo "The imlib2-config development script you specified:" - echo "$IMLIB2_CONFIG" - echo "was not found. Please check the path and make sure " - echo "the script exists and is executable." - AC_MSG_ERROR([Fatal Error: no imlib2-config detected.]) - exit; - fi -], -[ - AC_CHECK_PROG(IMLIB2_CONFIG_IN_PATH, $IMLIB2_CONFIG, yes, no) - if test $IMLIB2_CONFIG_IN_PATH = no; then - echo "ERROR:" - echo "The imlib2-config development script was not found in your execute" - echo "path. This may mean one of several things" - echo "1. You may not have installed the imlib2-devel (or imlib2-dev)" - echo " packages." - echo "2. You may have imlib2 installed somewhere not covered by your path." - echo "" - echo "If this is the case make sure you have the packages installed, AND" - echo "that the imlib2-config script is in your execute path (see your" - echo "shell's manual page on setting the \$PATH environment variable), OR" - echo "alternatively, specify the script to use with --with-imlib2-config." - AC_MSG_ERROR([Fatal Error: no imlib2-config detected.]) - exit; - fi -]) - AC_SUBST(ebits_cflags) AC_SUBST(ebits_libs) ebits_cflags=`ebits-config --cflags` @@ -249,7 +75,6 @@ imlib2_cflags=`imlib2-config --cflags` imlib2_libs=`imlib2-config --libs` - dnl Checking for Perl: AC_PATH_PROG(PERL,perl,0) AC_SUBST(PERL) @@ -262,8 +87,9 @@ AC_PATH_PROG(JADE, jade) AM_CONDITIONAL(HAVE_JADE, test "x$JADE" != "x" && test -d "$DB_STYLESHEETS") + -AC_OUTPUT([ +AC_CONFIG_FILES([ Makefile etox-config src/Makefile @@ -274,8 +100,10 @@ test/fnt/Makefile test/img/Makefile test/style/Makefile -], [ +]) +AC_CONFIG_COMMANDS([default],[[ chmod +x etox-config chmod +x doc/kernel-doc -] -) + +]],[[]]) +AC_OUTPUT |
From: <enl...@li...> - 2002-01-01 14:40:34
|
Enlightenment CVS committal Author : tillsan Project : e17 Module : libs/etox Dir : e17/libs/etox/doc/figures Log Message: Directory /cvsroot/enlightenment/e17/libs/etox/doc/figures added to the repository |
From: <enl...@li...> - 2002-01-01 14:42:21
|
Enlightenment CVS committal Author : tillsan Project : e17 Module : libs/etox Dir : e17/libs/etox/doc Added Files: Makefile.am html-customizations.dsl.in kernel-doc.in manual.raw stylesheet.css Log Message: Had I actually added the files in doc when commiting the doc changes we would now have an etox manual. Maybe this time. |
From: <enl...@li...> - 2002-01-01 14:42:22
|
Enlightenment CVS committal Author : tillsan Project : e17 Module : libs/etox Dir : e17/libs/etox/doc/figures Added Files: background.gif caution.gif note.gif warning.gif Log Message: Had I actually added the files in doc when commiting the doc changes we would now have an etox manual. Maybe this time. |
From: <enl...@li...> - 2002-01-01 14:56:03
|
Enlightenment CVS committal Author : tillsan Project : e17 Module : libs/etox Dir : e17/libs/etox/doc Modified Files: manual.raw Log Message: second attempt at an etox manual =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/doc/manual.raw,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- manual.raw 2002/01/01 14:42:20 1.1 +++ manual.raw 2002/01/01 14:55:59 1.2 @@ -3,45 +3,28 @@ ]> -<book id="ewl-api-documentation"> +<book id="etox-api-documentation"> <bookinfo> - <title>Enlightenment Widget Library API</title> + <title>The Etox Programming Manual</title> <authorgroup> <author> - <firstname>Nathan</firstname> - <othername>"RbdPngn"</othername> - <surname>Ingersoll</surname> + <firstname>Till</firstname> + <othername></othername> + <surname>Adam</surname> <affiliation> <address> - <email>ningerso@d.umn.edu</email> + <email>ti...@ad...</email> </address> </affiliation> </author> - <author> - <firstname>Christopher</firstname> - <othername>"smugg"</othername> - <surname>Rosendahl</surname> - <affiliation> - <address> - <email>cro...@no...</email> - </address> - </affiliation> - </author> - </authorgroup> - <releaseinfo> - The EWL API is currently under heavy development. If this document - does not match your copy of EWL, please check for updates. - </releaseinfo> - <copyright> <year>2001</year> - <holder>Nathan Ingersoll</holder> - <holder>Christopher Rosendahl</holder> + <holder>Till Adam</holder> </copyright> <legalnotice> @@ -76,160 +59,17 @@ <chapter id="introduction"> <title>Introduction</title> - <para> - EWL is a widget library based on the <ulink - url="http://www.enlightenment.org"> Enlightenment</ulink> subsystem - libraries. - </para> - </chapter> - - <chapter id="basic"> - <title id="basic.title">Basic Classes and Utility Functions</title> - - <section><title>Callback Functions</title> -!Isrc/ewl_callback.c - </section> - - <section><title>Configuration Functions</title> -!Isrc/ewl_config.c - </section> - - <section><title>Container Class</title> -!Isrc/ewl_container.c - </section> - - <section><title>Event Functions</title> -!Isrc/ewl_events.c - </section> - - <section><title>Special FX</title> -!Isrc/ewl_fx.c - </section> - - <section><title>Misc Functions</title> -!Isrc/ewl_misc.c - </section> - - <section><title>Object Class</title> -!Isrc/ewl_object.c - </section> - - <section><title>Theme Functions</title> -!Isrc/ewl_theme.c - </section> - - <section><title>Widget Class</title> -!Isrc/ewl_widget.c - </section> - - </chapter> - - <chapter id="containers"> - <title id="containers.title">Container Widgets</title> - <para> - The following classes inherit from the container class. Containers hold - other widgets and are responsible for laying out child widget size and - position. - </para> - - <section><title>Ewl_Box</title> -!Isrc/ewl_box.c - </section> - - <section><title>Ewl_Notebook</title> -!Isrc/ewl_notebook.c - </section> - - <section><title>Ewl_Table</title> -!Isrc/ewl_table.c - </section> - - <section><title>Ewl_Window</title> -!Isrc/ewl_window.c - </section> - - </chapter> - - <chapter id="buttons"> - <title id="buttons.title">Button Widgets</title> - <para> - Ewl provides a few different types of button widgets for developing - interactive user interfaces. - </para> - - <section><title>Ewl_Button</title> -!Isrc/ewl_button.c - </section> - - <section><title>Ewl_CheckButton</title> -!Isrc/ewl_checkbutton.c - </section> - - <section><title>Ewl_RadioButton</title> -!Isrc/ewl_radiobutton.c - </section> - - </chapter> - - <chapter id="text"> - <title id="text.title">Text Widgets</title> - <para> - Ewl provides a two different types of text widgets for displaying and - inputing text data to ewl. Ewl_Text is a simple one line display of - text, while Ewl_TextArea provides facilities for multi-line text - including scrollbars if applicable. - </para> - - <section><title>Ewl_Text</title> -!Isrc/ewl_text.c - </section> - - <section><title>Ewl_TextArea</title> -!Isrc/ewl_textarea.c - </section> - - </chapter> - - <chapter id="data"> - <title id="data.title">Data Manipulation Widgets</title> <para> - Included in ewl are a few different widgets for interactively - manipulating data items. + Etox is a text library. </para> - - <section><title>Ewl_Scrollbar</title> -!Isrc/ewl_scrollbar.c - </section> - - <section><title>Ewl_Seeker</title> -!Isrc/ewl_seeker.c - </section> - - <section><title>Ewl_Spinner</title> -!Isrc/ewl_spinner.c - </section> - </chapter> - - <chapter id="display"> - <title id="display.title">Display Widgets</title> - <para> - Some of the widgets in Ewl are used for simply manipulating and - beatifying the display. - </para> - <section><title>Ewl_Image</title> -!Isrc/ewl_image.c - </section> + <chapter id="func_reference"> + <title id="func_reference.title">Function Reference</title> - <section><title>Ewl_Scrollpane</title> -!Isrc/ewl_scrollpane.c + <section><title>Functions</title> +!Isrc/Etox.h </section> - - <section><title>Ewl_Separator</title> -!Isrc/ewl_separator.c - </section> - </chapter> <bibliography> @@ -237,10 +77,10 @@ <biblioentry id="bib-efsd"> <bookbiblio> <author> - <firstname>Christian</firstname> - <surname>Kreibich</surname> + <firstname>Till</firstname> + <surname>Adam</surname> </author> - <title>The EFSD Programming Manual</title> + <title>The Etox Programming Manual</title> <date>2001</date> </bookbiblio> </biblioentry> |
From: <enl...@li...> - 2002-01-01 15:21:44
|
Enlightenment CVS committal Author : tillsan Project : e17 Module : libs/etox Dir : e17/libs/etox/doc Modified Files: manual.raw Log Message: I dont feel like working on this any more at the moment. So here's the start of what'll become the Etox docs if anyone ever actually starts using it. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/doc/manual.raw,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- manual.raw 2002/01/01 14:55:59 1.2 +++ manual.raw 2002/01/01 15:21:42 1.3 @@ -1,8 +1,6 @@ <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [ -<!ENTITY efsd "<function>efsd</function>"> ]> - <book id="etox-api-documentation"> <bookinfo> <title>The Etox Programming Manual</title> @@ -60,8 +58,54 @@ <chapter id="introduction"> <title>Introduction</title> <para> - Etox is a text library. + Etox is a text layout abstraction, built on top of Evas. It is to text, + what Ebits is to images. It is intended to abstract text layout to + allow different fonts, colors, styles (outline, shadowed, etc.), word + wrapping, paragraph layout, columnation and wrapping of text around + obstacles in the text area. </para> + </chapter> + <chapter id="howto"> + <title id="howto.title">How to use Etox</title> + + <section><title>Creating an Etox</title> + <para></para> + </section> + + <section><title>Manipulating an Etox</title> + <Section><title>Moving</title> + + </Section> + <Section><title>Resizing</title> + <para> + </para> + </Section> + <Section><title>Raising / Lowering</title> + <para></para> + </Section> + <Section><title>Showing / Hideing</title> + <para></para> + </Section> + <Section><title>Setting attributes</title> + <para></para> + </Section> + </section> + + <section><title>Obstacles</title> + <para></para> + </section> + + <section><title>Font Styles</title> + <para></para> + </section> + + <section><title>Alignment</title> + <para></para> + </section> + + <section><title>Using etox_set_text</title> + <para></para> + </section> </chapter> <chapter id="func_reference"> |
From: <enl...@li...> - 2002-03-21 10:16:59
|
Enlightenment CVS committal Author : tillsan Project : e17 Module : libs/etox Dir : e17/libs/etox Modified Files: autogen.sh Log Message: fixes by Michi Thalmann <th...@lm...> =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/autogen.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- autogen.sh 5 Dec 2000 21:11:56 -0000 1.1 +++ autogen.sh 21 Mar 2002 10:16:58 -0000 1.2 @@ -1,5 +1,10 @@ #! /bin/sh +abort () { + echo "$1 not found or command failed. Aborting!" + exit 1 +} + srcdir=`dirname $0` test -z "$srcdir" && srcdir=. @@ -8,11 +13,11 @@ DIE=0 set -x -autoheader -libtoolize --ltdl --force --copy -aclocal -automake --foreign --add-missing -autoconf +aclocal || abort "aclocal" +libtoolize --ltdl --force --copy || abort "libtoolize" +autoheader || abort "autoheader" +automake --foreign --add-missing || abort "automake" +autoconf || abort "autoconf" if test -z "$*"; then echo "I am going to run ./configure with no arguments - if you wish " @@ -21,7 +26,7 @@ cd "$THEDIR" -$srcdir/configure "$@" +$srcdir/configure "$@" || abort "configure" set +x |