Re: [E-devel] Community Building
Viktor Kojouharov wrote: imho, it both lua and javascript are good choices for this. Though I haven't used lua personally, I only hear good things about it, and the syntax is very C-ish. As far as js is concerned, there's probably a lot more people familiar with it (including me) than lua. And js is not just a dom language. As far as integration is concerned, I know that lua is quite easy to integrate, thought I think that integrating JavascriptCore from webkit will not be too difficult either (judging by reports of integrating it in gtk). I feel the same about lua and javascript. But nowadays lua seems to be much more easier to integrate than a javascript engine. Even if the later got recently a lot of improvements on this. But couldn't we support more than one language (and thus also preserve embryo, if there are people that need it)? Something like how IE is able to use both js and vscript in html. I don't think supporting (in the long run) several different scripting languages is a good thing. Compatibility problems will increase, and reading someone else theme's code will become even harder. - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100url=/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Community Building
Toma wrote: As crazy as it might seem, id like to hear from mekius and devilhorns about how easy and useful embryo was to them in regards to them in various projects in cvs. As an e17 themer, it hasnt proven much use to me, but i consider myself further to the edje when it comes to embryo and edje talk! Toma I don't use embryo in a commercial product, I'm not mekius nor devilhorns. But I do use embryo quite often when making edj. And unlike you I do feel limited currently with embryo. Dealing with generic parts inside an edc is a real pain. Imagine for example a bunch of squares aligned from a small one to a bigger one. You need to describe every one of them, which means a macro and a lot of numbers at best, whereas a simple function could do it. Sure it could be done in C, but doing so will restrict the theming possibility for other themers. But this can be solved with the script-only object in any language. Handling edje's parts/programs when using embryo calls can't be done dynamically. You need to know which part is to be used, and hardcode it's name. Again, this leads to macro voodoo. And finally the language itself is not that pleasant. Having a few things to ease strings manipulation, and anonymous function to shorten some timer call wouldn't hurt. I do like the idea to change for lua or js or whatever for this. But even so, there's quite a few themes which needs embryo. So in case of a change, I think the transition should be as gustavo and raster describe it. Samuel - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100url=/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Community Building
Viktor Kojouharov wrote: On Sat, 2008-08-02 at 23:07 +0200, lok wrote: Viktor Kojouharov wrote: imho, it both lua and javascript are good choices for this. Though I haven't used lua personally, I only hear good things about it, and the syntax is very C-ish. As far as js is concerned, there's probably a lot more people familiar with it (including me) than lua. And js is not just a dom language. As far as integration is concerned, I know that lua is quite easy to integrate, thought I think that integrating JavascriptCore from webkit will not be too difficult either (judging by reports of integrating it in gtk). I feel the same about lua and javascript. But nowadays lua seems to be much more easier to integrate than a javascript engine. Even if the later got recently a lot of improvements on this. But couldn't we support more than one language (and thus also preserve embryo, if there are people that need it)? Something like how IE is able to use both js and vscript in html. I don't think supporting (in the long run) several different scripting languages is a good thing. Compatibility problems will increase, and reading someone else theme's code will become even harder. I disagree. 'Compatibility problems' are non-existent, since they will all interact with edje parts, not with one another. And reading someone's code will always be harder if you don't know the language which is used. That holds true now, if you don't know embryo, and will hold true in the future, regardless of what language(s) we pick. However, it will be easier to write a theme, since the likelihood of knowing a supported language will increase. What I had in mind for the compatibility issues, is if you make it possible to build separately different script engines. And you didn't built all of them. You can have a theme with a dependency problem. If the build can only be done with all script engines, then obviously it will be heavier and need more external deps. - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100url=/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] FreeBSD 7.0 easy_17
I've replaced the function (strndup was gnu only) by similar non-gnu-only code. It should works again on FreeBSD now. thanks for the report. lok - This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Systray - Ideas for a new spec
Hi, I took time to talk to this subject because I wanted to write my proof of concept before replying. In my opinion, a systray is a bad idea. For the last two weeks I kept asking myself, Why do people want a systray ? What exactly is a systray ? How can I provide it ?. For the first question I've directly asked to anybody I know was using trayer, or wanted a tray on E. The answers were about having a way to be notified, a quick way to show/hide some windows. A few were about using direct actions and each time with the same example, an audio player. And the last one that nobody say directly but somehow is always there, because they are simply used to it. For the second question, the easiest way to find out what exactly is a systray, it's to look at the source. A systray on windows is the only way to move an app outside the taskbar, the only way to keep visible an application running in the background but needs a GUI sometimes and was the only way to provide a pseudo gadget. Nowadays a huge amout of applications running on windows put something in the tray. Most of the time the systray have more applications than the taskbar, and 3/4 of them being hidden to take less place within the bar (so much for the monitoring). So what exactly is a systray ? I dunno, if it's a way to continuously notify why hide the icons and show a bubble ? If it's a way to lighten the taskbar why only the application as the power to choose ? And if it's a way to provide quick actions why do we still need this under our WMs were any one of them can use modules for years ? Well, here is the problem. A systray is a mess in it's basic design. Some half done thing wishing to compete with OS X dock. So write a spec, even good, about something doing a bit of (continuous ?) notification, a bit of quick action and a bit of docking isn't, in my opinion, the greatest thing to do. Of course it will works, but why redo half of the job instead of finishing it once and for all ? First let's have a _real_ fdo specification about notifications, galago's one was refused. It still miss some details, but I think it's a good base. And I believe it's something far more useful than just a common way to blink an icon somewhere in the screen (the urgent flag can already be used to do it). By pushing it a little I did the notification boxes : http://lok.eadrax.org/images/notification_box-3.png http://lok.eadrax.org/images/notification_box-4.png Which means than a good notification spec could cover all the aspect of notifications, popups and icons. Moreover I didn't implemented it but this spec handle actions, their purpose is to reply to an event. A docking specification doesn't seems necessary, we already have everything we need to dock an application like it would be in a tray. IIirk is the proof and IBox is also a solution. And finally for quick actions there is no common way possible. Depending on the purpose of the applications you will not wish to display it the same way. For an audio player, having a module giving you the possibility to play/pause/next/prev with a single click is better than openning a menu and choosing the good action in it. See http://www.kuliniewicz.org/music-applet/ for example. Whereas to quickly change a network like with network-manager you would rather have a popup with a list showing directly the name of the network, if it's protected and how good you catch it. All that using the same look than your WM. Redoing a module for each WM takes more work but end up nicer than reducing everything to a menu. Mixing iiirk and notification together would provide over 90% of what a tray does. Add to that IBar/IBox and you get something near OS X dock. Of course any other combination is possible. All this relying only on the .desktop spec, a notification one and the old NetWM's skip flags, breaking nothing and just requiring sometimes to install a notification plugin. So no I don't think we should change the tray spec, we should forget about it. Even if we do change it, even if we also manage to make the applications following the new one. All we will get is a bunch of icons stacked at their own will in a corner with the ability to open a menu. I would rather like to see a clean and complete notification spec accepted by FDO. Samuel 'lok' Mendes - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] [PATCH] Skip pager/taskbar and remember for those two
Hi, here is a little patch to add the remember taskbar in the window menu. It also add them to the remember possibilities. And the skip window list is modified to trigger a E_EVENT_BORDER_PROPERTY when changed. lok Index: src/bin/e_border.c === RCS file: /cvs/e/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.629 diff -u -r1.629 e_border.c --- src/bin/e_border.c 7 Mar 2008 11:51:31 - 1.629 +++ src/bin/e_border.c 7 Mar 2008 12:19:29 - @@ -5204,7 +5204,6 @@ if (bd-client.netwm.type == ECORE_X_WINDOW_TYPE_DOCK) { - /* TODO: Make this user options */ if (!bd-client.netwm.state.skip_pager) { bd-client.netwm.state.skip_pager = 1; @@ -5837,6 +5836,10 @@ } if (rem-apply E_REMEMBER_APPLY_SKIP_WINLIST) bd-user_skip_winlist = rem-prop.skip_winlist; + if (rem-apply E_REMEMBER_APPLY_SKIP_PAGER) + bd-client.netwm.state.skip_pager = rem-prop.skip_pager; + if (rem-apply E_REMEMBER_APPLY_SKIP_TASKBAR) + bd-client.netwm.state.skip_taskbar = rem-prop.skip_taskbar; if (rem-apply E_REMEMBER_APPLY_ICON_PREF) bd-icon_preference = rem-prop.icon_preference; if (rem-apply E_REMEMBER_SET_FOCUS_ON_START) Index: src/bin/e_remember.c === RCS file: /cvs/e/e17/apps/e/src/bin/e_remember.c,v retrieving revision 1.24 diff -u -r1.24 e_remember.c --- src/bin/e_remember.c 15 Jul 2007 08:28:03 - 1.24 +++ src/bin/e_remember.c 7 Mar 2008 12:19:34 - @@ -288,6 +288,8 @@ rem-prop.shaded = 50 + bd-shade.dir; rem-prop.skip_winlist = bd-user_skip_winlist; + rem-prop.skip_pager = bd-client.netwm.state.skip_pager; + rem-prop.skip_taskbar = bd-client.netwm.state.skip_taskbar; rem-prop.icon_preference = bd-icon_preference; e_desk_xy_get(bd-desk, rem-prop.desk_x, rem-prop.desk_y); Index: src/bin/e_remember.h === RCS file: /cvs/e/e17/apps/e/src/bin/e_remember.h,v retrieving revision 1.12 diff -u -r1.12 e_remember.h --- src/bin/e_remember.h 28 Dec 2007 03:18:37 - 1.12 +++ src/bin/e_remember.h 7 Mar 2008 12:19:34 - @@ -23,8 +23,10 @@ #define E_REMEMBER_APPLY_ZONE (1 8) #define E_REMEMBER_APPLY_RUN (1 9) #define E_REMEMBER_APPLY_SKIP_WINLIST (1 10) -#define E_REMEMBER_APPLY_ICON_PREF (1 11) -#define E_REMEMBER_SET_FOCUS_ON_START (1 12) +#define E_REMEMBER_APPLY_SKIP_PAGER (1 11) +#define E_REMEMBER_APPLY_SKIP_TASKBAR (1 12) +#define E_REMEMBER_APPLY_ICON_PREF (1 13) +#define E_REMEMBER_SET_FOCUS_ON_START (1 14) #else #ifndef E_REMEMBER_H @@ -81,6 +83,8 @@ unsigned char sticky; unsigned char shaded; unsigned char skip_winlist; + unsigned char skip_pager; + unsigned char skip_taskbar; unsigned char icon_preference; int desk_x, desk_y; Index: src/bin/e_int_border_menu.c === RCS file: /cvs/e/e17/apps/e/src/bin/e_int_border_menu.c,v retrieving revision 1.78 diff -u -r1.78 e_int_border_menu.c --- src/bin/e_int_border_menu.c 12 Jan 2008 07:58:18 - 1.78 +++ src/bin/e_int_border_menu.c 7 Mar 2008 12:19:36 - @@ -24,6 +24,7 @@ static void _e_border_menu_cb_fullscreen(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_skip_winlist(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_skip_pager(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_border_menu_cb_skip_taskbar(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_sendto_pre(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_sendto(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_pin(void *data, E_Menu *m, E_Menu_Item *mi); @@ -660,6 +661,7 @@ bd-user_skip_winlist = e_menu_item_toggle_get(mi); else bd-user_skip_winlist = 0; + bd-changed = 1; if (bd-remember) e_remember_update(bd-remember, bd); } @@ -680,6 +682,22 @@ } static void +_e_border_menu_cb_skip_taskbar(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Border *bd; + + bd = data; + if (!bd) return; + + if ((bd-client.icccm.accepts_focus) || (bd-client.icccm.take_focus)) + bd-client.netwm.state.skip_taskbar = e_menu_item_toggle_get(mi); + else + bd-client.netwm.state.skip_taskbar = 0; + bd-changed = 1; + if (bd-remember) e_remember_update(bd-remember, bd); +} + +static void _e_border_menu_cb_sendto_pre(void *data, E_Menu *m, E_Menu_Item *mi) { E_Menu *subm; @@ -985,6 +1003,16 @@ e_theme_edje_file_get(base/theme/borders, e/widgets/border/default/skip_pager), e/widgets/border/default/skip_pager); + + submi = e_menu_item_new(subm); + e_menu_item_label_set(submi, _(Taskbar)); + e_menu_item_check_set(submi, 1); + e_menu_item_toggle_set(submi, bd-client.netwm.state.skip_taskbar
Re: [E-devel] [PATCH]: e_dbus configure bug
In CVS. Thanks lok Stanislav Sedov wrote: Hi! I discovered a small bug in e_dbus configure script. Due to the fact it doesn't check the value of option passed to configure and explicitly sets the value to no, passing, for example, --enable_ehal to it, effectively disables ehal. The same for other configure options. The patch is attached. Thanks! - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] e_module-notification installation location
Michael Jennings wrote: On Wednesday, 27 February 2008, at 09:20:59 (+0100), Sebastian Dransfeld wrote: Or just ./configure --enable-homedir-install I did some work so that the modules should end up in either the current homedir, or the path enlightenment-config points to. And that everything the module installs ends up in the same moduledir. Exactly. --prefix doesn't really make sense for modules. They either go into E's module directory or the user's module directory. Nothing else makes sense. Michael What doesn't makes sense here ? Someone can set up the search path for the modules to use only /foo and remove the defaults dirs. Block the installation to the default path would be like forcing the installation of any application to either be in / or /usr and nowhere else. I agree that set up e's dir as a default path to install a module is useful but the --prefix is only an option, blocking it just reduce the posssibilities when installing. - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] e_module-notification installation location
It's not a bug the configure.in are set up this way in most (all?) modules. They will be installed in `enlightenment-config --module-dir`. Unless you use the --enable-homedir-install option. Morlenxus pointed me than the --prefix was ignored, and I thought that it might be a handful option for package maintainers (or people with various reasons). I added it, with a little resume when the configure ends, so that people notice where the module will be installed. If you run the configure with no prefix option the behaviour is still the same, and the module will be installed in your E's dir. I didn't updated all the modules because I don't know what the other devs are thinking about this. And I don't want to impose such a thing to them without even asking. Personnaly I don't care to keep or not this option (it's maybe better if every modules act in the same manner ?). So what do you think about this ? Brian 'morlenxus' Miculcy wrote: This seems to be a bug with the autofoo stuff, some recent commit to all modules autofoo break the --prefix rule, it isn't respected anymore and so modules are installed in a default path. Someone should fix that... Greets, Brian 'morlenxus' Miculcy On Thu, Jan 24, 2008 at 12:50:21PM -0800, Eric Sandall wrote: Hey all, After updating lately (2008-01-24 at 10:30 PST, though the last update was a week ago or so), I noticed that notification no longer loads (E17 complains it cannot find the module). I looked at the installation path and it is now installing to /usr/notification/ instead of /usr/lib/enlightenment/modules/notification/ where all of the other modules install given the same ./configure --prefix=/usr. I recall a recent (last few days) CVS update to notification to change installation paths, but I've already deleted it. :( Thanks, -sandalle -- Eric Sandall | Source Mage GNU/Linux Developer [EMAIL PROTECTED] PGP: 0xA8EFDD61 | http://www.sourcemage.org/ http://eric.sandall.us/ | http://counter.li.org/ #196285 - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] [Patch] evas stringshare and e modules
Hello, while working on a module I somehow screwed up my E config. After that my E was trying to load a NULL module, which caused various segfaults. So I added a few more security checks and everything ran fine. Samuel 'lok' Mendes Index: e_module.c === RCS file: /cvs/e/e17/apps/e/src/bin/e_module.c,v retrieving revision 1.85 diff -u -r1.85 e_module.c --- e_module.c 31 Oct 2007 12:21:01 - 1.85 +++ e_module.c 23 Jan 2008 09:42:28 - @@ -198,7 +198,7 @@ E_Config_Module *em; em = l-data; - if (!strcmp(em-name, m-name)) + if (em em-name !strcmp(em-name, m-name)) { in_list = 1; break; @@ -440,7 +440,7 @@ E_Config_Module *em; em = l-data; - if (!strcmp(em-name, m-name)) + if (em em-name !strcmp(em-name, m-name)) { e_config-modules = evas_list_remove(e_config-modules, em); if (em-name) evas_stringshare_del(em-name); Index: evas_stringshare.c === RCS file: /cvs/e/e17/libs/evas/src/lib/data/evas_stringshare.c,v retrieving revision 1.12 diff -u -r1.12 evas_stringshare.c --- evas_stringshare.c 4 May 2007 08:18:05 - 1.12 +++ evas_stringshare.c 23 Jan 2008 09:41:52 - @@ -58,6 +58,8 @@ char *el_str; Evas_Stringshare_El *el, *pel = NULL; + if (!str) return NULL; + hash_num = _evas_stringshare_hash_gen(str, slen); for (el = share.buckets[hash_num]; el; pel = el, el = el-next) { @@ -90,6 +92,8 @@ int hash_num, slen; char *el_str; Evas_Stringshare_El *el, *pel = NULL; + + if (!str) return NULL; hash_num = _evas_stringshare_hash_gen(str, slen); for (el = share.buckets[hash_num]; el; pel = el, el = el-next) - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [Patch] evas stringshare and e modules
Carsten Haitzler (The Rasterman) wrote: On Wed, 23 Jan 2008 10:48:42 +0100 lok [EMAIL PROTECTED] babbled: Hello, while working on a module I somehow screwed up my E config. After that my E was trying to load a NULL module, which caused various segfaults. So I added a few more security checks and everything ran fine. that is truly... bizarre. how did a NULL module entry get into your config? actually... eet probably shouldn't have encoded such an entry to disk - letalone loaded it as a NULL list entry... Well I don't exactly know how I end up in this case in the first place, but it was around the time when I changed my config struct, and forgot to update the eet descriptor. I suspect that the module segfaulted at the wrong moment. - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E CVS: libs/e_dbus lok
Michael 'Mickey' Lauer wrote: Gustavo Sverzut Barbieri wrote: On Jan 16, 2008 4:47 PM, Enlightenment CVS [EMAIL PROTECTED] wrote: Enlightenment CVS committal Author : lok Project : e17 Module : libs/e_dbus Dir : e17/libs/e_dbus Modified Files: configure.in Log Message: Added a dependency to Evas. we really should split e_dbus into lib and apps, damn, having the e_dbus to depend on evas is a bit insane... maybe one just want to use it with a daemon and this will pull many useless things. This is just a matter of appropriate packaging. The library itself won't link to evas. Regards, :M: Actually libenotify will link to it. It provides a method to convert a gdk pixbuf data to an Evas_Object. The whole build was grouped that's why I added that dep this way. But I agree we should split e_dbus. Or at least make the build of the other componants (hal, nm and notify) optional. lok - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Configuration module for theme doens't work in advanced mode
Don't worry (be happy :) ), it's a normal output which help tracking the efm-hal part. By the way, I'm not sure that those printf are still usefull. Maybe we can comment or remove them ? lok Massimiliano Calamelli wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi devs, it seems that config module for themes doesn't work in advanced mode, every theme you choose the module uses the theme file that's currently used. I've just printf-ed the module (e_int_config_theme.c) to see what happens. After changing theme in basic mode, i saw this output from xnest.sh: STO+ udi: /org/freedesktop/Hal/devices/storage_model_DVDRW_SOSW_833S bus: scsi drive_type: cdrom model: DVDRW SOSW-833S vendor: Slimtype serial: (null) removable: 1 media_available: 0 media_size: 0 requires_eject: 1 hotpluggable: 0 media_check_enabled: 1 icon.drive: (null) icon.volume: (null) STO+ udi: /org/freedesktop/Hal/devices/storage_serial_1ATA_ST9808210A_3LF0ZX4R bus: scsi drive_type: disk model: ST9808210A vendor: ATA serial: 1ATA_ST9808210A_3LF0ZX4R removable: 0 media_available: 0 media_size: 0 requires_eject: 0 hotpluggable: 0 media_check_enabled: 0 icon.drive: (null) icon.volume: (null) Ignore this storage VOL+ udi: /org/freedesktop/Hal/devices/volume_uuid_3007_17F2 uuid: 3007-17F2 fstype: vfat size: 3150249984 label: PQSERVICE partition: 1 partition_number: 1 partition_label: (null) mounted: 1 mount_point: /media/hda1 parent: /org/freedesktop/Hal/devices/storage_serial_1ATA_ST9808210A_3LF0ZX4R vol write storage_serial_1ATA_ST9808210A_3LF0ZX4R Sending TERM signal to /opt/e17/bin/enlightenment_thumb --nice=0 (10539). - ---del init client E17: Begin shutdown procedure! calloc: 0x805faa8 MATCH ON: type='signal',sender='org.freedesktop.Hal',path='/org/freedesktop/Hal/Manager',interface='org.freedesktop.Hal.Manager',member='DeviceAdded' calloc: 0x805fe20 MATCH ON: type='signal',sender='org.freedesktop.Hal',path='/org/freedesktop/Hal/Manager',interface='org.freedesktop.Hal.Manager',member='DeviceRemoved' calloc: 0x805ffe8 MATCH ON: type='signal',sender='org.freedesktop.Hal',path='/org/freedesktop/Hal/Manager',interface='org.freedesktop.Hal.Manager',member='NewCapability' VOL + /org/freedesktop/Hal/devices/volume_uuid_9f5f5897_7eae_4d0d_bffb_83e26c49f535 calloc: 0x8093a90 MATCH ON: type='signal',sender='org.freedesktop.Hal',path='/org/freedesktop/Hal/devices/volume_uuid_9f5f5897_7eae_4d0d_bffb_83e26c49f535',interface='org.freedesktop.Hal.Device',member='PropertyModified' VOL+ /org/freedesktop/Hal/devices/volume_part3_size_1024 calloc: 0x8094318 MATCH ON: type='signal',sender='org.freedesktop.Hal',path='/org/freedesktop/Hal/devices/volume_part3_size_1024',interface='org.freedesktop.Hal.Device',member='PropertyModified' VOL + /org/freedesktop/Hal/devices/volume_uuid_176a85e4_c815_4f4a_beb4_a9685e6442f7 calloc: 0x8094b80 MATCH ON: type='signal',sender='org.freedesktop.Hal',path='/org/freedesktop/Hal/devices/volume_uuid_176a85e4_c815_4f4a_beb4_a9685e6442f7',interface='org.freedesktop.Hal.Device',member='PropertyModified' VOL+ /org/freedesktop/Hal/devices/volume_uuid_3007_17F2 calloc: 0x8095408 MATCH ON: type='signal',sender='org.freedesktop.Hal',path='/org/freedesktop/Hal/devices/volume_uuid_3007_17F2',interface='org.freedesktop.Hal.Device',member='PropertyModified' Error getting serial for /org/freedesktop/Hal/devices/storage_model_DVDRW_SOSW_833S S6 + +STO: udi: /org/freedesktop/Hal/devices/storage_model_DVDRW_SOSW_833S bus: scsi drive_type: cdrom model: DVDRW SOSW-833S vendor: Slimtype serial: (null) icon.drive: (null) icon.volume: (null) S6 ++STO: udi: /org/freedesktop/Hal/devices/storage_serial_1ATA_ST9808210A_3LF0ZX4R bus: scsi drive_type: disk model: ST9808210A vendor: ATA serial: 1ATA_ST9808210A_3LF0ZX4R icon.drive: (null) icon.volume: (null) ++VOL: udi: /org/freedesktop/Hal/devices/volume_uuid_3007_17F2 uuid: 3007-17F2 fstype: vfat size: 3150249984 label: PQSERVICE partition: 1 partition_number: 1 partition_label: mounted: 1 mount_point: /media/hda1 for storage: /org/freedesktop/Hal/devices/storage_serial_1ATA_ST9808210A_3LF0ZX4R It seems efm-related, dunno if it's wrong or right, this is just a notice. Regards Massimiliano - -- Massimiliano Calamelli http://mcalamelli.netsons.org [EMAIL PROTECTED] -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.4 (MingW32) iD8DBQFHPGkDleGEL56NNP4RAnjoAKDuuVjga1CVZm1bBGnfECH4LIlniQCfcohW F7XCG23Gn3zwUCJeqX9UOWw= =GAgt -END PGP SIGNATURE- - This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now http
[E-devel] [PATCH] E Button Widget
Hi, I've got a small problem recently on a theme. If the theme use a min size for it's buttons, way larger than the default theme's. It's impossible to have the icon centered on a button with no text. (For exemple into the File Properties dialog in EFM). Currently the button theme only know when an icon is visible or not. My patch replace the two e,action,show/hide,icon signals by e,state,icon/text/combo. That way the theme knows how justify the icon. Any comments is welcome. lok Index: e/data/themes/default_button.edc === RCS file: /cvs/e/e17/apps/e/data/themes/default_button.edc,v retrieving revision 1.12 diff -u -r1.12 default_button.edc --- e/data/themes/default_button.edc 7 Jul 2007 02:04:19 - 1.12 +++ e/data/themes/default_button.edc 18 Sep 2007 00:33:09 - @@ -78,7 +78,7 @@ } } description { - state: visible 0.0; + state: combo 0.0; inherit: default 0.0; aspect: 1.0 1.0; aspect_preference: VERTICAL; @@ -94,6 +94,23 @@ to: button_image; } } + description { + state: icon 0.0; + inherit: default 0.0; + aspect: 1.0 1.0; + aspect_preference: BOTH; + align: 0.5 0.5; + rel1 { + relative: 0.0 0.0; + offset: 8 8; + to: button_image; + } + rel2 { + relative: 1.0 1.0; + offset: -9 -9; + to: button_image; + } + } } part { name: e.text.label; @@ -117,7 +134,7 @@ color3: 255 255 255 128; color_class: button_text; text { - text: OK; + text: ; font: Edje-Vera; size: 10; min: 1 1; @@ -132,6 +149,11 @@ color3: 255 255 255 64; color_class: button_text_disabled; } + description { + state:icon 0.0; + inherit: default 0.0; + visible: 0; + } } part { name: glint_clip; @@ -330,18 +352,28 @@ action: SIGNAL_EMIT e,action,click ; } program { - name: icon_visible; - signal: e,action,show,icon; + name: text_state; + signal: e,state,text; source: e; - action: STATE_SET visible 0.0; + action: STATE_SET default 0.0; target: e.swallow.icon; + target: e.text.label; } program { - name: icon_invisible; - signal: e,action,hide,icon; + name: icon_state; + signal: e,state,icon; source: e; - action: STATE_SET default 0.0; + action: STATE_SET icon 0.0; + target: e.swallow.icon; + target: e.text.label; + } + program { + name: combo_state; + signal: e,state,combo; + source: e; + action: STATE_SET combo 0.0; target: e.swallow.icon; + target: e.text.label; } program { name: button_in; Index: e/src/bin/e_widget_button.c === RCS file: /cvs/e/e17/apps/e/src/bin/e_widget_button.c,v retrieving revision 1.16 diff -u -r1.16 e_widget_button.c --- e/src/bin/e_widget_button.c 7 Aug 2007 14:20:47 - 1.16 +++ e/src/bin/e_widget_button.c 18 Sep 2007 00:33:49 - @@ -3,6 +3,13 @@ */ #include e.h +typedef enum _E_Widget_Button_Type E_Widget_Button_Type; +enum _E_Widget_Button_Type +{ + E_WIDGET_BUTTON_TEXT = 1 0, + E_WIDGET_BUTTON_ICON = 1 1 +}; + typedef struct _E_Widget_Data E_Widget_Data; struct _E_Widget_Data { @@ -11,6 +18,7 @@ void (*func) (void *data, void *data2); void *data; void *data2; + E_Widget_Button_Type type; }; static void _e_wid_del_hook(Evas_Object *obj); @@ -19,6 +27,7 @@ static void _e_wid_disable_hook(Evas_Object *obj); static void _e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const char *source); static void _e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _e_wid_button_state_send(E_Widget_Data *wd); /* local subsystem functions */ /* externally accessible functions */ @@ -46,7 +55,11 @@ e_theme_edje_object_set(o, base/theme/widgets, e/widgets/button); edje_object_signal_callback_add(o, e,action,click, , _e_wid_signal_cb1, obj); - edje_object_part_text_set(o, e.text.label, label); + if (label label[0] != 0) + { + edje_object_part_text_set(o, e.text.label, label); + wd-type |= E_WIDGET_BUTTON_TEXT; + } evas_object_show(o); e_widget_sub_object_add(obj, o); @@ -59,12 +72,12 @@ wd-o_icon = o; e_util_edje_icon_set(o, icon); edje_object_part_swallow(wd-o_button, e.swallow.icon, o); - edje_object_signal_emit(wd-o_button, e,action,show,icon, e); - edje_object_message_signal_process(wd-o_button); evas_object_show(o); e_widget_sub_object_add(obj, o); + wd-type |= E_WIDGET_BUTTON_ICON; } - + + _e_wid_button_state_send(wd); edje_object_size_min_calc(wd-o_button, mw, mh); e_widget_min_size_set(obj, mw, mh); @@ -78,6 +91,11 @@ wd = e_widget_data_get(obj); edje_object_part_text_set(wd-o_button, e.text.label, label
[E-devel] skip pager property and vdesk drag and drop
Hi, I was working on two things recently. The first one was the skip pager property, raster was faster than me adding it to the pager, but it still miss from the border menu. The patch change the Skip Window List into a Skip menu with two subelements Window List and Pager. The second one new drag to the pager that allow to drag a vdesk from the pager to a pager. This will switch the two vdesks (moving all the windows from one to the other, and also switching there name and background property). By default this drag is unset. I find it helpful to reorganize the desktop order. lokIndex: pager/e_mod_config.c === RCS file: /cvs/e/e17/apps/e/src/modules/pager/e_mod_config.c,v retrieving revision 1.30 diff -u -u -r1.30 e_mod_config.c --- pager/e_mod_config.c 19 Apr 2007 16:57:47 - 1.30 +++ pager/e_mod_config.c 14 Jun 2007 02:15:17 - @@ -5,7 +5,8 @@ enum _Pager_Grab_Button { GRAB_BUTTON_DRAG, - GRAB_BUTTON_NOPLACE + GRAB_BUTTON_NOPLACE, + GRAB_BUTTON_DESK }; struct _E_Config_Dialog_Data @@ -16,8 +17,9 @@ int popup_urgent_stick; double popup_urgent_speed; int drag_resist; - unsigned char btn_drag; - unsigned char btn_noplace; + unsigned int btn_drag; + unsigned int btn_noplace; + unsigned int btn_desk; int flip_desk; struct { @@ -32,6 +34,7 @@ Evas_Object *o_urgent_speed; Evas_Object *o_btn1; Evas_Object *o_btn2; + Evas_Object *o_btn3; } gui; }; @@ -85,6 +88,7 @@ cfdata-drag_resist = pager_config-drag_resist; cfdata-btn_drag = pager_config-btn_drag; cfdata-btn_noplace = pager_config-btn_noplace; + cfdata-btn_desk = pager_config-btn_desk; cfdata-flip_desk = pager_config-flip_desk; } @@ -144,17 +148,22 @@ e_widget_frametable_object_append(of, ob, 1, 2, 1, 1, 1, 1, 1, 1); ob = e_widget_label_add(evas, _(Drag and Drop button (Keeps rel. loc.))); e_widget_frametable_object_append(of, ob, 1, 3, 1, 1, 1, 1, 1, 1); + ob = e_widget_label_add(evas, _(Drag whole desktop (Move every windowsof a desk))); + e_widget_frametable_object_append(of, ob, 1, 4, 1, 1, 1, 1, 1, 1); ob = e_widget_button_add(evas, _(Click to set), NULL, _grab_wnd_show, (void *)GRAB_BUTTON_DRAG, cfdata); e_widget_frametable_object_append(of, ob, 2, 2, 1, 1, 1, 1, 0, 0); cfdata-gui.o_btn1 = ob; ob = e_widget_button_add(evas, _(Click to set), NULL, _grab_wnd_show, (void *)GRAB_BUTTON_NOPLACE, cfdata); e_widget_frametable_object_append(of, ob, 2, 3, 1, 1, 1, 1, 0, 0); cfdata-gui.o_btn2 = ob; + ob = e_widget_button_add(evas, _(Click to set), NULL, _grab_wnd_show, (void *)GRAB_BUTTON_DESK, cfdata); + e_widget_frametable_object_append(of, ob, 2, 4, 1, 1, 1, 1, 0, 0); + cfdata-gui.o_btn3 = ob; _advanced_update_button_label(cfdata); ob = e_widget_label_add(evas, _(Resistance to dragging)); - e_widget_frametable_object_append(of, ob, 1, 4, 1, 1, 1, 1, 0, 0); + e_widget_frametable_object_append(of, ob, 1, 5, 1, 1, 1, 1, 0, 0); ob = e_widget_slider_add(evas, 1, 0, _(%.0f px), 0.0, 10.0, 1.0, 0, NULL, (cfdata-drag_resist), 200); - e_widget_frametable_object_append(of, ob, 1, 5, 2, 1, 1, 1, 0, 0); + e_widget_frametable_object_append(of, ob, 1, 6, 2, 1, 1, 1, 0, 0); e_widget_list_object_append(o, of, 1, 1, 0.5); of = e_widget_framelist_add(evas, _(Pager Popup Settings), 0); @@ -196,6 +205,7 @@ pager_config-drag_resist = cfdata-drag_resist; pager_config-btn_drag = cfdata-btn_drag; pager_config-btn_noplace = cfdata-btn_noplace; + pager_config-btn_desk = cfdata-btn_desk; pager_config-flip_desk = cfdata-flip_desk; _pager_cb_config_updated(); e_config_save_queue(); @@ -218,6 +228,12 @@ else snprintf(label, sizeof(label), _(Click to set)); e_widget_button_label_set(cfdata-gui.o_btn2, label); + + if (cfdata-btn_desk) + snprintf(label, sizeof(label), _(Button %i), cfdata-btn_desk); + else + snprintf(label, sizeof(label), _(Click to set)); + e_widget_button_label_set(cfdata-gui.o_btn3, label); } static void @@ -231,6 +247,8 @@ if ((Pager_Grab_Button)data1 == GRAB_BUTTON_DRAG) cfdata-grab.btn = 1; + else if ((Pager_Grab_Button)data1 == GRAB_BUTTON_NOPLACE) + cfdata-grab.btn = 2; else cfdata-grab.btn = 0; @@ -290,8 +308,10 @@ { if (cfdata-grab.btn == 1) cfdata-btn_drag = ev-button; - else + else if (cfdata-grab.btn == 2) cfdata-btn_noplace = ev-button; + else + cfdata-btn_desk = ev-button; } else { @@ -320,8 +340,10 @@ { if (cfdata-grab.btn == 1) cfdata-btn_drag = 0; - else + else if (cfdata-grab.btn == 2) cfdata-btn_noplace = 0; + else + cfdata-btn_desk = 0; _grab_wnd_hide(cfdata); } return 1; Index: pager/e_mod_main.c === RCS file: /cvs/e/e17/apps/e/src/modules/pager/e_mod_main.c,v retrieving revision 1.213 diff
[E-devel] Pager's desktop dnd + small fix on e_remember.c e_zone.c
Hi there, I've done a small patch for the pager, it allow the user to drag a desktop from the pager, and drop it on the pager or on the current desktop. At the drop the two desktops are switched. By default the button is desactivate. More exactly, windows move from one desk to the other, and if there is a name or a specific background setted on one of the desk. e_config is updated and saved. Dnd across different zones is supported. I found that useful when it come to sort desktops. I just hope that I'm not the only one to think that :) This patch also fix the warning at build time. Also attached there's two small patch for little checks missing in e_remember.c and e_zone.c Any comments is welcome. lokIndex: e_remember.c === RCS file: /cvs/e/e17/apps/e/src/bin/e_remember.c,v retrieving revision 1.22 diff -u -r1.22 e_remember.c --- e_remember.c 4 Jan 2007 10:30:55 - 1.22 +++ e_remember.c 20 Feb 2007 22:47:47 - @@ -206,6 +206,7 @@ EAPI void e_remember_update(E_Remember *rem, E_Border *bd) { + if (!rem) return; if (bd-new_client) return; if (rem-name) evas_stringshare_del(rem-name); if (rem-class) evas_stringshare_del(rem-class); Index: e_zone.c === RCS file: /cvs/e/e17/apps/e/src/bin/e_zone.c,v retrieving revision 1.108 diff -u -r1.108 e_zone.c --- e_zone.c 28 Jan 2007 07:22:50 - 1.108 +++ e_zone.c 20 Feb 2007 22:47:29 - @@ -440,8 +440,8 @@ E_OBJECT_CHECK(zone); E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); - *x_count = zone-desk_x_count; - *y_count = zone-desk_y_count; + if (x_count) *x_count = zone-desk_x_count; + if (y_count) *y_count = zone-desk_y_count; } EAPI void ? pager.patch Index: e_mod_config.c === RCS file: /cvs/e/e17/apps/e/src/modules/pager/e_mod_config.c,v retrieving revision 1.27 diff -u -r1.27 e_mod_config.c --- e_mod_config.c 3 Feb 2007 02:02:49 - 1.27 +++ e_mod_config.c 20 Feb 2007 22:50:30 - @@ -5,7 +5,8 @@ enum _Pager_Grab_Button { GRAB_BUTTON_DRAG, - GRAB_BUTTON_NOPLACE + GRAB_BUTTON_NOPLACE, + GRAB_BUTTON_DESK }; struct _E_Config_Dialog_Data @@ -15,6 +16,7 @@ int drag_resist; unsigned char btn_drag; unsigned char btn_noplace; + unsigned char btn_desk; int flip_desk; struct { @@ -27,6 +29,7 @@ struct { Evas_Object *o_btn1; Evas_Object *o_btn2; + Evas_Object *o_btn3; } gui; }; @@ -76,6 +79,7 @@ cfdata-drag_resist = pager_config-drag_resist; cfdata-btn_drag = pager_config-btn_drag; cfdata-btn_noplace = pager_config-btn_noplace; + cfdata-btn_desk = pager_config-btn_desk; cfdata-flip_desk = pager_config-flip_desk; } @@ -146,12 +150,17 @@ e_widget_frametable_object_append(of, ob, 1, 1, 1, 1, 1, 1, 1, 1); ob = e_widget_label_add(evas, _(Drag no place button)); e_widget_frametable_object_append(of, ob, 1, 2, 1, 1, 1, 1, 1, 1); + ob = e_widget_label_add(evas, _(Drag desktop button)); + e_widget_frametable_object_append(of, ob, 1, 3, 1, 1, 1, 1, 1, 1); ob = e_widget_button_add(evas, _(Click to set), NULL, _grab_wnd_show, (void *)GRAB_BUTTON_DRAG, cfdata); e_widget_frametable_object_append(of, ob, 2, 1, 1, 1, 1, 1, 0, 0); cfdata-gui.o_btn1 = ob; ob = e_widget_button_add(evas, _(Click to set), NULL, _grab_wnd_show, (void *)GRAB_BUTTON_NOPLACE, cfdata); e_widget_frametable_object_append(of, ob, 2, 2, 1, 1, 1, 1, 0, 0); cfdata-gui.o_btn2 = ob; + ob = e_widget_button_add(evas, _(Click to set), NULL, _grab_wnd_show, (void *)GRAB_BUTTON_DESK, cfdata); + e_widget_frametable_object_append(of, ob, 2, 3, 1, 1, 1, 1, 0, 0); + cfdata-gui.o_btn3 = ob; _advanced_update_button_label(cfdata); e_widget_list_object_append(o, of, 1, 1, 0.5); @@ -171,6 +180,7 @@ pager_config-drag_resist = cfdata-drag_resist; pager_config-btn_drag = cfdata-btn_drag; pager_config-btn_noplace = cfdata-btn_noplace; + pager_config-btn_desk = cfdata-btn_desk; pager_config-flip_desk = cfdata-flip_desk; _pager_cb_config_updated(); e_config_save_queue(); @@ -193,6 +203,12 @@ else snprintf(label, sizeof(label), _(Click to set)); e_widget_button_label_set(cfdata-gui.o_btn2, label); + + if (cfdata-btn_desk) + snprintf(label, sizeof(label), _(Button %i), cfdata-btn_desk); + else + snprintf(label, sizeof(label), _(Click to set)); + e_widget_button_label_set(cfdata-gui.o_btn3, label); } static void @@ -206,6 +222,8 @@ if ((Pager_Grab_Button)data1 == GRAB_BUTTON_DRAG) cfdata-grab.btn = 1; + else if ((Pager_Grab_Button)data1 == GRAB_BUTTON_NOPLACE) + cfdata-grab.btn = 2; else cfdata-grab.btn = 0; @@ -265,8 +283,10 @@ { if (cfdata-grab.btn == 1) cfdata-btn_drag = ev-button; - else + else if (cfdata-grab.btn == 2) cfdata-btn_noplace =
Re: [E-devel] E CVS: test lok
On Tue, 13 Feb 2007 22:56:34 +0100 (CET) Vincent Torri [EMAIL PROTECTED] wrote: It's not a typo. raster wants to let the user giving his own CFLAGS. See line 34 (where an error lives. FLAGS, and not FALGS). Btw, that error is also in embryo's Makefile Vincent Sorry, my bad. Everything is fixed as in eet's Makefile now. Thanks lok. On Tue, 13 Feb 2007, Enlightenment CVS wrote: Enlightenment CVS committal Author : lok Project : e17 Module : test Dir : e17/test/orig/edje Modified Files: Makefile Log Message: small typo fixed === RCS file: /cvs/e/e17/test/orig/edje/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- Makefile28 Oct 2006 09:01:59 - 1.1 +++ Makefile14 Feb 2007 03:04:21 - 1.2 @@ -1,4 +1,4 @@ -FLAGS = `edje-config --cflags` `ecore-config --cflags` `evas-config --cflags` `eet-config --cflags` +CFLAGS = `edje-config --cflags` `ecore-config --cflags` `evas-config --cflags` `eet-config --cflags` LIBS = `edje-config --libs` `ecore-config --libs` `evas-config --libs` `eet-config --libs` BINS = edje edje_ls edje_test edje_thumb - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs -- Ce message a été vérifié par MailScanner pour des virus ou des polluriels et rien de suspect n'a été trouvé. Message délivré par le serveur de messagerie de l'Université d'Evry. - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] Pager's defaut e_desk_show button
Hello, I use the pager with btn_drag (the drag and select button) set on button 2 and btn_noplace on button 1. And that commit : http://e.kevb.net/cgi-bin/viewvc.cgi/e17/apps/e/src/modules/pager/e_mod_main.c?r1=1.202r2=1.203 Force me to use button 2 to select the active desktop when I click on the pager. I dont' think someone would likely use another button than the button 1 for that action. Plus if he set the btn_drag on 0, he lost the ability to switch desktop by clicking on the pager. Can't we just re-set the test on ev-button == 1 ? lok (And there is an empty if on the function _pager_desk_cb_mouse_down that should be cleaned imho) - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Mixer control key bindings
On Fri, 29 Dec 2006 19:52:31 + Aleksej Struk [EMAIL PROTECTED] wrote: Hi Nick, The implementation of the key binding in mixer module is similar to the implementation in language module. iirc, it was taken exactly from that module. The idea is, that module has to define the following things: 1) the action, which will be executed on key press, For example mixer_mute 2) the function, which is associated with the action. 3) The 'human readable' name of the action. For example Mute The Mixer. This name will appear in keybinding dialog. 4) The keybinding that uses the mixer_mute action. Actually this is optional. And has to be done if you want to have default binding. 5) Finally, you have to do reverse actions on module unload. 1) and 2) are done by those several lines of code: E_Actoin *a; a = e_action_add(mixer_mute); if (a) a-func.go = _some_binding_callback_funcition 3) is done basically by calling e_action_predef_name_set function (see e_action.h) 4) You have to define a E_Config_Binding_Key *eb variable and fill it in with the correct values. After doing that, you have to: (i) insert eb into e_config-key_bindings, and (ii) call to e_bindings_key_add to make the binding active. Note, that you have to enclose (i) and (ii) between e_manager_keys_ungrab() and e_managers_keys_grab() after. For further information look into language madule e_mod_keybindigs.c file. Feel free to contact me on IRC if you need more detailed explanation. sndev On Fri, Dec 29, 2006 at 04:12:15PM +0100, Nikolas Arend wrote: Hi, the key bindings for Decrease/Increase Volume and Mute mixer don't seem to work for me (SuSE 10.1). Could somebody give me a short explanation of how they are implemented? I guess they are supposed to work and it's a problem on my side? Thanks a lot, Nick. Hi, as sndev said, the keybinding code in mixer was taken from the language module. The bindings in the mixer modules need at least one gadcon instance of the mixer in order to work. The mixer initialize is configuration only if an instance is created. Once the configuration is filled with the right mixer then the keybinding can works. So you need to put the mixer module in a shelf to have keybindings working. I could have move a part of the configuration code in order to make it works right after the module is loaded. But at that time I wasn't really seeing the point. The other issue can be because of the default value of the keybindings. I used some default keycodes for the media keys. Since I don't really know if there's some kind of specs making keyboards. I've asked a few people with different keyboards to give me there keysymbols and keycodes for this media keys. None of them had a keysymbols and the keycodes was the same. And so I set the keybindings by default on keycodes 160 174 and 176. It might not be always that values but you can change them on E keybindings config. lok - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] Pager patch
Hi, I've made some changement on the pager config. The first one let the user choose the mouse button he wants for the two type of drag. And the second disable the wheel callback on the pager. The wheel callback on the pager works only if the pager is in a shelf above everything. By default it's disabled because scrolling above the pager in this case make you switch by a step of 2 desktops (one is done by the pager's callback and the other by the E's default mousebinding). The pager is probably the most used module, so I prefere to not commit this patch directly. (just to be sure to not be hunt down if I've made a mistake). And the patch also fix a small warning. LokIndex: pager/e_mod_config.c === RCS file: /cvs/e/e17/apps/e/src/modules/pager/e_mod_config.c,v retrieving revision 1.22 diff -u -u -r1.22 e_mod_config.c --- pager/e_mod_config.c 3 Sep 2006 07:40:45 - 1.22 +++ pager/e_mod_config.c 16 Nov 2006 18:14:57 - @@ -1,11 +1,37 @@ #include e.h #include e_mod_main.h +typedef enum _Pager_Grab_Button Pager_Grab_Button; +enum _Pager_Grab_Button +{ + GRAB_BUTTON_DRAG, + GRAB_BUTTON_NOPLACE +}; + struct _E_Config_Dialog_Data { int show_popup; double popup_speed; int drag_resist; + unsigned char btn_drag; + unsigned char btn_noplace; + int flip_desk; + + struct + { + Ecore_X_Window bind_win; + E_Dialog *dia; + Evas_List *handlers; + + unsigned char *button1; + unsigned char *button2; + } grab; + + struct + { + Evas_Object *o_btn1; + Evas_Object *o_btn2; + } gui; }; /* Protos */ @@ -15,6 +41,11 @@ static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); static Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); static int _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); +static void _advanced_update_button_label(E_Config_Dialog_Data *cfdata); +static void _grab_wnd_show(void *data1, void *data2); +static void _grab_wnd_hide(E_Config_Dialog_Data *cfdata); +static int _grab_mouse_down_cb(void *data, int type, void *event); +static int _grab_key_down_cb(void *data, int type, void *event); void _config_pager_module(Config_Item *ci) @@ -47,6 +78,9 @@ cfdata-show_popup = pager_config-popup; cfdata-popup_speed = pager_config-popup_speed; cfdata-drag_resist = pager_config-drag_resist; + cfdata-btn_drag = pager_config-btn_drag; + cfdata-btn_noplace = pager_config-btn_noplace; + cfdata-flip_desk = pager_config-flip_desk; } static void * @@ -111,6 +145,25 @@ e_widget_framelist_object_append(of, ob); e_widget_list_object_append(o, of, 1, 1, 0.5); + of = e_widget_frametable_add(evas, _(Buttons Settings), 0); + ob = e_widget_label_add(evas, _(Drag and select button)); + e_widget_frametable_object_append(of, ob, 1, 1, 1, 1, 1, 1, 1, 1); + ob = e_widget_label_add(evas, _(Drag no place button)); + e_widget_frametable_object_append(of, ob, 1, 2, 1, 1, 1, 1, 1, 1); + ob = e_widget_button_add(evas, _(Click to set), NULL, _grab_wnd_show, (void *)GRAB_BUTTON_DRAG, cfdata); + e_widget_frametable_object_append(of, ob, 2, 1, 1, 1, 1, 1, 0, 0); + cfdata-gui.o_btn1 = ob; + ob = e_widget_button_add(evas, _(Click to set), NULL, _grab_wnd_show, (void *)GRAB_BUTTON_NOPLACE, cfdata); + e_widget_frametable_object_append(of, ob, 2, 2, 1, 1, 1, 1, 0, 0); + cfdata-gui.o_btn2 = ob; + _advanced_update_button_label(cfdata); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + of = e_widget_framelist_add(evas, _(Wheel callback), 0); + ob = e_widget_check_add(evas, _(Flip desktop on mouse wheel), (cfdata-flip_desk)); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + return o; } @@ -120,7 +173,135 @@ pager_config-popup = cfdata-show_popup; pager_config-popup_speed = cfdata-popup_speed; pager_config-drag_resist = cfdata-drag_resist; + pager_config-btn_drag = cfdata-btn_drag; + pager_config-btn_noplace = cfdata-btn_noplace; + pager_config-flip_desk = cfdata-flip_desk; _pager_cb_config_updated(); e_config_save_queue(); + return 1; +} + +static void +_advanced_update_button_label(E_Config_Dialog_Data *cfdata) +{ + char label[strlen(_(Click to set))]; + + if (cfdata-btn_drag) + snprintf(label, strlen(_(Button ))+3, Button %d, cfdata-btn_drag); + else + snprintf(label, strlen(_(Click to set))+1, _(Click to set)); + e_widget_button_label_set(cfdata-gui.o_btn1, label); + + if (cfdata-btn_noplace) + snprintf(label, strlen(_(Button ))+3, Button %d, cfdata-btn_noplace); + else + snprintf(label, strlen(_(Click to set))+1, _(Click to set)); + e_widget_button_label_set(cfdata-gui.o_btn2, label); +} + +static void +_grab_wnd_show(void *data1, void *data2) +{ + E_Manager *man; + E_Config_Dialog_Data *cfdata; + + man =
Re: [E-devel] Pager patch
On Thu, 16 Nov 2006 19:40:58 +0100 lok [EMAIL PROTECTED] wrote: Hi, I've made some changement on the pager config. The first one let the user choose the mouse button he wants for the two type of drag. And the second disable the wheel callback on the pager. The wheel callback on the pager works only if the pager is in a shelf above everything. By default it's disabled because scrolling above the pager in this case make you switch by a step of 2 desktops (one is done by the pager's callback and the other by the E's default mousebinding). The pager is probably the most used module, so I prefere to not commit this patch directly. (just to be sure to not be hunt down if I've made a mistake). And the patch also fix a small warning. Lok ok sorry about the double posting. I forgot to change two values before making the patch. This one is the good one. (No need to apply the previous) LokIndex: pager/e_mod_config.c === RCS file: /cvs/e/e17/apps/e/src/modules/pager/e_mod_config.c,v retrieving revision 1.22 diff -u -u -r1.22 e_mod_config.c --- pager/e_mod_config.c 3 Sep 2006 07:40:45 - 1.22 +++ pager/e_mod_config.c 16 Nov 2006 19:36:54 - @@ -1,11 +1,37 @@ #include e.h #include e_mod_main.h +typedef enum _Pager_Grab_Button Pager_Grab_Button; +enum _Pager_Grab_Button +{ + GRAB_BUTTON_DRAG, + GRAB_BUTTON_NOPLACE +}; + struct _E_Config_Dialog_Data { int show_popup; double popup_speed; int drag_resist; + unsigned char btn_drag; + unsigned char btn_noplace; + int flip_desk; + + struct + { + Ecore_X_Window bind_win; + E_Dialog *dia; + Evas_List *handlers; + + unsigned char *button1; + unsigned char *button2; + } grab; + + struct + { + Evas_Object *o_btn1; + Evas_Object *o_btn2; + } gui; }; /* Protos */ @@ -15,6 +41,11 @@ static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); static Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); static int _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); +static void _advanced_update_button_label(E_Config_Dialog_Data *cfdata); +static void _grab_wnd_show(void *data1, void *data2); +static void _grab_wnd_hide(E_Config_Dialog_Data *cfdata); +static int _grab_mouse_down_cb(void *data, int type, void *event); +static int _grab_key_down_cb(void *data, int type, void *event); void _config_pager_module(Config_Item *ci) @@ -47,6 +78,9 @@ cfdata-show_popup = pager_config-popup; cfdata-popup_speed = pager_config-popup_speed; cfdata-drag_resist = pager_config-drag_resist; + cfdata-btn_drag = pager_config-btn_drag; + cfdata-btn_noplace = pager_config-btn_noplace; + cfdata-flip_desk = pager_config-flip_desk; } static void * @@ -111,6 +145,25 @@ e_widget_framelist_object_append(of, ob); e_widget_list_object_append(o, of, 1, 1, 0.5); + of = e_widget_frametable_add(evas, _(Buttons Settings), 0); + ob = e_widget_label_add(evas, _(Drag and select button)); + e_widget_frametable_object_append(of, ob, 1, 1, 1, 1, 1, 1, 1, 1); + ob = e_widget_label_add(evas, _(Drag no place button)); + e_widget_frametable_object_append(of, ob, 1, 2, 1, 1, 1, 1, 1, 1); + ob = e_widget_button_add(evas, _(Click to set), NULL, _grab_wnd_show, (void *)GRAB_BUTTON_DRAG, cfdata); + e_widget_frametable_object_append(of, ob, 2, 1, 1, 1, 1, 1, 0, 0); + cfdata-gui.o_btn1 = ob; + ob = e_widget_button_add(evas, _(Click to set), NULL, _grab_wnd_show, (void *)GRAB_BUTTON_NOPLACE, cfdata); + e_widget_frametable_object_append(of, ob, 2, 2, 1, 1, 1, 1, 0, 0); + cfdata-gui.o_btn2 = ob; + _advanced_update_button_label(cfdata); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + of = e_widget_framelist_add(evas, _(Wheel callback), 0); + ob = e_widget_check_add(evas, _(Flip desktop on mouse wheel), (cfdata-flip_desk)); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + return o; } @@ -120,7 +173,135 @@ pager_config-popup = cfdata-show_popup; pager_config-popup_speed = cfdata-popup_speed; pager_config-drag_resist = cfdata-drag_resist; + pager_config-btn_drag = cfdata-btn_drag; + pager_config-btn_noplace = cfdata-btn_noplace; + pager_config-flip_desk = cfdata-flip_desk; _pager_cb_config_updated(); e_config_save_queue(); + return 1; +} + +static void +_advanced_update_button_label(E_Config_Dialog_Data *cfdata) +{ + char label[strlen(_(Click to set))]; + + if (cfdata-btn_drag) + snprintf(label, strlen(_(Button ))+3, Button %d, cfdata-btn_drag); + else + snprintf(label, strlen(_(Click to set))+1, _(Click to set)); + e_widget_button_label_set(cfdata-gui.o_btn1, label); + + if (cfdata-btn_noplace) + snprintf(label, strlen(_(Button ))+3, Button %d, cfdata-btn_noplace); + else + snprintf(label, strlen(_(Click
Re: [E-devel] itray module
On Tue, 19 Sep 2006 06:43:25 -0400 Sthithaprajna Garapaty [EMAIL PROTECTED] wrote: I think for now we can get away with just a notification module. Is there any spec for this? Anything we should be looking at? (maybe the Gnome KDE code). Somewhat. There's libnotify and the Desktop Notification Spec. http://trac.galago-project.org/wiki/DesktopNotifications http://galago-project.org/specs/notification/index.php http://galago-project.org/downloads.php Unfortunately, its not too widely implemented, and the spec is not too comprehensive either. But, it does provide a lot more flexiblity than the systray spec in that it does not restrict you to single icons in a row and of course, it throws out the ugly sub-windowing for actual images (with alpha) and text. Basically, it would be nice if we could, maybe extend the IBox so each minimized application can send notifications. Maybe we could somehow fool other applications into thinking they've been trayed so that they can send notifications and we can capture them. This seems like a bad idea to me. Applications shouldnt have to be minimized to send notifications. In fact, applications shouldn't need to have a window open to send notifications. imho the notification and the tray system must be separated. They're goal are too different to make it in one only module. These are just my thoughts, dunno if they're good. Waiting to hear your opinions. I might get into this module, in a few days, when I finish my current work. I have other things on my list as well (I have updating the carbon theme, and integrating some power management into E on my list at the moment). So basically, I'd like to collect some thoughts on these items. But mostly, on this notification thing. I think that basically we need a notification daemon like describe in the spec. But more than that it would be very great if the daemon posses some prebuilt widgets and that all we need is to passe a description of the UI by dbus (I risk my life saying that but if we want something multidesktop, xml should be used here). About the daemon : He has to be able to parse the xml input and make the corresponding UI (seems logical). The xml describe the widgets used, their different properties and value and their positions (something like the box model of edje would be great for that but again if we wan't something multi desktop and not just for e maybe this point need some discussion). Concerning the prebuilt widgets, I'm not talking about remake another toolkit, the daemon has just to use already existant basics widgets (i.e: label, button, image, progressbar, scrolledview) in the toolkit of his choice. Thus with a system like that, the theme and toolkit used for the notification is not anymore choose by the application but by the user. Here is my thoughts, whether you took it or not I'm really interested by using a notification something so I hope that you are going to start to work on it soon :) lok. Cheers, Eugen. - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn