From 380d9bd885e68284ab277afbc290893015e77dbb Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Mon, 29 Nov 2010 21:46:11 +0300 Subject: [PATCH] Ticket #2171: colors for popup menu: ... for menu items, selected menu item and for menu title. Signed-off-by: Andrew Borodin --- doc/man/mc.1.in | 9 ++++++ doc/man/ru/mc.1.in | 9 ++++++ lib/skin.h | 77 ++++++++++++++++++++++++--------------------- lib/skin/colors-old.c | 3 ++ lib/skin/colors.c | 4 +++ lib/skin/hc-skins.c | 3 ++ lib/widget/listbox-window.c | 10 +++--- misc/skins/darkfar.ini | 5 +++ misc/skins/default.ini | 5 +++ misc/skins/double-lines.ini | 5 +++ misc/skins/featured.ini | 5 +++ misc/skins/gotar.ini | 5 +++ misc/skins/nicedark.ini | 5 +++ src/args.c | 22 ++++++------- 14 files changed, 115 insertions(+), 52 deletions(-) diff --git a/doc/man/mc.1.in b/doc/man/mc.1.in index b64f59880..07b6e8d6d 100644 --- a/doc/man/mc.1.in +++ b/doc/man/mc.1.in @@ -3429,6 +3429,7 @@ dhotnormal, dhotfocus, dtitle. Error dialog colors are: errdfocus, errdhotnormal errdhotfocus, errdtitle. Help colors are: helpnormal, helpitalic, helpbold, helplink, helpslink, helptitle. Viewer color are: viewbold, viewunderline, viewselected. Editor colors are: editnormal, editbold, editmarked, editwhitespace, editlinestate. +Popup menu colors are: pmenunormal, pmenusel, pmenutitle. .PP .I input determines the color of input lines used in query dialogs. @@ -3468,6 +3469,14 @@ is used for not selected hyperlinks and .I helpslink is used for selected hyperlink. .PP +Popup menu uses following colors: +.I pmenunormal +is used for non-selected menu items and as a main color of popup menu window, +.I pmenusel +is used for selected menu item, +.I pmenutitle +is used for popup menu title. +.PP The possible colors are: black, gray, red, brightred, green, brightgreen, brown, yellow, blue, brightblue, magenta, brightmagenta, cyan, brightcyan, lightgray and white. And there is a special keyword diff --git a/doc/man/ru/mc.1.in b/doc/man/ru/mc.1.in index 5fe543790..1305455a2 100644 --- a/doc/man/ru/mc.1.in +++ b/doc/man/ru/mc.1.in @@ -3690,6 +3690,7 @@ errdfocus, errdhotnormal, errdhotfocus, errdtitle. Цвета в окне вст помощи: helpnormal, helpitalic, helpbold, helplink, helpslink. Цвета в окне программы просмотра: viewbold, viewunderline, viewselected. Цвета в редакторе: editnormal, editbold, editmarked, editwhitespace, editlinestate. +Цвета окна всплывающего меню: pmenunormal, pmenusel, pmenutitle. .PP Цвета задавать не обязательно. Цвет какого именно поля определяется каждым ключевым словом, можно понять из перевода этого ключевого слова. @@ -3743,6 +3744,14 @@ editnormal, editbold, editmarked, editwhitespace, editlinestate. .I helpslink \- для выделения активной в данный момент гиперссылки. .PP +Во всплывающем меню используются следующие цвета: +.I pmenunormal +\- для невыбранных пунктов меню и как основной цвет окна, +.I pmenusel +\- для выбранного пункта меню, +.I pmenutitle +\- для заголовка окна меню. +.PP Возможные цвета: black, gray, red, brightred, green, brightgreen, brown, yellow, blue, brightblue, magenta, brightmagenta, cyan, brightcyan, lightgray и white. diff --git a/lib/skin.h b/lib/skin.h index 91a85ecd3..7ea332769 100644 --- a/lib/skin.h +++ b/lib/skin.h @@ -44,59 +44,66 @@ #define MENU_HOTSEL_COLOR mc_skin_color__cache[22] #define MENU_INACTIVE_COLOR mc_skin_color__cache[23] -#define BUTTONBAR_HOTKEY_COLOR mc_skin_color__cache[24] -#define BUTTONBAR_BUTTON_COLOR mc_skin_color__cache[25] +/* Popup menu colors */ +#define PMENU_ENTRY_COLOR mc_skin_color__cache[24] +#define PMENU_SELECTED_COLOR mc_skin_color__cache[25] +#define PMENU_HOT_COLOR mc_skin_color__cache[26] /* unused: not implemented yet */ +#define PMENU_HOTSEL_COLOR mc_skin_color__cache[27] /* unused: not implemented yet */ +#define PMENU_TITLE_COLOR mc_skin_color__cache[28] -#define STATUSBAR_COLOR mc_skin_color__cache[26] +#define BUTTONBAR_HOTKEY_COLOR mc_skin_color__cache[29] +#define BUTTONBAR_BUTTON_COLOR mc_skin_color__cache[30] + +#define STATUSBAR_COLOR mc_skin_color__cache[31] /* * This should be selectable independently. Default has to be black background * foreground does not matter at all. */ -#define GAUGE_COLOR mc_skin_color__cache[27] -#define INPUT_COLOR mc_skin_color__cache[28] -#define INPUT_UNCHANGED_COLOR mc_skin_color__cache[29] -#define INPUT_MARK_COLOR mc_skin_color__cache[30] -#define INPUT_HISTORY_COLOR mc_skin_color__cache[31] -#define COMMAND_HISTORY_COLOR mc_skin_color__cache[32] +#define GAUGE_COLOR mc_skin_color__cache[32] +#define INPUT_COLOR mc_skin_color__cache[33] +#define INPUT_UNCHANGED_COLOR mc_skin_color__cache[34] +#define INPUT_MARK_COLOR mc_skin_color__cache[35] +#define INPUT_HISTORY_COLOR mc_skin_color__cache[36] +#define COMMAND_HISTORY_COLOR mc_skin_color__cache[37] -#define HELP_NORMAL_COLOR mc_skin_color__cache[33] -#define HELP_ITALIC_COLOR mc_skin_color__cache[34] -#define HELP_BOLD_COLOR mc_skin_color__cache[35] -#define HELP_LINK_COLOR mc_skin_color__cache[36] -#define HELP_SLINK_COLOR mc_skin_color__cache[37] -#define HELP_TITLE_COLOR mc_skin_color__cache[38] +#define HELP_NORMAL_COLOR mc_skin_color__cache[38] +#define HELP_ITALIC_COLOR mc_skin_color__cache[39] +#define HELP_BOLD_COLOR mc_skin_color__cache[40] +#define HELP_LINK_COLOR mc_skin_color__cache[41] +#define HELP_SLINK_COLOR mc_skin_color__cache[42] +#define HELP_TITLE_COLOR mc_skin_color__cache[43] -#define VIEW_BOLD_COLOR mc_skin_color__cache[39] -#define VIEW_UNDERLINED_COLOR mc_skin_color__cache[40] -#define VIEW_SELECTED_COLOR mc_skin_color__cache[41] +#define VIEW_BOLD_COLOR mc_skin_color__cache[44] +#define VIEW_UNDERLINED_COLOR mc_skin_color__cache[45] +#define VIEW_SELECTED_COLOR mc_skin_color__cache[46] /* * editor colors - only 4 for normal, search->found, select, and whitespace * respectively * Last is defined to view color. */ -#define EDITOR_NORMAL_COLOR mc_skin_color__cache[42] -#define EDITOR_BOLD_COLOR mc_skin_color__cache[43] -#define EDITOR_MARKED_COLOR mc_skin_color__cache[44] -#define EDITOR_WHITESPACE_COLOR mc_skin_color__cache[45] -#define EDITOR_RIGHT_MARGIN_COLOR mc_skin_color__cache[46] +#define EDITOR_NORMAL_COLOR mc_skin_color__cache[47] +#define EDITOR_BOLD_COLOR mc_skin_color__cache[48] +#define EDITOR_MARKED_COLOR mc_skin_color__cache[49] +#define EDITOR_WHITESPACE_COLOR mc_skin_color__cache[50] +#define EDITOR_RIGHT_MARGIN_COLOR mc_skin_color__cache[51] /* color of left 8 char status per line */ -#define LINE_STATE_COLOR mc_skin_color__cache[47] -#define BOOK_MARK_COLOR mc_skin_color__cache[48] -#define BOOK_MARK_FOUND_COLOR mc_skin_color__cache[49] +#define LINE_STATE_COLOR mc_skin_color__cache[52] +#define BOOK_MARK_COLOR mc_skin_color__cache[53] +#define BOOK_MARK_FOUND_COLOR mc_skin_color__cache[54] /* Diff colors */ -#define DFF_ADD_COLOR mc_skin_color__cache[50] -#define DFF_CHG_COLOR mc_skin_color__cache[51] -#define DFF_CHH_COLOR mc_skin_color__cache[52] -#define DFF_CHD_COLOR mc_skin_color__cache[53] -#define DFF_DEL_COLOR mc_skin_color__cache[54] -#define DFF_FOLDER_COLOR mc_skin_color__cache[55] -#define DFF_ERROR_COLOR mc_skin_color__cache[56] - -#define MC_SKIN_COLOR_CACHE_COUNT 57 +#define DFF_ADD_COLOR mc_skin_color__cache[55] +#define DFF_CHG_COLOR mc_skin_color__cache[56] +#define DFF_CHH_COLOR mc_skin_color__cache[57] +#define DFF_CHD_COLOR mc_skin_color__cache[58] +#define DFF_DEL_COLOR mc_skin_color__cache[59] +#define DFF_FOLDER_COLOR mc_skin_color__cache[60] +#define DFF_ERROR_COLOR mc_skin_color__cache[61] + +#define MC_SKIN_COLOR_CACHE_COUNT 62 /*** enums ***************************************************************************************/ diff --git a/lib/skin/colors-old.c b/lib/skin/colors-old.c index 624424bd2..b9bc1fcdc 100644 --- a/lib/skin/colors-old.c +++ b/lib/skin/colors-old.c @@ -69,6 +69,9 @@ static const mc_skin_colors_old_t old_colors[] = { {"menusel", "menu", "menusel"}, {"menuhotsel", "menu", "menuhotsel"}, {"menuinactive", "menu", "menuinactive"}, + {"pmenunormal", "popupmenu", "_default_"}, + {"pmenusel", "popupmenu", "menusel"}, + {"pmenutitle", "popupmenu", "menutitle"}, {"bbarhotkey", "buttonbar", "hotkey"}, {"bbarbutton", "buttonbar", "button"}, {"statusbar", "statusbar", "_default_"}, diff --git a/lib/skin/colors.c b/lib/skin/colors.c index d32ba4adb..a8dc37f5e 100644 --- a/lib/skin/colors.c +++ b/lib/skin/colors.c @@ -227,6 +227,10 @@ mc_skin_color_cache_init (void) MENU_HOTSEL_COLOR = mc_skin_color_get ("menu", "menuhotsel"); MENU_INACTIVE_COLOR = mc_skin_color_get ("menu", "menuinactive"); + PMENU_ENTRY_COLOR = mc_skin_color_get ("popupmenu", "_default_"); + PMENU_SELECTED_COLOR = mc_skin_color_get ("popupmenu", "menusel"); + PMENU_TITLE_COLOR = mc_skin_color_get ("popupmenu", "menutitle"); + BUTTONBAR_HOTKEY_COLOR = mc_skin_color_get ("buttonbar", "hotkey"); BUTTONBAR_BUTTON_COLOR = mc_skin_color_get ("buttonbar", "button"); diff --git a/lib/skin/hc-skins.c b/lib/skin/hc-skins.c index fb3f7e923..b289c94c4 100644 --- a/lib/skin/hc-skins.c +++ b/lib/skin/hc-skins.c @@ -65,6 +65,9 @@ mc_skin_hardcoded_blackwhite_colors (mc_skin_t * mc_skin) mc_config_set_string (mc_skin->config, "menu", "menusel", "default"); mc_config_set_string (mc_skin->config, "menu", "menuhotsel", "A_UNDERLINE"); mc_config_set_string (mc_skin->config, "menu", "menuinactive", "A_REVERSE"); + mc_config_set_string (mc_skin->config, "popupmenu", "_default_", "A_REVERSE"); + mc_config_set_string (mc_skin->config, "popupmenu", "menusel", "default"); + mc_config_set_string (mc_skin->config, "popupmenu", "menutitle", "A_REVERSE"); mc_config_set_string (mc_skin->config, "statusbar", "_default_", "A_REVERSE"); mc_config_set_string (mc_skin->config, "help", "_default_", "A_REVERSE"); mc_config_set_string (mc_skin->config, "help", "helpitalic", "A_REVERSE"); diff --git a/lib/widget/listbox-window.c b/lib/widget/listbox-window.c index 176e90d80..94ab37844 100644 --- a/lib/widget/listbox-window.c +++ b/lib/widget/listbox-window.c @@ -57,11 +57,11 @@ create_listbox_window_centered (int center_y, int center_x, int lines, int cols, const char *title, const char *help) { const dlg_colors_t listbox_colors = { - MENU_ENTRY_COLOR, - MENU_SELECTED_COLOR, - MENU_HOT_COLOR, - MENU_HOTSEL_COLOR, - COLOR_TITLE + PMENU_ENTRY_COLOR, + PMENU_SELECTED_COLOR, + PMENU_ENTRY_COLOR, + PMENU_SELECTED_COLOR, + PMENU_TITLE_COLOR }; const int space = 4; diff --git a/misc/skins/darkfar.ini b/misc/skins/darkfar.ini index 416c1d813..6c6e82fc8 100644 --- a/misc/skins/darkfar.ini +++ b/misc/skins/darkfar.ini @@ -116,6 +116,11 @@ [statusbar] _default_=black;white +[popupmenu] + _default_=lightgray;blue + menusel=black;cyan + menutitle=lightgray;blue + [widget-common] sort-sign-up=↑ sort-sign-down=↓ diff --git a/misc/skins/default.ini b/misc/skins/default.ini index 2dfb22c21..19198587b 100644 --- a/misc/skins/default.ini +++ b/misc/skins/default.ini @@ -117,6 +117,11 @@ folder=blue;black error=red;white +[popupmenu] + _default_=white;cyan + menusel=yellow;black + menutitle=yellow;cyan + [widget-common] sort-sign-up = ' sort-sign-down = , diff --git a/misc/skins/double-lines.ini b/misc/skins/double-lines.ini index 26cb65c53..9c5f7df4b 100644 --- a/misc/skins/double-lines.ini +++ b/misc/skins/double-lines.ini @@ -116,6 +116,11 @@ folder=blue;black error=red;white +[popupmenu] + _default_=white;cyan + menusel=white;black + menutitle=white;cyan + [widget-common] sort-sign-up = ' sort-sign-down = , diff --git a/misc/skins/featured.ini b/misc/skins/featured.ini index 076e8d1ca..9225b0e5d 100644 --- a/misc/skins/featured.ini +++ b/misc/skins/featured.ini @@ -118,6 +118,11 @@ folder=blue;black error=red;white +[popupmenu] + _default_=white;cyan + menusel=white;black + menutitle=white;cyan + [widget-common] sort-sign-up = ↓ sort-sign-down = ↑ diff --git a/misc/skins/gotar.ini b/misc/skins/gotar.ini index 2d85f99f4..618bdb0d4 100644 --- a/misc/skins/gotar.ini +++ b/misc/skins/gotar.ini @@ -113,3 +113,8 @@ removed=;blue folder=brightblue; error=white;red + +[popupmenu] + _default_=brightgreen;black + menusel=brightcyan;blue + menutitle=brightcyan;black diff --git a/misc/skins/nicedark.ini b/misc/skins/nicedark.ini index 3c47b4fc6..129413d7c 100644 --- a/misc/skins/nicedark.ini +++ b/misc/skins/nicedark.ini @@ -93,6 +93,11 @@ [viewer] viewunderline=brightred;blue +[popupmenu] + _default_=lightgray;black + menusel=lightgray;blue + menutitle=lightgray;black + [widget-common] sort-sign-down=↑ sort-sign-up=↓ diff --git a/src/args.c b/src/args.c index 3fb212630..848c21cf1 100644 --- a/src/args.c +++ b/src/args.c @@ -319,15 +319,12 @@ mc_args_clean_temp_help_strings (void) static GOptionGroup * mc_args_new_color_group (void) { - /* - * FIXME: undocumented keywords: viewunderline, editnormal, editbold, - * and editmarked. To preserve translations, lines should be split. - */ - mc_args__loc__colors_string = g_strdup_printf ("%s%s", - /* TRANSLATORS: don't translate keywords and names of colors */ + /* FIXME: to preserve translations, lines should be split. */ + mc_args__loc__colors_string = g_strdup_printf ("%s\n%s", + /* TRANSLATORS: don't translate keywords */ _("--colors KEYWORD={FORE},{BACK}\n\n" "{FORE} and {BACK} can be omitted, and the default will be used\n" - "\n" "Keywords:\n" + "\n Keywords:\n" " Global: errors, disabled, reverse, gauge, viewunderline\n" " input, inputmark, inputunchanged, commandlinemark\n" " bbarhotkey, bbarbutton, statusbar\n" @@ -335,12 +332,13 @@ mc_args_new_color_group (void) " Dialog boxes: dnormal, dfocus, dhotnormal, dhotfocus, errdhotnormal,\n" " errdhotfocus\n" " Menus: menunormal, menuhot, menusel, menuhotsel, menuinactive\n" + " Popup menus: pmenunormal, pmenusel, pmenutitle\n" " Editor: editnormal, editbold, editmarked, editwhitespace,\n" - " editlinestate\n"), - /* TRANSLATORS: don't translate keywords and names of colors */ - _ - (" Help: helpnormal, helpitalic, helpbold, helplink, helpslink\n" - "\n" "Colors:\n" + " editlinestate\n" + " Viewer: viewunderline\n" + " Help: helpnormal, helpitalic, helpbold, helplink, helpslink\n"), + /* TRANSLATORS: don't translate color names */ + _("Colors:\n" " black, gray, red, brightred, green, brightgreen, brown,\n" " yellow, blue, brightblue, magenta, brightmagenta, cyan,\n" " brightcyan, lightgray and white\n\n")); -- 2.11.4.GIT