Commit Graph

144 Commits

Author SHA1 Message Date
Hannes Janetzek 7cb9d3a362 EINA_FUCK_REVERSE_FOREACH != for (l = some_pointer_in_list_from_where_want_to_start; l; l = l->prev)
anyway nice that i didnt had to rewrite gadcon layout to fix this issue,
but at least starting the rewrite made me realize the above mentioned 
difference. moving and resizing of gcc in non-shrinked mode works 
now nicely again.


SVN revision: 42637
2009-09-23 06:06:13 +00:00
Hannes Janetzek 484b32f3f0 gadcon: gadcon clients move now _with_ the mouse in shrinked mode
SVN revision: 42543
2009-09-17 09:03:13 +00:00
Hannes Janetzek 36bf931eda gadcon: get right mouse position for efm gadcon..
SVN revision: 42540
2009-09-17 05:41:23 +00:00
Hannes Janetzek 5cee246020 gadcon:
- fix dnd of gadcon clients between gadcons
- apply fix from victor for gadcon client movements
- make layout algorithm orientation agnostic


SVN revision: 42539
2009-09-17 05:18:28 +00:00
Hannes Janetzek 8b6002a5cf populate custom gadcons on when added
- now gadman shows gadgets when it is unloaded and loaded again 


SVN revision: 42284
2009-09-05 17:02:09 +00:00
victor 324e84908c From: victor <victor.scorpion@gmail.com>
Hi guys.

Here is my solution for #113 ticket request. This allows to transfer a
gadget to different locations. In short,

- any module can register arbitrary number of locations by invoking
e_gadcon_location_register().
- module is responsible to provide 2 functions, one for removing
particular gadget and one to add particular gadget class.
- module responsible to equip its gadcon(s) with reference to registered
location. If a gadcon contains non-NULL location reference, each gadget
contained by this gadcon can have submenu on its context menu. Template
function for constructing such submenu is provided
e_gadcon_client_add_location_menu. Gadgets can be moved from and to this
location by invoking menu items. Gadcons with NULL location reference
can accept transferred gadgets by module logic but can't send contained
gadgets to another module.
- module responsible to unregister location when gadcon is no more
available.
- menu items for context submenu is sorted by E_GADCON_SITE_XXX assigned
to that. Module can assign and change an icon for context menu item
corresponding to its location(s).
- Currently only shelves and gadman (desktop) used in gadget transfer
operations. I believe it is no trouble to ivolve any other
gadcon-capable module into the process. If you want to have that, please
just let me know.

Here the patch in attachmet. It even works, at least sometimes and at
least for me. Hope you'll find it useful.



SVN revision: 42121
2009-08-31 11:23:03 +00:00
Cedric BAIL 6051d5f3a6 * e_gadcon.c: Fix Gadcon unpopulate. Thanks to Sachiel.
SVN revision: 41950
2009-08-24 09:17:54 +00:00
Cedric BAIL f8c05999e4 * e: Cleanup use of Eina data structure.
Patch from Peter van de Werken <pwerken-e@a-eskwadraat.nl>.


SVN revision: 41916
2009-08-21 15:08:49 +00:00
Christopher Michael c37b22a39f Fix ticket #343 (autoscroll and resizable not being set after restart).
Formatting.
Whitespace Removal.
Variable cleanup.
Add missing 'static' declaration on private function.
Move EAPI functions to be together in the source before local functions.



SVN revision: 41246
2009-07-04 01:44:34 +00:00
semernin 2f76dd5d99 List of changes:
1. Gadcon sities:
      -- 'E_Gadcon_Site' enum to list all available sities,
      -- added 'is_site' callback for distinguish gadcon sities,
      -- 'e_gadcon_site_is_*' helpers written to use in gadget modules,
      -- gadcon config dialogs modified to show only gadgets that appropriate
         to selected gadcon site,
      -- all gadget modules updated for using new callback.
      
      When callback is not provided in module, then gadget can be used in 
      any gadcon site.
      
   2. Filemanager:
      -- added error icon to unexisting path dialog,
      -- added callback 'func.abort' to 'E_Fm2_Op_Registry_Entry' to specify
         abort operation sequence (if not provided, then operation is not
         cancelable),
      -- added parameter to 'e_fm2_op_registry_entry_add' to specify abort
         method on construct 'E_Fm2_Op_Registry_Entry' or make non-cancelable
         operation if this function is not provided,
      -- added 'e_fm2_operation_abort' call to cancel efm2 operation,
      -- added method '_e_fm2_operation_abort_internal' that represent efm2
         default handler of operation cancelling,
      -- 'done' and 'total' fields of 'E_Fm2_Op_Registry_Entry' changed to
         off_t type, also all message handlers modified to work with it
         (to show progress for large files correctly),
      -- improved file operation progress processing,
      -- added cancel button to operation progress gadget in filemanager window,
      -- added delete file glyph to operation progress gadget,
      -- improved status message for efm2 operation progress.

   3. Filemanager slave:
      -- fixed critical bug in message handling via stdin/stdout,
      -- fixed critical bug in removing task from list,
      -- improved 'E_FM_OP_ABORT' handling,
      -- fix rollback counting on moving files.

   4. Fileman_opinfo module:
      -- a new theme writed: status string and gadget for view operation status
         in summary and detail modes,
      -- summary mode: operation glyph, state message, progressbar, abort button,
      -- detail mode: all for summary + from filename, to filename,
      -- summary/detailed button works as trigger,
      -- added source of module theme and used images.
      
   4. Pathbar module:
      -- non-critical fix, just for safety.

   Also patch contains several minor updates to serve main task.


SVN revision: 41224
2009-06-29 14:38:03 +00:00
Gustavo Sverzut Barbieri 413729a142 get zone from gadcon.
The old code that query the zone based on x,y was causing me
segfaults. When battery module was in a hidden shelf, the position was
outside any zone and then segmentation fault.

As far as I understand, gcc->gadcon->zone should always exist and
always be correct, but I don't have xinerama setup now to confirm
that.

If you know this is wrong, let me know!



SVN revision: 41147
2009-06-21 21:18:44 +00:00
Gustavo Sverzut Barbieri 804f59e6e5 fix problem with e_gadcon_provider_register() being called from e_modapi_init().
if e_modapi_init() called e_gadcon_provider_register() the module
gc_init() would be called immediately, becore e_modapi_init() finished
and thus mod->data was unset (it's set by E when that function
returns).

most modules did not show this problem since they keep lots of globals
around and use them, but not mixer module. Mixer module did check for
global mixer_mod to be set and also mixer_mod->data, thus exposed this
problem, with "mixer is not able to show on desktop/gadget" but did in
shelves, since it would refuse to load immediately but would be loaded
later at e_shelf_config_new()->e_gadcon_populate().

Now gadcons are populated from an idler, avoiding all these problems
and probably will impact user's perceived load time since it will do
less work before getting to main loop and being able to process
events.


SVN revision: 40714
2009-05-17 23:43:02 +00:00
Viktor Kojouharov 30b11d23c8 add a urgent show function on the gadcon level and use that
(p.s. it's a good idea to recompile any extra module that you might use)


SVN revision: 39686
2009-03-24 16:08:37 +00:00
Davide Andreoli eb2d1db1dc Icon rename finished. Now we have a fully compliant icon theme :)
now I'm going to fix E-MODULE-EXTRA...


SVN revision: 39495
2009-03-15 17:41:46 +00:00
Davide Andreoli 49fecd25b7 More icons renamed
SVN revision: 39400
2009-03-06 22:18:15 +00:00
Davide Andreoli 1101c58d9f more icons renamed
SVN revision: 39396
2009-03-06 19:17:12 +00:00
Davide Andreoli 3d669d1177 * Rename the new function:
e_util_menu_item_fdo_icon_set to e_util_menu_item_theme_icon_set
As it looks for icons in e theme AND in fdo icon themes.
* Use the new function everywere instead of e_util_menu_item_edje_icon_set,
that is now marked as DEPRECATED

You should not see any difference with this commit. With the next few commit I'm
going to rename all the icons in the theme following fdo standard. I will not change
any icons, just rename them to match fdo ones.



SVN revision: 39370
2009-03-04 20:46:05 +00:00
Cedric BAIL db419867dd * estickies,
* etk,
	* PROTO/exalt,
	* E-MODULES-EXTRA/diskio,
	* E-MODULES-EXTRA/drawer,
	* E-MODULES-EXTRA/penguins,
	* E-MODULES-EXTRA/slideshow,
	* E-MODULES-EXTRA/mail,
	* E-MODULES-EXTRA/forecasts,
	* E-MODULES-EXTRA/iiirk,
	* E-MODULES-EXTRA/places,
	* e,
	* ewl,
	* ecore,
	* elitaire,
	* entrance,
	* e_dbus,
	* efreet: Here we go, move from Ecore_List to Eina_List.

	NOTE: This patch is huge, I did test it a lot, and I hope nothing is
	broken. But if you think something change after this commit, please
	contact me ASAP.


SVN revision: 39200
2009-02-25 11:03:47 +00:00
Hannes Janetzek 887264eed4 added e_gadcon_locked_set: with this gadgets can lock the gadcon from
vanishing, like with e_shelf_locked_set. gadcon providers set their own lock 
function with e_gadcon_util_lock_func_set, which is called by 
e_gadcon_locked_set.


SVN revision: 38759
2009-01-24 14:09:37 +00:00
Carsten Haitzler a65708abbd clean up wiz
SVN revision: 38694
2009-01-22 04:42:16 +00:00
Gustavo Sverzut Barbieri 1bfaf61168 Re-break gadcon so everything works correctly.
according to raster e_gadcon_canvas_zone_geometry_get() was supposed
to return zone-relative coordinates, but it was implemented
incorrectly and everything now depends on absolute coordinates, so
let's keep it absolute.



SVN revision: 38589
2009-01-15 01:02:32 +00:00
Gustavo Sverzut Barbieri f3c5819ff3 gadcon: fix bugs reported by llvm clang static analyser.
Some cases like not having o_base and o_frame are impossible, but I
added the cheap "else return;" just to keep it quiet. But some cases
were really bugs and were fixed.



SVN revision: 38556
2009-01-12 18:31:49 +00:00
Gustavo Sverzut Barbieri 05402668aa e_menu: recursively delete children menus.
e_menu had this behaviour that submenus were not deleted
automatically, relying on the parent menu to hook to post_deactivate
and then delete them.

This was good because maybe you don't want to delete these children,
you might want to reuse them sometime.

But it ended that nobody was using this feature, and worse: most use
cases were failing to delete these children, causing memory leak.

This commit changes the default behaviour and thus remove all the
existing code that was replicating such work. If one want the old
behavior, just call e_menu_item_submenu_set(mi, NULL) and it will be
unbounded from the parent.

If you experience any problems with that, try adding some printf()
before _e_menu_free() and _e_menu_item_free() and print some relevant
information like m->category and m->header.title or mi->label in order
to figure out the problematic menu.



SVN revision: 38528
2009-01-10 07:02:32 +00:00
Cedric BAIL 773d102291 This commit is huge. I did test it a lot on my computer, and it run fine here.
But is so big i fear i could have broken some piece of code. So report any wrong
behaviour to me (cedric on #edevelop).

So moving e17 and efreet to eina_hash. With a little efreet API break so they
must come together.


SVN revision: 38185
2008-12-17 15:33:43 +00:00
Davide Andreoli 1a5b14aa48 * Now gadman place the gadget when E say so, and not only on startup.
SVN revision: 37594
2008-11-12 01:14:18 +00:00
Davide Andreoli fa648a9e48 * make E aware of the existance of gadman as a gadcon. This solve some module load/unload issues
SVN revision: 37575
2008-11-10 15:47:25 +00:00
Davide Andreoli 45cbf72298 * Gadcon API 3 *BREAK*
Version 3 add the *client_class param to icon(),label(),id_new(), id_del() 
 and the *orient param to orient().

All the modules (with a gadcon_client) need to be fixed...just add the new params 

to follow the EXTRA modules update.

SVN revision: 37450
2008-11-04 03:57:45 +00:00
Sebastian Dransfeld 92ff3dab37 Fix callback for list sorting.
SVN revision: 37202
2008-10-27 07:33:21 +00:00
Gustavo Sverzut Barbieri e5c4d62fd4 Set member_{add,del} to NULL.
SVN revision: 37091
2008-10-25 03:13:33 +00:00
Cedric BAIL 1087de2397 Remove Evas list and replace them with Eina list.
No change for ->next and ->data access right now, as the patch is already
big enough.



SVN revision: 36962
2008-10-22 11:49:33 +00:00
Cedric BAIL 3d6749983b Switch to eina_stringshare.
This could also change the usage of string share in E17.



SVN revision: 36679
2008-10-15 15:12:56 +00:00
Chidambar Zinnoury 6de31a6163 id_del was never called for gadcon clients, so call it after shutdown. Report and help for testing done by stefzekiller <stefzekiller@gmail.com>.
Moreover, remove some new compiler warning.


SVN revision: 36661
2008-10-14 16:22:52 +00:00
toma a3c3d2c23f Icon work. HUGE revision of icons and their names. This breaks the icon theme API so you might need to revise some themes. It does however, simplify a whole lot of stuff. You'll notice a lot more icons in menus. This bigger changes will come with the new theme once it is done. The missing icon names are put in b_and_w theme for now so if you need them, look them up. Also a bit of base work for EFM and the border icons in there. Commented out till the old icons are merged in. Message me if anything is screwed up.
SVN revision: 36591
2008-10-12 06:04:26 +00:00
Carsten Haitzler b370f8315f remove/comment out printfs and remove fixme (to be removed) fake mouse up funcs
SVN revision: 36229
2008-09-25 01:34:39 +00:00
Gustavo Sverzut Barbieri 18966c828b Add calculate callback to Evas_Smart_Class.
Some people is using it for some time now without problems, so I'm
adding it to SVN to get some broader use. Remember to recompile ALL
libraries that depend on Evas as it will change the
EVAS_SMART_CLASS_VERSION and old classes will fail to load.

This will also change Edje so it will postpone _edje_recalc() to
render time, calculate() callback, however some methods will force
early recalculation.



SVN revision: 35860
2008-09-07 01:25:49 +00:00
Sebastian Dransfeld ae855ee47e Fix dnd. Hopefully works in all situations now. Seems like we should
consider separating internal and external dnd code.


SVN revision: 34901
2008-06-24 20:13:35 +00:00
Christopher Michael 7676686823 Fix some formatting while I am here tracking down why every module (when
used with new gadman module) has an extra separator in the menu.


SVN revision: 34614
2008-05-19 09:57:48 +00:00
Carsten Haitzler 0a8ffffa5f add in gadman for desktop. happy dave! :)
SVN revision: 34610
2008-05-19 04:37:34 +00:00
Carsten Haitzler 586110892d since no icon is dragged - disable dnd gadgets off a gadcon for now.
SVN revision: 34554
2008-05-13 05:31:20 +00:00
Carsten Haitzler 56865b731c instant edit is on a delay timer of 1 sec
SVN revision: 34479
2008-05-06 10:20:53 +00:00
Carsten Haitzler 9bd622f018 fix 3 valgrind issues i found.
SVN revision: 33955
2008-03-07 19:13:54 +00:00
Carsten Haitzler cdded0bf38 instant edit! werd! :)
SVN revision: 33936
2008-03-05 12:39:55 +00:00
Carsten Haitzler 6fbadc1d08 dont re-order gagdtes when a user has told us what to do with them!
SVN revision: 33919
2008-03-04 13:33:18 +00:00
Carsten Haitzler 65438bc3ab printf--
SVN revision: 33918
2008-03-04 12:20:50 +00:00
Carsten Haitzler 91ede9eacc and in case an object is deleted clear out the gadcon as well
SVN revision: 33915
2008-03-04 11:34:31 +00:00
Carsten Haitzler b70f5a0ecc e:
1. configure/build changes to allow cross-compiling painlessly
2. pager module namespace changes - this was still dirty afdter the namespace
cleanup, so clean it up
3. add a powersave subsystem - doesnt have an "automatic" way to turn on and
off right now, this i think is best provided by modules (that do things like
monitor acpi status's (eg close lid of laptop), AC power status etc. etc.
this allows e to nicely defer "power" expensive actions to avoid disk
spinups etc.
4. move to use the new ecore poller system  - discussed long ago as part of
power management/saving issues. now it exists
5. add a canvas idle flush call that helsp cope with the new shm greedy
software x11 engine stuff
6. use the new powersave subsystem where appropriate
7. fix non-zeroed/initted memory access in e_fm_main
8. fix mem leak for e menus
9. remove ipc handlers for changed/removed config values
10. use animaotr not timer for menu scrolls - then menu scrolls obey the fps
config
11. fix up timer/poll happienss of cursor idle stuff
12. remove avoid damage from popups for now - causing problems
13. change battery and temp readouts to b e shorter so they fit
14. pager can emit signals on focus change for mini-windows now
15. temperature module now uses a slave process and uses stdin/out to talk to
it and get output - this makes e smoother as in my expereicne i found getting
the temp on my laptop actually took like 200ms so e "hang" for 200ms while
reading the acpi files - so now the subprocess does it and just writesa back
to e when it gets it.

ecore:
1. add ecore_pollers. see the documentation on them in doxygen comments :)
2. fix timers to only go off when they have to - bug there that made e's
select time out a LOT more than it needed to. defensive coding hid the
problem. now fixed. e should be much more power friendly now.
3. formatting/niceness in ecore_exe stuff
4. some comments on comments with SIGIO ideas vs. select
5. add call to be able to add an idle enterer at the start of the list of
them, not just the end (as has been the default)
6. fix ecore_evas to support auto evas idler calls after 0.5 secs of idle in
all canvases - and to do it right
7. if argb destination - set the shape EVENT shape (to mask out events in
transparent regions much like shape does withotu translucency)
8. in ecore_x add support for the event shape

evas:
1. fix cache to work properly and not just always fill up (as it seemed to
like to think cahce useage dropped below 0 when it didnt and thus just
over-fill)
2. software x11 engine now ONLY uses shm segments - no ximages over the
socket. this ximage hack was there to avoid the 2 round trips involved in
setting up an shm image - now i mitigated that wih an shm image cache pool.
it keeps shm images around and repurposes them for new update regions if
appropriate. this means many fewer shm creates (about 1/100th the number) and
since we recycle the memory less 0 memory page filling by the kernel - in the
end, i recorded about a 10-20% speedup over the old software x11 engine.
simple tests i have seen up to 120% speedups. idle flush now does something -
it frees all the cached shm segments. it has a hard-coded limit of 4mb worth
of shm segments (or 32 segments - whichever comes first) to keep around. once
can never complain much about speedups methinks :). also evas will defer sync
until the NEXT frame is written - this means evas can calculate the next
frame of data while x dma's/copies the images to the screen at the same time
(if you hve a dual core or multi-cpu machnike or your xserver is able to use
DMA to copy image data to the screen/video ram then this should see a decent
speedup).


SVN revision: 33448
2008-01-11 07:33:57 +00:00
Christopher Michael 28a576fbe9 Set proper icon for Inset.
SVN revision: 33265
2007-12-27 21:05:35 +00:00
Sebastian Dransfeld 1923026bb8 Disable gadcon locking for gadcon client menu for now. Need to find the
right solution.


SVN revision: 32934
2007-12-02 16:01:02 +00:00
Christopher Michael c7bbdb6b68 Make sure that the gcc->menu is set.
SVN revision: 32879
2007-11-25 08:27:13 +00:00
Christopher Michael f815a503eb More thorough check on menu_post for shelf.
SVN revision: 32874
2007-11-25 05:36:54 +00:00