hi all, here i attach a couple of patches: ecore_directfb: it supports now the key string, so enterminus can be used with directfb :) ecore_evas_directfb: some structs have changed names, use the new ones.
PS: 1. i had these patches on my hd for a long, but is hard to track the changes of ecore cvs and submit a correct patch (maybe this are also bad). 2. my coding style is different than yours, every time a send a patch i see that the style is changed, i think theres an app that can change the c style (i dont remember the name), maybe you can give the parameters of it, so i can change the style before sending the patch.
Only in /usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/: .#Ecore_DirectFB.h.1.1 Only in /usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/: .cvsignore Only in /usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/: CVS diff -ur /usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/Ecore_DirectFB.h ./Ecore_DirectFB.h --- /usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/Ecore_DirectFB.h 2005-10-25 14:53:22.000000000 +0200 +++ ./Ecore_DirectFB.h 2005-11-01 16:49:20.000000000 +0100 @@ -45,7 +45,7 @@ #ifndef _ECORE_DIRECTFB_WINDOW_PREDEF typedef struct _Ecore_DirectFB_Window Ecore_DirectFB_Window; -#endif +#endif typedef struct _Ecore_DirectFB_Cursor Ecore_DirectFB_Cursor; typedef struct _Ecore_DirectFB_Event_Key_Down Ecore_DirectFB_Event_Key_Down; @@ -83,8 +83,8 @@ struct _Ecore_DirectFB_Event_Key_Down /** DirectFB Key Down event */ { - char *keyname; /**< The name of the key that was released */ - char *keysymbol; /**< The logical symbol of the key that was pressed */ + char *name; /**< The name of the key that was released */ + char *string; /**< The logical symbol of the key that was pressed */ char *key_compose; /**< The UTF-8 string conversion if any */ unsigned int time; DFBWindowID win; @@ -92,8 +92,8 @@ struct _Ecore_DirectFB_Event_Key_Up /** DirectFB Key Up event */ { - char *keyname; /**< The name of the key that was released */ - char *keysymbol; /**< The logical symbol of the key that was pressed */ + char *name; /**< The name of the key that was released */ + char *string; /**< The logical symbol of the key that was pressed */ char *key_compose; /**< The UTF-8 string conversion if any */ unsigned int time; DFBWindowID win; diff -ur /usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/ecore_directfb.c ./ecore_directfb.c --- /usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/ecore_directfb.c 2005-10-15 12:37:37.000000000 +0200 +++ ./ecore_directfb.c 2005-11-01 17:07:00.000000000 +0100 @@ -7,7 +7,11 @@ /* ecore_directfb */ /******************/ /* About */ -/* with this you can create windows of directfb and handle events through ecore */ +/* with this you can create windows of directfb and handle events through ecore + * TODO: + * - handle all event types + * - + * */ static int _ecore_directfb_key_symbols_count = sizeof(_ecore_directfb_key_symbols)/sizeof(Ecore_DirectFB_Key_Symbols); static int _ecore_directfb_init_count = 0; @@ -64,8 +68,8 @@ Ecore_DirectFB_Event_Key_Up *e; e = ev; - free(e->keyname); - if (e->keysymbol) free(e->keysymbol); + if(e->name) free(e->name); + if (e->string) free(e->string); if (e->key_compose) free(e->key_compose); free(e); } @@ -76,8 +80,8 @@ Ecore_DirectFB_Event_Key_Up *e; e = ev; - free(e->keyname); - if (e->keysymbol) free(e->keysymbol); + if(e->name) free(e->name); + if (e->string) free(e->string); if (e->key_compose) free(e->key_compose); free(e); } @@ -153,7 +157,7 @@ Ecore_DirectFB_Event_Key_Down *e; unsigned int key_symbol; - char *key_name; + struct keymap *k; e = calloc(1, sizeof(Ecore_DirectFB_Event_Key_Down)); @@ -161,31 +165,31 @@ { case DFEC_INPUT: key_symbol = evt->input.key_symbol; - key_name = ecore_hash_get(_ecore_directfb_key_symbols_hash, &key_symbol); + k = ecore_hash_get(_ecore_directfb_key_symbols_hash, &key_symbol); - if(!key_name) + if(!k) { printf("error en el numero, %0X\n", evt->input.key_symbol); return; } - e->keyname = strdup(key_name); - e->keysymbol = strdup(key_name); + e->name = strdup(k->name); + e->string = strdup(k->string); e->key_compose = NULL; e->win = _ecore_directfb_fullscreen_window_id; e->time = 0; - break; + break; case DFEC_WINDOW: key_symbol = evt->window.key_symbol; - key_name = ecore_hash_get(_ecore_directfb_key_symbols_hash, &key_symbol); + k = ecore_hash_get(_ecore_directfb_key_symbols_hash, &key_symbol); - if(!key_name) + if(!k) { printf("error en el numero, %0X\n", evt->window.key_symbol); return; } - e->keyname = strdup(key_name); - e->keysymbol = strdup(key_name); + e->name = strdup(k->name); + e->string = strdup(k->string); e->key_compose = NULL; e->win = evt->window.window_id; e->time = 0; @@ -201,7 +205,7 @@ { Ecore_DirectFB_Event_Key_Up *e; unsigned int key_symbol; - char *key_name; + struct keymap *k; e = calloc(1, sizeof(Ecore_DirectFB_Event_Key_Up)); @@ -209,15 +213,16 @@ { case DFEC_INPUT: key_symbol = evt->input.key_symbol; - key_name = ecore_hash_get(_ecore_directfb_key_symbols_hash, &key_symbol); + k = ecore_hash_get(_ecore_directfb_key_symbols_hash, &key_symbol); - if(!key_name) + + if(!k) { printf("error en el numero, %0X\n", evt->input.key_symbol); return; } - e->keyname = strdup(key_name); - e->keysymbol = strdup(key_name); + e->name = strdup(k->name); + e->string = strdup(k->string); e->key_compose = NULL; e->win = _ecore_directfb_fullscreen_window_id; e->time = 0; @@ -225,15 +230,15 @@ case DFEC_WINDOW: key_symbol = evt->window.key_symbol; - key_name = ecore_hash_get(_ecore_directfb_key_symbols_hash, &key_symbol); + k = ecore_hash_get(_ecore_directfb_key_symbols_hash, &key_symbol); - if(!key_name) + if(!k) { printf("error en el numero, %0X\n", evt->window.key_symbol); return; } - e->keyname = strdup(key_name); - e->keysymbol = strdup(key_name); + e->name = strdup(k->name); + e->string = strdup(k->string); e->key_compose = NULL; e->win = evt->window.window_id; e->time = 0; @@ -697,7 +702,11 @@ _ecore_directfb_key_symbols_hash = ecore_hash_new(_ecore_directfb_hash_create,_ecore_directfb_hash_compare); for(i=0; i<_ecore_directfb_key_symbols_count; i++) { - ecore_hash_set(_ecore_directfb_key_symbols_hash, &_ecore_directfb_key_symbols[i].keycode, _ecore_directfb_key_symbols[i].keysymbol); + struct keymap *k; + k = malloc(sizeof(struct keymap)); + k->name = _ecore_directfb_key_symbols[i].name; + k->string = _ecore_directfb_key_symbols[i].string; + ecore_hash_set(_ecore_directfb_key_symbols_hash, &_ecore_directfb_key_symbols[i].id, k); } /* create the hash for the windows(key = windowid, val = Ecore_DirectFB_Window struct) */ return _ecore_directfb_init_count; @@ -719,7 +728,10 @@ /* free the key symbol names hash */ for(i=0; i<_ecore_directfb_key_symbols_count; i++) { - ecore_hash_remove(_ecore_directfb_key_symbols_hash, &_ecore_directfb_key_symbols[i].keycode); + struct keymap *k; + k = ecore_hash_get(_ecore_directfb_key_symbols_hash, &_ecore_directfb_key_symbols[i].id); + ecore_hash_remove(_ecore_directfb_key_symbols_hash, &_ecore_directfb_key_symbols[i].id); + free(k); } if(_ecore_directfb_fullscreen_window_id) Only in ./: ecore_directfb.diff diff -ur /usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/ecore_directfb_keys.h ./ecore_directfb_keys.h --- /usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/ecore_directfb_keys.h 2005-10-25 14:53:22.000000000 +0200 +++ ./ecore_directfb_keys.h 2005-09-27 00:49:23.000000000 +0200 @@ -1,131 +1,131 @@ typedef struct _Ecore_DirectFB_Key_Symbols Ecore_DirectFB_Key_Symbols; - struct _Ecore_DirectFB_Key_Symbols { - char *keysymbol; - unsigned int keycode; + char *string; + char *name; + unsigned int id; } _ecore_directfb_key_symbols[] = { - {"BackSpace", DIKS_BACKSPACE}, - {"Tab", DIKS_TAB}, - {"Return", DIKS_RETURN}, - {"Cancel", DIKS_CANCEL}, - {"Escape", DIKS_ESCAPE}, - {"space", DIKS_SPACE}, - {"exclam", DIKS_EXCLAMATION_MARK}, - {"quotedbl", DIKS_QUOTATION}, - {"numbersign", DIKS_NUMBER_SIGN}, - {"dollar", DIKS_DOLLAR_SIGN}, - {"percent", DIKS_PERCENT_SIGN}, - {"ampersand", DIKS_AMPERSAND}, - {"apostrophe", DIKS_APOSTROPHE}, - {"parenleft", DIKS_PARENTHESIS_LEFT}, - {"parenright", DIKS_PARENTHESIS_RIGHT}, - {"asterisk", DIKS_ASTERISK}, - {"plus", DIKS_PLUS_SIGN}, - {"comma", DIKS_COMMA}, - {"minus", DIKS_MINUS_SIGN}, - {"period", DIKS_PERIOD}, - {"slash", DIKS_SLASH}, - {"0", DIKS_0}, - {"1", DIKS_1}, - {"2", DIKS_2}, - {"3", DIKS_3}, - {"4", DIKS_4}, - {"5", DIKS_5}, - {"6", DIKS_6}, - {"7", DIKS_7}, - {"8", DIKS_8}, - {"9", DIKS_9}, - {"colon", DIKS_COLON}, - {"semicolon", DIKS_SEMICOLON}, - {"less", DIKS_LESS_THAN_SIGN}, - {"equal", DIKS_EQUALS_SIGN}, - {"greater", DIKS_GREATER_THAN_SIGN}, - {"question", DIKS_QUESTION_MARK}, - {"at", DIKS_AT}, - {"A", DIKS_CAPITAL_A }, - {"B", DIKS_CAPITAL_B }, - {"C", DIKS_CAPITAL_C }, - {"D", DIKS_CAPITAL_D }, - {"E", DIKS_CAPITAL_E }, - {"F", DIKS_CAPITAL_F }, - {"G", DIKS_CAPITAL_G }, - {"H", DIKS_CAPITAL_H }, - {"I", DIKS_CAPITAL_I }, - {"J", DIKS_CAPITAL_J }, - {"K", DIKS_CAPITAL_K }, - {"L", DIKS_CAPITAL_L }, - {"M", DIKS_CAPITAL_M }, - {"N", DIKS_CAPITAL_N }, - {"O", DIKS_CAPITAL_O }, - {"P", DIKS_CAPITAL_P }, - {"Q", DIKS_CAPITAL_Q }, - {"R", DIKS_CAPITAL_R }, - {"S", DIKS_CAPITAL_S }, - {"T", DIKS_CAPITAL_T }, - {"U", DIKS_CAPITAL_U }, - {"V", DIKS_CAPITAL_V }, - {"W", DIKS_CAPITAL_W }, - {"X", DIKS_CAPITAL_X }, - {"Y", DIKS_CAPITAL_Y }, - {"Z", DIKS_CAPITAL_Z }, - {"bracketleft", DIKS_SQUARE_BRACKET_LEFT }, - {"backslash", DIKS_BACKSLASH }, - {"bracketright", DIKS_SQUARE_BRACKET_RIGHT }, - {"asciicircum", DIKS_CIRCUMFLEX_ACCENT }, - {"underscore", DIKS_UNDERSCORE }, - {"grave", DIKS_GRAVE_ACCENT}, - {"a", DIKS_SMALL_A }, - {"b", DIKS_SMALL_B }, - {"c", DIKS_SMALL_C }, - {"d", DIKS_SMALL_D }, - {"e", DIKS_SMALL_E }, - {"f", DIKS_SMALL_F }, - {"g", DIKS_SMALL_G }, - {"h", DIKS_SMALL_H }, - {"i", DIKS_SMALL_I }, - {"j", DIKS_SMALL_J }, - {"k", DIKS_SMALL_K }, - {"l", DIKS_SMALL_L }, - {"m", DIKS_SMALL_M }, - {"n", DIKS_SMALL_N }, - {"o", DIKS_SMALL_O }, - {"p", DIKS_SMALL_P }, - {"q", DIKS_SMALL_Q }, - {"r", DIKS_SMALL_R }, - {"s", DIKS_SMALL_S }, - {"t", DIKS_SMALL_T }, - {"u", DIKS_SMALL_U }, - {"v", DIKS_SMALL_V }, - {"w", DIKS_SMALL_W }, - {"x", DIKS_SMALL_X }, - {"y", DIKS_SMALL_Y }, - {"z", DIKS_SMALL_Z }, - {"braceleft", DIKS_CURLY_BRACKET_LEFT }, - {"bar", DIKS_VERTICAL_BAR }, - {"braceright", DIKS_CURLY_BRACKET_RIGHT }, - {"asciitilde", DIKS_TILDE }, - {"Delete", DIKS_DELETE }, - {"Left", DIKS_CURSOR_LEFT }, - {"Right", DIKS_CURSOR_RIGHT}, - {"Up", DIKS_CURSOR_UP}, - {"Down", DIKS_CURSOR_DOWN}, - {"Insert", DIKS_INSERT}, - {"Home", DIKS_HOME}, - {"End", DIKS_END}, - {"Page_Up", DIKS_PAGE_UP}, - {"Page_Down", DIKS_PAGE_DOWN}, - {"Print", DIKS_PRINT}, - {"Pause", DIKS_PAUSE}, + {"\010", "BackSpace",DIKS_BACKSPACE}, + {"\011", "Tab", DIKS_TAB}, + {"\015", "Return", DIKS_RETURN}, + {"", "Cancel", DIKS_CANCEL}, + {"", "Escape", DIKS_ESCAPE}, + {" ", "space", DIKS_SPACE}, + {"!", "exclam", DIKS_EXCLAMATION_MARK}, + {"\"", "quotedbl", DIKS_QUOTATION}, + {"#", "numbersign", DIKS_NUMBER_SIGN}, + {"$", "dollar", DIKS_DOLLAR_SIGN}, + {"%", "percent", DIKS_PERCENT_SIGN}, + {"&", "ampersand", DIKS_AMPERSAND}, + {"'", "apostrophe", DIKS_APOSTROPHE}, + {"(", "parenleft", DIKS_PARENTHESIS_LEFT}, + {")", "parenright", DIKS_PARENTHESIS_RIGHT}, + {"*", "asterisk", DIKS_ASTERISK}, + {"+", "plus", DIKS_PLUS_SIGN}, + {",", "comma", DIKS_COMMA}, + {"-", "minus", DIKS_MINUS_SIGN}, + {".", "period", DIKS_PERIOD}, + {"/", "slash", DIKS_SLASH}, + {"0", "0", DIKS_0}, + {"1", "1", DIKS_1}, + {"2", "2", DIKS_2}, + {"3", "3", DIKS_3}, + {"4", "4", DIKS_4}, + {"5", "5", DIKS_5}, + {"6", "6", DIKS_6}, + {"7", "7", DIKS_7}, + {"8", "8", DIKS_8}, + {"9", "9", DIKS_9}, + {":", "colon", DIKS_COLON}, + {";", "semicolon", DIKS_SEMICOLON}, + {"<", "less", DIKS_LESS_THAN_SIGN}, + {"=", "equal", DIKS_EQUALS_SIGN}, + {">", "greater", DIKS_GREATER_THAN_SIGN}, + {"?", "question", DIKS_QUESTION_MARK}, + {"@", "at", DIKS_AT}, + {"A", "A", DIKS_CAPITAL_A }, + {"B", "B", DIKS_CAPITAL_B }, + {"C", "C", DIKS_CAPITAL_C }, + {"D", "D", DIKS_CAPITAL_D }, + {"E", "E", DIKS_CAPITAL_E }, + {"F", "F", DIKS_CAPITAL_F }, + {"G", "G", DIKS_CAPITAL_G }, + {"H", "H", DIKS_CAPITAL_H }, + {"I", "I", DIKS_CAPITAL_I }, + {"J", "J", DIKS_CAPITAL_J }, + {"K", "K", DIKS_CAPITAL_K }, + {"L", "L", DIKS_CAPITAL_L }, + {"M", "M", DIKS_CAPITAL_M }, + {"N", "N", DIKS_CAPITAL_N }, + {"O", "O", DIKS_CAPITAL_O }, + {"P", "P", DIKS_CAPITAL_P }, + {"Q", "Q", DIKS_CAPITAL_Q }, + {"R", "R", DIKS_CAPITAL_R }, + {"S", "S", DIKS_CAPITAL_S }, + {"T", "T", DIKS_CAPITAL_T }, + {"U", "U", DIKS_CAPITAL_U }, + {"V", "V", DIKS_CAPITAL_V }, + {"W", "W", DIKS_CAPITAL_W }, + {"X", "X", DIKS_CAPITAL_X }, + {"Y", "Y", DIKS_CAPITAL_Y }, + {"Z", "Z", DIKS_CAPITAL_Z }, + {"[", "bracketleft", DIKS_SQUARE_BRACKET_LEFT }, + {"\\", "backslash", DIKS_BACKSLASH }, + {"]", "bracketright", DIKS_SQUARE_BRACKET_RIGHT }, + {"^", "asciicircum", DIKS_CIRCUMFLEX_ACCENT }, + {"_", "underscore", DIKS_UNDERSCORE }, + {"`", "grave", DIKS_GRAVE_ACCENT}, + {"a", "a", DIKS_SMALL_A }, + {"b","b", DIKS_SMALL_B }, + {"c","c", DIKS_SMALL_C }, + {"d","d", DIKS_SMALL_D }, + {"e","e", DIKS_SMALL_E }, + {"f","f", DIKS_SMALL_F }, + {"g","g", DIKS_SMALL_G }, + {"h","h", DIKS_SMALL_H }, + {"i","i", DIKS_SMALL_I }, + {"j","j", DIKS_SMALL_J }, + {"k","k", DIKS_SMALL_K }, + {"l","l", DIKS_SMALL_L }, + {"m","m", DIKS_SMALL_M }, + {"n","n", DIKS_SMALL_N }, + {"o", "o", DIKS_SMALL_O }, + {"p", "p", DIKS_SMALL_P }, + {"q", "q", DIKS_SMALL_Q }, + {"r", "r", DIKS_SMALL_R }, + {"s", "s", DIKS_SMALL_S }, + {"t", "t", DIKS_SMALL_T }, + {"u", "u", DIKS_SMALL_U }, + {"v", "v", DIKS_SMALL_V }, + {"w", "w", DIKS_SMALL_W }, + {"x", "x", DIKS_SMALL_X }, + {"y", "y", DIKS_SMALL_Y }, + {"z", "z", DIKS_SMALL_Z }, + {"{", "braceleft",DIKS_CURLY_BRACKET_LEFT }, + {"|", "bar", DIKS_VERTICAL_BAR }, + {"}", "braceright", DIKS_CURLY_BRACKET_RIGHT }, + {"~", "asciitilde", DIKS_TILDE }, + {"\177", "Delete", DIKS_DELETE }, + {"", "Left", DIKS_CURSOR_LEFT }, + {"", "Right", DIKS_CURSOR_RIGHT}, + {"", "Up", DIKS_CURSOR_UP}, + {"", "Down", DIKS_CURSOR_DOWN}, + {"", "Insert", DIKS_INSERT}, + {"", "Home", DIKS_HOME}, + {"", "End", DIKS_END}, + {"", "Page_Up", DIKS_PAGE_UP}, + {"", "Page_Down", DIKS_PAGE_DOWN}, + {"", "Print", DIKS_PRINT}, + {"", "Pause", DIKS_PAUSE}, /* ok */ - {"Select", DIKS_SELECT}, + {"", "Select",DIKS_SELECT}, /* goto */ - {"Clear", DIKS_CLEAR}, + {"", "Clear", DIKS_CLEAR}, /* power */ /* power 2 */ /* option */ - {"Menu", DIKS_MENU}, - {"Help", DIKS_HELP}, + {"", "Menu",DIKS_MENU}, + {"", "Help",DIKS_HELP}, /* info */ /* time */ /* vendor */ @@ -134,48 +134,48 @@ /* channel */ /* favorites */ /* hasta next */ - {"Next", DIKS_NEXT}, - {"Begin", DIKS_BEGIN}, + {"", "Next",DIKS_NEXT}, + {"", "Begin",DIKS_BEGIN}, /* digits */ /* teen */ /* twen */ - {"Break", DIKS_BREAK}, + {"", "Break", DIKS_BREAK}, /* exit */ /* setup */ - {"upleftcorner", DIKS_CURSOR_LEFT_UP }, - {"lowleftcorner", DIKS_CURSOR_LEFT_DOWN }, - {"uprightcorner", DIKS_CURSOR_UP_RIGHT }, - {"lowrightcorner", DIKS_CURSOR_DOWN_RIGHT }, - {"F1", DIKS_F1}, - {"F2", DIKS_F2}, - {"F3", DIKS_F3}, - {"F4", DIKS_F4}, - {"F5", DIKS_F5}, - {"F6", DIKS_F6}, - {"F7", DIKS_F7}, - {"F8", DIKS_F8}, - {"F9", DIKS_F9}, - {"F10", DIKS_F10}, - {"F11", DIKS_F11}, - {"F12", DIKS_F12}, + {"", "upleftcorner", DIKS_CURSOR_LEFT_UP }, + {"", "lowleftcorner", DIKS_CURSOR_LEFT_DOWN }, + {"", "uprightcorner", DIKS_CURSOR_UP_RIGHT }, + {"", "lowrightcorner",DIKS_CURSOR_DOWN_RIGHT }, + {"", "F1",DIKS_F1}, + {"", "F2",DIKS_F2}, + {"", "F3",DIKS_F3}, + {"", "F4",DIKS_F4}, + {"", "F5",DIKS_F5}, + {"", "F6",DIKS_F6}, + {"", "F7",DIKS_F7}, + {"", "F8",DIKS_F8}, + {"", "F9",DIKS_F9}, + {"", "F10",DIKS_F10}, + {"", "F11",DIKS_F11}, + {"", "F12",DIKS_F12}, /* this are only mapped to one, not left right */ - {"Shift_L", DIKS_SHIFT}, - /*{"Shift_R", 0xFFE2}, */ - {"Control_L", DIKS_CONTROL}, - /*{"Control_R", 0xFFE4}, */ - {"Meta_L", DIKS_META}, - /* {"Meta_R", 0xFFE8}, */ - {"Alt_L", DIKS_ALT}, - {"Alt_R", DIKS_ALTGR}, - {"Super_L", DIKS_SUPER}, - /*{"Super_R", 0xFFEC}, */ - {"Hyper_L", DIKS_HYPER}, - /*{"Hyper_R", 0xFFEE}, */ + {"", "Shift_L", DIKS_SHIFT}, + /*{"Shift_R",0xFFE2},*/ + {"", "Control_L", DIKS_CONTROL}, + /*{"Control_R",0xFFE4},*/ + {"", "Meta_L", DIKS_META}, + /* {"Meta_R",0xFFE8},*/ + {"", "Alt_L", DIKS_ALT}, + {"", "Alt_R", DIKS_ALTGR}, + {"", "Super_L", DIKS_SUPER}, + /*{"Super_R",0xFFEC},*/ + {"", "Hyper_L", DIKS_HYPER}, + /*{"Hyper_R",0xFFEE},*/ - {"Caps_Lock", DIKS_CAPS_LOCK}, - {"Num_Lock", DIKS_NUM_LOCK}, - {"Scroll_Lock", DIKS_SCROLL_LOCK}, + {"", "Caps_Lock", DIKS_CAPS_LOCK}, + {"", "Num_Lock", DIKS_NUM_LOCK}, + {"", "Scroll_Lock", DIKS_SCROLL_LOCK}, /* not included the dead keys */ /* not included the custom keys */ - {"VoidSymbol", DIKS_NULL} + {"", "VoidSymbol", DIKS_NULL} }; diff -ur /usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/ecore_directfb_private.h ./ecore_directfb_private.h --- /usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/ecore_directfb_private.h 2005-10-15 12:37:37.000000000 +0200 +++ ./ecore_directfb_private.h 2005-09-27 00:01:30.000000000 +0200 @@ -8,4 +8,8 @@ } \ } - +struct keymap +{ + char *name; + char *string; +};
--- /usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_evas/ecore_evas_directfb.c 2005-10-15 12:37:37.000000000 +0200 +++ ecore_evas_directfb.c 2005-09-27 01:04:58.000000000 +0200 @@ -21,52 +21,53 @@ static void _ecore_evas_directfb_render(Ecore_Evas *ee) { - if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee); - Evas_List *updates; - updates = evas_render_updates(ee->evas); - if (updates) - { - DFBRegion region; - IDirectFBSurface *surface; - Evas_List *l; - surface = ee->engine.directfb.window->surface; - for (l = updates; l; l = l->next) - { - Evas_Rectangle *rect; - rect = l->data; - region.x1 = rect->x; - region.y1 = rect->y; - region.x2 = rect->x + rect->w - 1; - region.y2 = rect->y + rect->h - 1; - surface->Flip(surface, ®ion,DSFLIP_BLIT); - } - evas_render_updates_free(updates); - } + + if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee); + Evas_List *updates; + updates = evas_render_updates(ee->evas); + if (updates) + { + DFBRegion region; + IDirectFBSurface *surface; + Evas_List *l; + surface = ee->engine.directfb.window->surface; + for (l = updates; l; l = l->next) + { + Evas_Rectangle *rect; + rect = l->data; + region.x1 = rect->x; + region.y1 = rect->y; + region.x2 = rect->x + rect->w - 1; + region.y2 = rect->y + rect->h - 1; + surface->Flip(surface, ®ion,DSFLIP_BLIT); + } + evas_render_updates_free(updates); + } } static int _ecore_evas_directfb_idle_enter(void *data __UNUSED__) { - Ecore_List2 *l; - double t1 = 0.; - double t2 = 0.; - - if (_ecore_evas_fps_debug) - { - t1 = ecore_time_get(); - } - for (l = (Ecore_List2 *)ecore_evases; l; l = l->next) - { - Ecore_Evas *ee; - ee = (Ecore_Evas *)l; - _ecore_evas_directfb_render(ee); - } - if (_ecore_evas_fps_debug) - { - t2 = ecore_time_get(); - _ecore_evas_fps_debug_rendertime_add(t2 - t1); - } - return 1; + Ecore_List2 *l; + double t1 = 0.; + double t2 = 0.; + + if (_ecore_evas_fps_debug) + { + t1 = ecore_time_get(); + } + for (l = (Ecore_List2 *)ecore_evases; l; l = l->next) + { + Ecore_Evas *ee; + ee = (Ecore_Evas *)l; + _ecore_evas_directfb_render(ee); + } + if (_ecore_evas_fps_debug) + { + t2 = ecore_time_get(); + _ecore_evas_fps_debug_rendertime_add(t2 - t1); + } + return 1; } static char * @@ -92,216 +93,215 @@ static Ecore_Evas * _ecore_evas_directfb_match(DFBWindowID win) { - Ecore_Evas *ee; - - ee = evas_hash_find(ecore_evases_hash, _ecore_evas_directfb_winid_str_get(win)); - if ((ee) && (ee->delete_idle_enterer)) return NULL; - return ee; + Ecore_Evas *ee; + + ee = evas_hash_find(ecore_evases_hash, _ecore_evas_directfb_winid_str_get(win)); + if ((ee) && (ee->delete_idle_enterer)) return NULL; + return ee; } static void _ecore_evas_directfb_mouse_move_process(Ecore_Evas *ee, int x, int y, unsigned int timestamp) { - ee->mouse.x = x; - ee->mouse.y = y; - - if (ee->prop.cursor.object) - { - evas_object_show(ee->prop.cursor.object); - if (ee->rotation == 0) - evas_object_move(ee->prop.cursor.object,x - ee->prop.cursor.hot.x,y - ee->prop.cursor.hot.y); - else if (ee->rotation == 90) - evas_object_move(ee->prop.cursor.object, + ee->mouse.x = x; + ee->mouse.y = y; + + if (ee->prop.cursor.object) + { + evas_object_show(ee->prop.cursor.object); + if (ee->rotation == 0) + evas_object_move(ee->prop.cursor.object,x - ee->prop.cursor.hot.x,y - ee->prop.cursor.hot.y); + else if (ee->rotation == 90) + evas_object_move(ee->prop.cursor.object, ee->h - y - 1 - ee->prop.cursor.hot.x, x - ee->prop.cursor.hot.y); - else if (ee->rotation == 180) - evas_object_move(ee->prop.cursor.object, + else if (ee->rotation == 180) + evas_object_move(ee->prop.cursor.object, ee->w - x - 1 - ee->prop.cursor.hot.x, ee->h - y - 1 - ee->prop.cursor.hot.y); - else if (ee->rotation == 270) - evas_object_move(ee->prop.cursor.object, + else if (ee->rotation == 270) + evas_object_move(ee->prop.cursor.object, y - ee->prop.cursor.hot.x, ee->w - x - 1 - ee->prop.cursor.hot.y); - } - if (ee->rotation == 0) - evas_event_feed_mouse_move(ee->evas, x, y, timestamp, NULL); - else if (ee->rotation == 90) - evas_event_feed_mouse_move(ee->evas, ee->h - y - 1, x, timestamp, NULL); - else if (ee->rotation == 180) - evas_event_feed_mouse_move(ee->evas, ee->w - x - 1, ee->h - y - 1, timestamp, NULL); - else if (ee->rotation == 270) - evas_event_feed_mouse_move(ee->evas, y, ee->w - x - 1, timestamp, NULL); + } + if (ee->rotation == 0) + evas_event_feed_mouse_move(ee->evas, x, y, timestamp, NULL); + else if (ee->rotation == 90) + evas_event_feed_mouse_move(ee->evas, ee->h - y - 1, x, timestamp, NULL); + else if (ee->rotation == 180) + evas_event_feed_mouse_move(ee->evas, ee->w - x - 1, ee->h - y - 1, timestamp, NULL); + else if (ee->rotation == 270) + evas_event_feed_mouse_move(ee->evas, y, ee->w - x - 1, timestamp, NULL); } static int _ecore_evas_directfb_event_key_down(void *data __UNUSED__, int type __UNUSED__, void *event) { - Ecore_Evas *ee; - Ecore_DirectFB_Event_Key_Down *e; - - e = event; - ee = _ecore_evas_directfb_match(e->win); - - if (!ee) return 1; /* pass on event */ - evas_event_feed_key_down(ee->evas, e->keyname, e->keysymbol, e->key_compose, NULL, e->time, NULL); - return 1; - + Ecore_Evas *ee; + Ecore_DirectFB_Event_Key_Down *e; + + e = event; + ee = _ecore_evas_directfb_match(e->win); + + if (!ee) return 1; /* pass on event */ + evas_event_feed_key_down(ee->evas, e->name, NULL, e->string, e->key_compose, e->time, NULL); + return 1; + } static int _ecore_evas_directfb_event_key_up(void *data __UNUSED__, int type __UNUSED__, void *event) { - Ecore_Evas *ee; - Ecore_DirectFB_Event_Key_Up *e; - - e = event; - ee = _ecore_evas_directfb_match(e->win); - - if (!ee) return 1; /* pass on event */ - evas_event_feed_key_up(ee->evas, e->keyname, e->keysymbol, e->key_compose, NULL, e->time, NULL); - return 1; - + Ecore_Evas *ee; + Ecore_DirectFB_Event_Key_Up *e; + + e = event; + ee = _ecore_evas_directfb_match(e->win); + + if (!ee) return 1; /* pass on event */ + evas_event_feed_key_up(ee->evas, e->name, NULL, e->string, e->key_compose, e->time, NULL); + return 1; + } static int _ecore_evas_directfb_event_motion(void *data __UNUSED__, int type __UNUSED__, void *event) { - Ecore_Evas *ee; - Ecore_DirectFB_Event_Motion *e; - - e = event; - ee = _ecore_evas_directfb_match(e->win); - - if (!ee) return 1; /* pass on event */ - _ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time); - return 1; - + Ecore_Evas *ee; + Ecore_DirectFB_Event_Motion *e; + + e = event; + ee = _ecore_evas_directfb_match(e->win); + + if (!ee) return 1; /* pass on event */ + _ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time); + return 1; + } static int _ecore_evas_directfb_event_button_down(void *data __UNUSED__, int type __UNUSED__, void *event) { - Ecore_Evas *ee; - Ecore_DirectFB_Event_Button_Down *e; - - e = event; - ee = _ecore_evas_directfb_match(e->win); - - if (!ee) return 1; /* pass on event */ - // _ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time); - evas_event_feed_mouse_down(ee->evas, e->button, EVAS_BUTTON_NONE, e->time, NULL); - return 1; + Ecore_Evas *ee; + Ecore_DirectFB_Event_Button_Down *e; + + e = event; + ee = _ecore_evas_directfb_match(e->win); + + if (!ee) return 1; /* pass on event */ + // _ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time); + evas_event_feed_mouse_down(ee->evas, e->button, EVAS_BUTTON_NONE, e->time, NULL); + return 1; } static int _ecore_evas_directfb_event_button_up(void *data __UNUSED__, int type __UNUSED__, void *event) { - Ecore_Evas *ee; - Ecore_DirectFB_Event_Button_Up *e; - Evas_Button_Flags flags = EVAS_BUTTON_NONE; - - e = event; - ee = _ecore_evas_directfb_match(e->win); - - if (!ee) return 1; /* pass on event */ - //_ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time); - evas_event_feed_mouse_up(ee->evas, e->button, flags, e->time, NULL); - return 1; + Ecore_Evas *ee; + Ecore_DirectFB_Event_Button_Up *e; + Evas_Button_Flags flags = EVAS_BUTTON_NONE; + + e = event; + ee = _ecore_evas_directfb_match(e->win); + + if (!ee) return 1; /* pass on event */ + //_ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time); + evas_event_feed_mouse_up(ee->evas, e->button, flags, e->time, NULL); + return 1; } static int _ecore_evas_directfb_event_enter(void *data __UNUSED__, int type __UNUSED__, void *event) { - Ecore_Evas *ee; - Ecore_DirectFB_Event_Enter *e; - - e = event; - ee = _ecore_evas_directfb_match(e->win); - - if (!ee) return 1; /* pass on event */ - evas_event_feed_mouse_in(ee->evas, e->time, NULL); - //_ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time); - return 1; + Ecore_Evas *ee; + Ecore_DirectFB_Event_Enter *e; + + e = event; + ee = _ecore_evas_directfb_match(e->win); + + if (!ee) return 1; /* pass on event */ + evas_event_feed_mouse_in(ee->evas, e->time, NULL); + //_ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time); + return 1; } - static int _ecore_evas_directfb_event_leave(void *data __UNUSED__, int type __UNUSED__, void *event) { - Ecore_Evas *ee; - Ecore_DirectFB_Event_Leave *e; - - e = event; - ee = _ecore_evas_directfb_match(e->win); - - if (!ee) return 1; /* pass on event */ - evas_event_feed_mouse_out(ee->evas, e->time, NULL); - //_ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time); - if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee); - if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object); - return 1; + Ecore_Evas *ee; + Ecore_DirectFB_Event_Leave *e; + + e = event; + ee = _ecore_evas_directfb_match(e->win); + + if (!ee) return 1; /* pass on event */ + evas_event_feed_mouse_out(ee->evas, e->time, NULL); + //_ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time); + if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee); + if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object); + return 1; } static int _ecore_evas_directfb_event_wheel(void *data __UNUSED__, int type __UNUSED__, void *event) { - Ecore_Evas *ee; - Ecore_DirectFB_Event_Wheel *e; - - e = event; - ee = _ecore_evas_directfb_match(e->win); - - if (!ee) return 1; /* pass on event */ - evas_event_feed_mouse_wheel(ee->evas, e->direction, e->z, e->time, NULL); - return 1; + Ecore_Evas *ee; + Ecore_DirectFB_Event_Wheel *e; + + e = event; + ee = _ecore_evas_directfb_match(e->win); + + if (!ee) return 1; /* pass on event */ + evas_event_feed_mouse_wheel(ee->evas, e->direction, e->z, e->time, NULL); + return 1; } static int _ecore_evas_directfb_event_got_focus(void *data __UNUSED__, int type __UNUSED__, void *event) { - Ecore_Evas *ee; - Ecore_DirectFB_Event_Got_Focus *e; - - e = event; - ee = _ecore_evas_directfb_match(e->win); - - if (!ee) return 1; /* pass on event */ - ee->prop.focused = 1; - return 1; + Ecore_Evas *ee; + Ecore_DirectFB_Event_Got_Focus *e; + + e = event; + ee = _ecore_evas_directfb_match(e->win); + + if (!ee) return 1; /* pass on event */ + ee->prop.focused = 1; + return 1; } static int _ecore_evas_directfb_event_lost_focus(void *data __UNUSED__, int type __UNUSED__, void *event) { - Ecore_Evas *ee; - Ecore_DirectFB_Event_Lost_Focus *e; - - e = event; - ee = _ecore_evas_directfb_match(e->win); - - if (!ee) return 1; /* pass on event */ - ee->prop.focused = 0; - return 1; + Ecore_Evas *ee; + Ecore_DirectFB_Event_Lost_Focus *e; + + e = event; + ee = _ecore_evas_directfb_match(e->win); + + if (!ee) return 1; /* pass on event */ + ee->prop.focused = 0; + return 1; } int _ecore_evas_directfb_shutdown(void) { - _ecore_evas_init_count--; - if (_ecore_evas_init_count == 0) - { - int i; - - while (ecore_evases) _ecore_evas_free(ecore_evases); - for (i = 0; i < 8; i++) - ecore_event_handler_del(ecore_evas_event_handlers[i]); - ecore_idle_enterer_del(ecore_evas_directfb_idle_enterer); - ecore_evas_directfb_idle_enterer = NULL; - if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_shutdown(); - } - if (_ecore_evas_init_count < 0) _ecore_evas_init_count = 0; - return _ecore_evas_init_count; + _ecore_evas_init_count--; + if (_ecore_evas_init_count == 0) + { + int i; + + while (ecore_evases) _ecore_evas_free(ecore_evases); + for (i = 0; i < 8; i++) + ecore_event_handler_del(ecore_evas_event_handlers[i]); + ecore_idle_enterer_del(ecore_evas_directfb_idle_enterer); + ecore_evas_directfb_idle_enterer = NULL; + if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_shutdown(); + } + if (_ecore_evas_init_count < 0) _ecore_evas_init_count = 0; + return _ecore_evas_init_count; } @@ -311,27 +311,27 @@ int _ecore_evas_directfb_init(void) { - _ecore_evas_init_count++; - if (_ecore_evas_init_count > 1) return _ecore_evas_init_count; - if (getenv("ECORE_EVAS_FPS_DEBUG")) _ecore_evas_fps_debug = 1; - ecore_evas_directfb_idle_enterer = ecore_idle_enterer_add(_ecore_evas_directfb_idle_enter, NULL); - if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_init(); - - ecore_evas_event_handlers[0] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_KEY_DOWN, _ecore_evas_directfb_event_key_down, NULL); - ecore_evas_event_handlers[1] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_KEY_UP, _ecore_evas_directfb_event_key_up, NULL); - ecore_evas_event_handlers[2] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_BUTTON_DOWN, _ecore_evas_directfb_event_button_down, NULL); - ecore_evas_event_handlers[3] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_BUTTON_UP, _ecore_evas_directfb_event_button_up, NULL); - ecore_evas_event_handlers[4] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_MOTION, _ecore_evas_directfb_event_motion, NULL); - ecore_evas_event_handlers[5] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_ENTER, _ecore_evas_directfb_event_enter, NULL); - ecore_evas_event_handlers[6] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_LEAVE, _ecore_evas_directfb_event_leave, NULL); - ecore_evas_event_handlers[7] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_WHEEL, _ecore_evas_directfb_event_wheel, NULL); - ecore_evas_event_handlers[8] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_GOT_FOCUS, _ecore_evas_directfb_event_got_focus, NULL); - ecore_evas_event_handlers[9] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_LOST_FOCUS, _ecore_evas_directfb_event_lost_focus, NULL); - ecore_evas_event_handlers[10] = NULL; - ecore_evas_event_handlers[11] = NULL; - ecore_evas_event_handlers[12] = NULL; - - return _ecore_evas_init_count; + _ecore_evas_init_count++; + if (_ecore_evas_init_count > 1) return _ecore_evas_init_count; + if (getenv("ECORE_EVAS_FPS_DEBUG")) _ecore_evas_fps_debug = 1; + ecore_evas_directfb_idle_enterer = ecore_idle_enterer_add(_ecore_evas_directfb_idle_enter, NULL); + if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_init(); + + ecore_evas_event_handlers[0] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_KEY_DOWN, _ecore_evas_directfb_event_key_down, NULL); + ecore_evas_event_handlers[1] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_KEY_UP, _ecore_evas_directfb_event_key_up, NULL); + ecore_evas_event_handlers[2] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_BUTTON_DOWN, _ecore_evas_directfb_event_button_down, NULL); + ecore_evas_event_handlers[3] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_BUTTON_UP, _ecore_evas_directfb_event_button_up, NULL); + ecore_evas_event_handlers[4] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_MOTION, _ecore_evas_directfb_event_motion, NULL); + ecore_evas_event_handlers[5] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_ENTER, _ecore_evas_directfb_event_enter, NULL); + ecore_evas_event_handlers[6] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_LEAVE, _ecore_evas_directfb_event_leave, NULL); + ecore_evas_event_handlers[7] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_WHEEL, _ecore_evas_directfb_event_wheel, NULL); + ecore_evas_event_handlers[8] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_GOT_FOCUS, _ecore_evas_directfb_event_got_focus, NULL); + ecore_evas_event_handlers[9] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_LOST_FOCUS, _ecore_evas_directfb_event_lost_focus, NULL); + ecore_evas_event_handlers[10] = NULL; + ecore_evas_event_handlers[11] = NULL; + ecore_evas_event_handlers[12] = NULL; + + return _ecore_evas_init_count; } /* engine functions */ @@ -340,198 +340,200 @@ static void _ecore_evas_directfb_free(Ecore_Evas *ee) { - ecore_directfb_window_del(ee->engine.directfb.window); - free(ee->engine.directfb.window); - ecore_evases_hash = evas_hash_del(ecore_evases_hash, _ecore_evas_directfb_winid_str_get(ee->engine.directfb.window->id), ee); - ecore_evases = _ecore_list2_remove(ecore_evases, ee); - _ecore_evas_directfb_shutdown(); - ecore_directfb_shutdown(); + + ecore_directfb_window_del(ee->engine.directfb.window); + free(ee->engine.directfb.window); + ecore_evases_hash = evas_hash_del(ecore_evases_hash, _ecore_evas_directfb_winid_str_get(ee->engine.directfb.window->id), ee); + ecore_evases = _ecore_list2_remove(ecore_evases, ee); + _ecore_evas_directfb_shutdown(); + ecore_directfb_shutdown(); } static void _ecore_evas_directfb_move(Ecore_Evas *ee, int x, int y) { - ecore_directfb_window_move(ee->engine.directfb.window, x, y); + ecore_directfb_window_move(ee->engine.directfb.window, x, y); } static void _ecore_evas_directfb_resize(Ecore_Evas *ee, int w, int h) { - if ((w == ee->w) && (h == ee->h)) return; - ecore_directfb_window_resize(ee->engine.directfb.window, w, h); - ee->w = w; - ee->h = h; - if ((ee->rotation == 90) || (ee->rotation == 270)) - { - evas_output_size_set(ee->evas, ee->h, ee->w); - evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w); - } - else - { - evas_output_size_set(ee->evas, ee->w, ee->h); - evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h); - } + if ((w == ee->w) && (h == ee->h)) return; + ecore_directfb_window_resize(ee->engine.directfb.window, w, h); + ee->w = w; + ee->h = h; + if ((ee->rotation == 90) || (ee->rotation == 270)) + { + evas_output_size_set(ee->evas, ee->h, ee->w); + evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w); + } + else + { + evas_output_size_set(ee->evas, ee->w, ee->h); + evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h); + } } static void _ecore_evas_directfb_focus_set(Ecore_Evas *ee, int on __UNUSED__) { - ecore_directfb_window_focus(ee->engine.directfb.window); + ecore_directfb_window_focus(ee->engine.directfb.window); + } static void _ecore_evas_directfb_hide(Ecore_Evas *ee) { - ecore_directfb_window_hide(ee->engine.directfb.window); - ee->should_be_visible = 0; + ecore_directfb_window_hide(ee->engine.directfb.window); + ee->should_be_visible = 0; } static void _ecore_evas_directfb_show(Ecore_Evas *ee) { - ecore_directfb_window_show(ee->engine.directfb.window); - ee->should_be_visible = 1; + ecore_directfb_window_show(ee->engine.directfb.window); + ee->should_be_visible = 1; } static void _ecore_evas_directfb_shaped_set(Ecore_Evas *ee, int shaped) { - if (((ee->shaped) && (shaped)) || ((!ee->shaped) && (!shaped))) - return; - ee->shaped = shaped; - if(ee->shaped) - ecore_directfb_window_shaped_set(ee->engine.directfb.window, 1); - else - ecore_directfb_window_shaped_set(ee->engine.directfb.window, 0); - + if (((ee->shaped) && (shaped)) || ((!ee->shaped) && (!shaped))) + return; + ee->shaped = shaped; + if(ee->shaped) + ecore_directfb_window_shaped_set(ee->engine.directfb.window, 1); + else + ecore_directfb_window_shaped_set(ee->engine.directfb.window, 0); + } static void _ecore_evas_directfb_cursor_set(Ecore_Evas *ee, const char *file, int layer __UNUSED__, int hot_x, int hot_y) { - int x, y; - - if (!file) - { - if (ee->prop.cursor.object) evas_object_del(ee->prop.cursor.object); + int x, y; + + if (!file) + { + if (ee->prop.cursor.object) evas_object_del(ee->prop.cursor.object); + if (ee->prop.cursor.file) free(ee->prop.cursor.file); + ee->prop.cursor.object = NULL; + ee->prop.cursor.file = NULL; + ee->prop.cursor.layer = 0; + ee->prop.cursor.hot.x = 0; + ee->prop.cursor.hot.y = 0; + ecore_directfb_window_cursor_show(ee->engine.directfb.window, 1); + return; + + } + ecore_directfb_window_cursor_show(ee->engine.directfb.window, 0); + if (!ee->prop.cursor.object) ee->prop.cursor.object = evas_object_image_add(ee->evas); if (ee->prop.cursor.file) free(ee->prop.cursor.file); - ee->prop.cursor.object = NULL; - ee->prop.cursor.file = NULL; - ee->prop.cursor.layer = 0; - ee->prop.cursor.hot.x = 0; - ee->prop.cursor.hot.y = 0; - ecore_directfb_window_cursor_show(ee->engine.directfb.window, 1); - return; - - } - ecore_directfb_window_cursor_show(ee->engine.directfb.window, 0); - if (!ee->prop.cursor.object) ee->prop.cursor.object = evas_object_image_add(ee->evas); - if (ee->prop.cursor.file) free(ee->prop.cursor.file); - ee->prop.cursor.file = strdup(file); - ee->prop.cursor.layer = layer; - ee->prop.cursor.hot.x = hot_x; - ee->prop.cursor.hot.y = hot_y; - evas_pointer_output_xy_get(ee->evas, &x, &y); - evas_object_layer_set(ee->prop.cursor.object, ee->prop.cursor.layer); - evas_object_color_set(ee->prop.cursor.object, 255, 255, 255, 255); - evas_object_move(ee->prop.cursor.object,x - ee->prop.cursor.hot.x,y - ee->prop.cursor.hot.y); - evas_object_image_file_set(ee->prop.cursor.object, ee->prop.cursor.file, NULL); - evas_object_image_size_get(ee->prop.cursor.object, &x, &y); - evas_object_resize(ee->prop.cursor.object, x, y); - evas_object_image_fill_set(ee->prop.cursor.object, 0, 0, x, y); - evas_object_pass_events_set(ee->prop.cursor.object, 1); - if (evas_pointer_inside_get(ee->evas)) - evas_object_show(ee->prop.cursor.object); + ee->prop.cursor.file = strdup(file); + ee->prop.cursor.layer = layer; + ee->prop.cursor.hot.x = hot_x; + ee->prop.cursor.hot.y = hot_y; + evas_pointer_output_xy_get(ee->evas, &x, &y); + evas_object_layer_set(ee->prop.cursor.object, ee->prop.cursor.layer); + evas_object_color_set(ee->prop.cursor.object, 255, 255, 255, 255); + evas_object_move(ee->prop.cursor.object,x - ee->prop.cursor.hot.x,y - ee->prop.cursor.hot.y); + evas_object_image_file_set(ee->prop.cursor.object, ee->prop.cursor.file, NULL); + evas_object_image_size_get(ee->prop.cursor.object, &x, &y); + evas_object_resize(ee->prop.cursor.object, x, y); + evas_object_image_fill_set(ee->prop.cursor.object, 0, 0, x, y); + evas_object_pass_events_set(ee->prop.cursor.object, 1); + if (evas_pointer_inside_get(ee->evas)) + evas_object_show(ee->prop.cursor.object); } static void _ecore_evas_directfb_fullscreen_set(Ecore_Evas *ee, int on) { - Evas_Engine_Info_DirectFB *einfo; - int w; - int h; - int resized = 0; - - if (((ee->prop.fullscreen) && (on)) || ((!ee->prop.fullscreen) && (!on))) - return; - - if (on) - ecore_directfb_window_fullscreen_set(ee->engine.directfb.window, 1); - else - ecore_directfb_window_fullscreen_set(ee->engine.directfb.window, 0); - /* set the new size of the evas */ - ecore_directfb_window_size_get(ee->engine.directfb.window, &w, &h); - if( (ee->w != w) || (ee->h != h)) - { - resized = 1; - ee->w = w; - ee->h = h; - if ((ee->rotation == 90) || (ee->rotation == 270)) - { - evas_output_size_set(ee->evas, ee->h, ee->w); - evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w); - } + Evas_Engine_Info_DirectFB *einfo; + int w; + int h; + int resized = 0; + + if (((ee->prop.fullscreen) && (on)) || ((!ee->prop.fullscreen) && (!on))) + return; + + if (on) + ecore_directfb_window_fullscreen_set(ee->engine.directfb.window, 1); else - { - evas_output_size_set(ee->evas, ee->w, ee->h); - evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h); - } - } - einfo = (Evas_Engine_Info_DirectFB *)evas_engine_info_get(ee->evas); - if(einfo) - { - einfo->info.surface = ee->engine.directfb.window->surface; - evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); - } - ee->prop.fullscreen = on; - if(resized) - { - if(ee->func.fn_resize) ee->func.fn_resize(ee); - } + ecore_directfb_window_fullscreen_set(ee->engine.directfb.window, 0); + /* set the new size of the evas */ + ecore_directfb_window_size_get(ee->engine.directfb.window, &w, &h); + if( (ee->w != w) || (ee->h != h)) + { + resized = 1; + ee->w = w; + ee->h = h; + if ((ee->rotation == 90) || (ee->rotation == 270)) + { + evas_output_size_set(ee->evas, ee->h, ee->w); + evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w); + } + else + { + evas_output_size_set(ee->evas, ee->w, ee->h); + evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h); + } + } + einfo = (Evas_Engine_Info_DirectFB *)evas_engine_info_get(ee->evas); + if(einfo) + { + einfo->info.surface = ee->engine.directfb.window->surface; + evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); + } + ee->prop.fullscreen = on; + if(resized) + { + if(ee->func.fn_resize) ee->func.fn_resize(ee); + } } static const Ecore_Evas_Engine_Func _ecore_directfb_engine_func = { - _ecore_evas_directfb_free, /* free an ecore_evas */ - NULL, /* cb resize */ - NULL, /* cb move */ - NULL, /* cb show */ - NULL, /* cb hide */ - NULL, /* cb delete request */ - NULL, /* cb destroy */ - NULL, /* cb focus in */ - NULL, /* cb focus out */ - NULL, /* cb mouse in */ - NULL, /* cb mouse out */ - NULL, /* cb pre render */ - NULL, /* cb post render */ - _ecore_evas_directfb_move, /* move */ - _ecore_evas_directfb_resize, /* resize */ - NULL, /* move resize */ - NULL,//_ecore_evas_directfb_rotation_set,/* rotation */ - _ecore_evas_directfb_shaped_set,/* shaped */ - _ecore_evas_directfb_show, /* show */ - _ecore_evas_directfb_hide, /* hide */ - NULL, /* raise */ - NULL, /* lower */ - NULL, /* title set */ - NULL, /* name class set */ - NULL, /* size min */ - NULL, /* size max */ - NULL, /* size base */ - NULL, /* size step */ - _ecore_evas_directfb_cursor_set,/* cursor set */ - NULL, /* layer set */ - _ecore_evas_directfb_focus_set, /* focus */ - NULL, /* iconified */ - NULL, /* borderless */ - NULL, /* override */ - NULL, /* maximized */ - _ecore_evas_directfb_fullscreen_set,/* fullscreen */ - NULL, /* avoid damage */ - NULL, /* withdrawn */ - NULL /* sticky */ + _ecore_evas_directfb_free, /* free an ecore_evas */ + NULL, /* cb resize */ + NULL, /* cb move */ + NULL, /* cb show */ + NULL, /* cb hide */ + NULL, /* cb delete request */ + NULL, /* cb destroy */ + NULL, /* cb focus in */ + NULL, /* cb focus out */ + NULL, /* cb mouse in */ + NULL, /* cb mouse out */ + NULL, /* cb pre render */ + NULL, /* cb post render */ + _ecore_evas_directfb_move, /* move */ + _ecore_evas_directfb_resize, /* resize */ + NULL, /* move resize */ + NULL,//_ecore_evas_directfb_rotation_set,/* rotation */ + _ecore_evas_directfb_shaped_set,/* shaped */ + _ecore_evas_directfb_show, /* show */ + _ecore_evas_directfb_hide, /* hide */ + NULL, /* raise */ + NULL, /* lower */ + NULL, /* title set */ + NULL, /* name class set */ + NULL, /* size min */ + NULL, /* size max */ + NULL, /* size base */ + NULL, /* size step */ + _ecore_evas_directfb_cursor_set,/* cursor set */ + NULL, /* layer set */ + _ecore_evas_directfb_focus_set, /* focus */ + NULL, /* iconified */ + NULL, /* borderless */ + NULL, /* override */ + NULL, /* maximized */ + _ecore_evas_directfb_fullscreen_set,/* fullscreen */ + NULL, /* avoid damage */ + NULL, /* withdrawn */ + NULL /* sticky */ }; #endif @@ -541,11 +543,7 @@ Ecore_DirectFB_Window * ecore_evas_directfb_window_get(Ecore_Evas *ee) { -#ifdef BUILD_ECORE_EVAS_DIRECTFB - return ee->engine.directfb.window; -#else - return NULL; -#endif + return ee->engine.directfb.window; } @@ -553,71 +551,71 @@ ecore_evas_directfb_new(const char *disp_name, int windowed, int x, int y, int w, int h) { #ifdef BUILD_ECORE_EVAS_DIRECTFB - Evas_Engine_Info_DirectFB *einfo; - Ecore_Evas *ee; - - Ecore_DirectFB_Window *window; - - - int rmethod; - - rmethod = evas_render_method_lookup("directfb"); - if (!rmethod) return NULL; - if (!ecore_directfb_init(disp_name)) return NULL; - ee = calloc(1, sizeof(Ecore_Evas)); - if (!ee) return NULL; - - ECORE_MAGIC_SET(ee, ECORE_MAGIC_EVAS); - _ecore_evas_directfb_init(); - ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_directfb_engine_func; - - ee->driver = strdup("directfb"); - if (disp_name) ee->name = strdup(disp_name); - - if (w < 1) w = 1; - - if (h < 1) h = 1; - - ee->rotation = 0; - ee->visible = 1; - ee->x = x; - ee->y = y; - ee->w = w; - ee->h = h; - ee->prop.layer = 1; - ee->prop.fullscreen = 0; - /*ee->prop.max.w = 0; - ee->prop.max.h = 0; - ee->prop.layer = 0; - ee->prop.focused = 1; - ee->prop.borderless = 0; - ee->prop.override = 1; - ee->prop.maximized = 0; - ee->prop.withdrawn = 0; - ee->prop.sticky = 0;*/ - //ee->prop.cursor.object = 0; + Evas_Engine_Info_DirectFB *einfo; + Ecore_Evas *ee; + + Ecore_DirectFB_Window *window; + + + int rmethod; + + rmethod = evas_render_method_lookup("directfb"); + if (!rmethod) return NULL; + if (!ecore_directfb_init(disp_name)) return NULL; + ee = calloc(1, sizeof(Ecore_Evas)); + if (!ee) return NULL; + + ECORE_MAGIC_SET(ee, ECORE_MAGIC_EVAS); + _ecore_evas_directfb_init(); + ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_directfb_engine_func; - /* init evas here */ - ee->evas = evas_new(); - evas_output_method_set(ee->evas, rmethod); - evas_output_size_set(ee->evas, w, h); - evas_output_viewport_set(ee->evas, 0, 0, w, h); - einfo = (Evas_Engine_Info_DirectFB *)evas_engine_info_get(ee->evas); + ee->driver = strdup("directfb"); + if (disp_name) ee->name = strdup(disp_name); + + if (w < 1) w = 1; - window = ecore_directfb_window_new(x,y,w,h); - ee->engine.directfb.window = window; - if (einfo) - { - einfo->info.dfb = ecore_directfb_interface_get(); - einfo->info.surface = window->surface; - einfo->info.flags = DSDRAW_BLEND; - evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); - } - ecore_evases = _ecore_list2_prepend(ecore_evases, ee); - ecore_evases_hash = evas_hash_add(ecore_evases_hash, _ecore_evas_directfb_winid_str_get(ee->engine.directfb.window->id), ee); + if (h < 1) h = 1; - return ee; + ee->rotation = 0; + ee->visible = 1; + ee->x = x; + ee->y = y; + ee->w = w; + ee->h = h; + ee->prop.layer = 1; + ee->prop.fullscreen = 0; + /*ee->prop.max.w = 0; + ee->prop.max.h = 0; + ee->prop.layer = 0; + ee->prop.focused = 1; + ee->prop.borderless = 0; + ee->prop.override = 1; + ee->prop.maximized = 0; + ee->prop.withdrawn = 0; + ee->prop.sticky = 0;*/ + //ee->prop.cursor.object = 0; + + /* init evas here */ + ee->evas = evas_new(); + evas_output_method_set(ee->evas, rmethod); + evas_output_size_set(ee->evas, w, h); + evas_output_viewport_set(ee->evas, 0, 0, w, h); + einfo = (Evas_Engine_Info_DirectFB *)evas_engine_info_get(ee->evas); + + window = ecore_directfb_window_new(x,y,w,h); + ee->engine.directfb.window = window; + if (einfo) + { + einfo->info.dfb = ecore_directfb_interface_get(); + einfo->info.surface = window->surface; + einfo->info.flags = DSDRAW_BLEND; + evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); + } + ecore_evases = _ecore_list2_prepend(ecore_evases, ee); + ecore_evases_hash = evas_hash_add(ecore_evases_hash, _ecore_evas_directfb_winid_str_get(ee->engine.directfb.window->id), ee); + + return ee; #else - return NULL; + return NULL; #endif }