On Fri, Jun 19, 2009 at 3:02 AM, Sergey Semernin<[email protected]> wrote: > Hello, All. > > Now, gadget managers can distinguish which gadgets are usable for > shelfs, toolbars, desktop and etc. I was added to E_Gadcon_Client_Class > new callback 'is_site', and when gadget manager build list of available > gadgets it try to call this functor: > -- If 'is_site' undefined, then it means that this gadget can be used > everywhere. > -- Otherwise, manager call 'is_site' with a name of the site and if result > is > EINA_FALSE, then this gadget should not be included in available > gadgets list. > -- If manager can't determine target site of 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(). 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() they should be used by modules to avoid duplication, and you can have them to use the globals with the stringshared version of names you created before (at init time). > 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. > -- 'desktop' - all desktops via gadman. > Other site names can be easily added. > > Now, to complete 'is_site' callbacks for all modules, I need to know which > modules > should appear for shelf and/or desktop and/or toolbar. Because, I don't > experimented > with all modules at this time. Please tell me this information and I will > complete the > callbacks. I'd say that efm_* are just for toolbar (fm), monitors/status are for all and everything else are for !toolbar. Monitors are not often useful, but can demo some coolness of our technologies: e/src/modules: - battery: all - clock: all - conf: !toolbar - connman: !toolbar - cpufreq: all - fileman_opinfo: all (it would be good to make it work properly on toolbar) - gadman: just desktop - ibar: !toolbar - ibox: !toolbar - illume: !toolbar - mixer: !toolbar - pager: !toolbar - start: !toolbar - systray: !toolbar - temperature: !toolbar E-MODULES-EXTRA: - alarm: !toolbar - calendar: just as clock, leave it for all so we have the fancy factor. - configmenu: !toolbar - cpu: all - deskshow: !toolbar - diskio: all - drawer: !toolbar (maybe all?) - efm_nav: just toolbar - efm_path: just toolbar - efm_pathbar: just toolbar - emu: !toolbar - exalt-client: !toolbar - execwatch: !toolbar - forecasts: all - iiirk: !toolbar - language: !toolbar - mail: all - mem: all - moon: all - mpdule: all (or !toolbar?) - net: all - news: all - notification: !toolbar - photo: !toolbar - places: all - screenshot: !toolbar - skel: <-- dummy :-) - slideshow: !toolbar - taskbar: !toolbar - tclock: all - uptime: all - weather: all - winselector: !toolbar - wlan: all -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -------------------------------------- MSN: [email protected] Skype: gsbarbieri Mobile: +55 (19) 9225-2202 ------------------------------------------------------------------------------ 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 [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
