Remove libglade dependency on gnome-about-me

This commit is contained in:
Robert Ancell 2009-07-30 13:24:02 +10:00
parent 409507b4da
commit 872a2f0da7
10 changed files with 650 additions and 3661 deletions

View file

@ -3,7 +3,7 @@ SUBDIRS = icons
# This is used in GNOMECC_CAPPLETS_CFLAGS
cappletname = about-me
glade_files = gnome-about-me.glade gnome-about-me-fingerprint.glade
ui_files = gnome-about-me-dialog.ui gnome-about-me-password.ui gnome-about-me-fingerprint.ui
Desktop_in_files = gnome-about-me.desktop.in
gnome_about_me_SOURCES = \
@ -31,8 +31,8 @@ gnome_about_me_LDFLAGS = -export-dynamic
desktopdir = $(datadir)/applications
desktop_DATA = $(Desktop_in_files:.desktop.in=.desktop)
gladedir = $(pkgdatadir)/glade
glade_DATA = $(glade_files)
uidir = $(pkgdatadir)/ui
ui_DATA = $(ui_files)
INCLUDES = \
$(GNOMECC_CAPPLETS_CFLAGS) \
@ -40,7 +40,7 @@ INCLUDES = \
$(POLKIT_GNOME_CFLAGS) \
-DDATADIR="\"$(datadir)\"" \
-DGNOMECC_DATA_DIR="\"$(pkgdatadir)\"" \
-DGNOMECC_GLADE_DIR="\"$(gladedir)\"" \
-DGNOMECC_UI_DIR="\"$(uidir)\"" \
-DGNOMECC_PIXMAP_DIR="\"$(pkgdatadir)/pixmaps\"" \
-DGNOMELOCALEDIR="\"$(datadir)/locale\""
@ -56,6 +56,6 @@ marshal.c: marshal.h
endif # BUILD_ABOUTME
CLEANFILES = $(GNOMECC_CAPPLETS_CLEANFILES) $(desktop_DATA) $(MARSHALFILES)
EXTRA_DIST = $(glade_files) fprintd-marshal.list
EXTRA_DIST = $(ui_files) fprintd-marshal.list
-include $(top_srcdir)/git.mk

View file

@ -19,15 +19,17 @@
#include <glib/gi18n.h>
#include <gtk/gtk.h>
#include <glade/glade.h>
#include <dbus/dbus-glib-bindings.h>
#include "fingerprint-strings.h"
#include "capplet-util.h"
/* This must match the number of images on the 2nd page in the glade file */
/* This must match the number of images on the 2nd page in the UI file */
#define MAX_ENROLL_STAGES 3
#undef WID
#define WID(s) GTK_WIDGET (gtk_builder_get_object (dialog, s))
static DBusGProxy *manager = NULL;
static DBusGConnection *connection = NULL;
static gboolean is_disable = FALSE;
@ -43,8 +45,7 @@ typedef struct {
GtkWidget *disable;
GtkWidget *ass;
GladeXML *dialog_page1;
GladeXML *dialog_page2;
GtkBuilder *dialog;
DBusGProxy *device;
gboolean is_swipe;
@ -208,7 +209,7 @@ delete_fingerprints (void)
}
static void
delete_fingerprints_question (GladeXML *dialog, GtkWidget *enable, GtkWidget *disable)
delete_fingerprints_question (GtkBuilder *dialog, GtkWidget *enable, GtkWidget *disable)
{
GtkWidget *question;
GtkWidget *button;
@ -254,8 +255,7 @@ enroll_data_destroy (EnrollData *data)
case STATE_NONE:
g_free (data->name);
g_object_unref (data->device);
g_object_unref (data->dialog_page1);
g_object_unref (data->dialog_page2);
g_object_unref (data->dialog);
gtk_widget_destroy (data->ass);
g_free (data);
@ -263,7 +263,7 @@ enroll_data_destroy (EnrollData *data)
}
static const char *
selected_finger (GladeXML *dialog)
selected_finger (GtkBuilder *dialog)
{
int index;
@ -304,13 +304,13 @@ selected_finger (GladeXML *dialog)
static void
finger_radio_button_toggled (GtkToggleButton *button, EnrollData *data)
{
data->finger = selected_finger (data->dialog_page1);
data->finger = selected_finger (data->dialog);
}
static void
finger_combobox_changed (GtkComboBox *combobox, EnrollData *data)
{
data->finger = selected_finger (data->dialog_page1);
data->finger = selected_finger (data->dialog);
}
static void
@ -328,7 +328,7 @@ assistant_cancelled (GtkAssistant *ass, EnrollData *data)
static void
enroll_result (GObject *object, const char *result, gboolean done, EnrollData *data)
{
GladeXML *dialog = data->dialog_page2;
GtkBuilder *dialog = data->dialog;
char *msg;
if (g_str_equal (result, "enroll-completed") || g_str_equal (result, "enroll-stage-passed")) {
@ -376,7 +376,7 @@ assistant_prepare (GtkAssistant *ass, GtkWidget *page, EnrollData *data)
if (g_str_equal (name, "enroll")) {
DBusGProxy *p;
GError *error = NULL;
GladeXML *dialog = data->dialog_page2;
GtkBuilder *dialog = data->dialog;
char *path;
guint i;
GValue value = { 0, };
@ -488,7 +488,7 @@ enroll_fingerprints (GtkWindow *parent, GtkWidget *enable, GtkWidget *disable)
{
DBusGProxy *device, *p;
GHashTable *props;
GladeXML *dialog;
GtkBuilder *dialog;
EnrollData *data;
GtkWidget *ass;
char *msg;
@ -532,7 +532,11 @@ enroll_fingerprints (GtkWindow *parent, GtkWidget *enable, GtkWidget *disable)
}
g_object_unref (p);
ass = gtk_assistant_new ();
dialog = gtk_builder_new ();
gtk_builder_add_from_file (dialog, GNOMECC_UI_DIR "/gnome-about-me-fingerprint.ui", NULL);
data->dialog = dialog;
ass = WID ("assistant");
gtk_window_set_title (GTK_WINDOW (ass), _("Enable Fingerprint Login"));
gtk_window_set_transient_for (GTK_WINDOW (ass), parent);
gtk_window_set_position (GTK_WINDOW (ass), GTK_WIN_POS_CENTER_ON_PARENT);
@ -544,13 +548,6 @@ enroll_fingerprints (GtkWindow *parent, GtkWidget *enable, GtkWidget *disable)
G_CALLBACK (assistant_prepare), data);
/* Page 1 */
dialog = glade_xml_new (GNOMECC_GLADE_DIR "/gnome-about-me-fingerprint.glade",
"page1", NULL);
data->dialog_page1 = dialog;
gtk_assistant_append_page (GTK_ASSISTANT (ass), WID("page1"));
gtk_assistant_set_page_title (GTK_ASSISTANT (ass), WID("page1"), _("Select finger"));
gtk_assistant_set_page_type (GTK_ASSISTANT (ass), WID("page1"), GTK_ASSISTANT_PAGE_CONTENT);
gtk_combo_box_set_active (GTK_COMBO_BOX (WID ("finger_combobox")), 0);
g_signal_connect (G_OBJECT (WID ("radiobutton1")), "toggled",
@ -578,15 +575,10 @@ enroll_fingerprints (GtkWindow *parent, GtkWidget *enable, GtkWidget *disable)
gtk_assistant_set_page_complete (GTK_ASSISTANT (ass), WID("page1"), TRUE);
/* Page 2 */
dialog = glade_xml_new (GNOMECC_GLADE_DIR "/gnome-about-me-fingerprint.glade",
"page2", NULL);
data->dialog_page2 = dialog;
gtk_assistant_append_page (GTK_ASSISTANT (ass), WID("page2"));
if (data->is_swipe != FALSE)
gtk_assistant_set_page_title (GTK_ASSISTANT (ass), WID("page2"), _("Swipe finger on reader"));
else
gtk_assistant_set_page_title (GTK_ASSISTANT (ass), WID("page2"), _("Place finger on reader"));
gtk_assistant_set_page_type (GTK_ASSISTANT (ass), WID("page2"), GTK_ASSISTANT_PAGE_CONTENT);
g_object_set_data (G_OBJECT (WID("page2")), "name", "enroll");
@ -595,12 +587,6 @@ enroll_fingerprints (GtkWindow *parent, GtkWidget *enable, GtkWidget *disable)
g_free (msg);
/* Page 3 */
dialog = glade_xml_new (GNOMECC_GLADE_DIR "/gnome-about-me-fingerprint.glade",
"page3", NULL);
gtk_assistant_append_page (GTK_ASSISTANT (ass), WID("page3"));
gtk_assistant_set_page_title (GTK_ASSISTANT (ass), WID("page3"), _("Done!"));
gtk_assistant_set_page_type (GTK_ASSISTANT (ass), WID("page3"), GTK_ASSISTANT_PAGE_SUMMARY);
g_object_set_data (G_OBJECT (WID("page3")), "name", "summary");
data->ass = ass;
@ -608,7 +594,7 @@ enroll_fingerprints (GtkWindow *parent, GtkWidget *enable, GtkWidget *disable)
}
void
fingerprint_button_clicked (GladeXML *dialog,
fingerprint_button_clicked (GtkBuilder *dialog,
GtkWidget *enable,
GtkWidget *disable)
{

View file

@ -1,378 +0,0 @@
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
<widget class="GtkWindow" id="window1">
<property name="visible">True</property>
<property name="title" translatable="yes">window1</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="focus_on_map">True</property>
<property name="urgency_hint">False</property>
<child>
<widget class="GtkVBox" id="page1">
<property name="border_width">12</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">12</property>
<child>
<widget class="GtkHBox" id="hbox74">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<widget class="GtkImage" id="image">
<property name="visible">True</property>
<property name="stock">gtk-dialog-info</property>
<property name="icon_size">6</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="intro-label">
<property name="visible">True</property>
<property name="label">To enable fingerprint login, you need to save one of your fingerprints, using the Acme Foobar 5000.</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">True</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="vbox70">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkRadioButton" id="radiobutton1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Right index finger</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkRadioButton" id="radiobutton2">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Left index finger</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<property name="group">radiobutton1</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkHBox" id="hbox77">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkRadioButton" id="radiobutton3">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Other finger: </property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<property name="group">radiobutton1</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="finger_combobox">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="items" translatable="yes">Left thumb
Left middle finger
Left ring finger
Left little finger
Right thumb
Right middle finger
Right ring finger
Right little finger</property>
<property name="add_tearoffs">False</property>
<property name="focus_on_click">True</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
<widget class="GtkWindow" id="window2">
<property name="visible">True</property>
<property name="title" translatable="yes">window2</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="focus_on_map">True</property>
<property name="urgency_hint">False</property>
<child>
<widget class="GtkVBox" id="page2">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkLabel" id="enroll-label">
<property name="visible">True</property>
<property name="label">In order to save your fingerprints, you need to swipe your thumb on the &quot;Acme foobar&quot; device.</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">True</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkHBox" id="enroll_hbox">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<placeholder/>
</child>
<child>
<widget class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="stock">gtk-no</property>
<property name="icon_size">6</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="stock">gtk-no</property>
<property name="icon_size">6</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkImage" id="image3">
<property name="visible">True</property>
<property name="stock">gtk-no</property>
<property name="icon_size">6</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="status-label">
<property name="visible">True</property>
<property name="label" translatable="yes"></property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
<widget class="GtkWindow" id="window3">
<property name="visible">True</property>
<property name="title" translatable="yes">window3</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="focus_on_map">True</property>
<property name="urgency_hint">False</property>
<child>
<widget class="GtkLabel" id="page3">
<property name="visible">True</property>
<property name="label" translatable="yes">Your fingerprint was successfully saved. You should now be able to log in using your fingerprint reader.</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">True</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
</child>
</widget>
</glade-interface>

View file

@ -17,11 +17,11 @@
* 02111-1307, USA.
*/
#include <glade/glade.h>
#include <gtk/gtk.h>
void set_fingerprint_label (GtkWidget *enable,
GtkWidget *disable);
void fingerprint_button_clicked (GladeXML *dialog,
void fingerprint_button_clicked (GtkBuilder *dialog,
GtkWidget *enable,
GtkWidget *disable);

View file

@ -0,0 +1,256 @@
<?xml version="1.0"?>
<interface>
<requires lib="gtk+" version="2.16"/>
<!-- interface-naming-policy toplevel-contextual -->
<object class="GtkListStore" id="model1">
<columns>
<!-- column-name gchararray -->
<column type="gchararray"/>
</columns>
<data>
<row>
<col id="0" translatable="yes">Left thumb</col>
</row>
<row>
<col id="0" translatable="yes">Left middle finger</col>
</row>
<row>
<col id="0" translatable="yes">Left ring finger</col>
</row>
<row>
<col id="0" translatable="yes">Left little finger</col>
</row>
<row>
<col id="0" translatable="yes">Right thumb</col>
</row>
<row>
<col id="0" translatable="yes">Right middle finger</col>
</row>
<row>
<col id="0" translatable="yes">Right ring finger</col>
</row>
<row>
<col id="0" translatable="yes">Right little finger</col>
</row>
</data>
</object>
<object class="GtkAssistant" id="assistant">
<property name="border_width">12</property>
<property name="title" translatable="yes">Enable Fingerprint Login</property>
<child>
<placeholder/>
</child>
<child>
<object class="GtkVBox" id="page1">
<property name="visible">True</property>
<property name="border_width">12</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkHBox" id="hbox74">
<property name="visible">True</property>
<property name="spacing">6</property>
<child>
<object class="GtkImage" id="image">
<property name="visible">True</property>
<property name="stock">gtk-dialog-info</property>
<property name="icon-size">6</property>
</object>
<packing>
<property name="expand">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="intro-label">
<property name="visible">True</property>
<property name="label">To enable fingerprint login, you need to save one of your fingerprints, using the Acme Foobar 5000.</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkVBox" id="vbox70">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkRadioButton" id="radiobutton1">
<property name="label" translatable="yes">Right index finger</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="radiobutton2">
<property name="label" translatable="yes">Left index finger</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<property name="group">radiobutton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkHBox" id="hbox77">
<property name="visible">True</property>
<child>
<object class="GtkRadioButton" id="radiobutton3">
<property name="label" translatable="yes">Other finger: </property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<property name="group">radiobutton1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="finger_combobox">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="model">model1</property>
<child>
<object class="GtkCellRendererText" id="renderer1"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="title" translatable="yes">Select finger</property>
</packing>
</child>
<child>
<object class="GtkVBox" id="page2">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="enroll-label">
<property name="visible">True</property>
<property name="label">In order to save your fingerprints, you need to swipe your thumb on the "Acme foobar" device.</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkHBox" id="enroll_hbox">
<property name="visible">True</property>
<child>
<placeholder/>
</child>
<child>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="stock">gtk-no</property>
<property name="icon-size">6</property>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="stock">gtk-no</property>
<property name="icon-size">6</property>
</object>
<packing>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkImage" id="image3">
<property name="visible">True</property>
<property name="stock">gtk-no</property>
<property name="icon-size">6</property>
</object>
<packing>
<property name="position">3</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="status-label">
<property name="visible">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="title">Swipe finger on reader</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="page3">
<property name="visible">True</property>
<property name="label" translatable="yes">Your fingerprint was successfully saved. You should now be able to log in using your fingerprint reader.</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="page_type">summary</property>
<property name="title" translatable="yes">Done!</property>
</packing>
</child>
</object>
</interface>

View file

@ -31,7 +31,6 @@
#include <gdk/gdkkeysyms.h>
#include <pwd.h>
#include <stdlib.h>
#include <glade/glade.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
@ -45,6 +44,9 @@
#include "capplet-util.h"
#include "eel-alert-dialog.h"
#undef WID
#define WID(s) GTK_WIDGET (gtk_builder_get_object (dialog, s))
/* Passwd states */
typedef enum {
PASSWD_STATE_NONE, /* Passwd is not asking for anything */
@ -55,7 +57,7 @@ typedef enum {
} PasswdState;
typedef struct {
GladeXML *xml;
GtkBuilder *ui;
/* Commonly used widgets */
GtkEntry *current_password;
@ -428,7 +430,7 @@ io_watch_stdout (GIOChannel *source, GIOCondition condition, PasswordDialog *pdi
GError *error = NULL;
gchar *msg = NULL; /* Status error message */
GladeXML *dialog;
GtkBuilder *dialog;
gboolean reinit = FALSE;
@ -437,7 +439,7 @@ io_watch_stdout (GIOChannel *source, GIOCondition condition, PasswordDialog *pdi
str = g_string_new ("");
}
dialog = pdialog->xml;
dialog = pdialog->ui;
if (g_io_channel_read_chars (source, buf, BUFSIZE, &bytes_read, &error) != G_IO_STATUS_NORMAL) {
g_warning ("IO Channel read error: %s", error->message);
@ -661,12 +663,12 @@ update_password (PasswordDialog *pdialog)
static void
passdlg_set_busy (PasswordDialog *pdialog, gboolean busy)
{
GladeXML *dialog;
GtkBuilder *dialog;
GtkWidget *toplevel;
GdkCursor *cursor = NULL;
GdkDisplay *display;
dialog = pdialog->xml;
dialog = pdialog->ui;
/* Set cursor */
toplevel = WID ("change-password");
@ -738,9 +740,9 @@ passdlg_error_dialog (GtkWindow *parent, const gchar *title,
static void
passdlg_set_auth_state (PasswordDialog *pdialog, gboolean state)
{
GladeXML *dialog;
GtkBuilder *dialog;
dialog = pdialog->xml;
dialog = pdialog->ui;
/* Widgets which require a not-authenticated state to be accessible */
g_object_set (pdialog->current_password, "sensitive", !state, NULL);
@ -813,8 +815,7 @@ passdlg_spawn_passwd (PasswordDialog *pdialog)
/* Spawn backend */
if (!spawn_passwd (pdialog, &error)) {
GtkWidget *parent = glade_xml_get_widget (pdialog->xml,
"change-password");
GtkWidget *parent = GTK_WIDGET (gtk_builder_get_object (pdialog->ui, "change-password"));
/* translators: Unable to launch <program>: <error message> */
details = g_strdup_printf (_("Unable to launch %s: %s"),
@ -865,11 +866,11 @@ passdlg_authenticate (GtkButton *button, PasswordDialog *pdialog)
static guint
passdlg_validate_passwords (PasswordDialog *pdialog)
{
GladeXML *dialog;
GtkBuilder *dialog;
const gchar *new_password, *retyped_password;
glong nlen, rlen;
dialog = pdialog->xml;
dialog = pdialog->ui;
new_password = gtk_entry_get_text (pdialog->new_password);
retyped_password = gtk_entry_get_text (pdialog->retyped_password);
@ -902,11 +903,11 @@ passdlg_validate_passwords (PasswordDialog *pdialog)
static guint
passdlg_refresh_password_state (PasswordDialog *pdialog)
{
GladeXML *dialog;
GtkBuilder *dialog;
guint ret;
gboolean valid = FALSE;
dialog = pdialog->xml;
dialog = pdialog->ui;
ret = passdlg_validate_passwords (pdialog);
@ -1008,13 +1009,14 @@ passdlg_activate (GtkEntry *entry, GtkWidget *w)
static void
passdlg_init (PasswordDialog *pdialog, GtkWindow *parent)
{
GladeXML *dialog;
GtkBuilder *dialog;
GtkWidget *wpassdlg;
GtkAccelGroup *group;
/* Initialize dialog */
dialog = glade_xml_new (GNOMECC_GLADE_DIR "/gnome-about-me.glade", "change-password", NULL);
pdialog->xml = dialog;
dialog = gtk_builder_new ();
gtk_builder_add_from_file (dialog, GNOMECC_UI_DIR "/gnome-about-me-password.ui", NULL);
pdialog->ui = dialog;
wpassdlg = WID ("change-password");
capplet_set_icon (wpassdlg, "user-info");
@ -1098,7 +1100,7 @@ void
gnome_about_me_password (GtkWindow *parent)
{
PasswordDialog *pdialog;
GladeXML *dialog;
GtkBuilder *dialog;
GtkWidget *wpassdlg;
gint result;
@ -1108,7 +1110,7 @@ gnome_about_me_password (GtkWindow *parent)
pdialog = g_new0 (PasswordDialog, 1);
passdlg_init (pdialog, parent);
dialog = pdialog->xml;
dialog = pdialog->ui;
wpassdlg = WID ("change-password");
/* Go! */

View file

@ -0,0 +1,316 @@
<?xml version="1.0"?>
<interface>
<requires lib="gtk+" version="2.16"/>
<!-- interface-naming-policy toplevel-contextual -->
<object class="GtkDialog" id="change-password">
<property name="border_width">6</property>
<property name="title" translatable="yes">Change password</property>
<property name="resizable">False</property>
<property name="type_hint">dialog</property>
<property name="has_separator">False</property>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkHBox" id="container-hbox">
<property name="visible">True</property>
<property name="border_width">6</property>
<property name="spacing">12</property>
<child>
<object class="GtkImage" id="dialog-image">
<property name="visible">True</property>
<property name="yalign">0</property>
<property name="icon_name">gtk-dialog-authentication</property>
<property name="icon-size">6</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkVBox" id="main-vbox">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="header-label">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">&lt;span size="larger" weight="bold"&gt;Change your password&lt;/span&gt;</property>
<property name="use_markup">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="description-label">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
<property name="label" translatable="yes">To change your password, enter your current password in the field below and click &lt;b&gt;Authenticate&lt;/b&gt;.
After you have authenticated, enter your new password, retype it for verification and click &lt;b&gt;Change password&lt;/b&gt;.</property>
<property name="use_markup">True</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkHBox" id="entry-hbox">
<property name="visible">True</property>
<property name="spacing">6</property>
<child>
<object class="GtkVBox" id="entry-labels-vbox">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkLabel" id="current-password-label">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">Current _password:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">current-password</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="new-password-label">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">_New password:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">new-password</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="retyped-password-label">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">_Retype new password:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">retyped-password</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkVBox" id="entry-vbox">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkHBox" id="auth-hbox">
<property name="visible">True</property>
<property name="spacing">6</property>
<child>
<object class="GtkEntry" id="current-password">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="visibility">False</property>
</object>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="authenticate-button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<child>
<object class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<child>
<object class="GtkHBox" id="hbox73">
<property name="visible">True</property>
<property name="spacing">2</property>
<child>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="stock">gtk-apply</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label1070">
<property name="visible">True</property>
<property name="label" translatable="yes">_Authenticate</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="new-password">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="visibility">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="retyped-password">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="visibility">False</property>
<property name="activates_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="status-label">
<property name="visible">True</property>
<property name="label" translatable="yes">Please type your password again in the &lt;b&gt;Retype new password&lt;/b&gt; field.</property>
<property name="use_markup">True</property>
<property name="justify">center</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="position">3</property>
</packing>
</child>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child internal-child="action_area">
<object class="GtkHButtonBox" id="dialog-action-area">
<property name="visible">True</property>
<property name="layout_style">end</property>
<child>
<object class="GtkButton" id="cancel-button">
<property name="label">gtk-close</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
<property name="receives_default">False</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="change-password-button">
<property name="label" translatable="yes">Change pa_ssword</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
</object>
</child>
<action-widgets>
<action-widget response="-7">cancel-button</action-widget>
<action-widget response="-5">change-password-button</action-widget>
</action-widgets>
</object>
</interface>

View file

@ -27,7 +27,6 @@
#include <pwd.h>
#include <gio/gio.h>
#include <gconf/gconf-client.h>
#include <glade/glade.h>
#include <pwd.h>
#include <unistd.h>
#include <libebook/e-book.h>
@ -52,13 +51,17 @@
#define EMAIL_SLOTS 4
#undef WID
#define WID(s) GTK_WIDGET (gtk_builder_get_object (dialog, s))
typedef struct {
EContact *contact;
EBook *book;
GladeXML *dialog;
GtkBuilder *dialog;
GtkWidget *enable_fingerprint_button;
GtkWidget *disable_fingerprint_button;
GtkWidget *image_chooser;
GdkScreen *screen;
GtkIconTheme *theme;
@ -303,7 +306,7 @@ about_me_focus_out (GtkWidget *widget, GdkEventFocus *event, GnomeAboutMe *me)
const gchar *wid;
gint i;
wid = glade_get_widget_name (widget);
wid = gtk_widget_get_name (widget);
if (wid == NULL)
return FALSE;
@ -493,7 +496,7 @@ about_me_setup_email (GnomeAboutMe *me)
/**
* about_me_load_string_field:
*
* wid: glade widget name
* wid: UI widget name
* cid: id of the field (EDS id)
* aid: position in the array WidToCid
**/
@ -501,8 +504,8 @@ about_me_setup_email (GnomeAboutMe *me)
static void
about_me_load_string_field (GnomeAboutMe *me, const gchar *wid, guint cid, guint aid)
{
GtkWidget *widget;
GladeXML *dialog;
GtkWidget *widget;
GtkBuilder *dialog;
const gchar *str;
dialog = me->dialog;
@ -541,22 +544,19 @@ about_me_load_string_field (GnomeAboutMe *me, const gchar *wid, guint cid, guint
static void
about_me_load_photo (GnomeAboutMe *me, EContact *contact)
{
GtkWidget *widget;
GladeXML *dialog;
GtkBuilder *dialog;
EContactPhoto *photo;
dialog = me->dialog;
widget = WID ("image-chooser");
if (me->person)
e_image_chooser_set_from_file (E_IMAGE_CHOOSER (widget), me->person);
e_image_chooser_set_from_file (E_IMAGE_CHOOSER (me->image_chooser), me->person);
photo = e_contact_get (contact, E_CONTACT_PHOTO);
if (photo && photo->type == E_CONTACT_PHOTO_TYPE_INLINED) {
me->have_image = TRUE;
e_image_chooser_set_image_data (E_IMAGE_CHOOSER (widget),
e_image_chooser_set_image_data (E_IMAGE_CHOOSER (me->image_chooser),
(char *) photo->data.inlined.data, photo->data.inlined.length);
e_contact_photo_free (photo);
} else {
@ -567,8 +567,7 @@ about_me_load_photo (GnomeAboutMe *me, EContact *contact)
static void
about_me_update_photo (GnomeAboutMe *me)
{
GtkWidget *widget;
GladeXML *dialog;
GtkBuilder *dialog;
EContactPhoto *photo;
gchar *file;
GError *error;
@ -586,8 +585,7 @@ about_me_update_photo (GnomeAboutMe *me)
gboolean do_scale = FALSE;
float scale;
widget = WID ("image-chooser");
e_image_chooser_get_image_data (E_IMAGE_CHOOSER (widget), (char **) &data, &length);
e_image_chooser_get_image_data (E_IMAGE_CHOOSER (me->image_chooser), (char **) &data, &length);
/* Before updating the image in EDS scale it to a reasonable size
so that the user doesn't get an application that does not respond
@ -689,19 +687,6 @@ about_me_load_info (GnomeAboutMe *me)
me->disable_fingerprint_button);
}
GtkWidget *
eab_create_image_chooser_widget (gchar *name,
gchar *string1, gchar *string2,
gint int1, gint int2)
{
GtkWidget *w = NULL;
w = e_image_chooser_new ();
gtk_widget_show_all (w);
return w;
}
static void
about_me_update_preview (GtkFileChooser *chooser,
GnomeAboutMe *me)
@ -762,15 +747,13 @@ about_me_image_clicked_cb (GtkWidget *button, GnomeAboutMe *me)
{
GtkFileChooser *chooser_dialog;
gint response;
GtkWidget *image_chooser;
GladeXML *dialog;
GtkWidget *image;
GtkBuilder *dialog;
GtkWidget *image;
const gchar *chooser_dir = DATADIR"/pixmaps/faces";
const gchar *pics_dir;
GtkFileFilter *filter;
dialog = me->dialog;
image_chooser = WID ("image-chooser");
chooser_dialog = GTK_FILE_CHOOSER (
gtk_file_chooser_dialog_new (_("Select Image"), GTK_WINDOW (WID ("about-me-dialog")),
@ -820,13 +803,13 @@ about_me_image_clicked_cb (GtkWidget *button, GnomeAboutMe *me)
me->have_image = TRUE;
me->image_changed = TRUE;
e_image_chooser_set_from_file (E_IMAGE_CHOOSER (image_chooser), filename);
e_image_chooser_set_from_file (E_IMAGE_CHOOSER (me->image_chooser), filename);
g_free (filename);
about_me_update_photo (me);
} else if (response == GTK_RESPONSE_NO) {
me->have_image = FALSE;
me->image_changed = TRUE;
e_image_chooser_set_from_file (E_IMAGE_CHOOSER (image_chooser), me->person);
e_image_chooser_set_from_file (E_IMAGE_CHOOSER (me->image_chooser), me->person);
about_me_update_photo (me);
}
@ -847,9 +830,7 @@ static void
about_me_icon_theme_changed (GtkWindow *window,
GtkIconTheme *theme)
{
GtkWidget *widget;
GtkIconInfo *icon;
GladeXML *dialog;
icon = gtk_icon_theme_lookup_icon (me->theme, "stock_person", 80, 0);
if (icon == NULL) {
@ -860,12 +841,8 @@ about_me_icon_theme_changed (GtkWindow *window,
gtk_icon_info_free (icon);
if (me->have_image) {
dialog = me->dialog;
widget = WID ("image-chooser");
e_image_chooser_set_from_file (E_IMAGE_CHOOSER (widget), me->person);
}
if (me->have_image)
e_image_chooser_set_from_file (E_IMAGE_CHOOSER (me->image_chooser), me->person);
}
static void
@ -887,7 +864,7 @@ about_me_button_clicked_cb (GtkDialog *dialog, gint response_id, GnomeAboutMe *m
static void
about_me_passwd_clicked_cb (GtkWidget *button, GnomeAboutMe *me)
{
GladeXML *dialog;
GtkBuilder *dialog;
dialog = me->dialog;
gnome_about_me_password (GTK_WINDOW (WID ("about-me-dialog")));
@ -907,7 +884,7 @@ about_me_setup_dialog (void)
GtkWidget *widget;
GtkWidget *main_dialog;
GtkIconInfo *icon;
GladeXML *dialog;
GtkBuilder *dialog;
GError *error = NULL;
GList *chain;
@ -917,8 +894,11 @@ about_me_setup_dialog (void)
me = g_new0 (GnomeAboutMe, 1);
dialog = glade_xml_new (GNOMECC_GLADE_DIR "/gnome-about-me.glade",
"about-me-dialog", NULL);
dialog = gtk_builder_new ();
gtk_builder_add_from_file (dialog, GNOMECC_UI_DIR "/gnome-about-me-dialog.ui", NULL);
me->image_chooser = e_image_chooser_new ();
gtk_container_add (GTK_CONTAINER (WID ("button-image")), me->image_chooser);
if (dialog == NULL) {
about_me_destroy (me);
@ -1053,8 +1033,7 @@ about_me_setup_dialog (void)
g_signal_connect (me->disable_fingerprint_button, "clicked",
G_CALLBACK (about_me_fingerprint_button_clicked_cb), me);
widget = WID ("image-chooser");
g_signal_connect (widget, "changed",
g_signal_connect (me->image_chooser, "changed",
G_CALLBACK (about_me_image_changed_cb), me);
/* Address tab: set up the focus chains */

File diff suppressed because it is too large Load diff

View file

@ -5,11 +5,12 @@ capplets/about-me/eel-alert-dialog.c
capplets/about-me/e-image-chooser.c
capplets/about-me/fingerprint-strings.h
capplets/about-me/gnome-about-me.c
capplets/about-me/gnome-about-me-dialog.ui
capplets/about-me/gnome-about-me.desktop.in.in
capplets/about-me/gnome-about-me-fingerprint.c
capplets/about-me/gnome-about-me-fingerprint.glade
capplets/about-me/gnome-about-me.glade
capplets/about-me/gnome-about-me-fingerprint.ui
capplets/about-me/gnome-about-me-password.c
capplets/about-me/gnome-about-me-password.ui
[type: gettext/glade]capplets/accessibility/at-properties/at-enable-dialog.ui
capplets/accessibility/at-properties/at-properties.desktop.in.in
capplets/accessibility/at-properties/main.c