Re: [E-devel] [PATCH] gadcon sities, efm2 slave fix, opinfo improvements

2009-06-25 Thread Sergey Semernin
Hello, Gustavo.

In message from 25 june 2009 Gustavo Sverzut Barbieri wrote:

       -- added 'e_fm2_operation_abort' call to cancel local slave
  operation, -- added callback 'func.abort' to 'E_Fm2_Op_Registry_Entry' to
  specify different cancel operation method than fm2 default,

 do not allow func.abort to be NULL, instead set it to
 e_fm2_operation_abort() when these are created.

No problem. Just we have a little different approach to programming. :)
But I'll leave func.abort check (fallback to e_fm2_operation_abort, if NULL)
in e_fm2_op_registry_entry_abort. Ok? Just for stability.


       -- 'done' and 'total' fields of 'E_Fm2_Op_Registry_Entry' changed to
          long long type, also all message handlers modified to work with
  it (to show progress for large files correctly),

 weird, size_t should be right on platforms that support large files...
 is it failing on you? It should not, read(2), write(2) and others all
 use that.

I'm using x86-32 Linux architecture, and length (s)size_t and off_t is 4 
bytes. This types are 32-bit on x86-32 systems and 64-bit on x86-64 systems.
I'm tested progress on copying large DV-files (about 10-20 GiB), and it showed
invalid information about total bytes and bytes already copied (truncated to 
32 bits, of course). This is in reason for files that large 4 Gib, when using 
size_t on 32-bit systems.
So, 'Done' and 'Total' fields of 'E_Fm2_Op_Registry_Entry' used only for 
counter purposes. It can be easily and safety moved to long long.

 Well, I checked stat man page and it uses off_t, so it's better to use
 that.

Yes, it uses off_t, but it again 32-bits here. If honestly, this situation
with file access functions, size types used in it, and very large files, 
dislike for me. 

 Good, will wait for a new patch fixing these minor issues...

 other than that, do you want commit access?

Is it possible?
What is general order you using for co-ordinate svn changes with other people 
in project? 


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [PATCH] gadcon sities, efm2 slave fix, opinfo improvements

2009-06-25 Thread Sergey Semernin
Hello, Gustavo.

In message from 25 june 2009 Gustavo Sverzut Barbieri wrote:

 I was testing the new opinfo and really like it, thanks! More feedback:
   - on desktop/shelf (as a gadget, not in efwin/efm) show if operation
 has a window or not. If it does, click on it would raise the operation
 window.

Did you mean file manager window with destination path opened?


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [PATCH] gadcon sities, efm2 slave fix, opinfo improvements

2009-06-25 Thread Sergey Semernin
Hello, All.

In message from 26 june 2009 Carsten Haitzler wrote:

 #define _LARGEFILE_SOURCE
 #define _LARGEFILE64_SOURCE
 #define _FILE_OFFSET_BITS 64
[skip]
 output:
  3:23PM ~  gcc t.c -o ttt; ttt
 4 8

Thanks. You are right. 
I have watch my own sources and I'm using this defines too.
But 'done' and 'total' in fm2 slave is a only counters, 
moreover, global counters are long long too. It is not
critical. Long long always 8 bytes length.


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [PATCH] Add distinguish the target site to gadgets

2009-06-21 Thread Sergey Semernin
Hello, All.

In message from 20 june 2009 Carsten Haitzler wrote:

 always think things through and think ahead. don't design yourself into a
 corner. i can imagine more than 32 spots existing within the lifetime of e.
 :)

Is my second patch with UL (32 bits), maybe ULL (64 bits) applicable? Or 
rewrite it to use enum and is_site callback as is in first patch, with 
writting helper functions?


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [PATCH] Add distinguish the target site to gadgets

2009-06-20 Thread Sergey Semernin
Hello, All.

In message from 20 june 2009 Carsten Haitzler wrote:

 a bitmask is almost reasonable... as that limits us to 32 gadget locations
 (lets be real. we'll use an int). right now it seems ok, but... in the long
 run, i am not so sure. an enum and just check if the is_site returns true
 when passed the target location seems expandable enough for me. :) (that'll
 give us 4 billion or so locations... i'm happy with that)

I don't think that we will have more than 32 sities for gadgets in future.
If that happens, then something wrong with GUI... By psychology, human works 
with 7-9 essencies simultaneously. If we have more, then sharply increase 
probability of human's error. That's all is my IMHO. :-)


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [PATCH] Add distinguish the target site to gadgets

2009-06-19 Thread Sergey Semernin
Hello, All.

In message from 19 june 2009 Gustavo Sverzut Barbieri wrote:

  gadgets it call 'is_site(NULL)', so this case should be properly matched
  in gadget module.

 Ok, in order to avoid adding overhead document that is_site() will get
 a stringshared string and you pre-stringshare the known names as you
 listed below. Before calling is_site() you certify that the parameter
 is stringshared already or do that once. Then functions can just check
 for pointers being equal and avoid strcmp().

In that case, if we avoiding strcmp, maybe let's use integer id for site?
Make enums with two ranges: mandatory and user. And then we simple check id's.

 Last but not least, since we have common stuff here, provide the
 following functions by default:
  - PREFIX_only_shelf_is_site()
  - PREFIX_only_desktop_is_site()
  - PREFIX_only_efm_toolbar_is_site()
  - PREFIX_not_efm_toolbar_is_site()

Right, I'll do this helpers.

  There are several site names exists now:
     -- 'shelf' - all shelfs,
     -- 'toolbar' - the toolbar used in EFM2,

 name this fileman or something else, otherwise if we wish to have
 other toolbar categories it will conflict.

I have examined code and seen that e_toolbar with gadcons used only in efm. In 
all other cases used toolbar from e_widget_toolbar.c and it can't have 
gadcons. Right?

 e/src/modules:
[...skip...]
 - winselector: !toolbar
 - wlan: all

Thanks!


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [PATCH] Add distinguish the target site to gadgets

2009-06-19 Thread Sergey Semernin
Hello, All.

In message from 20 june 2009 Gustavo Sverzut Barbieri wrote:

  to be realistic - this will never make a difference. you many gadgets do
  you expect to have in a list? 100? 1000? more? you know that if 1 module
  provides 1 gadget... you'll run out of fd's long before you have enough
  items for this to matter. this is micro-optimisation with no real effect.
  :( every list item created will probably do dozens and dozens of
  strcmp's. this won't make a dent at all. even if they were all removed
  you'd still barely notice. :)

 But why do a not so good solution when the other solution is actually
 simpler code-wise? You'd be changing handling of pointers (!NULL) and
 then a comparison by just comparing two values.

 Actually, after discussing this Sergey just wisely remembered that we
 should use simple ENUM/integers and that gets even more simpler. Given
 the number of things this could grow, I would even say that integers
 should be powers of 2 and use a mask of accepted types, then no need
 to do functions and all, just set your mask and be happy.

So, what solution we will come? Should I make it with integer enums?
And inside is_site callback we can use masks, cases, and etc., what we need in 
concrete module.

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] [PATCH] Remove Evas_Bool, Evas_List and Evas_Hash

2009-06-18 Thread Sergey Semernin
Hello, All.

In some modules deprecated types are still exists, and I removed it.

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992
Index: esmart/src/lib/esmart_cairo/esmart_cairo.c
===
--- esmart/src/lib/esmart_cairo/esmart_cairo.c	(revision 41097)
+++ esmart/src/lib/esmart_cairo/esmart_cairo.c	(working copy)
@@ -73,7 +73,7 @@
  * @see esmart_image_cairo_surface_set()
  */
 Evas_Object *
-esmart_image_cairo_new(Evas *evas, Evas_Coord w, Evas_Coord h, Evas_Bool alpha)
+esmart_image_cairo_new(Evas *evas, Evas_Coord w, Evas_Coord h, Eina_Bool alpha)
 {
cairo_surface_t *surface;
cairo_format_t format;
@@ -183,7 +183,7 @@
  * @param cairo_surface the image surface to associate.
  * @return 1 on success, 0 on failure.
  */
-Evas_Bool
+Eina_Bool
 esmart_image_cairo_surface_set(Evas_Object *o, cairo_surface_t *cairo_surface)
 {
cairo_status_t status;
@@ -280,7 +280,7 @@
  * @param enable if true, enable this behavior, false disables it.
  */
 void
-esmart_image_cairo_fill_auto_set(Evas_Object *o, Evas_Bool enable)
+esmart_image_cairo_fill_auto_set(Evas_Object *o, Eina_Bool enable)
 {
evas_object_event_callback_del(
   o, EVAS_CALLBACK_RESIZE, _esmart_image_cairo_resized);
Index: esmart/src/lib/esmart_textarea/esmart_textarea_private.c
===
--- esmart/src/lib/esmart_textarea/esmart_textarea_private.c	(revision 41097)
+++ esmart/src/lib/esmart_textarea/esmart_textarea_private.c	(working copy)
@@ -60,7 +60,7 @@
 
 /* focus / unfocus (to accept key strokes) textarea */
 void
-_esmart_textarea_focus_set(Esmart_Text_Area *t, Evas_Bool focus)
+_esmart_textarea_focus_set(Esmart_Text_Area *t, Eina_Bool focus)
 {
evas_object_focus_set(t-text, focus);
 }
@@ -137,14 +137,14 @@
return evas_object_textblock_line_end_pos_get(t-text);
 }
 
-Evas_Bool
+Eina_Bool
 _esmart_textarea_line_get(Esmart_Text_Area *t, int line, Evas_Coord *lx, 
 			  Evas_Coord *ly, Evas_Coord *lw, Evas_Coord *lh)
 {
return evas_object_textblock_line_get(t-text, line, lx, ly, lw, lh);
 }
 
-Evas_Bool
+Eina_Bool
 _esmart_textarea_char_pos_get(Esmart_Text_Area *t, int pos, Evas_Coord *cx, 
 			  Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch)
 {
Index: esmart/src/lib/esmart_textarea/esmart_textarea_public.c
===
--- esmart/src/lib/esmart_textarea/esmart_textarea_public.c	(revision 41097)
+++ esmart/src/lib/esmart_textarea/esmart_textarea_public.c	(working copy)
@@ -107,7 +107,7 @@
 
 /* focus / unfocus textarea */
 EAPI void
-esmart_textarea_focus_set(Evas_Object *o, Evas_Bool focus)
+esmart_textarea_focus_set(Evas_Object *o, Eina_Bool focus)
 {
Esmart_Text_Area *t;

@@ -232,7 +232,7 @@
return _esmart_textarea_line_end_pos_get(t);
 }
 
-EAPI Evas_Bool
+EAPI Eina_Bool
 esmart_textarea_line_get(Evas_Object *o, int line, Evas_Coord *lx, 
 			  Evas_Coord *ly, Evas_Coord *lw, Evas_Coord *lh)
 {
@@ -242,7 +242,7 @@
return _esmart_textarea_line_get(t, line, lx, ly, lw, lh);
 }
 
-EAPI Evas_Bool
+EAPI Eina_Bool
 esmart_textarea_char_pos_get(Evas_Object *o, int pos, Evas_Coord *cx, 
 			  Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch)
 {
Index: PROTO/extrackt/src/bin/conf.c
===
--- PROTO/extrackt/src/bin/conf.c	(revision 41097)
+++ PROTO/extrackt/src/bin/conf.c	(working copy)
@@ -12,9 +12,9 @@
 			  (void *(*) (void *, void *))eina_list_append, \
 			  (void *(*) (void *))eina_list_data_get, \
 			  (void *(*) (void *))eina_list_free, \
-			  (void  (*) (void *, int (*) (void *, const char *, void *, void *), void *))evas_hash_foreach, \
-			  (void *(*) (void *, const char *, void *))evas_hash_add, \
-			  (void  (*) (void *))evas_hash_free)
+			  (void  (*) (void *, int (*) (void *, const char *, void *, void *), void *))eina_hash_foreach, \
+			  (void *(*) (void *, const char *, void *))eina_hash_add, \
+			  (void  (*) (void *))eina_hash_free)
 
 #define FREED(eed) \
if (eed) \
Index: E-MODULES-EXTRA/tiling/e_mod_main.c
===
--- E-MODULES-EXTRA/tiling/e_mod_main.c	(revision 41097)
+++ E-MODULES-EXTRA/tiling/e_mod_main.c	(working copy)
@@ -38,7 +38,7 @@
 static int currently_switching_desktop = 0;
 
 /* This hash holds the Tiling_Info-pointers for each desktop */
-static Evas_Hash *info_hash = NULL;
+static Eina_Hash *info_hash = NULL;
 
 static void _e_mod_action_toggle_tiling_cb(E_Object *obj, const char *params);
 static void _e_mod_action_toggle_floating_cb(E_Object *obj, const char *params);
@@ -585,7 +585,7 @@
res-desk = desk;
res-big_perc = tiling_config-big_perc;
res-need_rearrange = 0;
-   info_hash = evas_hash_add(info_hash, desk_hash_key(desk), res);
+   info_hash = 

Re: [E-devel] [PATCH] efm2 hal handling API - full changes

2009-06-08 Thread Sergey Semernin
Hello, Gustavo.

In message from 7 июня 2009 Gustavo Sverzut Barbieri wrote:

  Directly before connect iPod to system's bus, and stop after disconnect
  iPod:
 
  $ dbus-monitor --system sender=org.freedesktop.Hal
 
  That's to catch all HAL messages. There is several critical to us
  interfaces: org.freedesktop.Hal.Manager, org.freedesktop.Hal.Device, and
  org.freedesktop.Hal.Device.Volume.

 Attached is the log, not much I could figure out the problem, I guess
 you have a better time.

I have taken iPod from my friend to test your problem. For tests I'm using SVN 
E17 code compiled on Debian 5.0r1 Lenny. System running on iP4, i865PE 
chipset. I have d-bus 1.2.1 and hal 0.5.11.

Mounting, unmounting and removing both in efm and places are producing proper 
volume's icon update. That's strange... I have analysed your log too, and 
found that all DeviceRemoved events are present. I'm attaching my iPod 
hal-dbus log to this mail. I can't produce same bug with real iPod...

So, If after refresh efm favorites icon of disconnected iPod is disappearing, 
this implyies that e_fm_hal.c:_e_fm2_volume_erase method is executed. And 
E_FM_OP_VOLUME_DEL handler executed too. Icon was updated in 
_e_fm2_file_force_update too...


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992
signal sender=org.freedesktop.DBus - dest=:1.104 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string :1.104
signal sender=:1.0 - dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
   string /org/freedesktop/Hal/devices/usb_device_5ac_1301_000A27001C1C2176
signal sender=:1.0 - dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
   string /org/freedesktop/Hal/devices/usb_device_5ac_1301_000A27001C1C2176_if0
signal sender=:1.0 - dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
   string /org/freedesktop/Hal/devices/usb_device_5ac_1301_000A27001C1C2176_usbraw
signal sender=:1.0 - dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
   string /org/freedesktop/Hal/devices/usb_device_5ac_1301_000A27001C1C2176_if0_scsi_host
signal sender=:1.0 - dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
   string /org/freedesktop/Hal/devices/usb_device_5ac_1301_000A27001C1C2176_if0_scsi_host_scsi_device_lun0
signal sender=:1.0 - dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
   string /org/freedesktop/Hal/devices/usb_device_5ac_1301_000A27001C1C2176_if0_scsi_host_scsi_device_lun0_scsi_generic
signal sender=:1.0 - dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
   string /org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A27001C1C2176_0_0
signal sender=:1.0 - dest=(null destination) path=/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A27001C1C2176_0_0; interface=org.freedesktop.Hal.Device; member=PropertyModified
   int32 1
   array [
  struct {
 string info.interfaces
 boolean false
 boolean false
  }
   ]
signal sender=:1.0 - dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
   string /org/freedesktop/Hal/devices/volume_uuid_14E9_DEB0
signal sender=:1.0 - dest=(null destination) path=/org/freedesktop/Hal/devices/volume_uuid_14E9_DEB0; interface=org.freedesktop.Hal.Device; member=PropertyModified
   int32 2
   array [
  struct {
 string volume.mount_point
 boolean false
 boolean false
  }
  struct {
 string volume.is_mounted
 boolean false
 boolean false
  }
   ]
signal sender=:1.0 - dest=(null destination) path=/org/freedesktop/Hal/devices/volume_uuid_14E9_DEB0; interface=org.freedesktop.Hal.Device; member=PropertyModified
   int32 2
   array [
  struct {
 string volume.mount_point
 boolean false
 boolean false
  }
  struct {
 string volume.is_mounted
 boolean false
 boolean false
  }
   ]
signal sender=:1.0 - dest=(null destination) path=/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A27001C1C2176_0_0; interface=org.freedesktop.Hal.Device; member=PropertyModified
   int32 1
   array [
  struct {
 string storage.removable.media_available
 boolean false
 boolean false
  }
   ]
signal sender=:1.0 - dest=(null destination) path=/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A27001C1C2176_0_0; interface=org.freedesktop.Hal.Device; member=PropertyModified
   int32 1
   array [
  struct {
 string 

Re: [E-devel] [PATCH] efm_path module improvement

2009-06-07 Thread Sergey Semernin
Hello, Gustavo.

In message from 7 июня 2009 Gustavo Sverzut Barbieri wrote:

 sorry taking so late, but I thought somebody else applied your patch.
 Now in svn!

You missed new efm_path/images subdir. I was added it because I add 'clear' 
and 'go' buttons to theme.

Also, earlier, I published path for efm_nav: navigation via keyboard 
shortcuts.
I attaching this files to this mail.

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992


0008-patch-efm-path-look.tar.bz2
Description: application/tbz
This patch adding keyboard shortcuts to efm_nav module.
When efm_nav placed on efm2 window toolbar, next shortcuts are activated:
Alt+Left  -- backward in chdir's history,
Alt+Right -- forward in chdir's history,
Alt+Up-- go to parent dir,
Control+r -- refresh view of current dir.

 e_mod_main.c |   39 +--
 1 file changed, 37 insertions(+), 2 deletions(-)

Index: E-MODULES-EXTRA/efm_nav/src/e_mod_main.c
===
--- E-MODULES-EXTRA/efm_nav/src/e_mod_main.c	(revision 40471)
+++ E-MODULES-EXTRA/efm_nav/src/e_mod_main.c	(working copy)
@@ -23,6 +23,8 @@
 static const char  *_gc_id_new(E_Gadcon_Client_Class *client_class);
 static void _cb_mouse_down(void *data, Evas *e, 
 	   Evas_Object *obj, void *event_info);
+static void _cb_key_down  (void *data, Evas *e,
+   Evas_Object *obj, void *event_info);
 static void _cb_back_click(void *data, Evas_Object *obj, 
 	   const char *emission, 
 	   const char *source);
@@ -58,6 +60,7 @@
 _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) 
 {
Instance *inst = NULL;
+   Evas_Object *o_fm;
char buf[4096];
 
inst = E_NEW(Instance, 1);
@@ -135,6 +138,10 @@
 
evas_object_event_callback_add(inst-o_base, EVAS_CALLBACK_MOUSE_DOWN, 
   _cb_mouse_down, inst);
+   o_fm = e_toolbar_fm2_get(inst-tbar);
+   if (o_fm)
+ evas_object_event_callback_add(o_fm, EVAS_CALLBACK_KEY_DOWN,
+_cb_key_down, inst);
 
edje_object_signal_emit(inst-o_back, e,state,disabled, e);
edje_object_message_signal_process(inst-o_back);
@@ -149,10 +156,14 @@
 _gc_shutdown(E_Gadcon_Client *gcc) 
 {
Instance *inst = NULL;
+   Evas_Object *o_fm;
 
inst = gcc-data;
if (!inst) return;
instances = eina_list_remove(instances, inst);
+   o_fm = e_toolbar_fm2_get(inst-tbar);
+   if (o_fm)
+  evas_object_event_callback_del(o_fm, EVAS_CALLBACK_KEY_DOWN, _cb_key_down);
if (inst-history) ecore_list_destroy(inst-history);
if (inst-o_favorites) evas_object_del(inst-o_favorites);
if (inst-o_back) evas_object_del(inst-o_back);
@@ -175,11 +186,11 @@
  {
   case E_GADCON_ORIENT_TOP:
   case E_GADCON_ORIENT_BOTTOM:
-	e_gadcon_client_aspect_set(gcc, 16 * 3, 16);
+	e_gadcon_client_aspect_set(gcc, 16 * 4, 16);
 	break;
   case E_GADCON_ORIENT_LEFT:
   case E_GADCON_ORIENT_RIGHT:
-	e_gadcon_client_aspect_set(gcc, 16, 16 * 3);
+	e_gadcon_client_aspect_set(gcc, 16, 16 * 4);
 	break;
   default:
 	break;
@@ -250,6 +261,30 @@
 }
 
 /* local functions */
+static void
+_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+   Instance *inst;
+   Evas_Event_Key_Down *ev;
+
+   inst = data;
+   ev = event_info;
+   if (evas_key_modifier_is_set(ev-modifiers, Alt))
+ {
+if (!strcmp(ev-key, Left))
+   _cb_back_click(inst, obj, e,action,click, e);
+else if (!strcmp(ev-key, Right))
+   _cb_forward_click(inst, obj, e,action,click, e);
+else if (!strcmp(ev-key, Up))
+   _cb_up_click(inst, obj, e,action,click, e);
+ }
+   else if (evas_key_modifier_is_set(ev-modifiers, Control))
+ {
+if (!strcmp(ev-key, r))
+   _cb_refresh_click(inst, obj, e,action,click, e);
+ }
+}
+
 static void 
 _cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) 
 {
--
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [PATCH] efm2 hal handling API - full changes

2009-06-07 Thread Sergey Semernin
Hello, Gustavo.

In message from 7 июня 2009 Gustavo Sverzut Barbieri wrote:

  In svn, but I noticed that ejecting my ipod will not make its icon
  disappear from efm window.
 
  Have'nt iPod now, but other mp3-players, such as Creative Zen ejecting
  and icon removing correctly... Maybe reason is in HAL settings? I have
  external USB-to-IDE controller that acts same as you wrote. Icon will not
  disappear until power off the external drive (independently of using
  WM/DE).

 dunno, it work from places and also if I close and reopen the efm it
 will not show the device anymore.

In places drive icon removing immediately when eject and in efm favorites 
and desktop this icon don't removing? It's removing after efm window 
refreshed? I asking because 'volume remove' signal handler must remove volume 
icon independently from source when 'eject' signal emitted. Can you send me 
HAL and D-BUS logs on insert, mounting, unmounting and ejecting iPod?
(if anyone have iPod then send this logs too, if it possible)


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [PATCH] efm2 hal handling API - full changes

2009-06-07 Thread Sergey Semernin
Hello, Gustavo.

In message from 7 июня 2009 Gustavo Sverzut Barbieri wrote:

  I asking because 'volume remove' signal handler must remove volume
  icon independently from source when 'eject' signal emitted.

 i did think the same, that's why I said about it.

  Can you send me
  HAL and D-BUS logs on insert, mounting, unmounting and ejecting iPod?
  (if anyone have iPod then send this logs too, if it possible)

 which log do you mean? dbus-monitor? If so, which expression should I
 use to monitor it?

Directly before connect iPod to system's bus, and stop after disconnect iPod:

$ dbus-monitor --system sender=org.freedesktop.Hal

That's to catch all HAL messages. There is several critical to us interfaces:
org.freedesktop.Hal.Manager, org.freedesktop.Hal.Device, and 
org.freedesktop.Hal.Device.Volume.


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [PATCH] efm2 hal handling API - full changes

2009-06-06 Thread Sergey Semernin
Hello, All.

In message from 7 июня 2009 Gustavo Sverzut Barbieri wrote:

 In svn, but I noticed that ejecting my ipod will not make its icon
 disappear from efm window.

Have'nt iPod now, but other mp3-players, such as Creative Zen ejecting and 
icon removing correctly... Maybe reason is in HAL settings? I have external 
USB-to-IDE controller that acts same as you wrote. Icon will not disappear 
until power off the external drive (independently of using WM/DE).


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] fm2 preview plugin

2009-06-01 Thread Sergey Semernin
Hello, All.

What kind of fm2 preview plugin is mean?
I see it as 'preview' fm2 filelist mode with:
1. rect zone for embedding graphics,
2. area with filelist,
3. area with toolbar to rotate, zoom and pan preview.

So, we need a way to bind file's mimetype and preview module,
that embedding into zone (1). Also we need unified preview
module interface, such as:
1. open file and show it,
2. zoom in/out,
3. pan.

Have e17 a way to bind mimetype and view plugin (for ex. as in KDE 
KParts::ReadOnlyPart)? That's in order to avoid duplicating functionality.
Second, to build unified preview module interface, is it possible to use 
E17 'smart objects' paradigm and structures with functors (pointers to
module's functions) or I need something else?


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] [PATCH] efm2 hal handling API - full changes

2009-05-28 Thread Sergey Semernin
Hello, All.

This patch contains all my previous modifications efm2 HAL API
(patch from 22/05/09 named 0010-patch-efm-hal-api).
So, this patch must be imported to svn instead of previous.

New changes are:

1. Added E_FM_OP_EJECT command to e_fm_main. It unmounts volume
   before eject, if it necessary.
2. Added timeouts of mounting/unmounting/ejecting media, and
   it's moved to slave e_fm_main.c. Each timeout will generate
   *_MOUNT_ERROR, *_UNMOUNT_ERROR and *_EJECT_ERROR message.
3. Added auto mount on insert media and auto showing efm2 window
   on mount volume options to filemanager config.
4. Added mounted/unmounted glyphs to efm2 icons and track state
   code. Now each removable device have M glyph on icon if mounted
   and U when unmounted.
5. Added mount/unmount/eject commands to icon dropdown menu.
6. Russian translation of mew messages.
7. Other bugfixes and improvements for co-operation.

Now, efm2 contains all code to mount/umnount/eject removable media and
all code to provide corresponding user interface.
It can working independently from 'places' or co-operate with it.


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992


0010-2-patch-efm-hal-api.tar.bz2
Description: application/tbz
--
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT 
is a gathering of tech-side developers  brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing,  
iPhoneDevCamp as they present alongside digital heavyweights like Barbarian 
Group, R/GA,  Big Spaceship. http://p.sf.net/sfu/creativitycat-com ___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Timeouts while mounting/unmounting removable devices

2009-05-25 Thread Sergey Semernin
Hello, Dave.

I'm working on operations with removable volumes in efm2.
There is some questions I have:
1. Timeouts realized as timers in each E_Fm2_Mount that represents
   efm2 window link to E_Volume. Maybe use d-bus timeout call in 
   slave (e_fm_main) and return calls as E_FM_OP_MOUNT_TIMEOUT and
   E_FM_OP_UNMOUNT_TIMEOUT?
   In that way we will be able to cancel that call. IMHO it rather
   that we have now. For example, unmount needs timeout too, but
   it can't realize when no associated E_Fm2_Mount object exists.
2. Styles of device icons needs a parts to display volume state
   (mounted/unmounted). Right?
3. Also we need f E_FM_OP_EJECT slave operation which unmounting
   volume (if mounted) and then eject it. Also E_FM_OP_EJECT_ERROR
   we need. Success in this case - removing volume, and timeouts are
   E_FM_OP_UNMOUNT_TIMEOUT and E_FM_OP_EJECT_TIMEOUT. Right?

Several days ago, I sent patch with mount/unmount errors handling, now I'm
doing the rest.


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers  brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing,  
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA,  Big Spaceship. http://www.creativitycat.com 
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] [PATCH] Improvements to efm2 hal handling API

2009-05-22 Thread Sergey Semernin
Hello, All.

It is approach to integrate places functionality (and more) to efm2.

Improvements to efm2 hal messages processing API.

1. Added E_FM_OP_MOUNT_ERROR and E_FM_OP_UNMOUNT_ERROR slave signals.
   These signals occurs when mount or umount call to hal via d-bus
   completing with error.
2. Added mount and unmount error dialogs to efm2.
3. Completed mount_fail, umount_ok and umount_fail callbacks in e_fm_hal.
   mount_fail is called when error from d-bus received or mount timeout reached.
   umount_ok is called when volume successfully unmounted or removed.
   unmount_fail is called when error from d-bus received.
4. On hal errors corresponding efm2 windows closing or fallback to favorites
   (when open dirs in place activated).
5. On volume removing (for example, unmount from command line) corresponding
   efm2 windows closing.
6. Fixed linking to already mounted volumes when new efm2 windows opened or
   directory changed (when open dirs in place activated).
7. Only volumes mounted with efm2 will be unmounting when last efm2 window
   of it volume is closed.

Now, all e_fm2_hal routines estimating that not only efm2 and e17 can perform
operations with storages and volumes. Next, we need GUI to operate with volumes 
by hands as it in others DE.


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992
Index: e/src/bin/e_fm.c
===
--- e/src/bin/e_fm.c	(revision 40767)
+++ e/src/bin/e_fm.c	(working copy)
@@ -359,6 +359,8 @@
 static void _e_fm_error_ignore_this_cb(void *data, E_Dialog *dialog);
 static void _e_fm_error_ignore_all_cb(void *data, E_Dialog *dialog);
 
+static void _e_fm_hal_error_dialog(const char *title, const char *msg, const char *pstr);
+
 static void _e_fm2_file_delete(Evas_Object *obj);
 static void _e_fm2_file_delete_menu(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_fm2_file_delete_delete_cb(void *obj);
@@ -809,15 +811,31 @@
 
sd = evas_object_smart_data_get(data);
if (!sd) return; // safety
-   /* FIXME; some dialog */
if (sd-mount)
  {
-	e_fm2_hal_unmount(sd-mount);
+// At this moment E_Fm2_Mount object already deleted in e_fm_hal.c
 	sd-mount = NULL;
-	evas_object_smart_callback_call(data, dir_deleted, NULL);
+if (sd-config-view.open_dirs_in_place)
+   e_fm2_path_set(data, favorites, /);
+else
+   evas_object_smart_callback_call(data, dir_deleted, NULL);
  }
 }
 
+static void
+_e_fm2_cb_unmount_ok(void *data)
+{
+   E_Fm2_Smart_Data *sd;
+
+   sd = evas_object_smart_data_get(data);
+   if (!sd) return;
+   if (sd-mount)
+ {
+sd-mount = NULL;
+evas_object_smart_callback_call(data, dir_deleted, NULL);
+ }
+}
+
 void
 _e_fm2_path_parent_set(Evas_Object *obj, const char *path)
 {
@@ -945,7 +963,7 @@
 	if (v)
 	  sd-mount = e_fm2_hal_mount(v,
  _e_fm2_cb_mount_ok, _e_fm2_cb_mount_fail,
- NULL, NULL, obj);
+ _e_fm2_cb_unmount_ok, NULL, obj);
  }
else if (sd-config-view.open_dirs_in_place == 0)
  {
@@ -954,7 +972,7 @@
 	if (m)
 	  sd-mount = e_fm2_hal_mount(m-volume,
  _e_fm2_cb_mount_ok, _e_fm2_cb_mount_fail,
- NULL, NULL, obj);
+ _e_fm2_cb_unmount_ok, NULL, obj);
  }
 
if (!sd-mount || sd-mount-mounted)
@@ -2944,15 +2962,42 @@
 
 	 udi = e-data;
 	 v = e_fm2_hal_volume_find(udi);
-	 if (v)
-	   {
-		  v-mounted = 0;
-		  if (v-mount_point) free(v-mount_point);
-		  v-mount_point = NULL;
-	   }
+	 if (v) e_fm2_hal_mount_del(v);
 	  }
 	break;
 
+  case E_FM_OP_MOUNT_ERROR:/*mount error*/
+if (e-data  (e-size  1))
+  {
+ E_Volume *v;
+ char *udi;
+
+ udi = e-data;
+ v = e_fm2_hal_volume_find(udi);
+ if (v) 
+   {
+  _e_fm_hal_error_dialog(_(Mount Error), _(Can't mount device), e-data);
+  e_fm2_hal_mount_fail(v);
+   }
+  }
+break;
+
+  case E_FM_OP_UNMOUNT_ERROR:/*unmount error*/
+if (e-data  (e-size  1))
+  {
+ E_Volume *v;
+ char *udi;
+
+ udi = e-data;
+ v = e_fm2_hal_volume_find(udi);
+ if (v)
+   {
+  _e_fm_hal_error_dialog(_(Unmount Error), _(Can't unmount device), e-data);
+  e_fm2_hal_unmount_fail(v);
+   }
+  }
+break;
+
   case E_FM_OP_ERROR:/*error*/
 	 printf(%s:%s(%d) Error from slave #%d: %s\n, __FILE__, __FUNCTION__, __LINE__, e-ref, (char *)e-data);
 	 _e_fm_error_dialog(e-ref, e-data);
@@ -9002,6 +9047,37 @@
 }
 
 static void
+_e_fm_hal_error_dialog(const char *title, const char *msg, const char *pstr)
+{
+   E_Manager *man;
+   E_Container *con;
+   E_Dialog *dialog;
+   char text[4096];
+   const char *u, *d, *n, *m;
+
+   man = e_manager_current_get();
+   if 

Re: [E-devel] [PATCH] In-place renaming for efm2

2009-05-17 Thread Sergey Semernin
Hello, Dave.

In message from 17 мая 2009 Dave Andreoli wrote:

 2009/5/15 Carsten Haitzler ras...@rasterman.com

   P.P.S. Where disappearing keyboard event sent to desktop and icons on
   it?
 
  there is no event. the desktop cannot get focus - only windows can.
  example -
  sloppy focus means that even if you click and have the mouse over the
  desktop,
  focus stays with the last focused window. renaming on the desktop needs
  special
  attention. it's something i know about :)

 Is this also the reason that make a gadget with a textbox never take the
 focus on the desktop?

Yes, If editable TEXTBLOCK created in e/fileman/desktop/icon/(variable|fixed) 
or e_widget_entry swallowed in e.swallow.entry part of it. All graphics 
representation of entry part/widget is created properly. But it don't receive 
any keyboard and focus events, and this actual for other gadgets with text 
entries too. Also, navigation with cursor keys amongst icons on desktop are 
impossible now.


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables 
unlimited royalty-free distribution of the report engine 
for externally facing server and web deployment. 
http://p.sf.net/sfu/businessobjects
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [PATCH] efm_nav keyboard shortcuts

2009-05-15 Thread Sergey Semernin
Hello, All.

In message from 15 мая 2009 Carsten Haitzler wrote:

 On Fri, 1 May 2009 11:02:59 +0400 Sergey Semernin
 sergey.semer...@gmail.com said:

 request. can you attach your patch, not inline it? line wrapping destroys
 it.


Ok. Attaching patch and diff files.


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992
This patch adding keyboard shortcuts to efm_nav module.
When efm_nav placed on efm2 window toolbar, next shortcuts are activated:
Alt+Left  -- backward in chdir's history,
Alt+Right -- forward in chdir's history,
Alt+Up-- go to parent dir,
Control+r -- refresh view of current dir.

 e_mod_main.c |   39 +--
 1 file changed, 37 insertions(+), 2 deletions(-)

Index: E-MODULES-EXTRA/efm_nav/src/e_mod_main.c
===
--- E-MODULES-EXTRA/efm_nav/src/e_mod_main.c	(revision 40471)
+++ E-MODULES-EXTRA/efm_nav/src/e_mod_main.c	(working copy)
@@ -23,6 +23,8 @@
 static const char  *_gc_id_new(E_Gadcon_Client_Class *client_class);
 static void _cb_mouse_down(void *data, Evas *e, 
 	   Evas_Object *obj, void *event_info);
+static void _cb_key_down  (void *data, Evas *e,
+   Evas_Object *obj, void *event_info);
 static void _cb_back_click(void *data, Evas_Object *obj, 
 	   const char *emission, 
 	   const char *source);
@@ -58,6 +60,7 @@
 _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) 
 {
Instance *inst = NULL;
+   Evas_Object *o_fm;
char buf[4096];
 
inst = E_NEW(Instance, 1);
@@ -135,6 +138,10 @@
 
evas_object_event_callback_add(inst-o_base, EVAS_CALLBACK_MOUSE_DOWN, 
   _cb_mouse_down, inst);
+   o_fm = e_toolbar_fm2_get(inst-tbar);
+   if (o_fm)
+ evas_object_event_callback_add(o_fm, EVAS_CALLBACK_KEY_DOWN,
+_cb_key_down, inst);
 
edje_object_signal_emit(inst-o_back, e,state,disabled, e);
edje_object_message_signal_process(inst-o_back);
@@ -149,10 +156,14 @@
 _gc_shutdown(E_Gadcon_Client *gcc) 
 {
Instance *inst = NULL;
+   Evas_Object *o_fm;
 
inst = gcc-data;
if (!inst) return;
instances = eina_list_remove(instances, inst);
+   o_fm = e_toolbar_fm2_get(inst-tbar);
+   if (o_fm)
+  evas_object_event_callback_del(o_fm, EVAS_CALLBACK_KEY_DOWN, _cb_key_down);
if (inst-history) ecore_list_destroy(inst-history);
if (inst-o_favorites) evas_object_del(inst-o_favorites);
if (inst-o_back) evas_object_del(inst-o_back);
@@ -175,11 +186,11 @@
  {
   case E_GADCON_ORIENT_TOP:
   case E_GADCON_ORIENT_BOTTOM:
-	e_gadcon_client_aspect_set(gcc, 16 * 3, 16);
+	e_gadcon_client_aspect_set(gcc, 16 * 4, 16);
 	break;
   case E_GADCON_ORIENT_LEFT:
   case E_GADCON_ORIENT_RIGHT:
-	e_gadcon_client_aspect_set(gcc, 16, 16 * 3);
+	e_gadcon_client_aspect_set(gcc, 16, 16 * 4);
 	break;
   default:
 	break;
@@ -250,6 +261,30 @@
 }
 
 /* local functions */
+static void
+_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+   Instance *inst;
+   Evas_Event_Key_Down *ev;
+
+   inst = data;
+   ev = event_info;
+   if (evas_key_modifier_is_set(ev-modifiers, Alt))
+ {
+if (!strcmp(ev-key, Left))
+   _cb_back_click(inst, obj, e,action,click, e);
+else if (!strcmp(ev-key, Right))
+   _cb_forward_click(inst, obj, e,action,click, e);
+else if (!strcmp(ev-key, Up))
+   _cb_up_click(inst, obj, e,action,click, e);
+ }
+   else if (evas_key_modifier_is_set(ev-modifiers, Control))
+ {
+if (!strcmp(ev-key, r))
+   _cb_refresh_click(inst, obj, e,action,click, e);
+ }
+}
+
 static void 
 _cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) 
 {
Index: E-MODULES-EXTRA/efm_nav/src/e_mod_main.c
===
--- E-MODULES-EXTRA/efm_nav/src/e_mod_main.c	(revision 40471)
+++ E-MODULES-EXTRA/efm_nav/src/e_mod_main.c	(working copy)
@@ -23,6 +23,8 @@
 static const char  *_gc_id_new(E_Gadcon_Client_Class *client_class);
 static void _cb_mouse_down(void *data, Evas *e, 
 	   Evas_Object *obj, void *event_info);
+static void _cb_key_down  (void *data, Evas *e,
+   Evas_Object *obj, void *event_info);
 static void _cb_back_click(void *data, Evas_Object *obj, 
 	   const char *emission, 
 	   const char *source);
@@ -58,6 +60,7 @@
 _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) 
 {
Instance *inst = NULL;
+   Evas_Object *o_fm;
char buf[4096];
 
inst = E_NEW(Instance, 1);
@@ -135,6 +138,10 @@
 
evas_object_event_callback_add(inst-o_base, EVAS_CALLBACK_MOUSE_DOWN, 
   _cb_mouse_down, inst);
+   o_fm

Re: [E-devel] [PATCH] efm_path module improvement

2009-05-15 Thread Sergey Semernin
Hello, All.

In message from 15 мая 2009 Carsten Haitzler wrote:

 On Tue, 12 May 2009 15:28:42 +0400 Sergey P. Semernin
 sergey.semer...@gmail.com said:

 hey may! again - can you attach the patch not inline it? :)


Ok. Sorry. Attaching.



Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992
Some improvements on efm_path module:
1. fixed Location: label sizing,
2. added button to clear path entry,
3. added button to go to the path specified in entry,
4. added image files for modified module theme.

What need to do:
1. Make path entry history in efm2 user configuration file.
2. Make combobox for path entry. (We have'nt combobox in e now?
   In etk and ewl combos are exists, but not in e...)
3. Make path autocompletion in entry (from history and real path).

 Makefile.am   |2 
 e-module-efm_path.edc |  295 --
 src/e_mod_main.c  |   56 ++---
 3 files changed, 326 insertions(+), 27 deletions(-)

Index: E-MODULES-EXTRA/efm_path/e-module-efm_path.edc
===
--- E-MODULES-EXTRA/efm_path/e-module-efm_path.edc	(revision 40597)
+++ E-MODULES-EXTRA/efm_path/e-module-efm_path.edc	(working copy)
@@ -1,6 +1,12 @@
 images 
 {
image: entry.png COMP;
+   image: bt_base1.png COMP;
+   image: bt_base2.png COMP;
+   image: clear.png COMP;
+   image: go.png COMP;
+   image: bt_hilight.png COMP;
+   image: bt_shine.png COMP;
 }
 
 collections 
@@ -41,22 +47,139 @@
 		   color: 255 255 255 0;
 		}
 	   }
-	 part 
+	   
+	 // Clear button
+	 part
 	   {
-		  name: e.swallow.location;
-		  type: SWALLOW;
-		  description 
+	  name: bg_clear;
+	  type: IMAGE;
+	  mouse_events: 1;
+	  repeat_events: 1;
+	  description 
+	{
+	   state: default 0.0;
+	   align: 0.0 0.5;
+	   rel1.to: base;
+	   rel2
+	 {
+	relative: 0.0 1.0;
+	to: base;
+	 }
+	   max: 28 28;
+	   aspect: 1.0 1.0;
+	   aspect_preference: VERTICAL;
+	   image
+	 {
+	normal: bt_base2.png;
+	border: 7 7 7 7;
+	 }
+	}
+	  description
+	{
+	   state: down 0.0;
+	   inherit: default 0.0;
+	   image.normal: bt_base1.png;
+	}
+	   }
+	 part
+	   {
+		  name: img_clear;
+		  type: IMAGE;
+		  mouse_events: 0;
+		  description
 		{
 		   state: default 0.0;
-		   align: 0.0 0.5;
-		   rel1.to: base;
+		   max: 18 18;
+		   rel1
+			 {
+			offset: 7 7;
+			to: bg_clear;
+			 }
+		   rel2
+			 {
+			offset: -8 -8;
+			to: bg_clear;
+			 }
+		   image.normal: clear.png;
+		}
+	   }
+	 part
+	   {
+		  name: fg1_clear;
+		  type: IMAGE;
+		  mouse_events: 1;
+		  repeat_events: 1;
+		  description
+		{
+		   state: default 0.0;
+		   rel1.to: bg_clear;
 		   rel2 
+		 {
+		relative: 1.0 0.5;
+		to: bg_clear;
+		 }
+		   image
 			 {
-			relative: 0.2 1.0;
-			to: base;
+			normal: bt_hilight.png;
+			border: 7 7 7 0;
 			 }
 		}
 	   }
+	 part
+	   {
+		  name: fg2_clear;
+		  type: IMAGE;
+		  mouse_events: 1;
+		  repeat_events: 1;
+		  description
+		{
+		   state: default 0.0;
+		   rel1.to: bg_clear;
+		   rel2.to: bg_clear;
+		   image
+			 {
+			normal: bt_shine.png;
+			border: 7 7 7 7;
+			 }
+		}
+	   }
+	   
+	 // Location text label
+	 part
+	   {
+	  name: e.text.title;
+	  type: TEXT;
+	  mouse_events: 0;
+	  scale: 1;
+	  description
+	{
+	   state: default 0.0;
+	   visible: 1;
+	   align: 0.0 0.5;
+	   rel1
+	 {
+	relative: 1.0 0.0;
+	to_x: bg_clear;
+	to_y: base;
+	 }
+	   rel2
+	 {
+	relative: 0.0 1.0;
+	to_x: e.swallow.entry;
+	to_y: base;
+	 }
+	   color: 0 0 0 255;
+	   text
+	 {
+	font: Sans;
+	size: 10;
+	min: 1 1;
+	max: 1 1;
+	align: 0.0 0.5;
+	 }	   
+	}
+	   }
+	 // Path entry
 	 part 
 	   {
 		  name: e.swallow.entry;
@@ -67,11 +190,163 @@
 		   rel1 
 			 {
 			relative: 1.0 0.0;
-			to_x: e.swallow.location;
+			to_x: e.text.title;
+			

Re: [E-devel] [PATCH] efm_path module improvement

2009-05-15 Thread Sergey Semernin
Hello, All.

In message from 15 мая 2009 Carsten Haitzler wrote:

 On Tue, 12 May 2009 15:28:42 +0400 Sergey P. Semernin
 sergey.semer...@gmail.com said:

 hey may! again - can you attach the patch not inline it? :)


Ok. Sorry. Attaching.



Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992
Some improvements on efm_path module:
1. fixed Location: label sizing,
2. added button to clear path entry,
3. added button to go to the path specified in entry,
4. added image files for modified module theme.

What need to do:
1. Make path entry history in efm2 user configuration file.
2. Make combobox for path entry. (We have'nt combobox in e now?
   In etk and ewl combos are exists, but not in e...)
3. Make path autocompletion in entry (from history and real path).

 Makefile.am   |2 
 e-module-efm_path.edc |  295 --
 src/e_mod_main.c  |   56 ++---
 3 files changed, 326 insertions(+), 27 deletions(-)

Index: E-MODULES-EXTRA/efm_path/e-module-efm_path.edc
===
--- E-MODULES-EXTRA/efm_path/e-module-efm_path.edc	(revision 40597)
+++ E-MODULES-EXTRA/efm_path/e-module-efm_path.edc	(working copy)
@@ -1,6 +1,12 @@
 images 
 {
image: entry.png COMP;
+   image: bt_base1.png COMP;
+   image: bt_base2.png COMP;
+   image: clear.png COMP;
+   image: go.png COMP;
+   image: bt_hilight.png COMP;
+   image: bt_shine.png COMP;
 }
 
 collections 
@@ -41,22 +47,139 @@
 		   color: 255 255 255 0;
 		}
 	   }
-	 part 
+	   
+	 // Clear button
+	 part
 	   {
-		  name: e.swallow.location;
-		  type: SWALLOW;
-		  description 
+	  name: bg_clear;
+	  type: IMAGE;
+	  mouse_events: 1;
+	  repeat_events: 1;
+	  description 
+	{
+	   state: default 0.0;
+	   align: 0.0 0.5;
+	   rel1.to: base;
+	   rel2
+	 {
+	relative: 0.0 1.0;
+	to: base;
+	 }
+	   max: 28 28;
+	   aspect: 1.0 1.0;
+	   aspect_preference: VERTICAL;
+	   image
+	 {
+	normal: bt_base2.png;
+	border: 7 7 7 7;
+	 }
+	}
+	  description
+	{
+	   state: down 0.0;
+	   inherit: default 0.0;
+	   image.normal: bt_base1.png;
+	}
+	   }
+	 part
+	   {
+		  name: img_clear;
+		  type: IMAGE;
+		  mouse_events: 0;
+		  description
 		{
 		   state: default 0.0;
-		   align: 0.0 0.5;
-		   rel1.to: base;
+		   max: 18 18;
+		   rel1
+			 {
+			offset: 7 7;
+			to: bg_clear;
+			 }
+		   rel2
+			 {
+			offset: -8 -8;
+			to: bg_clear;
+			 }
+		   image.normal: clear.png;
+		}
+	   }
+	 part
+	   {
+		  name: fg1_clear;
+		  type: IMAGE;
+		  mouse_events: 1;
+		  repeat_events: 1;
+		  description
+		{
+		   state: default 0.0;
+		   rel1.to: bg_clear;
 		   rel2 
+		 {
+		relative: 1.0 0.5;
+		to: bg_clear;
+		 }
+		   image
 			 {
-			relative: 0.2 1.0;
-			to: base;
+			normal: bt_hilight.png;
+			border: 7 7 7 0;
 			 }
 		}
 	   }
+	 part
+	   {
+		  name: fg2_clear;
+		  type: IMAGE;
+		  mouse_events: 1;
+		  repeat_events: 1;
+		  description
+		{
+		   state: default 0.0;
+		   rel1.to: bg_clear;
+		   rel2.to: bg_clear;
+		   image
+			 {
+			normal: bt_shine.png;
+			border: 7 7 7 7;
+			 }
+		}
+	   }
+	   
+	 // Location text label
+	 part
+	   {
+	  name: e.text.title;
+	  type: TEXT;
+	  mouse_events: 0;
+	  scale: 1;
+	  description
+	{
+	   state: default 0.0;
+	   visible: 1;
+	   align: 0.0 0.5;
+	   rel1
+	 {
+	relative: 1.0 0.0;
+	to_x: bg_clear;
+	to_y: base;
+	 }
+	   rel2
+	 {
+	relative: 0.0 1.0;
+	to_x: e.swallow.entry;
+	to_y: base;
+	 }
+	   color: 0 0 0 255;
+	   text
+	 {
+	font: Sans;
+	size: 10;
+	min: 1 1;
+	max: 1 1;
+	align: 0.0 0.5;
+	 }	   
+	}
+	   }
+	 // Path entry
 	 part 
 	   {
 		  name: e.swallow.entry;
@@ -67,11 +190,163 @@
 		   rel1 
 			 {
 			relative: 1.0 0.0;
-			to_x: e.swallow.location;
+			to_x: e.text.title;
+			

[E-devel] [PATCH] Ticket #273. Make fallback to parent dir when no permissions

2009-05-15 Thread Sergey Semernin
Hello, All.

Patch to ticket #273.
Now, when open dirs in place is active and user haven't permission to
open dir, efm2 fallback to parent directory. Also other events (for ex. 
delete)
on dirs opened in efm will cause go to it's parents in efm windows.

 e_fm.c |   30 +-
 1 file changed, 29 insertions(+), 1 deletion(-)

Index: e/src/bin/e_fm.c
===
--- e/src/bin/e_fm.c(revision 40672)
+++ e/src/bin/e_fm.c(working copy)
@@ -818,6 +818,29 @@
  }
 }
 
+void
+_e_fm2_path_parent_set(Evas_Object *obj, const char *path)
+{
+   char buf[PATH_MAX], *p;
+   int idx;
+
+   p = strrchr(path, '/');
+   if (!p || (p == path))
+  e_fm2_path_set(obj, /, /);
+   else
+ {
+idx = p - path;
+if (idx  PATH_MAX)
+  {
+ strncpy(buf, path, idx);
+ buf[idx] = '\0';
+ e_fm2_path_set(obj, /, buf);
+  }
+else
+  e_fm2_path_set(obj, /, /);
+ }
+}
+
 EAPI void
 e_fm2_path_set(Evas_Object *obj, const char *dev, const char *path)
 {
@@ -2827,12 +2850,17 @@
while (dels)
  {
Evas_Object *obj;
+E_Fm2_Smart_Data *sd;
 
obj = dels-data;
+sd = evas_object_smart_data_get(obj);
dels = eina_list_remove_list(dels, dels);
if ((_e_fm2_list_walking  0) 
(eina_list_data_find(_e_fm2_list_remove, obj))) continue;
-   evas_object_smart_callback_call(obj, dir_deleted, NULL);
+   if (sd-config-view.open_dirs_in_place)
+  _e_fm2_path_parent_set(obj, sd-realpath);
+   else
+  evas_object_smart_callback_call(obj, dir_deleted, NULL);
  }
_e_fm2_list_walking--;
if (_e_fm2_list_walking == 0)


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992
Index: e/src/bin/e_fm.c
===
--- e/src/bin/e_fm.c	(revision 40672)
+++ e/src/bin/e_fm.c	(working copy)
@@ -818,6 +818,29 @@
  }
 }
 
+void
+_e_fm2_path_parent_set(Evas_Object *obj, const char *path)
+{
+   char buf[PATH_MAX], *p;
+   int idx;
+
+   p = strrchr(path, '/');
+   if (!p || (p == path))
+  e_fm2_path_set(obj, /, /);
+   else
+ {
+idx = p - path;
+if (idx  PATH_MAX)
+  {
+ strncpy(buf, path, idx);
+ buf[idx] = '\0';
+ e_fm2_path_set(obj, /, buf);
+  }
+else
+  e_fm2_path_set(obj, /, /);
+ }
+}
+
 EAPI void
 e_fm2_path_set(Evas_Object *obj, const char *dev, const char *path)
 {
@@ -2827,12 +2850,17 @@
while (dels)
  {
 	Evas_Object *obj;
+E_Fm2_Smart_Data *sd;
 
 	obj = dels-data;
+sd = evas_object_smart_data_get(obj);
 	dels = eina_list_remove_list(dels, dels);
 	if ((_e_fm2_list_walking  0) 
 	(eina_list_data_find(_e_fm2_list_remove, obj))) continue;
-	evas_object_smart_callback_call(obj, dir_deleted, NULL);
+	if (sd-config-view.open_dirs_in_place)
+	   _e_fm2_path_parent_set(obj, sd-realpath);
+	else
+	   evas_object_smart_callback_call(obj, dir_deleted, NULL);
  }
_e_fm2_list_walking--;
if (_e_fm2_list_walking == 0)
Patch to ticket #273.
Now, when open dirs in place is active and user haven't permission to
open dir, efm2 fallback to parent directory. Also other events (for ex. delete)
on dirs opened in efm will cause go to it's parents in efm windows.

 e_fm.c |   30 +-
 1 file changed, 29 insertions(+), 1 deletion(-)

Index: e/src/bin/e_fm.c
===
--- e/src/bin/e_fm.c	(revision 40672)
+++ e/src/bin/e_fm.c	(working copy)
@@ -818,6 +818,29 @@
  }
 }
 
+void
+_e_fm2_path_parent_set(Evas_Object *obj, const char *path)
+{
+   char buf[PATH_MAX], *p;
+   int idx;
+
+   p = strrchr(path, '/');
+   if (!p || (p == path))
+  e_fm2_path_set(obj, /, /);
+   else
+ {
+idx = p - path;
+if (idx  PATH_MAX)
+  {
+ strncpy(buf, path, idx);
+ buf[idx] = '\0';
+ e_fm2_path_set(obj, /, buf);
+  }
+else
+  e_fm2_path_set(obj, /, /);
+ }
+}
+
 EAPI void
 e_fm2_path_set(Evas_Object *obj, const char *dev, const char *path)
 {
@@ -2827,12 +2850,17 @@
while (dels)
  {
 	Evas_Object *obj;
+E_Fm2_Smart_Data *sd;
 
 	obj = dels-data;
+sd = evas_object_smart_data_get(obj);
 	dels = eina_list_remove_list(dels, dels);
 	if ((_e_fm2_list_walking  0) 
 	(eina_list_data_find(_e_fm2_list_remove, obj))) continue;
-	evas_object_smart_callback_call(obj, dir_deleted, NULL);
+	if (sd-config-view.open_dirs_in_place)
+	   _e_fm2_path_parent_set(obj, sd-realpath);
+	else
+	   evas_object_smart_callback_call(obj, dir_deleted, NULL);
  }
_e_fm2_list_walking--;
if (_e_fm2_list_walking == 0)
--
Crystal Reports 

Re: [E-devel] Standard dialogs for E17

2009-05-05 Thread Sergey Semernin
Hello, All.

In message from 5 мая 2009 Gustavo Sverzut Barbieri wrote:

  Is exists any standard dialogs for select file/directory, select
  picture and etc (as in GTK, Qt)?
  It is important that all dialogs for this tasks must have uniform view.

 in e17 yes, e_widget_fsel and e_widget_flist. but not in elm yet.

I have seen it. It is a widgets, nor dialogs. I think, we need unified 'efm 
open file/dir' dialog module. One question pending: what interface is more 
habitual to users? As it in KDE or Gnome or other third?


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] [PATCH] efm_nav keyboard shortcuts

2009-05-01 Thread Sergey Semernin
Hello, All.

This patch adding keyboard shortcuts to efm_nav module.
When efm_nav placed on efm2 window toolbar, next shortcuts are activated:
Alt+Left  -- backward in chdir's history,
Alt+Right -- forward in chdir's history,
Alt+Up-- go to parent dir,
Control+r -- refresh view of current dir.

 e_mod_main.c |   39 +--
 1 file changed, 37 insertions(+), 2 deletions(-)

Index: E-MODULES-EXTRA/efm_nav/src/e_mod_main.c
===
--- E-MODULES-EXTRA/efm_nav/src/e_mod_main.c(revision 40471)
+++ E-MODULES-EXTRA/efm_nav/src/e_mod_main.c(working copy)
@@ -23,6 +23,8 @@
 static const char  *_gc_id_new(E_Gadcon_Client_Class 
*client_class);
 static void _cb_mouse_down(void *data, Evas *e, 
   Evas_Object *obj, void *event_info);
+static void _cb_key_down  (void *data, Evas *e,
+   Evas_Object *obj, void 
*event_info);
 static void _cb_back_click(void *data, Evas_Object *obj, 
   const char *emission, 
   const char *source);
@@ -58,6 +60,7 @@
 _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) 
 {
Instance *inst = NULL;
+   Evas_Object *o_fm;
char buf[4096];
 
inst = E_NEW(Instance, 1);
@@ -135,6 +138,10 @@
 
evas_object_event_callback_add(inst-o_base, EVAS_CALLBACK_MOUSE_DOWN, 
  _cb_mouse_down, inst);
+   o_fm = e_toolbar_fm2_get(inst-tbar);
+   if (o_fm)
+ evas_object_event_callback_add(o_fm, EVAS_CALLBACK_KEY_DOWN,
+_cb_key_down, inst);
 
edje_object_signal_emit(inst-o_back, e,state,disabled, e);
edje_object_message_signal_process(inst-o_back);
@@ -149,10 +156,14 @@
 _gc_shutdown(E_Gadcon_Client *gcc) 
 {
Instance *inst = NULL;
+   Evas_Object *o_fm;
 
inst = gcc-data;
if (!inst) return;
instances = eina_list_remove(instances, inst);
+   o_fm = e_toolbar_fm2_get(inst-tbar);
+   if (o_fm)
+  evas_object_event_callback_del(o_fm, EVAS_CALLBACK_KEY_DOWN, 
_cb_key_down);
if (inst-history) ecore_list_destroy(inst-history);
if (inst-o_favorites) evas_object_del(inst-o_favorites);
if (inst-o_back) evas_object_del(inst-o_back);
@@ -175,11 +186,11 @@
  {
   case E_GADCON_ORIENT_TOP:
   case E_GADCON_ORIENT_BOTTOM:
-   e_gadcon_client_aspect_set(gcc, 16 * 3, 16);
+   e_gadcon_client_aspect_set(gcc, 16 * 4, 16);
break;
   case E_GADCON_ORIENT_LEFT:
   case E_GADCON_ORIENT_RIGHT:
-   e_gadcon_client_aspect_set(gcc, 16, 16 * 3);
+   e_gadcon_client_aspect_set(gcc, 16, 16 * 4);
break;
   default:
break;
@@ -250,6 +261,30 @@
 }
 
 /* local functions */
+static void
+_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+   Instance *inst;
+   Evas_Event_Key_Down *ev;
+
+   inst = data;
+   ev = event_info;
+   if (evas_key_modifier_is_set(ev-modifiers, Alt))
+ {
+if (!strcmp(ev-key, Left))
+   _cb_back_click(inst, obj, e,action,click, e);
+else if (!strcmp(ev-key, Right))
+   _cb_forward_click(inst, obj, e,action,click, e);
+else if (!strcmp(ev-key, Up))
+   _cb_up_click(inst, obj, e,action,click, e);
+ }
+   else if (evas_key_modifier_is_set(ev-modifiers, Control))
+ {
+if (!strcmp(ev-key, r))
+   _cb_refresh_click(inst, obj, e,action,click, e);
+ }
+}
+
 static void 
 _cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) 
 {


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992
Index: E-MODULES-EXTRA/efm_nav/src/e_mod_main.c
===
--- E-MODULES-EXTRA/efm_nav/src/e_mod_main.c	(revision 40471)
+++ E-MODULES-EXTRA/efm_nav/src/e_mod_main.c	(working copy)
@@ -23,6 +23,8 @@
 static const char  *_gc_id_new(E_Gadcon_Client_Class *client_class);
 static void _cb_mouse_down(void *data, Evas *e, 
 	   Evas_Object *obj, void *event_info);
+static void _cb_key_down  (void *data, Evas *e,
+   Evas_Object *obj, void *event_info);
 static void _cb_back_click(void *data, Evas_Object *obj, 
 	   const char *emission, 
 	   const char *source);
@@ -58,6 +60,7 @@
 _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) 
 {
Instance *inst = NULL;
+   Evas_Object *o_fm;
char buf[4096];
 
inst = E_NEW(Instance, 1);
@@ -135,6 +138,10 @@
 
evas_object_event_callback_add(inst-o_base, EVAS_CALLBACK_MOUSE_DOWN, 
   _cb_mouse_down, inst);
+   o_fm = e_toolbar_fm2_get(inst-tbar);
+   if (o_fm)
+ evas_object_event_callback_add(o_fm, 

Re: [E-devel] [PATCH] efm_nav keyboard shortcuts

2009-05-01 Thread Sergey Semernin
Hello, All.

In message from 1 мая 2009 Gustavo Sverzut Barbieri wrote:

 Just a small comment, other than that looks good to be included:
  @@ -175,11 +186,11 @@
       {
        case E_GADCON_ORIENT_TOP:
        case E_GADCON_ORIENT_BOTTOM:
  -       e_gadcon_client_aspect_set(gcc, 16 * 3, 16);
  +       e_gadcon_client_aspect_set(gcc, 16 * 4, 16);
         break;
        case E_GADCON_ORIENT_LEFT:
        case E_GADCON_ORIENT_RIGHT:
  -       e_gadcon_client_aspect_set(gcc, 16, 16 * 3);
  +       e_gadcon_client_aspect_set(gcc, 16, 16 * 4);
         break;
        default:
         break;

 why is that?

Efm_nav button glyphs were covered each other, when I changed it, buttons are 
displaying well, side by side.


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
Register Now  Save for Velocity, the Web Performance  Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance  Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [PATCH] efm_nav keyboard shortcuts

2009-05-01 Thread Sergey Semernin
Hello, All.

In message from 1 мая 2009 sda wrote:

 sorry, but is it possible to make keys as variables through the
 Input - Key Bindings window? right now we have Esc binded as go
 back for EFM and suppose that it'd be enough for hardcoded
 keybindings.

 thanks.

It is possible, I had variant with e_actions setup, but Gustavo says that it 
is not the purpose of e_action.
When I'm using e_action's I also setup focus/unfocus events to watch what 
instance of efm_nav activated now.


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
Register Now  Save for Velocity, the Web Performance  Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance  Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Efm_Nav keyboard shortcuts

2009-04-30 Thread Sergey Semernin
Hello, All.

Situation: efm_nav has a directory change history list. To make keyboard 
shortcust for up, prev, next I should use EVAS_CALLBACK_KEY_DOWN if widget 
catch keyboard events. But, efm_nav have'nt focus and not receive this 
events. 
Second - make E_Action objects and link them to Alt+Left, Alt+Right, Alt+Up 
keys, for example. It's global shortcuts. To use it i must watch what efm_nav 
instance active now. Could I use EVAS_CALLBACK_SHOW and EVAS_CALLBACK_HIDE 
handlers in efm_nav for this purpose?

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
Register Now  Save for Velocity, the Web Performance  Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance  Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] fm2 auto-mount on insert for removable devices

2009-04-30 Thread Sergey Semernin
Hello, All.

In the release plan 'fm2 auto-mount on insert for removable devices, possible 
import places to e/src/modules (with a better name?) See #229' issue present.
Are you plan to move places functionality to efm2? Or 'places' module will be 
enabled by default and stay 'as is'?

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
Register Now  Save for Velocity, the Web Performance  Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance  Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Finding focused window

2009-04-30 Thread Sergey Semernin
Hello, All.

Help please, how correctly find pointer to focused window?
e_border_focused_get gives me pointer to E_Border* and how find window object 
from it?

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
Register Now  Save for Velocity, the Web Performance  Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance  Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Efm_Nav keyboard shortcuts

2009-04-30 Thread Sergey Semernin
Hello, All.

In message from 1 мая 2009 Gustavo Sverzut Barbieri wrote:

  Situation: efm_nav has a directory change history list. To make keyboard
  shortcust for up, prev, next I should use EVAS_CALLBACK_KEY_DOWN if
  widget catch keyboard events. But, efm_nav have'nt focus and not receive
  this events.

 need to look at it, but maybe you can connect to parent object (e_fm)?
 Or even add system to e_fm to register keyboard handlers, so if it
 does not handle, it will call the list until some function returns
 TRUE.

Then maybe make evas_object_smart_callback_call's in the _e_fm2_cb_key_down 
and then catch it in efm_nav?

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
Register Now  Save for Velocity, the Web Performance  Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance  Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Finding focused window

2009-04-30 Thread Sergey Semernin
Hello, All.

In message from 1 мая 2009 Gustavo Sverzut Barbieri wrote:

  Help please, how correctly find pointer to focused window?
  e_border_focused_get gives me pointer to E_Border* and how find window
  object from it?

 What do you want to do? But e_border is what you generally consider a
 toplevel window :-) It contains the window decorations (if any),
 actions like move, resize, center, show, hide...

I try to get access to focused window's internal widgets, nor border and 
decorations. For example: check the smart type ID, then find needed widget 
and check it's state.


Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
Register Now  Save for Velocity, the Web Performance  Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance  Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] [PATCH] In-place renaming for efm2

2009-04-22 Thread Sergey Semernin
Hello, All.

This is patch for in-place files renaming in efm2.

I was guided by next reasons:
- leave usual rename dialog, where it is more convenient;
- using theme for entry field (all entries looks the same);

For theme elements:
e/fileman/default/icon/variable,
e/fileman/default/icon/fixed,
e/fileman/default/list/variable,
e/fileman/default/list_odd/variable,
e/fileman/default/list/fixed,
e/fileman/default/list_odd/fixed,
I have added entry pbject placement named e.swallow.entry.
It could be any entry or editing widget, I'm using e_widget_entry.

In e_fm.c I have added handlers for entry object:
_e_fm2_icon_entry_widget_add - create and focus entry field;
_e_fm2_icon_entry_widget_del - destroy entry field and return focus to efm2 
window;
_e_fm2_icon_entry_widget_cb_key_down - key down handler for entry widget;
_e_fm2_icon_entry_widget_accept - do file rename and destroy entry widget;
Also in mouse and keyboard handlers of efm2 window I have added conditions to 
prevent
double event processing (with entry and then rest objects of window).

Renaming accepted when enter key pressed or other icon selected or icon 
deselected.
Renaming cancelling when escape key pressed or efm2 window closed.
Only one renaming allowed in efm2 window.

 data/themes/default.edc |   42 
 src/bin/e_fm.c  |  161 +---
 2 files changed, 169 insertions(+), 34 deletions(-)

Index: e/data/themes/default.edc
===
--- e/data/themes/default.edc   (revision 40283)
+++ e/data/themes/default.edc   (working copy)
@@ -13427,6 +13427,13 @@
   image.normal:  icon_efm_dnd_move.png;
}
 }
+part { name: e.swallow.entry;
+   type: SWALLOW;
+   description { state: default 0.0;
+  rel1.to: e.text.label;
+  rel2.to: e.text.label;
+   }
+}
   }
   programs {
 program { name: go_active;
@@ -13840,6 +13847,13 @@
   image.normal:  icon_efm_dnd_move.png;
}
 }
+part { name: e.swallow.entry;
+   type: SWALLOW;
+   description { state: default 0.0;
+  rel1.to: e.text.label;
+  rel2.to: e.text.label;
+   }
+}
   }
   programs {
 program { name: go_active;
@@ -15082,6 +15096,13 @@
   color: 0 0 0 0;
}
 }
+part { name: e.swallow.entry;
+   type: SWALLOW;
+   description { state: default 0.0;
+  rel1.to: e.text.label;
+  rel2.to: e.text.label;
+   }
+}
   }
   programs {
 program { name: go_active;
@@ -15547,6 +15568,13 @@
   color: 0 0 0 0;
}
 }
+part { name: e.swallow.entry;
+   type: SWALLOW;
+   description { state: default 0.0;
+  rel1.to: e.text.label;
+  rel2.to: e.text.label;
+   }
+}
   }
   programs {
 program { name: go_active;
@@ -16014,6 +16042,13 @@
   color: 0 0 0 0;
}
 }
+part { name: e.swallow.entry;
+   type: SWALLOW;
+   description { state: default 0.0;
+  rel1.to: e.text.label;
+  rel2.to: e.text.label;
+   }
+}
   }
   programs {
 program { name: go_active;
@@ -16480,6 +16515,13 @@
   color: 0 0 0 0;
}
 }
+part { name: e.swallow.entry;
+   type: SWALLOW;
+   description { state: default 0.0;
+  rel1.to: e.text.label;
+  rel2.to: e.text.label;
+   }
+}
   }
   programs {
 program { name: go_active;
Index: e/src/bin/e_fm.c
===
--- e/src/bin/e_fm.c(revision 40283)
+++ e/src/bin/e_fm.c(working copy)
@@ -127,6 +127,8 @@
   int ox, oy;
   int x, y, w, h;
} selrect;
+
+   E_Fm2_Icon *iop_icon;
 };
 
 struct _E_Fm2_Region
@@ -147,6 +149,7 @@
int   saved_rel;
E_Menu   *menu;
E_Entry_Dialog   *entry_dialog;
+   Evas_Object  *entry_widget;
E_Config_Dialog  *prop_dialog;
E_Dialog *dialog;
 
@@ -324,7 +327,13 @@
 static void _e_fm2_file_rename_no_cb(void *data);
 static void _e_fm2_file_properties(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_fm2_file_properties_delete_cb(void *obj);
+static void _e_fm2_file_do_rename(const char *text, E_Fm2_Icon *ic);
 
+static Evas_Object* _e_fm2_icon_entry_widget_add(E_Fm2_Icon *ic);
+static void _e_fm2_icon_entry_widget_del(E_Fm2_Icon *ic);
+static void _e_fm2_icon_entry_widget_cb_key_down(void *data, Evas *e, 
Evas_Object *obj, void *event_info);
+static void _e_fm2_icon_entry_widget_accept(E_Fm2_Icon 

Re: [E-devel] ecore_evas compile error from 39985

2009-04-11 Thread Sergey Semernin
Hello, Adam.

In message from 11 апреля 2009 you wrote:

 Looks like http://trac.enlightenment.org/e/changeset/39985 broke compiling
 (at least on Linux/amd64).

 If you revert what was done in ecore_evas_util.c it seems to work.

Yes. But I compiled it by adding 
#include Ecore_Input.h 
after
#include Ecore_Data.h
in file
ecore_evas_private.h

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] entry_mode for 'TEXT' edje element

2009-04-09 Thread Sergey Semernin
Hello, All.

As I see only TEXTBLOCK element have property 'entry_mode', to set it editable 
or no. This is using in elm_entry.c.
Many other widgets contain TEXT element, such as 'e.text.label', but seems no 
similar property in it. Therefore, no basic callbacks are initialized when 
creating. And no way to change entry_mode in runtime.
What shall I do? Simply make 'e.text.label' to TEXTBLOCK type? Or any else is 
possible? For example make similar callbacks for 'e.text.label' when edit, 
but this is a lot of duplicate code...

Second. Is acceptable to enable/disable accepting message events by parts of 
widget runtime (via edje_edit_part_mouse_events_set)?

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] fileman 'in place' rename

2009-04-08 Thread Sergey Semernin
Hello, All.

In message from 8 апреля 2009 Gustavo Sverzut Barbieri wrote:

 just be aware to handle cases where the input would stay out of the
 viewport, we have cases where just scrolling would solve (but
 annoying), as it is within the parent object geometry, but in some
 cases we can even go and stay out of that area, and it would be
 impossible to view the input field, or at least part of it.

Yes, horizontal scrolling for long names or, as in KDE, words wrapping and 
extend editor to the down from a icon.

 Ah, and something great to borrow from KDE, when you edit filenames,
 byt default it will select everything UP TO the extension so bla.jpg
 would start with bla selected, because it's the common case to keep
 the extension and just change the name.

I look at KDE in-place file operations as reference, because I using KDE 
(and programming a lot for it) for a long time.

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] fileman 'in place' rename

2009-04-07 Thread Sergey Semernin
Hello, All.

In roadmap:
  'fm2 rename file in-place now (as edje has entries now)'

What of edje entries assumed here?
Now, I have explored two ways to solve this task:
1. Get geometry of e.text.label and place e_entry over it;
2. Add to theme my own e.inplace.box (box, exactly same place as 
e.text.label) into the e/fileman/default/icon/variable and then append 
e_entry to this box.

Renaming finishing when e_entry loose focus or ESC (cancel), Enter (do rename) 
pressed.

I more like second way, because if e.inplace.box entry not found (for example) 
ordinary renaming dialog can be used. So it is possible tell when to use 
in-place renaming and when not in theme, not in code.
But a little bug there: when e_entry created and focused all other fileman 
window continue respond to mouse events and cursor keys. Is any solution to 
catch messages exclusively exists?

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] fileman 'in place' rename

2009-04-07 Thread Sergey Semernin
Hello, Carsten.

In message from 8 апреля 2009 Carsten Haitzler wrote:

 no no.. EDJ?E has entries. EDJE can do the text input itself - cursor and
 selections and so on - handling typing. all u need to do is some focus fun.
 elementary does this. it uses edje' entries to do all the text work! :)
 copy and paste gets hooked in etc. look at elm_entry.c in elementary for
 ideas :)

Thank you very much! I will learn elm_entry.c and will do in-place operations 
similarly.

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] [PATCH] efm: fm2 open with... dialog needs to go down to 1 list, not 2

2009-04-03 Thread Sergey Semernin
Hello, All.

This is patch for issue:
fm2 open with... dialog needs to go down to 1 list, not 2. ilist needs to 
be fixed to handle such big lists of stuff. 
This single list would list at top applications to handle that mime type 
and then a separator/header followed by all available applications.

And also this patch includes my previous changes for:
fm2 favorites doesn't remember window geometry,
because it's not included in trunk now.

 e_fwin.c |  140 ++-
 1 file changed, 76 insertions(+), 64 deletions(-)

Index: e/src/modules/fileman/e_fwin.c
===
--- e/src/modules/fileman/e_fwin.c  (revision 39836)
+++ e/src/modules/fileman/e_fwin.c  (working copy)
@@ -53,8 +53,8 @@ struct _E_Fwin_Apps_Dialog
 {
E_Dialog*dia;
E_Fwin  *fwin;
-   const char  *app1, *app2;
-   Evas_Object *o_specific, *o_all;
+   const char  *app2;
+   Evas_Object *o_all;
Evas_Object *o_entry;
char*exec_cmd;
 };
@@ -87,7 +87,6 @@ static void _e_fwin_cb_menu_extend_start(void *dat
 static void _e_fwin_cb_menu_open(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_fwin_cb_menu_open_with(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_fwin_cb_all_change(void *data, Evas_Object *obj);
-static void _e_fwin_cb_specific_change(void *data, Evas_Object *obj);
 static void _e_fwin_cb_exec_cmd_changed(void *data, void *data2);
 static void _e_fwin_cb_open(void *data, E_Dialog *dia);
 static void _e_fwin_cb_close(void *data, E_Dialog *dia);
@@ -149,8 +148,54 @@ EAPI void
 e_fwin_new(E_Container *con, const char *dev, const char *path)
 {
E_Fwin *fwin;
+   E_Fm2_Custom_File *cf;
+   char buf[PATH_MAX];
+   int x, y, w, h;
 
fwin = _e_fwin_new(con, dev, path);
+
+   if (fwin)
+ {
+snprintf(buf, sizeof(buf), dir::%s, 
e_fm2_real_path_get(fwin-fm_obj));
+cf = e_fm2_custom_file_get(buf);
+if ((cf)  (cf-geom.valid))
+  {
+ x = cf-geom.x;
+ y = cf-geom.y;
+ w = cf-geom.w;
+ h = cf-geom.h;
+
+ /* checking width and height */
+ if (w  24)
+w = 280 * e_scale;
+ else if (w  fwin-win-border-zone-w)
+w = fwin-win-border-zone-w;
+ if (h  24)
+h = 200 * e_scale;
+ else if (h  fwin-win-border-zone-h)
+h = fwin-win-border-zone-h;
+
+ /* checking left-top corner */
+ if (x  fwin-win-border-zone-x)
+   x = fwin-win-border-zone-x + 
fwin-win-border-client_inset.l;
+ if (y  fwin-win-border-zone-y)
+   y = fwin-win-border-zone-y + 
fwin-win-border-client_inset.t;
+
+ /* checking right-bottom corner */
+ if ((fwin-win-border-zone-x + fwin-win-border-zone-w)  
(x + w))
+   x = fwin-win-border-zone-x + fwin-win-border-zone-w - w 
- fwin-win-border-client_inset.l;
+ if ((fwin-win-border-zone-y + fwin-win-border-zone-h)  
(y + h))
+   y = fwin-win-border-zone-y + fwin-win-border-zone-h - h 
- fwin-win-border-client_inset.t;
+
+ e_win_move_resize
+   (fwin-win,
+x - fwin-win-border-client_inset.l,
+y - fwin-win-border-client_inset.t,
+w, h);
+  }
+
+fwin-geom_save_ready = 1;
+ }
 }
 
 EAPI void
@@ -893,47 +938,26 @@ _e_fwin_cb_all_change(void *data, Evas_Object *obj
Efreet_Desktop *desktop = NULL;
 
fad = data;
-   eina_stringshare_del(fad-app1);
-   if (fad-o_specific) e_widget_ilist_unselect(fad-o_specific);
desktop = efreet_util_desktop_file_id_find(fad-app2);
if ((desktop)  (desktop-exec)) 
  e_widget_entry_text_set(fad-o_entry, desktop-exec);
 }
 
 static void
-_e_fwin_cb_specific_change(void *data, Evas_Object *obj)
-{
-   E_Fwin_Apps_Dialog *fad;
-   Efreet_Desktop *desktop = NULL;
-
-   fad = data;
-   eina_stringshare_del(fad-app2);
-   if (fad-o_all) e_widget_ilist_unselect(fad-o_all);
-   desktop = efreet_util_desktop_file_id_find(fad-app1);
-   if ((desktop)  (desktop-exec)) 
- e_widget_entry_text_set(fad-o_entry, desktop-exec);
-}
-
-static void
 _e_fwin_cb_exec_cmd_changed(void *data, void *data2)
 {
E_Fwin_Apps_Dialog *fad = NULL;
Efreet_Desktop *desktop = NULL;

if (!(fad = data)) return;
-   if ((!fad-app1)  (!fad-app2)) return;
 
-   if (fad-app1) 
- desktop = efreet_util_desktop_file_id_find(fad-app1);
-   else if (fad-app2) 
+   if (fad-app2) 
  desktop = efreet_util_desktop_file_id_find(fad-app2);
 
if (!desktop) return;
if (!strcmp(desktop-exec, fad-exec_cmd)) return;
 
-   eina_stringshare_del(fad-app1);
eina_stringshare_del(fad-app2);
-   if (fad-o_specific) e_widget_ilist_unselect(fad-o_specific);
if (fad-o_all) e_widget_ilist_unselect(fad-o_all);
 }
 
@@ -949,9 +973,7 @@ 

Re: [E-devel] Efm development

2009-04-02 Thread Sergey Semernin
Hello, Dave.

In message from 2 апреля 2009 Dave Andreoli wrote:

  * efm atm read .gtk-bookmarks (they are displayed in the new
 file submenu in the E main menu). This is cool, as many other
 apps use it, but at the end create some confusion with the E favorite
[skipped]

There are two ways - first, import .gtk-bookmarks into .favorites and then 
keep it timed. Second way - add fuction to read and populate gtk-bookmarks as 
icons in favorites folder and vice versa.
I think first approach more unify with exists code. Actually, when adding some 
new into favorites we don't change gtk-favorites, but if .gtk-favorites 
changed we rescan it and adding/removing entries from our favorites.

 hmmm... pause... I have to much stuff to write... What about if I make a
 page on the
 wiki that we can use as  TODO ? so we can keep all the progress up to date.
 I can start the page with all the question on this thread.

It will be very good. Each of us will known exactly what need to do and who 
what doing now.

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Efm development

2009-04-01 Thread Sergey Semernin
Hello, Dave!

I see you importing 'places' into efm2. 
I'm starting work on efm2 too, because i have plans for E17 use and 
interesting first a robust, usable file manager.
I can help you. What tasks are remaining exactly? 

In my view there are several major improvements: removable devices mount with 
correct fstab processing (so devices can be mounting properly when fstab 
corresponding fstab records exists); grid representation in fileman window 
with name, type, size, access rights, etc.; toolbar in file manager window 
with most using operations.

What about background/color set GUI, rename in place, progress indication?

P.S. Earlier, I send to e-devel small patch to read window geometry in 
e_fwin_new function. What's wrong, or you plan reject this function from 
code?

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Efm development

2009-04-01 Thread Sergey Semernin
Hello, Gustavo.

In message from 1 april 2009 Gustavo Sverzut Barbieri wrote:

 we should use hal (or device kit, or similar) and not bother about
 /etc/fstab, so the thing today is how to populate one folder with real
 and virtual items. For example, the desktop uses links in order to
 have the code that reads entries to do it on one way. Also, everything
 is handled as if it was a real file, with stat information and so
 on.   At first I'd say we should lie about the virtual device being a
 file and add it to the list by other means, just need to be careful
 with add/remove signals that come from inotify.  Then I'd try to
 refactor part of the code based on the findings of the first part,
 abstracting the common bits.

IMHO, there's no bad in use special files to describe and point to removable 
and virtual devices. In my practise I using in-memory filesystem for similar 
things. It's quite another matter, that I need additional code to attach tree 
of this filesystem to real fs or my window.
Other approaching - list of structured containers that holds information about 
virtual items. So, that lists can be attached to different folders within 
program code.
I think that will be GUI to define some parameters to mount, such as codepage, 
sync mode.

 just one thing, the only folder that seems to require dynamic devices
 to show on automatically is ~/Desktop, where we can have the places
 gadgets and get ride of that code. So I'd not expend much time on this
 issue, at least now. I'd say we should get ride of that nasty
 devices-links code and ship e17 with places by default.

Yes, ~/Desktop and ~/.e/e/fileman/favorites.
Btw, I tried to compile 'places' module today and got a undefined 
symbol 'e_util_menu_item_icon_theme_set'. I searched this symbol in entire 
trunc and not find it.

And last - I'm using several old programs, which work with cd-roms and etc. 
and it require /dev/cdrom record in fstab. It's difficult to modify - I 
have'nt sources of it, attempts to contact with authors bring nothing. 
That's why I saying about fstab.

 grid: it's not hard in edje, but there is absolutely no code there to
[skipped]
 again, in order to be really useful this is not a small task and need
 lots of work and surely it is  NOT mandatory for e17, so low priority.

At total - now API for treelist and gridlist processing not exists?
Maybe realize approach when tree or grid represented as dynamical structure 
with callbacks for elements and/or groups of elements (drawing, describing, 
properties, etc.)?

 toolbar: very easy, actually it is there, just need some love.

I found tho widgets for efm2 toolbar - set of back-forward-etc. buttons and 
address line, but it have difficulties when positioning and dynamical resizi 
ng in the toolbar. Is it known issue or problems depending on my build only?

 background set gui I know of a guy doing some work in set as
 wallpaper... that could be easily changed to set as wallpaper 
 {Directory, Desktop} (sub menu with 2 entries). Other parts like
 selecting custom themes for other bits is bit more complicated and
 would need a nice dialog we have not think about, maybe raster can
 provide some insights.

Ok. I understood.
There is some problems with 'set as wallpaper' - im using utf-8 in filesystem 
and russian names of dirs of course, so dialog can't read file with picture - 
invalid path. I'll try to solve this problem.

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Efm development

2009-04-01 Thread Sergey Semernin
Hello, Victor.

In message from 1 april 2009 Viktor Kojouharov wrote:

 We should take the in-place to a whole new level, and remove as many
 dialogs as we can. The only dialog that should stay is the properties
 one, since it is quite big. Every other dialog should go as an overlay
 to the e_fm window that spawned it.
 Some type of status overlay that displays useful info on the selected
 item (or is hidden if nothing is selected) would also be nice.

I'll try to make in-place rename first.

 the rest just need love and bug cleaning :)

So, I'll searching and fixing it. :)

 Having a gadcon on the left/right side to display some info, like a
 directory tree or a list of favourites?

Absolutely yes, I think.

 Using a toolbar to open different locations within the same e_fm window?

You mean 'address string'? That's need too.

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Patch for processing 'favorites' windows geometry

2009-03-30 Thread Sergey Semernin
Hello, All.

It is my patch for 'fm2 favorites doesn't remember window geometry' issue in 
release plan of E17.
In code I saw that all fm2 windows created with 'e_fwin_new' call affected to 
this problem. Therefore, I have added code for reading window geometry 
settings from fm2 custom file.

Please, any comments, wishes.

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992
Index: e/src/modules/fileman/e_fwin.c
===
--- e/src/modules/fileman/e_fwin.c	(revision 39796)
+++ e/src/modules/fileman/e_fwin.c	(working copy)
@@ -148,8 +148,54 @@ EAPI void
 e_fwin_new(E_Container *con, const char *dev, const char *path)
 {
E_Fwin *fwin;
+   E_Fm2_Custom_File *cf;
+   char buf[PATH_MAX];
+   int x, y, w, h;
 
fwin = _e_fwin_new(con, dev, path);
+
+   if (fwin)
+ {
+snprintf(buf, sizeof(buf), dir::%s, e_fm2_real_path_get(fwin-fm_obj));
+cf = e_fm2_custom_file_get(buf);
+if ((cf)  (cf-geom.valid))
+  {
+ x = cf-geom.x;
+ y = cf-geom.y;
+ w = cf-geom.w;
+ h = cf-geom.h;
+
+ /* checking width and height */
+ if (w  24)
+w = 280 * e_scale;
+ else if (w  fwin-win-border-zone-w)
+w = fwin-win-border-zone-w;
+ if (h  24)
+h = 200 * e_scale;
+ else if (h  fwin-win-border-zone-h)
+h = fwin-win-border-zone-h;
+
+ /* checking left-top corner */
+ if (x  fwin-win-border-zone-x)
+   x = fwin-win-border-zone-x + fwin-win-border-client_inset.l;
+ if (y  fwin-win-border-zone-y)
+   y = fwin-win-border-zone-y + fwin-win-border-client_inset.t;
+
+ /* checking right-bottom corner */
+ if ((fwin-win-border-zone-x + fwin-win-border-zone-w)  (x + w))
+   x = fwin-win-border-zone-x + fwin-win-border-zone-w - w - fwin-win-border-client_inset.l;
+ if ((fwin-win-border-zone-y + fwin-win-border-zone-h)  (y + h))
+   y = fwin-win-border-zone-y + fwin-win-border-zone-h - h - fwin-win-border-client_inset.t;
+
+ e_win_move_resize
+   (fwin-win,
+x - fwin-win-border-client_inset.l,
+y - fwin-win-border-client_inset.t,
+w, h);
+  }
+
+fwin-geom_save_ready = 1;
+ }
 }
 
--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Mounting removable devices

2009-03-30 Thread Sergey Semernin
Hello.

Now in efm, each removable device, for example usb flash disk, detected with 
HAL infrastructure and creating a .desktop file like |
storage_serial_model.desktop in a ~/.e/e/fileman/favorites. Also symlink at 
a ~/Desktop created with same name.
In a /media dir this media mounted as GUID partition, so it not very usable 
for scripting. Maybe should use a filesystem label, if available? Even more 
so HDD partitions named by it's labels.

But, if I mounting DVD-RW device, described in fstab as:
  /dev/scd0 /media/cdrom1 udf,iso9660 ro,user,noauto,utf8 0 0
(of course, mountpoint exists), efm try to mount /media/label directory and 
fails, although need /mount/cdrom1, as described in fstab.
This situation occurring for any removable device which mountpoints and 
options described in fstab.

Maybe we need to create memory container that holds device, mountpoint, 
options and current state, updating according HAL events? Also we need a GUI 
for setting/review mount options. This container creating when new device HAL 
event accepted and destroying while HAL remove device received. Then we 
define virtual path for fileman, for example 'media', where all this 
containers showed. If HAL-devices view enabled on desktop then also show icon 
for every container. Also we must using /etc/fstab data for predefined 
mountpoints.

Second. Now removable device mounting when fileman opened in it's root 
directory. Unmounting doing when last file manager window, associated with 
this device, closed. Maybe do mount on first access to device and umount when 
user wish?

Any other suggestions?

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Mounting removable devices

2009-03-30 Thread Sergey Semernin
Hello, All.

In message from 31 марта 2009 sda wrote:

 ok. let's just make things clear. fixed mountpoints is your/(your
 distro's) responsibility when the appropriate rulesets for dbus + hal
 are implemented. and all stuff related to this monster vary in
 settings, components, etc. there're NO WAY (by design) to combine the
 fstab entry with the proper hal filesystem operation/(mounting)
 routine.

Ok. Then using only HAL+DBus+efm/places for mounting removable devices.
If we need some extended parameters while mounting then make specific HAL 
policy.

  Are you plan to use .desktop files as a pointers to real storage devices
  or plan not use this files and symlinks?

 assume that for a while the current schema will remain the same:

 1) creation of the .desktop files in $HOME/.e/e/fileman/favorites/
 2) creation of the symlinks in the $HOME/Desktop upon User request
 (Files Settings Dialog)

 also i'd advise to ping DaveMDS about his plans to merge Places with
 EFM (and to eliminate all mistakes in my modest explanation :) ).

I can help you in work on efm2, because I interested too - have plans to use 
E17 in my tasks (all my works are open-source, of course).
It will be better, if we combine our efforts, right?
Because I orienting by Release Plan, particularly fm2's removable device 
handling is pretty hacky with symlinks to .desktop files on Desktop... make 
cleaner (maybe not use actual files). task, but you say that current scheme 
will remain.

Sincerely yours, Sergey.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] I propose the help in development 'fm2'

2009-03-25 Thread Sergey Semernin
Hello, All.

I'm Sergey Semernin from Belgorod, Russia.
I have experience in C/C++ programming in Linux (mostly kernel drivers 
development, DSP, AI, KDE/Qt programming, autotools) - all about 6 years.
Therefore, I can help you in E17 file manager development - fix bugs, realize 
features, etc., to satisfy yours release plan.
Now, I'm reading documentation and taking a close look on E17 sources in order 
to learn Enlightenment principles, architecture and API.
I think to be useful and working well with all development team.

Sincerely yours, Sergey.

P.S. Sorry for my english. It is not native language for me.

--
Jabber/XMPP: sergey.semer...@gmail.com
Cellular: +7-909-206-5992

--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel