00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef GTK_AUTH_DIALOG_H_
00020 #define GTK_AUTH_DIALOG_H_
00021 #include <gtk/gtk.h>
00022
00023 #define MAX_PASSWORD_LENGTH 1024
00024
00025
00026 #define GTK_PINCODE_SCREEN_TYPE (gtk_pincode_screen_get_type ())
00027 #define GTK_PINCODE_SCREEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_PINCODE_SCREEN_TYPE, GtkPincodeScreen))
00028 #define GTK_PINCODE_SCREEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_PINCODE_SCREEN_TYPE, GtkPincodeScreenClass))
00029 #define IS_GTK_PINCODE_SCREEN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_PINCODE_SCREEN_TYPE))
00030 #define IS_GTK_PINCODE_SCREEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_PINCODE_SCREEN_TYPE))
00031
00032 typedef struct _GtkPincodeScreen GtkPincodeScreen;
00033 typedef struct _GtkPincodeScreenClass GtkPincodeScreenClass;
00034
00035
00036 class GtkAuthDialog;
00037 struct _GtkPincodeScreen
00038 {
00039 GtkEventBox box;
00040 GtkWidget * window;
00041 GtkWidget *clientArea;
00042 GtkWidget *messageWidget;
00043 GtkWidget *inputWidget;
00044 GtkButton *okButton;
00045 GtkWidget *errorMsg;
00046 GtkAuthDialog * authDialog;
00047 };
00048
00049
00050 struct _GtkPincodeScreenClass
00051 {
00052 GtkEventBoxClass parent_class;
00053 };
00054
00055 GType gtk_pincode_screen_get_type(void);
00056 GtkWidget *gtk_pincode_screen_new();
00057
00059
00061 class CPDFView;
00062
00063 class GtkAuthDialog
00064 {
00065 private:
00066 GtkPincodeScreen * dialog;
00067 CPDFView * view;
00068 char password[MAX_PASSWORD_LENGTH];
00069 gboolean bOk;
00070 gboolean bUpdate;
00071
00072 private:
00073 void initPincodeDialog();
00074
00075 public:
00076
00078 static gboolean exposeCbk(GtkPincodeScreen * dialog,
00079 GdkEventExpose * event, gpointer user_data);
00080
00081 static gboolean destroyCbk(GtkPincodeScreen * dialog,
00082 GdkEvent * event, gpointer user_data);
00083
00084
00086 static gboolean focusInCbk(GtkWidget *widget,
00087 GdkEventFocus * event, gpointer data);
00088
00089 static gboolean focusOutCbk(GtkWidget *widget,
00090 GdkEventFocus * event, gpointer data);
00091
00092 static gboolean focusCbk(GtkWidget * widget,
00093 GtkDirectionType arg1, gpointer data);
00094
00095 static void changedCbk(GtkEditable * widget,
00096 gpointer data);
00097
00098 static void moveCursorCbk(GtkEntry * widget,
00099 GtkMovementStep arg1, gint arg2, gboolean arg3, gpointer data);
00100
00102 static void buttonClickedCbk(GtkToggleButton * button,
00103 gpointer user_data);
00104
00105 static void buttonStateChangedCbk(GtkWidget * button,
00106 GtkStateType state, gpointer user_data);
00107
00108 public:
00109 GtkAuthDialog(void);
00110 ~GtkAuthDialog(void);
00111
00112 public:
00113 gboolean popupAuthDialog(CPDFView *);
00114 char * getPassword() { return password; }
00115 };
00116
00117 #endif