From a14b7815ae86bb1d552197d32c215157aaa4dc10 Mon Sep 17 00:00:00 2001 From: James Booth Date: Thu, 18 Feb 2016 01:20:17 +0000 Subject: Added new help format to c plugins WIP --- src/ui/console.c | 43 +++++++++++++++++++++++++++++++++++++++++++ src/ui/ui.h | 1 + 2 files changed, 44 insertions(+) (limited to 'src/ui') diff --git a/src/ui/console.c b/src/ui/console.c index f4ce0e3c..aaf502f2 100644 --- a/src/ui/console.c +++ b/src/ui/console.c @@ -119,6 +119,49 @@ cons_show_padded(int pad, const char *const msg, ...) va_end(arg); } +void +cons_show_plugin_help(const char *const cmd, CommandHelp *help) +{ + ProfWin *console = wins_get_console(); + + cons_show(""); + win_vprint(console, '-', 0, NULL, 0, THEME_WHITE_BOLD, "", "%s", &cmd[1]); + win_print(console, '-', 0, NULL, NO_EOL, THEME_WHITE_BOLD, "", ""); + int i; + for (i = 0; i < strlen(cmd) - 1 ; i++) { + win_print(console, '-', 0, NULL, NO_EOL | NO_DATE, THEME_WHITE_BOLD, "", "-"); + } + win_print(console, '-', 0, NULL, NO_DATE, THEME_WHITE_BOLD, "", ""); + cons_show(""); + + win_print(console, '-', 0, NULL, 0, THEME_WHITE_BOLD, "", "Synopsis"); + ui_show_lines(console, help->synopsis); + cons_show(""); + + win_print(console, '-', 0, NULL, 0, THEME_WHITE_BOLD, "", "Description"); + win_println(console, 0, help->desc); + + int maxlen = 0; + for (i = 0; help->args[i][0] != NULL; i++) { + if (strlen(help->args[i][0]) > maxlen) + maxlen = strlen(help->args[i][0]); + } + + if (i > 0) { + cons_show(""); + win_print(console, '-', 0, NULL, 0, THEME_WHITE_BOLD, "", "Arguments"); + for (i = 0; help->args[i][0] != NULL; i++) { + win_vprint(console, '-', maxlen + 3, NULL, 0, 0, "", "%-*s: %s", maxlen + 1, help->args[i][0], help->args[i][1]); + } + } + + if (g_strv_length((gchar**)help->examples) > 0) { + cons_show(""); + win_print(console, '-', 0, NULL, 0, THEME_WHITE_BOLD, "", "Examples"); + ui_show_lines(console, help->examples); + } +} + void cons_show_help(Command *command) { diff --git a/src/ui/ui.h b/src/ui/ui.h index afca8448..a29c8f36 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -231,6 +231,7 @@ void cons_show_padded(int pad, const char *const msg, ...); void cons_about(void); void cons_help(void); void cons_show_help(Command *command); +void cons_show_plugin_help(const char *const cmd, CommandHelp *help); void cons_bad_cmd_usage(const char *const cmd); void cons_navigation_help(void); void cons_prefs(void); -- cgit 1.4.1-2-gfad0