Enlightenment CVS committal
Author : rephorm
Project : e17
Module : proto
Dir : e17/proto/edje_cc
Modified Files:
Etcher.h Makefile edje.y etcher_parse.c main.c
Added Files:
etcher_out.c
Log Message:
Cleanups and fixups.
Start of code to output structs to .edc
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/edje_cc/Etcher.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- Etcher.h 8 Sep 2004 22:37:22 -0000 1.8
+++ Etcher.h 9 Sep 2004 13:55:55 -0000 1.9
@@ -27,7 +27,8 @@
ETCHER_IMAGE_TYPE_RAW,
ETCHER_IMAGE_TYPE_COMP,
ETCHER_IMAGE_TYPE_LOSSY,
- ETCHER_IMAGE_TYPE_EXTERNAL
+ ETCHER_IMAGE_TYPE_EXTERNAL,
+ ETCHER_IMAGE_TYPE_NUM
};
@@ -36,7 +37,8 @@
ETCHER_PART_TYPE_IMAGE,
ETCHER_PART_TYPE_TEXT,
ETCHER_PART_TYPE_RECT,
- ETCHER_PART_TYPE_SWALLOW
+ ETCHER_PART_TYPE_SWALLOW,
+ ETCHER_PART_TYPE_NUM
};
enum _Etcher_Text_Effect
@@ -48,7 +50,8 @@
ETCHER_TEXT_EFFECT_SHADOW,
ETCHER_TEXT_EFFECT_OUTLINE_SHADOW,
ETCHER_TEXT_EFFECT_SOFT_SHADOW,
- ETCHER_TEXT_EFFECT_OUTLINE_SOFT_SHADOW
+ ETCHER_TEXT_EFFECT_OUTLINE_SOFT_SHADOW,
+ ETCHER_TEXT_EFFECT_NUM
};
enum _Etcher_Action
@@ -59,7 +62,8 @@
ETCHER_ACTION_DRAG_VAL_SET,
ETCHER_ACTION_DRAG_VAL_STEP,
ETCHER_ACTION_DRAG_VAL_PAGE,
- ETCHER_ACTION_SCRIPT
+ ETCHER_ACTION_SCRIPT,
+ ETCHER_ACTION_NUM
};
enum _Etcher_Transition
@@ -67,7 +71,8 @@
ETCHER_TRANSITION_LINEAR,
ETCHER_TRANSITION_SINUSOIDAL,
ETCHER_TRANSITION_ACCELERATE,
- ETCHER_TRANSITION_DECELERATE
+ ETCHER_TRANSITION_DECELERATE,
+ ETCHER_TRANSITION_NUM
};
enum _Etcher_Aspect_Preference
@@ -75,7 +80,8 @@
ETCHER_ASPECT_PREFERENCE_NONE,
ETCHER_ASPECT_PREFERENCE_VERTICAL,
ETCHER_ASPECT_PREFERENCE_HORIZONTAL,
- ETCHER_ASPECT_PREFERENCE_BOTH
+ ETCHER_ASPECT_PREFERENCE_BOTH,
+ ETCHER_ASPECT_PREFERENCE_NUM
};
struct _Etcher_File
@@ -94,17 +100,17 @@
struct _Etcher_Image
{
- char *name;
- char *path;
+ char *name; /* basename */
+ char *path; /* dir path */
Etcher_Image_Type type;
double value;
};
struct _Etcher_Font
{
- char *name;
- char *font;
- char *path;
+ char *name; /* alias */
+ char *file; /* basename */
+ char *path; /* dir path */
};
struct _Etcher_Group
@@ -153,10 +159,16 @@
Evas_List *targets;
Evas_List *afters;
- int in1, in2;
+ struct {
+ double from, range;
+ } in;
Etcher_Action action;
+ char *state, *state2;
+ double value, value2;
+
Etcher_Transition transition;
+ double duration;
char *script;
};
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/edje_cc/Makefile,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- Makefile 8 Sep 2004 06:56:23 -0000 1.3
+++ Makefile 9 Sep 2004 13:55:55 -0000 1.4
@@ -3,7 +3,7 @@
PARSE_FILE=edje.y
all: lexer parser
- $(CC) lex.yy.c edje_cc.tab.c main.c etcher_parse.c -lfl -levas -o edje_cc
+ $(CC) lex.yy.c edje_cc.tab.c main.c etcher_parse.c etcher_out.c -lfl -levas -o
edje_cc
lexer: $(LEX_FILE)
flex $(LEX_FILE)
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/edje_cc/edje.y,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- edje.y 8 Sep 2004 22:37:22 -0000 1.21
+++ edje.y 9 Sep 2004 13:55:55 -0000 1.22
@@ -195,15 +195,19 @@
;
program_action: ACTION COLON action_type STRING FLOAT SEMICOLON {
+ etcher_parse_program_action($3, $4, NULL, $5, 0);
printf("action %d %s %f\n", $3, $4, $5);
}
| ACTION COLON action_type STRING STRING SEMICOLON {
+ etcher_parse_program_action($3, $4, $5, 0, 0);
printf("action %d %s %s\n", $3, $4, $5);
}
| ACTION COLON action_type FLOAT FLOAT SEMICOLON {
+ etcher_parse_program_action($3, NULL, NULL, $4, $5);
printf("action %d %f %f\n", $3, $4, $5);
}
| ACTION COLON action_type SEMICOLON {
+ etcher_parse_program_action($3, NULL, NULL, 0, 0);
printf("action %d\n", $3);
}
;
@@ -290,13 +294,13 @@
switch(section)
{
case GROUP:
- etcher_parse_group_min($3, $4);
+ etcher_parse_group_min((int)$3, (int)$4);
break;
case STATE:
- etcher_parse_state_min($3, $4);
+ etcher_parse_state_min((int)$3, (int)$4);
break;
case TEXT:
- etcher_parse_state_text_min($3, $4);
+ etcher_parse_state_text_min((int)$3, (int)$4);
break;
default:
break;
@@ -309,10 +313,10 @@
switch(section)
{
case GROUP:
- etcher_parse_group_max($3, $4);
+ etcher_parse_group_max((int)$3, (int)$4);
break;
case STATE:
- etcher_parse_state_max($3, $4);
+ etcher_parse_state_max((int)$3, (int)$4);
break;
default:
break;
@@ -429,13 +433,13 @@
;
x: X COLON FLOAT FLOAT FLOAT SEMICOLON {
- etcher_parse_part_dragable_x($3, $4, $5);
+ etcher_parse_part_dragable_x((int)$3, (int)$4, (int)$5);
printf("x %f %f %f\n", $3, $4, $5);
}
;
y: Y COLON FLOAT FLOAT FLOAT SEMICOLON {
- etcher_parse_part_dragable_y($3, $4, $5);
+ etcher_parse_part_dragable_y((int)$3, (int)$4, (int)$5);
printf("y %f %f %f\n", $3, $4, $5);
}
;
@@ -475,21 +479,29 @@
;
visible: VISIBLE COLON FLOAT SEMICOLON {
- etcher_parse_state_visible($3);
+ etcher_parse_state_visible((int)$3);
printf("visible %f\n", $3);
}
;
align: ALIGN COLON FLOAT FLOAT SEMICOLON {
- etcher_parse_state_align($3, $4);
- /* FIXME what about text align? */
+ switch(section)
+ {
+ case STATE:
+ etcher_parse_state_align($3, $4);
+ break;
+ case TEXT:
+ etcher_parse_state_text_align($3, $4);
+ break;
+ default:
+ break;
+ }
printf("align %f %f\n", $3, $4);
}
;
step: STEP COLON FLOAT FLOAT SEMICOLON {
etcher_parse_state_step($3, $4);
- /* FIXME what about drag step? */
printf("step %f %f\n", $3, $4);
}
;
@@ -572,16 +584,16 @@
switch(section)
{
case REL1:
- etcher_parse_state_rel1_offset($3, $4);
+ etcher_parse_state_rel1_offset((int)$3, (int)$4);
break;
case REL2:
- etcher_parse_state_rel2_offset($3, $4);
+ etcher_parse_state_rel2_offset((int)$3, (int)$4);
break;
case ORIGIN:
- etcher_parse_state_fill_origin_offset($3, $4);
+ etcher_parse_state_fill_origin_offset((int)$3, (int)$4);
break;
case SIZE:
- etcher_parse_state_fill_size_offset($3, $4);
+ etcher_parse_state_fill_size_offset((int)$3, (int)$4);
break;
default:
break;
@@ -665,7 +677,7 @@
;
border: BORDER COLON FLOAT FLOAT FLOAT FLOAT SEMICOLON {
- etcher_parse_state_border($3, $4, $5, $6);
+ etcher_parse_state_border((int)$3, (int)$4, (int)$5, (int)$6);
printf("border %f %f %f %f\n", $3, $4, $5, $6);
}
;
@@ -684,7 +696,7 @@
;
smooth: SMOOTH COLON FLOAT SEMICOLON {
- etcher_parse_state_fill_smooth($3);
+ etcher_parse_state_fill_smooth((int)$3);
printf("smooth %f\n", $3);
}
;
@@ -711,19 +723,19 @@
;
color: COLOR COLON FLOAT FLOAT FLOAT FLOAT SEMICOLON {
- etcher_parse_state_color($3, $4, $5, $6);
+ etcher_parse_state_color((int)$3, (int)$4, (int)$5, (int)$6);
printf("color %f %f %f %f\n", $3, $4, $5, $6);
}
;
color2: COLOR2 COLON FLOAT FLOAT FLOAT FLOAT SEMICOLON {
- etcher_parse_state_color2($3, $4, $5, $6);
+ etcher_parse_state_color2((int)$3, (int)$4, (int)$5, (int)$6);
printf("color2 %f %f %f %f\n", $3, $4, $5, $6);
}
;
color3: COLOR3 COLON FLOAT FLOAT FLOAT FLOAT SEMICOLON {
- etcher_parse_state_color3($3, $4, $5, $6);
+ etcher_parse_state_color3((int)$3, (int)$4, (int)$5, (int)$6);
printf("color3 %f %f %f %f\n", $3, $4, $5, $6);
}
;
@@ -764,13 +776,13 @@
;
size_entry: SIZE COLON FLOAT SEMICOLON {
- etcher_parse_state_text_size($3);
+ etcher_parse_state_text_size((int)$3);
printf("size %f\n", $3);
}
;
fit: FIT COLON FLOAT FLOAT SEMICOLON {
- etcher_parse_state_text_fit($3, $4);
+ etcher_parse_state_text_fit((int)$3, (int)$4);
printf("fit %f %f\n", $3, $4);
}
;
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/edje_cc/etcher_parse.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- etcher_parse.c 8 Sep 2004 22:37:22 -0000 1.3
+++ etcher_parse.c 9 Sep 2004 13:55:55 -0000 1.4
@@ -1,4 +1,5 @@
#include "Etcher.h"
+#include <stdlib.h>
Etcher_File *etcher_file = 0;
@@ -15,7 +16,7 @@
Etcher_Font *font;
font = (Etcher_Font *)calloc(1, sizeof(Etcher_Font));
- font->font = (char *)strdup(font);
+ font->file = (char *)strdup(file);
font->name = (char *)strdup(name);
etcher_file->fonts = evas_list_append(etcher_file->fonts, font);
@@ -54,6 +55,11 @@
{
Etcher_Group *group;
group = (Etcher_Group *)calloc(1, sizeof(Etcher_Group));
+
+ /* defaults */
+ group->max.w = 0x7fffffff;
+ group->max.h = 0x7fffffff;
+
etcher_file->groups = evas_list_append(etcher_file->groups, group);
return;
}
@@ -131,6 +137,10 @@
part = (Etcher_Part *)calloc(1, sizeof(Etcher_Part));
group = evas_list_data(evas_list_last(etcher_file->groups));
+ part->type = ETCHER_PART_TYPE_IMAGE;
+ part->mouse_events = 1;
+ part->repeat_events = 0;
+
group->parts = evas_list_append(group->parts, part);
}
@@ -261,6 +271,47 @@
group = evas_list_data(evas_list_last(etcher_file->groups));
part = evas_list_data(evas_list_last(group->parts));
+ /* defaults */
+ state->visible = 1;
+ state->align.x = 0.5;
+ state->align.y = 0.5;
+ state->min.w = 0;
+ state->min.h = 0;
+ state->max.w = -1;
+ state->max.h = -1;
+ state->rel1.relative.x = 0.0;
+ state->rel1.relative.y = 0.0;
+ state->rel1.offset.x = 0;
+ state->rel1.offset.y = 0;
+ state->rel2.relative.x = 1.0;
+ state->rel2.relative.y = 1.0;
+ state->rel2.offset.x = -1;
+ state->rel2.offset.y = -1;
+ state->fill.smooth = 1;
+ state->fill.pos_rel.x = 0.0;
+ state->fill.pos_abs.x = 0;
+ state->fill.rel.x = 1.0;
+ state->fill.abs.x = 0;
+ state->fill.pos_rel.y = 0.0;
+ state->fill.pos_abs.y = 0;
+ state->fill.rel.y = 1.0;
+ state->fill.abs.y = 0;
+ state->color_class = NULL;
+ state->color.r = 255;
+ state->color.g = 255;
+ state->color.b = 255;
+ state->color.a = 255;
+ state->color2.r = 0;
+ state->color2.g = 0;
+ state->color2.b = 0;
+ state->color2.a = 255;
+ state->color3.r = 0;
+ state->color3.g = 0;
+ state->color3.b = 0;
+ state->color3.a = 128;
+ state->text.align.x = 0.5;
+ state->text.align.y = 0.5;
+
part->states = evas_list_append(part->states, state);
}
@@ -944,7 +995,7 @@
}
void
-etcher_parse_program_in(double in1, double in2)
+etcher_parse_program_in(double from, double range)
{
Etcher_Group *group;
Etcher_Program *program;
@@ -952,13 +1003,13 @@
group = evas_list_data(evas_list_last(etcher_file->groups));
program = evas_list_data(evas_list_last(group->programs));
- program->in1 = in1;
- program->in2 = in2;
+ program->in.from = from;
+ program->in.range = range;
}
/* handle different action types */
void
-etcher_parse_program_action(Etcher_Action action)
+etcher_parse_program_action(Etcher_Action action, char *state, char *state2, double
value, double value2)
{
Etcher_Group *group;
Etcher_Program *program;
@@ -966,11 +1017,19 @@
group = evas_list_data(evas_list_last(etcher_file->groups));
program = evas_list_data(evas_list_last(group->programs));
+
+ if (program->state) free(program->state);
+ if (program->state2) free(program->state2);
+
program->action = action;
+ if (state) program->state = (char *)strdup(state);
+ if (state2) program->state2 = (char *)strdup(state2);
+ program->value = value;
+ program->value2 = value2;
}
void
-etcher_parse_program_transition(Etcher_Transition transition)
+etcher_parse_program_transition(Etcher_Transition transition, double duration)
{
Etcher_Group *group;
Etcher_Program *program;
@@ -979,4 +1038,6 @@
program = evas_list_data(evas_list_last(group->programs));
program->transition = transition;
+ program->duration = duration;
}
+
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/edje_cc/main.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- main.c 8 Sep 2004 22:37:22 -0000 1.5
+++ main.c 9 Sep 2004 13:55:55 -0000 1.6
@@ -41,7 +41,9 @@
yyparse();
fclose(yyin);
+ etcher_file_output(etcher_file, "test.out");
/* FIXME: make this a complete test suite */
+#if 0
{
Evas_List *l;
@@ -79,6 +81,7 @@
l = l->next;
}
}
+#endif
return 0;
}
-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs