History log of /haiku/headers/os/interface/SplitView.h
Revision Date Author Comments
# 7f9368ca 09-Dec-2015 looncraz <looncraz@looncraz.net>

Set*UIColor, etc.

The inseparable changes necessary to support live color updating across the
system in a sane, safe, and performant manner.

BView gains:

HasSystemColors()
HasDefaultColors()
AdoptSystemColors()
AdoptParentColors()
AdoptViewColor(BView*)
SetViewUIColor(color_which, float tint)
SetHighUIColor(...
SetLowUIColor(...
ViewUIColor(float* tint)
HighUIColor(...
LowUIColor(...
DelayedInvalidate()

BWindow gains a simple helper method:
IsOffscreenWindow()

BMessage gains:

AddColor()
FindColor()
GetColor()
HasColor() * allegedly this API is deprecated, but I implemented it anyway
ReplaceColor()
SetColor()

Previous private ColorTools methods are made public and moved into GraphicsDefs:

mix_color, blend_color, disable_color

These are fully compatible with BeOS dan0 R5.1 methods and are just code cleanup
of BeOS example code under the OpenTracker license.

In addition, four new colors are created:
B_LINK_TEXT_COLOR
B_LINK_HOVER_COLOR
B_LINK_ACTIVE_COLOR
B_LINK_VISITED_COLOR

These changes are documented in their proper user documentation files.

In addition, due to a history rewrite, B_FOLLOW_LEFT_TOP has been defined and
used in lieu of B_FOLLOW_TOP | B_FOLLOW_LEFT and is included in this commit.

On the app_server side, the following has changed:

Add DelayedMessage - a system by which messages can be sent at a scheduled time,
and can also be merged according to set rules. A single thread is used to service the
message queue and multiple recipients can be set for each message.
Desktop gains the ability to add message ports to a DelayedMessage so that
said messages can target either all applications or all windows, as needed.

Desktop maintains a BMessage which is used to queue up all pending color changes
and the delayed messaging system is used to enact these changes after a short
period of time has passed. This prevents abuse and allows the system to merge
repeated set_ui_color events into one event for client applications, improving
performance drastically.

In addition, B_COLORS_UPDATED is sent to the BApplication, which forwards the message
to each BWindow. This is done to improve performance over having the app_server
independently informing each window.

Decorator changes are live now, which required some reworking.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>


# e724b26f 08-Jul-2013 John Scipione <jscipione@gmail.com>

Remove enum elaborated type specifier

...from orientation params. Elaborated type specifiers are not needed
for C++ code and removing them makes doxygen happy. Verified working
on both gcc2h and gcc4h builds.


# d56e7bd6 01-Dec-2011 Alex Wilson <yourpalal2@gmail.com>

Make archiving hooks protected in layout classes.

Furthermore,
* remove a stray blank line in Layout.cpp
* make BLayoutItem::SetLayout() private, as it should have been


# 7b27c8fc 17-Nov-2011 Rene Gollent <anevilyak@gmail.com>

Adjust method naming.


# 6beb27d4 16-Nov-2011 Rene Gollent <anevilyak@gmail.com>

Add {Get,Set}ItemVisible() accessors and setters.


# 6d16dcfa 16-Nov-2011 Rene Gollent <anevilyak@gmail.com>

Add GetCollapsible() accessor to BSplitView/Layout.


# 53617d36 05-Nov-2011 Alex Wilson <yourpalal2@gmail.com>

Override a bunch of methods in layout related classes for FBC stability.

* Especially made sure to override archiving methods, since these are called rarely, so the cost is very minimal
* Otherwise, the closer a class is to a base class, the more likely I was to give it all the overrides.


# e044d51a 04-Nov-2011 Alex Wilson <yourpalal2@gmail.com>

Forbid copying and assignment in layout classes.
Specifically in:
* BAbstractLayout
* BAbstractLayoutItem
* BGridLayout
* BGridView
* BGroupLayout
* BGroupView
* BLayout
* BSplitView
* BTwoDimensionalLayout


# 0d973a90 02-Nov-2011 Rene Gollent <anevilyak@gmail.com>

Add CountItems() convenience function to BSplitView.



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


# 8151838e 02-Nov-2011 Alex Wilson <yourpalal2@gmail.com>

Add FBC padding to all (I think..) of the visible Layout related classes.


# a851b3ad 31-Oct-2011 Alex Wilson <yourpalal2@gmail.com>

Add Perform() methods to all the layout-related classes that needed them.


# 813147df 09-Jun-2011 Alex Wilson <yourpalal2@gmail.com>

* Add new SetInsets() methods to BTwoDimensionalLayout, BSplitView
* Also add equivalent methods to the layout builders in LayoutBuilder.h
* BSplitView now calls BControlLook::ComposeSpacing(), instead of BSplitLayout
* part of #7447


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


# d1b6305c 31-Dec-2010 Stephan Aßmus <superstippi@gmx.de>

Forward important properties and setters of the private BSplitLayout
in the BSplitView class, related to getting and setting item weights
programatically.


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


# 82ab3167 02-Sep-2010 Alex Wilson <yourpalal2@gmail.com>

Add default spacing for Layouts (#5614)
* introduce B_USE_DEFAULT_SPACING, which works somewhat like B_SIZE_UNSET and B_ALIGN_HORIZONTAL_UNSET
* introduce static float BControlLook::ComposeItemSpacing(float spacing), which checks uses be_control_look->DefaultItemSpacing().
* modify layouts to use BControlLook::ComposeItemSpacing() in SetInsets and SetSpacing methods.
* default insets are still 0, 0, 0, 0, but can be set to default spacing by passing B_USE_DEFAULT_SPACING
* I've found two regressions, patches incoming, please report others on #5614.


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


# 12463fa8 20-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Alex Wilson: Added archiving/unarchiving support to BSplitView.


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


# 89208c77 27-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

Finished unifying the Interface Kit headers:
* Fixed copyrights (puncuation and capitalization, removed authors from
headers)
* Updated indentation style
* Unified pointer/reference style
* Re-ordered some methods for better grouping where it could be done
(abd adopted source accordingly)
* Small coding style fixes here and there

No functional change intended.

+alphabranch


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


# 4aeb7a3c 23-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

* Made BTwoDimensionalLayout and BSplitLayout::GetInsets() const.
* Give access to BSplitLayout::SetInsets() and GetInsets() from BSplitView.
* Give access to BSplitView::SetInsets() from BSplitLayoutBuilder and
LayoutBuilder.
* Some automatic white-space cleanup.


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


# 1f9fd6d8 20-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

* Added BSplitView drawing code to ControlLook.
* BSplitView uses ControlLook to draw itself.
* Small refactoring in SplitLayout to implement IsAboveSplitter(BPoint).
* BSplitView updates the view cursor when the mouse is above a splitter.
* Standard splitter size is now 6 pixels, which is a bit easer to hit.


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


# 9ecf9d1c 26-Aug-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

Merge from layout management branch.


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


# e724b26f23ad0df100a47f8d913bcdb3d54267df 08-Jul-2013 John Scipione <jscipione@gmail.com>

Remove enum elaborated type specifier

...from orientation params. Elaborated type specifiers are not needed
for C++ code and removing them makes doxygen happy. Verified working
on both gcc2h and gcc4h builds.


# d56e7bd64d975565dbdd2c38230b6f14eb3e5906 01-Dec-2011 Alex Wilson <yourpalal2@gmail.com>

Make archiving hooks protected in layout classes.

Furthermore,
* remove a stray blank line in Layout.cpp
* make BLayoutItem::SetLayout() private, as it should have been


# 7b27c8fc4112c2c92d69d3be5cc41db45dfe02f8 17-Nov-2011 Rene Gollent <anevilyak@gmail.com>

Adjust method naming.


# 6beb27d4a1043bcd3a4cf2b3250d2c2548760642 16-Nov-2011 Rene Gollent <anevilyak@gmail.com>

Add {Get,Set}ItemVisible() accessors and setters.


# 6d16dcfa0c61f3719850f6f67174a0df848edeb4 16-Nov-2011 Rene Gollent <anevilyak@gmail.com>

Add GetCollapsible() accessor to BSplitView/Layout.


# 53617d366d1729716cc1e2764feb4a734b65b9f0 05-Nov-2011 Alex Wilson <yourpalal2@gmail.com>

Override a bunch of methods in layout related classes for FBC stability.

* Especially made sure to override archiving methods, since these are called rarely, so the cost is very minimal
* Otherwise, the closer a class is to a base class, the more likely I was to give it all the overrides.


# e044d51aa8a2f752309e6c60016b854180eb6a4f 04-Nov-2011 Alex Wilson <yourpalal2@gmail.com>

Forbid copying and assignment in layout classes.
Specifically in:
* BAbstractLayout
* BAbstractLayoutItem
* BGridLayout
* BGridView
* BGroupLayout
* BGroupView
* BLayout
* BSplitView
* BTwoDimensionalLayout


# 0d973a90bc640e2475bf0ecc262ff80adaec93ed 02-Nov-2011 Rene Gollent <anevilyak@gmail.com>

Add CountItems() convenience function to BSplitView.



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


# 8151838e3892d0a18d89d73e2cc37e1f5d01264d 02-Nov-2011 Alex Wilson <yourpalal2@gmail.com>

Add FBC padding to all (I think..) of the visible Layout related classes.


# a851b3ad543ebaebc18589b959c01ccaaf35202f 31-Oct-2011 Alex Wilson <yourpalal2@gmail.com>

Add Perform() methods to all the layout-related classes that needed them.


# 813147df835cb6637d8d2bbf737f96b5056898e6 09-Jun-2011 Alex Wilson <yourpalal2@gmail.com>

* Add new SetInsets() methods to BTwoDimensionalLayout, BSplitView
* Also add equivalent methods to the layout builders in LayoutBuilder.h
* BSplitView now calls BControlLook::ComposeSpacing(), instead of BSplitLayout
* part of #7447


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


# d1b6305cd976f6b81fbb6e660299ebbaccc79583 31-Dec-2010 Stephan Aßmus <superstippi@gmx.de>

Forward important properties and setters of the private BSplitLayout
in the BSplitView class, related to getting and setting item weights
programatically.


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


# 82ab3167232c5c8ee53e684eddc83dc7cb60f1cc 02-Sep-2010 Alex Wilson <yourpalal2@gmail.com>

Add default spacing for Layouts (#5614)
* introduce B_USE_DEFAULT_SPACING, which works somewhat like B_SIZE_UNSET and B_ALIGN_HORIZONTAL_UNSET
* introduce static float BControlLook::ComposeItemSpacing(float spacing), which checks uses be_control_look->DefaultItemSpacing().
* modify layouts to use BControlLook::ComposeItemSpacing() in SetInsets and SetSpacing methods.
* default insets are still 0, 0, 0, 0, but can be set to default spacing by passing B_USE_DEFAULT_SPACING
* I've found two regressions, patches incoming, please report others on #5614.


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


# 12463fa89116e2ec05efad4cb913e529c95f5b8b 20-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Alex Wilson: Added archiving/unarchiving support to BSplitView.


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


# 89208c77f10235d43fda0c7b3fd6751db02cc12c 27-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

Finished unifying the Interface Kit headers:
* Fixed copyrights (puncuation and capitalization, removed authors from
headers)
* Updated indentation style
* Unified pointer/reference style
* Re-ordered some methods for better grouping where it could be done
(abd adopted source accordingly)
* Small coding style fixes here and there

No functional change intended.

+alphabranch


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


# 4aeb7a3cc2d01a2d21127d7dd8cf5594e6c1e141 23-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

* Made BTwoDimensionalLayout and BSplitLayout::GetInsets() const.
* Give access to BSplitLayout::SetInsets() and GetInsets() from BSplitView.
* Give access to BSplitView::SetInsets() from BSplitLayoutBuilder and
LayoutBuilder.
* Some automatic white-space cleanup.


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


# 1f9fd6d866bff084e6792bccc52d6eefd9470f7e 20-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

* Added BSplitView drawing code to ControlLook.
* BSplitView uses ControlLook to draw itself.
* Small refactoring in SplitLayout to implement IsAboveSplitter(BPoint).
* BSplitView updates the view cursor when the mouse is above a splitter.
* Standard splitter size is now 6 pixels, which is a bit easer to hit.


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


# 9ecf9d1c1d4888d341a6eac72112c72d1ae3a4cb 26-Aug-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

Merge from layout management branch.


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