From 6a0ed7da5303f3389cf954b24eda4c179f6a0a72 Mon Sep 17 00:00:00 2001 From: Clemens Zeidler Date: Tue, 26 Jul 2011 22:18:55 +0000 Subject: [PATCH] Move S&T back into the app server. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42501 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- build/jam/HaikuImage | 3 +- src/add-ons/decorators/Jamfile | 1 - .../decorators/SATDecorator/resources.rdef | 11 ------ src/servers/app/Desktop.cpp | 2 + src/servers/app/Desktop.h | 4 ++ src/servers/app/Jamfile | 5 ++- .../app/StackAndTile}/Jamfile | 13 +------ .../app/StackAndTile}/SATDecorator.cpp | 39 ------------------- .../app/StackAndTile}/SATDecorator.h | 16 -------- .../app/StackAndTile}/SATGroup.cpp | 2 + .../app/StackAndTile}/SATGroup.h | 0 .../app/StackAndTile}/SATWindow.cpp | 1 + .../app/StackAndTile}/SATWindow.h | 0 .../app/StackAndTile}/StackAndTile.cpp | 0 .../app/StackAndTile}/StackAndTile.h | 7 ++-- .../app/StackAndTile}/Stacking.cpp | 1 + .../app/StackAndTile}/Stacking.h | 0 .../app/StackAndTile}/Tiling.cpp | 0 .../app/StackAndTile}/Tiling.h | 1 + src/servers/app/decorator/DecorManager.cpp | 8 ++-- 20 files changed, 26 insertions(+), 88 deletions(-) delete mode 100644 src/add-ons/decorators/SATDecorator/resources.rdef rename src/{add-ons/decorators/SATDecorator => servers/app/StackAndTile}/Jamfile (70%) rename src/{add-ons/decorators/SATDecorator => servers/app/StackAndTile}/SATDecorator.cpp (83%) rename src/{add-ons/decorators/SATDecorator => servers/app/StackAndTile}/SATDecorator.h (72%) rename src/{add-ons/decorators/SATDecorator => servers/app/StackAndTile}/SATGroup.cpp (99%) rename src/{add-ons/decorators/SATDecorator => servers/app/StackAndTile}/SATGroup.h (100%) rename src/{add-ons/decorators/SATDecorator => servers/app/StackAndTile}/SATWindow.cpp (99%) rename src/{add-ons/decorators/SATDecorator => servers/app/StackAndTile}/SATWindow.h (100%) rename src/{add-ons/decorators/SATDecorator => servers/app/StackAndTile}/StackAndTile.cpp (100%) rename src/{add-ons/decorators/SATDecorator => servers/app/StackAndTile}/StackAndTile.h (97%) rename src/{add-ons/decorators/SATDecorator => servers/app/StackAndTile}/Stacking.cpp (99%) rename src/{add-ons/decorators/SATDecorator => servers/app/StackAndTile}/Stacking.h (100%) rename src/{add-ons/decorators/SATDecorator => servers/app/StackAndTile}/Tiling.cpp (100%) rename src/{add-ons/decorators/SATDecorator => servers/app/StackAndTile}/Tiling.h (98%) diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index b030c41b73..081ce99546 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -588,8 +588,7 @@ AddFilesToHaikuImage system add-ons disk_systems # decorators AddDirectoryToHaikuImage home config add-ons decorators ; -AddFilesToHaikuImage home config add-ons decorators : - SATDecorator ; +#AddFilesToHaikuImage home config add-ons decorators : ; # create directories that will remain empty AddDirectoryToHaikuImage common bin ; diff --git a/src/add-ons/decorators/Jamfile b/src/add-ons/decorators/Jamfile index 44a74fc734..c6e86651da 100644 --- a/src/add-ons/decorators/Jamfile +++ b/src/add-ons/decorators/Jamfile @@ -3,4 +3,3 @@ SubDir HAIKU_TOP src add-ons decorators ; SubInclude HAIKU_TOP src add-ons decorators BeDecorator ; SubInclude HAIKU_TOP src add-ons decorators MacDecorator ; SubInclude HAIKU_TOP src add-ons decorators WinDecorator ; -SubInclude HAIKU_TOP src add-ons decorators SATDecorator ; \ No newline at end of file diff --git a/src/add-ons/decorators/SATDecorator/resources.rdef b/src/add-ons/decorators/SATDecorator/resources.rdef deleted file mode 100644 index 3ceacd091c..0000000000 --- a/src/add-ons/decorators/SATDecorator/resources.rdef +++ /dev/null @@ -1,11 +0,0 @@ -resource("be:decor:info") message('deco') { - "name" = "Stack and Tile", - "authors" = "Clemens Zeidler, Ingo Weinhold", - "short_descr" = "Default look with ability to stack & tile windows.", - "long_descr" = "Group windows together and take advantage of those" - " tabs!\n\nTODO: instructions", - "lic_url" = "", - "lic_name" = "MIT", - "support_url" = "http://www.haiku-os.org/", - float "version" = 1.0 -}; diff --git a/src/servers/app/Desktop.cpp b/src/servers/app/Desktop.cpp index b99e446d42..d7c3e46690 100644 --- a/src/servers/app/Desktop.cpp +++ b/src/servers/app/Desktop.cpp @@ -449,6 +449,8 @@ Desktop::Desktop(uid_t userID, const char* targetScreen) fLink.SetReceiverPort(fMessagePort); // register listeners + RegisterListener(&fStackAndTile); + const DesktopListenerList& newListeners = gDecorManager.GetDesktopListeners(); for (int i = 0; i < newListeners.CountItems(); i++) diff --git a/src/servers/app/Desktop.h b/src/servers/app/Desktop.h index 39cb7a5a01..c3682e9a45 100644 --- a/src/servers/app/Desktop.h +++ b/src/servers/app/Desktop.h @@ -31,6 +31,7 @@ #include "Screen.h" #include "ScreenManager.h" #include "ServerCursor.h" +#include "StackAndTile.h" #include "VirtualScreen.h" #include "WindowList.h" #include "Workspace.h" @@ -246,6 +247,7 @@ public: Window* WindowForClientLooperPort(port_id port); + StackAndTile* GetStackAndTile() { return &fStackAndTile; } private: WindowList& _Windows(int32 index); @@ -350,6 +352,8 @@ private: Window* fFocus; Window* fFront; Window* fBack; + + StackAndTile fStackAndTile; }; #endif // DESKTOP_H diff --git a/src/servers/app/Jamfile b/src/servers/app/Jamfile index 9514028257..09d5feff2b 100644 --- a/src/servers/app/Jamfile +++ b/src/servers/app/Jamfile @@ -5,6 +5,7 @@ UsePrivateHeaders app graphics input interface kernel shared storage support ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src servers app StackAndTile ] ; UseFreeTypeHeaders ; @@ -80,7 +81,8 @@ Server app_server : : libtranslation.so libbe.so libbnetapi.so libasdrawing.a libasremote.a libpainter.a libagg.a libfreetype.so - libtextencoding.so libshared.a $(TARGET_LIBSTDC++) + StackAndTile.a liblinprog.a libtextencoding.so libshared.a + $(TARGET_LIBSTDC++) : app_server.rdef ; @@ -90,3 +92,4 @@ SEARCH on [ FGristFiles $(font_src) ] = [ FDirName $(HAIKU_TOP) src servers app SubInclude HAIKU_TOP src servers app drawing ; +SubInclude HAIKU_TOP src servers app StackAndTile ; diff --git a/src/add-ons/decorators/SATDecorator/Jamfile b/src/servers/app/StackAndTile/Jamfile similarity index 70% rename from src/add-ons/decorators/SATDecorator/Jamfile rename to src/servers/app/StackAndTile/Jamfile index e83ebf7ef9..b781b141d8 100644 --- a/src/add-ons/decorators/SATDecorator/Jamfile +++ b/src/servers/app/StackAndTile/Jamfile @@ -1,4 +1,4 @@ -SubDir HAIKU_TOP src add-ons decorators SATDecorator ; +SubDir HAIKU_TOP src servers app StackAndTile ; UseLibraryHeaders agg lp_solve linprog ; UsePrivateHeaders app graphics interface shared kernel ; @@ -10,20 +10,11 @@ UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ; UseFreeTypeHeaders ; -AddResources SATDecorator : resources.rdef ; - -Addon SATDecorator : +StaticLibrary StackAndTile.a : SATDecorator.cpp SATGroup.cpp SATWindow.cpp StackAndTile.cpp Stacking.cpp Tiling.cpp - - # libraries - : - libbe.so - app_server - $(TARGET_LIBSTDC++) - liblpsolve55.so liblinprog.a ; diff --git a/src/add-ons/decorators/SATDecorator/SATDecorator.cpp b/src/servers/app/StackAndTile/SATDecorator.cpp similarity index 83% rename from src/add-ons/decorators/SATDecorator/SATDecorator.cpp rename to src/servers/app/StackAndTile/SATDecorator.cpp index a5649a20a6..639d452216 100644 --- a/src/add-ons/decorators/SATDecorator/SATDecorator.cpp +++ b/src/servers/app/StackAndTile/SATDecorator.cpp @@ -49,39 +49,6 @@ static const rgb_color kHighlightTabColorShadow = tint_color(kHighlightTabColor, (B_DARKEN_1_TINT + B_NO_TINT) / 2); -SATDecorAddOn::SATDecorAddOn(image_id id, const char* name) - : - DecorAddOn(id, name) -{ - fDesktopListeners.AddItem(&fStackAndTile); -} - - -status_t -SATDecorAddOn::InitCheck() const -{ - if (fDesktopListeners.CountItems() != 1) - return B_ERROR; - - return B_OK; -} - - -WindowBehaviour* -SATDecorAddOn::AllocateWindowBehaviour(Window* window) -{ - return new (std::nothrow)SATWindowBehaviour(window, &fStackAndTile); -} - - -Decorator* -SATDecorAddOn::_AllocateDecorator(DesktopSettings& settings, BRect rect, - window_look look, uint32 flags) -{ - return new (std::nothrow)SATDecorator(settings, rect, look, flags); -} - - SATDecorator::SATDecorator(DesktopSettings& settings, BRect frame, window_look look, uint32 flags) : @@ -175,9 +142,3 @@ SATWindowBehaviour::AlterDeltaForSnap(Window* window, BPoint& delta, return fMagneticBorder.AlterDeltaForSnap(window->Screen(), groupFrame, delta, now); } - - -extern "C" DecorAddOn* (instantiate_decor_addon)(image_id id, const char* name) -{ - return new (std::nothrow)SATDecorAddOn(id, name); -} diff --git a/src/add-ons/decorators/SATDecorator/SATDecorator.h b/src/servers/app/StackAndTile/SATDecorator.h similarity index 72% rename from src/add-ons/decorators/SATDecorator/SATDecorator.h rename to src/servers/app/StackAndTile/SATDecorator.h index 7e5a4c4d0b..6ca099f96d 100644 --- a/src/add-ons/decorators/SATDecorator/SATDecorator.h +++ b/src/servers/app/StackAndTile/SATDecorator.h @@ -15,22 +15,6 @@ #include "StackAndTile.h" -class SATDecorAddOn : public DecorAddOn { -public: - SATDecorAddOn(image_id id, const char* name); - - virtual status_t InitCheck() const; - - virtual WindowBehaviour* AllocateWindowBehaviour(Window* window); - -protected: - virtual Decorator* _AllocateDecorator(DesktopSettings& settings, - BRect rect, window_look look, uint32 flags); - - StackAndTile fStackAndTile; -}; - - class SATDecorator : public DefaultDecorator { public: enum { diff --git a/src/add-ons/decorators/SATDecorator/SATGroup.cpp b/src/servers/app/StackAndTile/SATGroup.cpp similarity index 99% rename from src/add-ons/decorators/SATDecorator/SATGroup.cpp rename to src/servers/app/StackAndTile/SATGroup.cpp index 209afea68c..d434a2ce70 100644 --- a/src/add-ons/decorators/SATDecorator/SATGroup.cpp +++ b/src/servers/app/StackAndTile/SATGroup.cpp @@ -14,6 +14,8 @@ #include #include +#include "Desktop.h" + #include "SATWindow.h" #include "StackAndTile.h" #include "Window.h" diff --git a/src/add-ons/decorators/SATDecorator/SATGroup.h b/src/servers/app/StackAndTile/SATGroup.h similarity index 100% rename from src/add-ons/decorators/SATDecorator/SATGroup.h rename to src/servers/app/StackAndTile/SATGroup.h diff --git a/src/add-ons/decorators/SATDecorator/SATWindow.cpp b/src/servers/app/StackAndTile/SATWindow.cpp similarity index 99% rename from src/add-ons/decorators/SATDecorator/SATWindow.cpp rename to src/servers/app/StackAndTile/SATWindow.cpp index a1846d0810..bf505b0b23 100644 --- a/src/add-ons/decorators/SATDecorator/SATWindow.cpp +++ b/src/servers/app/StackAndTile/SATWindow.cpp @@ -13,6 +13,7 @@ #include "StackAndTilePrivate.h" +#include "Desktop.h" #include "SATGroup.h" #include "ServerApp.h" #include "Window.h" diff --git a/src/add-ons/decorators/SATDecorator/SATWindow.h b/src/servers/app/StackAndTile/SATWindow.h similarity index 100% rename from src/add-ons/decorators/SATDecorator/SATWindow.h rename to src/servers/app/StackAndTile/SATWindow.h diff --git a/src/add-ons/decorators/SATDecorator/StackAndTile.cpp b/src/servers/app/StackAndTile/StackAndTile.cpp similarity index 100% rename from src/add-ons/decorators/SATDecorator/StackAndTile.cpp rename to src/servers/app/StackAndTile/StackAndTile.cpp diff --git a/src/add-ons/decorators/SATDecorator/StackAndTile.h b/src/servers/app/StackAndTile/StackAndTile.h similarity index 97% rename from src/add-ons/decorators/SATDecorator/StackAndTile.h rename to src/servers/app/StackAndTile/StackAndTile.h index 198fe655cf..2aae3e9d04 100644 --- a/src/add-ons/decorators/SATDecorator/StackAndTile.h +++ b/src/servers/app/StackAndTile/StackAndTile.h @@ -14,9 +14,8 @@ #include #include -#include "Desktop.h" +#include "DesktopListener.h" #include "ObjectList.h" -#include "SATGroup.h" #include "WindowList.h" @@ -29,8 +28,10 @@ #endif +class SATGroup; class SATWindow; class Window; +class WindowArea; typedef std::map SATWindowMap; @@ -106,7 +107,7 @@ private: bool fSATKeyPressed; SATWindowMap fSATWindowMap; - SATWindowList fGrouplessWindows; + BObjectList fGrouplessWindows; SATWindow* fCurrentSATWindow; }; diff --git a/src/add-ons/decorators/SATDecorator/Stacking.cpp b/src/servers/app/StackAndTile/Stacking.cpp similarity index 99% rename from src/add-ons/decorators/SATDecorator/Stacking.cpp rename to src/servers/app/StackAndTile/Stacking.cpp index 15392c2ce8..dc9ebe13a8 100644 --- a/src/add-ons/decorators/SATDecorator/Stacking.cpp +++ b/src/servers/app/StackAndTile/Stacking.cpp @@ -12,6 +12,7 @@ #include "StackAndTilePrivate.h" +#include "Desktop.h" #include "SATWindow.h" #include "Window.h" diff --git a/src/add-ons/decorators/SATDecorator/Stacking.h b/src/servers/app/StackAndTile/Stacking.h similarity index 100% rename from src/add-ons/decorators/SATDecorator/Stacking.h rename to src/servers/app/StackAndTile/Stacking.h diff --git a/src/add-ons/decorators/SATDecorator/Tiling.cpp b/src/servers/app/StackAndTile/Tiling.cpp similarity index 100% rename from src/add-ons/decorators/SATDecorator/Tiling.cpp rename to src/servers/app/StackAndTile/Tiling.cpp diff --git a/src/add-ons/decorators/SATDecorator/Tiling.h b/src/servers/app/StackAndTile/Tiling.h similarity index 98% rename from src/add-ons/decorators/SATDecorator/Tiling.h rename to src/servers/app/StackAndTile/Tiling.h index 1eeeb47f3d..c442458f1b 100644 --- a/src/add-ons/decorators/SATDecorator/Tiling.h +++ b/src/servers/app/StackAndTile/Tiling.h @@ -12,6 +12,7 @@ #include "Decorator.h" #include "StackAndTile.h" +#include "SATGroup.h" class SATWindow; diff --git a/src/servers/app/decorator/DecorManager.cpp b/src/servers/app/decorator/DecorManager.cpp index a020e20909..ad07f1dfb7 100644 --- a/src/servers/app/decorator/DecorManager.cpp +++ b/src/servers/app/decorator/DecorManager.cpp @@ -21,11 +21,10 @@ #include #include "AppServer.h" -#include "DefaultDecorator.h" -#include "DefaultWindowBehaviour.h" #include "Desktop.h" #include "DesktopSettings.h" #include "ServerConfig.h" +#include "SATDecorator.h" #include "Window.h" typedef float get_version(void); @@ -82,7 +81,8 @@ DecorAddOn::AllocateDecorator(Desktop* desktop, DrawingEngine* engine, WindowBehaviour* DecorAddOn::AllocateWindowBehaviour(Window* window) { - return new (std::nothrow)DefaultWindowBehaviour(window); + return new (std::nothrow)SATWindowBehaviour(window, + window->Desktop()->GetStackAndTile()); } @@ -97,7 +97,7 @@ Decorator* DecorAddOn::_AllocateDecorator(DesktopSettings& settings, BRect rect, window_look look, uint32 flags) { - return new (std::nothrow)DefaultDecorator(settings, rect, look, flags); + return new (std::nothrow)SATDecorator(settings, rect, look, flags); }