Stefano Ceccherini
b03deb09db
Menu settings are now handled by the app_server. As a result, changing them does something, although they aren't saved to disk yet. 'click_to_open' is not checked anymore, because it was useless anyway, I'll remove it from the Menu preflet too.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17174 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-19 20:04:19 +00:00
Stefano Ceccherini
1b5b2e4c35
MenuItems don't flicker anymore when a submenu opens (fixes bug 484). Implemented popupmenu's 'clickToOpenRect' feature, used by tracker's dirmenus, for example (fixes bug 523
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17168 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-18 20:32:10 +00:00
Stefano Ceccherini
4697016070
Lowered the delay in menus after which they don't switch to sticky mode, should fix bug 491, although its not really a bug
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17153 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-17 14:13:08 +00:00
Stefano Ceccherini
415c63bee2
PopUpMenus didn't respect the openanyway setting (sticky mode), they always set it. And even in that case, they weren't working correctly. This should fix bugs 463 and 476. This might not work if click to open isn't selected in the menu prefs, though.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17136 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-15 16:57:51 +00:00
Stefano Ceccherini
36aa2198b7
Some more changes, fixed bug 487, added a small hysteresis so menus could be more nice to navigate, some corrections in popupmenu
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-15 12:42:34 +00:00
Stefano Ceccherini
0e0b8fd554
more fixes
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17104 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-12 11:25:59 +00:00
Stefano Ceccherini
7d550b53a0
and there, the usual forgotten stuff
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17096 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-11 20:53:11 +00:00
Stefano Ceccherini
2191a09a93
big improvements for menus. The tracking is in many ways on par with r5, except for a few things, like diagonal movement and that grandparent bug
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17095 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-11 20:20:41 +00:00
Stefano Ceccherini
9c5c552dd6
more fixes
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17043 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-07 17:44:02 +00:00
Stefano Ceccherini
bf5d7973b9
Obviously I put in the usual 'untested last minute change' which broke everything. Should be fixed now.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17042 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-07 17:24:14 +00:00
Stefano Ceccherini
c51421cc0b
implemented sticky mode. Let's see how many complaints because it's not perfect at all. Under qemu it's super crappy btw
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17041 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-07 16:52:37 +00:00
Stefano Ceccherini
29c407a371
Fixed menus in case the window was hidden (VLC, StyledEdit). This is just a quick fix and will be changed later. Thanks to John Drinkwater for testing
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17008 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-04 14:31:46 +00:00
Axel Dörfler
6d9adcf120
Removed a superfluous const_cast and a variable from ChooseTrigger().
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17007 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-04 13:51:28 +00:00
Axel Dörfler
cb2998af29
BMenuItem::SetTrigger() and SetAutomaticTrigger() now also update fTriggerIndex.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17006 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-04 13:13:18 +00:00
Axel Dörfler
0f11085c6c
* Rewrote MenuItem.h (we're no longer using Be's header).
...
* Renamed private SetSysTrigger() to SetAutomaticTrigger().
* Added the '_' prefix to private methods that aren't called by anything outside
BMenuItem (ie. no friend classes either).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17005 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-04 13:02:52 +00:00
Stefano Ceccherini
195f58ddbb
BMenu::_AddItem() keeps the looper locked for the whole time, other changes: let's see if this fixes that bug
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16990 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-03 19:50:16 +00:00
Stefano Ceccherini
e90bed06b1
Fixed vlc menubars
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16975 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-02 22:31:04 +00:00
Stefano Ceccherini
262a2483e2
I woulnd't say the classical last words... but I seem to have fixed latest crashes...
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16943 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-31 20:13:41 +00:00
Stefano Ceccherini
f2e9b063a0
This small change could even fix some big problems with menus... unfortunately I can only reproduce them in vmware, and not in qemu
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16940 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-31 09:37:59 +00:00
Stefano Ceccherini
793fde40eb
This should fix some problems I experienced later. At least, I can't reproduce them anymore
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16920 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-29 10:42:54 +00:00
Stefano Ceccherini
35beeaa99f
Minor improvements
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16916 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-28 20:22:15 +00:00
Stefano Ceccherini
4185bd8b34
Hopefully simplified BMenu/BMenuWindow relationship and made it more robust.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16910 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-28 13:06:47 +00:00
Stefano Ceccherini
9913366fe7
Reset fAttachAborted otherwise menus never get filled after they have been interrupted once.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16908 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-28 06:44:39 +00:00
Stefano Ceccherini
6aa12747cd
Stupid me. ConvertToScreen() isn't needed, and I should read more carefully my own code
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16901 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-27 21:50:35 +00:00
Stefano Ceccherini
ed49f4afcd
Improved OkToProceed(), removed unused file
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16900 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-27 21:46:19 +00:00
Stefano Ceccherini
f356aedc02
Implemented BMenu::OkToProceed() and used it correctly in BMenu::AttachedToWindow(). For some reason, though, I had to comment it out partially as something is wrong. I haven't debugged, though
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16899 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-27 19:43:05 +00:00
Stefano Ceccherini
7abe70f1b4
Hopefully cleaned up a bit the locking in BMenu::_show()/_hide()
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16867 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-23 15:33:28 +00:00
Stefano Ceccherini
37cf3d970d
Avoid attaching a menu to the BMenuWindow when not needed
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16863 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-22 21:07:35 +00:00
Stefano Ceccherini
b80eb9d443
Partially reverted axel's change, because it brings more troubles than benefits (menus lock when they reuse the supermenu's menuwindow). I'll try to resolve the various problems in another way. Some cleanups
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16861 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-22 20:47:52 +00:00
Axel Dörfler
e87965deed
* Fixed a possible crash when removing and adding items from a window.
...
* This does not yet close bug #233 , but could also be a reason for this crash.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16851 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-21 17:49:42 +00:00
Stefano Ceccherini
7a2c9b35cd
Reverted to r16487 due to various problems. I'll recommit the code once it's fully working.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16850 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-21 16:06:46 +00:00
Stefano Ceccherini
ebaeaa1224
BMenu::InvalidateLayout() now just marks the cached layout as invalid, instead of recalculating it. This results in less computations. Reorganized the layout calculation due to that. Now it's done once in AttachedToWindow(), and in Draw(), only if needed
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16848 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-20 21:49:11 +00:00
Stefano Ceccherini
65b4fb8ab1
Check if alt is the command key on BMenu::AttachedToWindow instead of doing it for every BMenuItem::Draw()
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16847 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-20 20:20:29 +00:00
Stefano Ceccherini
21f9f047fa
Don't resize items if not needed, small change
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16810 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-15 20:44:23 +00:00
Stefano Ceccherini
446d93a0cc
sorry, this was meant to be removed
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16669 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-08 23:19:12 +00:00
Stefano Ceccherini
49b154d166
Fixed wrong calculation of the menu frame if layout is B_ITEMS_IN_ROW. Fixes bug 209
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16667 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-08 23:15:47 +00:00
Stefano Ceccherini
66188b6676
pulled check out of the loop
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16604 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-06 13:29:29 +00:00
Stefano Ceccherini
6d87a14258
Take the max content width into account in BMenu::ComputeLayout(). This fixes bug 188. IOW the deskbar expander arrow is now shown
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16603 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-06 13:19:01 +00:00
Stefano Ceccherini
2c11ec31c8
BMenuItem also draws ctrl bitmap if needed, BTextView::AutoResize implemented more correctly
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16577 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-03 19:31:09 +00:00
Axel Dörfler
a41bc2d828
Removed trailing newline from window name.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16529 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-27 14:00:18 +00:00
Stefano Ceccherini
de71e4da6d
_BMCItem_ isn't used anymore
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16457 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-18 09:13:22 +00:00
Stefano Ceccherini
15b4cc6ea6
reduced the histeresis, now it's a fixed value
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-09 22:07:48 +00:00
Stefano Ceccherini
2a5bad1541
Avoid menus in menufields going out of the screen in the upper part
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16316 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-09 20:58:15 +00:00
Axel Dörfler
fd1528f275
Accidently broke selecting sub menus with the last commit.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16167 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-31 03:31:23 +00:00
Axel Dörfler
ec549309c9
The menus work a bit less good now I think, but they no longer have 100% CPU usage
...
when the menu item under the mouse cursor has a sub-menu.
Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16160 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-30 23:40:05 +00:00
Stefano Ceccherini
61ba5a32c1
Added some code to draw "empty" in empty menus. Not working for the
...
moment, but committing since it's too late to continue working, and at
least the window is resized correctly...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16142 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-29 22:27:46 +00:00
Stefano Ceccherini
365a41fd5c
Reduced the time hysteresis. Need more testing, though
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16030 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-21 20:08:58 +00:00
Stefano Ceccherini
0219459ba0
Added a small time hysteresis: submenus are only opened if the user keeps the mouse there for a while. I'd like feedback on this
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16015 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-21 09:23:59 +00:00
Stefano Ceccherini
c592b98fd2
Reworked BMenu::Set/IsEnabled(). I tested what happens under beos and our code seems to be finally correct
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15999 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-17 20:11:07 +00:00
Stefano Ceccherini
0c7450238f
followed stippi's suggestion and implemented SetEnabled more cleanly
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15989 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-16 22:49:05 +00:00