How to create gtk + titleless windows with resizing and moving properties working

How to create gtk + titleless windows with resizing and moving properties. I checked the function gtk_window_set_decorated, but disabled resizing and moving window functions. I found this answer already , but I do not think that it has anything to do with it.

I tried setting resizeable true after gtk_window_set_decorated but still not working

Please check the code

    #include <gtk/gtk.h>
    int main (int argc,
    char *argv[])
    {  
      GtkWidget *window;
      /* Initialize GTK+ and all of its supporting libraries. */
      gtk_init (&argc, &argv);
      /* Create a new window, give it a title and display it to the user. */
      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
      gtk_window_set_title (GTK_WINDOW (window), "Hello World");
      gtk_window_set_decorated (GTK_WINDOW (window), FALSE);
      gtk_window_set_resizable (GTK_WINDOW (window), TRUE);
      //gtk_window_set_gravity(GTK_WINDOW (window), GDK_GRAVITY_NORTH_EAST);
      //gtk_window_set_deletable (GTK_WINDOW (window), FALSE);
      gtk_widget_show (window);
      /* Hand control over to the main loop. */
      gtk_main ();
      return 0;
    }
+4
source share
1 answer

Glade, , . , , "" "" "" (== true) "" (== false, ).

.glade, , , :

<?xml version="1.0" encoding="UTF-8"?>
<interface>
  <requires lib="gtk+" version="2.24"/>
  <!-- interface-naming-policy project-wide -->
  <object class="GtkWindow" id="window1">
    <property name="can_focus">False</property>
    <property name="type_hint">dialog</property>
    <property name="decorated">False</property>
    <child>
      <placeholder/>
    </child>
  </object>
</interface>

example.glade, C- :

#include <gtk/gtk.h>
#include <stdio.h>

void on_win_destroy(GtkWidget *obj, gpointer u_data)
{
    gtk_main_quit();
}

int main ( int argc, char **argv)
{
    GtkBuilder *b;
    GtkWidget *win;
    gtk_init( &argc, &argv);
    b = gtk_builder_new_from_file("example.glade");
    win = GTK_WIDGET(
        gtk_builder_get_object(
            b,
            "window1"
        )
    );
    g_signal_connect(
        win,
        "destroy",
        G_CALLBACK(on_win_destroy),
        NULL
    );
    gtk_widget_show(win);
    gtk_main();
    return 0;
}

, :

$ gcc source.c $(pkg-config gtk+-3.0 --libs --cflags) -o binName

:

$ ./binName

... , , , , , . , , . , , . , . - .

-1

Source: https://habr.com/ru/post/1539235/


All Articles