Index: trunk/src/gui/gui_ascii_renderer.cc
===================================================================
--- trunk/src/gui/gui_ascii_renderer.cc	(revision 501)
+++ trunk/src/gui/gui_ascii_renderer.cc	(revision 514)
@@ -15,10 +15,10 @@
 struct ascii_render_data : public render_data
 {
-	ascii_render_data() {}
-	bool   clear;
-	bool   border;
-	char   border_chars[8];
-	uint32 border_color;
-	uint32 text_color;
+	bool       clear;
+	bool       border;
+	char       border_chars[8];
+	ivec2      padding;
+	term_color border_color;
+	term_color text_color;
 };
 
@@ -38,5 +38,4 @@
 		er->border     = false;
 		er->clear      = false;
-		er->text_color = 0;
 		e->m_render_data = er;
 	}
@@ -57,6 +56,10 @@
 		
 		m_style.get( e, "ascii_color", selector, color );
-		er->text_color = uint32( color );
+		er->text_color = term_color::color( color );
 		er->border     = false;
+		vec4 padding;
+		m_style.get( e, "ascii_padding", selector, padding );
+		er->padding    = ivec2( int( padding.x ), int( padding.y ) );
+
 		if ( m_style.get( e, "ascii_border", selector, path ) )
 		{
@@ -65,5 +68,5 @@
 			int border_color = 0;
 			if ( m_style.get( e, "ascii_border_color", selector, border_color ) )
-				er->border_color = uint32( border_color );
+				er->border_color = term_color::color( border_color );
 			for ( uint32 i = 0; i < 8 && i < path.length(); i++ )
 				er->border_chars[i] = path[i];
@@ -76,31 +79,31 @@
 	ascii_render_data* er = static_cast< ascii_render_data* >( e->m_render_data );
 	rectangle abs = e->m_absolute;
-	if ( er->clear ) m_terminal->clear( abs );
+	if ( er->clear ) m_terminal->clear( abs, term_color::LIGHTGRAY, term_color() );
 	if ( er->border )
 	{
 		for ( int x = 0; x < abs.get_width(); ++x )
 		{
-			m_terminal->print( position( abs.ul.x + x, abs.ul.y ), er->border_color, er->border_chars[0] );
-			m_terminal->print( position( abs.ul.x + x, abs.lr.y ), er->border_color, er->border_chars[1] );
+			m_terminal->print( position( abs.ul.x + x, abs.ul.y ), er->border_color, term_color(), er->border_chars[0] );
+			m_terminal->print( position( abs.ul.x + x, abs.lr.y ), er->border_color, term_color(), er->border_chars[1] );
 		}
 
 		for ( int y = 0; y < abs.get_height(); ++y )
 		{
-			m_terminal->print( position( abs.ul.x, abs.ul.y + y ), er->border_color, er->border_chars[2] );
-			m_terminal->print( position( abs.lr.x, abs.ul.y + y ), er->border_color, er->border_chars[3] );
+			m_terminal->print( position( abs.ul.x, abs.ul.y + y ), er->border_color, term_color(), er->border_chars[2] );
+			m_terminal->print( position( abs.lr.x, abs.ul.y + y ), er->border_color, term_color(), er->border_chars[3] );
 		}
 
-		m_terminal->print( abs.ul,   er->border_color, er->border_chars[4] );
-		m_terminal->print( abs.ur(), er->border_color, er->border_chars[5] );
-		m_terminal->print( abs.ll(), er->border_color, er->border_chars[6] );
-		m_terminal->print( abs.lr,   er->border_color, er->border_chars[7] );
+		m_terminal->print( abs.ul,   er->border_color, term_color(), er->border_chars[4] );
+		m_terminal->print( abs.ur(), er->border_color, term_color(), er->border_chars[5] );
+		m_terminal->print( abs.ll(), er->border_color, term_color(), er->border_chars[6] );
+		m_terminal->print( abs.lr,   er->border_color, term_color(), er->border_chars[7] );
 		m_terminal->update();
 	}
 	if ( !e->m_text.empty() )
 	{
-		position p = abs.ul;
+		position p = abs.ul + er->padding;
 		for ( char c : e->m_text )
 		{
-			m_terminal->print( p, er->text_color, c );
+			m_terminal->print( p, er->text_color, term_color(), c );
 			++p.x;
 		}
