aboutsummaryrefslogtreecommitdiffstats
path: root/src/custom.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/custom.c')
-rw-r--r--src/custom.c62
1 files changed, 27 insertions, 35 deletions
diff --git a/src/custom.c b/src/custom.c
index 9531eaa..bccc1cc 100644
--- a/src/custom.c
+++ b/src/custom.c
@@ -456,8 +456,7 @@ layout_selection_bar (void)
/* Used to display available layouts in layout configuration menu. */
static void
-display_layout_config (struct window *lwin, int mark, int cursor,
- int need_reset)
+display_layout_config (struct window *lwin, int mark, int cursor)
{
#define CURSOR (32 | A_REVERSE)
#define MARK 88
@@ -467,10 +466,10 @@ display_layout_config (struct window *lwin, int mark, int cursor,
const int BOXSIZ = strlen (box);
const int NBCOLS = NBLAYOUTS / LAYOUTSPERCOL;
const int COLSIZ = LAYOUTW + BOXSIZ + 1;
- const int XSPC = (col - NBCOLS * COLSIZ) / (NBCOLS + 1);
- const int XOFST = (col - NBCOLS * (XSPC + COLSIZ)) / 2;
- const int YSPC = (row - 8 - LAYOUTSPERCOL * LAYOUTH) / (LAYOUTSPERCOL + 1);
- const int YOFST = (row - LAYOUTSPERCOL * (YSPC + LAYOUTH)) / 2;
+ const int XSPC = (lwin->w - NBCOLS * COLSIZ) / (NBCOLS + 1);
+ const int XOFST = (lwin->w - NBCOLS * (XSPC + COLSIZ)) / 2;
+ const int YSPC = (lwin->h - 8 - LAYOUTSPERCOL * LAYOUTH) / (LAYOUTSPERCOL + 1);
+ const int YOFST = (lwin->h - LAYOUTSPERCOL * (YSPC + LAYOUTH)) / 2;
enum {YPOS, XPOS, NBPOS};
int pos[NBLAYOUTS][NBPOS];
char *layouts[LAYOUTH][NBLAYOUTS] = {
@@ -488,14 +487,6 @@ display_layout_config (struct window *lwin, int mark, int cursor,
pos[i][XPOS] = XOFST + (i / LAYOUTSPERCOL) * (XSPC + COLSIZ);
}
- if (need_reset)
- {
- char label[BUFSIZ];
-
- (void)snprintf (label, BUFSIZ, _("layout configuration"));
- custom_confwin_init (lwin, label);
- }
-
for (i = 0; i < NBLAYOUTS; i++)
{
int j;
@@ -529,6 +520,7 @@ custom_layout_config (void)
struct scrollwin hwin;
struct window conf_win;
int ch, mark, cursor, need_reset;
+ char label[BUFSIZ];
char *help_text =
_("With this configuration menu, one can choose where panels will be\n"
"displayed inside calcurse screen. \n"
@@ -538,11 +530,12 @@ custom_layout_config (void)
" 'a' -> appointment panel\n\n"
" 't' -> todo panel\n\n");
- need_reset = 1;
conf_win.p = (WINDOW *)0;
+ (void)snprintf (label, BUFSIZ, _("layout configuration"));
+ custom_confwin_init (&conf_win, label);
cursor = mark = wins_layout () - 1;
+ display_layout_config (&conf_win, mark, cursor);
clear ();
- display_layout_config (&conf_win, mark, cursor, need_reset);
while ((ch = keys_getch (win[STA].p)) != KEY_GENERIC_QUIT)
{
@@ -592,7 +585,10 @@ custom_layout_config (void)
need_reset = 1;
}
- display_layout_config (&conf_win, mark, cursor, need_reset);
+ if (need_reset)
+ custom_confwin_init (&conf_win, label);
+
+ display_layout_config (&conf_win, mark, cursor);
}
wins_set_layout (mark + 1);
delwin (conf_win.p);
@@ -718,7 +714,7 @@ color_selection_bar (void)
*/
static void
display_color_config (struct window *cwin, int *mark_fore, int *mark_back,
- int cursor, int need_reset, int theme_changed)
+ int cursor, int theme_changed)
{
#define SIZE (2 * (NBUSERCOLORS + 1))
#define DEFAULTCOLOR 255
@@ -731,13 +727,12 @@ display_color_config (struct window *cwin, int *mark_fore, int *mark_back,
char *default_txt = _("(terminal's default)");
char *bar = " ";
char *box = "[ ]";
- char label[BUFSIZ];
const unsigned Y = 3;
const unsigned XOFST = 5;
- const unsigned YSPC = (row - 8) / (NBUSERCOLORS + 1);
+ const unsigned YSPC = (cwin->h - 8) / (NBUSERCOLORS + 1);
const unsigned BARSIZ = strlen (bar);
const unsigned BOXSIZ = strlen (box);
- const unsigned XSPC = (col - 2 * BARSIZ - 2 * BOXSIZ - 6) / 3;
+ const unsigned XSPC = (cwin->w - 2 * BARSIZ - 2 * BOXSIZ - 6) / 3;
const unsigned XFORE = XSPC;
const unsigned XBACK = 2 * XSPC + BOXSIZ + XOFST + BARSIZ;
enum
@@ -760,12 +755,6 @@ display_color_config (struct window *cwin, int *mark_fore, int *mark_back,
pos[NBUSERCOLORS + i + 1][XPOS] = XBACK;
}
- if (need_reset)
- {
- (void)snprintf (label, BUFSIZ, _("color theme"));
- custom_confwin_init (cwin, label);
- }
-
if (colorize)
{
if (theme_changed)
@@ -848,17 +837,17 @@ custom_color_config (void)
struct window conf_win;
int ch, cursor, need_reset, theme_changed;
int mark_fore, mark_back;
+ char label[BUFSIZ];
+ conf_win.p = 0;
+ (void)snprintf (label, BUFSIZ, _("color theme"));
+ custom_confwin_init (&conf_win, label);
mark_fore = NBUSERCOLORS;
mark_back = SIZE - 1;
- clear ();
cursor = 0;
- need_reset = 1;
theme_changed = 0;
- conf_win.p = 0;
- set_confwin_attr (&conf_win);
- display_color_config (&conf_win, &mark_fore, &mark_back, cursor,
- need_reset, theme_changed);
+ display_color_config (&conf_win, &mark_fore, &mark_back, cursor, theme_changed);
+ clear ();
while ((ch = keys_getch (win[STA].p)) != KEY_GENERIC_QUIT)
{
@@ -912,8 +901,11 @@ custom_color_config (void)
need_reset = 1;
}
+ if (need_reset)
+ custom_confwin_init (&conf_win, label);
+
display_color_config (&conf_win, &mark_fore, &mark_back, cursor,
- need_reset, theme_changed);
+ theme_changed);
}
delwin (conf_win.p);
}
@@ -1186,8 +1178,8 @@ custom_general_config (struct conf *conf)
resize = 0;
wins_reset ();
wins_scrollwin_delete (&cwin);
- wins_scrollwin_init (&cwin);
custom_set_swsiz (&cwin);
+ wins_scrollwin_init (&cwin);
wins_show (cwin.win.p, cwin.label);
cwin.first_visible_line = 0;
delwin (win[STA].p);