예제 #1
0
Evas_Object *slideshow_create()
{
    _win = elm_win_add(win, "Slide show", ELM_WIN_BASIC);
    elm_win_autodel_set(_win, 1);
    elm_win_fullscreen_set(_win, 1);

    eyelight_smart = eyelight_object_add(evas_object_evas_get(_win));
    eyelight_object_presentation_file_set(eyelight_smart, eyelight_object_presentation_file_get(pres));
    evas_object_show(eyelight_smart);

    elm_win_resize_object_add(_win, eyelight_smart);

    container= evas_object_rectangle_add(evas_object_evas_get(_win));
    evas_object_color_set(container,0,0,0,0);
    evas_object_event_callback_add(container,EVAS_CALLBACK_KEY_DOWN, _slide_cb, NULL);
    evas_object_event_callback_add(container,EVAS_CALLBACK_MOUSE_MOVE, _mouse_event_cb, NULL);
    evas_object_event_callback_add(container,EVAS_CALLBACK_MOUSE_IN, _mouse_event_cb, NULL);
    evas_object_repeat_events_set(container,1);
    evas_object_show(container);
    elm_win_resize_object_add(_win, container);


    evas_object_raise(container);


    evas_object_show(_win);
    return _win;
}
예제 #2
0
파일: e_pattern_lock.c 프로젝트: Limsik/e17
EAPI int elm_main(int argc, char **argv) {
	Evas_Object *win=NULL, *bg=NULL, *pattern=NULL, *edje=NULL, *object=NULL, *item=NULL;
	Ecore_X_Window xwin, rootxwin;
	char theme[PATH_MAX];

	setlocale(LC_ALL, "");
	bindtextdomain(PACKAGE, LOCALEDIR);
	textdomain(PACKAGE);

	win = elm_win_add(NULL, "e_pattern_lock", ELM_WIN_BASIC);
	elm_win_autodel_set(win, EINA_TRUE);
	elm_win_maximized_set(win, EINA_TRUE); // change to full screen and above everything for lockscreen effect
	evas_object_size_hint_min_set(win, 480, 480);
	evas_object_size_hint_max_set(win, 640, 640);
	elm_win_fullscreen_set(win, EINA_TRUE);
	elm_win_sticky_set(win, EINA_TRUE);
	elm_win_keyboard_mode_set(win, ELM_WIN_KEYBOARD_OFF);
	elm_win_layer_set(win, INT_MAX);

	xwin = elm_win_xwindow_get(win);
	rootxwin = ecore_x_window_root_get(xwin);
	ecore_x_pointer_grab(xwin);
	ecore_x_keyboard_grab(rootxwin);

	bg = elm_bg_add(win);
	evas_object_size_hint_weight_set(bg, 1.0, 1.0);
	elm_win_resize_object_add(win, bg);
	evas_object_show(bg);

	snprintf(theme, sizeof(theme), "%s/themes/default.edj", PKGDATADIR);
    elm_theme_extension_add(NULL, theme);
    elm_theme_overlay_add(NULL, theme);

	pattern = elm_layout_add(win);

		elm_layout_file_set(pattern, theme, "e_lock/table/default");
		evas_object_size_hint_weight_set(pattern, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
		evas_object_size_hint_align_set(pattern, EVAS_HINT_FILL, EVAS_HINT_FILL);
		elm_win_resize_object_add(win, pattern);

		edje = elm_layout_edje_get(pattern);

		set_event_cbs(0, 0, "top_left");    set_event_cbs(1, 0, "top");    set_event_cbs(2, 0, "top_right");
		set_event_cbs(0, 1, "left");        set_event_cbs(1, 1, "center"); set_event_cbs(2, 1, "right");
		set_event_cbs(0, 2, "bottom_left"); set_event_cbs(1, 2, "bottom"); set_event_cbs(2, 2, "bottom_right");

	evas_object_show(pattern);

	evas_object_show(win);

    elm_run();

    elm_shutdown();

	return(0);
}
예제 #3
0
int
idle_screen_view_init()
{
	Evas_Object *win;
	int ret;

	ret = ui_utils_view_init(VIEW_PTR(view), ELM_WIN_BASIC, D_("Idle_Screen"),
				NULL, NULL, NULL);
	if (ret) {
		g_critical("Failed to init idle screen");
		return ret;
	}

	ui_utils_view_delete_callback_set(VIEW_PTR(view), _delete_cb);
	ui_utils_view_layout_set(VIEW_PTR(view), IDLE_SCREEN_THEME,
				"phoneui/idle_screen/idle_screen");

	edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)),
				"clock_init", "");

	win = ui_utils_view_window_get(VIEW_PTR(view));

	_set_edje_size();

	elm_win_fullscreen_set(win, 1);
	elm_win_layer_set(win, 200);
	elm_win_keyboard_mode_set(win, ELM_WIN_KEYBOARD_OFF);
	evas_object_show(view.wallpaper);

	edje_object_signal_callback_add(ui_utils_view_layout_get(VIEW_PTR(view)), "unlockScreen",
					"slider", idle_screen_view_hide,
					NULL);

	phoneui_info_register_and_request_resource_status(_resource_status, NULL);
	phoneui_info_register_and_request_network_status(_network_status, NULL);
	phoneui_info_register_and_request_signal_strength(_signal_strength, NULL);
	phoneui_info_register_backlight_power(_backlight_power, NULL);
	phoneui_info_register_and_request_pdp_context_status(_pdp_context_status, NULL);
	phoneui_info_register_and_request_profile_changes(_profile_change, NULL);
	phoneui_info_register_and_request_capacity_changes(_capacity_change, NULL);
	phoneui_info_register_and_request_missed_calls(_missed_calls, NULL);
	phoneui_info_register_and_request_unread_messages(_unread_messages, NULL);
	phoneui_info_register_and_request_unfinished_tasks(_unfinished_tasks, NULL);

	return 0;
}
예제 #4
0
static Eina_Bool
_input_events_cb(void *data, enna_input event)
{
    Smart_Data *sd = data;

    if (!sd) return ENNA_EVENT_CONTINUE;

    if (event == ENNA_INPUT_FULLSCREEN)
    {
        enna->run_fullscreen = ~enna->run_fullscreen;
        elm_win_fullscreen_set(enna->win, enna->run_fullscreen);
        return ENNA_EVENT_BLOCK;
    }

    /* check for volume control bindings */
    if (event == ENNA_INPUT_MUTE)
    {
      enna_mediaplayer_mute();
      enna_volume_notification_show(sd->o_volume);
      return ENNA_EVENT_BLOCK;
    }
    else if (event == ENNA_INPUT_VOLPLUS)
    {
      enna_mediaplayer_default_increase_volume();
      enna_volume_notification_show(sd->o_volume);
      return ENNA_EVENT_BLOCK;
    }
    else if (event == ENNA_INPUT_VOLMINUS)
    {
      enna_mediaplayer_default_decrease_volume();
      enna_volume_notification_show(sd->o_volume);
      return ENNA_EVENT_BLOCK;
    }

    if (sd->visible)
    {
        switch (event)
        {
            case ENNA_INPUT_RIGHT:
            case ENNA_INPUT_LEFT:
            case ENNA_INPUT_UP:
            case ENNA_INPUT_DOWN:
            case ENNA_INPUT_OK:
                enna_box_input_feed(sd->o_menu, event);
                return ENNA_EVENT_BLOCK;
                break;
            case ENNA_INPUT_BACK:
                return ENNA_EVENT_BLOCK;
            default:
                break;
        }
    }
    else if (event == ENNA_INPUT_HOME)
    {
        enna_content_hide();
        enna_mainmenu_show(sd->o_menu);
        return ENNA_EVENT_BLOCK;
    }
    if (!sd->visible)
    {
        Enna_File *f = enna_mainmenu_selected_activity_get(sd->o_menu);
        enna_activity_event(enna_activity_get(f->name), event);
    }

    return ENNA_EVENT_CONTINUE;
}
예제 #5
0
ApplicationMain::ApplicationMain(int argc, char **argv)
{
    cInfo() <<  "Calaos Home, starting...";

    if (system("killall -9 eskiss 2> /dev/null") == -1)
        cCritical() <<  "Error forking !";

    //init random generator
    srand(time(NULL));

    //Init SSL and CURL
    SSL_load_error_strings();
    SSL_library_init();
    curl_global_init(CURL_GLOBAL_ALL);

    char *themefile = argvOptionParam(argv, argv + argc, "--theme");
    if (themefile)
    {
        ApplicationMain::theme = themefile;
        cInfo() <<  "Using specified theme file: " << ApplicationMain::getTheme();
    }
    else
    {
        ApplicationMain::theme = Prefix::Instance().dataDirectoryGet() + "/default.edj";
        if (ecore_file_exists(ApplicationMain::theme.c_str()))
            cInfo() << "Using theme file " << theme;
        else
            cError() << theme << " Not found!";
    }

    //Init efl core
    if (!eina_init())
        throw (runtime_error("Unable to init Eina"));
    if (!ecore_init())
        throw (runtime_error("Unable to init Ecore"));
    if (!ecore_con_init())
        throw (runtime_error("Unable to init Ecore-Con"));
    if (!ecore_con_url_init())
        throw (runtime_error("Unable to init Ecore-Con-Url"));
    if (!evas_init())
        throw (runtime_error("Unable to init Evas"));
    if (!ecore_evas_init())
        throw (runtime_error("Unable to init Ecore-Evas"));
    if (!edje_init())
        throw (runtime_error("Unable to init Edje"));

    edje_frametime_set(1.0 / 60.0);
    edje_scale_set(1.0);

    if (!elm_init(argc, argv))
        throw (runtime_error("Unable to init Elementary"));

    //Load Calaos specific ELM extensions
    elm_theme_extension_add(NULL, ApplicationMain::getTheme());

    //Create the main window
    window = elm_win_add(NULL, "calaos-home", ELM_WIN_BASIC);
    elm_win_title_set(window, "Calaos Home");
    elm_win_borderless_set(window, true);

    bool bFullscreen = argvOptionCheck(argv, argv + argc, "--fullscreen");
    elm_win_fullscreen_set(window, bFullscreen);

    //Automatically quit main loop when the window is closed
    elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
    elm_win_autodel_set(window, true);

    if (argvOptionCheck(argv, argv + argc, "--set-elm-config"))
    {
        //force setting the correct elementary options for touchscreen
        elm_config_finger_size_set(10);
        elm_config_scroll_bounce_enabled_set(true);
        elm_config_scroll_thumbscroll_enabled_set(true);
        elm_config_scroll_thumbscroll_threshold_set(24);
        elm_config_scroll_thumbscroll_momentum_threshold_set(100.0);
        elm_config_scroll_bounce_friction_set(0.5);
        elm_config_scroll_page_scroll_friction_set(0.5);
        elm_config_scroll_bring_in_scroll_friction_set(0.5);
        elm_config_scroll_zoom_friction_set(0.5);
        elm_config_scroll_thumbscroll_friction_set(1.0);
        elm_config_scroll_thumbscroll_border_friction_set(0.5);
        elm_config_scroll_thumbscroll_sensitivity_friction_set(0.25);
    }

    evas_object_event_callback_add(window, EVAS_CALLBACK_RESIZE, _window_resize_cb, this);
    evas = evas_object_evas_get(window);

    Evas_Object *bg = elm_bg_add(window);
    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    elm_win_resize_object_add(window, bg);
    evas_object_show(bg);
    evas_object_size_hint_min_set(bg, 200, 200);
    elm_bg_color_set(bg, 0, 0, 0);

    layout = elm_layout_add(window);
    if (!elm_layout_file_set(layout, ApplicationMain::getTheme(), EDJE_GROUP_MAIN_LAYOUT))
    {
        string e = "Unable to find group \"";
        e += EDJE_GROUP_MAIN_LAYOUT;
        e += "\" in theme \"";
        e += ApplicationMain::getTheme();
        e += "\"";
        throw (runtime_error(e));
    }

    //create the screen suspend object and put it on the canvas
    ScreenSuspendView *screen_suspend = new ScreenSuspendView(evas, window);
    screen_suspend->Show();
    screen_suspend->setAutoDelete(true);

    evas_object_size_hint_weight_set(layout, 1.0, 1.0);
    evas_object_show(layout);

    evas_object_resize(window, 1024, 768);
    evas_object_show(window);
    ecore_evas_focus_set(ecore_evas_ecore_evas_get(evas_object_evas_get(window)), true);

    Resize();

    try
    {
        controller = new ApplicationController(evas, layout);
    }
    catch(exception const& e)
    {
        cCritical() <<  "Can't create ApplicationController";
        throw;
    }
}