X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fnetradiant.git;a=blobdiff_plain;f=radiant%2Fconsole.cpp;h=e12b4733c4800ccb95c5e741778d66a2bcc046ab;hp=d42022472082ac9f42fa6cd36d6d7ec0cc17594a;hb=a9e5bfdf2a458e89978ee52ebbd3711884b54b29;hpb=c001d05fb1dc902a725dbf50df82e88a1a526a21 diff --git a/radiant/console.cpp b/radiant/console.cpp index d4202247..e12b4733 100644 --- a/radiant/console.cpp +++ b/radiant/console.cpp @@ -67,7 +67,7 @@ void Sys_LogFile( bool enable ){ << "This is NetRadiant '" RADIANT_VERSION "' compiled " __DATE__ "\n" RADIANT_ABOUTMSG "\n"; } else{ - ui::root.alert( "Failed to create log file, check write permissions in Radiant directory.\n", + ui::root.window().alert( "Failed to create log file, check write permissions in Radiant directory.\n", "Console logging", ui::alert_type::OK, ui::alert_icon::Error ); } } @@ -81,14 +81,13 @@ void Sys_LogFile( bool enable ){ } } -ui::Widget g_console; +ui::TextView g_console{ui::null}; void console_clear(){ - GtkTextBuffer* buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW( g_console ) ); - gtk_text_buffer_set_text( buffer, "", -1 ); + g_console.text(""); } -void console_populate_popup( GtkTextView* textview, ui::Menu menu, gpointer user_data ){ +void console_populate_popup( ui::TextView textview, ui::Menu menu, gpointer user_data ){ menu_separator( menu ); ui::Widget item(ui::MenuItem( "Clear" )); @@ -98,23 +97,23 @@ void console_populate_popup( GtkTextView* textview, ui::Menu menu, gpointer user } gboolean destroy_set_null( ui::Window widget, ui::Widget* p ){ - *p = ui::Widget(); + *p = ui::Widget{ui::null}; return FALSE; } WidgetFocusPrinter g_consoleWidgetFocusPrinter( "console" ); ui::Widget Console_constructWindow( ui::Window toplevel ){ - auto scr = ui::ScrolledWindow(); - gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scr ), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC ); + auto scr = ui::ScrolledWindow(ui::New); + scr.overflow(ui::Policy::AUTOMATIC, ui::Policy::AUTOMATIC); gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW( scr ), GTK_SHADOW_IN ); scr.show(); { - ui::Widget text = ui::TextView(); - gtk_widget_set_size_request( text, 0, -1 ); // allow shrinking - gtk_text_view_set_wrap_mode( GTK_TEXT_VIEW( text ), GTK_WRAP_WORD ); - gtk_text_view_set_editable( GTK_TEXT_VIEW( text ), FALSE ); + auto text = ui::TextView(ui::New); + text.dimensions(0, -1); // allow shrinking + gtk_text_view_set_wrap_mode( text, GTK_WRAP_WORD ); + gtk_text_view_set_editable( text, FALSE ); scr.add(text); text.show(); g_console = text; @@ -143,7 +142,7 @@ public: GtkTextBufferOutputStream( GtkTextBuffer* textBuffer, GtkTextIter* iter, GtkTextTag* tag ) : textBuffer( textBuffer ), iter( iter ), tag( tag ){ } std::size_t write( const char* buffer, std::size_t length ){ - gtk_text_buffer_insert_with_tags( textBuffer, iter, buffer, gint( length ), tag, 0 ); + gtk_text_buffer_insert_with_tags( textBuffer, iter, buffer, gint( length ), tag, NULL ); return length; } }; @@ -163,8 +162,8 @@ std::size_t Sys_Print( int level, const char* buf, std::size_t length ){ } if ( level != SYS_NOCON ) { - if ( g_console != 0 ) { - GtkTextBuffer* buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW( g_console ) ); + if ( g_console ) { + GtkTextBuffer* buffer = gtk_text_view_get_buffer( g_console ); GtkTextIter iter; gtk_text_buffer_get_end_iter( buffer, &iter ); @@ -174,9 +173,9 @@ std::size_t Sys_Print( int level, const char* buf, std::size_t length ){ const GdkColor yellow = { 0, 0xb0ff, 0xb0ff, 0x0000 }; const GdkColor red = { 0, 0xffff, 0x0000, 0x0000 }; - static GtkTextTag* error_tag = gtk_text_buffer_create_tag( buffer, "red_foreground", "foreground-gdk", &red, 0 ); - static GtkTextTag* warning_tag = gtk_text_buffer_create_tag( buffer, "yellow_foreground", "foreground-gdk", &yellow, 0 ); - static GtkTextTag* standard_tag = gtk_text_buffer_create_tag( buffer, "black_foreground", 0 ); + static GtkTextTag* error_tag = gtk_text_buffer_create_tag( buffer, "red_foreground", "foreground-gdk", &red, NULL ); + static GtkTextTag* warning_tag = gtk_text_buffer_create_tag( buffer, "yellow_foreground", "foreground-gdk", &yellow, NULL ); + static GtkTextTag* standard_tag = gtk_text_buffer_create_tag( buffer, "black_foreground", NULL ); GtkTextTag* tag; switch ( level ) { @@ -208,7 +207,7 @@ std::size_t Sys_Print( int level, const char* buf, std::size_t length ){ // update console widget immediatly if we're doing something time-consuming if ( contains_newline ) { - gtk_text_view_scroll_mark_onscreen( GTK_TEXT_VIEW( g_console ), end ); + gtk_text_view_scroll_mark_onscreen( g_console, end ); if ( !ScreenUpdates_Enabled() && gtk_widget_get_realized( g_console ) ) { ScreenUpdates_process();