static void switchMonitorOnAndPopTopPage() { Factory< PageManager >::get( Slicer::getGroup() )->hidePage(); Factory< Timer >::get( "Timer" )->resume(); ecore_x_dpms_enabled_set( 0 ); ecore_x_randr_screen_backlight_level_set( ecore_x_window_root_get( ecore_x_window_focus_get() ) , 1.0 ); }
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); }
static void switchMonitorOffAndShowSwitchOnPage() { auto page_mgr = Factory< PageManager >::get( Slicer::getGroup() ); page_mgr->hidePage(); page_mgr->showPage( "Monitor On Switch" ); Factory< Timer >::get( "Timer" )->suspend(); ecore_x_dpms_timeout_standby_set( 1 ); ecore_x_dpms_enabled_set( 1 ); ecore_x_randr_screen_backlight_level_set( ecore_x_window_root_get( ecore_x_window_focus_get() ) , 0.0 ); }
Ecore_X_Screen_Size get_screen_size(Ecore_Evas *ee) { Ecore_X_Window child = ecore_evas_software_x11_window_get(ee); Ecore_X_Window root = ecore_x_window_root_get(child); /* * Supposedly, you have to call these. But ecore_x doesn't export * them! And it works without, so, whatever. */ //ecore_x_randr_get_screen_info_prefetch(root); //ecore_x_randr_get_screen_info_fetch(); Ecore_X_Screen_Size size = ecore_x_randr_current_screen_size_get(root); double aspect = (double)size.width / size.height; if (fabs(aspect - 8.0/3) < 0.1) { // kluge: must be two 4:3 monitors, i.e., dero's setup. really // need to get size of single destkop... size.width /= 2; } return size; }
static void _set_edje_size() { Evas_Object *win; Ecore_X_Window root_window; int width, height; win = ui_utils_view_window_get(VIEW_PTR(view)); /* get screensize */ root_window = ecore_x_window_root_get (elm_win_xwindow_get (win)); ecore_x_window_size_get (root_window, &width, &height); if (height <= 480) { edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), "set", "hvga"); } else { edje_object_signal_emit(ui_utils_view_layout_get(VIEW_PTR(view)), "set", "default"); } }
static Eina_Bool _ecore_imf_context_xim_filter_event(Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type, Ecore_IMF_Event *event) { EINA_LOG_DBG("%s in", __FUNCTION__); #ifdef ENABLE_XIM Ecore_IMF_Context_Data *imf_context_data; XIC ic; Ecore_X_Display *dsp; Ecore_X_Window win; int val; char compose_buffer[256]; KeySym sym; char *compose = NULL; char *tmp = NULL; Eina_Bool result = EINA_FALSE; imf_context_data = ecore_imf_context_data_get(ctx); if (!imf_context_data) return EINA_FALSE; ic = imf_context_data->ic; if (!ic) ic = get_ic(ctx); if (type == ECORE_IMF_EVENT_KEY_DOWN) { XKeyPressedEvent xev; Ecore_IMF_Event_Key_Down *ev = (Ecore_IMF_Event_Key_Down *)event; EINA_LOG_DBG("ECORE_IMF_EVENT_KEY_DOWN"); dsp = ecore_x_display_get(); win = imf_context_data->win; xev.type = KeyPress; xev.serial = 0; /* hope it doesn't matter */ xev.send_event = 0; xev.display = dsp; xev.window = win; xev.root = ecore_x_window_root_get(win); xev.subwindow = win; xev.time = ev->timestamp; xev.x = xev.x_root = 0; xev.y = xev.y_root = 0; xev.state = 0; xev.state |= _ecore_x_event_reverse_modifiers(ev->modifiers); xev.state |= _ecore_x_event_reverse_locks(ev->locks); xev.keycode = _keycode_get(dsp, ev->keyname); xev.same_screen = True; if (ic) { Status mbstatus; #ifdef X_HAVE_UTF8_STRING val = Xutf8LookupString(ic, &xev, compose_buffer, sizeof(compose_buffer) - 1, &sym, &mbstatus); #else /* ifdef X_HAVE_UTF8_STRING */ val = XmbLookupString(ic, &xev, compose_buffer, sizeof(compose_buffer) - 1, &sym, &mbstatus); #endif /* ifdef X_HAVE_UTF8_STRING */ if (mbstatus == XBufferOverflow) { tmp = malloc(sizeof (char) * (val + 1)); if (!tmp) return EINA_FALSE; compose = tmp; #ifdef X_HAVE_UTF8_STRING val = Xutf8LookupString(ic, &xev, tmp, val, &sym, &mbstatus); #else /* ifdef X_HAVE_UTF8_STRING */ val = XmbLookupString(ic, &xev, tmp, val, &sym, &mbstatus); #endif /* ifdef X_HAVE_UTF8_STRING */ if (val > 0) { tmp[val] = '\0'; #ifndef X_HAVE_UTF8_STRING compose = eina_str_convert(nl_langinfo(CODESET), "UTF-8", tmp); free(tmp); tmp = compose; #endif /* ifndef X_HAVE_UTF8_STRING */ } else compose = NULL; } else if (val > 0) { compose_buffer[val] = '\0'; #ifdef X_HAVE_UTF8_STRING compose = strdup(compose_buffer); #else /* ifdef X_HAVE_UTF8_STRING */ compose = eina_str_convert(nl_langinfo(CODESET), "UTF-8", compose_buffer); #endif /* ifdef X_HAVE_UTF8_STRING */ } } else { compose = strdup(ev->compose); } if (compose) { Eina_Unicode *unicode; int len; unicode = eina_unicode_utf8_to_unicode(compose, &len); if (!unicode) abort(); if (unicode[0] >= 0x20 && unicode[0] != 0x7f) { ecore_imf_context_commit_event_add(ctx, compose); ecore_imf_context_event_callback_call(ctx, ECORE_IMF_CALLBACK_COMMIT, compose); result = EINA_TRUE; } free(compose); free(unicode); } } return result; #else (void)ctx; (void)type; (void)event; return EINA_FALSE; #endif }