ipdf-svn/src/GtkAuthDialog.cpp File Reference

#include "GtkAuthDialog.h"
#include "liberdm/erdm.h"
#include "PDFView.h"
#include "controller.h"
#include <glib.h>
#include <gtk/gtk.h>
#include <libintl.h>
#include <locale.h>

Go to the source code of this file.

Defines

#define _(string)   gettext(string)
#define N_(string)   string
#define PINCODE_SCREEN_WIDTH   768
#define PINCODE_SCREEN_HEIGHT   SCREEN_HEIGHT
#define PINCODE_BACKGROUND_WIDTH   707
#define PINCODE_BACKGROUND_HEIGHT   347
#define PINCODE_BG_PADDING_LEFT   (PINCODE_SCREEN_WIDTH - PINCODE_BACKGROUND_WIDTH)/2
#define PINCODE_BG_PADDING_RIGHT   PINCODE_BG_PADDING_LEFT
#define PINCODE_BG_PADDING_BOTTOM   270
#define PINCODE_BG_PADDING_TOP   540
#define PINCODE_MESSAGE_PADDING   5
#define PINCODE_MESSAGE_LABEL_WIDTH   PINCODE_BACKGROUND_WIDTH
#define PINCODE_MESSAGE_LABEL_HEIGHT   30
#define PINCODE_INPUT_XPOS   150
#define PINCODE_INPUT_YPOS   0
#define PINCODE_INPUT_WIDTH   200
#define PINCODE_INPUT_HEIGHT   30
#define PINCODE_BUTTON_XPOS   450
#define PINCODE_BUTTON_YPOS   0
#define PINCODE_BUTTON_WIDTH   100
#define PINCODE_BUTTON_HEIGHT   30
#define PINCODE_BUTTON_OFFSET   30
#define PINCODE_ERRORMSG_XPOS   150
#define PINCODE_ERRORMSG_YPOS   0
#define PINCODE_ERRORMSG_WIDTH   400
#define PINCODE_ERRORMSG_HEIGHT   30
#define GTK_PINCODE_SCREEN_TYPE   (gtk_pincode_screen_get_type ())
#define GTK_PINCODE_SCREEN(obj)   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_PINCODE_SCREEN_TYPE, GtkPincodeScreen))
#define GTK_PINCODE_SCREEN_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_PINCODE_SCREEN_TYPE, GtkPincodeScreenClass))
#define IS_GTK_PINCODE_SCREEN(obj)   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_PINCODE_SCREEN_TYPE))
#define IS_GTK_PINCODE_SCREEN_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_PINCODE_SCREEN_TYPE))

Functions

static void gtk_pincode_screen_class_init (GtkPincodeScreenClass *klass)
static void gtk_pincode_screen_init (GtkPincodeScreen *screen)
GtkWidget * gtk_pincode_screen_new ()
GType gtk_pincode_screen_get_type (void)
static GtkWidget * create_pincode_message_widget (GtkPincodeScreen *screen)
static GtkWidget * create_pincode_input_widget (GtkPincodeScreen *screen)
static GtkWidget * create_pincode_error_msg_widget (GtkPincodeScreen *screen)
static gboolean updateScreen (gpointer data)

Variables

static int count = -1


Define Documentation

#define _ ( string   )     gettext(string)

Definition at line 29 of file GtkAuthDialog.cpp.

#define GTK_PINCODE_SCREEN ( obj   )     (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_PINCODE_SCREEN_TYPE, GtkPincodeScreen))

Definition at line 70 of file GtkAuthDialog.cpp.

#define GTK_PINCODE_SCREEN_CLASS ( klass   )     (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_PINCODE_SCREEN_TYPE, GtkPincodeScreenClass))

Definition at line 71 of file GtkAuthDialog.cpp.

#define GTK_PINCODE_SCREEN_TYPE   (gtk_pincode_screen_get_type ())

Definition at line 69 of file GtkAuthDialog.cpp.

#define IS_GTK_PINCODE_SCREEN ( obj   )     (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_PINCODE_SCREEN_TYPE))

Definition at line 72 of file GtkAuthDialog.cpp.

#define IS_GTK_PINCODE_SCREEN_CLASS ( klass   )     (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_PINCODE_SCREEN_TYPE))

Definition at line 73 of file GtkAuthDialog.cpp.

#define N_ ( string   )     string

Definition at line 30 of file GtkAuthDialog.cpp.

#define PINCODE_BACKGROUND_HEIGHT   347

Definition at line 38 of file GtkAuthDialog.cpp.

#define PINCODE_BACKGROUND_WIDTH   707

Definition at line 37 of file GtkAuthDialog.cpp.

#define PINCODE_BG_PADDING_BOTTOM   270

Definition at line 41 of file GtkAuthDialog.cpp.

#define PINCODE_BG_PADDING_LEFT   (PINCODE_SCREEN_WIDTH - PINCODE_BACKGROUND_WIDTH)/2

Definition at line 39 of file GtkAuthDialog.cpp.

#define PINCODE_BG_PADDING_RIGHT   PINCODE_BG_PADDING_LEFT

Definition at line 40 of file GtkAuthDialog.cpp.

#define PINCODE_BG_PADDING_TOP   540

Definition at line 42 of file GtkAuthDialog.cpp.

#define PINCODE_BUTTON_HEIGHT   30

Definition at line 59 of file GtkAuthDialog.cpp.

#define PINCODE_BUTTON_OFFSET   30

Definition at line 60 of file GtkAuthDialog.cpp.

#define PINCODE_BUTTON_WIDTH   100

Definition at line 58 of file GtkAuthDialog.cpp.

#define PINCODE_BUTTON_XPOS   450

Definition at line 56 of file GtkAuthDialog.cpp.

#define PINCODE_BUTTON_YPOS   0

Definition at line 57 of file GtkAuthDialog.cpp.

#define PINCODE_ERRORMSG_HEIGHT   30

Definition at line 66 of file GtkAuthDialog.cpp.

#define PINCODE_ERRORMSG_WIDTH   400

Definition at line 65 of file GtkAuthDialog.cpp.

#define PINCODE_ERRORMSG_XPOS   150

Definition at line 63 of file GtkAuthDialog.cpp.

#define PINCODE_ERRORMSG_YPOS   0

Definition at line 64 of file GtkAuthDialog.cpp.

#define PINCODE_INPUT_HEIGHT   30

Definition at line 53 of file GtkAuthDialog.cpp.

#define PINCODE_INPUT_WIDTH   200

Definition at line 52 of file GtkAuthDialog.cpp.

#define PINCODE_INPUT_XPOS   150

Definition at line 50 of file GtkAuthDialog.cpp.

#define PINCODE_INPUT_YPOS   0

Definition at line 51 of file GtkAuthDialog.cpp.

#define PINCODE_MESSAGE_LABEL_HEIGHT   30

Definition at line 47 of file GtkAuthDialog.cpp.

#define PINCODE_MESSAGE_LABEL_WIDTH   PINCODE_BACKGROUND_WIDTH

Definition at line 46 of file GtkAuthDialog.cpp.

#define PINCODE_MESSAGE_PADDING   5

Definition at line 45 of file GtkAuthDialog.cpp.

#define PINCODE_SCREEN_HEIGHT   SCREEN_HEIGHT

Definition at line 34 of file GtkAuthDialog.cpp.

#define PINCODE_SCREEN_WIDTH   768

Definition at line 33 of file GtkAuthDialog.cpp.


Function Documentation

static GtkWidget* create_pincode_error_msg_widget ( GtkPincodeScreen screen  )  [static]

Definition at line 154 of file GtkAuthDialog.cpp.

00155 {
00156     if (count <= 0) 
00157     {
00158         screen->errorMsg = 0;
00159         return NULL;
00160     } 
00161            
00162     GtkWidget *fixed;
00163     fixed = gtk_fixed_new();
00164     gtk_box_pack_start(GTK_BOX(screen->clientArea), fixed, FALSE, FALSE, PINCODE_MESSAGE_PADDING);
00165     gtk_widget_set_size_request(GTK_WIDGET(fixed), -1, PINCODE_ERRORMSG_HEIGHT);
00166 
00167     // error msg label
00168     screen->errorMsg = gtk_label_new(_("Password incorrect. Please try again."));
00169     gtk_widget_set_name(screen->errorMsg, "pincode_message_error_text");
00170     gtk_label_set_line_wrap(GTK_LABEL(screen->errorMsg), TRUE);
00171     gtk_widget_set_size_request(screen->errorMsg, PINCODE_ERRORMSG_WIDTH, -1);
00172     gtk_label_set_justify(GTK_LABEL(screen->errorMsg), GTK_JUSTIFY_CENTER);
00173     gtk_fixed_put(GTK_FIXED(fixed), screen->errorMsg, PINCODE_ERRORMSG_XPOS, PINCODE_ERRORMSG_YPOS);
00174     return screen->errorMsg;
00175 }

static GtkWidget* create_pincode_input_widget ( GtkPincodeScreen screen  )  [static]

Definition at line 128 of file GtkAuthDialog.cpp.

00129 {
00130     GtkWidget *fixed;
00131 
00132     // fixed
00133     fixed = gtk_fixed_new();
00134     gtk_box_pack_start(GTK_BOX(screen->clientArea), fixed, FALSE, FALSE, PINCODE_MESSAGE_PADDING);
00135     gtk_widget_set_size_request(GTK_WIDGET(fixed), -1, PINCODE_INPUT_HEIGHT);
00136     
00137     // input entry
00138     screen->inputWidget = gtk_entry_new();
00139     gtk_widget_set_name(GTK_WIDGET(screen->inputWidget), "pin_code_entry");
00140     gtk_entry_set_visibility(GTK_ENTRY(screen->inputWidget), FALSE);
00141     gtk_fixed_put(GTK_FIXED(fixed), screen->inputWidget, PINCODE_INPUT_XPOS, PINCODE_INPUT_YPOS);
00142     gtk_widget_set_size_request(GTK_WIDGET(screen->inputWidget), PINCODE_INPUT_WIDTH, -1);
00143    
00144     // ok Button
00145     screen->okButton = (GtkButton *)gtk_toggle_button_new();
00146     gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(screen->okButton), PINCODE_BUTTON_XPOS, PINCODE_BUTTON_YPOS);
00147     gtk_widget_set_size_request(GTK_WIDGET(screen->okButton), PINCODE_BUTTON_WIDTH, -1);
00148     gtk_button_set_label(GTK_BUTTON(screen->okButton), _("Confirm"));
00149 
00150     return fixed;
00151 }

static GtkWidget* create_pincode_message_widget ( GtkPincodeScreen screen  )  [static]

Definition at line 112 of file GtkAuthDialog.cpp.

00113 {
00114     GtkWidget *messageLabel = NULL;
00115     
00116     // messageLabel 
00117     messageLabel = gtk_label_new(_("Enter the password to open the protected document"));
00118     gtk_box_pack_start(GTK_BOX(screen->clientArea), messageLabel, FALSE, FALSE, PINCODE_MESSAGE_PADDING);
00119     gtk_widget_set_name(messageLabel, "pincode_message_title_text");
00120     gtk_label_set_line_wrap(GTK_LABEL(messageLabel), TRUE);
00121     gtk_widget_set_size_request(messageLabel, PINCODE_MESSAGE_LABEL_WIDTH, PINCODE_MESSAGE_LABEL_HEIGHT);
00122     gtk_label_set_justify(GTK_LABEL(messageLabel), GTK_JUSTIFY_CENTER);
00123     
00124     return messageLabel;
00125 }

static void gtk_pincode_screen_class_init ( GtkPincodeScreenClass klass  )  [static]

Definition at line 256 of file GtkAuthDialog.cpp.

00257 {
00258     // nothing needs to be done here 
00259 }

GType gtk_pincode_screen_get_type ( void   ) 

Definition at line 88 of file GtkAuthDialog.cpp.

00089 {
00090     static GType pincode_screen_type = 0;
00091 
00092     if (!pincode_screen_type)
00093     {
00094         static const GTypeInfo pincode_screen_info = {
00095             sizeof(GtkPincodeScreenClass),
00096             NULL,               /* base_init */
00097             NULL,               /* base_finalize */
00098             (GClassInitFunc) gtk_pincode_screen_class_init,
00099             NULL,               /* class_finalize */
00100             NULL,               /* class_data */
00101             sizeof(GtkPincodeScreen),
00102             0,                  /* n_preallocs */
00103             (GInstanceInitFunc) gtk_pincode_screen_init,
00104         };
00105         pincode_screen_type = g_type_register_static(GTK_TYPE_EVENT_BOX, "PincodeScreen", 
00106                     &pincode_screen_info, (GTypeFlags)0);
00107     }
00108     return pincode_screen_type;
00109 }

Here is the call graph for this function:

static void gtk_pincode_screen_init ( GtkPincodeScreen screen  )  [static]

Definition at line 186 of file GtkAuthDialog.cpp.

00187 {
00188     // tmp
00189     GtkWidget *alignment = NULL;
00190     GtkWidget *clientArea = NULL;      // GtkVBox
00191     GtkWidget *messageWidget = NULL;   // message widget
00192 
00193     // screen style
00194     gtk_widget_set_name(GTK_WIDGET(screen), "pincode_screen_background");
00195     gtk_widget_set_size_request(GTK_WIDGET(screen), PINCODE_SCREEN_WIDTH, PINCODE_SCREEN_HEIGHT);
00196 
00197     // alignment 
00198     alignment = gtk_alignment_new(0.0, 0.0, 0.0, 0.0);
00199     gtk_container_add(GTK_CONTAINER(screen), GTK_WIDGET(alignment));
00200     gtk_alignment_set_padding(GTK_ALIGNMENT(alignment),
00201                               PINCODE_BG_PADDING_TOP,
00202                               PINCODE_BG_PADDING_BOTTOM, 
00203                               PINCODE_BG_PADDING_LEFT, 
00204                               PINCODE_BG_PADDING_RIGHT);
00205     
00206     // background, use event box to set bk image
00207     GtkWidget * bk = gtk_event_box_new();
00208     gtk_widget_set_size_request(GTK_WIDGET(bk), PINCODE_BACKGROUND_WIDTH, PINCODE_BACKGROUND_HEIGHT);
00209     gtk_widget_set_name(bk, "pincode_input_background");
00210     gtk_container_add(GTK_CONTAINER(alignment), bk);
00211 
00212     // client area
00213     clientArea = gtk_vbox_new(FALSE, PINCODE_MESSAGE_PADDING);
00214     gtk_container_add(GTK_CONTAINER(bk), clientArea);
00215     screen->clientArea = clientArea;
00216 
00217     // messageWidget
00218     messageWidget = create_pincode_message_widget(screen);
00219         
00220     // inputWidget
00221     create_pincode_input_widget(screen);
00222 
00223     // error message
00224     create_pincode_error_msg_widget(screen);    
00225 
00226     // signals 
00227     g_signal_connect(G_OBJECT(screen), "expose_event", 
00228         G_CALLBACK(GtkAuthDialog::exposeCbk), screen);
00229     g_signal_connect(G_OBJECT(screen), "destroy", 
00230         G_CALLBACK(GtkAuthDialog::destroyCbk), screen);
00231 
00232     // input
00233     g_signal_connect_after(G_OBJECT(screen->inputWidget), "focus-in-event",       
00234         G_CALLBACK(GtkAuthDialog::focusInCbk), screen);
00235     g_signal_connect_after(G_OBJECT(screen->inputWidget), "focus-out-event",      
00236         G_CALLBACK(GtkAuthDialog::focusOutCbk), screen);
00237     g_signal_connect_after(G_OBJECT(screen->inputWidget), "focus", 
00238         G_CALLBACK(GtkAuthDialog::focusCbk),  screen);
00239     g_signal_connect_after(G_OBJECT(screen->inputWidget), "move-cursor", 
00240         G_CALLBACK(GtkAuthDialog::moveCursorCbk), screen);
00241     g_signal_connect_after(G_OBJECT(screen->inputWidget), "changed",              
00242         G_CALLBACK(GtkAuthDialog::changedCbk), screen);
00243 
00244     // button
00245     g_signal_connect(G_OBJECT(screen->okButton), "clicked", 
00246         G_CALLBACK(GtkAuthDialog::buttonClickedCbk), screen);
00247     g_signal_connect(G_OBJECT(screen->okButton), "state-changed", 
00248         G_CALLBACK(GtkAuthDialog::buttonStateChangedCbk), screen);    
00249 
00250     // show widget 
00251     gtk_widget_show_all(GTK_WIDGET(screen));
00252 }

Here is the call graph for this function:

GtkWidget* gtk_pincode_screen_new (  ) 

Definition at line 80 of file GtkAuthDialog.cpp.

00081 {
00082     GtkPincodeScreen *screen;
00083     screen = (GtkPincodeScreen *) g_object_new(GTK_PINCODE_SCREEN_TYPE, NULL);
00084     return GTK_WIDGET(screen);
00085 }

static gboolean updateScreen ( gpointer  data  )  [static]

Definition at line 292 of file GtkAuthDialog.cpp.

00293 {
00294     CPDFView * view = (CPDFView *)data;
00295     XSync(view->ctrl->gtkMgr.display, gTrue);
00296     view->refreshDeviceScreen(dmQTyping);
00297     return FALSE;
00298 }

Here is the call graph for this function:


Variable Documentation

int count = -1 [static]

Definition at line 78 of file GtkAuthDialog.cpp.


Generated on Wed Feb 4 18:26:07 2009 by  doxygen 1.5.6