static void mpl_panel_gtk_hide (MplPanelClient *self) { MplPanelGtkPrivate *priv = MPL_PANEL_GTK (self)->priv; gtk_widget_hide (priv->window); }
/** * 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; }
/** * 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); }
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); }
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); }
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); }
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; }