Enlightenment CVS committal

Author  : devilhorns
Project : e_modules
Module  : screenshot

Dir     : e_modules/screenshot


Modified Files:
        configure.in e_mod_config.c e_mod_main.c e_mod_main.h 


Log Message:
Added an option to allow users to launch an image viewer after a screenshot
is taken. (Note: Users will have to remove old module.screenshot.cfg to get
this)

Reworked config dialog a little bit.

Better checks in configure.in for whether import or scrot is installed, and
die if neither is installed.

===================================================================
RCS file: /cvs/e/e_modules/screenshot/configure.in,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- configure.in        21 May 2006 04:01:33 -0000      1.16
+++ configure.in        21 May 2006 15:07:31 -0000      1.17
@@ -142,13 +142,15 @@
 AC_PATH_PROG(IMPORT, import, "", $PATH)
 if test "x${PATH}" != "xNONE"; then
     AC_DEFINE_UNQUOTED(HAVE_IMPORT, 1, "You Have Import")
-    AC_DEFINE_UNQUOTED(IMPORT_PATH, "$IMPORT", "You Have Import")        
-fi
-   
-AC_PATH_PROG(SCROT, scrot, "", $PATH)
-if test "x${PATH}" != "xNONE"; then
-    AC_DEFINE_UNQUOTED(HAVE_SCROT, 1, "You Have Scrot")
-    AC_DEFINE_UNQUOTED(SCROT_PATH, "$SCROT", "You Have Scrot")            
+    AC_DEFINE_UNQUOTED(IMPORT_PATH, "$IMPORT", "You Have Import")
+else
+    AC_PATH_PROG(SCROT, scrot, "", $PATH)
+    if test "x${PATH}" != "xNONE"; then
+       AC_DEFINE_UNQUOTED(HAVE_SCROT, 1, "You Have Scrot")
+       AC_DEFINE_UNQUOTED(SCROT_PATH, "$SCROT", "You Have Scrot")
+    else
+       AC_MSG_ERROR("You do not have import or scrot installed.")
+    fi
 fi
 
 AC_PREFIX_DEFAULT(${HOME}/.e/e)
===================================================================
RCS file: /cvs/e/e_modules/screenshot/e_mod_config.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- e_mod_config.c      20 May 2006 16:31:41 -0000      1.21
+++ e_mod_config.c      21 May 2006 15:07:31 -0000      1.22
@@ -24,6 +24,8 @@
       int use_img_border;
       int use_thumb;
    } scrot;
+   int use_app;
+   char *app;
 };
 
 /* Protos */
@@ -74,8 +76,13 @@
 
    cfdata->filename = NULL;   
    if (ci->filename != NULL)
-      cfdata->filename = strdup(ci->filename);
+     cfdata->filename = strdup(ci->filename);
 
+   cfdata->use_app = ci->use_app;
+   cfdata->app = NULL;
+   if (ci->app != NULL)
+     cfdata->app = strdup(ci->app);
+   
    cfdata->import.use_img_border = ci->import.use_img_border;
    cfdata->import.use_dither = ci->import.use_dither;
    cfdata->import.use_frame = ci->import.use_frame;
@@ -113,44 +120,38 @@
    E_Radio_Group *rg;
 
    o = e_widget_list_add(evas, 0, 0);
-   of = e_widget_framelist_add(evas, _("General Settings"), 0);
+   of = e_widget_frametable_add(evas, D_("General Settings"), 1);
 
-   ot = e_widget_table_add(evas, 0);
    if ((ecore_file_app_installed("import")) && 
        (ecore_file_app_installed("scrot")))
      {
        rg = e_widget_radio_group_new(&(cfdata->method));       
        ob = e_widget_radio_add(evas, D_("Use Import"), 0, rg);
-       e_widget_table_object_append(ot, ob, 0, 0, 1, 1, 1, 0, 1, 0); 
+       e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 0, 0, 1, 0); 
        ob = e_widget_radio_add(evas, D_("Use Scrot"), 1, rg);
-       e_widget_table_object_append(ot, ob, 0, 1, 1, 1, 1, 0, 1, 0);   
+       e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 0, 0, 1, 0);
      }   
    else if (ecore_file_app_installed("import")) 
      cfdata->method = 0;
    else if (ecore_file_app_installed("scrot"))
      cfdata->method = 1;
-   
+
    ob = e_widget_label_add(evas, D_("Delay Time:"));
-   e_widget_table_object_append(ot, ob, 0, 2, 1, 1, 0, 0, 1, 0);
-   ob = e_widget_slider_add(evas, 1, 0, _("%1.0f seconds"), 0.0, 60.0, 1.0, 0, 
&(cfdata->delay_time), NULL, 200);
-   e_widget_table_object_append(ot, ob, 1, 2, 1, 1, 1, 0, 1, 0);
-   e_widget_framelist_object_append(of, ot);
+   e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 0, 0, 1, 0);
+   ob = e_widget_slider_add(evas, 1, 0, D_("%1.0f seconds"), 0.0, 60.0, 1.0, 
0, &(cfdata->delay_time), NULL, 100);
+   e_widget_frametable_object_append(of, ob, 1, 1, 2, 1, 1, 0, 1, 0);
    e_widget_list_object_append(o, of, 1, 1, 0.5);
-
-   of = e_widget_framelist_add(evas, D_("File Settings"), 0);
-   ot = e_widget_table_add(evas, 1);   
+      
+   of = e_widget_frametable_add(evas, D_("File Settings"), 1);
    ob = e_widget_label_add(evas, D_("Save Directory:"));
-   e_widget_table_object_append(ot, ob, 0, 0, 1, 1, 0, 0, 1, 0);
+   e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 0, 0, 1, 0);
    ob = e_widget_entry_add(evas, &cfdata->location);
-   e_widget_table_object_append(ot, ob, 1, 0, 1, 1, 1, 0, 1, 0);
-   ob = e_widget_label_add(evas, D_("Filename (minus extension):"));
-   e_widget_table_object_append(ot, ob, 0, 1, 1, 1, 0, 0, 1, 0);
+   e_widget_frametable_object_append(of, ob, 1, 0, 2, 1, 1, 0, 1, 0);
+   ob = e_widget_label_add(evas, D_("Filename:"));
+   e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 0, 0, 1, 0);
    ob = e_widget_entry_add(evas, &cfdata->filename);
-   e_widget_table_object_append(ot, ob, 1, 1, 1, 1, 1, 0, 1, 0);
-
-   e_widget_framelist_object_append(of, ot);
+   e_widget_frametable_object_append(of, ob, 1, 1, 2, 1, 1, 0, 1, 0);
    e_widget_list_object_append(o, of, 1, 1, 0.5);
-
    return o;
 }
 
@@ -209,17 +210,16 @@
    ci = cfd->data;
 
    o = e_widget_list_add(evas, 0, 0);
-   of = e_widget_framelist_add(evas, _("General Settings"), 0);
+   of = e_widget_frametable_add(evas, D_("General Settings"), 1);
 
-   ot = e_widget_table_add(evas, 0);
    if ((ecore_file_app_installed("import")) && 
        (ecore_file_app_installed("scrot")))
      {
        rg = e_widget_radio_group_new(&(cfdata->method));       
        ob = e_widget_radio_add(evas, D_("Use Import"), 0, rg);
-       e_widget_table_object_append(ot, ob, 0, 0, 1, 1, 1, 0, 1, 0); 
+       e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 0, 0, 1, 0); 
        ob = e_widget_radio_add(evas, D_("Use Scrot"), 1, rg);
-       e_widget_table_object_append(ot, ob, 0, 1, 1, 1, 1, 0, 1, 0);   
+       e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 0, 0, 1, 0);
      }   
    else if (ecore_file_app_installed("import")) 
      cfdata->method = 0;
@@ -227,52 +227,57 @@
      cfdata->method = 1;
 
    ob = e_widget_label_add(evas, D_("Delay Time:"));
-   e_widget_table_object_append(ot, ob, 0, 2, 1, 1, 0, 0, 1, 0);
-   ob = e_widget_slider_add(evas, 1, 0, _("%1.0f seconds"), 0.0, 60.0, 1.0, 0, 
&(cfdata->delay_time), NULL, 200);
-   e_widget_table_object_append(ot, ob, 1, 2, 1, 1, 1, 0, 1, 0);
-   e_widget_framelist_object_append(of, ot);
+   e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 0, 0, 1, 0);
+   ob = e_widget_slider_add(evas, 1, 0, D_("%1.0f seconds"), 0.0, 60.0, 1.0, 
0, &(cfdata->delay_time), NULL, 100);
+   e_widget_frametable_object_append(of, ob, 1, 1, 2, 1, 1, 0, 1, 0);
    e_widget_list_object_append(o, of, 1, 1, 0.5);
 
-   of = e_widget_framelist_add(evas, D_("File Settings"), 0);
-   ot = e_widget_table_add(evas, 1);
+   of = e_widget_frametable_add(evas, D_("Image Viewer Settings"), 1);
+   ob = e_widget_check_add(evas, D_("Launch Image Viewer After Screenshot"), 
&(cfdata->use_app));
+   e_widget_frametable_object_append(of, ob, 0, 0, 2, 1, 1, 0, 1, 0);
+   ob = e_widget_entry_add(evas, &(cfdata->app));
+   e_widget_frametable_object_append(of, ob, 0, 1, 2, 1, 1, 0, 1, 0);
+   e_widget_list_object_append(o, of, 1, 1, 0.5);
+   
+   of = e_widget_frametable_add(evas, D_("File Settings"), 1);
    ob = e_widget_label_add(evas, D_("Save Directory:"));
-   e_widget_table_object_append(ot, ob, 0, 0, 1, 1, 0, 0, 1, 0);
+   e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 0, 0, 1, 0);
    ob = e_widget_entry_add(evas, &cfdata->location);
-   e_widget_table_object_append(ot, ob, 1, 0, 1, 1, 1, 0, 1, 0);
-   ob = e_widget_label_add(evas, D_("Filename (minus extension):"));
-   e_widget_table_object_append(ot, ob, 0, 1, 1, 1, 0, 0, 1, 0);
+   e_widget_frametable_object_append(of, ob, 1, 0, 2, 1, 1, 0, 1, 0);
+   ob = e_widget_label_add(evas, D_("Filename:"));
+   e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 0, 0, 1, 0);
    ob = e_widget_entry_add(evas, &cfdata->filename);
-   e_widget_table_object_append(ot, ob, 1, 1, 1, 1, 1, 0, 1, 0);
-   e_widget_framelist_object_append(of, ot);
+   e_widget_frametable_object_append(of, ob, 1, 1, 2, 1, 1, 0, 1, 0);
    e_widget_list_object_append(o, of, 1, 1, 0.5);
 
+   ot = e_widget_table_add(evas, 0);
    if (ecore_file_app_installed("import")) 
      {
-       of = e_widget_framelist_add(evas, D_("Import Options"), 0);
+       of = e_widget_frametable_add(evas, D_("Import Settings"), 0);
        ob = e_widget_check_add(evas, D_("Include Image Border"), 
&(cfdata->import.use_img_border));
-       e_widget_framelist_object_append(of, ob);
+       e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 0, 0, 1, 0);
        ob = e_widget_check_add(evas, D_("Use Image Dithering"), 
&(cfdata->import.use_dither));
-       e_widget_framelist_object_append(of, ob);
+       e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 0, 0, 1, 0);
        ob = e_widget_check_add(evas, D_("Include Window Manager Frame"), 
&(cfdata->import.use_frame));
-       e_widget_framelist_object_append(of, ob);
+       e_widget_frametable_object_append(of, ob, 0, 2, 1, 1, 0, 0, 1, 0);
        ob = e_widget_check_add(evas, D_("Choose Window To Grab"), 
&(cfdata->import.use_window));
-       e_widget_framelist_object_append(of, ob);
+       e_widget_frametable_object_append(of, ob, 0, 3, 1, 1, 0, 0, 1, 0);
        ob = e_widget_check_add(evas, D_("Silent"), 
&(cfdata->import.use_silent));
-       e_widget_framelist_object_append(of, ob);
+       e_widget_frametable_object_append(of, ob, 0, 4, 1, 1, 0, 0, 1, 0);
        ob = e_widget_check_add(evas, D_("Trim Edges"), 
&(cfdata->import.use_trim));
-       e_widget_framelist_object_append(of, ob);
-       e_widget_list_object_append(o, of, 1, 1, 0.5);
+       e_widget_frametable_object_append(of, ob, 0, 5, 1, 1, 0, 0, 1, 0);
+       e_widget_table_object_append(ot, of, 0, 0, 1, 1, 1, 1, 1, 1);
      }
    if (ecore_file_app_installed("scrot")) 
      {
-       of = e_widget_framelist_add(evas, D_("Scrot Options"), 0);
+       of = e_widget_frametable_add(evas, D_("Scrot Settings"), 0);
        ob = e_widget_check_add(evas, D_("Include Image Border"), 
&(cfdata->scrot.use_img_border));
-       e_widget_framelist_object_append(of, ob);
+       e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 0, 0, 1, 0);
        ob = e_widget_check_add(evas, D_("Generate Thumbnail"), 
&(cfdata->scrot.use_thumb));
-       e_widget_framelist_object_append(of, ob);
-       e_widget_list_object_append(o, of, 1, 1, 0.5);
+       e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 0, 0, 1, 0);
+       e_widget_table_object_append(ot, of, 1, 0, 1, 1, 1, 1, 1, 1);
      }
-
+   e_widget_list_object_append(o, ot, 1, 1, 0.5);   
    return o;
 }
 
@@ -284,6 +289,14 @@
    ci = cfd->data;
    _basic_apply_data(cfd, cfdata);
 
+   ci->use_app = cfdata->use_app;
+   if (ci->app)
+     evas_stringshare_del(ci->app);
+   if (cfdata->app != NULL)
+     ci->app = evas_stringshare_add(cfdata->app);
+   else
+     ci->app = evas_stringshare_add("");
+   
    ci->import.use_img_border = cfdata->import.use_img_border;
    ci->import.use_dither = cfdata->import.use_dither;
    ci->import.use_frame = cfdata->import.use_frame;
===================================================================
RCS file: /cvs/e/e_modules/screenshot/e_mod_main.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -3 -r1.33 -r1.34
--- e_mod_main.c        21 May 2006 12:06:52 -0000      1.33
+++ e_mod_main.c        21 May 2006 15:07:31 -0000      1.34
@@ -21,6 +21,7 @@
    Evas_Object *ss_obj;
    Screenshot *ss;
    Ecore_Exe *exe;
+   const char *filename;
 };
 
 struct _Screenshot
@@ -104,6 +105,7 @@
    Instance *inst;
    
    inst = gcc->data;
+   if (inst->filename) evas_stringshare_del(inst->filename);
    ss_config->instances = evas_list_remove(ss_config->instances, inst);
    _ss_free(inst->ss);
    free(inst);
@@ -239,6 +241,8 @@
    ci->import.use_trim = 1;
    ci->scrot.use_img_border = 1;
    ci->scrot.use_thumb = 0;
+   ci->use_app = 0;
+   ci->app = evas_stringshare_add("");
    
    ss_config->items = evas_list_append(ss_config->items, ci);
    return ci;
@@ -276,6 +280,8 @@
    E_CONFIG_VAL(D, T, import.use_trim, UCHAR);
    E_CONFIG_VAL(D, T, scrot.use_img_border, UCHAR);
    E_CONFIG_VAL(D, T, scrot.use_thumb, UCHAR);
+   E_CONFIG_VAL(D, T, use_app, INT);
+   E_CONFIG_VAL(D, T, app, STR);
    
    conf_edd = E_CONFIG_DD_NEW("Screenshot_Config", Config);
    #undef T
@@ -323,6 +329,8 @@
        ci->import.use_trim = 1;
        ci->scrot.use_img_border = 1;
        ci->scrot.use_thumb = 0;
+       ci->use_app = 0;
+       ci->app = evas_stringshare_add("");
        
        ss_config->items = evas_list_append(ss_config->items, ci);
      }
@@ -358,6 +366,7 @@
        if (ci->id) evas_stringshare_del(ci->id);
        if (ci->location) evas_stringshare_del(ci->location);
        if (ci->filename) evas_stringshare_del(ci->filename);
+       if (ci->app) evas_stringshare_del(ci->app);
        ss_config->items = evas_list_remove_list(ss_config->items, 
ss_config->items);
        free(ci);
      }
@@ -437,6 +446,9 @@
    char buf[1024];
    char *cmd, *opt, *f;
    Config_Item *ci;
+
+   if (inst->exe)
+     return;
    
    ci = _ss_config_item_get(inst->gcc->id);
    
@@ -462,12 +474,10 @@
      snprintf(buf, sizeof(buf), "%s %s", cmd, opt); 
    else
      snprintf(buf, sizeof(buf), "%s %s %s", cmd, opt, f);
-       
-   ss_config->exe_exit_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
-                                                        _ss_exe_cb_exit, NULL);
 
-   inst->exe = ecore_exe_run(buf, inst);
-   
+   inst->filename = evas_stringshare_add(f);
+   ss_config->exe_exit_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
+                                                        _ss_exe_cb_exit, 
NULL);   
    if (ci->delay_time > 0)
      {
        msg = malloc(sizeof(Edje_Message_Int_Set) + 1 * sizeof(int));
@@ -476,6 +486,7 @@
        edje_object_message_send(inst->ss->ss_obj, EDJE_MESSAGE_INT_SET, 1, 
msg);
        free(msg);
      }
+   inst->exe = ecore_exe_run(buf, inst);
 }
 
 char *
@@ -603,7 +614,9 @@
    Instance *inst;
    Ecore_Exe_Event_Del *ev;
    Ecore_Exe *x;
-
+   Config_Item *ci;
+   char buf[4096];
+   
    ev = event;
    if (!ev->exe) return 1;
    x = ev->exe;
@@ -612,8 +625,17 @@
    inst = ecore_exe_data_get(x);
    x = NULL;
    inst->exe = NULL;
-
+   if (inst->filename) 
+     evas_stringshare_del(inst->filename);
    if (ss_config->exe_exit_handler)
      ecore_event_handler_del(ss_config->exe_exit_handler);
+   
+   ci = _ss_config_item_get(inst->gcc->id);
+   if ((ci->use_app) && (ci->app != NULL)) 
+     {
+       snprintf(buf, sizeof(buf), "%s %s", ci->app, inst->filename);
+       x = ecore_exe_run(buf, NULL);
+     }
+   
    return 0;
 }
===================================================================
RCS file: /cvs/e/e_modules/screenshot/e_mod_main.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- e_mod_main.h        20 May 2006 16:31:41 -0000      1.12
+++ e_mod_main.h        21 May 2006 15:07:31 -0000      1.13
@@ -25,6 +25,8 @@
    unsigned char use_scrot;
    const char *location;
    const char *filename;
+   int use_app;
+   const char *app;
    struct
      {
        unsigned char use_img_border;




-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to