]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/console.cpp
GTK: wrap gtk_widget_set_size_request
[xonotic/netradiant.git] / radiant / console.cpp
index 2f156dd27de9630087eff3b000f4f2c905eede99..e12b4733c4800ccb95c5e741778d66a2bcc046ab 100644 (file)
@@ -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;
@@ -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 );
@@ -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();