summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorMarkus Braun <markus.braun@krawel.de>2002-08-20 20:32:08 +0000
committerMarkus Braun <markus.braun@krawel.de>2002-08-20 20:32:08 +0000
commit11d208ca855b94e9ae3da8adf0964d1621e42522 (patch)
tree9f2242b52821914be22e7afcaf2fb8c9decf4ccd /apps
parent861eac8aea305832600bee974fd0ea24f2791e75 (diff)
downloadrockbox-11d208ca855b94e9ae3da8adf0964d1621e42522.tar.gz
rockbox-11d208ca855b94e9ae3da8adf0964d1621e42522.zip
calculate the string width for numerical volume display and time display in
status bar. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1828 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/recorder/icons.c36
-rw-r--r--apps/recorder/icons.h4
2 files changed, 35 insertions, 5 deletions
diff --git a/apps/recorder/icons.c b/apps/recorder/icons.c
index e094a12400..bac719e0f1 100644
--- a/apps/recorder/icons.c
+++ b/apps/recorder/icons.c
@@ -209,6 +209,10 @@ void statusbar_icon_volume(int percent)
209 int volume; 209 int volume;
210 int step=0; 210 int step=0;
211 char buffer[4]; 211 char buffer[4];
212 unsigned int width, height;
213#if defined(LOADABLE_FONTS)
214 unsigned char *font;
215#endif
212 static long switch_tick; 216 static long switch_tick;
213 static int last_volume; 217 static int last_volume;
214 218
@@ -231,8 +235,19 @@ void statusbar_icon_volume(int percent)
231 /* display volume lever numerical? */ 235 /* display volume lever numerical? */
232 if (TIME_BEFORE(current_tick,switch_tick)) { 236 if (TIME_BEFORE(current_tick,switch_tick)) {
233 snprintf(buffer, sizeof(buffer), "%2d", percent); 237 snprintf(buffer, sizeof(buffer), "%2d", percent);
234 lcd_putsxy(ICON_VOLUME_X_POS + ICON_VOLUME_WIDTH / 2 - 238#if defined(LCD_PROPFONTS)
235 6*strlen(buffer)/2, STATUSBAR_Y_POS, buffer, 0); 239 lcd_getstringsize(buffer, 0, &width, &height);
240 width += strlen(buffer) - 1;
241#elif defined(LOADABLE_FONTS)
242 font = lcd_getcurrentldfont();
243 lcd_getstringsize(buffer, font, &width, &height);
244#else
245 width = 6*strlen(buffer);
246 height = 8;
247#endif
248 if (height <= STATUSBAR_HEIGHT)
249 lcd_putsxy(ICON_VOLUME_X_POS + ICON_VOLUME_WIDTH / 2 -
250 width/2, STATUSBAR_Y_POS, buffer, 0);
236 } 251 }
237 else { /* display volume bar */ 252 else { /* display volume bar */
238 volume = volume * 14 / 100; 253 volume = volume * 14 / 100;
@@ -290,6 +305,10 @@ void statusbar_time(void)
290{ 305{
291 int hour,minute; 306 int hour,minute;
292 unsigned char buffer[6]; 307 unsigned char buffer[6];
308 unsigned int width, height;
309#if defined(LOADABLE_FONTS)
310 unsigned char *font;
311#endif
293 312
294 hour = rtc_read(0x03); 313 hour = rtc_read(0x03);
295 minute = rtc_read(0x02); 314 minute = rtc_read(0x02);
@@ -299,6 +318,17 @@ void statusbar_time(void)
299 hour & 0x0f, 318 hour & 0x0f,
300 (minute & 0xf0) >> 4, 319 (minute & 0xf0) >> 4,
301 minute & 0x0f); 320 minute & 0x0f);
302 lcd_putsxy(TIME_X_POS, STATUSBAR_Y_POS, buffer, 0); 321#if defined(LCD_PROPFONTS)
322 lcd_getstringsize(buffer, 0, &width, &height);
323 width += strlen(buffer) - 1;
324#elif defined(LOADABLE_FONTS)
325 font = lcd_getcurrentldfont();
326 lcd_getstringsize(buffer, font, &width, &height);
327#else
328 width = 6*strlen(buffer);
329 height = 8;
330#endif
331 if (height <= STATUSBAR_HEIGHT)
332 lcd_putsxy(TIME_X_END - width, STATUSBAR_Y_POS, buffer, 0);
303} 333}
304#endif 334#endif
diff --git a/apps/recorder/icons.h b/apps/recorder/icons.h
index da94c2269a..ff6a011b98 100644
--- a/apps/recorder/icons.h
+++ b/apps/recorder/icons.h
@@ -45,7 +45,7 @@ extern unsigned char slider_bar[];
45#define ICON_PLUG_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+2 45#define ICON_PLUG_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+2
46#define ICON_PLUG_WIDTH 7 46#define ICON_PLUG_WIDTH 7
47#define ICON_VOLUME_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+2+2 47#define ICON_VOLUME_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+2+2
48#define ICON_VOLUME_WIDTH 14 48#define ICON_VOLUME_WIDTH 16
49#define ICON_PLAY_STATE_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+2+2+2 49#define ICON_PLAY_STATE_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+2+2+2
50#define ICON_PLAY_STATE_WIDTH 7 50#define ICON_PLAY_STATE_WIDTH 7
51#define ICON_PLAY_MODE_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+ICON_PLAY_STATE_WIDTH+2+2+2+2 51#define ICON_PLAY_MODE_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+ICON_PLAY_STATE_WIDTH+2+2+2+2
@@ -54,7 +54,7 @@ extern unsigned char slider_bar[];
54#define ICON_SHUFFLE_WIDTH 7 54#define ICON_SHUFFLE_WIDTH 7
55#define LOCK_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+ICON_PLAY_STATE_WIDTH+ICON_PLAY_MODE_WIDTH+ICON_SHUFFLE_WIDTH+2+2+2+2+2+2 55#define LOCK_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+ICON_PLAY_STATE_WIDTH+ICON_PLAY_MODE_WIDTH+ICON_SHUFFLE_WIDTH+2+2+2+2+2+2
56#define LOCK_WIDTH 5 56#define LOCK_WIDTH 5
57#define TIME_X_POS STATUSBAR_WIDTH-5*6-1 57#define TIME_X_END STATUSBAR_WIDTH-1
58 58
59/* Symbolic names for icons */ 59/* Symbolic names for icons */
60enum 60enum