static int current_desk = 0;
static void e_idle(void *data);
+static void e_key_down(Eevent * ev);
+static void e_key_up(Eevent * ev);
static void e_mouse_down(Eevent * ev);
static void e_mouse_up(Eevent * ev);
static void e_mouse_in(Eevent * ev);
UN(data);
}
+/* handling key down events */
+static void
+e_key_down(Eevent * ev)
+{
+ Ev_Key_Down *e;
+
+ e = ev->event;
+ {
+ Evas_List l;
+
+ for (l = desktops; l; l = l->next)
+ {
+ E_Desktop *desk;
+
+ desk = l->data;
+
+ if (desk->win.desk == e->win)
+ {
+ if (!strcmp(e->key, "Up"))
+ {
+ }
+ else if (!strcmp(e->key, "Down"))
+ {
+ }
+ else if (!strcmp(e->key, "Left"))
+ {
+ }
+ else if (!strcmp(e->key, "Right"))
+ {
+ }
+ else if (!strcmp(e->key, "Escape"))
+ {
+ }
+ else
+ {
+ /* infact we should pass this onto the view handling */
+ /* this desktop here */
+ char *type;
+
+ type = e_key_press_translate_into_typeable(e);
+ if (type)
+ {
+ }
+ }
+ }
+ }
+ }
+}
+
+/* handling key up events */
+static void
+e_key_up(Eevent * ev)
+{
+ Ev_Key_Up *e;
+
+ e = ev->event;
+ {
+ Evas_List l;
+
+ for (l = desktops; l; l = l->next)
+ {
+ E_Desktop *desk;
+
+ desk = l->data;
+
+ if (desk->win.desk == e->win)
+ {
+ }
+ }
+ }
+}
+
/* handling mouse down events */
static void
e_mouse_down(Eevent * ev)
Evas evas;
int x, y;
+ /* focus handling for desktop */
+ e_focus_to_window(e->win);
evas = desk->evas.desk;
e_window_get_root_relative_location(evas_get_window(evas),
&x, &y);
e_event_filter_handler_add(EV_MOUSE_IN, e_mouse_in);
e_event_filter_handler_add(EV_MOUSE_OUT, e_mouse_out);
e_event_filter_handler_add(EV_WINDOW_EXPOSE, e_window_expose);
+ e_event_filter_handler_add(EV_KEY_DOWN, e_key_down);
+ e_event_filter_handler_add(EV_KEY_UP, e_key_up);
e_event_filter_idle_handler_add(e_idle, NULL);
e_icccm_advertise_e_compat();
evas_get_visual(desk->evas.desk), evas_get_colormap(desk->evas.desk));
e_window_set_background_pixmap(desk->win.desk, desk->evas.pmap);
/* normal stuff */
- e_window_set_events(desk->win.desk, XEV_EXPOSE | XEV_MOUSE_MOVE | XEV_BUTTON | XEV_IN_OUT);
+ e_window_set_events(desk->win.desk, XEV_EXPOSE | XEV_MOUSE_MOVE | XEV_BUTTON | XEV_IN_OUT | XEV_KEY);
e_window_show(desk->win.desk);
{
Evas_Object o;
typedef struct _E_Rect E_Rect;
typedef struct _E_Active_Action_Timer E_Active_Action_Timer;
typedef struct _E_View E_View;
-
+typedef struct _E_Menu E_Menu;
+typedef struct _E_Menu_Item E_Menu_Item;
+
struct _E_Object
{
OBJ_PROPERTIES;
OBJ_PROPERTIES;
};
+struct _E_Menu
+{
+ OBJ_PROPERTIES;
+
+ Window win;
+};
+
+struct _E_Menu_Item
+{
+ OBJ_PROPERTIES;
+};
+
void e_action_add_proto(char *action,
void (*func_start) (void *o, E_Action *a, void *data, int x, int y, int rx, int ry),
void (*func_stop) (void *o, E_Action *a, void *data, int x, int y, int rx, int ry),
--- /dev/null
+#include "e.h"
+
+static Evas_List open_menus = NULL;
+static Evas_list menus = NULL;
+
+static void e_idle(void *data);
+static void e_key_down(Eevent * ev);
+static void e_key_up(Eevent * ev);
+static void e_mouse_down(Eevent * ev);
+static void e_mouse_up(Eevent * ev);
+static void e_mouse_in(Eevent * ev);
+static void e_mouse_out(Eevent * ev);
+static void e_window_expose(Eevent * ev);
+
+static void
+e_idle(void *data)
+{
+ Evas_List l;
+
+ for (l = menus; l; l = l->next)
+ {
+ E_Menu *m;
+
+ m = l->data;
+ e_menu_update(m);
+ }
+ e_db_runtime_flush();
+ return;
+ UN(data);
+}
+
+static void
+e_key_down(Eevent * ev)
+{
+ Ev_Key_Down *e;
+
+ e = ev->event;
+ {
+ if (!strcmp(e->key, "Up"))
+ {
+ }
+ else if (!strcmp(e->key, "Down"))
+ {
+ }
+ else if (!strcmp(e->key, "Left"))
+ {
+ }
+ else if (!strcmp(e->key, "Right"))
+ {
+ }
+ else if (!strcmp(e->key, "Escape"))
+ {
+ }
+ else
+ {
+ }
+ }
+}
+
+static void
+e_key_up(Eevent * ev)
+{
+ Ev_Key_Up *e;
+
+ e = ev->event;
+ {
+ }
+}
+
+E_Menu *
+e_menu_new(void)
+{
+}
+
+void
+e_menu_free(E_Menu *m)
+{
+}
+
+void
+e_menu_hide(E_Menu *m)
+{
+}
+
+void
+e_menu_show(E_Menu *m)
+{
+}
+
+void
+e_menu_move_to(E_Menu *m, int x, int y)
+{
+}
+
+void
+e_menu_show_at_mouse(E_Menu *m, int x, int y)
+{
+}
+
+void
+e_menu_add_item(E_Menu *m, E_Menu_Item *mi)
+{
+}
+
+void
+e_menu_del_item(E_Menu *m, E_Menu_Item *mi)
+{
+}
+
+void
+e_menu_update(E_Menu *m)
+{
+}