Пример #1
0
static inline WebEvent::Modifiers modifiersForEvent(const Evas_Modifier* modifiers)
{
    unsigned result = 0;

    if (evas_key_modifier_is_set(modifiers, "Shift"))
        result |= WebEvent::ShiftKey;
    if (evas_key_modifier_is_set(modifiers, "Control"))
        result |= WebEvent::ControlKey;
    if (evas_key_modifier_is_set(modifiers, "Alt"))
        result |= WebEvent::AltKey;
    if (evas_key_modifier_is_set(modifiers, "Meta"))
        result |= WebEvent::MetaKey;

    return static_cast<WebEvent::Modifiers>(result);
}
Пример #2
0
PlatformKeyboardEvent::PlatformKeyboardEvent(const Evas_Event_Key_Up* ev)
    : m_type(KeyUp)
    , m_text(String::fromUTF8(ev->string))
    , m_shiftKey(evas_key_modifier_is_set(ev->modifiers, "Shift"))
    , m_ctrlKey(evas_key_modifier_is_set(ev->modifiers, "Control"))
    , m_altKey(evas_key_modifier_is_set(ev->modifiers, "Alt"))
    , m_metaKey(evas_key_modifier_is_set(ev->modifiers, "Meta"))
{
    String keyName = String(ev->key);
    m_keyIdentifier = keyIdentifierForEvasKeyName(keyName);
    m_windowsVirtualKeyCode = windowsKeyCodeForEvasKeyName(keyName);

    // FIXME:
    m_isKeypad = false;
    m_autoRepeat = false;
}
Пример #3
0
static void
_mouse_wheel(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
	smart_slider_t *priv = data;
	Evas_Event_Mouse_Wheel *ev = event_info;

	if(priv->disabled)
		return;

	float scale;
	if(priv->integer)
	{
		scale = priv->scale;
	}
	else
	{
		scale = evas_key_modifier_is_set(ev->modifiers, SMART_SLIDER_MODIFIER)
			? 0.001 // 1000 steps
			: 0.01; // 100 steps
	}

	float rel = scale * ev->z;

	priv->drag += rel;
	if(priv->drag > 1.f)
		priv->drag = 1.f;
	else if(priv->drag < 0.f)
		priv->drag = 0.f;

	if(_smart_slider_value_flush(obj))
		evas_object_smart_callback_call(obj, SMART_SLIDER_CHANGED, NULL);
}
Пример #4
0
static void
_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
	smart_slider_t *priv = data;
	Evas_Event_Mouse_Move *ev = event_info;

	if(priv->disabled)
		return;

	if(priv->grabbed)
	{
		float dx = ev->cur.output.x - ev->prev.output.x;
		float dy = ev->cur.output.y - ev->prev.output.y;

		float scale = evas_key_modifier_is_set(ev->modifiers, SMART_SLIDER_MODIFIER)
			? 0.0001 // 10000 steps
			: 0.001; // 1000 steps

		float rel = (fabs(dx) > fabs(dy) ? dx : dy) * scale;

		priv->drag += rel;
		if(priv->drag > 1.f)
			priv->drag = 1.f;
		else if(priv->drag < 0.f)
			priv->drag = 0.f;
	
		if(_smart_slider_value_flush(obj))
			evas_object_smart_callback_call(obj, SMART_SLIDER_CHANGED, NULL);
	}
}
Пример #5
0
static void
bg_mouse_down(void *data, Evas *_e, Evas_Object *_o, void *event_info)
{
    Drawing            *d;
    double              x, y, _x, _y;
    Evas_Coord          ex, ey, ew, eh;
    int                 shift_state, ctrl_state;
    int 		_b;
    Evas_Event_Mouse_Down * em = (Evas_Event_Mouse_Down*) event_info;

    if (!shell)
        return;
    if (!shell->evas)
        return;

    _b = em->button;
    shift_state = evas_key_modifier_is_set(em->modifiers, "Shift"); 
    ctrl_state = evas_key_modifier_is_set(em->modifiers, "Control");

    evas_output_viewport_get(shell->evas, &ex, &ey, &ew, &eh);
    d = drawing;
    if (!d)
        return;
    _x = em->canvas.x;
    _y = em->canvas.y;

    if (!ctrl_state && (_b == 1))
      {
          x = _x / d->scale - d->x;
          y = -(_y - eh - ey) / d->scale - d->y;
          gra_pre_draw_mouse_click(x, y);
      }

    if (!shift_state && !ctrl_state && (_b == 3))
      {
          menu_box_show(DUP("context.menu"), (double)_x + 1, (double)_y + 1, 1);
      }

    if (_b == 2)
        shell_drag_start(_x, _y);
    if (ctrl_state && (_b == 1))
        shell_zoom(_x, _y);
    if (ctrl_state && (_b == 3))
        shell_unzoom(_x, _y);     
}
Пример #6
0
static void
_nav_refresh_cb(void *data, Evas_Object *obj, void *event_info)
{
   App_Data *ad = data;
   const Evas_Modifier *mods = evas_key_modifier_get(evas_object_evas_get(obj));

   if (evas_key_modifier_is_set(mods, "Shift"))
     elm_web_reload_full(ad->current_tab->web);
   else
     elm_web_reload(ad->current_tab->web);
}
Пример #7
0
static Eina_Bool
_mods_check(Shortcut *sc, Evas_Event_Key_Down *ev)
{
    Eina_Bool meta;

    CHECK(sc->mods.ctrl, "Control");
    CHECK(sc->mods.alt, "Alt");
    CHECK(sc->mods.shift, "Shift");
    CHECK(sc->mods.win, "Super");
    CHECK(sc->mods.hyper, "hyper")

    meta = evas_key_modifier_is_set(ev->modifiers, "Meta") ||
           evas_key_modifier_is_set(ev->modifiers, "AltGr") ||
           evas_key_modifier_is_set(ev->modifiers, "ISO_Level3_Shift");

    if (sc->mods.meta && !meta)
      return EINA_FALSE;

    return EINA_TRUE;

}
Пример #8
0
PlatformKeyboardEvent::PlatformKeyboardEvent(const Evas_Event_Key_Up* event)
    : PlatformEvent(PlatformEvent::KeyUp, evas_key_modifier_is_set(event->modifiers, "Shift"), evas_key_modifier_is_set(event->modifiers, "Control"), evas_key_modifier_is_set(event->modifiers, "Alt"), evas_key_modifier_is_set(event->modifiers, "Meta"), currentTime())
    , m_text(singleCharacterString(String::fromUTF8(event->string)))
    , m_unmodifiedText(singleCharacterString(String::fromUTF8(event->string)))
    , m_keyIdentifier(keyIdentifierForEvasKeyName(String(event->key)))
    , m_windowsVirtualKeyCode(windowsKeyCodeForEvasKeyName(String(event->key)))
    , m_nativeVirtualKeyCode(0)
    , m_macCharCode(0)
    , m_autoRepeat(false)
    , m_isKeypad(false)
    , m_isSystemKey(false)
{
}
Пример #9
0
/* Converts the Evas modifiers to Ecore_IMF keyboard modifiers */
static void
_ecore_imf_evas_event_modifiers_wrap(Evas_Modifier *evas_modifiers,
                                     Ecore_IMF_Keyboard_Modifiers *imf_keyboard_modifiers)
{
   if (!evas_modifiers || !imf_keyboard_modifiers)
     return;

   *imf_keyboard_modifiers = ECORE_IMF_KEYBOARD_MODIFIER_NONE;
   if (evas_key_modifier_is_set(evas_modifiers, "Control"))
     *imf_keyboard_modifiers |= ECORE_IMF_KEYBOARD_MODIFIER_CTRL;
   if (evas_key_modifier_is_set(evas_modifiers, "Alt"))
     *imf_keyboard_modifiers |= ECORE_IMF_KEYBOARD_MODIFIER_ALT;
   if (evas_key_modifier_is_set(evas_modifiers, "Shift"))
     *imf_keyboard_modifiers |= ECORE_IMF_KEYBOARD_MODIFIER_SHIFT;
   if (evas_key_modifier_is_set(evas_modifiers, "Super") || evas_key_modifier_is_set(evas_modifiers, "Hyper"))
     *imf_keyboard_modifiers |= ECORE_IMF_KEYBOARD_MODIFIER_WIN;
   if (evas_key_modifier_is_set(evas_modifiers, "AltGr"))
     *imf_keyboard_modifiers |= ECORE_IMF_KEYBOARD_MODIFIER_ALTGR;
}
Пример #10
0
static void
_win_search_trigger_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
   Evas_Event_Key_Down *ev = event_info;
   App_Data *ad = data;
   Evas_Object *box, *box2, *entry, *btn, *ic;

   if (strcmp(ev->keyname, "f") ||
       !evas_key_modifier_is_set(ev->modifiers, "Control"))
     return;
   if (ad->search_box || !ad->current_tab)
     return;

   box = elm_box_add(ad->win);
   elm_box_horizontal_set(box, EINA_TRUE);
   evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, 0.0);
   evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
   elm_box_pack_after(ad->main_box, box, ad->url);
   evas_object_show(box);

   evas_object_event_callback_add(box, EVAS_CALLBACK_DEL, _search_box_del_cb,
                                  ad);

   entry = elm_entry_add(ad->win);
   elm_entry_single_line_set(entry, EINA_TRUE);
   elm_entry_scrollable_set(entry, EINA_TRUE);
   evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
   elm_box_pack_end(box, entry);
   evas_object_show(entry);

   evas_object_smart_callback_add(entry, "changed", _search_entry_changed_cb,
                                  ad);
   evas_object_smart_callback_add(entry, "activated", _search_entry_activate_cb,
                                  ad);

   box2 = elm_box_add(ad->win);
   elm_box_horizontal_set(box2, EINA_TRUE);
   elm_object_part_content_set(entry, "end", box2);

   btn = elm_button_add(ad->win);
   elm_box_pack_end(box2, btn);
   evas_object_show(btn);

   ic = elm_icon_add(ad->win);
   elm_icon_standard_set(ic, "arrow_up");
   elm_object_part_content_set(btn, "icon", ic);

   evas_object_smart_callback_add(btn, "clicked", _search_prev_cb, ad);

   btn = elm_button_add(ad->win);
   elm_box_pack_end(box2, btn);
   evas_object_show(btn);

   ic = elm_icon_add(ad->win);
   elm_icon_standard_set(ic, "arrow_down");
   elm_object_part_content_set(btn, "icon", ic);

   evas_object_smart_callback_add(btn, "clicked", _search_next_cb, ad);

   btn = elm_button_add(ad->win);
   elm_box_pack_end(box, btn);
   evas_object_show(btn);

   ic = elm_icon_add(ad->win);
   elm_icon_standard_set(ic, "close");
   elm_object_part_content_set(btn, "icon", ic);

   evas_object_smart_callback_add(btn, "clicked", _search_close_cb, ad);

   ad->search_box = box;
   ad->search_entry = entry;

   elm_object_focus_set(entry, EINA_TRUE);
}