Enlightenment CVS committal Author : leviathan Project : e17 Module : libs/engrave
Dir : e17/libs/engrave/src/lib Modified Files: engrave.l engrave.y engrave_enums.h engrave_out.c engrave_parse.c engrave_parse.h engrave_part.c engrave_part.h Log Message: Add support for pointer_mode =================================================================== RCS file: /cvs/e/e17/libs/engrave/src/lib/engrave.l,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- engrave.l 23 Jul 2007 20:02:22 -0000 1.16 +++ engrave.l 24 Jul 2007 20:01:07 -0000 1.17 @@ -158,6 +158,9 @@ relative { KEYWORD_RETURN(RELATIVE); } repeat_events { KEYWORD_RETURN(REPEAT_EVENTS); } precise_is_inside { KEYWORD_RETURN(PRECISE_IS_INSIDE); } +pointer_mode { KEYWORD_RETURN(POINTER_MODE); } +AUTOGRAB { KEYWORD_RETURN(AUTOGRAB); } +NOGRAB { KEYWORD_RETURN(NOGRAB); } SHADOW { KEYWORD_RETURN(SHADOW); } signal { KEYWORD_RETURN(SIGNAL); } SIGNAL_EMIT { KEYWORD_RETURN(SIGNAL_EMIT); } =================================================================== RCS file: /cvs/e/e17/libs/engrave/src/lib/engrave.y,v retrieving revision 1.25 retrieving revision 1.26 diff -u -3 -r1.25 -r1.26 --- engrave.y 23 Jul 2007 20:02:22 -0000 1.25 +++ engrave.y 24 Jul 2007 20:01:07 -0000 1.26 @@ -28,6 +28,7 @@ Engrave_Text_Effect text_effect; Engrave_Aspect_Preference aspect_pref; Engrave_Fill_Type fill_type_type; + Engrave_Pointer_Mode pointer_mode; } %token BASE @@ -47,7 +48,7 @@ %token SINUSOIDAL ACCELERATE DECELERATE IMAGE RECT SWALLOW GRADIENT TGROUP %token NONE PLAIN OUTLINE SOFT_OUTLINE SHADOW SOFT_SHADOW %token OUTLINE_SHADOW OUTLINE_SOFT_SHADOW VERTICAL HORIZONTAL BOTH -%token SPECTRA SPECTRUM GRAD +%token SPECTRA SPECTRUM GRAD POINTER_MODE NOGRAB AUTOGRAB %left MINUS PLUS %left TIMES DIVIDE %left NEG /* negation--unary minus */ @@ -64,6 +65,7 @@ %type <aspect_pref> aspect_pref_type %type <val> exp boolean %type <fill_type_type> fill_type_type; +%type <pointer_mode> pointer_mode grabmode; %% @@ -458,6 +460,7 @@ | mouse_events | repeat_events | precise_is_inside + | pointer_mode | clip_to | color_class | text_class @@ -542,6 +545,14 @@ } ; +pointer_mode: POINTER_MODE COLON grabmode SEMICOLON { + engrave_parse_part_pointer_mode((int)$3); + } + ; + +grabmode: NOGRAB { $$ = ENGRAVE_POINTER_NOGRAB; } + | AUTOGRAB { $$ = ENGRAVE_POINTER_AUTOGRAB; } + ; clip_to: CLIP_TO COLON STRING SEMICOLON { engrave_parse_part_clip_to($3); =================================================================== RCS file: /cvs/e/e17/libs/engrave/src/lib/engrave_enums.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- engrave_enums.h 8 Jul 2007 07:26:40 -0000 1.6 +++ engrave_enums.h 24 Jul 2007 20:01:07 -0000 1.7 @@ -19,6 +19,7 @@ typedef enum _Engrave_Aspect_Preference Engrave_Aspect_Preference; typedef enum _Engrave_Parse_Section Engrave_Parse_Section; typedef enum _Engrave_Fill_Type Engrave_Fill_Type; +typedef enum _Engrave_Pointer_Mode Engrave_Pointer_Mode; /** * @enum Engrave_Image_Type @@ -118,6 +119,18 @@ ENGRAVE_FILL_TYPE_TILE, /**< Tile type */ ENGRAVE_FILL_TYPE_NUM }; + +/** + * @enum Engrave_Pointer_Mode + * The different pointer gran modes available + */ +enum _Engrave_Pointer_Mode +{ + ENGRAVE_POINTER_AUTOGRAB, /**< Auto Grab */ + ENGRAVE_POINTER_NOGRAB, /**< No Grab */ + ENGRAVE_POINTER_NUM +}; + /** * @} =================================================================== RCS file: /cvs/e/e17/libs/engrave/src/lib/engrave_out.c,v retrieving revision 1.40 retrieving revision 1.41 diff -u -3 -r1.40 -r1.41 --- engrave_out.c 24 Jul 2007 16:43:54 -0000 1.40 +++ engrave_out.c 24 Jul 2007 20:01:07 -0000 1.41 @@ -78,6 +78,11 @@ "TILE" }; +static char *_pointer_mode_string[ENGRAVE_POINTER_NUM] = { + "AUTOGRAB", + "NOGRAB" + }; + static char * engrave_output_mk_tabs(void) { @@ -294,6 +299,14 @@ if (engrave_part_repeat_events_get(part)) engrave_out_data(out, "repeat_events", "%d", engrave_part_repeat_events_get(part)); + + if (engrave_part_precise_is_inside_get(part)) + engrave_out_data(out, "precise_is_inside", "%d", + engrave_part_precise_is_inside_get(part)); + + if (engrave_part_pointer_mode_get(part)) + engrave_out_data(out, "pointer_mode", "%s", + _pointer_mode_string[engrave_part_pointer_mode_get(part)]); if (engrave_part_effect_get(part) != ENGRAVE_TEXT_EFFECT_NONE) engrave_out_data(out, "effect", "%s", =================================================================== RCS file: /cvs/e/e17/libs/engrave/src/lib/engrave_parse.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -3 -r1.21 -r1.22 --- engrave_parse.c 23 Jul 2007 20:02:22 -0000 1.21 +++ engrave_parse.c 24 Jul 2007 20:01:07 -0000 1.22 @@ -282,6 +282,17 @@ } void +engrave_parse_part_pointer_mode(int mode) +{ + Engrave_Group *group; + Engrave_Part *part; + + group = engrave_file_group_last_get(engrave_file); + part = engrave_group_part_last_get(group); + engrave_part_pointer_mode_set(part, mode); +} + +void engrave_parse_part_clip_to(char *clip_to) { Engrave_Group *group; =================================================================== RCS file: /cvs/e/e17/libs/engrave/src/lib/engrave_parse.h,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- engrave_parse.h 23 Jul 2007 20:02:22 -0000 1.15 +++ engrave_parse.h 24 Jul 2007 20:01:07 -0000 1.16 @@ -36,6 +36,7 @@ void engrave_parse_part_mouse_events(int mouse_events); void engrave_parse_part_repeat_events(int repeat_events); void engrave_parse_part_precise_is_inside(int precise); +void engrave_parse_part_pointer_mode(int mode); void engrave_parse_part_clip_to(char *clip_to); void engrave_parse_part_dragable_x(int x, int step, int count); void engrave_parse_part_dragable_y(int y, int step, int count); =================================================================== RCS file: /cvs/e/e17/libs/engrave/src/lib/engrave_part.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -3 -r1.21 -r1.22 --- engrave_part.c 23 Jul 2007 20:02:22 -0000 1.21 +++ engrave_part.c 24 Jul 2007 20:01:07 -0000 1.22 @@ -90,6 +90,20 @@ } /** + * engrave_part_pointer_mode_set - set the pointer mode flag for the part. + * @param ep: The Engrave_Part to set the pointer mode flag on. + * @param val: The value to set the pointer mode flag too. + * + * @return Returns no value. + */ +EAPI void +engrave_part_pointer_mode_set(Engrave_Part *ep, int val) +{ + if (!ep) return; + ep->pointer_mode = val; +} + +/** * engrave_part_name_set - set the name of the part. * @param ep: The Engrave_Part to set the name off * @param name: The name to attach to the part. @@ -254,6 +268,19 @@ { if (!ep) return 0; return ep->precise_is_inside; +} + +/** + * engrave_part_pointer_mode_get - Get the pointer mode setting + * @param ep: The Engrave_Part to get the pointer mode setting from + * + * @return Returns the pointer mode setting of the part + */ +EAPI int +engrave_part_pointer_mode_get(Engrave_Part *ep) +{ + if (!ep) return 0; + return ep->pointer_mode; } /** =================================================================== RCS file: /cvs/e/e17/libs/engrave/src/lib/engrave_part.h,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- engrave_part.h 23 Jul 2007 20:02:22 -0000 1.16 +++ engrave_part.h 24 Jul 2007 20:01:07 -0000 1.17 @@ -30,6 +30,7 @@ int mouse_events; /**< The mouse events flag */ int repeat_events; /**< The repeat events flag */ int precise_is_inside; /**< The precise event flag */ + int pointer_mode; /**< The pointer mode flag */ char *clip_to; /**< The part to clip too */ char *source; /**< The source of the part */ @@ -83,6 +84,7 @@ EAPI void engrave_part_mouse_events_set(Engrave_Part *ep, int val); EAPI void engrave_part_repeat_events_set(Engrave_Part *ep, int val); EAPI void engrave_part_precise_is_inside_set(Engrave_Part *ep, int val); +EAPI void engrave_part_pointer_mode_set(Engrave_Part *ep, int val); EAPI void engrave_part_type_set(Engrave_Part *ep, Engrave_Part_Type type); EAPI void engrave_part_source_set(Engrave_Part *ep, char * source); EAPI void engrave_part_effect_set(Engrave_Part *ep, Engrave_Text_Effect effect); @@ -104,6 +106,7 @@ EAPI int engrave_part_mouse_events_get(Engrave_Part *ep); EAPI int engrave_part_repeat_events_get(Engrave_Part *ep); EAPI int engrave_part_precise_is_inside_get(Engrave_Part *ep); +EAPI int engrave_part_pointer_mode_get(Engrave_Part *ep); EAPI Engrave_Text_Effect engrave_part_effect_get(Engrave_Part *ep); EAPI const char *engrave_part_clip_to_get(Engrave_Part *ep); EAPI void engrave_part_dragable_x_get(Engrave_Part *ep, int *x, int *step, int *count); ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs