예제 #1
0
static Eina_List *
load_layouts_from_path(Eina_List *layout_list, const char *path1,
                       const char *path2)
{
    char *f, *p;

    char *file = malloc(MaxBuffer);

    Eina_List *l, *ls;

    asprintf(&p, "%s/%s", path1, path2);

    ls = ecore_file_ls(p);
    EINA_LIST_FOREACH(ls, l, f) {
        char *s = strrchr(f, '.');

        if (!s || strcmp(s, ".ini"))
            continue;
		
        *s = '\0';
		
        snprintf(file, MaxBuffer, "%s/%s", path2, f);
		
        free(f);
		
        keys_t *keys = keys_alloc(file);
		
        if (!keys)
			continue;
		
		vk_layout_t *layout = malloc(sizeof(vk_layout_t));

		const char *str;

		str = keys_lookup(keys, "default", "name");
		layout->name = strdup(str);
		str = keys_lookup(keys, "default", "sname");
		layout->sname = strdup(str);

		layout->keys = keys;

		layout_list = eina_list_append(layout_list, layout);
    }
예제 #2
0
static bool _key_up(madshelf_state_t* state, Evas_Object* choicebox,
                      Evas_Event_Key_Up* ev)
{
    const char* action = keys_lookup(state->keys, "lists", ev->keyname);

    if(action && !strcmp(action, "ContextMenu"))
    {
        _open_screen_context_menu(state);
        return true;
    }

    if(action && !strcmp(action, "AltActivateCurrent"))
    {
        choicebox_activate_current(choicebox, true);
        return true;
    }

    return false;
}