History log of /haiku/headers/os/interface/Layout.h
Revision Date Author Comments
# 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


# 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.


# 121a15ea 05-Nov-2011 Alex Wilson <yourpalal2@gmail.com>

By convention, Perform() methods are public, make this true for BLayout.


# 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


# 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.


# 0843fb45 26-Oct-2011 Alex Wilson <yourpalal2@gmail.com>

Revirtualize BLayout::Relayout(), since it is in fact inherited from BLayoutItem and virtual anyway.

Also add a comment to make this obvious.


# e7b0dc78 22-Oct-2011 Alex Wilson <yourpalal2@gmail.com>

Now that child classes aren't overriding the various InvalidateLayout() methods, we can take advantage of some guarantees to simplify/clean/optimize the layout invalidation propagation mechanisms!


# c74faed4 22-Oct-2011 Alex Wilson <yourpalal2@gmail.com>

Add BLayoutItem::LayoutInvalidated() hook. Leave BLayoutItem::InvalidateLayout() (and therefore BLayout::InvalidateLayout()) virtual. This is needed to let BLayout override it for invalidation propagations.


# b38ea98f 16-Oct-2011 Alex Wilson <yourpalal2@gmail.com>

Devirtualize BLayout::InvalidateLayout(), add a protected hook BLayout::DoLayout(). This will allow for much better control over the propagation of layout invalidations, and therefore cleaner, more optimal code.


# b8725ee3 12-Sep-2011 Alex Wilson <yourpalal2@gmail.com>

De-virtualize BLayout::Relayout(). I think this was virtual only by accident.


# 4e0131f5 09-Sep-2011 Alex Wilson <yourpalal2@gmail.com>

Rename BLayout::DerivedLayoutItems() to DoLayout(), which is consistent with BView::DoLayout(). Also adjusted child classes and documentation.


# fa01d084 08-Sep-2011 Alex Wilson <yourpalal2@gmail.com>

User BView's layout item tracking functionality to simplify and optimize some methods in BLayout and BView.
Delete BLayout::RemoveViewRecursive() as it is no longer needed.
Add a few TODO's.


# a9e89a73 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Also made LayoutContext() const.


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


# df730987 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Made AncestorsVisible() const.


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


# 1d6c7b6c 17-Aug-2010 Alex Wilson <yourpalal2@gmail.com>

Big change deriving BLayout from BLayoutItem, and allowing viewless BLayouts.
a few highlights:
* BLayout now derives publicly from BLayoutItem
* Added BAbstractLayout class, which our layouts now derive from
* updated layout builders to avoid creating views when they don't need to
* updated layout classes
* updated AboutSystem to fix a little regression
* more details on #6407
* please tell me about any regressions, I've tried to find them all, but some
may have slipped by.


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


# 6829d417 29-Jul-2010 Alex Wilson <yourpalal2@gmail.com>

Update BLayout::ItemAdded() and BLayout::ItemRemoved() to take an int32 index parameter, and ItemAdded() to return a bool indicating success or failure. Update BLayout::AddItem() to take the result of ItemAdded() into account. Also update BLayout::AllUnarchived() to take this into account. In either situation, if ItemAdded() returns false, the item does not get added to the layout. Removed various TODOs about code that could be removed once this change was made. In BSplitLayout, an item's LayoutData was lazy-initialized, but would always be created during ItemAdded(). Now we create the LayoutData explicitly, so that we can catch failed memory allocations. Closes #5524.


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


# b137ab3e 16-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Alex Wilson (minor changes by myself) related to the new archiving
features:
* Some cosmetic adjustments of the API, like using references instead of
pointers, argument order, method names, etc.
* Added convenience template methods for archiving and unarchiving to BArchiver
and BUnarchiver.
* BUnarchiver (respectively the private BUnarchiveManager) explicitly deals with
object ownership, now. This is necessary since an error while unarchiving
could leave an already unarchived object without owning object, which would
result in it being leaked. The BUnarchiver::{Get,Find}Object() methods do now
have an optional parameter to specify whether object ownership shall be
transferred.
* Fixed incorrect header guard in headers/private/binary_compatibility/Global.h.



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


# 268317bd 08-Jul-2010 Axel Dörfler <axeld@pinc-software.de>

* Style cleanups.


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


# 27d84b48 08-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Patch by Alex Wilson as part of GSoC 2010 : Archiving of Layouted BViews hierarchy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37433 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


# 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


# 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


# 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.


# 121a15ea8fa29e5d395e91eca77b0cdad7c13e0b 05-Nov-2011 Alex Wilson <yourpalal2@gmail.com>

By convention, Perform() methods are public, make this true for BLayout.


# 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


# 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.


# 0843fb45720e8a1aef8b51f3bd326e88c9f70da8 26-Oct-2011 Alex Wilson <yourpalal2@gmail.com>

Revirtualize BLayout::Relayout(), since it is in fact inherited from BLayoutItem and virtual anyway.

Also add a comment to make this obvious.


# e7b0dc78f7695340de8d5fd6ab4d0798809e0f0b 22-Oct-2011 Alex Wilson <yourpalal2@gmail.com>

Now that child classes aren't overriding the various InvalidateLayout() methods, we can take advantage of some guarantees to simplify/clean/optimize the layout invalidation propagation mechanisms!


# c74faed432e2f2928cf9bfbad2f20af367724840 22-Oct-2011 Alex Wilson <yourpalal2@gmail.com>

Add BLayoutItem::LayoutInvalidated() hook. Leave BLayoutItem::InvalidateLayout() (and therefore BLayout::InvalidateLayout()) virtual. This is needed to let BLayout override it for invalidation propagations.


# b38ea98f527e2d4a610e9891a10d19ddc9bc00c1 16-Oct-2011 Alex Wilson <yourpalal2@gmail.com>

Devirtualize BLayout::InvalidateLayout(), add a protected hook BLayout::DoLayout(). This will allow for much better control over the propagation of layout invalidations, and therefore cleaner, more optimal code.


# b8725ee37eff33e9e5a0c38e5850444dc5648afe 12-Sep-2011 Alex Wilson <yourpalal2@gmail.com>

De-virtualize BLayout::Relayout(). I think this was virtual only by accident.


# 4e0131f51ba30445ab5b48d57ad45564cf6617d1 09-Sep-2011 Alex Wilson <yourpalal2@gmail.com>

Rename BLayout::DerivedLayoutItems() to DoLayout(), which is consistent with BView::DoLayout(). Also adjusted child classes and documentation.


# fa01d084960d9ee5acf5786c5f15c6e956026be8 08-Sep-2011 Alex Wilson <yourpalal2@gmail.com>

User BView's layout item tracking functionality to simplify and optimize some methods in BLayout and BView.
Delete BLayout::RemoveViewRecursive() as it is no longer needed.
Add a few TODO's.


# a9e89a7325821b05f895de0c6265bf8b48791fba 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Also made LayoutContext() const.


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


# df7309870f10bc3f710f0de8078986064359b785 19-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Made AncestorsVisible() const.


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


# 1d6c7b6cb6f46c2672074ff137a18833d4dd3041 17-Aug-2010 Alex Wilson <yourpalal2@gmail.com>

Big change deriving BLayout from BLayoutItem, and allowing viewless BLayouts.
a few highlights:
* BLayout now derives publicly from BLayoutItem
* Added BAbstractLayout class, which our layouts now derive from
* updated layout builders to avoid creating views when they don't need to
* updated layout classes
* updated AboutSystem to fix a little regression
* more details on #6407
* please tell me about any regressions, I've tried to find them all, but some
may have slipped by.


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


# 6829d4174ba57d752c8d470a55789112db477daf 29-Jul-2010 Alex Wilson <yourpalal2@gmail.com>

Update BLayout::ItemAdded() and BLayout::ItemRemoved() to take an int32 index parameter, and ItemAdded() to return a bool indicating success or failure. Update BLayout::AddItem() to take the result of ItemAdded() into account. Also update BLayout::AllUnarchived() to take this into account. In either situation, if ItemAdded() returns false, the item does not get added to the layout. Removed various TODOs about code that could be removed once this change was made. In BSplitLayout, an item's LayoutData was lazy-initialized, but would always be created during ItemAdded(). Now we create the LayoutData explicitly, so that we can catch failed memory allocations. Closes #5524.


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


# b137ab3eb34e8c43c76dab64c09d2718569cf1d5 16-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Alex Wilson (minor changes by myself) related to the new archiving
features:
* Some cosmetic adjustments of the API, like using references instead of
pointers, argument order, method names, etc.
* Added convenience template methods for archiving and unarchiving to BArchiver
and BUnarchiver.
* BUnarchiver (respectively the private BUnarchiveManager) explicitly deals with
object ownership, now. This is necessary since an error while unarchiving
could leave an already unarchived object without owning object, which would
result in it being leaked. The BUnarchiver::{Get,Find}Object() methods do now
have an optional parameter to specify whether object ownership shall be
transferred.
* Fixed incorrect header guard in headers/private/binary_compatibility/Global.h.



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


# 268317bd9ddbb9a1a3745e7fba19ef3b00243774 08-Jul-2010 Axel Dörfler <axeld@pinc-software.de>

* Style cleanups.


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


# 27d84b482cddb07e4dee8ee345d3b9a61000d2ec 08-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Patch by Alex Wilson as part of GSoC 2010 : Archiving of Layouted BViews hierarchy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37433 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


# 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