/**
 * 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));
}
Пример #2
0
static void
terminal_receiver_impl_set_screen (TerminalReceiverImpl *impl,
                                TerminalScreen *screen)
{
  TerminalReceiverImplPrivate *priv;

  g_return_if_fail (TERMINAL_IS_RECEIVER_IMPL (impl));
  g_return_if_fail (screen == NULL || TERMINAL_IS_SCREEN (screen));

  priv = impl->priv;
  if (priv->screen == screen)
    return;

  if (priv->screen) {
    g_signal_handlers_disconnect_matched (priv->screen,
                                          G_SIGNAL_MATCH_DATA,
                                          0, 0, NULL, NULL, impl);
  }

  priv->screen = screen;
  if (screen) {
    g_signal_connect (screen, "child-exited",
                      G_CALLBACK (child_exited_cb), 
                      impl);
    g_signal_connect_swapped (screen, "destroy",
                              G_CALLBACK (_terminal_receiver_impl_unset_screen), 
                              impl);
  }

  g_object_notify (G_OBJECT (impl), "screen");
}
Пример #3
0
void 
terminal_mdi_container_add_screen (TerminalMdiContainer *container,
                                   TerminalScreen *screen)
{
  g_return_if_fail (TERMINAL_IS_MDI_CONTAINER (container));
  g_return_if_fail (TERMINAL_IS_SCREEN (screen));

  TERMINAL_MDI_CONTAINER_GET_IFACE (container)->add_screen (container, screen);
}