History log of /haiku-fatelf/src/add-ons/decorators/WinDecorator/WinDecorator.h
Revision Date Author Comments
# b46615c5 19-May-2011 Stephan Aßmus <superstippi@gmx.de>

Applied patch by Joseph "looncraz" Groover from ticket #7445.
This changes how Decorators are managed and applied. The app_server
no longer scans and maintains the available ones himself, but is
simply asked to load a Decorator add-on from a provided path.
The Decorator scanning is moved into DecorInfo and DecorInfoUtil,
private classes in the InterfaceKit. The bin command 'setdecor'
uses those.
I cleaned up all the coding style violations that I could find,
removed chunks of code which didn't make sense (if you never put
a NULL pointer into a list, you don't need to check for this and
so on) and also cleaned up other passages for improved clarity
and simplicity.
I also tested the functionality and it works fine. Would even be
Ok to include in Alpha 3, IMHO. Thanks for the patch!


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


# b509dbd9 24-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed unused _SetColors().


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


# 89d652d5 23-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Decorator: Replaced the MouseAction() method with a new RegionAt().
RegionAt() just gets a point and returns which region was hit. This is in
order to move behavioral code to [Default]WindowBehaviour. I'm not happy
with this solution either, but to do it properly one would have to break the
Decorator interface into separate look and feel interfaces and reorganize the
interaction with WindowBehaviour. A task for the so-inclined reader. :-)
* Adjusted the Decorators implementations, but really tested only the default
one.
* DefaultWindowBehaviour:
- Replaced _ActionFor() method by a _RegionFor() which interprets the region
returned by Decorator::RegionAt() and converts it to a "functional" region,
i.e. combines cases we handle the same way.
- MouseDown():
- Handle the click region cases more in detail, disentangling the mouse
button cases. With the following effects:
- The middle mouse button has no effect anymore.
- Left and right mouse buttons no longer share common behavior. A right
click on a decorator button will send the window to the back.
- The window key window management modifier combo does now have precedence,
i.e. Cmd-Ctrl-click on the decorator buttons will have the same effect as
clicking anywhere in the window.
- When modifiers change between the clicks, reset the click count. Prevents
a standard click in the window followed by a Cmd-Ctrl-click from being
recognized as a double-click.
- Mouse*(): Introduced a fMinimizeCheckOnMouseUp which works similar to
fActivateOnMouseUp, just for double-clicks. The decision whether a
double-click minimizes the window is postponed until releasing the mouse
button. After moving the mouse sufficiently far or waiting half a second
without moving the mouse the window will no longer be minimized. Fixes
#6868.
- MouseUp(): Moved the primary mouse button check without the
"decorator != NULL" block. I suppose this fixes issues with the Cmd-Ctrl
actions and decoratorless windows (if those actually exist).

I can't wait to hear what things I've broken. :-)


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


# 3a5082aa 10-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Got rid of the home brewn double click detection - we're now simply using the
"clicks" field of the mouse message as everywhere else.
* Renamed Decorator::Clicked() to MouseAction().
* Minor style cleanup.


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


# 4d978eea 03-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Fix the WinDecorator and some parts of the MacDecorator
* Since they all work reasonalbly well, add them to the default image. (beOs had them after all)


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


# 35ead881 11-Apr-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

The WinDecorator crashed when trying to draw a menu.
Clean it up, and try to fix other things. It is now opening menus, but crashes when opening windows...


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


# b6cb7d47 24-Dec-2009 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

MacDecorator: only formatting changes
WinDecorator:
* Now compilable
* Windows are drawing properly
* The window title is still missing for some reason


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


# f77e30f9 20-Jun-2004 beveloper <beveloper@nowhere.fake>

Added missing newline.


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


# 4ff18ecc 17-Sep-2003 DarkWyrm <darkwyrm@gmail.com>

Un-kludged Decorator::GetFootprint


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


# 93e1f7df 07-Jul-2003 DarkWyrm <darkwyrm@gmail.com>

Graphical retooling of the Windows decorator. Much better. :)


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


# 13696633 07-Jul-2003 DarkWyrm <darkwyrm@gmail.com>

Updated support sources
Improved drawing.
Strange drawing bug in BeDecorator buttons to be fixed later


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


# 293c3378 13-Apr-2003 shatty <shatty@nowhere.fake>

add newline to end of file


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


# f6c67f7d 07-Feb-2003 DarkWyrm <darkwyrm@gmail.com>

Updated WinDecorator from proto7 API


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


# 76b04a86 27-Sep-2002 shatty <shatty@nowhere.fake>

fixed newline at end of file


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


# 9cf7b05e 07-Sep-2002 DarkWyrm <darkwyrm@gmail.com>

Removed SRect and SPoint as per Erik


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


# 30e06bbf 24-Aug-2002 DarkWyrm <darkwyrm@gmail.com>

Initial checkin


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


# b46615c55ad2c8fe6de54412055a0713da3d610a 19-May-2011 Stephan Aßmus <superstippi@gmx.de>

Applied patch by Joseph "looncraz" Groover from ticket #7445.
This changes how Decorators are managed and applied. The app_server
no longer scans and maintains the available ones himself, but is
simply asked to load a Decorator add-on from a provided path.
The Decorator scanning is moved into DecorInfo and DecorInfoUtil,
private classes in the InterfaceKit. The bin command 'setdecor'
uses those.
I cleaned up all the coding style violations that I could find,
removed chunks of code which didn't make sense (if you never put
a NULL pointer into a list, you don't need to check for this and
so on) and also cleaned up other passages for improved clarity
and simplicity.
I also tested the functionality and it works fine. Would even be
Ok to include in Alpha 3, IMHO. Thanks for the patch!


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


# b509dbd998354e88e0007909071fc76074459ebb 24-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed unused _SetColors().


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


# 89d652d5e0defd9d095c778709cef82f5f10c357 23-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Decorator: Replaced the MouseAction() method with a new RegionAt().
RegionAt() just gets a point and returns which region was hit. This is in
order to move behavioral code to [Default]WindowBehaviour. I'm not happy
with this solution either, but to do it properly one would have to break the
Decorator interface into separate look and feel interfaces and reorganize the
interaction with WindowBehaviour. A task for the so-inclined reader. :-)
* Adjusted the Decorators implementations, but really tested only the default
one.
* DefaultWindowBehaviour:
- Replaced _ActionFor() method by a _RegionFor() which interprets the region
returned by Decorator::RegionAt() and converts it to a "functional" region,
i.e. combines cases we handle the same way.
- MouseDown():
- Handle the click region cases more in detail, disentangling the mouse
button cases. With the following effects:
- The middle mouse button has no effect anymore.
- Left and right mouse buttons no longer share common behavior. A right
click on a decorator button will send the window to the back.
- The window key window management modifier combo does now have precedence,
i.e. Cmd-Ctrl-click on the decorator buttons will have the same effect as
clicking anywhere in the window.
- When modifiers change between the clicks, reset the click count. Prevents
a standard click in the window followed by a Cmd-Ctrl-click from being
recognized as a double-click.
- Mouse*(): Introduced a fMinimizeCheckOnMouseUp which works similar to
fActivateOnMouseUp, just for double-clicks. The decision whether a
double-click minimizes the window is postponed until releasing the mouse
button. After moving the mouse sufficiently far or waiting half a second
without moving the mouse the window will no longer be minimized. Fixes
#6868.
- MouseUp(): Moved the primary mouse button check without the
"decorator != NULL" block. I suppose this fixes issues with the Cmd-Ctrl
actions and decoratorless windows (if those actually exist).

I can't wait to hear what things I've broken. :-)


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


# 3a5082aa46f958b1f49398c8b69458fa12dd581e 10-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Got rid of the home brewn double click detection - we're now simply using the
"clicks" field of the mouse message as everywhere else.
* Renamed Decorator::Clicked() to MouseAction().
* Minor style cleanup.


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


# 4d978eea2f9530892046f3344341ed85c9e0b1cf 03-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Fix the WinDecorator and some parts of the MacDecorator
* Since they all work reasonalbly well, add them to the default image. (beOs had them after all)


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


# 35ead8815b679605a9b4db8130613ea100f4b14c 11-Apr-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

The WinDecorator crashed when trying to draw a menu.
Clean it up, and try to fix other things. It is now opening menus, but crashes when opening windows...


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


# b6cb7d4779e5fbf1c5018b7f0c3e89f715d941c8 24-Dec-2009 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

MacDecorator: only formatting changes
WinDecorator:
* Now compilable
* Windows are drawing properly
* The window title is still missing for some reason


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


# f77e30f9dd409de8a383bd5b1655bcad03c9aaf4 20-Jun-2004 beveloper <beveloper@nowhere.fake>

Added missing newline.


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


# 4ff18eccb5277365db3e92295620b08a72e17711 17-Sep-2003 DarkWyrm <darkwyrm@gmail.com>

Un-kludged Decorator::GetFootprint


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


# 93e1f7dfd0df3684487e930bbcdf50487357b12b 07-Jul-2003 DarkWyrm <darkwyrm@gmail.com>

Graphical retooling of the Windows decorator. Much better. :)


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


# 136966335a267ff37b434288ba32d4026d2a35fd 07-Jul-2003 DarkWyrm <darkwyrm@gmail.com>

Updated support sources
Improved drawing.
Strange drawing bug in BeDecorator buttons to be fixed later


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


# 293c3378f352509a42404cb51d4a1ffd62341515 13-Apr-2003 shatty <shatty@nowhere.fake>

add newline to end of file


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


# f6c67f7d6c5f778ad15e7d08b29632747174dc2d 07-Feb-2003 DarkWyrm <darkwyrm@gmail.com>

Updated WinDecorator from proto7 API


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


# 76b04a8655139f563314382872a9d1dc9797c42a 27-Sep-2002 shatty <shatty@nowhere.fake>

fixed newline at end of file


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


# 9cf7b05e49c2c1cb6abd75565400a5922b5f79e7 07-Sep-2002 DarkWyrm <darkwyrm@gmail.com>

Removed SRect and SPoint as per Erik


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


# 30e06bbf03ad86ec0eaad83238015824a607a865 24-Aug-2002 DarkWyrm <darkwyrm@gmail.com>

Initial checkin


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