Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/modules/flame


Modified Files:
        e_mod_main.c e_mod_main.h module_icon.png 


Log Message:


flame respects resize events now ... and by default now looks much prettier..
:)

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/flame/e_mod_main.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- e_mod_main.c        25 Dec 2004 03:34:17 -0000      1.4
+++ e_mod_main.c        26 Dec 2004 05:04:03 -0000      1.5
@@ -15,22 +15,25 @@
 static Flame  *_flame_init                 (E_Module *m);
 static void    _flame_shutdown             (Flame *f);
 static E_Menu *_flame_config_menu_new      (Flame *f);
-static void    _flame_menu_default_palette (void *data, E_Menu *m, E_Menu_Item 
*mi);
+static void    _flame_menu_gold_palette    (void *data, E_Menu *m, E_Menu_Item 
*mi);
+static void    _flame_menu_fire_palette    (void *data, E_Menu *m, E_Menu_Item 
*mi);
 static void    _flame_menu_plasma_palette  (void *data, E_Menu *m, E_Menu_Item 
*mi);
 static void    _flame_config_menu_del      (Flame *f, E_Menu *m);
 static void    _flame_config_palette_set   (Flame *f, Flame_Palette_Type type);
 
-static int  _flame_face_init         (Flame_Face *ff);
-static void _flame_face_free         (Flame_Face *ff);
-static void _flame_face_anim_handle (Flame_Face *ff);
+static int  _flame_face_init           (Flame_Face *ff);
+static void _flame_face_free           (Flame_Face *ff);
+static void _flame_face_anim_handle    (Flame_Face *ff);
 
-static void _flame_palette_default_set (Flame_Face *ff);
+static void _flame_palette_gold_set    (Flame_Face *ff);
+static void _flame_palette_fire_set    (Flame_Face *ff);
 static void _flame_palette_plasma_set  (Flame_Face *ff);
 static void _flame_zero_set            (Flame_Face *ff);
 static void _flame_base_random_set     (Flame_Face *ff);
 static void _flame_base_random_modify  (Flame_Face *ff);
 static void _flame_process             (Flame_Face *ff);
 static int  _flame_cb_draw             (void *data);
+static int  _flame_cb_event_container_resize(void *data, int type, void 
*event);
 
 static int powerof (unsigned int n);
 
@@ -140,11 +143,11 @@
        f->conf = E_NEW (Config, 1);
        f->conf->height = 128;
        f->conf->hspread = 26;
-       f->conf->vspread = 48;
+       f->conf->vspread = 76;
        f->conf->variance = 5;
        f->conf->vartrend = 2;
        f->conf->residual = 68;
-       f->conf->palette_type = DEFAULT_PALETTE;
+       f->conf->palette_type = GOLD_PALETTE;
      }
    E_CONFIG_LIMIT(f->conf->height, 4, 4096);
    E_CONFIG_LIMIT(f->conf->hspread, 1, 100);
@@ -152,7 +155,7 @@
    E_CONFIG_LIMIT(f->conf->variance, 1, 100);
    E_CONFIG_LIMIT(f->conf->vartrend, 1, 100);
    E_CONFIG_LIMIT(f->conf->residual, 1, 100);
-   E_CONFIG_LIMIT(f->conf->palette_type, DEFAULT_PALETTE, PLASMA_PALETTE);
+   E_CONFIG_LIMIT(f->conf->palette_type, GOLD_PALETTE, PLASMA_PALETTE);
    
    managers = e_manager_list ();
    for (l = managers; l; l = l->next)
@@ -201,11 +204,18 @@
    mn = e_menu_new ();
    
    mi = e_menu_item_new (mn);
-   e_menu_item_label_set (mi, "Default Palette");
+   e_menu_item_label_set (mi, "Gold Palette");
    e_menu_item_radio_set(mi, 1);
    e_menu_item_radio_group_set(mi, 2);
-   if (f->conf->palette_type == DEFAULT_PALETTE) e_menu_item_toggle_set (mi, 
1);
-   e_menu_item_callback_set (mi, _flame_menu_default_palette, f);
+   if (f->conf->palette_type == GOLD_PALETTE) e_menu_item_toggle_set (mi, 1);
+   e_menu_item_callback_set (mi, _flame_menu_gold_palette, f);
+   
+   mi = e_menu_item_new (mn);
+   e_menu_item_label_set (mi, "Fire Palette");
+   e_menu_item_radio_set(mi, 1);
+   e_menu_item_radio_group_set(mi, 2);
+   if (f->conf->palette_type == FIRE_PALETTE) e_menu_item_toggle_set (mi, 1);
+   e_menu_item_callback_set (mi, _flame_menu_fire_palette, f);
    
    mi = e_menu_item_new(mn);
    e_menu_item_label_set(mi, "Plasma Palette");
@@ -220,12 +230,21 @@
 }
 
 static void
-_flame_menu_default_palette (void *data, E_Menu *m, E_Menu_Item *mi)
+_flame_menu_gold_palette (void *data, E_Menu *m, E_Menu_Item *mi)
 {
    Flame *f;
    
    f = (Flame *)data;
-   _flame_config_palette_set (f, DEFAULT_PALETTE);
+   _flame_config_palette_set (f, GOLD_PALETTE);
+}
+
+static void
+_flame_menu_fire_palette (void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   Flame *f;
+   
+   f = (Flame *)data;
+   _flame_config_palette_set (f, FIRE_PALETTE);
 }
 
 static void
@@ -248,12 +267,17 @@
 {
    switch (type)
      {
-      case DEFAULT_PALETTE:
-       _flame_palette_default_set (f->face);
+      case GOLD_PALETTE:
+       _flame_palette_gold_set (f->face);
+       break;
+      case FIRE_PALETTE:
+       _flame_palette_fire_set (f->face);
        break;
       case PLASMA_PALETTE:
        _flame_palette_plasma_set (f->face);
        break;
+      default:
+       break;
      }
 }
 
@@ -265,16 +289,20 @@
    int         size;
    int         flame_width, flame_height;
    
+   ff->ev_handler_container_resize =
+     ecore_event_handler_add(E_EVENT_CONTAINER_RESIZE,
+                            _flame_cb_event_container_resize,
+                            ff);
    /* set up the flame object */
    o = evas_object_image_add (ff->evas);
    evas_output_viewport_get(ff->evas, NULL, NULL, &ww, &hh);
    ff->ww = ww;
    printf ("Size : %d %d\n", ww, hh);
-   evas_object_move (o, 0, hh - ff->flame->conf->height + 1);
+   evas_object_move (o, 0, hh - ff->flame->conf->height + 3);
    evas_object_resize (o, ff->ww, ff->flame->conf->height);
    evas_object_image_fill_set (o, 0, 0, ff->ww, ff->flame->conf->height);
-   evas_object_layer_set (o, -1);
-   evas_object_focus_set (o, 1);
+   evas_object_pass_events_set(o, 1);
+   evas_object_layer_set (o, 20);
    evas_object_image_alpha_set(o, 1);
    evas_object_show (o);
    ff->flame_object = o;
@@ -320,6 +348,7 @@
 static void
 _flame_face_free(Flame_Face *ff)
 {
+   ecore_event_handler_del(ff->ev_handler_container_resize);
    evas_object_del (ff->flame_object);
    if (ff->anim) ecore_animator_del(ff->anim);
    if (ff->f_array1) free (ff->f_array1);
@@ -335,9 +364,86 @@
      ff->anim = ecore_animator_add (_flame_cb_draw, ff);
 }
 
-/* set the default flame palette */
 static void
-_flame_palette_default_set (Flame_Face *ff)
+_flame_palette_gold_set (Flame_Face *ff)
+{
+   const unsigned char gold_cmap[300 * 4] =
+     "\256\256\0\1\254i\24\3\312\2165\5"
+     
"\330\212<\7\340\244I\10\344\235R\12\332\236P\15\334\247P\17\340\242U\20\343"
+     "\253X\22\340\253V\25\335\245U\27\344\254X\31\353\250[\32\352\254Y\34\346"
+     
"\251X\37\347\251Z!\351\255\\\"\351\253[$\345\253Z'\346\252\\)\347\253]+\347"
+     
"\256\\,\346\253\\/\344\253\\1\346\256]3\347\254\\4\351\256]6\351\253\\9\351"
+     "\254^;\352\256\\=\352\255^>\350\255]A\350\254^C\350\255\\E\351\256^F\350"
+     
"\255^I\347\255^K\347\255]M\350\256]O\352\257^Q\351\255_S\352\256^U\352\255"
+     "]W\352\255_X\351\256_[\351\255]]\351\256^_\351\256^a\351\256_c\350\256_e"
+     
"\350\256^g\351\256^i\351\256_k\350\255_m\352\256^o\352\256_q\353\257_s\352"
+     "\257_u\351\255^w\351\256_y\352\256_{\352\256`}\350\256^\177\351\255_\201"
+     
"\351\257_\203\351\256_\205\351\256_\207\351\256_\211\352\256_\213\353\257"
+     
"_\215\352\256_\217\351\256_\221\352\257_\223\352\256_\225\352\257_\227\351"
+     
"\256_\231\351\256_\233\351\257_\235\352\256`\237\351\256_\241\351\257_\243"
+     
"\352\256_\245\353\257`\247\353\257`\251\352\256_\253\352\257_\255\352\256"
+     
"`\257\352\257`\261\351\257_\263\351\256_\265\352\257`\267\352\257`\271\352"
+     
"\257`\273\351\257_\275\352\256`\277\352\257`\301\352\256`\303\352\257_\305"
+     
"\352\257`\307\352\257`\311\352\257`\313\352\257_\315\352\256`\317\352\257"
+     
"`\321\352\257`\324\352\260a\326\352\261`\330\353\262b\332\353\262c\335\353"
+     
"\264c\337\353\265d\342\353\265e\344\354\266f\346\354\267f\350\354\270g\352"
+     
"\354\271g\354\354\272g\356\354\273i\360\355\274i\362\355\275j\364\355\275"
+     
"k\365\355\276k\367\355\277l\371\356\300l\372\356\301m\373\356\301m\375\356"
+     
"\301n\376\356\303o\376\357\304p\376\357\304p\377\357\305q\377\357\306q\377"
+     
"\357\307r\377\360\310s\377\360\311s\377\360\311t\377\360\312u\377\361\313"
+     
"v\377\361\314v\377\361\315w\377\361\316w\377\362\317x\377\362\320y\377\362"
+     
"\320y\377\362\321z\377\362\322{\377\363\323|\377\363\324|\377\363\325}\377"
+     
"\363\326~\377\364\327~\377\364\327\177\377\364\330\200\377\364\331\200\377"
+     "\365\332\201\377\365\333\202\377\365\334\202\377\365\335\203\377\365\336"
+     "\204\377\366\337\204\377\366\337\205\377\366\340\206\377\366\341\206\377"
+     "\367\342\207\377\367\343\210\377\367\344\210\377\367\345\211\377\367\346"
+     "\212\377\370\347\212\377\370\347\213\377\370\350\214\377\370\351\214\377"
+     "\371\352\215\377\371\353\216\377\371\354\216\377\371\355\217\377\372\356"
+     "\220\377\372\357\220\377\372\357\221\377\372\360\222\377\372\361\223\377"
+     "\373\362\224\377\373\363\226\377\373\363\230\377\373\364\232\377\374\365"
+     "\235\377\374\366\237\377\374\367\241\377\374\370\244\377\375\371\246\377"
+     "\375\372\250\377\375\373\252\377\375\373\254\377\375\373\256\377\376\373"
+     "\260\377\376\374\262\377\376\374\262\377\376\374\264\377\376\374\266\377"
+     "\376\374\270\377\376\374\272\377\376\374\273\377\376\374\274\377\376\374"
+     "\276\377\376\374\300\377\376\374\301\377\376\374\303\377\376\374\305\377"
+     "\376\374\306\377\376\374\310\377\376\374\311\377\376\374\313\377\376\374"
+     "\315\377\376\374\317\377\376\374\320\377\376\375\321\377\376\375\323\377"
+     "\376\375\325\377\376\375\327\377\376\375\330\377\376\375\332\377\376\375"
+     "\333\377\376\375\335\377\376\375\336\377\376\375\340\377\376\375\342\377"
+     "\376\375\343\377\376\375\345\377\376\375\346\377\376\375\350\377\376\375"
+     "\352\377\376\375\354\377\376\375\355\377\376\375\356\377\376\375\360\377"
+     "\376\375\362\377\376\375\364\377\376\375\365\377\376\375\367\377\376\375"
+     "\370\377\376\375\372\377\376\375\373\377\376\375\374\377\376\375\375\377"
+     "\376\375\375\377\376\376\375\377\376\376\375\377\376\376\375\377\376\376"
+     "\375\377\376\376\375\377"
+     "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
+     "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
+     "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
+     "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
+     "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
+     "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
+     "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
+     "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
+     "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
+     "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
+     "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
+     "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
+     "\377\377\377\377"
+     ;
+   int i;
+   
+   for (i = 0 ; i < 300 ; i++)
+     {
+       ff->palette[i] =
+         (gold_cmap[(i * 4) + 3] << 24) |
+         (gold_cmap[(i * 4) + 0] << 16) |
+         (gold_cmap[(i * 4) + 1] << 8 ) |
+         (gold_cmap[(i * 4) + 2]);
+     }
+}
+
+static void
+_flame_palette_fire_set (Flame_Face *ff)
 {
    int i, r, g, b, a;
    
@@ -354,11 +460,10 @@
        if (b < 0)   b = 0;
        if (b > 255) b = 255;
        a = (int)((r * 0.299) + (g * 0.587) + (b * 0.114));
-       ff->palette[i] = ((((unsigned char)
-                           a) << 24) |
-                           (((unsigned char)r) << 16) |
-                           (((unsigned char)g) << 8)  |
-                           ((unsigned char)b));
+       ff->palette[i] = ((((unsigned char)a) << 24) |
+                         (((unsigned char)r) << 16) |
+                         (((unsigned char)g) << 8)  |
+                         ((unsigned char)b));
      }
 }
 
@@ -568,6 +673,48 @@
    return 1;
 }
 
+static int
+_flame_cb_event_container_resize(void *data, int type, void *event)
+{
+   Flame_Face *ff;
+   Evas_Object *o;
+   Evas_Coord   ww, hh;
+   int         size;
+   int         flame_width, flame_height;
+   
+   ff = data;
+   evas_output_viewport_get(ff->evas, NULL, NULL, &ww, &hh);
+   ff->ww = ww;
+   o = ff->flame_object;
+   printf ("Size : %d %d\n", ww, hh);
+   evas_object_move (o, 0, hh - ff->flame->conf->height + 3);
+   evas_object_resize (o, ff->ww, ff->flame->conf->height);
+   evas_object_image_fill_set (o, 0, 0, ff->ww, ff->flame->conf->height);
+   
+   /* Allocation of the flame arrays */
+   flame_width  = ff->ww >> 1;
+   flame_height = ff->flame->conf->height >> 1;
+   ff->ws = powerof (flame_width);
+   size = (1 << ff->ws) * flame_height * sizeof (int);
+   if (ff->f_array1) free(ff->f_array1);
+   ff->f_array1 = (unsigned int *)malloc (size);
+   if (!ff->f_array1)
+     return 0;
+   if (ff->f_array2) free(ff->f_array2);
+   ff->f_array2 = (unsigned int *)malloc (size);
+   if (!ff->f_array2)
+     return 0;
+   
+   /* allocation of the image */
+   ff->ims = powerof (ff->ww);
+   evas_object_image_size_set (ff->flame_object,
+                              1<< ff->ims, ff->flame->conf->height);
+   evas_object_image_fill_set (o, 0, 0, 1<< ff->ims, ff->flame->conf->height);
+   printf ("Size : %d %d\n", 1<< ff->ims, ff->flame->conf->height);
+   ff->im = (unsigned int *)evas_object_image_data_get (ff->flame_object, 1);
+   return 1;
+}
+
 /* return the power of a number (eg powerof(8)==3, powerof(256)==8,
  * powerof(1367)==11, powerof(2568)==12) */
 static int
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/flame/e_mod_main.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- e_mod_main.h        23 Dec 2004 06:38:27 -0000      1.3
+++ e_mod_main.h        26 Dec 2004 05:04:03 -0000      1.4
@@ -10,7 +10,8 @@
 enum _Flame_Palette_Type
 {
    DEFAULT_NONE,
-   DEFAULT_PALETTE,
+     GOLD_PALETTE,
+     FIRE_PALETTE,
      PLASMA_PALETTE
 };
 
@@ -52,6 +53,8 @@
    /* the flame arrays */
    int           ws;
    unsigned int *f_array1, *f_array2;
+   
+   Ecore_Event_Handler *ev_handler_container_resize;
 };
 
 EAPI void *init     (E_Module *m);
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/flame/module_icon.png,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
Binary files /tmp/cvsCWFIsr and /tmp/cvsAE6jF8 differ




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to