3 /* Global list of all windows */
4 static GNode *root_window = NULL;
7 glk_window_open(winid_t split, glui32 method, glui32 size, glui32 wintype, glui32 rock)
9 extern GtkBuilder *builder;
13 g_warning("glk_window_open: splitting of windows not implemented");
17 if(root_window != NULL)
19 g_warning("glk_window_open: there is already a window");
23 winid_t new_window = g_new0(struct glk_window_struct, 1);
24 root_window = g_node_new(new_window);
26 new_window->rock = rock;
27 new_window->window_type = wintype;
29 GtkBox *vbox = GTK_BOX( gtk_builder_get_object(builder, "vbox") );
32 error_dialog(NULL, NULL, "Could not find vbox");
38 case wintype_TextBuffer:
40 GtkWidget *scroll_window = gtk_scrolled_window_new(NULL, NULL);
41 GtkWidget *window = gtk_text_view_new();
42 gtk_container_add( GTK_CONTAINER(scroll_window), window );
43 gtk_box_pack_end(vbox, scroll_window, TRUE, TRUE, 0);
44 gtk_widget_show_all(scroll_window);
46 new_window->widget = window;
47 new_window->window_stream = window_stream_new(new_window);
48 new_window->echo_stream = NULL;
49 new_window->input_request_type = INPUT_REQUEST_NONE;
50 new_window->line_input_buffer = NULL;
51 new_window->line_input_buffer_unicode = NULL;
56 g_warning("glk_window_open: unsupported window type");
61 new_window->window_node = root_window;
67 glk_set_window(winid_t window)
69 glk_stream_set_current( glk_window_get_stream(window) );
72 strid_t glk_window_get_stream(winid_t window)
74 return window->window_stream;