gdm r5707 - in trunk: . gui/simple-greeter
- From: halfline svn gnome org
- To: svn-commits-list gnome org
- Subject: gdm r5707 - in trunk: . gui/simple-greeter
- Date: Thu, 7 Feb 2008 01:43:39 +0000 (GMT)
Author: halfline
Date: Thu Feb 7 01:43:39 2008
New Revision: 5707
URL: http://svn.gnome.org/viewvc/gdm?rev=5707&view=rev
Log:
2008-02-06 Ray Strode <rstrode redhat com>
Add the session option widget to the panel
* gui/simple-greeter/gdm-greeter-panel.c (GdmGreeterPanelPrivate):
Add session_option_widget to struct.
(gdm_greeter_panel_class_init): add session-selected signal
(on_session_activated): new function to handle session-activated
signal from the option widget. It emits session-selected on the
panel.
(gdm_greeter_panel_init): create the option widget and connect
session-activated to on_session_activated
* gui/simple-greeter/gdm-greeter-panel.h: add session_selected
member to class struct
* gui/simple-greeter/Makefile.am: add session option widget to
makefile
Modified:
trunk/ChangeLog
trunk/gui/simple-greeter/Makefile.am
trunk/gui/simple-greeter/gdm-greeter-panel.c
trunk/gui/simple-greeter/gdm-greeter-panel.h
Modified: trunk/gui/simple-greeter/Makefile.am
==============================================================================
--- trunk/gui/simple-greeter/Makefile.am (original)
+++ trunk/gui/simple-greeter/Makefile.am Thu Feb 7 01:43:39 2008
@@ -71,6 +71,8 @@
gdm-greeter-login-window.c \
gdm-chooser-widget.h \
gdm-chooser-widget.c \
+ gdm-sessions.h \
+ gdm-sessions.c \
gdm-session-chooser-widget.h \
gdm-session-chooser-widget.c \
gdm-user-chooser-widget.h \
@@ -107,6 +109,10 @@
gdm-language-chooser-dialog.c \
gdm-language-option-widget.h \
gdm-language-option-widget.c \
+ gdm-sessions.h \
+ gdm-sessions.c \
+ gdm-session-option-widget.h \
+ gdm-session-option-widget.c \
$(NULL)
test_greeter_panel_LDADD = \
@@ -146,6 +152,8 @@
test-session-chooser.c \
gdm-chooser-widget.h \
gdm-chooser-widget.c \
+ gdm-sessions.h \
+ gdm-sessions.c \
gdm-session-chooser-widget.h \
gdm-session-chooser-widget.c \
gdm-session-chooser-dialog.h \
@@ -218,6 +226,10 @@
gdm-language-chooser-dialog.c \
gdm-language-option-widget.h \
gdm-language-option-widget.c \
+ gdm-sessions.h \
+ gdm-sessions.c \
+ gdm-session-option-widget.h \
+ gdm-session-option-widget.c \
gdm-session-chooser-widget.h \
gdm-session-chooser-widget.c \
gdm-user-chooser-widget.h \
Modified: trunk/gui/simple-greeter/gdm-greeter-panel.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-greeter-panel.c (original)
+++ trunk/gui/simple-greeter/gdm-greeter-panel.c Thu Feb 7 01:43:39 2008
@@ -32,6 +32,7 @@
#include "gdm-greeter-panel.h"
#include "gdm-language-option-widget.h"
+#include "gdm-session-option-widget.h"
#include "na-tray.h"
@@ -44,6 +45,7 @@
GtkWidget *hbox;
GtkWidget *hostname_label;
GtkWidget *language_option_widget;
+ GtkWidget *session_option_widget;
};
enum {
@@ -52,6 +54,7 @@
enum {
LANGUAGE_SELECTED,
+ SESSION_SELECTED,
NUMBER_OF_SIGNALS
};
@@ -387,6 +390,17 @@
G_TYPE_NONE,
1, G_TYPE_STRING);
+ signals[SESSION_SELECTED] =
+ g_signal_new ("session-selected",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GdmGreeterPanelClass, session_selected),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 1, G_TYPE_STRING);
+
g_type_class_add_private (klass, sizeof (GdmGreeterPanelPrivate));
}
@@ -409,6 +423,24 @@
}
static void
+on_session_activated (GdmSessionOptionWidget *widget,
+ GdmGreeterPanel *panel)
+{
+
+ char *session;
+
+ session = gdm_session_option_widget_get_current_session (GDM_SESSION_OPTION_WIDGET (panel->priv->session_option_widget));
+
+ if (session == NULL) {
+ return;
+ }
+
+ g_signal_emit (panel, signals[SESSION_SELECTED], 0, session);
+
+ g_free (session);
+}
+
+static void
gdm_greeter_panel_init (GdmGreeterPanel *panel)
{
NaTray *tray;
@@ -441,6 +473,13 @@
gtk_box_pack_start (GTK_BOX (panel->priv->hbox), panel->priv->language_option_widget, FALSE, FALSE, 6);
gtk_widget_show (panel->priv->language_option_widget);
+ panel->priv->session_option_widget = gdm_session_option_widget_new ();
+ g_signal_connect (G_OBJECT (panel->priv->session_option_widget),
+ "session-activated",
+ G_CALLBACK (on_session_activated), panel);
+ gtk_box_pack_start (GTK_BOX (panel->priv->hbox), panel->priv->session_option_widget, FALSE, FALSE, 6);
+ gtk_widget_show (panel->priv->session_option_widget);
+
/* FIXME: we should only show hostname on panel when connected
to a remote host */
if (0) {
Modified: trunk/gui/simple-greeter/gdm-greeter-panel.h
==============================================================================
--- trunk/gui/simple-greeter/gdm-greeter-panel.h (original)
+++ trunk/gui/simple-greeter/gdm-greeter-panel.h Thu Feb 7 01:43:39 2008
@@ -47,6 +47,9 @@
void (* language_selected) (GdmGreeterPanel *panel,
const char *text);
+
+ void (* session_selected) (GdmGreeterPanel *panel,
+ const char *text);
} GdmGreeterPanelClass;
GType gdm_greeter_panel_get_type (void);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]