From 4550f389498c5e5c7143f340fca42d51fe0f796d Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Tue, 22 Dec 2009 21:06:58 +0000 Subject: [PATCH] -Bring BeDecorator back at a compilable state -Some updates to the DecoratorManager to try to make it working. The add-on is not identified properly but I can't find out why... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34749 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/decorators/BeDecorator/BeDecorator.cpp | 10 ++++++---- src/add-ons/decorators/BeDecorator/BeDecorator.h | 1 + src/add-ons/decorators/BeDecorator/Jamfile | 4 +++- src/add-ons/decorators/MacDecorator/Jamfile | 5 +++-- src/add-ons/decorators/WinDecorator/Jamfile | 2 +- src/servers/app/DecorManager.cpp | 7 +++++-- 6 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/add-ons/decorators/BeDecorator/BeDecorator.cpp b/src/add-ons/decorators/BeDecorator/BeDecorator.cpp index 56d47c79bd..9d634ff09a 100644 --- a/src/add-ons/decorators/BeDecorator/BeDecorator.cpp +++ b/src/add-ons/decorators/BeDecorator/BeDecorator.cpp @@ -166,7 +166,8 @@ BeDecorator::SetLook(DesktopSettings& settings, font.SetFlags(B_FORCE_ANTIALIASING); font.SetSpacing(B_STRING_SPACING); - SetFont(&font); + // TODO Make this work... + // SetFont(&font); Decorator::SetLook(settings, look, updateRegion); _DoLayout(); @@ -639,8 +640,9 @@ BeDecorator::_DoLayout() fMinTabSize += offset + size; // fMaxTabSize contains fMinWidth + the width required for the title - fMaxTabSize = fDrawingEngine ? ceilf(fDrawingEngine->StringWidth(Title(), strlen(Title()), - &fDrawState)) : 0.0; + // TODO : check what escapement_delta is supposed to do + fMaxTabSize = fDrawingEngine ? ceilf(fDrawingEngine->StringWidth(Title(), strlen(Title())/*, + &fDrawState*/)) : 0.0; if (fMaxTabSize > 0.0) fMaxTabSize += fTextOffset; fMaxTabSize += fMinTabSize; @@ -985,7 +987,7 @@ BeDecorator::_DrawTitle(BRect r) : fTabRect.bottom - fTextOffset; } - fDrawingEngine->DrawString(fTruncatedTitle.String(), fTruncatedTitleLength, titlePos, &fDrawState); + fDrawingEngine->DrawString(fTruncatedTitle.String(), fTruncatedTitleLength, titlePos/*, &fDrawState*/); } // _DrawZoom diff --git a/src/add-ons/decorators/BeDecorator/BeDecorator.h b/src/add-ons/decorators/BeDecorator/BeDecorator.h index cf9349a68a..882f46fcc3 100644 --- a/src/add-ons/decorators/BeDecorator/BeDecorator.h +++ b/src/add-ons/decorators/BeDecorator/BeDecorator.h @@ -12,6 +12,7 @@ #include "Decorator.h" #include +#include "RGBColor.h" class Desktop; diff --git a/src/add-ons/decorators/BeDecorator/Jamfile b/src/add-ons/decorators/BeDecorator/Jamfile index bd96f4cb65..6a1dc0f343 100644 --- a/src/add-ons/decorators/BeDecorator/Jamfile +++ b/src/add-ons/decorators/BeDecorator/Jamfile @@ -3,9 +3,11 @@ SubDir HAIKU_TOP src add-ons decorators BeDecorator ; UseFreeTypeHeaders ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ; UsePrivateHeaders app shared interface graphics ; +UseLibraryHeaders agg ; Addon ClassicBe : BeDecorator.cpp - : be app_server + : be app_server $(TARGET_LIBSTDC++) $(TARGET_LIBSUPC++) ; diff --git a/src/add-ons/decorators/MacDecorator/Jamfile b/src/add-ons/decorators/MacDecorator/Jamfile index 9b21a3ef68..939fd759b2 100644 --- a/src/add-ons/decorators/MacDecorator/Jamfile +++ b/src/add-ons/decorators/MacDecorator/Jamfile @@ -1,10 +1,11 @@ SubDir HAIKU_TOP src add-ons decorators MacDecorator ; UseFreeTypeHeaders ; -UseHeaders [ FDirName $(HAIKU_TOP) src servers app server ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src servers app ] ; UsePrivateHeaders [ FDirName servers app ] ; Addon MacDecorator : MacDecorator.cpp - : be libappserver.so + : be app_server +# libappserver.so ; diff --git a/src/add-ons/decorators/WinDecorator/Jamfile b/src/add-ons/decorators/WinDecorator/Jamfile index 3edd77c26e..9d54e6b30d 100644 --- a/src/add-ons/decorators/WinDecorator/Jamfile +++ b/src/add-ons/decorators/WinDecorator/Jamfile @@ -1,7 +1,7 @@ SubDir HAIKU_TOP src add-ons decorators WinDecorator ; UseFreeTypeHeaders ; -UseHeaders [ FDirName $(HAIKU_TOP) src servers app server ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src servers app ] ; UsePrivateHeaders [ FDirName servers app ] ; Addon WinDecorator : diff --git a/src/servers/app/DecorManager.cpp b/src/servers/app/DecorManager.cpp index c0e1c07b15..cd1b14ac93 100644 --- a/src/servers/app/DecorManager.cpp +++ b/src/servers/app/DecorManager.cpp @@ -13,6 +13,8 @@ #include #include +#include + #include "AppServer.h" #include "DefaultDecorator.h" #include "Desktop.h" @@ -115,9 +117,9 @@ DecorManager::DecorManager() DecorInfo *defaultDecor = new DecorInfo(-1, "Default", NULL); fDecorList.AddItem(defaultDecor); -#if 0 // Add any on disk RescanDecorators(); +#if 0 // Find out which one should be the active one BDirectory dir; @@ -171,7 +173,7 @@ DecorManager::RescanDecorators() continue; image_id image = load_add_on(path.Path()); - if (image != B_OK) + if (image < 0) continue; // As of now, we do nothing with decorator versions, but the possibility @@ -182,6 +184,7 @@ DecorManager::RescanDecorators() create_decorator* createFunc; // Get the instantiation function + // TODO : this is not working for some reason status_t status = get_image_symbol(image, "instantiate_decorator", B_SYMBOL_TYPE_TEXT, (void**)&createFunc); if (status != B_OK) {