Author Archives: te-bachi

GTK+ Container Superclass

Description

  • Container widgets are the inner nodes in the resulting tree of widgets: they contain other widgets.
  • There are two major kinds of container widgets in GTK+.
    • The first type of container widget has a single child widget and derives from GtkBin. These containers are decorators, which add some kind of functionality to the child.
    • The second type of container can have more than one child; its purpose is to manage layout. This means that these containers assign (= zuweisen, bestimmen) sizes and positions to their children.

GtkContainer: Description

Child properties

  • GtkContainer introduces child properties. These are object properties that are not specific to either the container or the contained widget, but rather to their relation.

GtkContainer: Child properties

Border

  • The border is added on all sides of the container.
  • To add space to only one side, one approach is to create a GtkAlignment widget, call gtk_widget_set_size_request() to give it a size, and place it on the side of the container as a spacer.

gtk_container_set_border_width()

GTK+ Widget Size

Height-for-width Geometry Management

GtkWidget

gtk_widget_set_size_request()
gtk_widget_size_request() (deprecated)
gtk_widget_get_preferred_size()
gtk_distribute_natural_allocation()
struct GtkRequestedSize
gtk_widget_get_allocation()
gtk_widget_size_allocate()

GtkWindow

gtk_window_set_default_size()
tk_window_set_default_geometry()
gtk_window_set_geometry_hints()

Forum

Totally fed-up with get Gtk widget height and width
Maximum Size?
GTK Widget Size (actual size, not requested size)

Set Windows Geometry

Gtk: Forbid vertical resize of GtkWindow
How to reset geometry hints made with gtk_window_set_geometry_hints
struct GdkGeometry
enum GdkWindowHints

GTK+ Resource Files

#include <gtk/gtk.h>

int
main(gint argc, gchar **argv)
{
    GtkWidget *window;
    GtkPaned  *paned;

    gtk_init(&argc, &argv);

    gtk_rc_parse_string("style 'my_style' {\n"
                        "    GtkPaned::handle-size = 200\n"
                        " }\n"
                        "widget '*' style 'my_style'");

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    paned = (GtkPaned *) gtk_hpaned_new();
    gtk_paned_add1(paned, gtk_label_new("left"));
    gtk_paned_add2(paned, gtk_label_new("right"));

    gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(paned));

    gtk_widget_show_all(window);
    gtk_main();

    return 0;
}

change gtk.Paned handle size

GtkPaned and the “notify::position” Signal

“You can connect to “notify::position” signal.”
How to be informed when gtk.paned slider’s position changed?

“That’s the notify signal of GObject. You can use it to be notified when the property of a gobject changes.”
Re: VPaned move events

GObject Documentation

The GObject “notify” signal
g_object_notify()
GParamSpec / struct GParamSpec
gtk_container_child_notify()

Signal Callback

GObject Brain Dump

Ubuntu: Disable Guest Account

Ubuntu 12.x / 13.x

allow-guest=false

Ubuntu Tip:How to disable guest account in ubuntu 12.04(Precise)
Disable guest account in Ubuntu 13.04

Ubuntu 14.x

$ sudo sh -c 'printf "[SeatDefaults]\nallow-guest=false\n" > /usr/share/lightdm/lightdm.conf.d/50-no-guest.conf'
$ sudo sh -c 'printf "[SeatDefaults]\ngreeter-show-remote-login=false\n" >/usr/share/lightdm/lightdm.conf.d/50-no-remote-login.conf'

Removing Guest Session at login in Ubuntu 14.04 [duplicate]