Implemented AS_SET_SYSTEM_FONT.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14803 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2005-11-09 19:14:13 +00:00
parent 74ca263c69
commit 16f782ccbd
+34
View File
@@ -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<float>(&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: