From 437b19277feacd48292ca9ec814a38da17e4eb89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Sat, 8 Mar 2008 15:28:31 +0000 Subject: [PATCH] * Removed severly outdated DebugInfoManager. * More "layer" cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24305 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/DebugInfoManager.cpp | 67 ------------- src/servers/app/DebugInfoManager.h | 48 --------- src/servers/app/DefaultDecorator.cpp | 8 +- src/servers/app/Desktop.cpp | 6 +- src/servers/app/DrawState.h | 2 +- src/servers/app/Jamfile | 1 - src/servers/app/OffscreenWindow.cpp | 3 +- src/servers/app/ProfileMessageSupport.cpp | 4 +- src/servers/app/ServerApp.cpp | 5 +- src/servers/app/ServerWindow.cpp | 59 ++++++----- src/servers/app/View.cpp | 106 ++++++++++---------- src/servers/app/View.h | 12 +-- src/servers/app/Window.cpp | 116 +++++++++++----------- src/servers/app/Window.h | 12 +-- src/servers/app/Workspace.cpp | 2 +- src/servers/app/WorkspacesView.cpp | 2 +- src/tests/servers/app/Jamfile | 11 +- 17 files changed, 169 insertions(+), 295 deletions(-) delete mode 100644 src/servers/app/DebugInfoManager.cpp delete mode 100644 src/servers/app/DebugInfoManager.h diff --git a/src/servers/app/DebugInfoManager.cpp b/src/servers/app/DebugInfoManager.cpp deleted file mode 100644 index ad6613802f..0000000000 --- a/src/servers/app/DebugInfoManager.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2005, Stephan Aßmus . All rights reserved. - * Distributed under the terms of the MIT License. - * - * Class used to manage global access to on-screen debugging info - * in the RootLayer class. - * - */ - -//#include "RootLayer.h" - -#include "DebugInfoManager.h" - -// init globals -DebugInfoManager* -DebugInfoManager::sDefaultInstance = NULL; - -#if ON_SCREEN_DEBUGGING_INFO -char* gDebugString = new char[2048]; -#endif - -// destructor -DebugInfoManager::~DebugInfoManager() -{ -} - -// Default -DebugInfoManager* -DebugInfoManager::Default() -{ - if (!sDefaultInstance) - sDefaultInstance = new DebugInfoManager(); - return sDefaultInstance; -} - -// AddInfo -void -DebugInfoManager::AddInfo(const char* string) -{ -#if ON_SCREEN_DEBUGGING_INFO - if (fRootLayer) { - fRootLayer->AddDebugInfo(string); - } -#endif // ON_SCREEN_DEBUGGING_INFO -} - -// constructor -DebugInfoManager::DebugInfoManager() -#if ON_SCREEN_DEBUGGING_INFO - : fRootLayer(NULL) -{ - gDebugString[0] = 0; -} -#else -{ -} -#endif // ON_SCREEN_DEBUGGING_INFO - -#if ON_SCREEN_DEBUGGING_INFO -// SetRootLayer -void -DebugInfoManager::SetRootLayer(RootLayer* layer) -{ - fRootLayer = layer; -} -#endif // ON_SCREEN_DEBUGGING_INFO - diff --git a/src/servers/app/DebugInfoManager.h b/src/servers/app/DebugInfoManager.h deleted file mode 100644 index eb4b4f7de9..0000000000 --- a/src/servers/app/DebugInfoManager.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2005, Stephan Aßmus . All rights reserved. - * Distributed under the terms of the MIT License. - * - * Class used to manage global access to on-screen debugging info - * in the RootLayer class. - * - */ - -#ifndef DEBUG_INFO_MANAGER_H -#define DEBUG_INFO_MANAGER_H - -#include - -#if __HAIKU__ -# define ON_SCREEN_DEBUGGING_INFO 0 -#else -# define ON_SCREEN_DEBUGGING_INFO 0 -#endif - -#if ON_SCREEN_DEBUGGING_INFO - extern char* gDebugString; -# define CRITICAL(x) { sprintf(gDebugString, (x)); DebugInfoManager::Default()->AddInfo(gDebugString); } -#else -//# define CRITICAL(x) debugger (x) -# define CRITICAL(x) ; -#endif // ON_SCREEN_DEBUGGING_INFO - -class DebugInfoManager { -public: -virtual ~DebugInfoManager(); - -static DebugInfoManager *Default(); - void AddInfo(const char* string); - -private: - DebugInfoManager(); -static DebugInfoManager *sDefaultInstance; - -#if ON_SCREEN_DEBUGGING_INFO -friend class RootLayer; - void SetRootLayer(RootLayer* layer); - - RootLayer *fRootLayer; -#endif // ON_SCREEN_DEBUGGING_INFO -}; - -#endif // DEBUG_INFO_H diff --git a/src/servers/app/DefaultDecorator.cpp b/src/servers/app/DefaultDecorator.cpp index 5128c6312f..4cb018db2a 100644 --- a/src/servers/app/DefaultDecorator.cpp +++ b/src/servers/app/DefaultDecorator.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006, Haiku. + * Copyright 2001-2008, Haiku. * Distributed under the terms of the MIT License. * * Authors: @@ -7,7 +7,7 @@ * Stephan Aßmus */ -/** Default and fallback decorator for the app_server - the yellow tabs */ +/*! Default and fallback decorator for the app_server - the yellow tabs */ #include "DefaultDecorator.h" @@ -464,7 +464,7 @@ DefaultDecorator::GetFootprint(BRegion *region) { STRACE(("DefaultDecorator: Get Footprint\n")); // This function calculates the decorator's footprint in coordinates - // relative to the layer. This is most often used to set a WindowLayer + // relative to the view. This is most often used to set a Window // object's visible region. if (!region) return; @@ -487,7 +487,7 @@ DefaultDecorator::GetFootprint(BRegion *region) if (fLook == B_DOCUMENT_WINDOW_LOOK) { // include the rectangular resize knob on the bottom right region->Include(BRect(fFrame.right - 13.0f, fFrame.bottom - 13.0f, - fFrame.right, fFrame.bottom)); + fFrame.right, fFrame.bottom)); } } diff --git a/src/servers/app/Desktop.cpp b/src/servers/app/Desktop.cpp index d63a7cea47..08d0998845 100644 --- a/src/servers/app/Desktop.cpp +++ b/src/servers/app/Desktop.cpp @@ -244,7 +244,7 @@ MouseFilter::Filter(BMessage* message, EventTarget** _target, int32* _viewToken, window = fDesktop->WindowAt(where); if (window != NULL) { - // dispatch event in the window layers + // dispatch event to the window switch (message->what) { case B_MOUSE_DOWN: window->MouseDown(message, where, &viewToken); @@ -758,7 +758,7 @@ Desktop::RedrawBackground() // look for desktop background view, and update its background color // TODO: is there a better way to do this? - View* view = window->TopLayer(); + View* view = window->TopView(); if (view != NULL) view = view->FirstChild(); @@ -1661,7 +1661,7 @@ Desktop::ShowWindow(Window* window) } if (window->HasWorkspacesViews()) { - // find workspaces layer in view hierarchy + // find workspaces views in view hierarchy window->FindWorkspacesViews(fWorkspacesViews); } diff --git a/src/servers/app/DrawState.h b/src/servers/app/DrawState.h index 21b1e4df0b..c2ee3f7e7b 100644 --- a/src/servers/app/DrawState.h +++ b/src/servers/app/DrawState.h @@ -162,7 +162,7 @@ class DrawState { bool fFontAliasing; // This is not part of the normal state stack. - // Layer will update it in PushState/PopState. + // The view will update it in PushState/PopState. // A BView can have a flag "B_SUBPIXEL_PRECISE", // I never knew what it does on R5, but I can use // it in Painter to actually draw stuff with diff --git a/src/servers/app/Jamfile b/src/servers/app/Jamfile index e697117959..76ecae2679 100644 --- a/src/servers/app/Jamfile +++ b/src/servers/app/Jamfile @@ -17,7 +17,6 @@ Server app_server : CursorData.cpp CursorManager.cpp CursorSet.cpp - DebugInfoManager.cpp DecorManager.cpp Decorator.cpp DefaultDecorator.cpp diff --git a/src/servers/app/OffscreenWindow.cpp b/src/servers/app/OffscreenWindow.cpp index a58d7452e8..e1e226a635 100644 --- a/src/servers/app/OffscreenWindow.cpp +++ b/src/servers/app/OffscreenWindow.cpp @@ -14,7 +14,6 @@ #include #include "BitmapHWInterface.h" -#include "DebugInfoManager.h" #include "DrawingEngine.h" #include "ServerBitmap.h" @@ -41,7 +40,7 @@ OffscreenWindow::OffscreenWindow(ServerBitmap* bitmap, OffscreenWindow::~OffscreenWindow() { fHWInterface->LockExclusiveAccess(); - // Unlike normal Layers, we own the DrawingEngine instance + // Unlike normal windows, we own the DrawingEngine instance delete GetDrawingEngine(); fHWInterface->Shutdown(); fHWInterface->UnlockExclusiveAccess(); diff --git a/src/servers/app/ProfileMessageSupport.cpp b/src/servers/app/ProfileMessageSupport.cpp index 66d46b068d..30f7142811 100644 --- a/src/servers/app/ProfileMessageSupport.cpp +++ b/src/servers/app/ProfileMessageSupport.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2007: string = ""; break; Haiku: string = ""; break; Inc. All rights reserved. + * Copyright 2007-2008, Haiku Inc. All rights reserved. * Distributed under the terms of the MIT License. * * Authors: @@ -215,7 +215,7 @@ string_for_message_code(uint32 code, BString& string) case AS_LAYER_RESIZE: string = "AS_LAYER_RESIZE"; break; case AS_LAYER_DRAW: string = "AS_LAYER_DRAW"; break; - // View/Layer definitions + // View definitions case AS_LAYER_GET_COORD: string = "AS_LAYER_GET_COORD"; break; case AS_LAYER_SET_FLAGS: string = "AS_LAYER_SET_FLAGS"; break; case AS_LAYER_SET_ORIGIN: string = "AS_LAYER_SET_ORIGIN"; break; diff --git a/src/servers/app/ServerApp.cpp b/src/servers/app/ServerApp.cpp index 75cedd2ddd..706b0e8a30 100644 --- a/src/servers/app/ServerApp.cpp +++ b/src/servers/app/ServerApp.cpp @@ -21,7 +21,6 @@ #include "CursorManager.h" #include "CursorSet.h" #include "Desktop.h" -#include "DebugInfoManager.h" #include "DecorManager.h" #include "DrawingEngine.h" #include "EventStream.h" @@ -132,9 +131,7 @@ ServerApp::ServerApp(Desktop* desktop, port_id clientReplyPort, ServerApp::~ServerApp() { STRACE(("*ServerApp %s:~ServerApp()\n", Signature())); - - if (!fQuitting) - CRITICAL("ServerApp: destructor called after Run()!\n"); + ASSERT(fQuitting); // quit all server windows diff --git a/src/servers/app/ServerWindow.cpp b/src/servers/app/ServerWindow.cpp index 450c1ce7af..994cbbf35d 100644 --- a/src/servers/app/ServerWindow.cpp +++ b/src/servers/app/ServerWindow.cpp @@ -24,7 +24,6 @@ #include "ServerWindow.h" #include "AppServer.h" -#include "DebugInfoManager.h" #include "Desktop.h" #include "DrawingEngine.h" #include "HWInterface.h" @@ -345,7 +344,7 @@ ServerWindow::_GetLooperName(char* name, size_t length) } -//! Forces the window layer to update its decorator +//! Forces the window to update its decorator void ServerWindow::ReplaceDecorator() { @@ -557,28 +556,28 @@ ServerWindow::_CreateView(BPrivate::LinkReceiver &link, View **_parent) link.Read(&viewColor); link.Read(&parentToken); - STRACE(("ServerWindow(%s)::_CreateView()-> layer %s, token %ld\n", + STRACE(("ServerWindow(%s)::_CreateView()-> view %s, token %ld\n", fTitle, name, token)); - View* newLayer; + View* newView; if ((flags & kWorkspacesViewFlag) != 0) { - newLayer = new (nothrow) WorkspacesView(frame, scrollingOffset, name, + newView = new (nothrow) WorkspacesView(frame, scrollingOffset, name, token, resizeMask, flags); } else { - newLayer = new (nothrow) View(frame, scrollingOffset, name, token, + newView = new (nothrow) View(frame, scrollingOffset, name, token, resizeMask, flags); } free(name); - if (newLayer == NULL) + if (newView == NULL) return NULL; // there is no way of setting this, other than manually :-) - newLayer->SetViewColor(viewColor); - newLayer->SetHidden(hidden); - newLayer->SetEventMask(eventMask, eventOptions); + newView->SetViewColor(viewColor); + newView->SetHidden(hidden); + newView->SetEventMask(eventMask, eventOptions); if (eventMask != 0 || eventOptions != 0) { // fDesktop->UnlockSingleWindow(); @@ -586,7 +585,7 @@ ServerWindow::_CreateView(BPrivate::LinkReceiver &link, View **_parent) fDesktop->UnlockAllWindows(); // TODO: possible deadlock fDesktop->EventDispatcher().AddListener(EventTarget(), - newLayer->Token(), eventMask, eventOptions); + newView->Token(), eventMask, eventOptions); fDesktop->LockAllWindows(); // fDesktop->UnlockAllWindows(); // fDesktop->LockSingleWindow(); @@ -596,27 +595,27 @@ fDesktop->LockAllWindows(); DesktopSettings settings(fDesktop); ServerFont font; settings.GetDefaultPlainFont(font); - newLayer->CurrentState()->SetFont(font); + newView->CurrentState()->SetFont(font); if (_parent) { View *parent; if (App()->ViewTokens().GetToken(parentToken, B_HANDLER_TOKEN, (void**)&parent) != B_OK || parent->Window()->ServerWindow() != this) { - CRITICAL("View token not found!\n"); + debug_printf("View token not found!\n"); parent = NULL; } *_parent = parent; } - return newLayer; + return newView; } /*! Dispatches all window messages, and those view messages that - don't need a valid fCurrentView (ie. layer creation). + don't need a valid fCurrentView (ie. view creation). */ void ServerWindow::_DispatchMessage(int32 code, BPrivate::LinkReceiver &link) @@ -1127,7 +1126,7 @@ ServerWindow::_DispatchMessage(int32 code, BPrivate::LinkReceiver &link) (void**)¤t) != B_OK || current->Window()->ServerWindow() != this) { // ToDo: if this happens, we probably want to kill the app and clean up - fprintf(stderr, "ServerWindow %s: Message AS_SET_CURRENT_LAYER: layer not found, token %ld\n", fTitle, token); + fprintf(stderr, "ServerWindow %s: Message AS_SET_CURRENT_LAYER: view not found, token %ld\n", fTitle, token); current = NULL; } else { DTRACE(("ServerWindow %s: Message AS_SET_CURRENT_LAYER: %s, token %ld\n", fTitle, current->Name(), token)); @@ -1148,7 +1147,7 @@ ServerWindow::_DispatchMessage(int32 code, BPrivate::LinkReceiver &link) } _SetCurrentView(_CreateView(link, NULL)); - fWindow->SetTopLayer(fCurrentView); + fWindow->SetTopView(fCurrentView); break; } @@ -1157,11 +1156,11 @@ ServerWindow::_DispatchMessage(int32 code, BPrivate::LinkReceiver &link) STRACE(("ServerWindow %s: Message AS_LAYER_CREATE: View name: %s\n", fTitle, fCurrentView->Name())); View* parent = NULL; - View* newLayer = _CreateView(link, &parent); - if (parent != NULL && newLayer != NULL) - parent->AddChild(newLayer); + View* newView = _CreateView(link, &parent); + if (parent != NULL && newView != NULL) + parent->AddChild(newView); else - fprintf(stderr, "ServerWindow %s: Message AS_LAYER_CREATE: parent or newLayer NULL!!\n", fTitle); + fprintf(stderr, "ServerWindow %s: Message AS_LAYER_CREATE: parent or newView NULL!!\n", fTitle); break; } @@ -2890,9 +2889,7 @@ ServerWindow::_MessageLooper() quitLoop = true; // ServerWindow's destructor takes care of pulling this object off the desktop. - if (!fWindow->IsHidden()) - CRITICAL("ServerWindow: a window must be hidden before it's deleted\n"); - + ASSERT(fWindow->IsHidden()); break; } @@ -3132,12 +3129,12 @@ ServerWindow::HandleDirectConnection(int32 bufferState, int32 driverState) void -ServerWindow::_SetCurrentView(View* layer) +ServerWindow::_SetCurrentView(View* view) { - if (fCurrentView == layer) + if (fCurrentView == view) return; - fCurrentView = layer; + fCurrentView = view; fCurrentDrawingRegionValid = false; _UpdateDrawState(fCurrentView); @@ -3166,17 +3163,17 @@ ServerWindow::_SetCurrentView(View* layer) void -ServerWindow::_UpdateDrawState(View* layer) +ServerWindow::_UpdateDrawState(View* view) { // switch the drawing state // TODO: is it possible to scroll a view while it // is being drawn? probably not... otherwise the // "offsets" passed below would need to be updated again DrawingEngine* drawingEngine = fWindow->GetDrawingEngine(); - if (layer && drawingEngine) { + if (view && drawingEngine) { BPoint p(0, 0); - layer->ConvertToScreenForDrawing(&p); - drawingEngine->SetDrawState(layer->CurrentState(), p.x, p.y); + view->ConvertToScreenForDrawing(&p); + drawingEngine->SetDrawState(view->CurrentState(), p.x, p.y); } } diff --git a/src/servers/app/View.cpp b/src/servers/app/View.cpp index 1a9624771c..7d6f1b797c 100644 --- a/src/servers/app/View.cpp +++ b/src/servers/app/View.cpp @@ -87,7 +87,7 @@ View::View(IntRect frame, IntPoint scrollingOffset, const char* name, fResizeMode(resizeMode), fFlags(flags), - // ViewLayers start visible by default + // Views start visible by default fHidden(false), fVisible(true), fBackgroundDirty(true), @@ -123,17 +123,17 @@ View::~View() delete fDrawState; -// if (fWindow && this == fWindow->TopLayer()) -// fWindow->SetTopLayer(NULL); +// if (fWindow && this == fWindow->TopView()) +// fWindow->SetTopView(NULL); if (fCursor) fCursor->Release(); // iterate over children and delete each one - View* layer = fFirstChild; - while (layer) { - View* toast = layer; - layer = layer->fNextSibling; + View* view = fFirstChild; + while (view) { + View* toast = view; + view = view->fNextSibling; delete toast; } } @@ -167,7 +167,7 @@ View::AttachedToWindow(::Window* window) fWindow = window; // an ugly hack to detect the desktop background - if (window->Feel() == kDesktopWindowFeel && Parent() == TopLayer()) + if (window->Feel() == kDesktopWindowFeel && Parent() == TopView()) fIsDesktopBackground = true; // insert view into local token space @@ -200,36 +200,36 @@ View::DetachedFromWindow() void -View::AddChild(View* layer) +View::AddChild(View* view) { - if (layer->fParent) { + if (view->fParent) { printf("View::AddChild() - View already has a parent\n"); return; } - layer->fParent = this; + view->fParent = this; if (!fLastChild) { // no children yet - fFirstChild = layer; + fFirstChild = view; } else { - // append layer to formerly last child - fLastChild->fNextSibling = layer; - layer->fPreviousSibling = fLastChild; + // append view to formerly last child + fLastChild->fNextSibling = view; + view->fPreviousSibling = fLastChild; } - fLastChild = layer; + fLastChild = view; - layer->UpdateVisibleDeep(fVisible); + view->UpdateVisibleDeep(fVisible); - if (layer->IsVisible()) + if (view->IsVisible()) RebuildClipping(false); if (fWindow) { - layer->AttachedToWindow(fWindow); + view->AttachedToWindow(fWindow); - if (layer->IsVisible()) { + if (view->IsVisible()) { // trigger redraw - IntRect clippedFrame = layer->Frame(); + IntRect clippedFrame = view->Frame(); ConvertToVisibleInTopView(&clippedFrame); BRegion* dirty = fWindow->GetRegion(); if (dirty) { @@ -243,37 +243,37 @@ View::AddChild(View* layer) bool -View::RemoveChild(View* layer) +View::RemoveChild(View* view) { - if (layer->fParent != this) { + if (view->fParent != this) { printf("View::RemoveChild(%p - %s) - View is not child of " - "this (%p) layer!\n", layer, layer ? layer->Name() : NULL, this); + "this (%p) view!\n", view, view ? view->Name() : NULL, this); return false; } - layer->fParent = NULL; + view->fParent = NULL; - if (fLastChild == layer) - fLastChild = layer->fPreviousSibling; - // layer->fNextSibling would be NULL + if (fLastChild == view) + fLastChild = view->fPreviousSibling; + // view->fNextSibling would be NULL - if (fFirstChild == layer ) - fFirstChild = layer->fNextSibling; - // layer->fPreviousSibling would be NULL + if (fFirstChild == view ) + fFirstChild = view->fNextSibling; + // view->fPreviousSibling would be NULL - // connect child before and after layer - if (layer->fPreviousSibling) - layer->fPreviousSibling->fNextSibling = layer->fNextSibling; + // connect child before and after view + if (view->fPreviousSibling) + view->fPreviousSibling->fNextSibling = view->fNextSibling; - if (layer->fNextSibling) - layer->fNextSibling->fPreviousSibling = layer->fPreviousSibling; + if (view->fNextSibling) + view->fNextSibling->fPreviousSibling = view->fPreviousSibling; - // layer has no siblings anymore - layer->fPreviousSibling = NULL; - layer->fNextSibling = NULL; + // view has no siblings anymore + view->fPreviousSibling = NULL; + view->fNextSibling = NULL; - if (layer->IsVisible()) { - Overlay* overlay = layer->_Overlay(); + if (view->IsVisible()) { + Overlay* overlay = view->_Overlay(); if (overlay != NULL) overlay->Hide(); @@ -281,11 +281,11 @@ View::RemoveChild(View* layer) } if (fWindow) { - layer->DetachedFromWindow(); + view->DetachedFromWindow(); - if (fVisible && layer->IsVisible()) { + if (fVisible && view->IsVisible()) { // trigger redraw - IntRect clippedFrame = layer->Frame(); + IntRect clippedFrame = view->Frame(); ConvertToVisibleInTopView(&clippedFrame); BRegion* dirty = fWindow->GetRegion(); if (dirty) { @@ -301,13 +301,13 @@ View::RemoveChild(View* layer) View* -View::TopLayer() +View::TopView() { // returns the top level view of the hirarchy, // it doesn't have to be the top level of a window if (fParent) - return fParent->TopLayer(); + return fParent->TopView(); return this; } @@ -407,9 +407,9 @@ View::ViewAt(const BPoint& where) return NULL; for (View* child = FirstChild(); child; child = child->NextSibling()) { - View* layer = child->ViewAt(where); - if (layer != NULL) - return layer; + View* view = child->ViewAt(where); + if (view != NULL) + return view; } return this; @@ -1469,7 +1469,7 @@ View::MarkBackgroundDirty() void -View::AddTokensForLayersInRegion(BMessage* message, BRegion& region, +View::AddTokensForViewsInRegion(BMessage* message, BRegion& region, BRegion* windowContentClipping) { if (!fVisible) @@ -1479,14 +1479,14 @@ View::AddTokensForLayersInRegion(BMessage* message, BRegion& region, message->AddInt32("_token", fToken); for (View* child = FirstChild(); child; child = child->NextSibling()) { - child->AddTokensForLayersInRegion(message, region, + child->AddTokensForViewsInRegion(message, region, windowContentClipping); } } void -View::AddTokensForLayersInRegion(BPrivate::PortLink& link, BRegion& region, +View::AddTokensForViewsInRegion(BPrivate::PortLink& link, BRegion& region, BRegion* windowContentClipping) { if (!fVisible) @@ -1501,7 +1501,7 @@ View::AddTokensForLayersInRegion(BPrivate::PortLink& link, BRegion& region, link.Attach(fToken); for (View* child = FirstChild(); child; child = child->NextSibling()) { - child->AddTokensForLayersInRegion(link, region, windowContentClipping); + child->AddTokensForViewsInRegion(link, region, windowContentClipping); } } diff --git a/src/servers/app/View.h b/src/servers/app/View.h index 1cf147728f..42abbac8cb 100644 --- a/src/servers/app/View.h +++ b/src/servers/app/View.h @@ -70,7 +70,7 @@ class View { float Scale() const; void SetUserClipping(const BRegion* region); - // region is expected in layer coordinates + // region is expected in view coordinates // converts the given frame up the view hierarchy and // clips to each views bounds @@ -81,8 +81,8 @@ class View { ::Window* Window() const { return fWindow; } // tree stuff - void AddChild(View* layer); - bool RemoveChild(View* layer); + void AddChild(View* view); + bool RemoveChild(View* view); inline View* Parent() const { return fParent; } @@ -96,7 +96,7 @@ class View { inline View* NextSibling() const { return fNextSibling; } - View* TopLayer(); + View* TopView(); uint32 CountChildren(bool deep = false) const; void CollectTokensForChildren(BList* tokenMap) const; @@ -215,11 +215,11 @@ class View { bool IsDesktopBackground() const { return fIsDesktopBackground; } - void AddTokensForLayersInRegion(BMessage* message, + void AddTokensForViewsInRegion(BMessage* message, BRegion& region, BRegion* windowContentClipping); - void AddTokensForLayersInRegion(BPrivate::PortLink& link, + void AddTokensForViewsInRegion(BPrivate::PortLink& link, BRegion& region, BRegion* windowContentClipping); diff --git a/src/servers/app/Window.cpp b/src/servers/app/Window.cpp index 1dccea1bca..fe08ea80e8 100644 --- a/src/servers/app/Window.cpp +++ b/src/servers/app/Window.cpp @@ -12,7 +12,6 @@ #include "Window.h" -#include "DebugInfoManager.h" #include "Decorator.h" #include "DecorManager.h" #include "Desktop.h" @@ -38,16 +37,16 @@ // Toggle debug output -//#define DEBUG_WINDOW_LAYER -//#define DEBUG_WINDOW_LAYER_CLICK +//#define DEBUG_WINDOW +//#define DEBUG_WINDOW_CLICK -#ifdef DEBUG_WINDOW_LAYER +#ifdef DEBUG_WINDOW # define STRACE(x) printf x #else # define STRACE(x) ; #endif -#ifdef DEBUG_WINDOW_LAYER_CLICK +#ifdef DEBUG_WINDOW_CLICK # define STRACE_CLICK(x) printf x #else # define STRACE_CLICK(x) ; @@ -100,7 +99,7 @@ Window::Window(const BRect& frame, const char *name, fActivateOnMouseUp(false), fDecorator(NULL), - fTopLayer(NULL), + fTopView(NULL), fWindow(window), fDrawingEngine(drawingEngine), fDesktop(window->Desktop()), @@ -161,7 +160,7 @@ Window::Window(const BRect& frame, const char *name, fDesktop->ScreenAt(0)->GetMode(width, height, colorSpace, frequency); // TODO: MOVE THIS AWAY!!! ResizeBy contains calls to virtual methods! -// Also, there is no TopLayer()! +// Also, there is no TopView()! fFrame.OffsetTo(B_ORIGIN); // ResizeBy(width - frame.Width(), height - frame.Height(), NULL); } @@ -176,10 +175,10 @@ Window::Window(const BRect& frame, const char *name, Window::~Window() { - if (fTopLayer) - fTopLayer->DetachedFromWindow(); + if (fTopView) + fTopView->DetachedFromWindow(); - delete fTopLayer; + delete fTopView; delete fDecorator; } @@ -307,9 +306,9 @@ Window::MoveBy(int32 x, int32 y) if (fDecorator) fDecorator->MoveBy(x, y); - if (fTopLayer != NULL) { - fTopLayer->MoveBy(x, y, NULL); - fTopLayer->UpdateOverlay(); + if (fTopView != NULL) { + fTopView->MoveBy(x, y, NULL); + fTopView->UpdateOverlay(); } // the desktop will take care of dirty regions @@ -366,9 +365,9 @@ Window::ResizeBy(int32 x, int32 y, BRegion* dirtyRegion) //} } - if (fTopLayer != NULL) { - fTopLayer->ResizeBy(x, y, dirtyRegion); - fTopLayer->UpdateOverlay(); + if (fTopView != NULL) { + fTopView->ResizeBy(x, y, dirtyRegion); + fTopView->UpdateOverlay(); } //if (dirtyRegion) @@ -390,7 +389,7 @@ Window::ScrollViewBy(View* view, int32 dx, int32 dy) // this is executed in ServerWindow with the Readlock // held - if (!view || view == fTopLayer || (dx == 0 && dy == 0)) + if (!view || view == fTopView || (dx == 0 && dy == 0)) return; BRegion* dirty = fRegionPool.GetRegion(); @@ -485,26 +484,26 @@ Window::CopyContents(BRegion* region, int32 xOffset, int32 yOffset) void -Window::SetTopLayer(View* topLayer) +Window::SetTopView(View* topView) { - fTopLayer = topLayer; + fTopView = topView; - if (fTopLayer) { - // the top layer is special, it has a coordinate system + if (fTopView) { + // the top view is special, it has a coordinate system // as if it was attached directly to the desktop, therefor, - // the coordinate conversion through the layer tree works - // as expected, since the top layer has no "parent" but has + // the coordinate conversion through the view tree works + // as expected, since the top view has no "parent" but has // fFrame as if it had - // make sure the location of the top layer on screen matches ours - fTopLayer->MoveBy(fFrame.left - fTopLayer->Frame().left, - fFrame.top - fTopLayer->Frame().top, NULL); + // make sure the location of the top view on screen matches ours + fTopView->MoveBy(fFrame.left - fTopView->Frame().left, + fFrame.top - fTopView->Frame().top, NULL); - // make sure the size of the top layer matches ours - fTopLayer->ResizeBy(fFrame.Width() - fTopLayer->Frame().Width(), - fFrame.Height() - fTopLayer->Frame().Height(), NULL); + // make sure the size of the top view matches ours + fTopView->ResizeBy(fFrame.Width() - fTopView->Frame().Width(), + fFrame.Height() - fTopView->Frame().Height(), NULL); - fTopLayer->AttachedToWindow(this); + fTopView->AttachedToWindow(this); } } @@ -512,7 +511,7 @@ Window::SetTopLayer(View* topLayer) View* Window::ViewAt(const BPoint& where) { - return fTopLayer->ViewAt(where); + return fTopView->ViewAt(where); } @@ -541,7 +540,7 @@ Window::PreviousWindow(int32 index) const void -Window::GetEffectiveDrawingRegion(View* layer, BRegion& region) +Window::GetEffectiveDrawingRegion(View* view, BRegion& region) { if (!fEffectiveDrawingRegionValid) { fEffectiveDrawingRegion = VisibleContentRegion(); @@ -554,29 +553,29 @@ Window::GetEffectiveDrawingRegion(View* layer, BRegion& region) fEffectiveDrawingRegion.IntersectWith(&fCurrentUpdateSession->DirtyRegion()); } else { // not in update, the view can draw everywhere -//printf("Window(%s)::GetEffectiveDrawingRegion(for %s) - outside update\n", Title(), layer->Name()); +//printf("Window(%s)::GetEffectiveDrawingRegion(for %s) - outside update\n", Title(), view->Name()); } fEffectiveDrawingRegionValid = true; } // TODO: this is a region that needs to be cached later in the server - // when the current layer in ServerWindow is set, and we are currently + // when the current view in ServerWindow is set, and we are currently // in an update (fInUpdate), than we can set this region and remember - // it for the comming drawing commands until the current layer changes + // it for the comming drawing commands until the current view changes // again or fEffectiveDrawingRegionValid is suddenly false. region = fEffectiveDrawingRegion; if (!fContentRegionValid) _UpdateContentRegion(); - region.IntersectWith(&layer->ScreenClipping(&fContentRegion)); + region.IntersectWith(&view->ScreenClipping(&fContentRegion)); } bool -Window::DrawingRegionChanged(View* layer) const +Window::DrawingRegionChanged(View* view) const { - return !fEffectiveDrawingRegionValid || !layer->IsScreenClippingValid(); + return !fEffectiveDrawingRegionValid || !view->IsScreenClippingValid(); } @@ -685,22 +684,21 @@ Window::MarkContentDirtyAsync(BRegion& regionOnScreen) void -Window::InvalidateView(View* layer, BRegion& layerRegion) +Window::InvalidateView(View* view, BRegion& viewRegion) { - if (layer && IsVisible() && layer->IsVisible()) { - + if (view && IsVisible() && view->IsVisible()) { if (!fContentRegionValid) _UpdateContentRegion(); - layer->ConvertToScreen(&layerRegion); - layerRegion.IntersectWith(&VisibleContentRegion()); - if (layerRegion.CountRects() > 0) { - layerRegion.IntersectWith(&layer->ScreenClipping(&fContentRegion)); + view->ConvertToScreen(&viewRegion); + viewRegion.IntersectWith(&VisibleContentRegion()); + if (viewRegion.CountRects() > 0) { + viewRegion.IntersectWith(&view->ScreenClipping(&fContentRegion)); -//fDrawingEngine->FillRegion(layerRegion, rgb_color{ 0, 255, 0, 255 }); +//fDrawingEngine->FillRegion(viewRegion, rgb_color{ 0, 255, 0, 255 }); //snooze(10000); fDirtyCause |= UPDATE_REQUEST; - _TriggerContentRedraw(layerRegion); + _TriggerContentRedraw(viewRegion); } } } @@ -939,12 +937,12 @@ Window::MouseMoved(BMessage *message, BPoint where, int32* _viewToken, bool isLatestMouseMoved) { #if 0 - if (fDecorator != NULL && fTopLayer != NULL) { + if (fDecorator != NULL && fTopView != NULL) { DrawingEngine* engine = fDecorator->GetDrawingEngine(); engine->LockParallelAccess(); engine->ConstrainClippingRegion(&VisibleRegion()); - fTopLayer->MarkAt(engine, where); + fTopView->MarkAt(engine, where); engine->UnlockParallelAccess(); } #endif @@ -1160,7 +1158,7 @@ Window::SetHidden(bool hidden) if (fHidden != hidden) { fHidden = hidden; - fTopLayer->SetHidden(hidden); + fTopView->SetHidden(hidden); // TODO: anything else? } @@ -1534,7 +1532,7 @@ void Window::FindWorkspacesViews(BObjectList& list) const { int32 count = fWorkspacesViewCount; - fTopLayer->FindViews(kWorkspacesViewFlag, (BObjectList&)list, count); + fTopView->FindViews(kWorkspacesViewFlag, (BObjectList&)list, count); } @@ -1680,9 +1678,9 @@ Window::ValidWindowFlags(window_feel feel) } - // #pragma mark - private + // _ShiftPartOfRegion void Window::_ShiftPartOfRegion(BRegion* region, BRegion* regionToShift, @@ -1723,14 +1721,15 @@ Window::_TriggerContentRedraw(BRegion& dirtyContentRegion) // there was suddenly added a dirty region // caused by exposing content, we need to clear // the entire background - backgroundClearingRegion = &(fPendingUpdateSession->DirtyRegion()); + backgroundClearingRegion + = &(fPendingUpdateSession->DirtyRegion()); } if (fDrawingEngine->LockParallelAccess()) { fDrawingEngine->SuspendAutoSync(); - fTopLayer->Draw(fDrawingEngine, backgroundClearingRegion, - &fContentRegion, true); + fTopView->Draw(fDrawingEngine, backgroundClearingRegion, + &fContentRegion, true); fDrawingEngine->Sync(); fDrawingEngine->UnlockParallelAccess(); @@ -1806,7 +1805,7 @@ Window::_TransferToUpdateSession(BRegion* contentDirtyRegion) // clip pending update session from current // update session, it makes no sense to draw stuff // already needing a redraw anyways. Theoretically, - // this could be done smarter (clip layers from pending + // this could be done smarter (clip views from pending // that have not yet been redrawn in the current update // session) // NOTE: appearently the R5 app_server does not do that, it just @@ -1905,7 +1904,7 @@ Window::BeginUpdate(BPrivate::PortLink& link) link.Attach(dirty->Frame()); // find and attach all views that intersect with // the dirty region - fTopLayer->AddTokensForLayersInRegion(link, *dirty, &fContentRegion); + fTopView->AddTokensForViewsInRegion(link, *dirty, &fContentRegion); // mark the end of the token "list" link.Attach(B_NULL_TOKEN); link.Flush(); @@ -1914,8 +1913,7 @@ Window::BeginUpdate(BPrivate::PortLink& link) //fDrawingEngine->FillRegion(dirty, (rgb_color){ 255, 0, 0, 255 }); fDrawingEngine->SuspendAutoSync(); - fTopLayer->Draw(fDrawingEngine, dirty, - &fContentRegion, true); + fTopView->Draw(fDrawingEngine, dirty, &fContentRegion, true); fDrawingEngine->Sync(); fDrawingEngine->UnlockParallelAccess(); diff --git a/src/servers/app/Window.h b/src/servers/app/Window.h index 8c67f25b13..3f07c7bf3f 100644 --- a/src/servers/app/Window.h +++ b/src/servers/app/Window.h @@ -80,14 +80,14 @@ public: void ScrollViewBy(View* view, int32 dx, int32 dy); - void SetTopLayer(View* topLayer); - View* TopLayer() const { return fTopLayer; } + void SetTopView(View* topView); + View* TopView() const { return fTopView; } View* ViewAt(const BPoint& where); virtual bool IsOffscreenWindow() const { return false; } - void GetEffectiveDrawingRegion(View* layer, BRegion& region); - bool DrawingRegionChanged(View* layer) const; + void GetEffectiveDrawingRegion(View* view, BRegion& region); + bool DrawingRegionChanged(View* view) const; // generic version, used by the Desktop void ProcessDirtyRegion(BRegion& regionOnScreen); @@ -100,7 +100,7 @@ public: void MarkContentDirty(BRegion& regionOnScreen); void MarkContentDirtyAsync(BRegion& regionOnScreen); // shortcut for invalidating just one view - void InvalidateView(View* view, BRegion& layerRegion); + void InvalidateView(View* view, BRegion& viewRegion); void DisableUpdateRequests(); void EnableUpdateRequests(); @@ -292,7 +292,7 @@ protected: bool fActivateOnMouseUp : 1; ::Decorator* fDecorator; - View* fTopLayer; + View* fTopView; ::ServerWindow* fWindow; DrawingEngine* fDrawingEngine; ::Desktop* fDesktop; diff --git a/src/servers/app/Workspace.cpp b/src/servers/app/Workspace.cpp index 8e9c09bfe9..3c12bc872b 100644 --- a/src/servers/app/Workspace.cpp +++ b/src/servers/app/Workspace.cpp @@ -83,7 +83,7 @@ Workspace::Workspace(Desktop& desktop, int32 index) // fDesktop.LockSingleWindow(); // TODO: in which threads is this being used? // from my investigations, it is used in the - // WorkspacesLayer::Draw(), which would have + // WorkspacesView::Draw(), which would have // to hold the read lock already RewindWindows(); } diff --git a/src/servers/app/WorkspacesView.cpp b/src/servers/app/WorkspacesView.cpp index 4ab0b66fb3..336cba536d 100644 --- a/src/servers/app/WorkspacesView.cpp +++ b/src/servers/app/WorkspacesView.cpp @@ -86,7 +86,7 @@ WorkspacesView::_ScreenFrame(int32 i) /*! \brief Returns the frame of the specified workspace within the - workspaces layer. + workspaces view. */ BRect WorkspacesView::_WorkspaceAt(int32 i) diff --git a/src/tests/servers/app/Jamfile b/src/tests/servers/app/Jamfile index 5d80378b74..82db143dc2 100644 --- a/src/tests/servers/app/Jamfile +++ b/src/tests/servers/app/Jamfile @@ -95,7 +95,6 @@ AddResources haiku_app_server : app_server.rdef ; Server haiku_app_server : # Misc. Sources Decorator.cpp - DebugInfoManager.cpp ProfileMessageSupport.cpp EventDispatcher.cpp EventStream.cpp @@ -128,15 +127,15 @@ Server haiku_app_server : BitmapHWInterface.cpp DefaultDecorator.cpp OffscreenServerWindow.cpp - OffscreenWindowLayer.cpp + OffscreenWindow.cpp RegionPool.cpp + Screen.cpp ServerPicture.cpp - ServerScreen.cpp - ViewLayer.cpp - WindowLayer.cpp + View.cpp + Window.cpp WindowList.cpp Workspace.cpp - WorkspacesLayer.cpp + WorkspacesView.cpp # libraries :