Enlightenment CVS committal

Author  : rbdpngn
Project : e17
Module  : libs/ebg

Dir     : e17/libs/ebg/test


Modified Files:
        e_bg_test.c 


Log Message:
More merging spam.

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ebg/test/e_bg_test.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- e_bg_test.c 28 Feb 2002 21:14:02 -0000      1.4
+++ e_bg_test.c 14 Jan 2003 22:47:41 -0000      1.5
@@ -1,8 +1,10 @@
 /***************************************************************************
- * e_bg_test.c
+ * e_bg_test2.c
  **************************************************************************/
 #include<Ebg.h>
+#include<Evas.h>
 #include<Ecore.h>
+#include <Evas_Engine_Software_X11.h>
 
 /* window options */
 #define WINDOW_NAME  "E_bg_Test"
@@ -12,7 +14,7 @@
 #define WINDOW_MIN_W 150
 #define WINDOW_MIN_H 150
 
-#define EBG_MESSAGE_SIZE  256 
+#define EBG_MESSAGE_SIZE  256
 #define EBG_BUF_SIZE     1024
 
 /* evas options */
@@ -20,330 +22,328 @@
 #define IMAGE_CACHE_IN_MB 4
 #define FONT_CACHE_IN_MB 1
 
-/* globals */
-Evas evas;
-E_Background bg;
-Evas_Object ot, ol, ol2, ol3, ol4;
-Evas_List bg_list, bg_current;
+Evas_List *filelist = NULL, *current = NULL;
 Window main_win;
-int win_w, win_h, current_layer, current_stack_req;
+Evas *evas;
+E_Background bg;
+int current_layer = 0, current_stack_req;
+
+static Window
+e_evas_get_window(Evas * e)
+{
+   Evas_Engine_Info_Software_X11 *einfo;
+
+   einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas);
+   return (einfo->info.drawable);
+}
 
-/* protos */
-static void try_bg_load_next(void);
-static void try_bg_load_prev(void);
-/* Ecore Callbacks */
 static void
 e_idle(void *data)
-{ evas_render(evas); }
+{
+   evas_render(evas);
+}
 
 static void
-e_window_expose(Ecore_Event *ev)
+e_window_expose(Ecore_Event * ev)
 {
-       Ecore_Event_Window_Expose *e;
+   Ecore_Event_Window_Expose *e;
 
-       e = (Ecore_Event_Window_Expose*)ev->event;
-       evas_update_rect(evas, e->x, e->y, e->w, e->h);
+   e = (Ecore_Event_Window_Expose *) ev->event;
+   evas_damage_rectangle_add(evas, e->x, e->y, e->w, e->h);
 }
 static void
-e_window_configure(Ecore_Event *ev)
+e_window_configure(Ecore_Event * ev)
 {
-       Ecore_Event_Window_Configure *e;
-       double tw, th;
+   Ecore_Event_Window_Configure *e;
+   Window ewin = e_evas_get_window(evas);
+
+   /* double tw, th; */
+
+   e = (Ecore_Event_Window_Configure *) ev->event;
 
-       e = (Ecore_Event_Window_Configure*)ev->event;
 
-       if(e->win == main_win)  
-       {
-               win_w = e->w;
-               win_h = e->h;
-               ecore_window_resize(evas_get_window(evas),win_w,win_h);
-               evas_set_output_viewport(evas,0,0,win_w,win_h);
-               evas_set_output_size(evas,win_w, win_h);
-               if(bg)
-                   e_bg_resize(bg, win_w, win_h);
-               tw = evas_get_text_width(evas, ot);
-               th = evas_get_text_height(evas, ot);
-               evas_move(evas, ot,  (((double)win_w - tw)/2.0), 
-                                    (((double)win_h - th)/2.0));
-               
-               tw = evas_get_text_width(evas, ol);
-               th = evas_get_text_height(evas, ol);
-               evas_move(evas, ol,  (((double)win_w - tw) * 0.25),
-                                    (((double)win_h - th) * 0.25));
-               tw = evas_get_text_width(evas, ol2);
-               th = evas_get_text_height(evas, ol2);
-               evas_move(evas, ol2,  (((double)win_w - tw) * 0.75),
-                                     (((double)win_h - th) * 0.75));
-               tw = evas_get_text_width(evas, ol3);
-               th = evas_get_text_height(evas, ol3);
-               evas_move(evas, ol3,  (((double)win_w - tw) * 0.35),
-                                     (((double)win_h - th) * 0.35));
-               tw = evas_get_text_width(evas, ol4);
-               th = evas_get_text_height(evas, ol4);
-               evas_move(evas, ol4,  (((double)win_w - tw) * 0.80),
-                                     (((double)win_h - th) * 0.80));
-       }
+   ecore_window_resize(ewin, e->w, e->h);
+   evas_output_viewport_set(evas, 0, 0, e->w, e->h);
+   evas_output_size_set(evas, e->w, e->h);
+   if (bg)
+   {
+      e_bg_move(bg, bg->x, bg->y);
+      e_bg_resize(bg, e->w, e->h);
+   }
+#if 0
+   tw = evas_get_text_width(evas, ot);
+   th = evas_get_text_height(evas, ot);
+   evas_move(evas, ot, (((double) win_w - tw) / 2.0),
+             (((double) win_h - th) / 2.0));
+
+   tw = evas_get_text_width(evas, ol);
+   th = evas_get_text_height(evas, ol);
+   evas_move(evas, ol, (((double) win_w - tw) * 0.25),
+             (((double) win_h - th) * 0.25));
+   tw = evas_get_text_width(evas, ol2);
+   th = evas_get_text_height(evas, ol2);
+   evas_move(evas, ol2, (((double) win_w - tw) * 0.75),
+             (((double) win_h - th) * 0.75));
+   tw = evas_get_text_width(evas, ol3);
+   th = evas_get_text_height(evas, ol3);
+   evas_move(evas, ol3, (((double) win_w - tw) * 0.35),
+             (((double) win_h - th) * 0.35));
+   tw = evas_get_text_width(evas, ol4);
+   th = evas_get_text_height(evas, ol4);
+   evas_move(evas, ol4, (((double) win_w - tw) * 0.80),
+             (((double) win_h - th) * 0.80));
+#endif
 }
-static void
-e_window_key_down(Ecore_Event *ev)
+
+void
+load_current(void)
 {
-    Ecore_Event_Key_Down *e;
+   int ww = 0, hh = 0;
+   char buf[EBG_BUF_SIZE];
+
+   if (bg)
+      e_bg_free(bg);
+   bg = e_bg_load((char *) current->data);
+   if (!bg)
+      return;
+   snprintf(buf, EBG_BUF_SIZE, "%s", (char *) current->data);
+   ecore_window_set_title(main_win, buf);
+   ecore_window_get_geometry(main_win, NULL, NULL, &ww, &hh);
+   e_bg_add_to_evas(bg, evas);
+#if 0
+   e_bg_callback_add(bg, CALLBACK_MOUSE_DOWN, bg_mouse_down, NULL);
+#endif
+   e_bg_resize(bg, ww, hh);
+   e_bg_set_layer(bg, current_layer);
+#if 0
+   if (current_stack_req)
+      e_bg_stack_object_above(bg, ot);
+   else
+      e_bg_stack_object_below(bg, ot);
+#endif
+   e_bg_show(bg);
+
 
-    e = ev->event;
-    if (e->win != evas_get_window(evas)) return;
-    
-    if(!strcmp(e->key, "Left"))
-    {
-       try_bg_load_next();
-    }
-    else if(!strcmp(e->key, "Right"))
-    {
-       try_bg_load_prev();
-    }
 }
+
+void
+try_bg_load_next(void)
+{
+   if (current)
+      current = current->next;
+   if (!current)
+      current = filelist;
+   if (!current)
+      exit(0);
+   load_current();
+}
+
+void
+try_bg_load_prev(void)
+{
+   if (current)
+      current = current->prev;
+   if (!current)
+      current = filelist->last;
+   if (!current)
+      exit(0);
+   load_current();
+}
+
 static void
-e_window_key_up(Ecore_Event *ev)
+e_window_key_down(Ecore_Event * ev)
 {
-    Ecore_Event_Key_Up *e;
+   Ecore_Event_Key_Down *e;
 
-    e = ev->event;
-    if (e->win != evas_get_window(evas)) return;
+   e = ev->event;
 
-    if(!strcmp("q", e->key))
-       exit(0);
+   if (e->win == main_win || e->win == e_evas_get_window(evas))
+   {
+      if (!strcmp(e->key, "Left"))
+      {
+         try_bg_load_next();
+#if 0
+         bg->x++;
+#endif
+      }
+      else if (!strcmp(e->key, "Right"))
+      {
+         try_bg_load_prev();
+#if 0
+         bg->y++;
+#endif
+      }
+      e_bg_move(bg, bg->x, bg->y);
+   }
 }
+
 static void
-e_window_mouse_down(Ecore_Event *ev)   
+e_window_key_up(Ecore_Event * ev)
 {
-       Ecore_Event_Mouse_Down *e;
-       
-       e = (Ecore_Event_Mouse_Down*)ev->event;
-       if((e->win != evas_get_window(evas)))
-           return;
-       evas_event_button_down(evas, e->x, e->y, e->button);
+   Ecore_Event_Key_Up *e;
+
+   e = ev->event;
+   if (e->win == main_win || e->win == e_evas_get_window(evas))
+   {
+      if (!strcmp("q", e->key))
+         exit(0);
+   }
 }
+
 static void
-e_window_mouse_up(Ecore_Event *ev)     
+e_window_mouse_down(Ecore_Event * ev)
 {
-       Ecore_Event_Mouse_Up *e;
-       
-       e = (Ecore_Event_Mouse_Up*)ev->event;
-       if((e->win != evas_get_window(evas)))
-           return;
-       evas_event_button_up(evas, e->x, e->y, e->button);
+   Ecore_Event_Mouse_Down *e;
+
+   e = (Ecore_Event_Mouse_Down *) ev->event;
+   if (e->win == e_evas_get_window(evas))
+      evas_event_feed_mouse_down(evas, e->button);
 }
 static void
-e_window_mouse_move(Ecore_Event *ev)   
+e_window_mouse_up(Ecore_Event * ev)
 {
-       Ecore_Event_Mouse_Move *e;
+   Ecore_Event_Mouse_Up *e;
 
-       e = (Ecore_Event_Mouse_Move*)ev->event;
-       evas_event_move(evas, e->x, e->y);
+   e = (Ecore_Event_Mouse_Up *) ev->event;
+   if (e->win == e_evas_get_window(evas))
+      evas_event_feed_mouse_up(evas, e->button);
 }
 static void
-bg_mouse_down(void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y)
+e_window_mouse_move(Ecore_Event * ev)
 {
-    char message[EBG_MESSAGE_SIZE];
+   Ecore_Event_Mouse_Move *e;
 
-    if(_b == 1)
-    {
-       e_bg_set_layer(bg, ++current_layer);
-    }
-    else if(_b == 2)
-    {
-       if(current_stack_req)
-           current_stack_req = 0;
-       else
-           current_stack_req = 1;
-    }
-    else if(_b == 3)
-    {
-       e_bg_set_layer(bg, --current_layer);
-    }
-    snprintf(message, EBG_MESSAGE_SIZE, "Bg is at Layer %d", current_layer);
-    evas_set_text(evas, ot, message);
-    if(current_stack_req)
-           e_bg_stack_object_above(bg, ot);
-           /*put the layer description above the etext in the same layer*/
-    else
-           e_bg_stack_object_below(bg, ot);
+   e = (Ecore_Event_Mouse_Move *) ev->event;
+   evas_event_feed_mouse_move(evas, e->x, e->y);
 }
+
 void
-try_bg_load_next()
+filelist_destroy(Evas_List * l)
 {
-    char buf[EBG_BUF_SIZE];
-    if(bg) e_bg_free(bg);
-    if(bg_current) bg_current = bg_current->next;
-    if(!bg_current) bg_current = bg_list;
-    if(!bg_current) exit(0);
-
-    bg = e_bg_load((char*)bg_current->data);
-    if(!bg) return;
-    snprintf(buf, EBG_BUF_SIZE, "%s", (char*)bg_current->data);
-    ecore_window_set_title(main_win, buf);
-    e_bg_add_to_evas(bg, evas);
-    e_bg_callback_add(bg, CALLBACK_MOUSE_DOWN, bg_mouse_down, NULL);
-    e_bg_set_layer(bg, current_layer);
-    if(current_stack_req)
-           e_bg_stack_object_above(bg, ot);
-    else
-           e_bg_stack_object_below(bg, ot);
-    e_bg_show(bg);
+   Evas_List *ll = NULL;
+
+   for (ll = l; ll; ll = ll->next)
+   {
+      char *str;
+
+      str = (char *) ll->data;
+      free(str);
+   }
 }
+
 void
-try_bg_load_prev()
+test_setup(void)
 {
-    char buf[EBG_BUF_SIZE];
-    if(bg) e_bg_free(bg);
-    if(bg_current) bg_current = bg_current->prev;
-    if(!bg_current) bg_current = bg_list->last;
-    if(!bg_current) exit(0);
-
-    bg = e_bg_load((char*)bg_current->data);
-    if(!bg) return;
-    snprintf(buf, EBG_BUF_SIZE, "%s", (char*)bg_current->data);
-    ecore_window_set_title(main_win, buf);
-    e_bg_add_to_evas(bg, evas);
-    e_bg_callback_add(bg, CALLBACK_MOUSE_DOWN, bg_mouse_down, NULL);
-    e_bg_set_layer(bg, current_layer);
-    if(current_stack_req)
-           e_bg_stack_object_above(bg, ot);
-    else
-           e_bg_stack_object_below(bg, ot);
-    e_bg_show(bg);
-}
-/* Setup the window and evas and an all white bg for the evas */
-static void
-setup(void)
-{
-    Window win, ewin;
-    Evas_Object o;
-    char message[EBG_MESSAGE_SIZE];
-    double tw, th;
-
-    win_w = win_h = 400;
-    ecore_event_filter_handler_add(ECORE_EVENT_WINDOW_EXPOSE,  e_window_expose);
-    ecore_event_filter_handler_add(ECORE_EVENT_WINDOW_CONFIGURE, e_window_configure);
-    ecore_event_filter_handler_add(ECORE_EVENT_MOUSE_DOWN, e_window_mouse_down);
-    ecore_event_filter_handler_add(ECORE_EVENT_MOUSE_UP, e_window_mouse_up);
-    ecore_event_filter_handler_add(ECORE_EVENT_MOUSE_MOVE, e_window_mouse_move);
-    ecore_event_filter_handler_add(ECORE_EVENT_KEY_DOWN, e_window_key_down);
-    ecore_event_filter_handler_add(ECORE_EVENT_KEY_UP, e_window_key_up);
-    ecore_event_filter_idle_handler_add(e_idle, NULL);
-
-    win = ecore_window_new(0,0,0, win_w, win_h);
-    ecore_window_set_events(win, XEV_CONFIGURE);
-    ecore_window_set_min_size(win, WINDOW_MIN_W, WINDOW_MIN_W);
-    ecore_window_set_max_size(win, WINDOW_MAX_W, WINDOW_MAX_H);
-    ecore_window_set_name_class(win, WINDOW_NAME, "Main");
-    ecore_window_set_title(win, WINDOW_TITLE);
-    
-    main_win = win;
-    evas = evas_new_all(ecore_display_get(), win, 0, 0, win_w,
-           win_h, RENDER_METHOD_ALPHA_SOFTWARE, 215,
-           (FONT_CACHE_IN_MB * (EBG_BUF_SIZE * EBG_BUF_SIZE)), 
-           (IMAGE_CACHE_IN_MB * (EBG_BUF_SIZE * EBG_BUF_SIZE)),
-           FNTDIR);
-    ewin = evas_get_window(evas);
-
-    ecore_window_show(ewin);
-    ecore_window_set_events(ewin, XEV_EXPOSE | XEV_BUTTON | XEV_MOUSE_MOVE |
-                                   XEV_KEY);
-    ecore_window_show(win);
-
-    o = evas_add_rectangle(evas);
-    evas_set_color(evas, o, 255, 255 , 255, 255);
-    evas_resize(evas, o, 999999999, 999999999);
-    evas_move(evas, o, 0, 0);
-    evas_set_layer(evas, o, -5);
-    evas_callback_add(evas, o, CALLBACK_MOUSE_DOWN, bg_mouse_down, NULL);
-    evas_show(evas, o);
-    
-    /* relative layer labels */
-    snprintf(message, EBG_MESSAGE_SIZE, "%s", "Layer 4");
-    o = evas_add_text(evas, "arial", 12, message);
-    evas_set_color(evas, o, 0,0,0,255);
-    tw = evas_get_text_width(evas, o);
-    th = evas_get_text_height(evas, o);
-    evas_move(evas, o, (((double)win_w - tw) * 0.25), 
-                      (((double)win_h - th) * 0.25));
-    evas_show(evas, o);
-    evas_set_layer(evas, o, 4);
-    ol = o;
-    
-    snprintf(message, EBG_MESSAGE_SIZE, "%s", "Layer 8");
-    o = evas_add_text(evas, "arial", 12, message);
-    evas_set_color(evas, o, 0,0,0,255);
-    tw = evas_get_text_width(evas, o);
-    th = evas_get_text_height(evas, o);
-    evas_move(evas, o, (((double)win_w - tw) * 0.75), 
-                      (((double)win_h - th) * 0.75));
-    evas_show(evas, o);
-    evas_set_layer(evas, o, 8);
-    ol2 = o;
-    
-    snprintf(message, EBG_MESSAGE_SIZE, "%s", "Layer -2");
-    o = evas_add_text(evas, "arial", 12, message);
-    evas_set_color(evas, o, 0,0,0,255);
-    tw = evas_get_text_width(evas, o);
-    th = evas_get_text_height(evas, o);
-    evas_move(evas, o, (((double)win_w - tw) * 0.35), 
-                      (((double)win_h - th) * 0.35));
-    evas_show(evas, o);
-    evas_set_layer(evas, o, -2);
-    ol3 = o;
-    
-    snprintf(message, EBG_MESSAGE_SIZE, "%s", "Layer 12");
-    o = evas_add_text(evas, "arial", 12, message);
-    evas_set_color(evas, o, 0,0,0,255);
-    tw = evas_get_text_width(evas, o);
-    th = evas_get_text_height(evas, o);
-    evas_move(evas, o, (((double)win_w - tw) * 0.80), 
-                      (((double)win_h - th) * 0.80));
-    evas_show(evas, o);
-    evas_set_layer(evas, o, 12);
-    ol4 = o;
- 
-    
-    /* layer text label */
-    snprintf(message, EBG_MESSAGE_SIZE, "Bg is at Layer %d", current_layer);
-    ot = evas_add_text(evas, "arial", 16, message);
-    evas_set_color(evas, ot, 192,192,192,255);
-    tw = evas_get_text_width(evas, ot);
-    th = evas_get_text_height(evas, ot);
-    evas_move(evas, ot, (((double)win_w - tw)/2.0), 
-                       (((double)win_h - th)/2.0));
-    evas_show(evas, ot);
-    evas_set_layer(evas, ot, 200);
-    
-    try_bg_load_next();
-}
+   Window win, ewin;
+   int win_w = 640, win_h = 480;
+   Evas *e = NULL;
+   Evas_Engine_Info_Software_X11 *einfo;
+   XSetWindowAttributes att;
+   Window window;
+   Display *disp;
+
+   ecore_event_filter_handler_add(ECORE_EVENT_WINDOW_EXPOSE, e_window_expose);
+   ecore_event_filter_handler_add(ECORE_EVENT_WINDOW_CONFIGURE,
+                                  e_window_configure);
+   ecore_event_filter_handler_add(ECORE_EVENT_MOUSE_DOWN,
+                                  e_window_mouse_down);
+   ecore_event_filter_handler_add(ECORE_EVENT_MOUSE_UP, e_window_mouse_up);
+   ecore_event_filter_handler_add(ECORE_EVENT_MOUSE_MOVE,
+                                  e_window_mouse_move);
+   ecore_event_filter_handler_add(ECORE_EVENT_KEY_DOWN, e_window_key_down);
+   ecore_event_filter_handler_add(ECORE_EVENT_KEY_UP, e_window_key_up);
+   ecore_event_filter_idle_handler_add(e_idle, NULL);
+
+   win = ecore_window_new(0, 0, 0, win_w, win_h);
+   ecore_window_set_events(win, XEV_CONFIGURE);
+   ecore_window_set_min_size(win, WINDOW_MIN_W, WINDOW_MIN_W);
+   ecore_window_set_max_size(win, WINDOW_MAX_W, WINDOW_MAX_H);
+   ecore_window_set_name_class(win, WINDOW_NAME, "Main");
+   ecore_window_set_title(win, WINDOW_TITLE);
+
+   e = evas_new();
+   evas_output_method_set(e, evas_render_method_lookup("software_x11"));
+   evas_output_size_set(e, win_w, win_h);
+   evas_output_viewport_set(e, 0, 0, win_w, win_h);
+
+
+   /* the following is specific to the engine */
+   einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(e);
+   disp = ecore_display_get();
+
+   einfo->info.display = disp;
+   einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp));
+   einfo->info.colormap = DefaultColormap(disp, DefaultScreen(disp));
+   att.background_pixmap = None;
+   att.colormap = DefaultColormap(disp, DefaultScreen(disp));
+   att.border_pixel = 0;
+   att.event_mask = 0;
+   window =
+      XCreateWindow(disp, win, 0, 0, win_w, win_h, 0,
+                    DefaultDepth(disp, DefaultScreen(disp)), InputOutput,
+                    einfo->info.visual,
+                    CWColormap | CWBorderPixel | CWEventMask | CWBackPixmap,
+                    &att);
+
+   einfo->info.drawable = window;
+   einfo->info.depth = DefaultDepth(disp, DefaultScreen(disp));
+   einfo->info.rotation = 0;
+   einfo->info.debug = 0;
+   evas_engine_info_set(e, (Evas_Engine_Info *) einfo);
+
+   ewin = einfo->info.drawable;
+   ecore_window_set_events(ewin,
+                           XEV_EXPOSE | XEV_BUTTON | XEV_MOUSE_MOVE |
+                           XEV_KEY);
+
+   evas_object_image_cache_set(e, 0);
+   evas_object_font_cache_set(e, 0);
+   evas_object_font_path_append(e, FNTDIR);
+   evas = e;
+
+
+   ecore_window_show(ewin);
+   ecore_window_show(win);
+
+   load_current();
+}
+
+#define SUCCESS 0
+#define NO_ARGS 1
+#define BAD_DISPLAY 2
 
 int
 main(int argc, char *argv[])
 {
-    if(argc < 2)
-    {
-       printf("Error, gimme some dbs to load yo!\n");
-       exit(0);
-    }
-    current_stack_req = 1;
-    current_layer = 0;
-    bg_current = bg_list = NULL;
-    ecore_display_init(NULL);
-    ecore_event_signal_init();
-    ecore_event_filter_init();
-    ecore_event_x_init();
-    
-    while(--argc)
-       bg_list = evas_list_prepend(bg_list, argv[argc]);
-    bg_current = bg_list;
-
-    setup();
-
-    ecore_event_loop();
-    
-    return(0);
-    argc = 0;
-    argv = NULL;
+   int result = 0;
+
+   if (argc > 1)
+   {
+      while (--argc)
+         filelist = evas_list_prepend(filelist, strdup(argv[argc]));
+
+      if (ecore_display_init(NULL))
+      {
+         current = filelist;
+         ecore_event_signal_init();
+         ecore_event_filter_init();
+         ecore_event_x_init();
+         test_setup();
+         ecore_event_loop();
+         result = SUCCESS;
+      }
+      else
+      {
+         printf("Unable to open display %s\n" "You should fix this\n",
+                getenv("DISPLAY"));
+         result = BAD_DISPLAY;
+      }
+      filelist_destroy(filelist);
+   }
+   else
+   {
+      printf("Gimme some dbs to load yo !\n");
+      result = NO_ARGS;
+   }
+   return (result);
 }




-------------------------------------------------------
This SF.NET email is sponsored by: Take your first step towards giving 
your online business a competitive advantage. Test-drive a Thawte SSL 
certificate - our easy online guide will show you how. Click here to get 
started: http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0027en
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to