about summary refs log tree commit diff stats
path: root/src/ui/core.c
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2013-05-12 22:57:36 +0100
committerJames Booth <boothj5@gmail.com>2013-05-12 23:00:29 +0100
commit57e64bebe58f051eafc90b27ebe328128fe47095 (patch)
tree54b3e7b6daac3c9a3afcf258ee59474df0fb9892 /src/ui/core.c
parentc1ee75da40b5fa633cb7a3efd699c217a3c88ff0 (diff)
downloadprofani-tty-57e64bebe58f051eafc90b27ebe328128fe47095.tar.gz
Added parameter to /close
2,3,4,5,6,7,8,9,0 will close specified window.
'all' will close all windows.

closes #159
Diffstat (limited to 'src/ui/core.c')
-rw-r--r--src/ui/core.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/ui/core.c b/src/ui/core.c
index 1e9d18e4..992a5701 100644
--- a/src/ui/core.c
+++ b/src/ui/core.c
@@ -205,6 +205,11 @@ ui_windows_full(void)
     return TRUE;
 }
 
+gboolean ui_win_exists(int index)
+{
+    return (windows[index] != NULL);
+}
+
 gboolean
 ui_duck_exists(void)
 {
@@ -550,12 +555,46 @@ ui_close_current(void)
     current_win_dirty = TRUE;
 }
 
+void ui_close_win(int index)
+{
+    win_free(windows[index]);
+    windows[index] = NULL;
+    status_bar_inactive(index);
+
+    if (index == current_index) {
+        _set_current(0);
+    }
+
+    status_bar_active(0);
+    title_bar_title();
+
+    current_win_dirty = TRUE;
+}
+
 win_type_t
 ui_current_win_type(void)
 {
     return current->type;
 }
 
+int
+ui_current_win_index(void)
+{
+    return current_index;
+}
+
+win_type_t
+ui_win_type(int index)
+{
+    return windows[index]->type;
+}
+
+char *
+ui_recipient(int index)
+{
+    return strdup(windows[index]->from);
+}
+
 char *
 ui_current_recipient(void)
 {