1
0
Fork 0
forked from len0rd/rockbox

FS#12273 - use buflib for font storage. thanks to the testers :)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30589 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jonathan Gordon 2011-09-24 13:19:34 +00:00
parent f323300b82
commit aa0f4a4bbe
37 changed files with 410 additions and 404 deletions

View file

@ -1016,7 +1016,6 @@ static bool browse_fonts( char *dst, int dst_size )
size_t siz;
reset_font = true;
rb->snprintf( bbuf, MAX_PATH, FONT_DIR "/%s", e->name );
rb->font_load(NULL, bbuf );
rb->font_getstringsize( e->name, &fw, &fh, FONT_UI );
if( fw > LCD_WIDTH ) fw = LCD_WIDTH;
siz = (sizeof(struct font_preview) + fw*fh*FB_DATA_SZ+3) & ~3;
@ -1083,7 +1082,7 @@ static bool browse_fonts( char *dst, int dst_size )
li = tree->filesindir-1;
if( reset_font )
{
rb->font_load(NULL, bbuf_s );
// fixme rb->font_load(NULL, bbuf_s );
reset_font = false;
}
if( lvi-fvi+1 < tree->filesindir )
@ -1636,6 +1635,7 @@ static void show_grid( bool update )
static void draw_text( int x, int y )
{
int selected = 0;
int current_font_id = rb->global_status->font_id[SCREEN_MAIN];
buffer->text.text[0] = '\0';
buffer->text.font[0] = '\0';
while( 1 )
@ -1648,9 +1648,12 @@ static void draw_text( int x, int y )
break;
case TEXT_MENU_FONT:
if( browse_fonts( buffer->text.font, MAX_PATH ) )
if (current_font_id != rb->global_status->font_id[SCREEN_MAIN])
rb->font_unload(current_font_id);
if(browse_fonts( buffer->text.font, MAX_PATH ) )
{
rb->font_load(NULL, buffer->text.font );
current_font_id = rb->font_load(buffer->text.font );
rb->lcd_setfont(current_font_id);
}
break;
@ -1704,7 +1707,9 @@ static void draw_text( int x, int y )
rb->snprintf( buffer->text.font, MAX_PATH,
FONT_DIR "/%s.fnt",
rb->global_settings->font_file );
rb->font_load(NULL, buffer->text.font );
if (current_font_id != rb->global_status->font_id[SCREEN_MAIN])
rb->font_unload(current_font_id);
rb->lcd_setfont(FONT_UI);
}
return;
}