Ticket #1552: boxes.c.diff

File boxes.c.diff, 3.6 KB (added by dmartina, 15 years ago)
  • src/boxes.c

    old new  
    6868#include "../vfs/gc.h" 
    6969#endif 
    7070 
    71 static int DISPLAY_X = 45, DISPLAY_Y = 14; 
    7271 
    7372static Dlg_head *dd; 
    7473static WRadio *my_radio; 
     
    142141display_init (int radio_sel, char *init_text, int _check_status, 
    143142              char **_status) 
    144143{ 
    145     static const char *display_title = N_("Listing mode"); 
     144    static int DISPLAY_X = 48, DISPLAY_Y = 15; 
     145 
    146146    static int i18n_displays_flag; 
     147    const char *display_title = _("Listing mode"); 
    147148    const char *user_mini_status = _("user &Mini status"); 
    148149    const char *ok_button = _("&OK"); 
    149150    const char *cancel_button = _("&Cancel"); 
    150151 
    151     static int button_start = 30; 
     152    static int ok_start = 30; 
     153    static int cancel_start = 40; 
    152154 
    153155    displays_status = _status; 
    154156 
    155157    if (!i18n_displays_flag) { 
    156         int i, l, maxlen = 0; 
     158        int i, l, maxlen; 
     159        int ok_size = 6, cancel_size = 4;       /* Button extras. */ 
     160        int button_gap; 
    157161        const char *cp; 
    158162 
    159         display_title = _(display_title); 
     163        maxlen = 0; 
    160164        for (i = 0; i < LIST_TYPES; i++) { 
    161165            displays[i] = _(displays[i]); 
    162             if ((l = str_term_width1 (displays[i])) > maxlen) 
     166            l = str_term_width1 (displays[i]); 
     167            if (l > maxlen) 
    163168                maxlen = l; 
    164169        } 
    165  
    166         i = str_term_width1 (ok_button) + 5; 
    167         l = str_term_width1 (cancel_button) + 3; 
    168         l = max (i, l); 
    169  
    170         i = maxlen + l + 16; 
    171         if (i > DISPLAY_X) 
    172             DISPLAY_X = i; 
    173  
    174         i = str_term_width1 (user_mini_status) + 13; 
    175         if (i > DISPLAY_X) 
    176             DISPLAY_X = i; 
    177  
    178         i = str_term_width1 (display_title) + 10; 
    179         if (i > DISPLAY_X) 
    180             DISPLAY_X = i; 
    181  
    182         button_start = DISPLAY_X - l - 5; 
     170        maxlen += 11; 
     171        if (maxlen > DISPLAY_X) 
     172            DISPLAY_X = maxlen; 
     173 
     174        maxlen = str_term_width1 (user_mini_status) + 11; 
     175        if (maxlen > DISPLAY_X) 
     176            DISPLAY_X = maxlen; 
     177 
     178        maxlen = str_term_width1 (display_title) + 10; 
     179        if (maxlen > DISPLAY_X) 
     180            DISPLAY_X = maxlen; 
     181 
     182        ok_size += str_term_width1 (ok_button); 
     183        cancel_size += str_term_width1 (cancel_button); 
     184        maxlen = ok_size + cancel_size + 6 ; 
     185        if (maxlen > DISPLAY_X) 
     186            DISPLAY_X = maxlen; 
     187 
     188        button_gap = ( DISPLAY_X - 10 - ok_size - cancel_size ) / 3; 
     189        ok_start = button_gap + 5; 
     190        cancel_start = DISPLAY_X - button_gap - cancel_size - 4; 
    183191 
    184192        /* get hotkey of user-defined format string */ 
    185193        cp = strchr (displays[USER_TYPE], '&'); 
     
    193201                     DLG_CENTER | DLG_REVERSE); 
    194202 
    195203    add_widget (dd, 
    196                 button_new (4, button_start, B_CANCEL, NORMAL_BUTTON, 
     204                button_new (DISPLAY_Y - 3, cancel_start, B_CANCEL, NORMAL_BUTTON, 
    197205                            cancel_button, 0)); 
    198206 
    199207    add_widget (dd, 
    200                 button_new (3, button_start, B_ENTER, DEFPUSH_BUTTON, 
     208                button_new (DISPLAY_Y - 3, ok_start, B_ENTER, DEFPUSH_BUTTON, 
    201209                            ok_button, 0)); 
    202210 
    203211    status = 
    204         input_new (10, 9, INPUT_COLOR, DISPLAY_X - 14, _status[radio_sel], 
     212        input_new (10, 8, INPUT_COLOR, DISPLAY_X - 12, _status[radio_sel], 
    205213                   "mini-input", INPUT_COMPLETE_DEFAULT); 
    206214    add_widget (dd, status); 
    207215    input_set_point (status, 0); 
    208216 
    209217    check_status = 
    210         check_new (9, 5, _check_status, user_mini_status); 
     218        check_new (9, 4, _check_status, user_mini_status); 
    211219    add_widget (dd, check_status); 
    212220 
    213221    user = 
    214         input_new (7, 9, INPUT_COLOR, DISPLAY_X - 14, init_text, 
     222        input_new (7, 8, INPUT_COLOR, DISPLAY_X - 12, init_text, 
    215223                   "user-fmt-input", INPUT_COMPLETE_DEFAULT); 
    216224    add_widget (dd, user); 
    217225    input_set_point (user, 0); 
    218226 
    219     my_radio = radio_new (3, 5, LIST_TYPES, displays); 
     227    my_radio = radio_new (3, 4, LIST_TYPES, displays); 
    220228    my_radio->sel = my_radio->pos = current_mode; 
    221229    add_widget (dd, my_radio); 
    222230}