Re: [E-devel] [PATCH] gadcon sities, efm2 slave fix, opinfo improvements
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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'
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