diff options
author | Andrey Nazarov <skuller@skuller.net> | 2007-12-11 13:45:50 +0000 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2007-12-11 13:45:50 +0000 |
commit | 71df40aa90c690d6348ec48f9e3d128fb52ba0bf (patch) | |
tree | f743f65d0534622965fd3587cf3899e23cd65b36 /source/ui_menu.c | |
parent | e6358d790aa66b2c93584185158e7466f3ec166f (diff) |
Made Address Book menu resizable.
Properly reset `ui_background' to black.
Diffstat (limited to 'source/ui_menu.c')
-rw-r--r-- | source/ui_menu.c | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/source/ui_menu.c b/source/ui_menu.c index 30a9a21..118a47e 100644 --- a/source/ui_menu.c +++ b/source/ui_menu.c @@ -235,22 +235,22 @@ Field_Init ================= */ static void Field_Init( menuField_t *f ) { - f->generic.uiFlags &= ~( UI_LEFT | UI_RIGHT ); + int w = f->field.visibleChars * CHAR_WIDTH; - f->generic.rect.x = f->generic.x + LCOLUMN_OFFSET; - f->generic.rect.y = f->generic.y; + f->generic.uiFlags &= ~( UI_LEFT | UI_RIGHT ); if( f->generic.name ) { + f->generic.rect.x = f->generic.x + LCOLUMN_OFFSET; + f->generic.rect.y = f->generic.y; UI_StringDimensions( &f->generic.rect, f->generic.uiFlags | UI_RIGHT, f->generic.name ); + f->generic.rect.width += RCOLUMN_OFFSET + w; } else { - f->generic.rect.width = 0; - f->generic.rect.height = CHAR_HEIGHT; + f->generic.rect.x = f->generic.x - w / 2; + f->generic.rect.y = f->generic.y; + f->generic.rect.width = w; + f->generic.rect.height = CHAR_HEIGHT; } - - f->generic.rect.width += RCOLUMN_OFFSET + - f->field.visibleChars * CHAR_WIDTH; - } @@ -260,23 +260,28 @@ Field_Draw ================= */ static void Field_Draw( menuField_t *f ) { - uint32 flags; + uint32 flags = f->generic.uiFlags; + + if( f->generic.flags & QMF_HASFOCUS ) { + flags |= UI_DRAWCURSOR; + } if( f->generic.name ) { UI_DrawString( f->generic.x + LCOLUMN_OFFSET, f->generic.y, NULL, f->generic.uiFlags | UI_RIGHT | UI_ALTCOLOR, f->generic.name ); - } - ref.DrawFillEx( f->generic.x + RCOLUMN_OFFSET, f->generic.y, - f->field.visibleChars * CHAR_WIDTH, CHAR_HEIGHT, colorField ); + ref.DrawFillEx( f->generic.x + RCOLUMN_OFFSET, f->generic.y - 1, + f->field.visibleChars * CHAR_WIDTH, CHAR_HEIGHT + 2, colorField ); - flags = f->generic.uiFlags; - if( f->generic.flags & QMF_HASFOCUS ) { - flags |= UI_DRAWCURSOR; - } + IF_Draw( &f->field, f->generic.x + RCOLUMN_OFFSET, f->generic.y, + flags, uis.fontHandle ); + } else { + ref.DrawFillEx( f->generic.rect.x, f->generic.rect.y - 1, + f->generic.rect.width, CHAR_HEIGHT + 2, colorField ); - IF_Draw( &f->field, f->generic.x + RCOLUMN_OFFSET, f->generic.y, - flags, uis.fontHandle ); + IF_Draw( &f->field, f->generic.rect.x, f->generic.rect.y, + flags, uis.fontHandle ); + } } /* @@ -293,7 +298,7 @@ static int Field_Key( menuField_t *f, int key ) { /* ================= -Field_Key +Field_Char ================= */ static int Field_Char( menuField_t *f, int key ) { |