about summary refs log tree commit diff stats
path: root/src/ui
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2014-09-15 22:51:53 +0100
committerJames Booth <boothj5@gmail.com>2014-09-15 22:51:53 +0100
commit6b575aa8fced566b6a2dfb5f5a9543363e211390 (patch)
tree51b5663177163da97c11bc124d2ef48ceda31abb /src/ui
parentc5b697dba7caff1477c7248544bb8ec5e6871ffa (diff)
downloadprofani-tty-6b575aa8fced566b6a2dfb5f5a9543363e211390.tar.gz
Added /form show
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/core.c29
-rw-r--r--src/ui/ui.h1
2 files changed, 19 insertions, 11 deletions
diff --git a/src/ui/core.c b/src/ui/core.c
index 5dd28e0c..051d8189 100644
--- a/src/ui/core.c
+++ b/src/ui/core.c
@@ -2016,18 +2016,8 @@ _ui_handle_form_field(ProfWin *window, char *tag, FormField *field)
 }
 
 static void
-_ui_handle_room_configuration(const char * const room, DataForm *form)
+_ui_show_form(ProfWin *window, const char * const room, DataForm *form)
 {
-    GString *title = g_string_new(room);
-    g_string_append(title, " config");
-    ProfWin *window = wins_new(title->str, WIN_MUC_CONFIG);
-    g_string_free(title, TRUE);
-
-    window->form = form;
-
-    int num = wins_get_num(window);
-    ui_switch_win(num);
-
     if (form->title != NULL) {
         win_save_print(window, '-', NULL, 0, 0, "", form->title);
     } else {
@@ -2065,6 +2055,22 @@ TODO add command to get help for a field
 }
 
 static void
+_ui_handle_room_configuration(const char * const room, DataForm *form)
+{
+    GString *title = g_string_new(room);
+    g_string_append(title, " config");
+    ProfWin *window = wins_new(title->str, WIN_MUC_CONFIG);
+    g_string_free(title, TRUE);
+
+    window->form = form;
+
+    int num = wins_get_num(window);
+    ui_switch_win(num);
+
+    ui_show_form(window, room, form);
+}
+
+static void
 _ui_handle_room_config_submit_result(void)
 {
     cons_show("GOT ROOM CONFIG SUBMIT RESULT!!!!");
@@ -2310,4 +2316,5 @@ ui_init_module(void)
     ui_handle_room_configuration = _ui_handle_room_configuration;
     ui_handle_room_config_submit_result = _ui_handle_room_config_submit_result;
     ui_win_has_unsaved_form = _ui_win_has_unsaved_form;
+    ui_show_form = _ui_show_form;
 }
diff --git a/src/ui/ui.h b/src/ui/ui.h
index 6e9cb9e7..51eed7b5 100644
--- a/src/ui/ui.h
+++ b/src/ui/ui.h
@@ -162,6 +162,7 @@ void (*ui_clear_win_title)(void);
 void (*ui_handle_room_join_error)(const char * const room, const char * const err);
 void (*ui_handle_room_configuration)(const char * const room, DataForm *form);
 void (*ui_handle_room_config_submit_result)(void);
+void (*ui_show_form)(ProfWin *window, const char * const room, DataForm *form);
 
 // contact status functions
 void (*ui_status_room)(const char * const contact);