From 16f782ccbdfe4bf0ba9a674c2a7b5d7b8e37ac54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 9 Nov 2005 19:14:13 +0000 Subject: [PATCH] Implemented AS_SET_SYSTEM_FONT. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14803 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/ServerApp.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/servers/app/ServerApp.cpp b/src/servers/app/ServerApp.cpp index 051a2d98d1..49dfd4b329 100644 --- a/src/servers/app/ServerApp.cpp +++ b/src/servers/app/ServerApp.cpp @@ -1108,6 +1108,40 @@ ServerApp::_DispatchMessage(int32 code, BPrivate::LinkReceiver &link) /* font messages */ + case AS_SET_SYSTEM_FONT: + { + // gets: + // 1) string - font type ("plain", ...) + // 2) string - family + // 3) string - style + // 4) float - size + + char type[B_OS_NAME_LENGTH]; + font_family familyName; + font_style styleName; + float size; + + if (link.ReadString(type, sizeof(type)) == B_OK + && link.ReadString(familyName, sizeof(familyName)) == B_OK + && link.ReadString(styleName, sizeof(styleName)) == B_OK + && link.Read(&size) == B_OK) { + BAutolock locker(gFontManager); + + FontStyle* style = gFontManager->GetStyle(familyName, styleName); + if (style != NULL) { + ServerFont font(*style, size); + DesktopSettings settings(fDesktop); + + if (!strcmp(type, "plain")) + settings.SetDefaultPlainFont(font); + else if (!strcmp(type, "bold")) + settings.SetDefaultBoldFont(font); + else if (!strcmp(type, "fixed")) + settings.SetDefaultFixedFont(font); + } + } + break; + } case AS_GET_SYSTEM_DEFAULT_FONT: { // input: