// g++ -o gtk-empty-titlebar -Wall gtk-empty-titlebar.cpp `pkg-config --libs --cflags gtk+-3.0` && ./gtk-empty-titlebar

#include <gtk/gtk.h>

GtkWidget* window;

static gboolean
button_press (GtkWidget      *widget,
              GdkEventButton *event,
              GtkWidget      *window)
{
    static bool fullscreen = false;
    if (fullscreen) {
        gtk_window_unfullscreen(GTK_WINDOW(window));
    } else {
        gtk_window_fullscreen(GTK_WINDOW(window));
    }
    fullscreen = !fullscreen;
}

int
main( int argc, char *argv[])
{
  gtk_init(&argc, &argv);

  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

  g_signal_connect_swapped(G_OBJECT(window), "destroy",
    G_CALLBACK(gtk_main_quit), NULL);

  GtkWidget *header = gtk_fixed_new();
  gtk_window_set_titlebar(GTK_WINDOW(window), header);

  GtkWidget *button = gtk_button_new_with_label("Press me!");
  g_signal_connect(button, "button-press-event", G_CALLBACK(button_press), window);
  gtk_container_add(GTK_CONTAINER(window), button);

  gtk_widget_show_all(window);

  gtk_window_maximize(GTK_WINDOW(window));

  gtk_main();

  return 0;
}
