New command SETTITLE.
[pinentry.git] / pinentry / pinentry.h
index 9494a6a..d17e790 100644 (file)
@@ -1,5 +1,5 @@
 /* pinentry.h - The interface for the PIN entry support library.
-   Copyright (C) 2002 g10 Code GmbH
+   Copyright (C) 2002, 2003 g10 Code GmbH
    
    This file is part of PINENTRY.
    
 
 #ifdef __cplusplus
 extern "C" {
+#if 0 
+}
+#endif
 #endif
 
+typedef enum {
+  PINENTRY_COLOR_NONE, PINENTRY_COLOR_DEFAULT,
+  PINENTRY_COLOR_BLACK, PINENTRY_COLOR_RED,
+  PINENTRY_COLOR_GREEN, PINENTRY_COLOR_YELLOW,
+  PINENTRY_COLOR_BLUE, PINENTRY_COLOR_MAGENTA,
+  PINENTRY_COLOR_CYAN, PINENTRY_COLOR_WHITE
+} pinentry_color_t;
+
 struct pinentry
 {
+  /* The window title, or NULL.  */
+  char *title;
   /* The description to display, or NULL.  */
   char *description;
   /* The error message to display, or NULL.  */
@@ -63,9 +76,42 @@ struct pinentry
      should be displayed.  */
   int parent_wid;
 
+  /* The name of an optional file which will be touched after a curses
+     entry has been displayed.  */
+  char *touch_file;
+
   /* The user should set this to -1 if the user canceled the request,
      and to the length of the PIN stored in pin otherwise.  */
   int result;
+
+  /* The user should set this to true if an error with the local
+     conversion occured. */
+  int locale_err;
+
+  /* The caller should set this to true if only one button is
+     required.  This is useful for notification dialogs where only a
+     dismiss button is required. */
+  int one_button;
+
+  /* If this is not NULL, a passphrase quality indicator is shown.
+     There will also be an inquiry back to the caller to get an
+     indication of the quality for the passphrase entered so far.  The
+     string is used as a labe for the auality bar.  */
+  char *quality_bar;
+
+  /* The tooltip to be show for the qualitybar.  Malloced or NULL.  */
+  char *quality_bar_tt;
+
+  /* For the curses pinentry, the color of error messages.  */
+  pinentry_color_t color_fg;
+  int color_fg_bright;
+  pinentry_color_t color_bg;
+  pinentry_color_t color_so;
+  int color_so_bright;
+
+  /* Fo the quality indicator we need to do an inquiry.  Thus we need
+     to save the assuan ctx.  */
+  void *ctx_assuan;
 };
 typedef struct pinentry *pinentry_t;
 
@@ -88,18 +134,23 @@ int pinentry_loop (void);
    LC_CTYPE.  Return NULL on error. */
 char *pinentry_utf8_to_local (char *lc_ctype, char *text);
 
-/* Convert TEXT whcih is encoded according to LC_CTYPE to UTF-8.  With
+/* Convert TEXT which is encoded according to LC_CTYPE to UTF-8.  With
    SECURE set to true, use secure memory for the returned buffer.
    Return NULL on error. */
 char *pinentry_local_to_utf8 (char *lc_ctype, char *text, int secure);
 
+
+/* Run a quality inquiry for PASSPHRASE of LENGTH. */
+int pinentry_inq_quality (pinentry_t pin, 
+                          const char *passphrase, size_t length);
+
 /* Try to make room for at least LEN bytes for the pin in the pinentry
    PIN.  Returns new buffer on success and 0 on failure.  */
 char *pinentry_setbufferlen (pinentry_t pin, int len);
 
 /* Initialize the secure memory subsystem, drop privileges and
    return.  Must be called early.  */
-void pinentry_init (void);
+void pinentry_init (const char *pgmname);
 
 /* Return true if either DISPLAY is set or ARGV contains the string
    "--display". */
@@ -114,10 +165,23 @@ int pinentry_parse_opts (int argc, char *argv[]);
 /* The caller must define this variable to process assuan commands.  */
 extern pinentry_cmd_handler_t pinentry_cmd_handler;
 
+
+
+
+\f
+#ifdef HAVE_W32_SYSTEM
+/* Windows declares sleep as obsolete, but provides a definition for
+   _sleep but non for the still existing sleep.  */
+#define sleep(a) _sleep ((a))
+#endif /*HAVE_W32_SYSTEM*/
+
+
+
+#if 0 
+{
+#endif
 #ifdef __cplusplus
 }
 #endif
 
 #endif /* PINENTRY_H */
-
-