diff -ruN uppsrc.orig/Draw/Display.cpp uppsrc/Draw/Display.cpp
--- uppsrc.orig/Draw/Display.cpp	2010-10-06 18:29:35 +0600
+++ uppsrc/Draw/Display.cpp	2011-10-12 01:13:07 +0600
@@ -23,32 +23,28 @@
 	ink = Null;
 	normalink = Null;
 	paper = Null;
-	font = Null;
+	font = StdFont();
 	align = Null;
 	imgspc = 0;
 }
 
-AttrText::AttrText(const char *_text)
+AttrText::AttrText(const char *text) : text(text)
 {
-	text = _text;
 	Init();
 }
 
-AttrText::AttrText(const wchar *_text)
+AttrText::AttrText(const wchar *text) : text(text)
 {
-	text = _text;
 	Init();
 }
 
-AttrText::AttrText(const WString& _text)
+AttrText::AttrText(const WString& text) : text(text)
 {
-	text = _text;
 	Init();
 }
 
-AttrText::AttrText(const String& _text)
+AttrText::AttrText(const String& text) : text(text.ToWString())
 {
-	text = _text.ToWString();
 	Init();
 }
 
@@ -102,14 +98,13 @@
 	if(IsType<AttrText>(q)) {
 		const AttrText& t = ValueTo<AttrText>(q);
 		txt = t.text;
+		font = t.font;
 		if(!IsNull(t.paper))
 			paper = t.paper;
 		if(!IsNull(t.ink))
 			ink = t.ink;
 		if(!IsNull(t.normalink) && !(s & (CURSOR|SELECT|READONLY)))
 			ink = t.normalink;
-		if(!IsNull(t.font))
-			font = t.font;
 		if(!IsNull(t.align))
 			a = t.align;
 		if(!IsNull(t.img)) {
@@ -154,8 +149,7 @@
 	if(IsType<AttrText>(q)) {
 		const AttrText& t = ValueTo<AttrText>(q);
 		txt = t.text;
-		if(!IsNull(t.font))
-			font = t.font;
+		font = t.font;
 		if(!IsNull(t.img)) {
 			isz = t.img.GetSize();
 			isz.cx += t.imgspc;
diff -ruN uppsrc.orig/Draw/Display.h uppsrc/Draw/Display.h
--- uppsrc.orig/Draw/Display.h	2010-10-06 18:29:35 +0600
+++ uppsrc/Draw/Display.h	2011-10-11 23:29:25 +0600
@@ -40,6 +40,34 @@
 	AttrText& NormalInk(Color c)                    { normalink = c; return *this; }
 	AttrText& Paper(Color c)                        { paper = c; return *this; }
 	AttrText& SetFont(Font f)                       { font = f; return *this; }
+	Font      GetFont() const                       { return font; }
+
+	bool   IsBold() const                           { return font.IsBold(); }
+	bool   IsItalic() const                         { return font.IsItalic(); }
+	bool   IsUnderline() const                      { return font.IsUnderline(); }
+	bool   IsStrikeout() const                      { return font.IsStrikeout(); }
+	bool   IsNonAntiAliased() const                 { return font.IsNonAntiAliased(); }
+	bool   IsTrueTypeOnly() const                   { return font.IsTrueTypeOnly(); }
+
+	AttrText& Bold()                                { font.Bold(); return *this; }
+	AttrText& NoBold()                              { font.NoBold(); return *this; }
+	AttrText& Bold(bool b)                          { return b ? Bold() : NoBold(); }
+	AttrText& Italic()                              { font.Italic(); return *this; }
+	AttrText& NoItalic()                            { font.NoItalic(); return *this; }
+	AttrText& Italic(bool b)                        { return b ? Italic() : NoItalic(); }
+	AttrText& Underline()                           { font.Underline(); return *this; }
+	AttrText& NoUnderline()                         { font.NoUnderline(); return *this; }
+	AttrText& Underline(bool b)                     { return b ? Underline() : NoUnderline(); }
+	AttrText& Strikeout()                           { font.Strikeout(); return *this; }
+	AttrText& NoStrikeout()                         { font.NoStrikeout(); return *this; }
+	AttrText& Strikeout(bool b)                     { return b ? Strikeout() : NoStrikeout(); }
+	AttrText& NonAntiAliased()                      { font.NonAntiAliased(); return *this; }
+	AttrText& NoNonAntiAliased()                    { font.NoNonAntiAliased(); return *this; }
+	AttrText& NonAntiAliased(bool b)                { return b ? NonAntiAliased() : NoNonAntiAliased(); }
+	AttrText& TrueTypeOnly()                        { font.TrueTypeOnly(); return *this; }
+	AttrText& NoTrueTypeOnly()                      { font.NoTrueTypeOnly(); return *this; }
+	AttrText& TrueTypeOnly(bool b)                  { return b ? TrueTypeOnly() : NoTrueTypeOnly(); }
+
 	AttrText& Align(int a)                          { align = a; return *this; }
 	AttrText& Left()                                { return Align(ALIGN_LEFT); }
 	AttrText& Center()                              { return Align(ALIGN_CENTER); }
diff -ruN uppsrc.orig/Draw/Draw.h uppsrc/Draw/Draw.h
--- uppsrc.orig/Draw/Draw.h	2011-09-22 13:55:02 +0600
+++ uppsrc/Draw/Draw.h	2011-10-11 23:02:17 +0600
@@ -101,16 +101,27 @@
 		SCREEN_SANS = SANSSERIF,
 		SCREEN_FIXED = MONOSPACE,
 	};
+	
+	enum {
+		FONT_BOLD = 0x8000,
+		FONT_ITALIC = 0x4000,
+		FONT_UNDERLINE = 0x2000,
+		FONT_STRIKEOUT = 0x1000,
+		FONT_NON_ANTI_ALIASED = 0x800,
+		FONT_TRUE_TYPE_ONLY = 0x400
+	};
 
 	int    GetFace() const          { return v.face; }
 	int    GetHeight() const;
 	int    GetWidth() const         { return v.width; }
-	bool   IsBold() const           { return v.flags & 0x8000; }
-	bool   IsItalic() const         { return v.flags & 0x4000; }
-	bool   IsUnderline() const      { return v.flags & 0x2000; }
-	bool   IsStrikeout() const      { return v.flags & 0x1000; }
-	bool   IsNonAntiAliased() const { return v.flags & 0x800; }
-	bool   IsTrueTypeOnly() const   { return v.flags & 0x400; }
+	bool   IsBold() const           { return v.flags & FONT_BOLD; }
+	bool   IsItalic() const         { return v.flags & FONT_ITALIC; }
+	bool   IsUnderline() const      { return v.flags & FONT_UNDERLINE; }
+	bool   IsStrikeout() const      { return v.flags & FONT_STRIKEOUT; }
+	bool   IsNonAntiAliased() const { return v.flags & FONT_NON_ANTI_ALIASED; }
+	bool   IsTrueTypeOnly() const   { return v.flags & FONT_TRUE_TYPE_ONLY; }
+	dword  GetFlags() const         { return v.flags; }
+	Font&  SetFlags(dword flags)    { v.flags = flags; return *this; }
 	String GetFaceName() const;
 	dword  GetFaceInfo() const;
 	int64  AsInt64() const          { return data; }
@@ -118,24 +129,25 @@
 	Font& Face(int n)               { v.face = n; return *this; }
 	Font& Height(int n)             { v.height = n; return *this; }
 	Font& Width(int n)              { v.width = n; return *this; }
-	Font& Bold()                    { v.flags |= 0x8000; return *this; }
-	Font& NoBold()                  { v.flags &= ~0x8000; return *this; }
+	Font& Bold()                    { v.flags |= FONT_BOLD; return *this; }
+	Font& NoBold()                  { v.flags &= ~FONT_BOLD; return *this; }
 	Font& Bold(bool b)              { return b ? Bold() : NoBold(); }
-	Font& Italic()                  { v.flags |= 0x4000; return *this; }
-	Font& NoItalic()                { v.flags &= ~0x4000; return *this; }
+	Font& Italic()                  { v.flags |= FONT_ITALIC; return *this; }
+	Font& NoItalic()                { v.flags &= ~FONT_ITALIC; return *this; }
 	Font& Italic(bool b)            { return b ? Italic() : NoItalic(); }
-	Font& Underline()               { v.flags |= 0x2000; return *this; }
-	Font& NoUnderline()             { v.flags &= ~0x2000; return *this; }
+	Font& Underline()               { v.flags |= FONT_UNDERLINE; return *this; }
+	Font& NoUnderline()             { v.flags &= ~FONT_UNDERLINE; return *this; }
 	Font& Underline(bool b)         { return b ? Underline() : NoUnderline(); }
-	Font& Strikeout()               { v.flags |= 0x1000; return *this; }
-	Font& NoStrikeout()             { v.flags &= ~0x1000; return *this; }
+	Font& Strikeout()               { v.flags |= FONT_STRIKEOUT; return *this; }
+	Font& NoStrikeout()             { v.flags &= ~FONT_STRIKEOUT; return *this; }
 	Font& Strikeout(bool b)         { return b ? Strikeout() : NoStrikeout(); }
-	Font& NonAntiAliased()          { v.flags |= 0x800; return *this; }
-	Font& NoNonAntiAliased()        { v.flags &= ~0x800; return *this; }
+	Font& NonAntiAliased()          { v.flags |= FONT_NON_ANTI_ALIASED; return *this; }
+	Font& NoNonAntiAliased()        { v.flags &= ~FONT_NON_ANTI_ALIASED; return *this; }
 	Font& NonAntiAliased(bool b)    { return b ? NonAntiAliased() : NoNonAntiAliased(); }
-	Font& TrueTypeOnly()            { v.flags |= 0x400; return *this; }
-	Font& NoTrueTypeOnly()          { v.flags &= ~0x400; return *this; }
+	Font& TrueTypeOnly()            { v.flags |= FONT_TRUE_TYPE_ONLY; return *this; }
+	Font& NoTrueTypeOnly()          { v.flags &= ~FONT_TRUE_TYPE_ONLY; return *this; }
 	Font& TrueTypeOnly(bool b)      { return b ? TrueTypeOnly() : NoTrueTypeOnly(); }
+
 	Font& FaceName(const String& name);
 
 	Font  operator()() const        { return *this; }
