示例#1
0
static void
mpl_panel_gtk_hide (MplPanelClient *self)
{
  MplPanelGtkPrivate *priv = MPL_PANEL_GTK (self)->priv;

  gtk_widget_hide (priv->window);
}
示例#2
0
/**
 * mpl_panel_gtk_get_window:
 * @panel: #MplPanelGtk
 *
 * Returns the top level #GtkWindow of the panel.
 *
 * Returns: (transfer none): top level #GtkWindow
 */
GtkWidget *
mpl_panel_gtk_get_window (MplPanelGtk *panel)
{
  MplPanelGtkPrivate *priv = MPL_PANEL_GTK (panel)->priv;

  return priv->window;
}
示例#3
0
/**
 * mpl_panel_gtk_set_child:
 * @panel: MplPanelGtk
 * @child: #GtkWidget.
 *
 * Set's the content widget of the panel to be the provided child widget.
 */
void
mpl_panel_gtk_set_child (MplPanelGtk *panel, GtkWidget *child)
{
  MplPanelGtkPrivate *priv = MPL_PANEL_GTK (panel)->priv;

  if (priv->child)
    gtk_container_remove (GTK_CONTAINER (priv->window), priv->child);

  priv->child = child;

  gtk_container_add (GTK_CONTAINER (priv->window), child);
}
示例#4
0
static void
mpl_panel_gtk_set_position (MplPanelClient *self, gint x, gint y)
{
  MplPanelGtkPrivate  *priv = MPL_PANEL_GTK (self)->priv;
  MplPanelClientClass *p_class;

  p_class = MPL_PANEL_CLIENT_CLASS (mpl_panel_gtk_parent_class);

  gtk_window_move (GTK_WINDOW (priv->window), x, y);

  if (p_class->set_position)
    p_class->set_position (self, x, y);
}
示例#5
0
static void
mpl_panel_gtk_set_size (MplPanelClient *self, guint width, guint height)
{
  MplPanelGtkPrivate  *priv = MPL_PANEL_GTK (self)->priv;
  MplPanelClientClass *p_class;

  p_class = MPL_PANEL_CLIENT_CLASS (mpl_panel_gtk_parent_class);

  gtk_widget_set_size_request (priv->window, width, height);
  gtk_window_resize (GTK_WINDOW (priv->window), width, height);

  if (p_class->set_size)
    p_class->set_size (self, width, height);
}
示例#6
0
static void
mpl_panel_gtk_constructed (GObject *self)
{
  MplPanelGtkPrivate *priv = MPL_PANEL_GTK (self)->priv;
  GtkWidget *window;

  if (G_OBJECT_CLASS (mpl_panel_gtk_parent_class)->constructed)
    G_OBJECT_CLASS (mpl_panel_gtk_parent_class)->constructed (self);

  priv->window = window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_widget_set_name (priv->window, "MplPanelGtk");
  if (!mpl_utils_panel_in_standalone_mode ())
    {
      gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_DOCK);
      gtk_window_stick (GTK_WINDOW (window));
    }

  /*
   * Realize the window so we can get the xid.
   */
  gtk_widget_realize (window);

  g_object_set (self, "xid", GDK_WINDOW_XID (gtk_widget_get_window (window)), NULL);
}
示例#7
0
int
main (int argc, char *argv[])
{
	MplPanelClient *panel;
	GtkWidget      *window, *content;
	GtkRequisition  req;
	gboolean        standalone = FALSE;
	GtkSettings    *settings;
	GError         *error = NULL;
	GOptionEntry    entries[] = {
		{ "standalone", 's', 0, G_OPTION_ARG_NONE, &standalone,
		_("Run in standalone mode"), NULL },
		{ NULL }
	};

	bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
	textdomain (GETTEXT_PACKAGE);

	g_set_application_name (_("Moblin Bluetooth Panel"));
	gtk_init_with_args (&argc, &argv, _("- Moblin Bluetooth Panel"),
				entries, GETTEXT_PACKAGE, &error);

	if (error) {
		g_printerr ("%s\n", error->message);
		g_error_free (error);
		return 1;
	}

	gtk_window_set_default_icon_name ("bluetooth");

	/* Force to correct theme */
	settings = gtk_settings_get_default ();
	gtk_settings_set_string_property (settings, "gtk-theme-name",
					"Moblin-Netbook", NULL);

	if (standalone) {
		window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
		g_signal_connect (window, "delete-event", (GCallback) gtk_main_quit,
				NULL);
		gtk_widget_set_size_request (window, 1000, -1);
		content = moblin_panel_new ();
		gtk_widget_show (content);

		gtk_container_add (GTK_CONTAINER (window), content);
		gtk_widget_show (window);
	}  else {
		panel = mpl_panel_gtk_new (MPL_PANEL_BLUETOOTH, _("bluetooth"),
					THEME_DIR "/bluetooth-panel.css",
					"state-idle", TRUE);
		window  = mpl_panel_gtk_get_window (MPL_PANEL_GTK (panel));

		content = moblin_panel_new ();
		g_signal_connect (panel, "hide-end", (GCallback) _reset_view_cb, content);
		g_signal_connect (content, "state-changed",
				G_CALLBACK (bluetooth_status_changed), panel);
		g_signal_connect (content, "request-focus",
				  G_CALLBACK (panel_request_focus), panel);
		gtk_widget_show (content);

		gtk_container_add (GTK_CONTAINER (window), content);
		gtk_widget_size_request (window, &req);
		mpl_panel_client_set_height_request (panel, req.height);
	}

	gtk_main ();

	return 0;
}