Commit Graph

61 Commits

Author SHA1 Message Date
Carsten Haitzler 397a58137e e menus - keep parent menu items activated when browsing child items 2020-10-01 17:59:26 +01:00
Carsten Haitzler b92b546d36 e menu - allow hold mode to be turned off
hold mode is where if u hold mosue down menu stays only as long as
mouse is held down... then dismissed on up. doesnt work well when youa
re trying to overload a single click with longpresses and so on -
optionally turn it off. used in gadgets.
2018-10-17 14:35:49 +01:00
Mike Blumenkrantz 59fa0e418d use E_BITFIELD define for bitfield struct members
on release builds this will be a bitfield, on devel builds it will make
bools a normal unsigned char for easier debugging
2017-11-07 10:39:56 -05:00
Mike Blumenkrantz 01b7cf8227 add function to return a currently-active menu 2017-08-04 16:05:16 -04:00
Mike Blumenkrantz a117c977dd e_menu_grab_window_get() -> e_menu_is_active()
0 is a valid canvas window id, and this function was no longer being used
for its original purpose
2017-02-24 14:15:38 -05:00
Stefan Schmidt 9365129a5a e_menu: use Eina_Bool for one-bit bitfield
Make sure we are using a unsigned var here. Best go with a Eina_Bool directly.
2015-11-26 18:31:29 +01:00
Chris Michael 0a94e8ba71 enlightenment: Make E build again with EFL from git
sed -i 's/EAPI/E_API/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-07 15:13:10 -04:00
Mike Blumenkrantz 12d7405a0f huge wl fixup (wayland clients actually working again)
* try to clear up build system for separating out ecore-x

* add #ifdefs for lots of ecore-x stuff

* break out some internal e wl functions for reuse in api

* store wl surface buffers as an inlist

* add protocol-specific client compositor data

** move lots of X client attributes here

* add pixmap type checks to a number of X-specific things, such as grabinput, to block them for non-X clients

* rearrange startup order to work with wayland

* move X screensaver code to e_comp_x

* flag modules still requiring X with -DNEED_X
2014-01-14 20:28:57 -05:00
Mike Blumenkrantz 86656e4df9 compositor rewrite / charlie-foxtrot situation
huge fustercluck commit because there wasn't really a way to separate out the changes. better to just rip it all out at once.

* compositor and window management completely rewritten. this was the goal for E19, but it pretty much required everything existing to be scrapped since it wasn't optimized, streamlined, or sensible. now instead of having the compositor strapped to the window manager like an outboard motor, it's housed more like an automobile engine.

** various comp structs have been merged into other places (eg. E_Comp_Zone is now just part of E_Zone where applicable), leading to a large deduplication of attributes

** awful E_Comp_Win is totally dead, having been replaced with e_comp_object smart objects which work just like normal canvas objects

** protocol-specific window management and compositor functionality is now kept exclusively in backend files

** e_pixmap api provides generic client finding and rendering api

** screen/xinerama screens are now provided directly by compositor on startup and re-set on change

** e_comp_render_update finally replaced with eina_tiler

** wayland compositor no longer creates X windows

** compositor e_layout removed entirely

* e_container is gone. this was made unnecessary in E18, but I kept it to avoid having too much code churn in one release. its sole purpose was to catch some events and handle window stacking, both of which are now just done by the compositor infra

* e_manager is just for screensaver and keybind stuff now, possibly remove later?

* e_border is gone along with a lot of its api. e_client has replaced it, and e_client has been rewritten completely; some parts may be similar, but the design now relies upon having a functional compositor

** window configuration/focus functions are all removed. all windows are now managed solely with evas_object_X functions on the "frame" member of a client, just as any other canvas object can be managed.

*** do NOT set interceptors on a client's comp_object. seriously.

* startup order rewritten: compositor now starts much earlier, other things just use attrs and members of the compositor

* ecore_x_pointer_xy_get usage replaced with ecore_evas_pointer_xy_get

* e_popup is totally gone, existing usage replaced by e_comp_object_util_add where applicable, otherwise just placed normally on the canvas

* deskmirror is (more) broken for now

* illume is totally fucked

* Ecore_X_Window replaced with Ecore_Window in most cases

* edge binding XWindows replaced with regular canvas objects

* some E_Win functionality has changed such that delete callbacks are now correctly called in ALL cases. various dialogs have been updated to not crash as a result

comp files and descriptions:

e_comp.c - overall compositor functions, rendering/update loop, shape cutting

e_comp_x.c - X window management and compositor functionality

e_comp_wl.c - Wayland surface management and compositor functionality

e_comp_canvas.c - general compositor canvas functions and utilities

e_comp_object.c - E_Client->frame member for managing clients as Evas_Objects, utility functions for adding objects to the compositor rendering systems

additional authors: ivan.briano@intel.com

feature: new compositor

removal: e_border, e_container, e_popup
2014-01-14 20:22:02 -05:00
Mike Blumenkrantz b702eddfd1 use new zoomap function to set solidness on comp win reshadow 2013-04-17 08:07:11 +01:00
Mike Blumenkrantz a4d13328e9 put zoomap shaped/solid edc stuff back for menus, let comp wins use it more generally 2013-04-17 06:32:49 +01:00
Mike Blumenkrantz b0260e98cb revert zoomap stuff from menus 2013-04-16 13:51:50 +01:00
Carsten Haitzler e0e513f457 add zoomap so we get back our zooming comp client things with.. menu
for today. popups need doing... anything that bypasses the comp native
surface stuff needs this. :)
2013-04-16 20:07:36 +09:00
discomfitor 0d16ba68cd giant comp rejiggering commit #3
* e menus are now drawn directly onto the compositor canvas

* menu theme now requires at least one part which allows mouse events in every menu group (YOUR MENUS WILL NOT WORK IF YOU ARE USING A THEME WHICH LACKS THIS!!!!!!!)

* menus now also report dangling/zombie menus with slightly more accuracy now
2013-03-11 05:20:52 +00:00
Mike Blumenkrantz 8b28b2f2f1 revert previous few commits related to e_menu, not meant to go in yet
SVN revision: 84083
2013-02-19 08:22:46 +00:00
Mike Blumenkrantz 7b4783ec15 menus are now drawn directly onto the compositor canvas
SVN revision: 84078
2013-02-19 08:09:05 +00:00
Mike Blumenkrantz f927968340 e_menu_category_callback create callback parameter order has changed to be consistent with the rest of the efl: data param always comes first
SVN revision: 82547
2013-01-10 10:36:41 +00:00
Mike Blumenkrantz 1bbcf1abb0 added function to hide all active menus, always hide menus when desklocking
SVN revision: 81925
2012-12-31 07:47:51 +00:00
Mike Blumenkrantz 68270ed5e8 uchar -> Eina_Bool
SVN revision: 78150
2012-10-18 07:28:12 +00:00
Mike Blumenkrantz b45316163f add menu function to activate currently active menu item
SVN revision: 76108
2012-09-04 07:01:09 +00:00
Mike Blumenkrantz 18fa14a855 add menu function for returning current active menu item
SVN revision: 76107
2012-09-04 06:17:38 +00:00
Mike Blumenkrantz fd1f67375e add missing consts
SVN revision: 75777
2012-08-28 10:54:58 +00:00
Mike Blumenkrantz 09387b5106 add missing const to menu functions
SVN revision: 75548
2012-08-22 13:02:08 +00:00
Mike Blumenkrantz b270841119 revert all menu idler work: it greatly improved responsiveness but had too many corner cases where things look weird, so I guess we can all just deal with slow menus
note: this mainly affects the Files submenus


SVN revision: 74906
2012-08-06 08:16:14 +00:00
Mike Blumenkrantz 51ce8b4519 menus now realize their items using idlers to improve responsiveness when loading large/complex menus
SVN revision: 74713
2012-08-01 07:08:06 +00:00
Mike Blumenkrantz d706d72905 add const to param
SVN revision: 74582
2012-07-30 11:55:43 +00:00
Vincent Torri c3b0637802 e17: whitespaces--
SVN revision: 72561
2012-06-21 06:19:43 +00:00
Mike Blumenkrantz 71fcdc6428 typedefs: the greatest.
SVN revision: 64452
2011-10-27 23:48:52 +00:00
Hannes Janetzek 7f457f1911 e17: add option to have gadcon client settings menu in toplevel again.
added e_menu_item_new_relative(E_Menu, E_Menu_Item *rel) which appends 
 new item to rel or prepends it when rel is NULL.

changed e_gadcon_util_client_menu_append to to take only the gadget menu
 and returns the new toplevel menu that should be shown by gcc
 depending on the setting this is a new menu with gadget menu as submenu
 or the gadet_menu with gadget menu items appended

updated e-modules-extra comes in a minute


SVN revision: 57826
2011-03-17 17:08:36 +00:00
Gustavo Sverzut Barbieri 6f2213cb25 convert init/shutdown to EINTERN, move some to _update().
Do not abuse the concept of e_*_init(), make them call-once and those
that needed multiple call are renamed to e_*_update(). To make sure
convert them to EINTERN so the symbols are not exported.

Actually I guess too much is exported as EAPI while they should be
EINTERN, but that would require manual investigation, while this patch
was basically created with sed + grep.



SVN revision: 54795
2010-11-22 15:21:32 +00:00
Lucas De Marchi 6638a10e20 FORMATTING
* Remove vim modelines:
 find . -name '*.[chx]' -exec sed -i '/\/\*$/ {N;N;/ \* vim:ts/d}' \{\} \;
 find . -name '*.[chx]' -exec sed -i '/\/[\*\/] *vim:/d' \{\} \;

* Remove leading blank lines:
 find . -name '*.[cxh]' -exec sed -i '/./,$!d'

If you use vim, use this in your .vimrc:
set ts=8 sw=3 sts=8 expandtab cino=>5n-3f0^-2{2(0W1st0



SVN revision: 50816
2010-08-04 16:57:32 +00:00
Carsten Haitzler 79dcd015f8 lots of work on compositor stuff. looking slick and nice internally too.
SVN revision: 45159
2010-01-15 04:41:20 +00:00
Davide Andreoli f71eea73b2 * Add a new menu api call :
EAPI void
e_menu_item_disabled_set(E_Menu_Item *mi, int disable)

Setting the menu item 'disabled' will gray it out and will make it unselectable.



SVN revision: 39802
2009-03-30 13:59:56 +00:00
Gustavo Sverzut Barbieri 3475cb81c5 eina macros in menu loops
SVN revision: 39651
2009-03-23 12:28:15 +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
Sebastian Dransfeld 06bacc49b9 Remove unused struct member.
SVN revision: 28983
2007-03-24 06:59:41 +00:00
Carsten Haitzler 7cdf9af46b metrics keynav patches in
SVN revision: 26416
2006-10-08 08:25:08 +00:00
David Walter Seikel 5a1799c941 Icons back in menus again.
SVN revision: 25401
2006-09-03 11:32:13 +00:00
David Walter Seikel d3de4f4e95 Beginning to drag all the basic "show this icon for this app" code
together in one place to make it easy to keep it consistant.


SVN revision: 25273
2006-09-01 09:01:52 +00:00
David Walter Seikel 7705dfc9b1 Added Drag'n'Drop from application menus to ibar and anything else that
can accept an E_App drop.


SVN revision: 25034
2006-08-22 08:38:24 +00:00
Viktor Kojouharov d0751b3258 removed e_menu_item_icon_object_set as it could have never worked properly.
now, the menu icon can be set properly upon realization with the e_menu_item_realize_callback_set function. rewrote the clients menu to use the border icon, and be sorted like the winselector.


SVN revision: 25026
2006-08-21 20:03:09 +00:00
David Walter Seikel 3d29c9caf7 Actually display the FDO icons referenced from the FDO .desktop files.
Theme icons and .eaps are searched first.

Still needs some work and a lot of testing.  Also needs optimising,
which will come when I go over the caching code later.

Ibar and ibox modules read the .eap directly, so I need to convert them
seperately.

Next I'll spend some time with valgrind, things are leaking.


SVN revision: 24795
2006-08-16 09:37:14 +00:00
Viktor Kojouharov b8706da78d function for adding evas objects as icons in the menus
SVN revision: 24281
2006-07-28 23:22:57 +00:00
Christopher Michael 4bb372ad2d Give ability for config dialogs to set their border icon to the proper
config icon, rather than all having the E logo. Is proactive about setting
this: if it does not find or cannot set to that icon, it will fallback to
the E icon.

Change all config dialogs to support this.

If we have an internal border (config dialogs), disable the Create Icon/Edit
Icon menu items.


SVN revision: 23655
2006-07-02 16:19:51 +00:00
stffrdhrn 218717c8dc Clean up compile warnings:
* char * -> const char * for stringshare strings
 * char * -> const char * where needed in functions
 * remove unused vars in some places


SVN revision: 20912
2006-03-02 12:03:48 +00:00
Carsten Haitzler 7ce12cd800 fangies work!
SVN revision: 19658
2006-01-08 16:38:01 +00:00
codewarrior d3c1a4a4a0 -Efm:
- cleanups
- patch from Jose for menus.
- patch from Mista for Open With and other misc.


SVN revision: 19581
2006-01-06 23:45:13 +00:00
Carsten Haitzler 744dfc58ff one way or the other i'm forced to add timestamps to events - i cant avoid it
anymore. sorry guys. really no way around it. :(


SVN revision: 15891
2005-07-25 09:55:47 +00:00
Carsten Haitzler a6ec307a80 minimise cpu hape use if shape hasnt changed
SVN revision: 15542
2005-06-27 10:08:53 +00:00
Carsten Haitzler 242e7b4744 shorne's patch
SVN revision: 14861
2005-05-20 03:09:44 +00:00