Index: /trunk/MacFaceFloat/ConfigurationForm.cs
===================================================================
--- /trunk/MacFaceFloat/ConfigurationForm.cs	(revision 18)
+++ /trunk/MacFaceFloat/ConfigurationForm.cs	(revision 19)
@@ -386,6 +386,5 @@
 			{
 				FaceDef faceDef = new FaceDef(path);
-				Image image = faceDef.PatternImage(FaceDef.PatternSuite.Normal, 10);
-				imageListFacePreviews.Images.Add(image);
+				imageListFacePreviews.Images.Add(faceDef.TitleImage());
 
 				ListViewItem item = listViewFaces.Items.Add(faceDef.Title, imageListFacePreviews.Images.Count-1);
Index: /trunk/MacFaceFloat/MainForm.cs
===================================================================
--- /trunk/MacFaceFloat/MainForm.cs	(revision 18)
+++ /trunk/MacFaceFloat/MainForm.cs	(revision 19)
@@ -213,5 +213,5 @@
 				Graphics g = this.Graphics;
 				g.Clear(Color.FromArgb(0, 0, 0, 0));
-				_currentFaceDef.DrawPattern(g, FaceDef.PatternSuite.Normal, usage/10);
+				_currentFaceDef.DrawPatternImage(g, FaceDef.PatternSuite.Normal, usage/10, FaceDef.MarkerNone);
 				this.Update();
 			}
Index: /trunk/MacFaceLibrary/FaceDef.cs
===================================================================
--- /trunk/MacFaceLibrary/FaceDef.cs	(revision 18)
+++ /trunk/MacFaceLibrary/FaceDef.cs	(revision 19)
@@ -25,14 +25,13 @@
 		}
 
-		public enum MarkerBitMask
-		{
-			None    = 0x00,
-			PageIn  = 0x01,
-			PageOut = 0x02
-		}
+		public const int MarkerNone    = 0x00;
+		public const int MarkerPageIn  = 0x01;
+		public const int MarkerPageOut = 0x02;
 
 		private const string FaceDefName = "faceDef.plist";
 		private const int PatternCols = 11;
 		private const int PatternRows = 3;
+		private const int ImageWidth = 128;
+		private const int ImageHeight = 128;
 
 		private string _path;
@@ -44,5 +43,6 @@
 		private Part[] _parts;
 		private Part[][][] _patternSuites;
-		private Part[] _makers;
+		private Part[] _markers;
+		private Part[] _titlePattern;
 
 
@@ -72,6 +72,6 @@
 
 
-			// Part ðÇÝÞB
-			ArrayList partDefList = def["parts"] as ArrayList;
+			// p[cÌÇÝÝ
+			ArrayList partDefList = (ArrayList)def["parts"];
 			if (partDefList == null) 
 			{
@@ -82,6 +82,6 @@
 			for (int i = 0; i < partDefList.Count; i++)
 			{
-				Hashtable partDef = partDefList[i] as Hashtable;
-				string filename = partDef["filename"] as String;
+				Hashtable partDef = (Hashtable)partDefList[i];
+				string filename = (String)partDef["filename"];
 				int x = (int)partDef["pos x"];
 				int y = (int)partDef["pos y"];
@@ -89,4 +89,5 @@
 			}
 
+			// p^[ÌÇÝÝ
 			ArrayList suiteDefList = (ArrayList)def["pattern"];
 			_patternSuites = new Part[PatternRows][][];
@@ -107,4 +108,20 @@
 				_patternSuites[i] = suite;
 			}
+
+			// }[J[ÌÇÝÝ
+			ArrayList markerDefList = (ArrayList)def["markers"];
+			_markers = new Part[markerDefList.Count];
+			for (int i = 0; i < markerDefList.Count; i++)
+			{
+				_markers[i] = _parts[(int)markerDefList[i]];
+			}
+
+			// ^Cgp^[ÌÇÝÝ
+			ArrayList titlePatternDef = (ArrayList)def["title pattern"];
+			_titlePattern = new Part[titlePatternDef.Count];
+			for (int i = 0; i < titlePatternDef.Count; i++) 
+			{
+				_titlePattern[i] = _parts[(int)titlePatternDef[i]];
+			}
 		}
 
@@ -134,8 +151,10 @@
 		}
 
-		public void DrawPattern(Graphics g, PatternSuite suite, int no)
-		{
-			Part[] pattern = _patternSuites[(int)suite][no];
-			foreach (Part part in pattern)
+		public Image TitleImage()
+		{
+			Bitmap image = new Bitmap(ImageWidth, ImageHeight);
+			Graphics g = Graphics.FromImage(image);
+
+			foreach (Part part in _titlePattern)
 			{
 				g.DrawImage(part.Image,
@@ -143,11 +162,38 @@
 					part.Image.Size.Width, part.Image.Size.Height);
 			}
-		}
-
-		public Image PatternImage(PatternSuite suite, int no)
-		{
-			Bitmap image = new Bitmap(128, 128);
+
+			g.Dispose();
+			return image;
+		}
+
+		public void DrawPatternImage(Graphics g, PatternSuite suite, int no, int markers)
+		{
+			Part[] pattern = _patternSuites[(int)suite][no];
+			foreach (Part part in pattern)
+			{
+				g.DrawImage(part.Image,
+					part.Point.X, part.Point.Y,
+					part.Image.Size.Width, part.Image.Size.Height);
+			}
+
+			if (markers != 0) {
+				for (int i = 0; i < 8; i++)
+				{
+					if ((markers & (1 << i)) != 0)
+					{
+						Part part = _markers[i];
+						g.DrawImage(part.Image,
+							part.Point.X, part.Point.Y,
+							part.Image.Size.Width, part.Image.Size.Height);
+					}
+				}
+			}
+		}
+
+		public Image PatternImage(PatternSuite suite, int no, int markers)
+		{
+			Bitmap image = new Bitmap(ImageWidth, ImageHeight);
 			Graphics g = Graphics.FromImage(image);
-			DrawPattern(g, suite, no);
+			DrawPatternImage(g, suite, no, markers);
 			g.Dispose();
 			return image;
