static void terminal_screen_container_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { TerminalScreenContainer *container = TERMINAL_SCREEN_CONTAINER (object); TerminalScreenContainerPrivate *priv = container->priv; switch (prop_id) { case PROP_SCREEN: priv->screen = g_value_get_object (value); break; case PROP_HSCROLLBAR_POLICY: terminal_screen_container_set_policy (container, g_value_get_enum (value), priv->vscrollbar_policy); break; case PROP_VSCROLLBAR_POLICY: terminal_screen_container_set_policy (container, priv->hscrollbar_policy, g_value_get_enum (value)); break; case PROP_WINDOW_PLACEMENT: terminal_screen_container_set_placement_internal (container, g_value_get_enum (value)); break; case PROP_WINDOW_PLACEMENT_SET: terminal_screen_container_set_placement_set (container, g_value_get_boolean (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
/** * terminal_screen_container_get_from_screen: * @screen: a #TerminalScreenContainerPrivate * * Returns the #TerminalScreenContainer containing @screen. */ TerminalScreenContainer * terminal_screen_container_get_from_screen (TerminalScreen *screen) { g_return_val_if_fail (TERMINAL_IS_SCREEN (screen), NULL); return TERMINAL_SCREEN_CONTAINER (gtk_widget_get_ancestor (GTK_WIDGET (screen), TERMINAL_TYPE_SCREEN_CONTAINER)); }
static GObject * terminal_screen_container_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_params) { GObject *object; TerminalScreenContainer *container; TerminalScreenContainerPrivate *priv; object = G_OBJECT_CLASS (terminal_screen_container_parent_class)->constructor (type, n_construct_properties, construct_params); container = TERMINAL_SCREEN_CONTAINER (object); priv = container->priv; g_assert (priv->screen != NULL); #ifdef USE_SCROLLED_WINDOW priv->scrolled_window = gtk_scrolled_window_new (NULL, gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (priv->screen))); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->scrolled_window), priv->hscrollbar_policy, priv->vscrollbar_policy); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (priv->scrolled_window), GTK_SHADOW_NONE); gtk_container_add (GTK_CONTAINER (priv->scrolled_window), GTK_WIDGET (priv->screen)); gtk_widget_show (GTK_WIDGET (priv->screen)); gtk_box_pack_end (GTK_BOX (container), priv->scrolled_window, TRUE, TRUE, 0); gtk_widget_show (priv->scrolled_window); #ifdef MATE_ENABLE_DEBUG g_signal_connect (priv->scrolled_window, "size-allocate", G_CALLBACK (size_allocate_cb), container); #endif #else priv->hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); priv->vscrollbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (priv->screen))); gtk_box_pack_start (GTK_BOX (priv->hbox), GTK_WIDGET (priv->screen), TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (priv->hbox), priv->vscrollbar, FALSE, FALSE, 0); gtk_box_pack_end (GTK_BOX (container), priv->hbox, TRUE, TRUE, 0); gtk_widget_show_all (priv->hbox); #endif /* USE_SCROLLED_WINDOW */ _terminal_screen_update_scrollbar (priv->screen); return object; }