* removed declarations for methods which are not used/implemented in View.h

* improved naming of some private BView functions and used our underscore
  prefix
* added a _DrawAfterChildren method to BView which does the necessary setup
  and calls the DrawAfterChildren hook
* call the new _DrawAfterChildren method in the BWindow implementation, this
  was easy since the view tokens are already hierachically sorted
* implement support for B_DRAW_ON_CHILDREN in the app_server's ViewLayer, it
  simply means that children are ignored for the views clipping region, any
  drawing methods will paint over children (therefor the B_DRAW_ON_CHILDREN
  flag is even properly named)

With these changes, support for B_DRAW_ON_CHILDREN and the DrawAfterChildren()
hook are implemented and behave exactly as on R5 as far as I can tell, also
for the view background painting.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23154 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2007-12-25 14:47:06 +00:00
parent 11dbc914f7
commit 099fb2d3be
5 changed files with 234 additions and 220 deletions
+7 -4
View File
@@ -1195,11 +1195,14 @@ FrameMoved(origin);
printf("_UPDATE_ - didn't find view by token: %ld\n", (int32)tokens.ItemAtFast(i));
//drawTime += system_time() - drawStart;
}
// TODO: the tokens are actually hirachically sorted,
// NOTE: The tokens are actually hirachically sorted,
// so traversing the list in revers and calling
// child->DrawAfterChildren would actually work correctly,
// only that drawing outside a view is not yet supported
// in the app_server.
// child->DrawAfterChildren actually works correctly
for (int32 i = count - 1; i >= 0; i--) {
if (BView* view = _FindView((int32)tokens.ItemAtFast(i)))
view->_DrawAfterChildren(updateRect);
}
//printf(" %ld views drawn, total Draw() time: %lld\n", count, drawTime);
}