Stefano Ceccherini
f5e5e36026
forgot to fix this small style issue
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19654 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-29 07:09:16 +00:00
Stefano Ceccherini
c733893846
Greatly improved scrolling, and simplified the code too. Now scrolling
...
is done from inside the BMenu::_track() function, and not inside Pulse()
anymore. Patch by Lucasz Zemczak
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19653 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-29 07:01:08 +00:00
Stefano Ceccherini
f0f8601b3f
small cleanups
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19591 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-21 14:35:13 +00:00
Stefano Ceccherini
8b91b40ae6
Try to split the tracking function into smaller ones. Please bear with
...
me for the absolutely UGLY names. Also, if someone can suggest better
ones...
I seem not to have introduced any new bug.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19476 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-12 16:05:16 +00:00
Stefano Ceccherini
08d9291667
removed now unneded extra Draw() call used as a workaround to broken
...
scrolling.
Menu attached to menubars now use scrolling if they are opened near the
bottom of the screen (just like in beos). I'm not sure if this is so
nice, though, so it could be reverted. Patch contributed by Lucasz
Zemczak
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19442 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-07 11:25:24 +00:00
Stefano Ceccherini
64a74d5eff
close the menu immediately when user clicks outside the menu
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19366 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-23 21:39:49 +00:00
Waldemar Kornewald
7fc2eecefd
Found out what trackTime was used for.
...
We should probably always start BMenuField menus in sticky mode and only switch
to non-sticky mode if the mouse was moved a minimum distance.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-22 12:30:56 +00:00
Axel Dörfler
2628e60cbc
Moved BMenuWindow, BMenuFrame, and BMenuScroller into the BPrivate namespace.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19360 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-22 11:52:18 +00:00
Waldemar Kornewald
a7067566a1
Fixed menu disappearing bug when (in sticky mode) mouse button is pressed (and held down) and the mouse pointer is moved outside of the menu. Now, menus should work as expected and switch from sticky to non-sticky mode on mouse button press correctly.
...
BTW, I disabled trackTime. It seems to work without it, correctly, so I guess it can be removed completely.
If not, just revert the change ("if (system_time....") after TODO.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19358 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-22 11:32:35 +00:00
Waldemar Kornewald
0512e98939
Now, menu reacts on first mouse release after having disabled sticky mode on MouseDown.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19350 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-21 17:14:44 +00:00
Waldemar Kornewald
b26e9fb499
In sticky mode, menus should only invoke the selected item after the mouse is released (instead of immediately on MouseDown).
...
I hope this is the correct fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19349 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-21 16:01:11 +00:00
Stefano Ceccherini
e0fcf72ae0
Fixed some semi-random crashes in deskbar and tracker caused by the new scrolling code. patch by Lucasz Zemczak. Also now the menu tracking function checks the result of the userdefined tracking hook, thus fixing bug #938
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19348 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-21 14:54:44 +00:00
Stefano Ceccherini
27cc25083e
First try at menu scrolling, courthesy of Łukasz Zemczak. Works more or less, although a bit buggy
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19343 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-20 20:19:55 +00:00
Axel Dörfler
fe23fb6699
* Renamed private BMenu::SelectItem() to _SelectItem(), and made its arguments a bit more sane.
...
* Fixed two GCC 4 warnings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19139 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-29 11:22:14 +00:00
Axel Dörfler
3cdc3291b4
The menu could leave the screen to the left, this fixes bug #902 .
...
Patch by sil2100.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19048 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-11 18:05:57 +00:00
Stefano Ceccherini
37f49a44b4
If show() fails, deselect the parent menu item.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18598 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-24 08:57:05 +00:00
Stefano Ceccherini
27f1bc8217
Don't activate the window, because it will steal the focus from the current active window, and clicking elsewhere won't close the menu
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18537 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-18 10:26:29 +00:00
Stefano Ceccherini
4e338ac6df
Started implementing menu keyboard navigation. Does only work for menubars because menu windows never get keyboard focus. Any idea how to solve this, since menu windows are B_AVOID_FOCUS both in beos and haiku?
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18517 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-17 06:12:48 +00:00
Stefano Ceccherini
bfb0aa18d3
some adjustments at the menu width calculation. Menus are generally a bit less 'compacted' now. Might need review
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18501 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-13 06:06:00 +00:00
Stefano Ceccherini
509c95da0e
Added s small workaround in BMenu::OkToProceed() to fix deskbar not opening the be menu under heavy load (or, always, under qemu) if the mouse button was released too soon. Beos seems to do something similar, although it's a hack
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18500 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-13 05:39:00 +00:00
Stefano Ceccherini
b6bf3346f3
When calculating the menu frame, take the resizeToFit parameter into account. This fixes bug 574, although the implementation isn't probably completed yet. Needs more investigation.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18459 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-08 14:07:09 +00:00
Stefano Ceccherini
cf2ef43abd
fixed a small problem with StealFocus and RestoreFocus
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18148 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-14 12:09:49 +00:00
Jérôme Duval
9fcdf0e92c
MenuItem::Archive uses BArchivable::Archive
...
inverted the enable state when initing the BMenu
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18071 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-08 12:56:18 +00:00
Jérôme Duval
9b224ec82e
add item frames to BMenu archive
...
add class names to BMenuItem archives
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18069 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-08 00:38:31 +00:00
Jérôme Duval
bbcfef1f6c
archive deep when needed, restore menu items
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18054 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-07 16:01:37 +00:00
Jérôme Duval
f1cc26391b
archives menu items in menu archive
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18053 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-07 15:51:40 +00:00
Stefano Ceccherini
9d9c1564b8
One of the BMenu::AddItem() variations crashed if the passed item was NULL. Fixes bug 465
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18026 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-04 12:37:59 +00:00
Jérôme Duval
a03ac89526
fixed some property_info and value_info for BShelf, BMenu, BWindow and BView
...
real support is to be implemented for a lot of them
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17728 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-05 15:57:58 +00:00
Stefano Ceccherini
b9af5bfa5c
- Fixed the recently introduced bug where menus would open again once closed. -Now hitting ESC will close the menu. - Reverted to the other variation of GetMouse() as Axel's advice
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17654 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-30 19:14:54 +00:00
Axel Dörfler
0dcf122e37
Removed now incorrect comment.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17634 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-29 15:41:09 +00:00
Stefano Ceccherini
c1dd282b9b
Fixed some bugs in StealFocus, RemoveFocus and SetStickyMode
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17614 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-28 08:50:52 +00:00
Stefano Ceccherini
848b89034e
More hacks to BWindow's mousedown handler, to fix some problems with menus. Fixes bug 610 among other things. Note: I don't like this code so much, but apparently BeOS handles it in a similar way. I accept suggestions on how to improve this.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17606 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-27 13:00:35 +00:00
Stefano Ceccherini
e061d1bae5
an eventually opened menu is now quit in BWindow::DispatchMessage()
...
before sending a B_MOUSE_DOWN message to any other view. This fixes bug
594 for real and another bug in BMenuBar. BMenuBar tracking will also
be simplified a bit because of this. Install items to a NULL window on
Show() as does R5 (although I don't know why yet).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17605 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-27 09:57:14 +00:00
Stefano Ceccherini
03f2d7791e
Switched back to the GetMouse variation which does NOT check the message
...
queue, should fix bug 594 and not risk of losing clicks. SetStickyMode()
calls StealFocus() to give the chance to be keyboard-navigated to menus.
Added an extra (temporary) InvalidateLayout() because some items weren't
added in
some cases (Tracker's attributes menu for example)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17599 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-26 18:13:38 +00:00
Stefano Ceccherini
73f99cd6ae
reverted axel's change to menu, which introduced some other problems, and I can't reproduce that problem anymore. Axel, can you verify, please ?
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17598 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-26 17:28:18 +00:00
Axel Dörfler
712c1e8c39
Fixed the BMenuBar not spanning over the whole window width for MediaPlayer
...
and VLC (what a coincidence :)).
Would be nice if there is a better solution, though...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17539 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-22 16:54:32 +00:00
Stephan Aßmus
431da4dd4b
AddItem(..., frame) used AddItem(..., index) which
...
triggered a debugger call -> refactoring and cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17521 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-22 09:53:08 +00:00
Stefano Ceccherini
b0f89f914d
Fixed the problem mentioned in bug 484, some cleanups, implemented
...
BMenu::InvokeItem() more correctly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17519 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-20 22:36:38 +00:00
Stephan Aßmus
2a3de9bc1d
* use new (nothrow) when checking the returned pointer
...
* better handling of errors in various versions of AddItem()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17506 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-19 09:39:54 +00:00
Stefano Ceccherini
f711110191
Refactored the AddItem mechanism. Now the private _AddItem() method doesn't lock the looper or invalidate the layout anymore, which is done by the caller. This way AddList is much more efficient.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17502 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-19 08:03:11 +00:00
Stefano Ceccherini
925479d7b3
Added a new method RelayoutIfNeeded(), which does the real Layout invalidation, it's called by menubar and menu. This fixes the menufields not being resized. Note that a problem still remains, will be fixed shortly (hopefully)
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17405 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-09 21:48:51 +00:00
Stefano Ceccherini
63b7888854
BMenu::InvalidateLayout() should only sets a variable, the real invalidation is done on Draw() or AttachedToWindow() (like on R5). This fixes bug 567 (at least the crash in HotEdit)
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-07 19:58:07 +00:00
Stefano Ceccherini
4436b7269d
Menuitems are layoutted better, fixing bug 526
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17282 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-30 20:24:30 +00:00
Axel Dörfler
9c418bc0f9
Fixed warning.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17259 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 14:08:32 +00:00
Stefano Ceccherini
05e515d56c
hopefully improved menu tracking. Among other things, this fixes bug 461
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-22 17:56:21 +00:00
Stefano Ceccherini
59d1b7be9d
It's a good idea to snooze AFTER we've checked the possible exit conditions
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-21 11:33:02 +00:00
Stefano Ceccherini
48688dcd5f
Fixed a bug in menu tracking: in some cases you had a goal of 1 pixel when trying to enter a submenu ( http://flickr.com/photos/johndrinkwater/131805244 )
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17181 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-20 20:56:57 +00:00
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