about summary refs log tree commit diff stats
path: root/src/ui/core.c
diff options
context:
space:
mode:
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)
 {