Enlightenment CVS committal

Author  : devilhorns
Project : e17
Module  : apps/e_modules

Dir     : e17/apps/e_modules/src/modules/snow


Modified Files:
        e_mod_main.c 


Log Message:
Fix Snow. Sorry
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/apps/e_modules/src/modules/snow/e_mod_main.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- e_mod_main.c        19 Oct 2005 04:59:41 -0000      1.9
+++ e_mod_main.c        19 Oct 2005 05:41:18 -0000      1.10
@@ -2,41 +2,49 @@
 #include "config.h"
 #include "e_mod_main.h"
 
+/* TODO List:
+ * 
+ * 
+ */
+
 /* module private routines */
-static Rain       *_rain_init(E_Module *m);
-static void        _rain_shutdown(Rain *rain);
-static E_Menu     *_rain_config_menu_new(Rain *rain);
-static int         _rain_cb_animator(void *data);
-static void        _rain_clouds_load(Rain *rain);
-static void        _rain_drops_load(char type, Rain *rain);
-
-static void        _rain_cb_density_sparse(void *data, E_Menu *m, E_Menu_Item 
*mi);
-static void        _rain_cb_density_medium(void *data, E_Menu *m, E_Menu_Item 
*i);
-static void        _rain_cb_density_dense(void *data, E_Menu *m, E_Menu_Item 
*mi);
-static void        _rain_cb_show_clouds(void *data, E_Menu *m, E_Menu_Item 
*mi);
+static Snow       *_snow_init(E_Module *m);
+static void        _snow_shutdown(Snow *snow);
+static E_Menu     *_snow_config_menu_new(Snow *snow);
+static int         _snow_cb_animator(void *data);
+static void        _snow_trees_load(Snow *snow);
+static void        _snow_flakes_load(char type, Snow *snow);
+    
+static void        _snow_cb_density_sparse(void *data, E_Menu *m, E_Menu_Item 
*mi);
+static void        _snow_cb_density_medium(void *data, E_Menu *m, E_Menu_Item *
+i);
+static void        _snow_cb_density_dense(void *data, E_Menu *m, E_Menu_Item 
*mi);
+static void        _snow_cb_show_trees(void *data, E_Menu *m, E_Menu_Item *mi);
 
 /* public module routines. all modules must have these */
 E_Module_Api e_modapi =
 {
    E_MODULE_API_VERSION,
-     "Rain"
+   "Snow"
 };
 
-void *e_modapi_init(E_Module *m)
+void *
+e_modapi_init(E_Module *m)
 {
-   Rain *rain;
+   Snow *snow;
 
-   rain = _rain_init(m);
-   m->config_menu = _rain_config_menu_new(rain);
-   return rain;
+   snow = _snow_init(m);
+   m->config_menu = _snow_config_menu_new(snow);
+   return snow;
 }
 
-int e_modapi_shutdown(E_Module *m)
+int
+e_modapi_shutdown(E_Module *m)
 {
-   Rain *rain;
-
-   rain = m->data;
-   if (rain)
+   Snow *snow;
+   
+   snow = m->data;
+   if (snow)
      {
        if (m->config_menu)
          {
@@ -44,335 +52,345 @@
             e_object_del(E_OBJECT(m->config_menu));
             m->config_menu = NULL;
          }
-       _rain_shutdown(rain);
+       _snow_shutdown(snow);
      }
    return 1;
 }
 
-int e_modapi_save(E_Module *m)
+int
+e_modapi_save(E_Module *m)
 {
-   Rain *rain;
-
-   rain = m->data;
-   if (!rain) return 1;
-   e_config_domain_save("module.rain", rain->conf_edd, rain->conf);
+   Snow *snow;
+   
+   snow = m->data;
+   if (!snow) return 1;
+   e_config_domain_save("module.snow", snow->conf_edd, snow->conf);
    return 1;
 }
 
-int e_modapi_info(E_Module *m)
+int
+e_modapi_info(E_Module *m)
 {
-   m->icon_file = strdup(PACKAGE_LIB_DIR "/e_modules/rain/module_icon.png");
+   m->icon_file = strdup(PACKAGE_LIB_DIR "/e_modules/snow/module_icon.png");
    return 1;
 }
 
-int e_modapi_about(E_Module *m)
+int
+e_modapi_about(E_Module *m)
 {
-<<<<<<< e_mod_main.c
-   e_module_dialog_show(_("Enlightenment Rain Module"),
-                       _("This is a simple module to display some rain on the 
desktop.<br>
-                           It can display clouds too, if you like clouds."));
-=======
-   e_module_dialog_show(_("Enlightenment Snow Module"),
-                      _("This is a snow module that may replace xsnow."));
->>>>>>> 1.8
+   e_error_dialog_show("Enlightenment Snow Module",
+                      "This is a snow module that may replace xsnow.");
    return 1;
 }
 
 /* module private routines */
-static Rain *_rain_init(E_Module *m)
+static Snow *
+_snow_init(E_Module *m)
 {
-   Rain *rain;
+   Snow *snow;
    Evas_List *managers, *l, *l2;
+   
+   snow = calloc(1, sizeof(Snow));
+   if (!snow) return  NULL;
 
-   rain = calloc(1, sizeof(Rain));
-   if (!rain) return  NULL;
-
-   rain->module = m;
-   rain->conf_edd = E_CONFIG_DD_NEW("Rain_Config", Config);
+   snow->module = m;
+   snow->conf_edd = E_CONFIG_DD_NEW("Snow_Config", Config);
 #undef T
 #undef D
 #define T Config
-#define D rain->conf_edd
-   E_CONFIG_VAL(D, T, cloud_count, INT);
-   E_CONFIG_VAL(D, T, drop_count, INT);
-   E_CONFIG_VAL(D, T, show_clouds, INT);
-
-   rain->conf = e_config_domain_load("module.rain", rain->conf_edd);
-   if (!rain->conf)
+#define D snow->conf_edd
+   E_CONFIG_VAL(D, T, tree_count, INT);
+   E_CONFIG_VAL(D, T, flake_count, INT);
+   E_CONFIG_VAL(D, T, show_trees, INT);
+   
+   snow->conf = e_config_domain_load("module.snow", snow->conf_edd);
+   if (!snow->conf)
      {
-       rain->conf = E_NEW(Config, 1);
-       rain->conf->cloud_count = 10;
-       rain->conf->drop_count = 60;
-       rain->conf->show_clouds = 1;
+       snow->conf = E_NEW(Config, 1);
+       snow->conf->tree_count = 10;
+       snow->conf->flake_count = 60;
+       snow->conf->show_trees = 1;
      }
 
-   E_CONFIG_LIMIT(rain->conf->show_clouds, 0, 1);
-
+   E_CONFIG_LIMIT(snow->conf->show_trees, 0, 1);
+   
    managers = e_manager_list();
    for (l = managers; l; l = l->next)
      {
        E_Manager *man;
-
+       
        man = l->data;
        for (l2 = man->containers; l2; l2 = l2->next)
          {
             E_Container *con;
-
+            
             con = l2->data;
-            rain->cons = evas_list_append(rain->cons, con);
-            rain->canvas = con->bg_evas;
+            snow->cons = evas_list_append(snow->cons, con);
+            snow->canvas = con->bg_evas;
          }
      }
 
-   evas_output_viewport_get(rain->canvas, NULL, NULL, &rain->width, 
&rain->height);
-
-   if (rain->conf->show_clouds) _rain_clouds_load(rain);
-   _rain_drops_load('s', rain);
-   _rain_drops_load('m', rain);
-   _rain_drops_load('l', rain);
+   evas_output_viewport_get(snow->canvas, NULL, NULL, &snow->width, 
&snow->height);
 
-   rain->animator = ecore_animator_add(_rain_cb_animator, rain);
+   if (snow->conf->show_trees) _snow_trees_load(snow);
+   _snow_flakes_load('s', snow);
+   _snow_flakes_load('m', snow);
+   _snow_flakes_load('l', snow);
 
-   return rain;
+   snow->animator = ecore_animator_add(_snow_cb_animator, snow);
+     
+   return snow;
 }
 
-static void _rain_clouds_free(Rain *rain)
+static void
+_snow_trees_free(Snow *snow)
 {
-   while (rain->clouds)
+   while (snow->trees)
      {
-       Evas_Object *cloud;
-
-       cloud = rain->clouds->data;
-       evas_object_del(cloud);
-       rain->clouds = evas_list_remove_list(rain->clouds, rain->clouds);
+       Evas_Object *tree;
+       
+       tree = snow->trees->data;
+       evas_object_del(tree);
+       snow->trees = evas_list_remove_list(snow->trees, snow->trees);
      }
 }
 
-static void _rain_drops_free(Rain *rain)
+static void
+_snow_flakes_free(Snow *snow)
 {
-   while (rain->drops)
+   while (snow->flakes)
      {
-       Rain_Drop *drop;
+       Snow_Flake *flake;
 
-       drop = rain->drops->data;
-       evas_object_del(drop->drop);
-       rain->drops = evas_list_remove_list(rain->drops, rain->drops);
-       free(drop);
+       flake = snow->flakes->data;
+       evas_object_del(flake->flake);
+       snow->flakes = evas_list_remove_list(snow->flakes, snow->flakes);
+       free(flake);
      }
 }
 
-static void _rain_shutdown(Rain *rain)
+static void
+_snow_shutdown(Snow *snow)
 {
-   free(rain->conf);
-   E_CONFIG_DD_FREE(rain->conf_edd);
-   while (rain->cons)
+   free(snow->conf);
+   E_CONFIG_DD_FREE(snow->conf_edd);
+   while (snow->cons)
      {
        E_Container *con;
-
-       con = rain->cons->data;
-       rain->cons = evas_list_remove_list(rain->cons, rain->cons);
+       
+       con = snow->cons->data;
+       snow->cons = evas_list_remove_list(snow->cons, snow->cons);
      }
-   _rain_clouds_free(rain);
-   _rain_drops_free(rain);
-   if (rain->animator)
-     ecore_animator_del(rain->animator);
-   free(rain);
+   _snow_trees_free(snow);
+   _snow_flakes_free(snow);
+   if (snow->animator)
+     ecore_animator_del(snow->animator);
+   free(snow);
 }
 
-static E_Menu *_rain_config_menu_new(Rain *rain)
+static E_Menu *
+_snow_config_menu_new(Snow *snow)
 {
    E_Menu *mn;
    E_Menu_Item *mi;
-
+   
    mn = e_menu_new();
-
+     
    mi = e_menu_item_new(mn);
-   e_menu_item_label_set(mi, "Sprinkle");
+   e_menu_item_label_set(mi, "Sparse");
    e_menu_item_radio_set(mi, 1);
    e_menu_item_radio_group_set(mi, 2);
-   if (rain->conf->cloud_count == 5) e_menu_item_toggle_set(mi, 1);
-   e_menu_item_callback_set(mi, _rain_cb_density_sparse, rain);
+   if (snow->conf->tree_count == 5) e_menu_item_toggle_set(mi, 1);
+   e_menu_item_callback_set(mi, _snow_cb_density_sparse, snow);
 
    mi = e_menu_item_new(mn);
-   e_menu_item_label_set(mi, "Drizzle");
+   e_menu_item_label_set(mi, "Medium");
    e_menu_item_radio_set(mi, 1);
    e_menu_item_radio_group_set(mi, 2);
-   if (rain->conf->cloud_count == 10) e_menu_item_toggle_set(mi, 1);
-   e_menu_item_callback_set(mi, _rain_cb_density_medium, rain);
-
+   if (snow->conf->tree_count == 10) e_menu_item_toggle_set(mi, 1);
+   e_menu_item_callback_set(mi, _snow_cb_density_medium, snow);
+              
    mi = e_menu_item_new(mn);
-   e_menu_item_label_set(mi, "Downpour");
+   e_menu_item_label_set(mi, "Dense");
    e_menu_item_radio_set(mi, 1);
    e_menu_item_radio_group_set(mi, 2);
-   if (rain->conf->cloud_count == 20) e_menu_item_toggle_set(mi, 1);
-   e_menu_item_callback_set(mi, _rain_cb_density_dense, rain);
-
+   if (snow->conf->tree_count == 20) e_menu_item_toggle_set(mi, 1);
+   e_menu_item_callback_set(mi, _snow_cb_density_dense, snow);
+              
    mi = e_menu_item_new(mn);
    e_menu_item_separator_set(mi, 1);
 
    mi = e_menu_item_new(mn);
-   e_menu_item_label_set(mi, "Show Clouds");
+   e_menu_item_label_set(mi, "Show Trees");
    e_menu_item_check_set(mi, 1);
-   e_menu_item_toggle_set(mi, rain->conf->show_clouds);
-   e_menu_item_callback_set(mi, _rain_cb_show_clouds, rain);
+   e_menu_item_toggle_set(mi, snow->conf->show_trees);
+   e_menu_item_callback_set(mi, _snow_cb_show_trees, snow);
 
    return mn;
 }
 
-static void _rain_canvas_reset(Rain *rain)
+static void
+_snow_canvas_reset(Snow *snow)
 {
-   _rain_clouds_free(rain);
-   _rain_drops_free(rain);
+   _snow_trees_free(snow);
+   _snow_flakes_free(snow);
 
-   if (rain->conf->show_clouds) _rain_clouds_load(rain);
-   _rain_drops_load('s', rain);
-   _rain_drops_load('m', rain);
-   _rain_drops_load('l', rain);
+   if (snow->conf->show_trees) _snow_trees_load(snow);
+   _snow_flakes_load('s', snow); 
+   _snow_flakes_load('m', snow);
+   _snow_flakes_load('l', snow);           
 }
 
-static void _rain_cb_density_sparse(void *data, E_Menu *m, E_Menu_Item *mi)
+static void
+_snow_cb_density_sparse(void *data, E_Menu *m, E_Menu_Item *mi)
 {
-   Rain *rain;
+   Snow *snow;
 
-   rain = data;
-   rain->conf->cloud_count = 5;
-   rain->conf->drop_count = 20;
+   snow = data;
+   snow->conf->tree_count = 5;
+   snow->conf->flake_count = 20;
 
-   _rain_canvas_reset(rain);
+   _snow_canvas_reset(snow);
 }
 
-static void _rain_cb_density_medium(void *data, E_Menu *m, E_Menu_Item *mi)
+static void
+_snow_cb_density_medium(void *data, E_Menu *m, E_Menu_Item *mi)
 {
-   Rain *rain;
+   Snow *snow;
 
-   rain = data;
-   rain->conf->cloud_count = 10;
-   rain->conf->drop_count = 60;
-   _rain_canvas_reset(rain);
+   snow = data;
+   snow->conf->tree_count = 10;
+   snow->conf->flake_count = 60;
+   _snow_canvas_reset(snow);
 }
 
-static void _rain_cb_density_dense(void *data, E_Menu *m, E_Menu_Item *mi)
+static void
+_snow_cb_density_dense(void *data, E_Menu *m, E_Menu_Item *mi)
 {
-   Rain *rain;
+   Snow *snow;
 
-   rain = data;
-   rain->conf->cloud_count = 20;
-   rain->conf->drop_count = 150;
-   _rain_canvas_reset(rain);
+   snow = data;
+   snow->conf->tree_count = 20;
+   snow->conf->flake_count = 100;
+   _snow_canvas_reset(snow);
 }
 
-static void _rain_cb_show_clouds(void *data, E_Menu *m, E_Menu_Item *mi)
+static void
+_snow_cb_show_trees(void *data, E_Menu *m, E_Menu_Item *mi)
 {
-   Rain *rain;
+   Snow *snow;
 
-   rain = data;
-   rain->conf->show_clouds = e_menu_item_toggle_get(mi);
-   _rain_canvas_reset(rain);
+   snow = data;
+   snow->conf->show_trees = e_menu_item_toggle_get(mi);
+   _snow_canvas_reset(snow);
 }
 
-static void _rain_clouds_load(Rain *rain)
-{
+static void
+_snow_trees_load(Snow *snow) {
    Evas_Object *o;
    int tw, th, i;
 
-   o = evas_object_image_add(rain->canvas);
-   evas_object_image_file_set(o, PACKAGE_LIB_DIR "/e_modules/rain/cloud.png", 
"");
+   o = evas_object_image_add(snow->canvas);
+   evas_object_image_file_set(o, PACKAGE_LIB_DIR "/e_modules/snow/tree.png", 
"");
    evas_object_image_size_get(o, &tw, &th);
 
-   for (i = 0; i < rain->conf->cloud_count; i++)
-     {
-       Evas_Coord tx, ty;
-       if (i != 0)
-         {
-            o = evas_object_image_add(rain->canvas);
-            evas_object_image_file_set(o, PACKAGE_LIB_DIR 
"/e_modules/rain/cloud.png", "");
-         }
-       evas_object_resize(o, tw, th);
-       evas_object_image_alpha_set(o, 1);
-       evas_object_image_fill_set(o, 0, 0, tw, th);
-
-       tx = random() % (rain->width - tw);
-       ty = random() % (rain->height - th);
-       evas_object_move(o, tx, ty);
-       evas_object_show(o);
-       rain->clouds = evas_list_append(rain->clouds, o);
-     }
+for (i = 0; i < snow->conf->tree_count; i++)
+   {
+     Evas_Coord tx, ty;
+if (i != 0) {
+     o = evas_object_image_add(snow->canvas);
+     evas_object_image_file_set(o, PACKAGE_LIB_DIR "/e_modules/snow/tree.png", 
"");
 }
+     evas_object_resize(o, tw, th);
+     evas_object_image_alpha_set(o, 1);
+     evas_object_image_fill_set(o, 0, 0, tw, th);
 
-static void _rain_drops_load(char type, Rain *rain)
-{
+     tx = random() % (snow->width - tw);
+     ty = random() % (snow->height - th);
+     evas_object_move(o, tx, ty);
+     evas_object_show(o);
+     snow->trees = evas_list_append(snow->trees, o);
+   }
+
+
+}
+
+static void
+_snow_flakes_load(char type, Snow *snow) {
    Evas_Object *o;
    Evas_Coord xx, yy, ww, hh;
    char buf[4096];
    int tw, th, i;
-   Rain_Drop *drop;
+   Snow_Flake *flake;
 
-   evas_output_viewport_get(rain->canvas, &xx, &yy, &ww, &hh);
-   snprintf(buf, sizeof(buf), PACKAGE_LIB_DIR "/e_modules/rain/drop-%c.png", 
type);
+   evas_output_viewport_get(snow->canvas, &xx, &yy, &ww, &hh);
+   snprintf(buf, sizeof(buf), PACKAGE_LIB_DIR "/e_modules/snow/flake-%c.png", 
type);
 
-   o = evas_object_image_add(rain->canvas);
+   o = evas_object_image_add(snow->canvas);
    evas_object_image_file_set(o, buf, "");
    evas_object_image_size_get(o, &tw, &th);
 
-   for (i = 0; i < rain->conf->drop_count / 3; i++)
-     {
-       Evas_Coord tx, ty;
-
-       drop = malloc(sizeof(Rain_Drop));
-       if (i != 0)
-         {
-            o = evas_object_image_add(rain->canvas);
-            evas_object_image_file_set(o, buf, "");
-         }
-       evas_object_resize(o, tw, th);
-       evas_object_image_alpha_set(o, 1);
-       evas_object_image_fill_set(o, 0, 0, tw, th);
-
-       tx = random() % ww;
-       ty = random() % hh;
-       evas_object_move(o, tx, ty);
-       evas_object_show(o);
-       drop->drop = o;
-       drop->start_time = ecore_time_get() + (double)(random() % (th * 10)) / 
(double) th;
-       switch (type)
-         {
-          case 's':
-            drop->speed = 1;
-            break;
-          case 'm':
-            drop->speed = 2;
-            break;
-          case 'l':
-            drop->speed = 3;
-            break;
-         }
-       rain->drops = evas_list_append(rain->drops, drop);
+for (i = 0; i < snow->conf->flake_count / 3; i++)
+   {
+     Evas_Coord tx, ty;
+
+     flake = malloc(sizeof(Snow_Flake));
+if (i != 0) {
+     o = evas_object_image_add(snow->canvas);
+     evas_object_image_file_set(o, buf, "");
+}
+     evas_object_resize(o, tw, th);
+     evas_object_image_alpha_set(o, 1);
+     evas_object_image_fill_set(o, 0, 0, tw, th);
+
+     tx = random() % ww;
+     ty = random() % hh;
+     evas_object_move(o, tx, ty);
+     evas_object_show(o);
+     flake->flake = o;
+     flake->start_time = ecore_time_get() + (double)(random() % (th * 10)) / 
(double) th;
+     switch (type) {
+       case 's':
+         flake->speed = 1;
+        break;
+       case 'm':
+         flake->speed = 2;
+        break;
+       case 'l':
+         flake->speed = 3;
+        break;
      }
+     snow->flakes = evas_list_append(snow->flakes, flake);
+   }
+
+
 }
 
-static int _rain_cb_animator(void *data)
+
+static int
+_snow_cb_animator(void *data)
 {
-   Rain *rain;
+   Snow *snow;
    Evas_List *next;
    double d;
 
-   rain = data;
-   next = rain->drops;
+   snow = data;
+   next = snow->flakes;
    while (next)
      {
-       Rain_Drop *drop;
+       Snow_Flake *flake;
        Evas_Coord x, y;
 
-       drop = next->data;
-       d = ecore_time_get() - drop->start_time;
-       y = 300 * d * drop->speed;
-       evas_object_geometry_get(drop->drop, &x, NULL, NULL, NULL);
-       if (y > rain->height)
-         drop->start_time = ecore_time_get() + (double) (random() % 600) / 
(double) 600;
-       evas_object_move(drop->drop, x, y);
+       flake = next->data;
+       d = ecore_time_get() - flake->start_time;
+       y = 30 * d * flake->speed;
+       evas_object_geometry_get(flake->flake, &x, NULL, NULL, NULL);
+       if (y > snow->height)
+         flake->start_time = ecore_time_get() + (double) (random() % 100) / 
(double) 100;
+       evas_object_move(flake->flake, x, y);
 
        next = evas_list_next(next);
      }
-
+                                               
    return 1;
 }




-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to