Skip to content

Commit 4832f10

Browse files
committed
filemanager/achown: refactoring.
* (advanced_chown_but): don't store button width. Instead, call button_get_width() where needed. * (advanced_chown_init): sync with modified advanced_chown_but. * (advanced_chown_dlg_create): create all buttons in a single loop. Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
1 parent b5065bd commit 4832f10

File tree

1 file changed

+24
-44
lines changed

1 file changed

+24
-44
lines changed

src/filemanager/achown.c

Lines changed: 24 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -74,19 +74,18 @@ static struct
7474
int ret_cmd;
7575
button_flags_t flags;
7676
int x;
77-
int len;
7877
const char *text;
7978
} advanced_chown_but[BUTTONS] = {
80-
{ 0, B_ENTER, NARROW_BUTTON, 3, 0, " " },
81-
{ 0, B_ENTER, NARROW_BUTTON, 11, 0, " " },
82-
{ 0, B_ENTER, NARROW_BUTTON, 19, 0, " " },
83-
{ 0, B_ENTER, NARROW_BUTTON, 29, 0, "" },
84-
{ 0, B_ENTER, NARROW_BUTTON, 47, 0, "" },
85-
86-
{ 0, B_SETALL, NORMAL_BUTTON, 0, 0, N_ ("Set &all") },
87-
{ 0, B_SKIP, NORMAL_BUTTON, 0, 0, N_ ("S&kip") },
88-
{ 0, B_ENTER, DEFPUSH_BUTTON, 0, 0, N_ ("&Set") },
89-
{ 0, B_CANCEL, NORMAL_BUTTON, 0, 0, N_ ("&Cancel") },
79+
{ 0, B_ENTER, NARROW_BUTTON, 3, " " },
80+
{ 0, B_ENTER, NARROW_BUTTON, 11, " " },
81+
{ 0, B_ENTER, NARROW_BUTTON, 19, " " },
82+
{ 0, B_ENTER, NARROW_BUTTON, 29, "" },
83+
{ 0, B_ENTER, NARROW_BUTTON, 47, "" },
84+
85+
{ 0, B_SETALL, NORMAL_BUTTON, 0, N_ ("Set &all") },
86+
{ 0, B_SKIP, NORMAL_BUTTON, 0, N_ ("S&kip") },
87+
{ 0, B_ENTER, DEFPUSH_BUTTON, 0, N_ ("&Set") },
88+
{ 0, B_CANCEL, NORMAL_BUTTON, 0, N_ ("&Cancel") },
9089
};
9190

9291
static int current_file;
@@ -112,23 +111,16 @@ static void
112111
advanced_chown_init (void)
113112
{
114113
static gboolean i18n = FALSE;
115-
int i;
116114

117115
if (i18n)
118116
return;
119117

120118
i18n = TRUE;
121119

122-
for (i = BUTTONS_PERM; i < BUTTONS; i++)
123-
{
124120
#ifdef ENABLE_NLS
121+
for (int i = BUTTONS_PERM; i < BUTTONS; i++)
125122
advanced_chown_but[i].text = _ (advanced_chown_but[i].text);
126123
#endif
127-
128-
advanced_chown_but[i].len = str_term_width1 (advanced_chown_but[i].text) + 3;
129-
if (advanced_chown_but[i].flags == DEFPUSH_BUTTON)
130-
advanced_chown_but[i].len += 2; // "<>"
131-
}
132124
}
133125

134126
/* --------------------------------------------------------------------------------------------- */
@@ -776,36 +768,24 @@ advanced_chown_dlg_create (WPanel *panel)
776768
group_add_widget (ch_grp, l_mode);
777769

778770
y = BY + 3;
779-
if (!single_set)
771+
772+
for (i = single_set ? BUTTONS_PERM + 2 : BUTTONS_PERM; i < BUTTONS; i++, y++)
780773
{
781-
i = BUTTONS_PERM;
774+
WButton *b;
775+
782776
group_add_widget (ch_grp, hline_new (y++, -1, -1));
783-
advanced_chown_but[i].id = group_add_widget (
784-
ch_grp,
785-
button_new (y, WIDGET (ch_dlg)->rect.cols / 2 - advanced_chown_but[i].len,
786-
advanced_chown_but[i].ret_cmd, advanced_chown_but[i].flags,
787-
advanced_chown_but[i].text, NULL));
777+
778+
b = button_new (y, 1, advanced_chown_but[i].ret_cmd, advanced_chown_but[i].flags,
779+
advanced_chown_but[i].text, NULL);
780+
WIDGET (b)->rect.x = WIDGET (ch_dlg)->rect.cols / 2 - button_get_width (b);
781+
group_add_widget (ch_grp, b);
788782
i++;
789-
advanced_chown_but[i].id = group_add_widget (
790-
ch_grp,
791-
button_new (y, WIDGET (ch_dlg)->rect.cols / 2 + 1, advanced_chown_but[i].ret_cmd,
792-
advanced_chown_but[i].flags, advanced_chown_but[i].text, NULL));
793-
y++;
783+
b = button_new (y, 1, advanced_chown_but[i].ret_cmd, advanced_chown_but[i].flags,
784+
advanced_chown_but[i].text, NULL);
785+
WIDGET (b)->rect.x = WIDGET (ch_dlg)->rect.cols / 2 + 1;
786+
group_add_widget (ch_grp, b);
794787
}
795788

796-
i = BUTTONS_PERM + 2;
797-
group_add_widget (ch_grp, hline_new (y++, -1, -1));
798-
advanced_chown_but[i].id =
799-
group_add_widget (ch_grp,
800-
button_new (y, WIDGET (ch_dlg)->rect.cols / 2 - advanced_chown_but[i].len,
801-
advanced_chown_but[i].ret_cmd, advanced_chown_but[i].flags,
802-
advanced_chown_but[i].text, NULL));
803-
i++;
804-
advanced_chown_but[i].id = group_add_widget (
805-
ch_grp,
806-
button_new (y, WIDGET (ch_dlg)->rect.cols / 2 + 1, advanced_chown_but[i].ret_cmd,
807-
advanced_chown_but[i].flags, advanced_chown_but[i].text, NULL));
808-
809789
widget_select (WIDGET (b_att[0]));
810790

811791
return ch_dlg;

0 commit comments

Comments
 (0)