diff options
author | James Booth <boothj5@gmail.com> | 2012-10-22 23:58:47 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2012-10-22 23:58:47 +0100 |
commit | 15de3d4a8f019d4115ba0b9ea5850ff8225e8574 (patch) | |
tree | d9b0b455eea9995320ac1cfccb3de4efc13bb785 /src | |
parent | f5f7b99e1a7ce8494f263f7019131aa2f8f681c9 (diff) | |
download | profani-tty-15de3d4a8f019d4115ba0b9ea5850ff8225e8574.tar.gz |
Split help into sections
Most of the time complete help was too big for the screen
Diffstat (limited to 'src')
-rw-r--r-- | src/command.c | 20 | ||||
-rw-r--r-- | src/ui.h | 4 | ||||
-rw-r--r-- | src/windows.c | 42 |
3 files changed, 63 insertions, 3 deletions
diff --git a/src/command.c b/src/command.c index 79b92ffc..b536cc80 100644 --- a/src/command.c +++ b/src/command.c @@ -91,13 +91,15 @@ static struct cmd_t main_commands[] = { { "/help", _cmd_help, - { "/help [command]", "Show help summary, or help on a specific command", - { "/help [command]", + { "/help [area|command]", "Show help summary, or help on a specific area or command", + { "/help [area|command]", "---------------", - "List all commands with short help on what they do.", + "Show help options.", + "Specify an area (basic, status, settings, navigation) for more help on that area.", "Specify the command if you want more detailed help on a specific command.", "", "Example : /help connect", + "Example : /help settings", NULL } } }, { "/connect", @@ -363,6 +365,10 @@ cmd_init(void) log_info("Initialising commands"); commands_ac = p_autocomplete_new(); help_ac = p_autocomplete_new(); + p_autocomplete_add(help_ac, strdup("basic")); + p_autocomplete_add(help_ac, strdup("status")); + p_autocomplete_add(help_ac, strdup("settings")); + p_autocomplete_add(help_ac, strdup("navigation")); unsigned int i; for (i = 0; i < ARRAY_SIZE(main_commands); i++) { @@ -551,6 +557,14 @@ _cmd_help(const char * const inp, struct cmd_help_t help) { if (strcmp(inp, "/help") == 0) { cons_help(); + } else if (strcmp(inp, "/help basic") == 0) { + cons_basic_help(); + } else if (strcmp(inp, "/help status") == 0) { + cons_status_help(); + } else if (strcmp(inp, "/help settings") == 0) { + cons_settings_help(); + } else if (strcmp(inp, "/help navigation") == 0) { + cons_navigation_help(); } else { char *cmd = strndup(inp+6, strlen(inp)-6); char cmd_with_slash[1 + strlen(cmd) + 1]; diff --git a/src/ui.h b/src/ui.h index 671ca703..8b2e5163 100644 --- a/src/ui.h +++ b/src/ui.h @@ -104,6 +104,10 @@ void win_remind(void); // console window actions void cons_help(void); +void cons_basic_help(void); +void cons_settings_help(void); +void cons_status_help(void); +void cons_navigation_help(void); void cons_prefs(void); void cons_bad_command(const char * const cmd); void cons_show(const char * const cmd, ...); diff --git a/src/windows.c b/src/windows.c index 8fe78365..7daf9f1b 100644 --- a/src/windows.c +++ b/src/windows.c @@ -575,9 +575,33 @@ void cons_help(void) { cons_show(""); + cons_show("Choose an area you need help with:"); + cons_show(""); + cons_show("/help basic - Basic commands, for connecting, chatting etc."); + cons_show("/help status - How to change your status."); + cons_show("/help settings - Commands for configuring Profanity."); + cons_show("/help navigation - How to navigate around Profanity."); + cons_show(""); + + if (_curr_prof_win == 0) + dirty = TRUE; +} + +void +cons_basic_help(void) +{ + cons_show(""); cons_show("Basic Commands:"); _cons_show_basic_help(); + if (_curr_prof_win == 0) + dirty = TRUE; +} + +void +cons_settings_help(void) +{ + cons_show(""); cons_show("Settings:"); cons_show(""); @@ -587,7 +611,16 @@ cons_help(void) cons_show("%-25s: %s", help->usage, help->short_help); settings_helpers = g_slist_next(settings_helpers); } + + cons_show(""); + + if (_curr_prof_win == 0) + dirty = TRUE; +} +void +cons_status_help(void) +{ cons_show(""); cons_show("Status changes:"); cons_show(""); @@ -600,6 +633,15 @@ cons_help(void) } cons_show(""); + + if (_curr_prof_win == 0) + dirty = TRUE; +} + +void +cons_navigation_help(void) +{ + cons_show(""); cons_show("Navigation:"); cons_show(""); cons_show("F1 : This console window."); |