aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Zongker <dougz@android.com>2014-04-04 13:48:33 -0700
committerDoug Zongker <dougz@android.com>2014-04-04 13:48:33 -0700
commit9551cf912180665a85f515c16d6412bb8ea2bf98 (patch)
tree2a09c6db6a26445ef7992d96ee396965ee403308
parent8d9d3d5cbe240d09db10d08956d152dce934e892 (diff)
downloadbootable_recovery-9551cf912180665a85f515c16d6412bb8ea2bf98.zip
bootable_recovery-9551cf912180665a85f515c16d6412bb8ea2bf98.tar.gz
bootable_recovery-9551cf912180665a85f515c16d6412bb8ea2bf98.tar.bz2
make density-specific recovery assets
Provide different recovery UI resources for different display densities. Right now only the text images and the progress bars are rescaled; the main icon will get scaled when it's updated for QP. Lightly quantum-ify the rest of the recovery interface. (Light background, progress bars, etc.) Change-Id: Ia639c4ce8534b01bc843524efbc4b040c1cf38b3
-rw-r--r--res-hdpi/images/erasing_text.pngbin0 -> 20528 bytes
-rw-r--r--res-hdpi/images/error_text.pngbin0 -> 11684 bytes
-rw-r--r--res-hdpi/images/icon_error.png (renamed from res/images/icon_error.png)bin19306 -> 19306 bytes
-rw-r--r--res-hdpi/images/icon_installing.png (renamed from res/images/icon_installing.png)bin118562 -> 118562 bytes
-rw-r--r--res-hdpi/images/installing_text.pngbin0 -> 40946 bytes
-rw-r--r--res-hdpi/images/no_command_text.pngbin0 -> 25013 bytes
-rw-r--r--res-hdpi/images/progress_empty.pngbin0 -> 81 bytes
-rw-r--r--res-hdpi/images/progress_fill.pngbin0 -> 83 bytes
-rw-r--r--res-hdpi/images/stage_empty.png (renamed from res/images/stage_empty.png)bin322 -> 322 bytes
-rw-r--r--res-hdpi/images/stage_fill.png (renamed from res/images/stage_fill.png)bin258 -> 258 bytes
-rw-r--r--res-mdpi/images/erasing_text.pngbin0 -> 12208 bytes
-rw-r--r--res-mdpi/images/error_text.pngbin0 -> 7202 bytes
-rw-r--r--res-mdpi/images/icon_error.pngbin0 -> 19306 bytes
-rw-r--r--res-mdpi/images/icon_installing.pngbin0 -> 118562 bytes
-rw-r--r--res-mdpi/images/installing_text.pngbin0 -> 24575 bytes
-rw-r--r--res-mdpi/images/no_command_text.pngbin0 -> 14168 bytes
-rw-r--r--res-mdpi/images/progress_empty.pngbin0 -> 74 bytes
-rw-r--r--res-mdpi/images/progress_fill.pngbin0 -> 83 bytes
-rw-r--r--res-mdpi/images/stage_empty.pngbin0 -> 322 bytes
-rw-r--r--res-mdpi/images/stage_fill.pngbin0 -> 258 bytes
-rw-r--r--res-xhdpi/images/erasing_text.pngbin0 -> 29674 bytes
-rw-r--r--res-xhdpi/images/error_text.pngbin0 -> 16599 bytes
-rw-r--r--res-xhdpi/images/icon_error.pngbin0 -> 19306 bytes
-rw-r--r--res-xhdpi/images/icon_installing.pngbin0 -> 118562 bytes
-rw-r--r--res-xhdpi/images/installing_text.pngbin0 -> 63220 bytes
-rw-r--r--res-xhdpi/images/no_command_text.pngbin0 -> 37222 bytes
-rw-r--r--res-xhdpi/images/progress_empty.pngbin0 -> 84 bytes
-rw-r--r--res-xhdpi/images/progress_fill.pngbin0 -> 84 bytes
-rw-r--r--res-xhdpi/images/stage_empty.pngbin0 -> 322 bytes
-rw-r--r--res-xhdpi/images/stage_fill.pngbin0 -> 258 bytes
-rw-r--r--res-xxhdpi/images/erasing_text.pngbin0 -> 52598 bytes
-rw-r--r--res-xxhdpi/images/error_text.pngbin0 -> 27839 bytes
-rw-r--r--res-xxhdpi/images/icon_error.pngbin0 -> 19306 bytes
-rw-r--r--res-xxhdpi/images/icon_installing.pngbin0 -> 118562 bytes
-rw-r--r--res-xxhdpi/images/installing_text.pngbin0 -> 133331 bytes
-rw-r--r--res-xxhdpi/images/no_command_text.pngbin0 -> 63887 bytes
-rw-r--r--res-xxhdpi/images/progress_empty.pngbin0 -> 86 bytes
-rw-r--r--res-xxhdpi/images/progress_fill.pngbin0 -> 86 bytes
-rw-r--r--res-xxhdpi/images/stage_empty.pngbin0 -> 322 bytes
-rw-r--r--res-xxhdpi/images/stage_fill.pngbin0 -> 258 bytes
-rw-r--r--res-xxxhdpi/images/erasing_text.pngbin0 -> 85500 bytes
-rw-r--r--res-xxxhdpi/images/error_text.pngbin0 -> 40216 bytes
-rw-r--r--res-xxxhdpi/images/icon_error.pngbin0 -> 19306 bytes
-rw-r--r--res-xxxhdpi/images/icon_installing.pngbin0 -> 118562 bytes
-rw-r--r--res-xxxhdpi/images/installing_text.pngbin0 -> 184958 bytes
-rw-r--r--res-xxxhdpi/images/no_command_text.pngbin0 -> 109746 bytes
-rw-r--r--res-xxxhdpi/images/progress_empty.pngbin0 -> 90 bytes
-rw-r--r--res-xxxhdpi/images/progress_fill.pngbin0 -> 90 bytes
-rw-r--r--res-xxxhdpi/images/stage_empty.pngbin0 -> 322 bytes
-rw-r--r--res-xxxhdpi/images/stage_fill.pngbin0 -> 258 bytes
-rw-r--r--res/images/erasing_text.pngbin31491 -> 0 bytes
-rw-r--r--res/images/error_text.pngbin17504 -> 0 bytes
-rw-r--r--res/images/installing_text.pngbin66592 -> 0 bytes
-rw-r--r--res/images/no_command_text.pngbin40632 -> 0 bytes
-rw-r--r--res/images/progress_empty.pngbin118 -> 0 bytes
-rw-r--r--res/images/progress_fill.pngbin404 -> 0 bytes
-rw-r--r--screen_ui.cpp29
-rw-r--r--screen_ui.h3
58 files changed, 16 insertions, 16 deletions
diff --git a/res-hdpi/images/erasing_text.png b/res-hdpi/images/erasing_text.png
new file mode 100644
index 0000000..774244c
--- /dev/null
+++ b/res-hdpi/images/erasing_text.png
Binary files differ
diff --git a/res-hdpi/images/error_text.png b/res-hdpi/images/error_text.png
new file mode 100644
index 0000000..64a57ec
--- /dev/null
+++ b/res-hdpi/images/error_text.png
Binary files differ
diff --git a/res/images/icon_error.png b/res-hdpi/images/icon_error.png
index cb3d1ab..cb3d1ab 100644
--- a/res/images/icon_error.png
+++ b/res-hdpi/images/icon_error.png
Binary files differ
diff --git a/res/images/icon_installing.png b/res-hdpi/images/icon_installing.png
index c2c0201..c2c0201 100644
--- a/res/images/icon_installing.png
+++ b/res-hdpi/images/icon_installing.png
Binary files differ
diff --git a/res-hdpi/images/installing_text.png b/res-hdpi/images/installing_text.png
new file mode 100644
index 0000000..33b54f1
--- /dev/null
+++ b/res-hdpi/images/installing_text.png
Binary files differ
diff --git a/res-hdpi/images/no_command_text.png b/res-hdpi/images/no_command_text.png
new file mode 100644
index 0000000..9927ecb
--- /dev/null
+++ b/res-hdpi/images/no_command_text.png
Binary files differ
diff --git a/res-hdpi/images/progress_empty.png b/res-hdpi/images/progress_empty.png
new file mode 100644
index 0000000..b29d9be
--- /dev/null
+++ b/res-hdpi/images/progress_empty.png
Binary files differ
diff --git a/res-hdpi/images/progress_fill.png b/res-hdpi/images/progress_fill.png
new file mode 100644
index 0000000..4c5e66b
--- /dev/null
+++ b/res-hdpi/images/progress_fill.png
Binary files differ
diff --git a/res/images/stage_empty.png b/res-hdpi/images/stage_empty.png
index 251ec19..251ec19 100644
--- a/res/images/stage_empty.png
+++ b/res-hdpi/images/stage_empty.png
Binary files differ
diff --git a/res/images/stage_fill.png b/res-hdpi/images/stage_fill.png
index 1ab79e8..1ab79e8 100644
--- a/res/images/stage_fill.png
+++ b/res-hdpi/images/stage_fill.png
Binary files differ
diff --git a/res-mdpi/images/erasing_text.png b/res-mdpi/images/erasing_text.png
new file mode 100644
index 0000000..fd86c3f
--- /dev/null
+++ b/res-mdpi/images/erasing_text.png
Binary files differ
diff --git a/res-mdpi/images/error_text.png b/res-mdpi/images/error_text.png
new file mode 100644
index 0000000..f1b44c9
--- /dev/null
+++ b/res-mdpi/images/error_text.png
Binary files differ
diff --git a/res-mdpi/images/icon_error.png b/res-mdpi/images/icon_error.png
new file mode 100644
index 0000000..cb3d1ab
--- /dev/null
+++ b/res-mdpi/images/icon_error.png
Binary files differ
diff --git a/res-mdpi/images/icon_installing.png b/res-mdpi/images/icon_installing.png
new file mode 100644
index 0000000..c2c0201
--- /dev/null
+++ b/res-mdpi/images/icon_installing.png
Binary files differ
diff --git a/res-mdpi/images/installing_text.png b/res-mdpi/images/installing_text.png
new file mode 100644
index 0000000..064b2a3
--- /dev/null
+++ b/res-mdpi/images/installing_text.png
Binary files differ
diff --git a/res-mdpi/images/no_command_text.png b/res-mdpi/images/no_command_text.png
new file mode 100644
index 0000000..1f29b89
--- /dev/null
+++ b/res-mdpi/images/no_command_text.png
Binary files differ
diff --git a/res-mdpi/images/progress_empty.png b/res-mdpi/images/progress_empty.png
new file mode 100644
index 0000000..0883e00
--- /dev/null
+++ b/res-mdpi/images/progress_empty.png
Binary files differ
diff --git a/res-mdpi/images/progress_fill.png b/res-mdpi/images/progress_fill.png
new file mode 100644
index 0000000..c223871
--- /dev/null
+++ b/res-mdpi/images/progress_fill.png
Binary files differ
diff --git a/res-mdpi/images/stage_empty.png b/res-mdpi/images/stage_empty.png
new file mode 100644
index 0000000..251ec19
--- /dev/null
+++ b/res-mdpi/images/stage_empty.png
Binary files differ
diff --git a/res-mdpi/images/stage_fill.png b/res-mdpi/images/stage_fill.png
new file mode 100644
index 0000000..1ab79e8
--- /dev/null
+++ b/res-mdpi/images/stage_fill.png
Binary files differ
diff --git a/res-xhdpi/images/erasing_text.png b/res-xhdpi/images/erasing_text.png
new file mode 100644
index 0000000..f88e0e6
--- /dev/null
+++ b/res-xhdpi/images/erasing_text.png
Binary files differ
diff --git a/res-xhdpi/images/error_text.png b/res-xhdpi/images/error_text.png
new file mode 100644
index 0000000..c3a4cc6
--- /dev/null
+++ b/res-xhdpi/images/error_text.png
Binary files differ
diff --git a/res-xhdpi/images/icon_error.png b/res-xhdpi/images/icon_error.png
new file mode 100644
index 0000000..cb3d1ab
--- /dev/null
+++ b/res-xhdpi/images/icon_error.png
Binary files differ
diff --git a/res-xhdpi/images/icon_installing.png b/res-xhdpi/images/icon_installing.png
new file mode 100644
index 0000000..c2c0201
--- /dev/null
+++ b/res-xhdpi/images/icon_installing.png
Binary files differ
diff --git a/res-xhdpi/images/installing_text.png b/res-xhdpi/images/installing_text.png
new file mode 100644
index 0000000..a4dacd0
--- /dev/null
+++ b/res-xhdpi/images/installing_text.png
Binary files differ
diff --git a/res-xhdpi/images/no_command_text.png b/res-xhdpi/images/no_command_text.png
new file mode 100644
index 0000000..eb34e94
--- /dev/null
+++ b/res-xhdpi/images/no_command_text.png
Binary files differ
diff --git a/res-xhdpi/images/progress_empty.png b/res-xhdpi/images/progress_empty.png
new file mode 100644
index 0000000..429797b
--- /dev/null
+++ b/res-xhdpi/images/progress_empty.png
Binary files differ
diff --git a/res-xhdpi/images/progress_fill.png b/res-xhdpi/images/progress_fill.png
new file mode 100644
index 0000000..7af35aa
--- /dev/null
+++ b/res-xhdpi/images/progress_fill.png
Binary files differ
diff --git a/res-xhdpi/images/stage_empty.png b/res-xhdpi/images/stage_empty.png
new file mode 100644
index 0000000..251ec19
--- /dev/null
+++ b/res-xhdpi/images/stage_empty.png
Binary files differ
diff --git a/res-xhdpi/images/stage_fill.png b/res-xhdpi/images/stage_fill.png
new file mode 100644
index 0000000..1ab79e8
--- /dev/null
+++ b/res-xhdpi/images/stage_fill.png
Binary files differ
diff --git a/res-xxhdpi/images/erasing_text.png b/res-xxhdpi/images/erasing_text.png
new file mode 100644
index 0000000..c87fd52
--- /dev/null
+++ b/res-xxhdpi/images/erasing_text.png
Binary files differ
diff --git a/res-xxhdpi/images/error_text.png b/res-xxhdpi/images/error_text.png
new file mode 100644
index 0000000..486e951
--- /dev/null
+++ b/res-xxhdpi/images/error_text.png
Binary files differ
diff --git a/res-xxhdpi/images/icon_error.png b/res-xxhdpi/images/icon_error.png
new file mode 100644
index 0000000..cb3d1ab
--- /dev/null
+++ b/res-xxhdpi/images/icon_error.png
Binary files differ
diff --git a/res-xxhdpi/images/icon_installing.png b/res-xxhdpi/images/icon_installing.png
new file mode 100644
index 0000000..c2c0201
--- /dev/null
+++ b/res-xxhdpi/images/icon_installing.png
Binary files differ
diff --git a/res-xxhdpi/images/installing_text.png b/res-xxhdpi/images/installing_text.png
new file mode 100644
index 0000000..ef6e8f3
--- /dev/null
+++ b/res-xxhdpi/images/installing_text.png
Binary files differ
diff --git a/res-xxhdpi/images/no_command_text.png b/res-xxhdpi/images/no_command_text.png
new file mode 100644
index 0000000..cc98bb1
--- /dev/null
+++ b/res-xxhdpi/images/no_command_text.png
Binary files differ
diff --git a/res-xxhdpi/images/progress_empty.png b/res-xxhdpi/images/progress_empty.png
new file mode 100644
index 0000000..57c8235
--- /dev/null
+++ b/res-xxhdpi/images/progress_empty.png
Binary files differ
diff --git a/res-xxhdpi/images/progress_fill.png b/res-xxhdpi/images/progress_fill.png
new file mode 100644
index 0000000..0f36f48
--- /dev/null
+++ b/res-xxhdpi/images/progress_fill.png
Binary files differ
diff --git a/res-xxhdpi/images/stage_empty.png b/res-xxhdpi/images/stage_empty.png
new file mode 100644
index 0000000..251ec19
--- /dev/null
+++ b/res-xxhdpi/images/stage_empty.png
Binary files differ
diff --git a/res-xxhdpi/images/stage_fill.png b/res-xxhdpi/images/stage_fill.png
new file mode 100644
index 0000000..1ab79e8
--- /dev/null
+++ b/res-xxhdpi/images/stage_fill.png
Binary files differ
diff --git a/res-xxxhdpi/images/erasing_text.png b/res-xxxhdpi/images/erasing_text.png
new file mode 100644
index 0000000..612e7a3
--- /dev/null
+++ b/res-xxxhdpi/images/erasing_text.png
Binary files differ
diff --git a/res-xxxhdpi/images/error_text.png b/res-xxxhdpi/images/error_text.png
new file mode 100644
index 0000000..50d2fad
--- /dev/null
+++ b/res-xxxhdpi/images/error_text.png
Binary files differ
diff --git a/res-xxxhdpi/images/icon_error.png b/res-xxxhdpi/images/icon_error.png
new file mode 100644
index 0000000..cb3d1ab
--- /dev/null
+++ b/res-xxxhdpi/images/icon_error.png
Binary files differ
diff --git a/res-xxxhdpi/images/icon_installing.png b/res-xxxhdpi/images/icon_installing.png
new file mode 100644
index 0000000..c2c0201
--- /dev/null
+++ b/res-xxxhdpi/images/icon_installing.png
Binary files differ
diff --git a/res-xxxhdpi/images/installing_text.png b/res-xxxhdpi/images/installing_text.png
new file mode 100644
index 0000000..9bd093b
--- /dev/null
+++ b/res-xxxhdpi/images/installing_text.png
Binary files differ
diff --git a/res-xxxhdpi/images/no_command_text.png b/res-xxxhdpi/images/no_command_text.png
new file mode 100644
index 0000000..6354e6a
--- /dev/null
+++ b/res-xxxhdpi/images/no_command_text.png
Binary files differ
diff --git a/res-xxxhdpi/images/progress_empty.png b/res-xxxhdpi/images/progress_empty.png
new file mode 100644
index 0000000..ba25afb
--- /dev/null
+++ b/res-xxxhdpi/images/progress_empty.png
Binary files differ
diff --git a/res-xxxhdpi/images/progress_fill.png b/res-xxxhdpi/images/progress_fill.png
new file mode 100644
index 0000000..83b72b2
--- /dev/null
+++ b/res-xxxhdpi/images/progress_fill.png
Binary files differ
diff --git a/res-xxxhdpi/images/stage_empty.png b/res-xxxhdpi/images/stage_empty.png
new file mode 100644
index 0000000..251ec19
--- /dev/null
+++ b/res-xxxhdpi/images/stage_empty.png
Binary files differ
diff --git a/res-xxxhdpi/images/stage_fill.png b/res-xxxhdpi/images/stage_fill.png
new file mode 100644
index 0000000..1ab79e8
--- /dev/null
+++ b/res-xxxhdpi/images/stage_fill.png
Binary files differ
diff --git a/res/images/erasing_text.png b/res/images/erasing_text.png
deleted file mode 100644
index 441768a..0000000
--- a/res/images/erasing_text.png
+++ /dev/null
Binary files differ
diff --git a/res/images/error_text.png b/res/images/error_text.png
deleted file mode 100644
index 4ac6391..0000000
--- a/res/images/error_text.png
+++ /dev/null
Binary files differ
diff --git a/res/images/installing_text.png b/res/images/installing_text.png
deleted file mode 100644
index e1ac819..0000000
--- a/res/images/installing_text.png
+++ /dev/null
Binary files differ
diff --git a/res/images/no_command_text.png b/res/images/no_command_text.png
deleted file mode 100644
index a688f09..0000000
--- a/res/images/no_command_text.png
+++ /dev/null
Binary files differ
diff --git a/res/images/progress_empty.png b/res/images/progress_empty.png
deleted file mode 100644
index 7258183..0000000
--- a/res/images/progress_empty.png
+++ /dev/null
Binary files differ
diff --git a/res/images/progress_fill.png b/res/images/progress_fill.png
deleted file mode 100644
index becf87b..0000000
--- a/res/images/progress_fill.png
+++ /dev/null
Binary files differ
diff --git a/screen_ui.cpp b/screen_ui.cpp
index af58643..afe856c 100644
--- a/screen_ui.cpp
+++ b/screen_ui.cpp
@@ -87,7 +87,7 @@ ScreenRecoveryUI::ScreenRecoveryUI() :
void ScreenRecoveryUI::draw_background_locked(Icon icon)
{
pagesIdentical = false;
- gr_color(0, 0, 0, 255);
+ gr_color(250, 250, 250, 255);
gr_clear();
if (icon) {
@@ -123,7 +123,7 @@ void ScreenRecoveryUI::draw_background_locked(Icon icon)
}
}
- gr_color(255, 255, 255, 255);
+ gr_color(115, 115, 115, 255);
gr_texticon(textX, textY, text_surface);
}
}
@@ -148,7 +148,7 @@ void ScreenRecoveryUI::draw_progress_locked()
int dy = (3*gr_fb_height() + iconHeight - 2*height)/4;
// Erase behind the progress bar (in case this was a progress-only update)
- gr_color(0, 0, 0, 255);
+ gr_color(250, 250, 250, 255);
gr_fill(dx, dy, width, height);
if (progressBarType == DETERMINATE) {
@@ -179,20 +179,17 @@ void ScreenRecoveryUI::draw_progress_locked()
void ScreenRecoveryUI::SetColor(UIElement e) {
switch (e) {
case HEADER:
- gr_color(247, 0, 6, 255);
+ gr_color(0xff, 0x57, 0x22, 255); // Quantum "Deep Orange" 500
break;
case MENU:
case MENU_SEL_BG:
- gr_color(0, 106, 157, 255);
+ gr_color(0x67, 0x3a, 0xb7, 255); // Quantum "Deep Purple" 500
break;
case MENU_SEL_FG:
gr_color(255, 255, 255, 255);
break;
case LOG:
- gr_color(249, 194, 0, 255);
- break;
- case TEXT_FILL:
- gr_color(0, 0, 0, 160);
+ gr_color(0x3f, 0x51, 0xb5, 255); // Quantum "Indigo" 500
break;
default:
gr_color(255, 255, 255, 255);
@@ -208,7 +205,7 @@ void ScreenRecoveryUI::draw_screen_locked()
draw_background_locked(currentIcon);
draw_progress_locked();
} else {
- gr_color(0, 0, 0, 255);
+ gr_color(250, 250, 250, 255);
gr_clear();
int y = 0;
@@ -222,13 +219,13 @@ void ScreenRecoveryUI::draw_screen_locked()
if (i == menu_top + menu_sel) {
// draw the highlight bar
SetColor(MENU_SEL_BG);
- gr_fill(0, y-2, gr_fb_width(), y+char_height+2);
+ gr_fill(0, y-2+kTextYOffset, gr_fb_width(), y+char_height+2+kTextYOffset);
// white text of selected item
SetColor(MENU_SEL_FG);
- if (menu[i][0]) gr_text(4, y, menu[i], 1);
+ if (menu[i][0]) gr_text(kTextXOffset, y+kTextYOffset, menu[i], 1);
SetColor(MENU);
} else {
- if (menu[i][0]) gr_text(4, y, menu[i], i < menu_top);
+ if (menu[i][0]) gr_text(kTextXOffset, y+kTextYOffset, menu[i], i < menu_top);
}
y += char_height+4;
}
@@ -249,7 +246,7 @@ void ScreenRecoveryUI::draw_screen_locked()
for (int ty = gr_fb_height() - char_height, count = 0;
ty > y+2 && count < text_rows;
ty -= char_height, ++count) {
- gr_text(4, ty, text[row], 0);
+ gr_text(kTextXOffset, ty+kTextYOffset, text[row], 0);
--row;
if (row < 0) row = text_rows-1;
}
@@ -350,11 +347,11 @@ void ScreenRecoveryUI::Init()
gr_font_size(&char_width, &char_height);
text_col = text_row = 0;
- text_rows = gr_fb_height() / char_height;
+ text_rows = (gr_fb_height() - 2 * kTextYOffset) / char_height;
if (text_rows > kMaxRows) text_rows = kMaxRows;
text_top = 1;
- text_cols = gr_fb_width() / char_width;
+ text_cols = (gr_fb_width() - 2 * kTextXOffset) / char_width;
if (text_cols > kMaxCols - 1) text_cols = kMaxCols - 1;
backgroundIcon[NONE] = NULL;
diff --git a/screen_ui.h b/screen_ui.h
index 92e4795..2e01acd 100644
--- a/screen_ui.h
+++ b/screen_ui.h
@@ -87,6 +87,9 @@ class ScreenRecoveryUI : public RecoveryUI {
static const int kMaxCols = 96;
static const int kMaxRows = 96;
+ static const int kTextXOffset = 8;
+ static const int kTextYOffset = 4;
+
// Log text overlay, displayed when a magic key is pressed
char text[kMaxRows][kMaxCols];
int text_cols, text_rows;