History log of /haiku/src/kits/interface/Dragger.cpp
Revision Date Author Comments
# b7aac5d2 12-Oct-2014 Adrien Destugues <pulkomandy@gmail.com>

Fix BDragger drawing when parent doesn't draw.

BDragger use some tricks to draw as a partially transparent view, it
calls the parent Draw method, then draws a partially transparent bitmap
over the resulting drawing.

This only works if the parent does somthing in the dragger area. In case
it doesn't, first fill the dragger with the parent view color, so there
is at least "something" in those pixels.

Fixes #5906.


# 4cada380 11-Oct-2014 Adrien Destugues <pulkomandy@gmail.com>

BDragger: add layout-aware constructor.

Somehow no one needed this yet.


# 57ec88b6 21-Dec-2012 John Scipione <jscipione@gmail.com>

Fix build, forgot to replace the variable names after renaming them.


# 78c12508 21-Dec-2012 John Scipione <jscipione@gmail.com>

Rename the bounds parameter of the BDragger class to frame matching the BeBook


# aabb1481 21-Dec-2012 John Scipione <jscipione@gmail.com>

Rename the resizingMask parameter of the BDragger constructor to resizingMode matching the BeBook.


# aed35104 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# 57e43684 01-Aug-2012 John Scipione <jscipione@gmail.com>

Revert "Remove the ellipses for About App in the replicant menu."

Apparently ellipses are used for all dialog boxes on Haiku.
Sorry for the noise.

Thanks AnEvilYak

This reverts commit 147ef3a9e89c28d64387f4bf645f48453913c3f8.


# 147ef3a9 01-Aug-2012 John Scipione <jscipione@gmail.com>

Remove the ellipses for About App in the replicant menu.

The ellipsis character (...) after a menu item means that
the command needs more information from the user before
the operation executes.

The ellipsis character doesn’t simply mean that a dialog
box or window will appear.

The window appearing completes the command and doesn’t
require additional input from the user before it executes.


# bea2387b 01-Jun-2012 Axel Dörfler <axeld@pinc-software.de>

Made constants static, coding style cleanup.


# 546208a5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# eaa5e093 14-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

Fix #8452 (app's crashing for non-existent system catalog)

* make the system catalog a BCatalog instead of a BCatalogAddOn*,
such that using a non-existing system catalog won't crash but
simply return the untranslated string instead
* rename MutableLocaleRoster::GetSystemCatalog() to LoadSystemCatalog()
and adjust it to use BCatalog::SetTo() in order to replace the
data used by the given catalog
* adjust all users of gSystemCatalog accordingly


# 60f75e90 04-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

Merge liblocale.so into libbe.so.

* Make the locale kit a part of libbe.
* Drop the LocaleBackend kludge used from within libbe (and from
other places, too) in order to access system catalog strings.
This is now done via gSystemCatalog, which is provided and initialized
by libbe.
* Drop all references to liblocale.so from all Jamfiles.
* Add legacy symlink liblocale.so in order to keep optional packages
that rely on it in a working state.

TODO: the documentation hasn't been updated.


# eee4243d 20-Oct-2011 Alex Wilson <yourpalal2@gmail.com>

De-virtualize BView::InvalidateLayout() and introduce LayoutInvalidated() hook, like BLayout.


# 94af9087 12-Jun-2011 Alexandre Deckner <alex@zappotek.com>

* Fix #6548. Don't initially Hide() if already hidden, otherwise the showlevel
would never get a chance be visible again.

When instanciated from an archive, a BDragger restores its
BView::fShowLevel and thus can already be hidden if archived while hidden.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42137 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4115645a 17-Mar-2011 Siarzhuk Zharski <zharik@gmx.li>

Localization of some UI parts:
- context menu of the replicant dragger. Fixes #7363;
- default <empty> menu placeholder. Fixes #7072;
- other messages used in PrintJob, Dragger and ZombieReplicantView classes.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40991 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3e6fa229 13-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Humdinger:
Switched strings to sentence case in servers and kits. This is the
case-servers+kits.diff applied from #5169. Couldn't spot any possibly
problematic changes.
Thanks a lot!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35044 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1cbfe2ef 30-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved the static stuff into a singleton.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34376 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c51d0337 06-Apr-2009 Alexandre Deckner <alex@zappotek.com>

* Rewrote BDragger's mouse tracking to be asynchronous using a message filter. Placed the filter in
kits/shared since i plan to use it in other places like Tracker. Animated replicants like
ActivityMonitor wont stall anymore when initiating the drag. (On the desktop, Tracker's mouse
tracking still busy loops sometimes, that's next on my list).

I had asynchronous long click detection (one button mouse support) in it but decided to get rid of
it, it adds unneeded complexity in the code and is even getting in your way sometimes (ex: now you can
take your time to drag the dragger, you wont be interrupted). If we want to reimplement that
someday it should be done system wide anyway (only Tracker and replicants have that 'feature'
AFAIK).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29972 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9cfb11a5 05-Apr-2009 Alexandre Deckner <alex@zappotek.com>

* Make BDragger respect the doc and only archive/unarchive the popup menu when it's a
custom provided one. Incidentally makes #1775 (that i'll reopen in a moment, see r29947) a
lot less likely to happen for most users since it can now only happen with those
customized popups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29949 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 642cc131 05-Apr-2009 Alexandre Deckner <alex@zappotek.com>

* Fixes a small regression introduced in r29728, don't return B_ERROR if we couldn't lock
the popup's window, in this case the window just closed, so we go on with archiving then.
There's still a (rarely occuring) problem with the unlocking though, probably due to some
BMenu funkyness, will investigate, left a TODO.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29947 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 06ab1718 28-Mar-2009 Stephan Aßmus <superstippi@gmx.de>

Make the code work that has the parent draw the background for the little
handle (parent draws on top of it's dragger child view).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29761 a95241bf-73f2-0310-859d-f6bbb57e9c96


# df8b89cb 26-Mar-2009 Alexandre Deckner <alex@zappotek.com>

* Return B_ERROR if the window couldn't be locked, thanks stippi


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29728 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 82e6d2ff 26-Mar-2009 Alexandre Deckner <alex@zappotek.com>

* Lock the popup menu window when archiving, fixes #1775
* Made the drag detection less sensitive as most simple clicks would initiate an unwanted drag.
* Don't show the dragger's popup from its original parent window (not a shelf) for all buttons, as in R5.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29727 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f86ba45 15-Feb-2009 Stephan Aßmus <superstippi@gmx.de>

Implemented a new look for the Haiku interface controls. It was
overheard that they looked too ninety-ish.
TODO: The code behind this is work in progress. The basic idea
is to extract all drawing code into a new class BControlLook,
of which there is a global instance be_control_look, instantiated
in InterfaceDefs.cpp. At the moment, all the old drawing code is
still there, and the usage of be_control_look is inside if-bodies
checking the instance against NULL. In another words, by not
instanitating be_control_look, you can revert back to the old look.
BControlLook's job is to provide reusable methods for drawing
certain types of frames, backgrounds and labels, so that application
developers can make controls that re-use the same drawing code
as built-in controls and adopt to changes made there. I have added
the notion of "borders". Each of the frame drawing methods can be
made to draw certain borders only, which is supposed to help when
controls shall visually attach. This feature is not fully explored
at all ATM.
TODO: Update BColumnListView header view and BStringItem text
spacing. Update other apps where it makes sense to use BControlLook.
For the moment, only Tracker and LaunchBox are updated. More...
NOTE: The new look is not very radically different, so that existing
apps do not immediately look too ugly or out of place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29221 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3cead3c6 26-Oct-2008 Rene Gollent <anevilyak@gmail.com>

Make this check a bit more general purpose: in the case where the dragger is a child of the target view (probably the most common use case), we now verify that the dragger's frame is completely within the target, otherwise we reset it to a default position of the lower right corner. I'm not sure how to do similar validy checking in the case of the other relationships (or if that's even feasible) though. Comments welcome as always :)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28336 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1bbf044e 25-Oct-2008 Rene Gollent <anevilyak@gmail.com>

In various apps such as ActivityMonitor, BDraggers are instantiated with
invalid rects (in ActivityView's case in particular, (-7, -7, 0, 0)). BDragger
would happily accept these, and preserve them when being archived/unarchived,
which led to its position being completely messed up in the target shelf.
We now compensate for this when determining our relationship with the target
view. This fixes the problems with missing replicant handles in BSnow,
ActivityMonitor and probably others replicants. The solution used here might
not be ideal though, so comments welcome.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28330 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 21f11263 16-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

aldeck + stippi:
* Improved the naming of the menu entry that removes a replicant from a shelf
to be less frightning.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28177 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 39fbf550 15-Oct-2008 Oliver Tappe <zooey@hirschkaefer.de>

bonefish + zooey:
* Fixed a general problem with respect to overriding of the reserved
virtual function slots: instead of statically invoking the method
that corresponds to the reserved slot on the class that contains the
slot, we now invoke the virtual Perform() method. Perform() then dispatches
the method invocation to the "proper" class, i.e. the highest class in the
hierarchy that actually implements the requested method.
This fixes a crash in apps that use liblayout's MSlider class and
should fix one or other spurious bug with old apps or libraries, too.
* added new header folder 'binary_compatibility' that contains files that
define the method codes and data structures required by Perform()
* looked for and implemented all used reserved virtual slot functions to
invoke Perform() where necessary or to pass on the method call statically
(for slots that were already maintained by Be)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28124 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ac2284ed 18-Jun-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved ZombieReplicantView.h to src/kits/interface


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21457 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 66eba86f 16-May-2007 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Jonas Sundstrom: fixed the usage of B_UTF8_ELLIPSIS hopefully
everywhere in the tree.
* Added the ellipsis to "About Haiku" in Deskbar as well.
* Minor cleanup of Deskbar's StatusView.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21156 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf2aeb20 21-Feb-2007 Axel Dörfler <axeld@pinc-software.de>

* Implemented BDragger::{Show|Hide}AllDraggers() and its backend in the app_server.
This fixes bug #242. The value is currently stored in a separate file.
* Removed some unused codes from ServerProtocol.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20188 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6e0e4ca6 11-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

* Fixed bug that let the dragger not hide in the Deskbar (was in ListManage(), now
in _AddToList()).
* Cleaned up BDragger and BShelf a bit, moved private classes into the BPrivate
namespace, renamed private methods to have the '_' prefix.
* Rewrote Dragger.h.
* Is that static dragger list needed at all? And if so, for what?`


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18487 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8cc767ee 07-Jul-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

call BView::Archive() first, pass deep when needed

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18068 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 931aebe9 07-Jul-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Deleting replicants now works

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18066 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cc8ef734 01-May-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed BDragger popup again, was broken after latest changes to BMenu/BPopupMenu

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17289 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 621a8324 23-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* Renamed ViewAux.h header to ViewPrivate.h.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17210 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4fdedfbd 21-Apr-2006 Jérôme Duval <korli@users.berlios.de>

fixed some Archive() following stippi's path


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17190 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b7f1654 07-Mar-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Draw the small hand in the right bottom corner

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16621 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f6e671cc 06-Feb-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed popup menu, and some other stuff

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16261 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 89bdf573 04-Nov-2005 Marcus Overhagen <marcusoverhagen@gmail.com>

assigned names to "some BLocker"s to aid debugging


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14702 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fd99e719 23-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Made the (private) 'JAHA' message a constant, and moved it to ViewAux.h. Maybe it doesn't fit much in there, but I didn't want to create a new header just for it. Feel free to move it to a better place.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10521 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3a15790e 23-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed a couple of infinite loops, small style changes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10520 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4b44b026 13-Jul-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Finished (or, at least fixed) BPopUpMenu, to make it do something useful (it works actually, even if not all options are tested).
Fixed build of Dragger, Shelf and ZombieReplicantView


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8387 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a5f7275d 28-Jun-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Adding some more or less complete classes from Marc Flerackers
(BDragger, BShelf and ZombieReplicantView). Not yet added to the build


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8231 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b7aac5d21e3f7efd6038c1ff111edac6a9f9e683 12-Oct-2014 Adrien Destugues <pulkomandy@gmail.com>

Fix BDragger drawing when parent doesn't draw.

BDragger use some tricks to draw as a partially transparent view, it
calls the parent Draw method, then draws a partially transparent bitmap
over the resulting drawing.

This only works if the parent does somthing in the dragger area. In case
it doesn't, first fill the dragger with the parent view color, so there
is at least "something" in those pixels.

Fixes #5906.


# 4cada3807cfc26dd1277eb0cb468937a9c0ad748 11-Oct-2014 Adrien Destugues <pulkomandy@gmail.com>

BDragger: add layout-aware constructor.

Somehow no one needed this yet.


# 57ec88b65143cf9dde533d2bff83816495d951f9 21-Dec-2012 John Scipione <jscipione@gmail.com>

Fix build, forgot to replace the variable names after renaming them.


# 78c12508e38de9a472b5d7afc547cea4babf62dc 21-Dec-2012 John Scipione <jscipione@gmail.com>

Rename the bounds parameter of the BDragger class to frame matching the BeBook


# aabb148183d4bd086a46ad614196521b1d3ed77a 21-Dec-2012 John Scipione <jscipione@gmail.com>

Rename the resizingMask parameter of the BDragger constructor to resizingMode matching the BeBook.


# aed35104852941f0f6f3d1dcc5338b5f337d0a3c 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# 57e436840b318a2f9ecd6a862ed41bcd6ff0cc23 01-Aug-2012 John Scipione <jscipione@gmail.com>

Revert "Remove the ellipses for About App in the replicant menu."

Apparently ellipses are used for all dialog boxes on Haiku.
Sorry for the noise.

Thanks AnEvilYak

This reverts commit 147ef3a9e89c28d64387f4bf645f48453913c3f8.


# 147ef3a9e89c28d64387f4bf645f48453913c3f8 01-Aug-2012 John Scipione <jscipione@gmail.com>

Remove the ellipses for About App in the replicant menu.

The ellipsis character (...) after a menu item means that
the command needs more information from the user before
the operation executes.

The ellipsis character doesn’t simply mean that a dialog
box or window will appear.

The window appearing completes the command and doesn’t
require additional input from the user before it executes.


# bea2387b6886201c5eebd41f4a2967e593c2a883 01-Jun-2012 Axel Dörfler <axeld@pinc-software.de>

Made constants static, coding style cleanup.


# 546208a53940a26c6379c48a7854ade1a8250fc5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# eaa5e0936d94e7d0bb2e6066a87d485e7613414c 14-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

Fix #8452 (app's crashing for non-existent system catalog)

* make the system catalog a BCatalog instead of a BCatalogAddOn*,
such that using a non-existing system catalog won't crash but
simply return the untranslated string instead
* rename MutableLocaleRoster::GetSystemCatalog() to LoadSystemCatalog()
and adjust it to use BCatalog::SetTo() in order to replace the
data used by the given catalog
* adjust all users of gSystemCatalog accordingly


# 60f75e901ce3063c63441ac644dd0e55a17d5d09 04-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

Merge liblocale.so into libbe.so.

* Make the locale kit a part of libbe.
* Drop the LocaleBackend kludge used from within libbe (and from
other places, too) in order to access system catalog strings.
This is now done via gSystemCatalog, which is provided and initialized
by libbe.
* Drop all references to liblocale.so from all Jamfiles.
* Add legacy symlink liblocale.so in order to keep optional packages
that rely on it in a working state.

TODO: the documentation hasn't been updated.


# eee4243d35225a35d0964ebebe94490eaca14261 20-Oct-2011 Alex Wilson <yourpalal2@gmail.com>

De-virtualize BView::InvalidateLayout() and introduce LayoutInvalidated() hook, like BLayout.


# 94af9087b00cdc95ccde9b10ed31466109fbcb11 12-Jun-2011 Alexandre Deckner <alex@zappotek.com>

* Fix #6548. Don't initially Hide() if already hidden, otherwise the showlevel
would never get a chance be visible again.

When instanciated from an archive, a BDragger restores its
BView::fShowLevel and thus can already be hidden if archived while hidden.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42137 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4115645af634d7cabe8d91ae67efcd16dadd3c38 17-Mar-2011 Siarzhuk Zharski <zharik@gmx.li>

Localization of some UI parts:
- context menu of the replicant dragger. Fixes #7363;
- default <empty> menu placeholder. Fixes #7072;
- other messages used in PrintJob, Dragger and ZombieReplicantView classes.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40991 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3e6fa229d866510c8687760bf5bca2c831f9fb28 13-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Humdinger:
Switched strings to sentence case in servers and kits. This is the
case-servers+kits.diff applied from #5169. Couldn't spot any possibly
problematic changes.
Thanks a lot!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35044 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1cbfe2ef6e7833b1f2f6e972dc7e695901380161 30-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved the static stuff into a singleton.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34376 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c51d0337a1561c75f253a2cfd70ce48585c5f86e 06-Apr-2009 Alexandre Deckner <alex@zappotek.com>

* Rewrote BDragger's mouse tracking to be asynchronous using a message filter. Placed the filter in
kits/shared since i plan to use it in other places like Tracker. Animated replicants like
ActivityMonitor wont stall anymore when initiating the drag. (On the desktop, Tracker's mouse
tracking still busy loops sometimes, that's next on my list).

I had asynchronous long click detection (one button mouse support) in it but decided to get rid of
it, it adds unneeded complexity in the code and is even getting in your way sometimes (ex: now you can
take your time to drag the dragger, you wont be interrupted). If we want to reimplement that
someday it should be done system wide anyway (only Tracker and replicants have that 'feature'
AFAIK).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29972 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9cfb11a5cfdc1deb08aecb972ed9b38b7fe9c6cb 05-Apr-2009 Alexandre Deckner <alex@zappotek.com>

* Make BDragger respect the doc and only archive/unarchive the popup menu when it's a
custom provided one. Incidentally makes #1775 (that i'll reopen in a moment, see r29947) a
lot less likely to happen for most users since it can now only happen with those
customized popups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29949 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 642cc1315d43a965abb1b5d7a0738c9056ea5c87 05-Apr-2009 Alexandre Deckner <alex@zappotek.com>

* Fixes a small regression introduced in r29728, don't return B_ERROR if we couldn't lock
the popup's window, in this case the window just closed, so we go on with archiving then.
There's still a (rarely occuring) problem with the unlocking though, probably due to some
BMenu funkyness, will investigate, left a TODO.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29947 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 06ab171868144e96d8d7610011f3b4753ecadd5a 28-Mar-2009 Stephan Aßmus <superstippi@gmx.de>

Make the code work that has the parent draw the background for the little
handle (parent draws on top of it's dragger child view).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29761 a95241bf-73f2-0310-859d-f6bbb57e9c96


# df8b89cbf7e103487d466b76539b9e46c407d643 26-Mar-2009 Alexandre Deckner <alex@zappotek.com>

* Return B_ERROR if the window couldn't be locked, thanks stippi


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29728 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 82e6d2ffcda31bf726a1b2171d90eeb86b70e060 26-Mar-2009 Alexandre Deckner <alex@zappotek.com>

* Lock the popup menu window when archiving, fixes #1775
* Made the drag detection less sensitive as most simple clicks would initiate an unwanted drag.
* Don't show the dragger's popup from its original parent window (not a shelf) for all buttons, as in R5.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29727 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f86ba45579bdc9648b232175f87edc62ab71b54 15-Feb-2009 Stephan Aßmus <superstippi@gmx.de>

Implemented a new look for the Haiku interface controls. It was
overheard that they looked too ninety-ish.
TODO: The code behind this is work in progress. The basic idea
is to extract all drawing code into a new class BControlLook,
of which there is a global instance be_control_look, instantiated
in InterfaceDefs.cpp. At the moment, all the old drawing code is
still there, and the usage of be_control_look is inside if-bodies
checking the instance against NULL. In another words, by not
instanitating be_control_look, you can revert back to the old look.
BControlLook's job is to provide reusable methods for drawing
certain types of frames, backgrounds and labels, so that application
developers can make controls that re-use the same drawing code
as built-in controls and adopt to changes made there. I have added
the notion of "borders". Each of the frame drawing methods can be
made to draw certain borders only, which is supposed to help when
controls shall visually attach. This feature is not fully explored
at all ATM.
TODO: Update BColumnListView header view and BStringItem text
spacing. Update other apps where it makes sense to use BControlLook.
For the moment, only Tracker and LaunchBox are updated. More...
NOTE: The new look is not very radically different, so that existing
apps do not immediately look too ugly or out of place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29221 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3cead3c68ef623b58cf5b50bfefd98306f9f3e73 26-Oct-2008 Rene Gollent <anevilyak@gmail.com>

Make this check a bit more general purpose: in the case where the dragger is a child of the target view (probably the most common use case), we now verify that the dragger's frame is completely within the target, otherwise we reset it to a default position of the lower right corner. I'm not sure how to do similar validy checking in the case of the other relationships (or if that's even feasible) though. Comments welcome as always :)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28336 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1bbf044eebe02b8cd8560d3a2bcfc3e3fb6b8028 25-Oct-2008 Rene Gollent <anevilyak@gmail.com>

In various apps such as ActivityMonitor, BDraggers are instantiated with
invalid rects (in ActivityView's case in particular, (-7, -7, 0, 0)). BDragger
would happily accept these, and preserve them when being archived/unarchived,
which led to its position being completely messed up in the target shelf.
We now compensate for this when determining our relationship with the target
view. This fixes the problems with missing replicant handles in BSnow,
ActivityMonitor and probably others replicants. The solution used here might
not be ideal though, so comments welcome.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28330 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 21f11263f6f32424ea80c101c8bc04c5d0fdc208 16-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

aldeck + stippi:
* Improved the naming of the menu entry that removes a replicant from a shelf
to be less frightning.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28177 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 39fbf5509b8740d9883b61649027478dc8a3ead8 15-Oct-2008 Oliver Tappe <zooey@hirschkaefer.de>

bonefish + zooey:
* Fixed a general problem with respect to overriding of the reserved
virtual function slots: instead of statically invoking the method
that corresponds to the reserved slot on the class that contains the
slot, we now invoke the virtual Perform() method. Perform() then dispatches
the method invocation to the "proper" class, i.e. the highest class in the
hierarchy that actually implements the requested method.
This fixes a crash in apps that use liblayout's MSlider class and
should fix one or other spurious bug with old apps or libraries, too.
* added new header folder 'binary_compatibility' that contains files that
define the method codes and data structures required by Perform()
* looked for and implemented all used reserved virtual slot functions to
invoke Perform() where necessary or to pass on the method call statically
(for slots that were already maintained by Be)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28124 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ac2284ed8bb11713038922aa6c2b8af115bd903e 18-Jun-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved ZombieReplicantView.h to src/kits/interface


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21457 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 66eba86f4b3c2eef6462d090e93245fc60d7127b 16-May-2007 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Jonas Sundstrom: fixed the usage of B_UTF8_ELLIPSIS hopefully
everywhere in the tree.
* Added the ellipsis to "About Haiku" in Deskbar as well.
* Minor cleanup of Deskbar's StatusView.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21156 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf2aeb201fe3785161bb0502effba053b0d76879 21-Feb-2007 Axel Dörfler <axeld@pinc-software.de>

* Implemented BDragger::{Show|Hide}AllDraggers() and its backend in the app_server.
This fixes bug #242. The value is currently stored in a separate file.
* Removed some unused codes from ServerProtocol.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20188 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6e0e4ca6b2ab01f0f1bc7fd198e262481063fd36 11-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

* Fixed bug that let the dragger not hide in the Deskbar (was in ListManage(), now
in _AddToList()).
* Cleaned up BDragger and BShelf a bit, moved private classes into the BPrivate
namespace, renamed private methods to have the '_' prefix.
* Rewrote Dragger.h.
* Is that static dragger list needed at all? And if so, for what?`


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18487 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8cc767ee4584bf653a5f8d8cefd4c31d353a42f1 07-Jul-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

call BView::Archive() first, pass deep when needed

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18068 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 931aebe962b3fa36dfde39a276f5f5d87cbde282 07-Jul-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Deleting replicants now works

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18066 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cc8ef734e90c3dadc9f24c69d574f680e73f614f 01-May-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed BDragger popup again, was broken after latest changes to BMenu/BPopupMenu

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17289 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 621a832488a17c2281190dd4c3d9f9d741ef1273 23-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* Renamed ViewAux.h header to ViewPrivate.h.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17210 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4fdedfbde40258f52c2778d1ca87131b6635fb5d 21-Apr-2006 Jérôme Duval <korli@users.berlios.de>

fixed some Archive() following stippi's path


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17190 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b7f16543c2d9e17c48f2cf732fa6b52bc722233 07-Mar-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Draw the small hand in the right bottom corner

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16621 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f6e671ccdc485215bc2988344ed6356c33790691 06-Feb-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed popup menu, and some other stuff

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16261 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 89bdf57382fda0be1f959d118e044b85b0775303 04-Nov-2005 Marcus Overhagen <marcusoverhagen@gmail.com>

assigned names to "some BLocker"s to aid debugging


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14702 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fd99e7194c3df67ce323a179237add69611ea0bd 23-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Made the (private) 'JAHA' message a constant, and moved it to ViewAux.h. Maybe it doesn't fit much in there, but I didn't want to create a new header just for it. Feel free to move it to a better place.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10521 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3a15790e0f844cd872e5b7f1118543224f67f94e 23-Dec-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed a couple of infinite loops, small style changes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10520 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4b44b0265a0abe50aaa53c4ba06f28569f58d486 13-Jul-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Finished (or, at least fixed) BPopUpMenu, to make it do something useful (it works actually, even if not all options are tested).
Fixed build of Dragger, Shelf and ZombieReplicantView


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8387 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a5f7275d768f5bf9f7fb100d12e10199b4efdd27 28-Jun-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Adding some more or less complete classes from Marc Flerackers
(BDragger, BShelf and ZombieReplicantView). Not yet added to the build


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8231 a95241bf-73f2-0310-859d-f6bbb57e9c96