diff options
author | James Booth <boothj5@gmail.com> | 2015-09-19 23:31:04 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2015-09-19 23:31:04 +0100 |
commit | d7bba740919b2be154d141c1683ea43e771c4b33 (patch) | |
tree | 38d9ba5c65c5d0789b6e55c74d6610a78d224736 /src/command | |
parent | a3dccce2fa859b3030d740b609fa9e9466601cc7 (diff) | |
download | profani-tty-d7bba740919b2be154d141c1683ea43e771c4b33.tar.gz |
Moved /winstidy command to /wins autotidy
Diffstat (limited to 'src/command')
-rw-r--r-- | src/command/command.c | 44 | ||||
-rw-r--r-- | src/command/commands.c | 23 | ||||
-rw-r--r-- | src/command/commands.h | 1 |
3 files changed, 38 insertions, 30 deletions
diff --git a/src/command/command.c b/src/command/command.c index 7849dde9..27c8e078 100644 --- a/src/command/command.c +++ b/src/command/command.c @@ -105,6 +105,7 @@ static char * _inpblock_autocomplete(ProfWin *window, const char * const input); static char * _time_autocomplete(ProfWin *window, const char * const input); static char * _receipts_autocomplete(ProfWin *window, const char * const input); static char * _help_autocomplete(ProfWin *window, const char * const input); +static char * _wins_autocomplete(ProfWin *window, const char * const input); GHashTable *commands = NULL; @@ -697,14 +698,16 @@ static struct cmd_t command_defs[] = CMD_TAG_UI) CMD_SYN( "/wins tidy", + "/wins autotidy on|off", "/wins prune", "/wins swap <source> <target>") CMD_DESC( "Manage windows. " "Passing no argument will list all currently active windows and information about their usage.") CMD_ARGS( - { "tidy", "Move windows so there are no gaps." }, - { "prune", "Close all windows with no unread messages, and then tidy so there are no gaps." }, + { "tidy", "Move windows so there are no gaps." }, + { "autotidy on|off", "Automatically remove gaps when closing windows." }, + { "prune", "Close all windows with no unread messages, and then tidy so there are no gaps." }, { "swap <source> <target>", "Swap windows, target may be an empty position." }) CMD_NOEXAMPLES }, @@ -893,19 +896,6 @@ static struct cmd_t command_defs[] = CMD_NOEXAMPLES }, - { "/winstidy", - cmd_winstidy, parse_args, 1, 1, &cons_winstidy_setting, - CMD_TAGS( - CMD_TAG_UI) - CMD_SYN( - "/winstidy on|off") - CMD_DESC( - "Auto tidy windows, when a window is closed, windows will be moved to fill the gap.") - CMD_ARGS( - { "on|off", "Enable or disable auto window tidy." }) - CMD_NOEXAMPLES - }, - { "/time", cmd_time, parse_args, 1, 3, &cons_time_setting, CMD_TAGS( @@ -1872,6 +1862,7 @@ cmd_init(void) wins_ac = autocomplete_new(); autocomplete_add(wins_ac, "prune"); autocomplete_add(wins_ac, "tidy"); + autocomplete_add(wins_ac, "autotidy"); autocomplete_add(wins_ac, "swap"); roster_ac = autocomplete_new(); @@ -2534,8 +2525,8 @@ _cmd_complete_parameters(ProfWin *window, const char * const input) } } - gchar *cmds[] = { "/prefs", "/disco", "/close", "/wins", "/subject", "/room" }; - Autocomplete completers[] = { prefs_ac, disco_ac, close_ac, wins_ac, subject_ac, room_ac }; + gchar *cmds[] = { "/prefs", "/disco", "/close", "/subject", "/room" }; + Autocomplete completers[] = { prefs_ac, disco_ac, close_ac, subject_ac, room_ac }; for (i = 0; i < ARRAY_SIZE(cmds); i++) { result = autocomplete_param_with_ac(input, cmds[i], completers[i], TRUE); @@ -2574,6 +2565,7 @@ _cmd_complete_parameters(ProfWin *window, const char * const input) g_hash_table_insert(ac_funcs, "/inpblock", _inpblock_autocomplete); g_hash_table_insert(ac_funcs, "/time", _time_autocomplete); g_hash_table_insert(ac_funcs, "/receipts", _receipts_autocomplete); + g_hash_table_insert(ac_funcs, "/wins", _wins_autocomplete); int len = strlen(input); char parsed[len+1]; @@ -3463,6 +3455,24 @@ _statuses_autocomplete(ProfWin *window, const char * const input) } static char * +_wins_autocomplete(ProfWin *window, const char * const input) +{ + char *result = NULL; + + result = autocomplete_param_with_func(input, "/wins autotidy", prefs_autocomplete_boolean_choice); + if (result) { + return result; + } + + result = autocomplete_param_with_ac(input, "/wins", wins_ac, TRUE); + if (result) { + return result; + } + + return NULL; +} + +static char * _receipts_autocomplete(ProfWin *window, const char * const input) { char *result = NULL; diff --git a/src/command/commands.c b/src/command/commands.c index e3374ddd..61c0373b 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -747,6 +747,17 @@ cmd_wins(ProfWin *window, const char * const command, gchar **args) cons_show("Same source and target window supplied."); } } + } else if (strcmp(args[0], "autotidy") == 0) { + if (g_strcmp0(args[1], "on") == 0) { + cons_show("Window autotidy enabled"); + prefs_set_boolean(PREF_WINS_AUTO_TIDY, TRUE); + ui_tidy_wins(); + } else if (g_strcmp0(args[1], "off") == 0) { + cons_show("Window autotidy disabled"); + prefs_set_boolean(PREF_WINS_AUTO_TIDY, FALSE); + } else { + cons_bad_cmd_usage(command); + } } else { cons_bad_cmd_usage(command); } @@ -755,18 +766,6 @@ cmd_wins(ProfWin *window, const char * const command, gchar **args) } gboolean -cmd_winstidy(ProfWin *window, const char * const command, gchar **args) -{ - gboolean result = _cmd_set_boolean_preference(args[0], command, "Wins Auto Tidy", PREF_WINS_AUTO_TIDY); - - if (result && g_strcmp0(args[0], "on") == 0) { - ui_tidy_wins(); - } - - return result; -} - -gboolean cmd_win(ProfWin *window, const char * const command, gchar **args) { int num = atoi(args[0]); diff --git a/src/command/commands.h b/src/command/commands.h index c158f606..89f923ff 100644 --- a/src/command/commands.h +++ b/src/command/commands.h @@ -129,7 +129,6 @@ gboolean cmd_vercheck(ProfWin *window, const char * const command, gchar **args) gboolean cmd_who(ProfWin *window, const char * const command, gchar **args); gboolean cmd_win(ProfWin *window, const char * const command, gchar **args); gboolean cmd_wins(ProfWin *window, const char * const command, gchar **args); -gboolean cmd_winstidy(ProfWin *window, const char * const command, gchar **args); gboolean cmd_xa(ProfWin *window, const char * const command, gchar **args); gboolean cmd_alias(ProfWin *window, const char * const command, gchar **args); gboolean cmd_xmlconsole(ProfWin *window, const char * const command, gchar **args); |