Bug 12240 - internal compiler error: Segmentation fault
Summary: internal compiler error: Segmentation fault
Status: RESOLVED WORKSFORME
Alias: None
Product: gcc
Classification: Unclassified
Component: c (show other bugs)
Version: 3.3.1
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2003-09-10 20:40 UTC by relson
Modified: 2005-07-23 22:49 UTC (History)
1 user (show)

See Also:
Host: i686-pc-linux-gnu
Target: i686-pc-linux-gnu
Build: i686-pc-linux-gnu
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description relson 2003-09-10 20:40:25 UTC

Environment:
System: Linux osage.osagesoftware.com 2.4.21-0.25mdk #1 Thu Jul 24 13:10:52 MDT 2003 i686 unknown unknown GNU/Linux
Architecture: i686

	
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ./configure

How-To-Repeat:
	gcc mimeview.i
Comment 1 relson 2003-09-10 20:40:25 UTC
Fix:
	none - known

# 1 "mimeview.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "mimeview.c"
# 21 "mimeview.c"
# 1 "../config.h" 1
# 22 "mimeview.c" 2


# 1 "common/defs.h" 1
# 24 "common/defs.h"
# 1 "../config.h" 1
# 25 "common/defs.h" 2



# 1 "/usr/include/paths.h" 1 3 4
# 29 "common/defs.h" 2



# 1 "/usr/include/sys/param.h" 1 3 4
# 22 "/usr/include/sys/param.h" 3 4
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/limits.h" 1 3 4
# 11 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/limits.h" 3 4
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/syslimits.h" 1 3 4






# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/limits.h" 1 3 4
# 122 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/limits.h" 3 4
# 1 "/usr/include/limits.h" 1 3 4
# 26 "/usr/include/limits.h" 3 4
# 1 "/usr/include/features.h" 1 3 4
# 291 "/usr/include/features.h" 3 4
# 1 "/usr/include/sys/cdefs.h" 1 3 4
# 292 "/usr/include/features.h" 2 3 4
# 314 "/usr/include/features.h" 3 4
# 1 "/usr/include/gnu/stubs.h" 1 3 4
# 315 "/usr/include/features.h" 2 3 4
# 27 "/usr/include/limits.h" 2 3 4
# 144 "/usr/include/limits.h" 3 4
# 1 "/usr/include/bits/posix1_lim.h" 1 3 4
# 126 "/usr/include/bits/posix1_lim.h" 3 4
# 1 "/usr/include/bits/local_lim.h" 1 3 4
# 36 "/usr/include/bits/local_lim.h" 3 4
# 1 "/usr/include/linux/limits.h" 1 3 4
# 37 "/usr/include/bits/local_lim.h" 2 3 4
# 127 "/usr/include/bits/posix1_lim.h" 2 3 4
# 145 "/usr/include/limits.h" 2 3 4



# 1 "/usr/include/bits/posix2_lim.h" 1 3 4
# 149 "/usr/include/limits.h" 2 3 4
# 123 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/limits.h" 2 3 4
# 8 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/syslimits.h" 2 3 4
# 12 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/limits.h" 2 3 4
# 23 "/usr/include/sys/param.h" 2 3 4

# 1 "/usr/include/linux/param.h" 1 3 4



# 1 "/usr/include/asm/param.h" 1 3 4
# 5 "/usr/include/linux/param.h" 2 3 4
# 25 "/usr/include/sys/param.h" 2 3 4
# 42 "/usr/include/sys/param.h" 3 4
# 1 "/usr/include/sys/types.h" 1 3 4
# 29 "/usr/include/sys/types.h" 3 4


# 1 "/usr/include/bits/types.h" 1 3 4
# 28 "/usr/include/bits/types.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 29 "/usr/include/bits/types.h" 2 3 4


# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 1 3 4
# 213 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 3 4
typedef unsigned int size_t;
# 32 "/usr/include/bits/types.h" 2 3 4


typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;


typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;




__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;





__extension__ typedef long long int __quad_t;
__extension__ typedef unsigned long long int __u_quad_t;
# 128 "/usr/include/bits/types.h" 3 4
# 1 "/usr/include/bits/typesizes.h" 1 3 4
# 129 "/usr/include/bits/types.h" 2 3 4


typedef unsigned long long int __dev_t;
typedef unsigned int __uid_t;
typedef unsigned int __gid_t;
typedef unsigned long int __ino_t;
typedef unsigned long long int __ino64_t;
typedef unsigned int __mode_t;
typedef unsigned int __nlink_t;
typedef long int __off_t;
typedef long long int __off64_t;
typedef int __pid_t;
typedef struct { int __val[2]; } __fsid_t;
typedef long int __clock_t;
typedef unsigned long int __rlim_t;
typedef unsigned long long int __rlim64_t;
typedef unsigned int __id_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;

typedef int __daddr_t;
typedef long int __swblk_t;
typedef int __key_t;


typedef int __clockid_t;


typedef int __timer_t;


typedef long int __blksize_t;




typedef long int __blkcnt_t;
typedef long long int __blkcnt64_t;


typedef unsigned long int __fsblkcnt_t;
typedef unsigned long long int __fsblkcnt64_t;


typedef unsigned long int __fsfilcnt_t;
typedef unsigned long long int __fsfilcnt64_t;




typedef int __ssize_t;
typedef __off64_t __loff_t;
typedef __quad_t *__qaddr_t;
typedef char *__caddr_t;


typedef int __intptr_t;


typedef unsigned int __socklen_t;
# 32 "/usr/include/sys/types.h" 2 3 4



typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;




typedef __loff_t loff_t;



typedef __ino_t ino_t;
# 62 "/usr/include/sys/types.h" 3 4
typedef __dev_t dev_t;




typedef __gid_t gid_t;




typedef __mode_t mode_t;




typedef __nlink_t nlink_t;




typedef __uid_t uid_t;





typedef __off_t off_t;
# 100 "/usr/include/sys/types.h" 3 4
typedef __pid_t pid_t;




typedef __id_t id_t;




typedef __ssize_t ssize_t;





typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;





typedef __key_t key_t;
# 133 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/time.h" 1 3 4
# 74 "/usr/include/time.h" 3 4


typedef __time_t time_t;



# 92 "/usr/include/time.h" 3 4
typedef __clockid_t clockid_t;
# 104 "/usr/include/time.h" 3 4
typedef __timer_t timer_t;
# 134 "/usr/include/sys/types.h" 2 3 4
# 147 "/usr/include/sys/types.h" 3 4
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 1 3 4
# 148 "/usr/include/sys/types.h" 2 3 4



typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 191 "/usr/include/sys/types.h" 3 4
typedef int int8_t __attribute__ ((__mode__ (__QI__)));
typedef int int16_t __attribute__ ((__mode__ (__HI__)));
typedef int int32_t __attribute__ ((__mode__ (__SI__)));
typedef int int64_t __attribute__ ((__mode__ (__DI__)));


typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));

typedef int register_t __attribute__ ((__mode__ (__word__)));
# 213 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/endian.h" 1 3 4
# 37 "/usr/include/endian.h" 3 4
# 1 "/usr/include/bits/endian.h" 1 3 4
# 38 "/usr/include/endian.h" 2 3 4
# 214 "/usr/include/sys/types.h" 2 3 4


# 1 "/usr/include/sys/select.h" 1 3 4
# 31 "/usr/include/sys/select.h" 3 4
# 1 "/usr/include/bits/select.h" 1 3 4
# 32 "/usr/include/sys/select.h" 2 3 4


# 1 "/usr/include/bits/sigset.h" 1 3 4
# 23 "/usr/include/bits/sigset.h" 3 4
typedef int __sig_atomic_t;




typedef struct
  {
    unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
  } __sigset_t;
# 35 "/usr/include/sys/select.h" 2 3 4



typedef __sigset_t sigset_t;





# 1 "/usr/include/time.h" 1 3 4
# 118 "/usr/include/time.h" 3 4
struct timespec
  {
    __time_t tv_sec;
    long int tv_nsec;
  };
# 45 "/usr/include/sys/select.h" 2 3 4

# 1 "/usr/include/bits/time.h" 1 3 4
# 67 "/usr/include/bits/time.h" 3 4
struct timeval
  {
    __time_t tv_sec;
    __suseconds_t tv_usec;
  };
# 47 "/usr/include/sys/select.h" 2 3 4


typedef __suseconds_t suseconds_t;





typedef long int __fd_mask;
# 67 "/usr/include/sys/select.h" 3 4
typedef struct
  {






    __fd_mask __fds_bits[1024 / (8 * sizeof (__fd_mask))];


  } fd_set;






typedef __fd_mask fd_mask;
# 99 "/usr/include/sys/select.h" 3 4







extern int select (int __nfds, fd_set *__restrict __readfds,
                   fd_set *__restrict __writefds,
                   fd_set *__restrict __exceptfds,
                   struct timeval *__restrict __timeout) ;
# 122 "/usr/include/sys/select.h" 3 4

# 217 "/usr/include/sys/types.h" 2 3 4


# 1 "/usr/include/sys/sysmacros.h" 1 3 4
# 220 "/usr/include/sys/types.h" 2 3 4
# 231 "/usr/include/sys/types.h" 3 4
typedef __blkcnt_t blkcnt_t;



typedef __fsblkcnt_t fsblkcnt_t;



typedef __fsfilcnt_t fsfilcnt_t;
# 266 "/usr/include/sys/types.h" 3 4
# 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
# 23 "/usr/include/bits/pthreadtypes.h" 3 4
# 1 "/usr/include/bits/sched.h" 1 3 4
# 83 "/usr/include/bits/sched.h" 3 4
struct __sched_param
  {
    int __sched_priority;
  };
# 24 "/usr/include/bits/pthreadtypes.h" 2 3 4


struct _pthread_fastlock
{
  long int __status;
  int __spinlock;

};



typedef struct _pthread_descr_struct *_pthread_descr;





typedef struct __pthread_attr_s
{
  int __detachstate;
  int __schedpolicy;
  struct __sched_param __schedparam;
  int __inheritsched;
  int __scope;
  size_t __guardsize;
  int __stackaddr_set;
  void *__stackaddr;
  size_t __stacksize;
} pthread_attr_t;





__extension__ typedef long long __pthread_cond_align_t;




typedef struct
{
  struct _pthread_fastlock __c_lock;
  _pthread_descr __c_waiting;
  char __padding[48 - sizeof (struct _pthread_fastlock)
                 - sizeof (_pthread_descr) - sizeof (__pthread_cond_align_t)];
  __pthread_cond_align_t __align;
} pthread_cond_t;



typedef struct
{
  int __dummy;
} pthread_condattr_t;


typedef unsigned int pthread_key_t;





typedef struct
{
  int __m_reserved;
  int __m_count;
  _pthread_descr __m_owner;
  int __m_kind;
  struct _pthread_fastlock __m_lock;
} pthread_mutex_t;



typedef struct
{
  int __mutexkind;
} pthread_mutexattr_t;



typedef int pthread_once_t;
# 150 "/usr/include/bits/pthreadtypes.h" 3 4
typedef unsigned long int pthread_t;
# 267 "/usr/include/sys/types.h" 2 3 4



# 43 "/usr/include/sys/param.h" 2 3 4
# 33 "common/defs.h" 2
# 25 "mimeview.c" 2

# 1 "/usr/include/glib-1.2/glib.h" 1
# 66 "/usr/include/glib-1.2/glib.h"
# 1 "/usr/lib/glib/include/glibconfig.h" 1
# 9 "/usr/lib/glib/include/glibconfig.h"
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/limits.h" 1 3 4
# 10 "/usr/lib/glib/include/glibconfig.h" 2
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/float.h" 1 3 4
# 11 "/usr/lib/glib/include/glibconfig.h" 2
# 28 "/usr/lib/glib/include/glibconfig.h"
typedef signed char gint8;
typedef unsigned char guint8;
typedef signed short gint16;
typedef unsigned short guint16;
typedef signed int gint32;
typedef unsigned int guint32;
# 43 "/usr/lib/glib/include/glibconfig.h"
__extension__ typedef signed long long gint64;
__extension__ typedef unsigned long long guint64;
# 79 "/usr/lib/glib/include/glibconfig.h"
typedef struct _GStaticMutex GStaticMutex;
struct _GStaticMutex
{
  struct _GMutex *runtime_mutex;
  union {
    char pad[24];
    double dummy_double;
    void *dummy_pointer;
    long dummy_long;
  } aligned_pad_u;
};
# 67 "/usr/include/glib-1.2/glib.h" 2



# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stdarg.h" 1 3 4
# 43 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stdarg.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 105 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stdarg.h" 3 4
typedef __gnuc_va_list va_list;
# 71 "/usr/include/glib-1.2/glib.h" 2
# 473 "/usr/include/glib-1.2/glib.h"
typedef char gchar;
typedef short gshort;
typedef long glong;
typedef int gint;
typedef gint gboolean;

typedef unsigned char guchar;
typedef unsigned short gushort;
typedef unsigned long gulong;
typedef unsigned int guint;

typedef float gfloat;
typedef double gdouble;
# 498 "/usr/include/glib-1.2/glib.h"
typedef void* gpointer;
typedef const void *gconstpointer;


typedef gint32 gssize;
typedef guint32 gsize;
typedef guint32 GQuark;
typedef gint32 GTime;
# 676 "/usr/include/glib-1.2/glib.h"
extern const guint glib_major_version;
extern const guint glib_minor_version;
extern const guint glib_micro_version;
extern const guint glib_interface_age;
extern const guint glib_binary_age;
# 690 "/usr/include/glib-1.2/glib.h"
typedef struct _GAllocator GAllocator;
typedef struct _GArray GArray;
typedef struct _GByteArray GByteArray;
typedef struct _GCache GCache;
typedef struct _GCompletion GCompletion;
typedef struct _GData GData;
typedef struct _GDebugKey GDebugKey;
typedef struct _GHashTable GHashTable;
typedef struct _GHook GHook;
typedef struct _GHookList GHookList;
typedef struct _GList GList;
typedef struct _GMemChunk GMemChunk;
typedef struct _GNode GNode;
typedef struct _GPtrArray GPtrArray;
typedef struct _GRelation GRelation;
typedef struct _GScanner GScanner;
typedef struct _GScannerConfig GScannerConfig;
typedef struct _GSList GSList;
typedef struct _GString GString;
typedef struct _GStringChunk GStringChunk;
typedef struct _GTimer GTimer;
typedef struct _GTree GTree;
typedef struct _GTuples GTuples;
typedef union _GTokenValue GTokenValue;
typedef struct _GIOChannel GIOChannel;


typedef enum
{
  G_TRAVERSE_LEAFS = 1 << 0,
  G_TRAVERSE_NON_LEAFS = 1 << 1,
  G_TRAVERSE_ALL = G_TRAVERSE_LEAFS | G_TRAVERSE_NON_LEAFS,
  G_TRAVERSE_MASK = 0x03
} GTraverseFlags;


typedef enum
{
  G_IN_ORDER,
  G_PRE_ORDER,
  G_POST_ORDER,
  G_LEVEL_ORDER
} GTraverseType;
# 741 "/usr/include/glib-1.2/glib.h"
typedef enum
{

  G_LOG_FLAG_RECURSION = 1 << 0,
  G_LOG_FLAG_FATAL = 1 << 1,


  G_LOG_LEVEL_ERROR = 1 << 2,
  G_LOG_LEVEL_CRITICAL = 1 << 3,
  G_LOG_LEVEL_WARNING = 1 << 4,
  G_LOG_LEVEL_MESSAGE = 1 << 5,
  G_LOG_LEVEL_INFO = 1 << 6,
  G_LOG_LEVEL_DEBUG = 1 << 7,

  G_LOG_LEVEL_MASK = ~(G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL)
} GLogLevelFlags;





typedef gpointer (*GCacheNewFunc) (gpointer key);
typedef gpointer (*GCacheDupFunc) (gpointer value);
typedef void (*GCacheDestroyFunc) (gpointer value);
typedef gint (*GCompareFunc) (gconstpointer a,
                                                 gconstpointer b);
typedef gchar* (*GCompletionFunc) (gpointer);
typedef void (*GDestroyNotify) (gpointer data);
typedef void (*GDataForeachFunc) (GQuark key_id,
                                                 gpointer data,
                                                 gpointer user_data);
typedef void (*GFunc) (gpointer data,
                                                 gpointer user_data);
typedef guint (*GHashFunc) (gconstpointer key);
typedef void (*GFreeFunc) (gpointer data);
typedef void (*GHFunc) (gpointer key,
                                                 gpointer value,
                                                 gpointer user_data);
typedef gboolean (*GHRFunc) (gpointer key,
                                                 gpointer value,
                                                 gpointer user_data);
typedef gint (*GHookCompareFunc) (GHook *new_hook,
                                                 GHook *sibling);
typedef gboolean (*GHookFindFunc) (GHook *hook,
                                                 gpointer data);
typedef void (*GHookMarshaller) (GHook *hook,
                                                 gpointer data);
typedef gboolean (*GHookCheckMarshaller) (GHook *hook,
                                                 gpointer data);
typedef void (*GHookFunc) (gpointer data);
typedef gboolean (*GHookCheckFunc) (gpointer data);
typedef void (*GHookFreeFunc) (GHookList *hook_list,
                                                 GHook *hook);
typedef void (*GLogFunc) (const gchar *log_domain,
                                                 GLogLevelFlags log_level,
                                                 const gchar *message,
                                                 gpointer user_data);
typedef gboolean (*GNodeTraverseFunc) (GNode *node,
                                                 gpointer data);
typedef void (*GNodeForeachFunc) (GNode *node,
                                                 gpointer data);
typedef gint (*GSearchFunc) (gpointer key,
                                                 gpointer data);
typedef void (*GScannerMsgFunc) (GScanner *scanner,
                                                 gchar *message,
                                                 gint error);
typedef gint (*GTraverseFunc) (gpointer key,
                                                 gpointer value,
                                                 gpointer data);
typedef void (*GVoidFunc) (void);


struct _GList
{
  gpointer data;
  GList *next;
  GList *prev;
};

struct _GSList
{
  gpointer data;
  GSList *next;
};

struct _GString
{
  gchar *str;
  gint len;
};

struct _GArray
{
  gchar *data;
  guint len;
};

struct _GByteArray
{
  guint8 *data;
  guint len;
};

struct _GPtrArray
{
  gpointer *pdata;
  guint len;
};

struct _GTuples
{
  guint len;
};

struct _GDebugKey
{
  gchar *key;
  guint value;
};




void g_list_push_allocator (GAllocator *allocator);
void g_list_pop_allocator (void);
GList* g_list_alloc (void);
void g_list_free (GList *list);
void g_list_free_1 (GList *list);
GList* g_list_append (GList *list,
                                 gpointer data);
GList* g_list_prepend (GList *list,
                                 gpointer data);
GList* g_list_insert (GList *list,
                                 gpointer data,
                                 gint position);
GList* g_list_insert_sorted (GList *list,
                                 gpointer data,
                                 GCompareFunc func);
GList* g_list_concat (GList *list1,
                                 GList *list2);
GList* g_list_remove (GList *list,
                                 gpointer data);
GList* g_list_remove_link (GList *list,
                                 GList *llink);
GList* g_list_reverse (GList *list);
GList* g_list_copy (GList *list);
GList* g_list_nth (GList *list,
                                 guint n);
GList* g_list_find (GList *list,
                                 gpointer data);
GList* g_list_find_custom (GList *list,
                                 gpointer data,
                                 GCompareFunc func);
gint g_list_position (GList *list,
                                 GList *llink);
gint g_list_index (GList *list,
                                 gpointer data);
GList* g_list_last (GList *list);
GList* g_list_first (GList *list);
guint g_list_length (GList *list);
void g_list_foreach (GList *list,
                                 GFunc func,
                                 gpointer user_data);
GList* g_list_sort (GList *list,
                                 GCompareFunc compare_func);
gpointer g_list_nth_data (GList *list,
                                 guint n);






void g_slist_push_allocator (GAllocator *allocator);
void g_slist_pop_allocator (void);
GSList* g_slist_alloc (void);
void g_slist_free (GSList *list);
void g_slist_free_1 (GSList *list);
GSList* g_slist_append (GSList *list,
                                 gpointer data);
GSList* g_slist_prepend (GSList *list,
                                 gpointer data);
GSList* g_slist_insert (GSList *list,
                                 gpointer data,
                                 gint position);
GSList* g_slist_insert_sorted (GSList *list,
                                 gpointer data,
                                 GCompareFunc func);
GSList* g_slist_concat (GSList *list1,
                                 GSList *list2);
GSList* g_slist_remove (GSList *list,
                                 gpointer data);
GSList* g_slist_remove_link (GSList *list,
                                 GSList *llink);
GSList* g_slist_reverse (GSList *list);
GSList* g_slist_copy (GSList *list);
GSList* g_slist_nth (GSList *list,
                                 guint n);
GSList* g_slist_find (GSList *list,
                                 gpointer data);
GSList* g_slist_find_custom (GSList *list,
                                 gpointer data,
                                 GCompareFunc func);
gint g_slist_position (GSList *list,
                                 GSList *llink);
gint g_slist_index (GSList *list,
                                 gpointer data);
GSList* g_slist_last (GSList *list);
guint g_slist_length (GSList *list);
void g_slist_foreach (GSList *list,
                                 GFunc func,
                                 gpointer user_data);
GSList* g_slist_sort (GSList *list,
                                 GCompareFunc compare_func);
gpointer g_slist_nth_data (GSList *list,
                                 guint n);





GHashTable* g_hash_table_new (GHashFunc hash_func,
                                         GCompareFunc key_compare_func);
void g_hash_table_destroy (GHashTable *hash_table);
void g_hash_table_insert (GHashTable *hash_table,
                                         gpointer key,
                                         gpointer value);
void g_hash_table_remove (GHashTable *hash_table,
                                         gconstpointer key);
gpointer g_hash_table_lookup (GHashTable *hash_table,
                                         gconstpointer key);
gboolean g_hash_table_lookup_extended(GHashTable *hash_table,
                                         gconstpointer lookup_key,
                                         gpointer *orig_key,
                                         gpointer *value);
void g_hash_table_freeze (GHashTable *hash_table);
void g_hash_table_thaw (GHashTable *hash_table);
void g_hash_table_foreach (GHashTable *hash_table,
                                         GHFunc func,
                                         gpointer user_data);
guint g_hash_table_foreach_remove (GHashTable *hash_table,
                                         GHRFunc func,
                                         gpointer user_data);
guint g_hash_table_size (GHashTable *hash_table);




GCache* g_cache_new (GCacheNewFunc value_new_func,
                                GCacheDestroyFunc value_destroy_func,
                                GCacheDupFunc key_dup_func,
                                GCacheDestroyFunc key_destroy_func,
                                GHashFunc hash_key_func,
                                GHashFunc hash_value_func,
                                GCompareFunc key_compare_func);
void g_cache_destroy (GCache *cache);
gpointer g_cache_insert (GCache *cache,
                                gpointer key);
void g_cache_remove (GCache *cache,
                                gpointer value);
void g_cache_key_foreach (GCache *cache,
                                GHFunc func,
                                gpointer user_data);
void g_cache_value_foreach (GCache *cache,
                                GHFunc func,
                                gpointer user_data);




GTree* g_tree_new (GCompareFunc key_compare_func);
void g_tree_destroy (GTree *tree);
void g_tree_insert (GTree *tree,
                          gpointer key,
                          gpointer value);
void g_tree_remove (GTree *tree,
                          gpointer key);
gpointer g_tree_lookup (GTree *tree,
                          gpointer key);
void g_tree_traverse (GTree *tree,
                          GTraverseFunc traverse_func,
                          GTraverseType traverse_type,
                          gpointer data);
gpointer g_tree_search (GTree *tree,
                          GSearchFunc search_func,
                          gpointer data);
gint g_tree_height (GTree *tree);
gint g_tree_nnodes (GTree *tree);





struct _GNode
{
  gpointer data;
  GNode *next;
  GNode *prev;
  GNode *parent;
  GNode *children;
};






void g_node_push_allocator (GAllocator *allocator);
void g_node_pop_allocator (void);
GNode* g_node_new (gpointer data);
void g_node_destroy (GNode *root);
void g_node_unlink (GNode *node);
GNode* g_node_insert (GNode *parent,
                                 gint position,
                                 GNode *node);
GNode* g_node_insert_before (GNode *parent,
                                 GNode *sibling,
                                 GNode *node);
GNode* g_node_prepend (GNode *parent,
                                 GNode *node);
guint g_node_n_nodes (GNode *root,
                                 GTraverseFlags flags);
GNode* g_node_get_root (GNode *node);
gboolean g_node_is_ancestor (GNode *node,
                                 GNode *descendant);
guint g_node_depth (GNode *node);
GNode* g_node_find (GNode *root,
                                 GTraverseType order,
                                 GTraverseFlags flags,
                                 gpointer data);
# 1089 "/usr/include/glib-1.2/glib.h"
void g_node_traverse (GNode *root,
                                 GTraverseType order,
                                 GTraverseFlags flags,
                                 gint max_depth,
                                 GNodeTraverseFunc func,
                                 gpointer data);






guint g_node_max_height (GNode *root);

void g_node_children_foreach (GNode *node,
                                  GTraverseFlags flags,
                                  GNodeForeachFunc func,
                                  gpointer data);
void g_node_reverse_children (GNode *node);
guint g_node_n_children (GNode *node);
GNode* g_node_nth_child (GNode *node,
                                  guint n);
GNode* g_node_last_child (GNode *node);
GNode* g_node_find_child (GNode *node,
                                  GTraverseFlags flags,
                                  gpointer data);
gint g_node_child_position (GNode *node,
                                  GNode *child);
gint g_node_child_index (GNode *node,
                                  gpointer data);

GNode* g_node_first_sibling (GNode *node);
GNode* g_node_last_sibling (GNode *node);
# 1134 "/usr/include/glib-1.2/glib.h"
typedef enum
{
  G_HOOK_FLAG_ACTIVE = 1 << 0,
  G_HOOK_FLAG_IN_CALL = 1 << 1,
  G_HOOK_FLAG_MASK = 0x0f
} GHookFlagMask;



struct _GHookList
{
  guint seq_id;
  guint hook_size;
  guint is_setup : 1;
  GHook *hooks;
  GMemChunk *hook_memchunk;
  GHookFreeFunc hook_free;
  GHookFreeFunc hook_destroy;
};

struct _GHook
{
  gpointer data;
  GHook *next;
  GHook *prev;
  guint ref_count;
  guint hook_id;
  guint flags;
  gpointer func;
  GDestroyNotify destroy;
};
# 1177 "/usr/include/glib-1.2/glib.h"
void g_hook_list_init (GHookList *hook_list,
                                         guint hook_size);
void g_hook_list_clear (GHookList *hook_list);
GHook* g_hook_alloc (GHookList *hook_list);
void g_hook_free (GHookList *hook_list,
                                         GHook *hook);
void g_hook_ref (GHookList *hook_list,
                                         GHook *hook);
void g_hook_unref (GHookList *hook_list,
                                         GHook *hook);
gboolean g_hook_destroy (GHookList *hook_list,
                                         guint hook_id);
void g_hook_destroy_link (GHookList *hook_list,
                                         GHook *hook);
void g_hook_prepend (GHookList *hook_list,
                                         GHook *hook);
void g_hook_insert_before (GHookList *hook_list,
                                         GHook *sibling,
                                         GHook *hook);
void g_hook_insert_sorted (GHookList *hook_list,
                                         GHook *hook,
                                         GHookCompareFunc func);
GHook* g_hook_get (GHookList *hook_list,
                                         guint hook_id);
GHook* g_hook_find (GHookList *hook_list,
                                         gboolean need_valids,
                                         GHookFindFunc func,
                                         gpointer data);
GHook* g_hook_find_data (GHookList *hook_list,
                                         gboolean need_valids,
                                         gpointer data);
GHook* g_hook_find_func (GHookList *hook_list,
                                         gboolean need_valids,
                                         gpointer func);
GHook* g_hook_find_func_data (GHookList *hook_list,
                                         gboolean need_valids,
                                         gpointer func,
                                         gpointer data);

GHook* g_hook_first_valid (GHookList *hook_list,
                                         gboolean may_be_in_call);



GHook* g_hook_next_valid (GHookList *hook_list,
                                         GHook *hook,
                                         gboolean may_be_in_call);


gint g_hook_compare_ids (GHook *new_hook,
                                         GHook *sibling);







void g_hook_list_invoke (GHookList *hook_list,
                                         gboolean may_recurse);



void g_hook_list_invoke_check (GHookList *hook_list,
                                         gboolean may_recurse);


void g_hook_list_marshal (GHookList *hook_list,
                                         gboolean may_recurse,
                                         GHookMarshaller marshaller,
                                         gpointer data);
void g_hook_list_marshal_check (GHookList *hook_list,
                                         gboolean may_recurse,
                                         GHookCheckMarshaller marshaller,
                                         gpointer data);
# 1263 "/usr/include/glib-1.2/glib.h"
void g_on_error_query (const gchar *prg_name);
void g_on_error_stack_trace (const gchar *prg_name);




extern const gchar *g_log_domain_glib;
guint g_log_set_handler (const gchar *log_domain,
                                         GLogLevelFlags log_levels,
                                         GLogFunc log_func,
                                         gpointer user_data);
void g_log_remove_handler (const gchar *log_domain,
                                         guint handler_id);
void g_log_default_handler (const gchar *log_domain,
                                         GLogLevelFlags log_level,
                                         const gchar *message,
                                         gpointer unused_data);
void g_log (const gchar *log_domain,
                                         GLogLevelFlags log_level,
                                         const gchar *format,
                                         ...) __attribute__((format (printf, 3, 4)));
void g_logv (const gchar *log_domain,
                                         GLogLevelFlags log_level,
                                         const gchar *format,
                                         va_list args);
GLogLevelFlags g_log_set_fatal_mask (const gchar *log_domain,
                                         GLogLevelFlags fatal_mask);
GLogLevelFlags g_log_set_always_fatal (GLogLevelFlags fatal_mask);
# 1299 "/usr/include/glib-1.2/glib.h" 3
# 1357 "/usr/include/glib-1.2/glib.h" 3
typedef void (*GPrintFunc) (const gchar *string);
void g_print (const gchar *format,
                                         ...) __attribute__((format (printf, 1, 2)));
GPrintFunc g_set_print_handler (GPrintFunc func);
void g_printerr (const gchar *format,
                                         ...) __attribute__((format (printf, 1, 2)));
GPrintFunc g_set_printerr_handler (GPrintFunc func);


typedef void (*GErrorFunc) (const gchar *str);
typedef void (*GWarningFunc) (const gchar *str);
GErrorFunc g_set_error_handler (GErrorFunc func);
GWarningFunc g_set_warning_handler (GWarningFunc func);
GPrintFunc g_set_message_handler (GPrintFunc func);
# 1384 "/usr/include/glib-1.2/glib.h" 3
gpointer g_malloc (gulong size);
gpointer g_malloc0 (gulong size);
gpointer g_realloc (gpointer mem,
                        gulong size);
void g_free (gpointer mem);



void g_mem_profile (void);
void g_mem_check (gpointer mem);



GAllocator* g_allocator_new (const gchar *name,
                               guint n_preallocs);
void g_allocator_free (GAllocator *allocator);
# 1428 "/usr/include/glib-1.2/glib.h" 3
GMemChunk* g_mem_chunk_new (gchar *name,
                                gint atom_size,
                                gulong area_size,
                                gint type);
void g_mem_chunk_destroy (GMemChunk *mem_chunk);
gpointer g_mem_chunk_alloc (GMemChunk *mem_chunk);
gpointer g_mem_chunk_alloc0 (GMemChunk *mem_chunk);
void g_mem_chunk_free (GMemChunk *mem_chunk,
                                gpointer mem);
void g_mem_chunk_clean (GMemChunk *mem_chunk);
void g_mem_chunk_reset (GMemChunk *mem_chunk);
void g_mem_chunk_print (GMemChunk *mem_chunk);
void g_mem_chunk_info (void);
# 1450 "/usr/include/glib-1.2/glib.h" 3
void g_blow_chunks (void);




GTimer* g_timer_new (void);
void g_timer_destroy (GTimer *timer);
void g_timer_start (GTimer *timer);
void g_timer_stop (GTimer *timer);
void g_timer_reset (GTimer *timer);
gdouble g_timer_elapsed (GTimer *timer,
                         gulong *microseconds);






gchar* g_strdelimit (gchar *string,
                                 const gchar *delimiters,
                                 gchar new_delimiter);
gdouble g_strtod (const gchar *nptr,
                                 gchar **endptr);
gchar* g_strerror (gint errnum);
gchar* g_strsignal (gint signum);
gint g_strcasecmp (const gchar *s1,
                                 const gchar *s2);
gint g_strncasecmp (const gchar *s1,
                                 const gchar *s2,
                                 guint n);
void g_strdown (gchar *string);
void g_strup (gchar *string);
void g_strreverse (gchar *string);

gchar* g_strchug (gchar *string);

gchar* g_strchomp (gchar *string);






gchar* g_strdup (const gchar *str);
gchar* g_strdup_printf (const gchar *format,
                                 ...) __attribute__((format (printf, 1, 2)));
gchar* g_strdup_vprintf (const gchar *format,
                                 va_list args);
gchar* g_strndup (const gchar *str,
                                 guint n);
gchar* g_strnfill (guint length,
                                 gchar fill_char);
gchar* g_strconcat (const gchar *string1,
                                 ...);
gchar* g_strjoin (const gchar *separator,
                                 ...);
gchar* g_strescape (gchar *string);
gpointer g_memdup (gconstpointer mem,
                                 guint byte_size);
# 1517 "/usr/include/glib-1.2/glib.h" 3
gchar** g_strsplit (const gchar *string,
                                 const gchar *delimiter,
                                 gint max_tokens);
gchar* g_strjoinv (const gchar *separator,
                                 gchar **str_array);
void g_strfreev (gchar **str_array);





guint g_printf_string_upper_bound (const gchar* format,
                                     va_list args);




gchar* g_get_user_name (void);
gchar* g_get_real_name (void);
gchar* g_get_home_dir (void);
gchar* g_get_tmp_dir (void);
gchar* g_get_prgname (void);
void g_set_prgname (const gchar *prgname);




guint g_parse_debug_string (const gchar *string,
                                 GDebugKey *keys,
                                 guint nkeys);
gint g_snprintf (gchar *string,
                                 gulong n,
                                 gchar const *format,
                                 ...) __attribute__((format (printf, 3, 4)));
gint g_vsnprintf (gchar *string,
                                 gulong n,
                                 gchar const *format,
                                 va_list args);
gchar* g_basename (const gchar *file_name);

gboolean g_path_is_absolute (const gchar *file_name);

gchar* g_path_skip_root (gchar *file_name);


gchar* g_dirname (const gchar *file_name);
gchar* g_get_current_dir (void);



gchar* g_getenv (const gchar *variable);







void g_atexit (GVoidFunc func);




extern gint g_bit_nth_lsf (guint32 mask,
                                       gint nth_bit);
# 1598 "/usr/include/glib-1.2/glib.h" 3
extern gint g_bit_nth_msf (guint32 mask,
                                       gint nth_bit);
# 1618 "/usr/include/glib-1.2/glib.h" 3
extern guint g_bit_storage (guint number);
# 1637 "/usr/include/glib-1.2/glib.h" 3
GStringChunk* g_string_chunk_new (gint size);
void g_string_chunk_free (GStringChunk *chunk);
gchar* g_string_chunk_insert (GStringChunk *chunk,
                                            const gchar *string);
gchar* g_string_chunk_insert_const (GStringChunk *chunk,
                                            const gchar *string);




GString* g_string_new (const gchar *init);
GString* g_string_sized_new (guint dfl_size);
void g_string_free (GString *string,
                             gint free_segment);
GString* g_string_assign (GString *lval,
                             const gchar *rval);
GString* g_string_truncate (GString *string,
                             gint len);
GString* g_string_append (GString *string,
                             const gchar *val);
GString* g_string_append_c (GString *string,
                             gchar c);
GString* g_string_prepend (GString *string,
                             const gchar *val);
GString* g_string_prepend_c (GString *string,
                             gchar c);
GString* g_string_insert (GString *string,
                             gint pos,
                             const gchar *val);
GString* g_string_insert_c (GString *string,
                             gint pos,
                             gchar c);
GString* g_string_erase (GString *string,
                             gint pos,
                             gint len);
GString* g_string_down (GString *string);
GString* g_string_up (GString *string);
void g_string_sprintf (GString *string,
                             const gchar *format,
                             ...) __attribute__((format (printf, 2, 3)));
void g_string_sprintfa (GString *string,
                             const gchar *format,
                             ...) __attribute__((format (printf, 2, 3)));
# 1692 "/usr/include/glib-1.2/glib.h" 3
GArray* g_array_new (gboolean zero_terminated,
                                   gboolean clear,
                                   guint element_size);
void g_array_free (GArray *array,
                                   gboolean free_segment);
GArray* g_array_append_vals (GArray *array,
                                   gconstpointer data,
                                   guint len);
GArray* g_array_prepend_vals (GArray *array,
                                   gconstpointer data,
                                   guint len);
GArray* g_array_insert_vals (GArray *array,
                                   guint index,
                                   gconstpointer data,
                                   guint len);
GArray* g_array_set_size (GArray *array,
                                   guint length);
GArray* g_array_remove_index (GArray *array,
                                   guint index);
GArray* g_array_remove_index_fast (GArray *array,
                                   guint index);







GPtrArray* g_ptr_array_new (void);
void g_ptr_array_free (GPtrArray *array,
                                            gboolean free_seg);
void g_ptr_array_set_size (GPtrArray *array,
                                            gint length);
gpointer g_ptr_array_remove_index (GPtrArray *array,
                                            guint index);
gpointer g_ptr_array_remove_index_fast (GPtrArray *array,
                                            guint index);
gboolean g_ptr_array_remove (GPtrArray *array,
                                            gpointer data);
gboolean g_ptr_array_remove_fast (GPtrArray *array,
                                            gpointer data);
void g_ptr_array_add (GPtrArray *array,
                                            gpointer data);





GByteArray* g_byte_array_new (void);
void g_byte_array_free (GByteArray *array,
                                            gboolean free_segment);
GByteArray* g_byte_array_append (GByteArray *array,
                                            const guint8 *data,
                                            guint len);
GByteArray* g_byte_array_prepend (GByteArray *array,
                                            const guint8 *data,
                                            guint len);
GByteArray* g_byte_array_set_size (GByteArray *array,
                                            guint length);
GByteArray* g_byte_array_remove_index (GByteArray *array,
                                            guint index);
GByteArray* g_byte_array_remove_index_fast (GByteArray *array,
                                            guint index);




gint g_str_equal (gconstpointer v,
                   gconstpointer v2);
guint g_str_hash (gconstpointer v);

gint g_int_equal (gconstpointer v,
                   gconstpointer v2);
guint g_int_hash (gconstpointer v);







guint g_direct_hash (gconstpointer v);
gint g_direct_equal (gconstpointer v,
                      gconstpointer v2);




GQuark g_quark_try_string (const gchar *string);
GQuark g_quark_from_static_string (const gchar *string);
GQuark g_quark_from_string (const gchar *string);
gchar* g_quark_to_string (GQuark quark);





void g_datalist_init (GData **datalist);
void g_datalist_clear (GData **datalist);
gpointer g_datalist_id_get_data (GData **datalist,
                                          GQuark key_id);
void g_datalist_id_set_data_full (GData **datalist,
                                          GQuark key_id,
                                          gpointer data,
                                          GDestroyNotify destroy_func);
void g_datalist_id_remove_no_notify (GData **datalist,
                                          GQuark key_id);
void g_datalist_foreach (GData **datalist,
                                          GDataForeachFunc func,
                                          gpointer user_data);
# 1821 "/usr/include/glib-1.2/glib.h" 3
void g_dataset_destroy (gconstpointer dataset_location);
gpointer g_dataset_id_get_data (gconstpointer dataset_location,
                                         GQuark key_id);
void g_dataset_id_set_data_full (gconstpointer dataset_location,
                                         GQuark key_id,
                                         gpointer data,
                                         GDestroyNotify destroy_func);
void g_dataset_id_remove_no_notify (gconstpointer dataset_location,
                                         GQuark key_id);
void g_dataset_foreach (gconstpointer dataset_location,
                                         GDataForeachFunc func,
                                         gpointer user_data);
# 1865 "/usr/include/glib-1.2/glib.h" 3
typedef enum
{
  G_ERR_UNKNOWN,
  G_ERR_UNEXP_EOF,
  G_ERR_UNEXP_EOF_IN_STRING,
  G_ERR_UNEXP_EOF_IN_COMMENT,
  G_ERR_NON_DIGIT_IN_CONST,
  G_ERR_DIGIT_RADIX,
  G_ERR_FLOAT_RADIX,
  G_ERR_FLOAT_MALFORMED
} GErrorType;


typedef enum
{
  G_TOKEN_EOF = 0,

  G_TOKEN_LEFT_PAREN = '(',
  G_TOKEN_RIGHT_PAREN = ')',
  G_TOKEN_LEFT_CURLY = '{',
  G_TOKEN_RIGHT_CURLY = '}',
  G_TOKEN_LEFT_BRACE = '[',
  G_TOKEN_RIGHT_BRACE = ']',
  G_TOKEN_EQUAL_SIGN = '=',
  G_TOKEN_COMMA = ',',

  G_TOKEN_NONE = 256,

  G_TOKEN_ERROR,

  G_TOKEN_CHAR,
  G_TOKEN_BINARY,
  G_TOKEN_OCTAL,
  G_TOKEN_INT,
  G_TOKEN_HEX,
  G_TOKEN_FLOAT,
  G_TOKEN_STRING,

  G_TOKEN_SYMBOL,
  G_TOKEN_IDENTIFIER,
  G_TOKEN_IDENTIFIER_NULL,

  G_TOKEN_COMMENT_SINGLE,
  G_TOKEN_COMMENT_MULTI,
  G_TOKEN_LAST
} GTokenType;

union _GTokenValue
{
  gpointer v_symbol;
  gchar *v_identifier;
  gulong v_binary;
  gulong v_octal;
  gulong v_int;
  gdouble v_float;
  gulong v_hex;
  gchar *v_string;
  gchar *v_comment;
  guchar v_char;
  guint v_error;
};

struct _GScannerConfig
{


  gchar *cset_skip_characters;
  gchar *cset_identifier_first;
  gchar *cset_identifier_nth;
  gchar *cpair_comment_single;



  guint case_sensitive : 1;




  guint skip_comment_multi : 1;
  guint skip_comment_single : 1;
  guint scan_comment_multi : 1;
  guint scan_identifier : 1;
  guint scan_identifier_1char : 1;
  guint scan_identifier_NULL : 1;
  guint scan_symbols : 1;
  guint scan_binary : 1;
  guint scan_octal : 1;
  guint scan_float : 1;
  guint scan_hex : 1;
  guint scan_hex_dollar : 1;
  guint scan_string_sq : 1;
  guint scan_string_dq : 1;
  guint numbers_2_int : 1;
  guint int_2_float : 1;
  guint identifier_2_string : 1;
  guint char_2_token : 1;
  guint symbol_2_token : 1;
  guint scope_0_fallback : 1;
};

struct _GScanner
{

  gpointer user_data;
  guint max_parse_errors;


  guint parse_errors;


  const gchar *input_name;


  gpointer derived_data;


  GScannerConfig *config;


  GTokenType token;
  GTokenValue value;
  guint line;
  guint position;


  GTokenType next_token;
  GTokenValue next_value;
  guint next_line;
  guint next_position;


  GHashTable *symbol_table;
  gint input_fd;
  const gchar *text;
  const gchar *text_end;
  gchar *buffer;
  guint scope_id;


  GScannerMsgFunc msg_handler;
};

GScanner* g_scanner_new (GScannerConfig *config_templ);
void g_scanner_destroy (GScanner *scanner);
void g_scanner_input_file (GScanner *scanner,
                                                 gint input_fd);
void g_scanner_sync_file_offset (GScanner *scanner);
void g_scanner_input_text (GScanner *scanner,
                                                 const gchar *text,
                                                 guint text_len);
GTokenType g_scanner_get_next_token (GScanner *scanner);
GTokenType g_scanner_peek_next_token (GScanner *scanner);
GTokenType g_scanner_cur_token (GScanner *scanner);
GTokenValue g_scanner_cur_value (GScanner *scanner);
guint g_scanner_cur_line (GScanner *scanner);
guint g_scanner_cur_position (GScanner *scanner);
gboolean g_scanner_eof (GScanner *scanner);
guint g_scanner_set_scope (GScanner *scanner,
                                                 guint scope_id);
void g_scanner_scope_add_symbol (GScanner *scanner,
                                                 guint scope_id,
                                                 const gchar *symbol,
                                                 gpointer value);
void g_scanner_scope_remove_symbol (GScanner *scanner,
                                                 guint scope_id,
                                                 const gchar *symbol);
gpointer g_scanner_scope_lookup_symbol (GScanner *scanner,
                                                 guint scope_id,
                                                 const gchar *symbol);
void g_scanner_scope_foreach_symbol (GScanner *scanner,
                                                 guint scope_id,
                                                 GHFunc func,
                                                 gpointer user_data);
gpointer g_scanner_lookup_symbol (GScanner *scanner,
                                                 const gchar *symbol);
void g_scanner_freeze_symbol_table (GScanner *scanner);
void g_scanner_thaw_symbol_table (GScanner *scanner);
void g_scanner_unexp_token (GScanner *scanner,
                                                 GTokenType expected_token,
                                                 const gchar *identifier_spec,
                                                 const gchar *symbol_spec,
                                                 const gchar *symbol_name,
                                                 const gchar *message,
                                                 gint is_error);
void g_scanner_error (GScanner *scanner,
                                                 const gchar *format,
                                                 ...) __attribute__((format (printf, 2, 3)));
void g_scanner_warn (GScanner *scanner,
                                                 const gchar *format,
                                                 ...) __attribute__((format (printf, 2, 3)));
gint g_scanner_stat_mode (const gchar *filename);
# 2071 "/usr/include/glib-1.2/glib.h" 3
struct _GCompletion
{
  GList* items;
  GCompletionFunc func;

  gchar* prefix;
  GList* cache;
};

GCompletion* g_completion_new (GCompletionFunc func);
void g_completion_add_items (GCompletion* cmp,
                                        GList* items);
void g_completion_remove_items (GCompletion* cmp,
                                        GList* items);
void g_completion_clear_items (GCompletion* cmp);
GList* g_completion_complete (GCompletion* cmp,
                                        gchar* prefix,
                                        gchar** new_prefix);
void g_completion_free (GCompletion* cmp);
# 2101 "/usr/include/glib-1.2/glib.h" 3
typedef guint16 GDateYear;
typedef guint8 GDateDay;
typedef struct _GDate GDate;

struct tm;


typedef enum
{
  G_DATE_DAY = 0,
  G_DATE_MONTH = 1,
  G_DATE_YEAR = 2
} GDateDMY;


typedef enum
{
  G_DATE_BAD_WEEKDAY = 0,
  G_DATE_MONDAY = 1,
  G_DATE_TUESDAY = 2,
  G_DATE_WEDNESDAY = 3,
  G_DATE_THURSDAY = 4,
  G_DATE_FRIDAY = 5,
  G_DATE_SATURDAY = 6,
  G_DATE_SUNDAY = 7
} GDateWeekday;
typedef enum
{
  G_DATE_BAD_MONTH = 0,
  G_DATE_JANUARY = 1,
  G_DATE_FEBRUARY = 2,
  G_DATE_MARCH = 3,
  G_DATE_APRIL = 4,
  G_DATE_MAY = 5,
  G_DATE_JUNE = 6,
  G_DATE_JULY = 7,
  G_DATE_AUGUST = 8,
  G_DATE_SEPTEMBER = 9,
  G_DATE_OCTOBER = 10,
  G_DATE_NOVEMBER = 11,
  G_DATE_DECEMBER = 12
} GDateMonth;
# 2153 "/usr/include/glib-1.2/glib.h" 3
struct _GDate
{
  guint julian_days : 32;





  guint julian : 1;
  guint dmy : 1;


  guint day : 6;
  guint month : 4;
  guint year : 16;
};





GDate* g_date_new (void);
GDate* g_date_new_dmy (GDateDay day,
                                           GDateMonth month,
                                           GDateYear year);
GDate* g_date_new_julian (guint32 julian_day);
void g_date_free (GDate *date);






gboolean g_date_valid (GDate *date);
gboolean g_date_valid_day (GDateDay day);
gboolean g_date_valid_month (GDateMonth month);
gboolean g_date_valid_year (GDateYear year);
gboolean g_date_valid_weekday (GDateWeekday weekday);
gboolean g_date_valid_julian (guint32 julian_date);
gboolean g_date_valid_dmy (GDateDay day,
                                           GDateMonth month,
                                           GDateYear year);

GDateWeekday g_date_weekday (GDate *date);
GDateMonth g_date_month (GDate *date);
GDateYear g_date_year (GDate *date);
GDateDay g_date_day (GDate *date);
guint32 g_date_julian (GDate *date);
guint g_date_day_of_year (GDate *date);







guint g_date_monday_week_of_year (GDate *date);
guint g_date_sunday_week_of_year (GDate *date);





void g_date_clear (GDate *date,
                                           guint n_dates);





void g_date_set_parse (GDate *date,
                                           const gchar *str);
void g_date_set_time (GDate *date,
                                           GTime time);
void g_date_set_month (GDate *date,
                                           GDateMonth month);
void g_date_set_day (GDate *date,
                                           GDateDay day);
void g_date_set_year (GDate *date,
                                           GDateYear year);
void g_date_set_dmy (GDate *date,
                                           GDateDay day,
                                           GDateMonth month,
                                           GDateYear y);
void g_date_set_julian (GDate *date,
                                           guint32 julian_date);
gboolean g_date_is_first_of_month (GDate *date);
gboolean g_date_is_last_of_month (GDate *date);


void g_date_add_days (GDate *date,
                                           guint n_days);
void g_date_subtract_days (GDate *date,
                                           guint n_days);


void g_date_add_months (GDate *date,
                                           guint n_months);
void g_date_subtract_months (GDate *date,
                                           guint n_months);


void g_date_add_years (GDate *date,
                                           guint n_years);
void g_date_subtract_years (GDate *date,
                                           guint n_years);
gboolean g_date_is_leap_year (GDateYear year);
guint8 g_date_days_in_month (GDateMonth month,
                                           GDateYear year);
guint8 g_date_monday_weeks_in_year (GDateYear year);
guint8 g_date_sunday_weeks_in_year (GDateYear year);


gint g_date_compare (GDate *lhs,
                                           GDate *rhs);
void g_date_to_struct_tm (GDate *date,
                                           struct tm *tm);




gsize g_date_strftime (gchar *s,
                                           gsize slen,
                                           const gchar *format,
                                           GDate *date);
# 2303 "/usr/include/glib-1.2/glib.h" 3
GRelation* g_relation_new (gint fields);
void g_relation_destroy (GRelation *relation);
void g_relation_index (GRelation *relation,
                               gint field,
                               GHashFunc hash_func,
                               GCompareFunc key_compare_func);
void g_relation_insert (GRelation *relation,
                               ...);
gint g_relation_delete (GRelation *relation,
                               gconstpointer key,
                               gint field);
GTuples* g_relation_select (GRelation *relation,
                               gconstpointer key,
                               gint field);
gint g_relation_count (GRelation *relation,
                               gconstpointer key,
                               gint field);
gboolean g_relation_exists (GRelation *relation,
                               ...);
void g_relation_print (GRelation *relation);

void g_tuples_destroy (GTuples *tuples);
gpointer g_tuples_index (GTuples *tuples,
                               gint index,
                               gint field);
# 2339 "/usr/include/glib-1.2/glib.h" 3
guint g_spaced_primes_closest (guint num);





typedef struct _GIOFuncs GIOFuncs;
typedef enum
{
  G_IO_ERROR_NONE,
  G_IO_ERROR_AGAIN,
  G_IO_ERROR_INVAL,
  G_IO_ERROR_UNKNOWN
} GIOError;
typedef enum
{
  G_SEEK_CUR,
  G_SEEK_SET,
  G_SEEK_END
} GSeekType;
typedef enum
{
  G_IO_IN =1,
  G_IO_OUT =4,
  G_IO_PRI =2,
  G_IO_ERR =8,
  G_IO_HUP =16,
  G_IO_NVAL =32
} GIOCondition;

struct _GIOChannel
{
  guint channel_flags;
  guint ref_count;
  GIOFuncs *funcs;
};

typedef gboolean (*GIOFunc) (GIOChannel *source,
                             GIOCondition condition,
                             gpointer data);
struct _GIOFuncs
{
  GIOError (*io_read) (GIOChannel *channel,
                         gchar *buf,
                         guint count,
                         guint *bytes_read);
  GIOError (*io_write) (GIOChannel *channel,
                         gchar *buf,
                         guint count,
                         guint *bytes_written);
  GIOError (*io_seek) (GIOChannel *channel,
                         gint offset,
                         GSeekType type);
  void (*io_close) (GIOChannel *channel);
  guint (*io_add_watch) (GIOChannel *channel,
                         gint priority,
                         GIOCondition condition,
                         GIOFunc func,
                         gpointer user_data,
                         GDestroyNotify notify);
  void (*io_free) (GIOChannel *channel);
};

void g_io_channel_init (GIOChannel *channel);
void g_io_channel_ref (GIOChannel *channel);
void g_io_channel_unref (GIOChannel *channel);
GIOError g_io_channel_read (GIOChannel *channel,
                                 gchar *buf,
                                 guint count,
                                 guint *bytes_read);
GIOError g_io_channel_write (GIOChannel *channel,
                                 gchar *buf,
                                 guint count,
                                 guint *bytes_written);
GIOError g_io_channel_seek (GIOChannel *channel,
                                 gint offset,
                                 GSeekType type);
void g_io_channel_close (GIOChannel *channel);
guint g_io_add_watch_full (GIOChannel *channel,
                                 gint priority,
                                 GIOCondition condition,
                                 GIOFunc func,
                                 gpointer user_data,
                                 GDestroyNotify notify);
guint g_io_add_watch (GIOChannel *channel,
                                 GIOCondition condition,
                                 GIOFunc func,
                                 gpointer user_data);




typedef struct _GTimeVal GTimeVal;
typedef struct _GSourceFuncs GSourceFuncs;
typedef struct _GMainLoop GMainLoop;

struct _GTimeVal
{
  glong tv_sec;
  glong tv_usec;
};
struct _GSourceFuncs
{
  gboolean (*prepare) (gpointer source_data,
                        GTimeVal *current_time,
                        gint *timeout,
                        gpointer user_data);
  gboolean (*check) (gpointer source_data,
                        GTimeVal *current_time,
                        gpointer user_data);
  gboolean (*dispatch) (gpointer source_data,
                        GTimeVal *dispatch_time,
                        gpointer user_data);
  GDestroyNotify destroy;
};
# 2463 "/usr/include/glib-1.2/glib.h" 3
typedef gboolean (*GSourceFunc) (gpointer data);


guint g_source_add (gint priority,
                                              gboolean can_recurse,
                                              GSourceFuncs *funcs,
                                              gpointer source_data,
                                              gpointer user_data,
                                              GDestroyNotify notify);
gboolean g_source_remove (guint tag);
gboolean g_source_remove_by_user_data (gpointer user_data);
gboolean g_source_remove_by_source_data (gpointer source_data);
gboolean g_source_remove_by_funcs_user_data (GSourceFuncs *funcs,
                                              gpointer user_data);

void g_get_current_time (GTimeVal *result);


GMainLoop* g_main_new (gboolean is_running);
void g_main_run (GMainLoop *loop);
void g_main_quit (GMainLoop *loop);
void g_main_destroy (GMainLoop *loop);
gboolean g_main_is_running (GMainLoop *loop);




gboolean g_main_iteration (gboolean may_block);


gboolean g_main_pending (void);


guint g_timeout_add_full (gint priority,
                                         guint interval,
                                         GSourceFunc function,
                                         gpointer data,
                                         GDestroyNotify notify);
guint g_timeout_add (guint interval,
                                         GSourceFunc function,
                                         gpointer data);
guint g_idle_add (GSourceFunc function,
                                         gpointer data);
guint g_idle_add_full (gint priority,
                                         GSourceFunc function,
                                         gpointer data,
                                         GDestroyNotify destroy);
gboolean g_idle_remove_by_data (gpointer data);
# 2536 "/usr/include/glib-1.2/glib.h" 3
typedef struct _GPollFD GPollFD;
typedef gint (*GPollFunc) (GPollFD *ufds,
                                 guint nfsd,
                                 gint timeout);
struct _GPollFD
{
  gint fd;
  gushort events;
  gushort revents;
};

void g_main_add_poll (GPollFD *fd,
                                      gint priority);
void g_main_remove_poll (GPollFD *fd);
void g_main_set_poll_func (GPollFunc func);
# 2563 "/usr/include/glib-1.2/glib.h" 3
GIOChannel* g_io_channel_unix_new (int fd);
gint g_io_channel_unix_get_fd (GIOChannel *channel);
# 2684 "/usr/include/glib-1.2/glib.h" 3
typedef struct _GMutex GMutex;
typedef struct _GCond GCond;
typedef struct _GPrivate GPrivate;
typedef struct _GStaticPrivate GStaticPrivate;
typedef struct _GThreadFunctions GThreadFunctions;
struct _GThreadFunctions
{
  GMutex* (*mutex_new) (void);
  void (*mutex_lock) (GMutex *mutex);
  gboolean (*mutex_trylock) (GMutex *mutex);
  void (*mutex_unlock) (GMutex *mutex);
  void (*mutex_free) (GMutex *mutex);
  GCond* (*cond_new) (void);
  void (*cond_signal) (GCond *cond);
  void (*cond_broadcast) (GCond *cond);
  void (*cond_wait) (GCond *cond,
                               GMutex *mutex);
  gboolean (*cond_timed_wait) (GCond *cond,
                               GMutex *mutex,
                               GTimeVal *end_time);
  void (*cond_free) (GCond *cond);
  GPrivate* (*private_new) (GDestroyNotify destructor);
  gpointer (*private_get) (GPrivate *private_key);
  void (*private_set) (GPrivate *private_key,
                               gpointer data);
};

extern GThreadFunctions g_thread_functions_for_glib_use;
extern gboolean g_thread_use_default_impl;
extern gboolean g_threads_got_initialized;





void g_thread_init (GThreadFunctions *vtable);


GMutex* g_static_mutex_get_mutex_impl (GMutex **mutex);
# 2767 "/usr/include/glib-1.2/glib.h" 3
struct _GStaticPrivate
{
  guint index;
};

gpointer g_static_private_get (GStaticPrivate *private_key);
void g_static_private_set (GStaticPrivate *private_key,
                               gpointer data,
                               GDestroyNotify notify);
# 2786 "/usr/include/glib-1.2/glib.h" 3
extern void glib_dummy_decl (void);
# 27 "mimeview.c" 2
# 1 "/usr/include/gtk-1.2/gdk/gdkkeysyms.h" 1
# 28 "mimeview.c" 2
# 1 "/usr/include/gtk-1.2/gtk/gtknotebook.h" 1
# 31 "/usr/include/gtk-1.2/gtk/gtknotebook.h"
# 1 "/usr/include/gtk-1.2/gdk/gdk.h" 1
# 31 "/usr/include/gtk-1.2/gdk/gdk.h"
# 1 "/usr/include/gtk-1.2/gdk/gdktypes.h" 1
# 52 "/usr/include/gtk-1.2/gdk/gdktypes.h"
typedef gulong GdkAtom;
typedef struct _GdkColor GdkColor;
typedef struct _GdkColormap GdkColormap;
typedef struct _GdkVisual GdkVisual;
typedef struct _GdkWindowAttr GdkWindowAttr;
typedef struct _GdkWindow GdkWindow;
typedef struct _GdkWindow GdkPixmap;
typedef struct _GdkWindow GdkBitmap;
typedef struct _GdkWindow GdkDrawable;
typedef struct _GdkGeometry GdkGeometry;
typedef struct _GdkImage GdkImage;
typedef struct _GdkGCValues GdkGCValues;
typedef struct _GdkGC GdkGC;
typedef struct _GdkPoint GdkPoint;
typedef struct _GdkRectangle GdkRectangle;
typedef struct _GdkSegment GdkSegment;
typedef struct _GdkFont GdkFont;
typedef struct _GdkCursor GdkCursor;
typedef struct _GdkColorContextDither GdkColorContextDither;
typedef struct _GdkColorContext GdkColorContext;
typedef struct _GdkDragContext GdkDragContext;

typedef struct _GdkEventAny GdkEventAny;
typedef struct _GdkEventExpose GdkEventExpose;
typedef struct _GdkEventNoExpose GdkEventNoExpose;
typedef struct _GdkEventVisibility GdkEventVisibility;
typedef struct _GdkEventMotion GdkEventMotion;
typedef struct _GdkEventButton GdkEventButton;
typedef struct _GdkEventKey GdkEventKey;
typedef struct _GdkEventFocus GdkEventFocus;
typedef struct _GdkEventCrossing GdkEventCrossing;
typedef struct _GdkEventConfigure GdkEventConfigure;
typedef struct _GdkEventProperty GdkEventProperty;
typedef struct _GdkEventSelection GdkEventSelection;
typedef struct _GdkEventProximity GdkEventProximity;
typedef struct _GdkEventClient GdkEventClient;

typedef struct _GdkEventDND GdkEventDND;

typedef union _GdkEvent GdkEvent;

typedef struct _GdkDeviceKey GdkDeviceKey;
typedef struct _GdkDeviceInfo GdkDeviceInfo;
typedef struct _GdkTimeCoord GdkTimeCoord;
typedef struct _GdkRegion GdkRegion;
typedef void (*GdkEventFunc) (GdkEvent *event,
                              gpointer data);

typedef struct _GdkIC GdkIC;
typedef struct _GdkICAttr GdkICAttr;

typedef guint32 GdkWChar;
# 126 "/usr/include/gtk-1.2/gdk/gdktypes.h"
typedef enum
{
  GDK_WINDOW_ROOT,
  GDK_WINDOW_TOPLEVEL,
  GDK_WINDOW_CHILD,
  GDK_WINDOW_DIALOG,
  GDK_WINDOW_TEMP,
  GDK_WINDOW_PIXMAP,
  GDK_WINDOW_FOREIGN
} GdkWindowType;
# 146 "/usr/include/gtk-1.2/gdk/gdktypes.h"
typedef enum
{
  GDK_INPUT_OUTPUT,
  GDK_INPUT_ONLY
} GdkWindowClass;
# 162 "/usr/include/gtk-1.2/gdk/gdktypes.h"
typedef enum
{
  GDK_IMAGE_NORMAL,
  GDK_IMAGE_SHARED,
  GDK_IMAGE_FASTEST
} GdkImageType;
# 177 "/usr/include/gtk-1.2/gdk/gdktypes.h"
typedef enum
{
  GDK_VISUAL_STATIC_GRAY,
  GDK_VISUAL_GRAYSCALE,
  GDK_VISUAL_STATIC_COLOR,
  GDK_VISUAL_PSEUDO_COLOR,
  GDK_VISUAL_TRUE_COLOR,
  GDK_VISUAL_DIRECT_COLOR
} GdkVisualType;





typedef enum
{
  GDK_FONT_FONT,
  GDK_FONT_FONTSET
} GdkFontType;
# 205 "/usr/include/gtk-1.2/gdk/gdktypes.h"
typedef enum
{
  GDK_WA_TITLE = 1 << 1,
  GDK_WA_X = 1 << 2,
  GDK_WA_Y = 1 << 3,
  GDK_WA_CURSOR = 1 << 4,
  GDK_WA_COLORMAP = 1 << 5,
  GDK_WA_VISUAL = 1 << 6,
  GDK_WA_WMCLASS = 1 << 7,
  GDK_WA_NOREDIR = 1 << 8
} GdkWindowAttributesType;



typedef enum
{
  GDK_HINT_POS = 1 << 0,
  GDK_HINT_MIN_SIZE = 1 << 1,
  GDK_HINT_MAX_SIZE = 1 << 2,
  GDK_HINT_BASE_SIZE = 1 << 3,
  GDK_HINT_ASPECT = 1 << 4,
  GDK_HINT_RESIZE_INC = 1 << 5
} GdkWindowHints;
# 247 "/usr/include/gtk-1.2/gdk/gdktypes.h"
typedef enum
{
  GDK_COPY,
  GDK_INVERT,
  GDK_XOR,
  GDK_CLEAR,
  GDK_AND,
  GDK_AND_REVERSE,
  GDK_AND_INVERT,
  GDK_NOOP,
  GDK_OR,
  GDK_EQUIV,
  GDK_OR_REVERSE,
  GDK_COPY_INVERT,
  GDK_OR_INVERT,
  GDK_NAND,
  GDK_SET
} GdkFunction;







typedef enum
{
  GDK_SOLID,
  GDK_TILED,
  GDK_STIPPLED,
  GDK_OPAQUE_STIPPLED
} GdkFill;





typedef enum
{
  GDK_EVEN_ODD_RULE,
  GDK_WINDING_RULE
} GdkFillRule;






typedef enum
{
  GDK_LINE_SOLID,
  GDK_LINE_ON_OFF_DASH,
  GDK_LINE_DOUBLE_DASH
} GdkLineStyle;







typedef enum
{
  GDK_CAP_NOT_LAST,
  GDK_CAP_BUTT,
  GDK_CAP_ROUND,
  GDK_CAP_PROJECTING
} GdkCapStyle;






typedef enum
{
  GDK_JOIN_MITER,
  GDK_JOIN_ROUND,
  GDK_JOIN_BEVEL
} GdkJoinStyle;



typedef enum
{
# 1 "/usr/include/gtk-1.2/gdk/gdkcursors.h" 1
GDK_NUM_GLYPHS = 154,
GDK_X_CURSOR = 0,
GDK_ARROW = 2,
GDK_BASED_ARROW_DOWN = 4,
GDK_BASED_ARROW_UP = 6,
GDK_BOAT = 8,
GDK_BOGOSITY = 10,
GDK_BOTTOM_LEFT_CORNER = 12,
GDK_BOTTOM_RIGHT_CORNER = 14,
GDK_BOTTOM_SIDE = 16,
GDK_BOTTOM_TEE = 18,
GDK_BOX_SPIRAL = 20,
GDK_CENTER_PTR = 22,
GDK_CIRCLE = 24,
GDK_CLOCK = 26,
GDK_COFFEE_MUG = 28,
GDK_CROSS = 30,
GDK_CROSS_REVERSE = 32,
GDK_CROSSHAIR = 34,
GDK_DIAMOND_CROSS = 36,
GDK_DOT = 38,
GDK_DOTBOX = 40,
GDK_DOUBLE_ARROW = 42,
GDK_DRAFT_LARGE = 44,
GDK_DRAFT_SMALL = 46,
GDK_DRAPED_BOX = 48,
GDK_EXCHANGE = 50,
GDK_FLEUR = 52,
GDK_GOBBLER = 54,
GDK_GUMBY = 56,
GDK_HAND1 = 58,
GDK_HAND2 = 60,
GDK_HEART = 62,
GDK_ICON = 64,
GDK_IRON_CROSS = 66,
GDK_LEFT_PTR = 68,
GDK_LEFT_SIDE = 70,
GDK_LEFT_TEE = 72,
GDK_LEFTBUTTON = 74,
GDK_LL_ANGLE = 76,
GDK_LR_ANGLE = 78,
GDK_MAN = 80,
GDK_MIDDLEBUTTON = 82,
GDK_MOUSE = 84,
GDK_PENCIL = 86,
GDK_PIRATE = 88,
GDK_PLUS = 90,
GDK_QUESTION_ARROW = 92,
GDK_RIGHT_PTR = 94,
GDK_RIGHT_SIDE = 96,
GDK_RIGHT_TEE = 98,
GDK_RIGHTBUTTON = 100,
GDK_RTL_LOGO = 102,
GDK_SAILBOAT = 104,
GDK_SB_DOWN_ARROW = 106,
GDK_SB_H_DOUBLE_ARROW = 108,
GDK_SB_LEFT_ARROW = 110,
GDK_SB_RIGHT_ARROW = 112,
GDK_SB_UP_ARROW = 114,
GDK_SB_V_DOUBLE_ARROW = 116,
GDK_SHUTTLE = 118,
GDK_SIZING = 120,
GDK_SPIDER = 122,
GDK_SPRAYCAN = 124,
GDK_STAR = 126,
GDK_TARGET = 128,
GDK_TCROSS = 130,
GDK_TOP_LEFT_ARROW = 132,
GDK_TOP_LEFT_CORNER = 134,
GDK_TOP_RIGHT_CORNER = 136,
GDK_TOP_SIDE = 138,
GDK_TOP_TEE = 140,
GDK_TREK = 142,
GDK_UL_ANGLE = 144,
GDK_UMBRELLA = 146,
GDK_UR_ANGLE = 148,
GDK_WATCH = 150,
GDK_XTERM = 152,
# 333 "/usr/include/gtk-1.2/gdk/gdktypes.h" 2
  GDK_LAST_CURSOR,
  GDK_CURSOR_IS_PIXMAP = -1
} GdkCursorType;

typedef enum {
  GDK_FILTER_CONTINUE,
  GDK_FILTER_TRANSLATE,
  GDK_FILTER_REMOVE
} GdkFilterReturn;

typedef enum {
  GDK_VISIBILITY_UNOBSCURED,
  GDK_VISIBILITY_PARTIAL,
  GDK_VISIBILITY_FULLY_OBSCURED
} GdkVisibilityState;
# 371 "/usr/include/gtk-1.2/gdk/gdktypes.h"
typedef enum
{
  GDK_NOTHING = -1,
  GDK_DELETE = 0,
  GDK_DESTROY = 1,
  GDK_EXPOSE = 2,
  GDK_MOTION_NOTIFY = 3,
  GDK_BUTTON_PRESS = 4,
  GDK_2BUTTON_PRESS = 5,
  GDK_3BUTTON_PRESS = 6,
  GDK_BUTTON_RELEASE = 7,
  GDK_KEY_PRESS = 8,
  GDK_KEY_RELEASE = 9,
  GDK_ENTER_NOTIFY = 10,
  GDK_LEAVE_NOTIFY = 11,
  GDK_FOCUS_CHANGE = 12,
  GDK_CONFIGURE = 13,
  GDK_MAP = 14,
  GDK_UNMAP = 15,
  GDK_PROPERTY_NOTIFY = 16,
  GDK_SELECTION_CLEAR = 17,
  GDK_SELECTION_REQUEST = 18,
  GDK_SELECTION_NOTIFY = 19,
  GDK_PROXIMITY_IN = 20,
  GDK_PROXIMITY_OUT = 21,
  GDK_DRAG_ENTER = 22,
  GDK_DRAG_LEAVE = 23,
  GDK_DRAG_MOTION = 24,
  GDK_DRAG_STATUS = 25,
  GDK_DROP_START = 26,
  GDK_DROP_FINISHED = 27,
  GDK_CLIENT_EVENT = 28,
  GDK_VISIBILITY_NOTIFY = 29,
  GDK_NO_EXPOSE = 30
} GdkEventType;




typedef enum
{
  GDK_EXPOSURE_MASK = 1 << 1,
  GDK_POINTER_MOTION_MASK = 1 << 2,
  GDK_POINTER_MOTION_HINT_MASK = 1 << 3,
  GDK_BUTTON_MOTION_MASK = 1 << 4,
  GDK_BUTTON1_MOTION_MASK = 1 << 5,
  GDK_BUTTON2_MOTION_MASK = 1 << 6,
  GDK_BUTTON3_MOTION_MASK = 1 << 7,
  GDK_BUTTON_PRESS_MASK = 1 << 8,
  GDK_BUTTON_RELEASE_MASK = 1 << 9,
  GDK_KEY_PRESS_MASK = 1 << 10,
  GDK_KEY_RELEASE_MASK = 1 << 11,
  GDK_ENTER_NOTIFY_MASK = 1 << 12,
  GDK_LEAVE_NOTIFY_MASK = 1 << 13,
  GDK_FOCUS_CHANGE_MASK = 1 << 14,
  GDK_STRUCTURE_MASK = 1 << 15,
  GDK_PROPERTY_CHANGE_MASK = 1 << 16,
  GDK_VISIBILITY_NOTIFY_MASK = 1 << 17,
  GDK_PROXIMITY_IN_MASK = 1 << 18,
  GDK_PROXIMITY_OUT_MASK = 1 << 19,
  GDK_SUBSTRUCTURE_MASK = 1 << 20,
  GDK_ALL_EVENTS_MASK = 0x0FFFFF
} GdkEventMask;
# 443 "/usr/include/gtk-1.2/gdk/gdktypes.h"
typedef enum
{
  GDK_NOTIFY_ANCESTOR = 0,
  GDK_NOTIFY_VIRTUAL = 1,
  GDK_NOTIFY_INFERIOR = 2,
  GDK_NOTIFY_NONLINEAR = 3,
  GDK_NOTIFY_NONLINEAR_VIRTUAL = 4,
  GDK_NOTIFY_UNKNOWN = 5
} GdkNotifyType;






typedef enum
{
  GDK_CROSSING_NORMAL,
  GDK_CROSSING_GRAB,
  GDK_CROSSING_UNGRAB
} GdkCrossingMode;



typedef enum
{
  GDK_SHIFT_MASK = 1 << 0,
  GDK_LOCK_MASK = 1 << 1,
  GDK_CONTROL_MASK = 1 << 2,
  GDK_MOD1_MASK = 1 << 3,
  GDK_MOD2_MASK = 1 << 4,
  GDK_MOD3_MASK = 1 << 5,
  GDK_MOD4_MASK = 1 << 6,
  GDK_MOD5_MASK = 1 << 7,
  GDK_BUTTON1_MASK = 1 << 8,
  GDK_BUTTON2_MASK = 1 << 9,
  GDK_BUTTON3_MASK = 1 << 10,
  GDK_BUTTON4_MASK = 1 << 11,
  GDK_BUTTON5_MASK = 1 << 12,
  GDK_RELEASE_MASK = 1 << 13,
  GDK_MODIFIER_MASK = 0x3fff
} GdkModifierType;

typedef enum
{
  GDK_CLIP_BY_CHILDREN = 0,
  GDK_INCLUDE_INFERIORS = 1
} GdkSubwindowMode;

typedef enum
{
  GDK_INPUT_READ = 1 << 0,
  GDK_INPUT_WRITE = 1 << 1,
  GDK_INPUT_EXCEPTION = 1 << 2
} GdkInputCondition;

typedef enum
{
  GDK_OK = 0,
  GDK_ERROR = -1,
  GDK_ERROR_PARAM = -2,
  GDK_ERROR_FILE = -3,
  GDK_ERROR_MEM = -4
} GdkStatus;

typedef enum
{
  GDK_LSB_FIRST,
  GDK_MSB_FIRST
} GdkByteOrder;

typedef enum
{
  GDK_GC_FOREGROUND = 1 << 0,
  GDK_GC_BACKGROUND = 1 << 1,
  GDK_GC_FONT = 1 << 2,
  GDK_GC_FUNCTION = 1 << 3,
  GDK_GC_FILL = 1 << 4,
  GDK_GC_TILE = 1 << 5,
  GDK_GC_STIPPLE = 1 << 6,
  GDK_GC_CLIP_MASK = 1 << 7,
  GDK_GC_SUBWINDOW = 1 << 8,
  GDK_GC_TS_X_ORIGIN = 1 << 9,
  GDK_GC_TS_Y_ORIGIN = 1 << 10,
  GDK_GC_CLIP_X_ORIGIN = 1 << 11,
  GDK_GC_CLIP_Y_ORIGIN = 1 << 12,
  GDK_GC_EXPOSURES = 1 << 13,
  GDK_GC_LINE_WIDTH = 1 << 14,
  GDK_GC_LINE_STYLE = 1 << 15,
  GDK_GC_CAP_STYLE = 1 << 16,
  GDK_GC_JOIN_STYLE = 1 << 17
} GdkGCValuesMask;

typedef enum
{
  GDK_SELECTION_PRIMARY = 1,
  GDK_SELECTION_SECONDARY = 2
} GdkSelection;

typedef enum
{
  GDK_PROPERTY_NEW_VALUE,
  GDK_PROPERTY_DELETE
} GdkPropertyState;

typedef enum
{
  GDK_PROP_MODE_REPLACE,
  GDK_PROP_MODE_PREPEND,
  GDK_PROP_MODE_APPEND
} GdkPropMode;



typedef enum
{
  GDK_SOURCE_MOUSE,
  GDK_SOURCE_PEN,
  GDK_SOURCE_ERASER,
  GDK_SOURCE_CURSOR
} GdkInputSource;

typedef enum
{
  GDK_MODE_DISABLED,
  GDK_MODE_SCREEN,
  GDK_MODE_WINDOW
} GdkInputMode;

typedef enum
{
  GDK_AXIS_IGNORE,
  GDK_AXIS_X,
  GDK_AXIS_Y,
  GDK_AXIS_PRESSURE,
  GDK_AXIS_XTILT,
  GDK_AXIS_YTILT,
  GDK_AXIS_LAST
} GdkAxisUse;




typedef enum
{
  GDK_TARGET_BITMAP = 5,
  GDK_TARGET_COLORMAP = 7,
  GDK_TARGET_DRAWABLE = 17,
  GDK_TARGET_PIXMAP = 20,
  GDK_TARGET_STRING = 31
} GdkTarget;

typedef enum
{
  GDK_SELECTION_TYPE_ATOM = 4,
  GDK_SELECTION_TYPE_BITMAP = 5,
  GDK_SELECTION_TYPE_COLORMAP = 7,
  GDK_SELECTION_TYPE_DRAWABLE = 17,
  GDK_SELECTION_TYPE_INTEGER = 19,
  GDK_SELECTION_TYPE_PIXMAP = 20,
  GDK_SELECTION_TYPE_WINDOW = 33,
  GDK_SELECTION_TYPE_STRING = 31
} GdkSelectionType;

typedef enum
{
  GDK_EXTENSION_EVENTS_NONE,
  GDK_EXTENSION_EVENTS_ALL,
  GDK_EXTENSION_EVENTS_CURSOR
} GdkExtensionMode;

typedef enum
{
  GDK_IM_PREEDIT_AREA = 0x0001,
  GDK_IM_PREEDIT_CALLBACKS = 0x0002,
  GDK_IM_PREEDIT_POSITION = 0x0004,
  GDK_IM_PREEDIT_NOTHING = 0x0008,
  GDK_IM_PREEDIT_NONE = 0x0010,
  GDK_IM_PREEDIT_MASK = 0x001f,

  GDK_IM_STATUS_AREA = 0x0100,
  GDK_IM_STATUS_CALLBACKS = 0x0200,
  GDK_IM_STATUS_NOTHING = 0x0400,
  GDK_IM_STATUS_NONE = 0x0800,
  GDK_IM_STATUS_MASK = 0x0f00
} GdkIMStyle;

typedef enum
{
  GDK_IC_STYLE = 1 << 0,
  GDK_IC_CLIENT_WINDOW = 1 << 1,
  GDK_IC_FOCUS_WINDOW = 1 << 2,
  GDK_IC_FILTER_EVENTS = 1 << 3,
  GDK_IC_SPOT_LOCATION = 1 << 4,
  GDK_IC_LINE_SPACING = 1 << 5,
  GDK_IC_CURSOR = 1 << 6,

  GDK_IC_PREEDIT_FONTSET = 1 << 10,
  GDK_IC_PREEDIT_AREA = 1 << 11,
  GDK_IC_PREEDIT_AREA_NEEDED = 1 << 12,
  GDK_IC_PREEDIT_FOREGROUND = 1 << 13,
  GDK_IC_PREEDIT_BACKGROUND = 1 << 14,
  GDK_IC_PREEDIT_PIXMAP = 1 << 15,
  GDK_IC_PREEDIT_COLORMAP = 1 << 16,

  GDK_IC_STATUS_FONTSET = 1 << 21,
  GDK_IC_STATUS_AREA = 1 << 22,
  GDK_IC_STATUS_AREA_NEEDED = 1 << 23,
  GDK_IC_STATUS_FOREGROUND = 1 << 24,
  GDK_IC_STATUS_BACKGROUND = 1 << 25,
  GDK_IC_STATUS_PIXMAP = 1 << 26,
  GDK_IC_STATUS_COLORMAP = 1 << 27,

  GDK_IC_ALL_REQ = GDK_IC_STYLE |
                                  GDK_IC_CLIENT_WINDOW,

  GDK_IC_PREEDIT_AREA_REQ = GDK_IC_PREEDIT_AREA |
                                  GDK_IC_PREEDIT_FONTSET,
  GDK_IC_PREEDIT_POSITION_REQ = GDK_IC_PREEDIT_AREA | GDK_IC_SPOT_LOCATION |
                                  GDK_IC_PREEDIT_FONTSET,

  GDK_IC_STATUS_AREA_REQ = GDK_IC_STATUS_AREA |
                                  GDK_IC_STATUS_FONTSET
} GdkICAttributesType;






typedef enum
{
  GDK_DECOR_ALL = 1 << 0,
  GDK_DECOR_BORDER = 1 << 1,
  GDK_DECOR_RESIZEH = 1 << 2,
  GDK_DECOR_TITLE = 1 << 3,
  GDK_DECOR_MENU = 1 << 4,
  GDK_DECOR_MINIMIZE = 1 << 5,
  GDK_DECOR_MAXIMIZE = 1 << 6
} GdkWMDecoration;

typedef enum
{
  GDK_FUNC_ALL = 1 << 0,
  GDK_FUNC_RESIZE = 1 << 1,
  GDK_FUNC_MOVE = 1 << 2,
  GDK_FUNC_MINIMIZE = 1 << 3,
  GDK_FUNC_MAXIMIZE = 1 << 4,
  GDK_FUNC_CLOSE = 1 << 5
} GdkWMFunction;

typedef void (*GdkInputFunction) (gpointer data,
                                  gint source,
                                  GdkInputCondition condition);

typedef void (*GdkDestroyNotify) (gpointer data);
# 710 "/usr/include/gtk-1.2/gdk/gdktypes.h"
typedef enum
{
  GDK_CC_MODE_UNDEFINED,
  GDK_CC_MODE_BW,
  GDK_CC_MODE_STD_CMAP,
  GDK_CC_MODE_TRUE,
  GDK_CC_MODE_MY_GRAY,
  GDK_CC_MODE_PALETTE
} GdkColorContextMode;







typedef enum
{
  GDK_OVERLAP_RECTANGLE_IN,
  GDK_OVERLAP_RECTANGLE_OUT,
  GDK_OVERLAP_RECTANGLE_PART
} GdkOverlapType;

typedef enum {
  GDK_ACTION_DEFAULT = 1 << 0,
  GDK_ACTION_COPY = 1 << 1,
  GDK_ACTION_MOVE = 1 << 2,
  GDK_ACTION_LINK = 1 << 3,
  GDK_ACTION_PRIVATE = 1 << 4,
  GDK_ACTION_ASK = 1 << 5
} GdkDragAction;

typedef enum {
  GDK_DRAG_PROTO_MOTIF,
  GDK_DRAG_PROTO_XDND,
  GDK_DRAG_PROTO_ROOTWIN,

  GDK_DRAG_PROTO_NONE
} GdkDragProtocol;
# 757 "/usr/include/gtk-1.2/gdk/gdktypes.h"
struct _GdkColor
{
  gulong pixel;
  gushort red;
  gushort green;
  gushort blue;
};




struct _GdkColormap
{
  gint size;
  GdkColor *colors;
};
# 786 "/usr/include/gtk-1.2/gdk/gdktypes.h"
struct _GdkVisual
{
  GdkVisualType type;
  gint depth;
  GdkByteOrder byte_order;
  gint colormap_size;
  gint bits_per_rgb;

  guint32 red_mask;
  gint red_shift;
  gint red_prec;

  guint32 green_mask;
  gint green_shift;
  gint green_prec;

  guint32 blue_mask;
  gint blue_shift;
  gint blue_prec;
};

struct _GdkWindowAttr
{
  gchar *title;
  gint event_mask;
  gint16 x, y;
  gint16 width;
  gint16 height;
  GdkWindowClass wclass;
  GdkVisual *visual;
  GdkColormap *colormap;
  GdkWindowType window_type;
  GdkCursor *cursor;
  gchar *wmclass_name;
  gchar *wmclass_class;
  gboolean override_redirect;
};

struct _GdkWindow
{
  gpointer user_data;
};

struct _GdkGeometry {
  gint min_width;
  gint min_height;
  gint max_width;
  gint max_height;
  gint base_width;
  gint base_height;
  gint width_inc;
  gint height_inc;
  gdouble min_aspect;
  gdouble max_aspect;

};

struct _GdkImage
{
  GdkImageType type;
  GdkVisual *visual;
  GdkByteOrder byte_order;
  guint16 width;
  guint16 height;
  guint16 depth;
  guint16 bpp;
  guint16 bpl;
  gpointer mem;
};

struct _GdkGCValues
{
  GdkColor foreground;
  GdkColor background;
  GdkFont *font;
  GdkFunction function;
  GdkFill fill;
  GdkPixmap *tile;
  GdkPixmap *stipple;
  GdkPixmap *clip_mask;
  GdkSubwindowMode subwindow_mode;
  gint ts_x_origin;
  gint ts_y_origin;
  gint clip_x_origin;
  gint clip_y_origin;
  gint graphics_exposures;
  gint line_width;
  GdkLineStyle line_style;
  GdkCapStyle cap_style;
  GdkJoinStyle join_style;
};

struct _GdkGC
{
  gint dummy_var;
};

struct _GdkPoint
{
  gint16 x;
  gint16 y;
};

struct _GdkRectangle
{
  gint16 x;
  gint16 y;
  guint16 width;
  guint16 height;
};

struct _GdkSegment
{
  gint16 x1;
  gint16 y1;
  gint16 x2;
  gint16 y2;
};

struct _GdkFont
{
  GdkFontType type;
  gint ascent;
  gint descent;
};

struct _GdkCursor
{
  GdkCursorType type;
};


struct _GdkColorContextDither
{
  gint fast_rgb[32][32][32];
  gint fast_err[32][32][32];
  gint fast_erg[32][32][32];
  gint fast_erb[32][32][32];
};

struct _GdkColorContext
{
  GdkVisual *visual;
  GdkColormap *colormap;

  gint num_colors;
  gint max_colors;
  gint num_allocated;

  GdkColorContextMode mode;
  gint need_to_free_colormap;
  GdkAtom std_cmap_atom;

  gulong *clut;
  GdkColor *cmap;

  GHashTable *color_hash;
  GdkColor *palette;
  gint num_palette;

  GdkColorContextDither *fast_dither;

  struct
  {
    gint red;
    gint green;
    gint blue;
  } shifts;

  struct
  {
    gulong red;
    gulong green;
    gulong blue;
  } masks;

  struct
  {
    gint red;
    gint green;
    gint blue;
  } bits;

  gulong max_entry;

  gulong black_pixel;
  gulong white_pixel;
};



struct _GdkDeviceKey
{
  guint keyval;
  GdkModifierType modifiers;
};

struct _GdkDeviceInfo
{
  guint32 deviceid;
  gchar *name;
  GdkInputSource source;
  GdkInputMode mode;
  gint has_cursor;
  gint num_axes;
  GdkAxisUse *axes;
  gint num_keys;
  GdkDeviceKey *keys;
};

struct _GdkTimeCoord
{
  guint32 time;
  gdouble x;
  gdouble y;
  gdouble pressure;
  gdouble xtilt;
  gdouble ytilt;
};




struct _GdkDragContext {
  GdkDragProtocol protocol;

  gboolean is_source;

  GdkWindow *source_window;
  GdkWindow *dest_window;

  GList *targets;
  GdkDragAction actions;
  GdkDragAction suggested_action;
  GdkDragAction action;

  guint32 start_time;
};



typedef void GdkXEvent;

typedef GdkFilterReturn (*GdkFilterFunc) (GdkXEvent *xevent,
                                          GdkEvent *event,
                                          gpointer data);

struct _GdkEventAny
{
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
};

struct _GdkEventExpose
{
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkRectangle area;
  gint count;
};

struct _GdkEventNoExpose
{
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;

};

struct _GdkEventVisibility
{
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkVisibilityState state;
};

struct _GdkEventMotion
{
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  gdouble x;
  gdouble y;
  gdouble pressure;
  gdouble xtilt;
  gdouble ytilt;
  guint state;
  gint16 is_hint;
  GdkInputSource source;
  guint32 deviceid;
  gdouble x_root, y_root;
};

struct _GdkEventButton
{
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  gdouble x;
  gdouble y;
  gdouble pressure;
  gdouble xtilt;
  gdouble ytilt;
  guint state;
  guint button;
  GdkInputSource source;
  guint32 deviceid;
  gdouble x_root, y_root;
};

struct _GdkEventKey
{
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  guint state;
  guint keyval;
  gint length;
  gchar *string;
};

struct _GdkEventCrossing
{
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkWindow *subwindow;
  guint32 time;
  gdouble x;
  gdouble y;
  gdouble x_root;
  gdouble y_root;
  GdkCrossingMode mode;
  GdkNotifyType detail;
  gboolean focus;
  guint state;
};

struct _GdkEventFocus
{
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  gint16 in;
};

struct _GdkEventConfigure
{
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  gint16 x, y;
  gint16 width;
  gint16 height;
};

struct _GdkEventProperty
{
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkAtom atom;
  guint32 time;
  guint state;
};

struct _GdkEventSelection
{
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkAtom selection;
  GdkAtom target;
  GdkAtom property;
  guint32 requestor;
  guint32 time;
};




struct _GdkEventProximity
{
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  guint32 time;
  GdkInputSource source;
  guint32 deviceid;
};

struct _GdkEventClient
{
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkAtom message_type;
  gushort data_format;
  union {
    char b[20];
    short s[10];
    long l[5];
  } data;
};



struct _GdkEventDND {
  GdkEventType type;
  GdkWindow *window;
  gint8 send_event;
  GdkDragContext *context;

  guint32 time;
  gshort x_root, y_root;
};

union _GdkEvent
{
  GdkEventType type;
  GdkEventAny any;
  GdkEventExpose expose;
  GdkEventNoExpose no_expose;
  GdkEventVisibility visibility;
  GdkEventMotion motion;
  GdkEventButton button;
  GdkEventKey key;
  GdkEventCrossing crossing;
  GdkEventFocus focus_change;
  GdkEventConfigure configure;
  GdkEventProperty property;
  GdkEventSelection selection;
  GdkEventProximity proximity;
  GdkEventClient client;
  GdkEventDND dnd;
};

struct _GdkRegion
{
  gpointer user_data;
};

struct _GdkICAttr
{
  GdkIMStyle style;
  GdkWindow *client_window;
  GdkWindow *focus_window;
  GdkEventMask filter_events;
  GdkPoint spot_location;
  gint line_spacing;
  GdkCursor *cursor;

  GdkFont *preedit_fontset;
  GdkRectangle preedit_area;
  GdkRectangle preedit_area_needed;
  GdkColor preedit_foreground;
  GdkColor preedit_background;
  GdkPixmap *preedit_pixmap;
  GdkColormap *preedit_colormap;

  GdkFont *status_fontset;
  GdkRectangle status_area;
  GdkRectangle status_area_needed;
  GdkColor status_foreground;
  GdkColor status_background;
  GdkPixmap *status_pixmap;
  GdkColormap *status_colormap;
};
# 32 "/usr/include/gtk-1.2/gdk/gdk.h" 2
# 41 "/usr/include/gtk-1.2/gdk/gdk.h"
void gdk_init (gint *argc,
                                         gchar ***argv);
gboolean gdk_init_check (gint *argc,
                                         gchar ***argv);
void gdk_exit (gint error_code);
gchar* gdk_set_locale (void);



void gdk_error_trap_push (void);
gint gdk_error_trap_pop (void);


gboolean gdk_events_pending (void);
GdkEvent* gdk_event_get (void);

GdkEvent* gdk_event_peek (void);
GdkEvent* gdk_event_get_graphics_expose (GdkWindow *window);
void gdk_event_put (GdkEvent *event);

GdkEvent* gdk_event_copy (GdkEvent *event);
void gdk_event_free (GdkEvent *event);
guint32 gdk_event_get_time (GdkEvent *event);

void gdk_event_handler_set (GdkEventFunc func,
                                         gpointer data,
                                         GDestroyNotify notify);

void gdk_set_show_events (gboolean show_events);
void gdk_set_use_xshm (gboolean use_xshm);

gboolean gdk_get_show_events (void);
gboolean gdk_get_use_xshm (void);
gchar* gdk_get_display (void);

guint32 gdk_time_get (void);
guint32 gdk_timer_get (void);
void gdk_timer_set (guint32 milliseconds);
void gdk_timer_enable (void);
void gdk_timer_disable (void);

gint gdk_input_add_full (gint source,
                           GdkInputCondition condition,
                           GdkInputFunction function,
                           gpointer data,
                           GdkDestroyNotify destroy);
gint gdk_input_add (gint source,
                           GdkInputCondition condition,
                           GdkInputFunction function,
                           gpointer data);
void gdk_input_remove (gint tag);

gint gdk_pointer_grab (GdkWindow *window,
                                 gint owner_events,
                                 GdkEventMask event_mask,
                                 GdkWindow *confine_to,
                                 GdkCursor *cursor,
                                 guint32 time);
void gdk_pointer_ungrab (guint32 time);
gint gdk_keyboard_grab (GdkWindow *window,
                                 gboolean owner_events,
                                 guint32 time);
void gdk_keyboard_ungrab (guint32 time);
gboolean gdk_pointer_is_grabbed (void);


gint gdk_screen_width (void);
gint gdk_screen_height (void);

gint gdk_screen_width_mm (void);
gint gdk_screen_height_mm (void);

void gdk_flush (void);
void gdk_beep (void);

void gdk_key_repeat_disable (void);
void gdk_key_repeat_restore (void);




gint gdk_visual_get_best_depth (void);
GdkVisualType gdk_visual_get_best_type (void);
GdkVisual* gdk_visual_get_system (void);
GdkVisual* gdk_visual_get_best (void);
GdkVisual* gdk_visual_get_best_with_depth (gint depth);
GdkVisual* gdk_visual_get_best_with_type (GdkVisualType visual_type);
GdkVisual* gdk_visual_get_best_with_both (gint depth,
                                              GdkVisualType visual_type);


GdkVisual* gdk_visual_ref (GdkVisual *visual);
void gdk_visual_unref (GdkVisual *visual);

void gdk_query_depths (gint **depths,
                             gint *count);
void gdk_query_visual_types (GdkVisualType **visual_types,
                             gint *count);

GList* gdk_list_visuals (void);




GdkWindow* gdk_window_new (GdkWindow *parent,
                                      GdkWindowAttr *attributes,
                                      gint attributes_mask);

void gdk_window_destroy (GdkWindow *window);
GdkWindow* gdk_window_ref (GdkWindow *window);
void gdk_window_unref (GdkWindow *window);

GdkWindow* gdk_window_at_pointer (gint *win_x,
                                      gint *win_y);
void gdk_window_show (GdkWindow *window);
void gdk_window_hide (GdkWindow *window);
void gdk_window_withdraw (GdkWindow *window);
void gdk_window_move (GdkWindow *window,
                                      gint x,
                                      gint y);
void gdk_window_resize (GdkWindow *window,
                                      gint width,
                                      gint height);
void gdk_window_move_resize (GdkWindow *window,
                                      gint x,
                                      gint y,
                                      gint width,
                                      gint height);
void gdk_window_reparent (GdkWindow *window,
                                      GdkWindow *new_parent,
                                      gint x,
                                      gint y);
void gdk_window_clear (GdkWindow *window);
void gdk_window_clear_area (GdkWindow *window,
                                      gint x,
                                      gint y,
                                      gint width,
                                      gint height);
void gdk_window_clear_area_e(GdkWindow *window,
                                      gint x,
                                      gint y,
                                      gint width,
                                      gint height);
void gdk_window_copy_area (GdkWindow *window,
                                      GdkGC *gc,
                                      gint x,
                                      gint y,
                                      GdkWindow *source_window,
                                      gint source_x,
                                      gint source_y,
                                      gint width,
                                      gint height);
void gdk_window_raise (GdkWindow *window);
void gdk_window_lower (GdkWindow *window);

void gdk_window_set_user_data (GdkWindow *window,
                                          gpointer user_data);
void gdk_window_set_override_redirect(GdkWindow *window,
                                               gboolean override_redirect);

void gdk_window_add_filter (GdkWindow *window,
                                         GdkFilterFunc function,
                                         gpointer data);
void gdk_window_remove_filter (GdkWindow *window,
                                         GdkFilterFunc function,
                                         gpointer data);







void gdk_window_shape_combine_mask (GdkWindow *window,
                                    GdkBitmap *shape_mask,
                                    gint offset_x,
                                    gint offset_y);







void gdk_window_set_child_shapes (GdkWindow *window);
# 234 "/usr/include/gtk-1.2/gdk/gdk.h"
void gdk_window_merge_child_shapes (GdkWindow *window);







gboolean gdk_window_is_visible (GdkWindow *window);
gboolean gdk_window_is_viewable (GdkWindow *window);




gboolean gdk_window_set_static_gravities (GdkWindow *window,
                                          gboolean use_static);




void gdk_add_client_message_filter (GdkAtom message_type,
                                    GdkFilterFunc func,
                                    gpointer data);



GdkDragContext * gdk_drag_context_new (void);
void gdk_drag_context_ref (GdkDragContext *context);
void gdk_drag_context_unref (GdkDragContext *context);



void gdk_drag_status (GdkDragContext *context,
                                         GdkDragAction action,
                                         guint32 time);
void gdk_drop_reply (GdkDragContext *context,
                                         gboolean ok,
                                         guint32 time);
void gdk_drop_finish (GdkDragContext *context,
                                         gboolean success,
                                         guint32 time);
GdkAtom gdk_drag_get_selection (GdkDragContext *context);



GdkDragContext * gdk_drag_begin (GdkWindow *window,
                                      GList *targets);
guint32 gdk_drag_get_protocol (guint32 xid,
                                       GdkDragProtocol *protocol);
void gdk_drag_find_window (GdkDragContext *context,
                                       GdkWindow *drag_window,
                                       gint x_root,
                                       gint y_root,
                                       GdkWindow **dest_window,
                                       GdkDragProtocol *protocol);
gboolean gdk_drag_motion (GdkDragContext *context,
                                      GdkWindow *dest_window,
                                      GdkDragProtocol protocol,
                                      gint x_root,
                                      gint y_root,
                                      GdkDragAction suggested_action,
                                      GdkDragAction possible_actions,
                                      guint32 time);
void gdk_drag_drop (GdkDragContext *context,
                                      guint32 time);
void gdk_drag_abort (GdkDragContext *context,
                                      guint32 time);



void gdk_window_set_hints (GdkWindow *window,
                                          gint x,
                                          gint y,
                                          gint min_width,
                                          gint min_height,
                                          gint max_width,
                                          gint max_height,
                                          gint flags);
void gdk_window_set_geometry_hints (GdkWindow *window,
                                             GdkGeometry *geometry,
                                             GdkWindowHints flags);
void gdk_set_sm_client_id (const gchar *sm_client_id);


void gdk_window_set_title (GdkWindow *window,
                                            const gchar *title);
void gdk_window_set_role (GdkWindow *window,
                                            const gchar *role);
void gdk_window_set_transient_for (GdkWindow *window,
                                            GdkWindow *leader);
void gdk_window_set_background (GdkWindow *window,
                                          GdkColor *color);
void gdk_window_set_back_pixmap (GdkWindow *window,
                                          GdkPixmap *pixmap,
                                          gboolean parent_relative);
void gdk_window_set_cursor (GdkWindow *window,
                                          GdkCursor *cursor);
void gdk_window_set_colormap (GdkWindow *window,
                                          GdkColormap *colormap);
void gdk_window_get_user_data (GdkWindow *window,
                                          gpointer *data);
void gdk_window_get_geometry (GdkWindow *window,
                                          gint *x,
                                          gint *y,
                                          gint *width,
                                          gint *height,
                                          gint *depth);
void gdk_window_get_position (GdkWindow *window,
                                          gint *x,
                                          gint *y);
void gdk_window_get_size (GdkWindow *window,
                                          gint *width,
                                          gint *height);
GdkVisual* gdk_window_get_visual (GdkWindow *window);
GdkColormap* gdk_window_get_colormap (GdkWindow *window);
GdkWindowType gdk_window_get_type (GdkWindow *window);
gint gdk_window_get_origin (GdkWindow *window,
                                          gint *x,
                                          gint *y);
gboolean gdk_window_get_deskrelative_origin (GdkWindow *window,
                                          gint *x,
                                          gint *y);
void gdk_window_get_root_origin (GdkWindow *window,
                                          gint *x,
                                          gint *y);
GdkWindow* gdk_window_get_pointer (GdkWindow *window,
                                          gint *x,
                                          gint *y,
                                          GdkModifierType *mask);
GdkWindow* gdk_window_get_parent (GdkWindow *window);
GdkWindow* gdk_window_get_toplevel (GdkWindow *window);
GList* gdk_window_get_children (GdkWindow *window);
GdkEventMask gdk_window_get_events (GdkWindow *window);
void gdk_window_set_events (GdkWindow *window,
                                          GdkEventMask event_mask);

void gdk_window_set_icon (GdkWindow *window,
                                          GdkWindow *icon_window,
                                          GdkPixmap *pixmap,
                                          GdkBitmap *mask);
void gdk_window_set_icon_name (GdkWindow *window,
                                          const gchar *name);
void gdk_window_set_group (GdkWindow *window,
                                          GdkWindow *leader);
void gdk_window_set_decorations (GdkWindow *window,
                                          GdkWMDecoration decorations);
void gdk_window_set_functions (GdkWindow *window,
                                          GdkWMFunction functions);
GList * gdk_window_get_toplevels (void);

void gdk_window_register_dnd (GdkWindow *window);

void gdk_drawable_set_data (GdkDrawable *drawable,
                                          const gchar *key,
                                          gpointer data,
                                          GDestroyNotify destroy_func);




GdkCursor* gdk_cursor_new (GdkCursorType cursor_type);
GdkCursor* gdk_cursor_new_from_pixmap (GdkPixmap *source,
                                          GdkPixmap *mask,
                                          GdkColor *fg,
                                          GdkColor *bg,
                                          gint x,
                                          gint y);
void gdk_cursor_destroy (GdkCursor *cursor);




GdkGC* gdk_gc_new (GdkWindow *window);
GdkGC* gdk_gc_new_with_values (GdkWindow *window,
                                   GdkGCValues *values,
                                   GdkGCValuesMask values_mask);
GdkGC* gdk_gc_ref (GdkGC *gc);
void gdk_gc_unref (GdkGC *gc);
void gdk_gc_destroy (GdkGC *gc);
void gdk_gc_get_values (GdkGC *gc,
                                   GdkGCValues *values);
void gdk_gc_set_foreground (GdkGC *gc,
                                   GdkColor *color);
void gdk_gc_set_background (GdkGC *gc,
                                   GdkColor *color);
void gdk_gc_set_font (GdkGC *gc,
                                   GdkFont *font);
void gdk_gc_set_function (GdkGC *gc,
                                   GdkFunction function);
void gdk_gc_set_fill (GdkGC *gc,
                                   GdkFill fill);
void gdk_gc_set_tile (GdkGC *gc,
                                   GdkPixmap *tile);
void gdk_gc_set_stipple (GdkGC *gc,
                                   GdkPixmap *stipple);
void gdk_gc_set_ts_origin (GdkGC *gc,
                                   gint x,
                                   gint y);
void gdk_gc_set_clip_origin (GdkGC *gc,
                                   gint x,
                                   gint y);
void gdk_gc_set_clip_mask (GdkGC *gc,
                                   GdkBitmap *mask);
void gdk_gc_set_clip_rectangle (GdkGC *gc,
                                   GdkRectangle *rectangle);
void gdk_gc_set_clip_region (GdkGC *gc,
                                   GdkRegion *region);
void gdk_gc_set_subwindow (GdkGC *gc,
                                   GdkSubwindowMode mode);
void gdk_gc_set_exposures (GdkGC *gc,
                                   gboolean exposures);
void gdk_gc_set_line_attributes (GdkGC *gc,
                                   gint line_width,
                                   GdkLineStyle line_style,
                                   GdkCapStyle cap_style,
                                   GdkJoinStyle join_style);
void gdk_gc_set_dashes (GdkGC *gc,
                                   gint dash_offset,
                                   gint8 dash_list[],
                                   gint n);
void gdk_gc_copy (GdkGC *dst_gc,
                                   GdkGC *src_gc);




GdkPixmap* gdk_pixmap_new (GdkWindow *window,
                                         gint width,
                                         gint height,
                                         gint depth);
GdkBitmap* gdk_bitmap_create_from_data (GdkWindow *window,
                                         const gchar *data,
                                         gint width,
                                         gint height);
GdkPixmap* gdk_pixmap_create_from_data (GdkWindow *window,
                                         const gchar *data,
                                         gint width,
                                         gint height,
                                         gint depth,
                                         GdkColor *fg,
                                         GdkColor *bg);
GdkPixmap* gdk_pixmap_create_from_xpm (GdkWindow *window,
                                         GdkBitmap **mask,
                                         GdkColor *transparent_color,
                                         const gchar *filename);
GdkPixmap* gdk_pixmap_colormap_create_from_xpm (
                                         GdkWindow *window,
                                         GdkColormap *colormap,
                                         GdkBitmap **mask,
                                         GdkColor *transparent_color,
                                         const gchar *filename);
GdkPixmap* gdk_pixmap_create_from_xpm_d (GdkWindow *window,
                                         GdkBitmap **mask,
                                         GdkColor *transparent_color,
                                         gchar **data);
GdkPixmap* gdk_pixmap_colormap_create_from_xpm_d (
                                         GdkWindow *window,
                                         GdkColormap *colormap,
                                         GdkBitmap **mask,
                                         GdkColor *transparent_color,
                                         gchar **data);
GdkPixmap *gdk_pixmap_ref (GdkPixmap *pixmap);
void gdk_pixmap_unref (GdkPixmap *pixmap);

GdkBitmap *gdk_bitmap_ref (GdkBitmap *pixmap);
void gdk_bitmap_unref (GdkBitmap *pixmap);




GdkImage* gdk_image_new_bitmap(GdkVisual *visual,
                                gpointer data,
                                gint width,
                                gint height);
GdkImage* gdk_image_new (GdkImageType type,
                                GdkVisual *visual,
                                gint width,
                                gint height);
GdkImage* gdk_image_get (GdkWindow *window,
                                gint x,
                                gint y,
                                gint width,
                                gint height);
void gdk_image_put_pixel (GdkImage *image,
                                gint x,
                                gint y,
                                guint32 pixel);
guint32 gdk_image_get_pixel (GdkImage *image,
                                gint x,
                                gint y);
void gdk_image_destroy (GdkImage *image);




GdkColormap* gdk_colormap_new (GdkVisual *visual,
                                           gboolean allocate);
GdkColormap* gdk_colormap_ref (GdkColormap *cmap);
void gdk_colormap_unref (GdkColormap *cmap);

GdkColormap* gdk_colormap_get_system (void);
gint gdk_colormap_get_system_size (void);

void gdk_colormap_change (GdkColormap *colormap,
                                           gint ncolors);

void gdk_colormap_sync (GdkColormap *colormap,
                                           gboolean force);
gint gdk_colormap_alloc_colors (GdkColormap *colormap,
                                           GdkColor *colors,
                                           gint ncolors,
                                           gboolean writeable,
                                           gboolean best_match,
                                           gboolean *success);
gboolean gdk_colormap_alloc_color (GdkColormap *colormap,
                                           GdkColor *color,
                                           gboolean writeable,
                                           gboolean best_match);
void gdk_colormap_free_colors (GdkColormap *colormap,
                                           GdkColor *colors,
                                           gint ncolors);

GdkVisual* gdk_colormap_get_visual (GdkColormap *colormap);

GdkColor* gdk_color_copy (const GdkColor *color);
void gdk_color_free (GdkColor *color);

gboolean gdk_color_parse (const gchar *spec,
                                           GdkColor *color);
guint gdk_color_hash (const GdkColor *colora,
                                           const GdkColor *colorb);
gboolean gdk_color_equal (const GdkColor *colora,
                                           const GdkColor *colorb);



void gdk_colors_store (GdkColormap *colormap,
                           GdkColor *colors,
                           gint ncolors);
gboolean gdk_colors_alloc (GdkColormap *colormap,
                           gboolean contiguous,
                           gulong *planes,
                           gint nplanes,
                           gulong *pixels,
                           gint npixels);
void gdk_colors_free (GdkColormap *colormap,
                           gulong *pixels,
                           gint npixels,
                           gulong planes);
gboolean gdk_color_white (GdkColormap *colormap,
                           GdkColor *color);
gboolean gdk_color_black (GdkColormap *colormap,
                           GdkColor *color);
gboolean gdk_color_alloc (GdkColormap *colormap,
                           GdkColor *color);
gboolean gdk_color_change (GdkColormap *colormap,
                           GdkColor *color);




GdkFont* gdk_font_load (const gchar *font_name);
GdkFont* gdk_fontset_load (const gchar *fontset_name);
GdkFont* gdk_font_ref (GdkFont *font);
void gdk_font_unref (GdkFont *font);
gint gdk_font_id (const GdkFont *font);
gboolean gdk_font_equal (const GdkFont *fonta,
                             const GdkFont *fontb);
gint gdk_string_width (GdkFont *font,
                             const gchar *string);
gint gdk_text_width (GdkFont *font,
                             const gchar *text,
                             gint text_length);
gint gdk_text_width_wc (GdkFont *font,
                             const GdkWChar *text,
                             gint text_length);
gint gdk_char_width (GdkFont *font,
                             gchar character);
gint gdk_char_width_wc (GdkFont *font,
                             GdkWChar character);
gint gdk_string_measure (GdkFont *font,
                             const gchar *string);
gint gdk_text_measure (GdkFont *font,
                             const gchar *text,
                             gint text_length);
gint gdk_char_measure (GdkFont *font,
                             gchar character);
gint gdk_string_height (GdkFont *font,
                             const gchar *string);
gint gdk_text_height (GdkFont *font,
                             const gchar *text,
                             gint text_length);
gint gdk_char_height (GdkFont *font,
                             gchar character);

void gdk_text_extents (GdkFont *font,
                             const gchar *text,
                             gint text_length,
                             gint *lbearing,
                             gint *rbearing,
                             gint *width,
                             gint *ascent,
                             gint *descent);
void gdk_text_extents_wc (GdkFont *font,
                             const GdkWChar *text,
                             gint text_length,
                             gint *lbearing,
                             gint *rbearing,
                             gint *width,
                             gint *ascent,
                             gint *descent);
void gdk_string_extents (GdkFont *font,
                             const gchar *string,
                             gint *lbearing,
                             gint *rbearing,
                             gint *width,
                             gint *ascent,
                             gint *descent);



void gdk_draw_point (GdkDrawable *drawable,
                          GdkGC *gc,
                          gint x,
                          gint y);
void gdk_draw_line (GdkDrawable *drawable,
                          GdkGC *gc,
                          gint x1,
                          gint y1,
                          gint x2,
                          gint y2);
void gdk_draw_rectangle (GdkDrawable *drawable,
                          GdkGC *gc,
                          gint filled,
                          gint x,
                          gint y,
                          gint width,
                          gint height);
void gdk_draw_arc (GdkDrawable *drawable,
                          GdkGC *gc,
                          gint filled,
                          gint x,
                          gint y,
                          gint width,
                          gint height,
                          gint angle1,
                          gint angle2);
void gdk_draw_polygon (GdkDrawable *drawable,
                          GdkGC *gc,
                          gint filled,
                          GdkPoint *points,
                          gint npoints);
void gdk_draw_string (GdkDrawable *drawable,
                          GdkFont *font,
                          GdkGC *gc,
                          gint x,
                          gint y,
                          const gchar *string);
void gdk_draw_text (GdkDrawable *drawable,
                          GdkFont *font,
                          GdkGC *gc,
                          gint x,
                          gint y,
                          const gchar *text,
                          gint text_length);
void gdk_draw_text_wc (GdkDrawable *drawable,
                          GdkFont *font,
                          GdkGC *gc,
                          gint x,
                          gint y,
                          const GdkWChar *text,
                          gint text_length);
void gdk_draw_pixmap (GdkDrawable *drawable,
                          GdkGC *gc,
                          GdkDrawable *src,
                          gint xsrc,
                          gint ysrc,
                          gint xdest,
                          gint ydest,
                          gint width,
                          gint height);
void gdk_draw_image (GdkDrawable *drawable,
                          GdkGC *gc,
                          GdkImage *image,
                          gint xsrc,
                          gint ysrc,
                          gint xdest,
                          gint ydest,
                          gint width,
                          gint height);
void gdk_draw_points (GdkDrawable *drawable,
                          GdkGC *gc,
                          GdkPoint *points,
                          gint npoints);
void gdk_draw_segments (GdkDrawable *drawable,
                          GdkGC *gc,
                          GdkSegment *segs,
                          gint nsegs);
void gdk_draw_lines (GdkDrawable *drawable,
                          GdkGC *gc,
                          GdkPoint *points,
                          gint npoints);






gboolean gdk_selection_owner_set (GdkWindow *owner,
                                    GdkAtom selection,
                                    guint32 time,
                                    gint send_event);
GdkWindow* gdk_selection_owner_get (GdkAtom selection);
void gdk_selection_convert (GdkWindow *requestor,
                                    GdkAtom selection,
                                    GdkAtom target,
                                    guint32 time);
gboolean gdk_selection_property_get (GdkWindow *requestor,
                                       guchar **data,
                                       GdkAtom *prop_type,
                                       gint *prop_format);
void gdk_selection_send_notify (guint32 requestor,
                                      GdkAtom selection,
                                      GdkAtom target,
                                      GdkAtom property,
                                      guint32 time);

gint gdk_text_property_to_text_list (GdkAtom encoding, gint format,
                                           guchar *text, gint length,
                                           gchar ***list);
void gdk_free_text_list (gchar **list);
gint gdk_string_to_compound_text (const gchar *str,
                                           GdkAtom *encoding, gint *format,
                                           guchar **ctext, gint *length);
void gdk_free_compound_text (guchar *ctext);



GdkAtom gdk_atom_intern (const gchar *atom_name,
                              gint only_if_exists);
gchar* gdk_atom_name (GdkAtom atom);
gboolean gdk_property_get (GdkWindow *window,
                              GdkAtom property,
                              GdkAtom type,
                              gulong offset,
                              gulong length,
                              gint pdelete,
                              GdkAtom *actual_property_type,
                              gint *actual_format,
                              gint *actual_length,
                              guchar **data);
void gdk_property_change (GdkWindow *window,
                              GdkAtom property,
                              GdkAtom type,
                              gint format,
                              GdkPropMode mode,
                              guchar *data,
                              gint nelements);
void gdk_property_delete (GdkWindow *window,
                              GdkAtom property);





gboolean gdk_rectangle_intersect (GdkRectangle *src1,
                                  GdkRectangle *src2,
                                  GdkRectangle *dest);
void gdk_rectangle_union (GdkRectangle *src1,
                                  GdkRectangle *src2,
                                  GdkRectangle *dest);



void gdk_input_init (void);
void gdk_input_exit (void);
GList * gdk_input_list_devices (void);
void gdk_input_set_extension_events (GdkWindow *window,
                                              gint mask,
                                              GdkExtensionMode mode);
void gdk_input_set_source (guint32 deviceid,
                                              GdkInputSource source);
gboolean gdk_input_set_mode (guint32 deviceid,
                                              GdkInputMode mode);
void gdk_input_set_axes (guint32 deviceid,
                                              GdkAxisUse *axes);
void gdk_input_set_key (guint32 deviceid,
                                              guint index,
                                              guint keyval,
                                              GdkModifierType modifiers);
void gdk_input_window_get_pointer (GdkWindow *window,
                                              guint32 deviceid,
                                              gdouble *x,
                                              gdouble *y,
                                              gdouble *pressure,
                                              gdouble *xtilt,
                                              gdouble *ytilt,
                                              GdkModifierType *mask);
GdkTimeCoord *gdk_input_motion_events (GdkWindow *window,
                                              guint32 deviceid,
                                              guint32 start,
                                              guint32 stop,
                                              gint *nevents_return);




gboolean gdk_im_ready (void);

void gdk_im_begin (GdkIC *ic,
                                    GdkWindow *window);
void gdk_im_end (void);
GdkIMStyle gdk_im_decide_style (GdkIMStyle supported_style);
GdkIMStyle gdk_im_set_best_style (GdkIMStyle best_allowed_style);

GdkIC* gdk_ic_new (GdkICAttr *attr,
                                    GdkICAttributesType mask);
void gdk_ic_destroy (GdkIC *ic);
GdkIMStyle gdk_ic_get_style (GdkIC *ic);
GdkEventMask gdk_ic_get_events (GdkIC *ic);

GdkICAttr* gdk_ic_attr_new (void);
void gdk_ic_attr_destroy (GdkICAttr *attr);

GdkICAttributesType gdk_ic_set_attr (GdkIC *ic,
                                      GdkICAttr *attr,
                                      GdkICAttributesType mask);
GdkICAttributesType gdk_ic_get_attr (GdkIC *ic,
                                      GdkICAttr *attr,
                                      GdkICAttributesType mask);



gchar *gdk_wcstombs (const GdkWChar *src);
gint gdk_mbstowcs (GdkWChar *dest,
                                  const gchar *src,
                                  gint dest_max);




GdkColorContext *gdk_color_context_new (GdkVisual *visual,
                                                           GdkColormap *colormap);

GdkColorContext *gdk_color_context_new_mono (GdkVisual *visual,
                                                           GdkColormap *colormap);

void gdk_color_context_free (GdkColorContext *cc);

gulong gdk_color_context_get_pixel (GdkColorContext *cc,
                                                           gushort red,
                                                           gushort green,
                                                           gushort blue,
                                                           gint *failed);
void gdk_color_context_get_pixels (GdkColorContext *cc,
                                                           gushort *reds,
                                                           gushort *greens,
                                                           gushort *blues,
                                                           gint ncolors,
                                                           gulong *colors,
                                                           gint *nallocated);
void gdk_color_context_get_pixels_incremental (GdkColorContext *cc,
                                                           gushort *reds,
                                                           gushort *greens,
                                                           gushort *blues,
                                                           gint ncolors,
                                                           gint *used,
                                                           gulong *colors,
                                                           gint *nallocated);

gint gdk_color_context_query_color (GdkColorContext *cc,
                                                           GdkColor *color);
gint gdk_color_context_query_colors (GdkColorContext *cc,
                                                           GdkColor *colors,
                                                           gint num_colors);

gint gdk_color_context_add_palette (GdkColorContext *cc,
                                                           GdkColor *palette,
                                                           gint num_palette);

void gdk_color_context_init_dither (GdkColorContext *cc);
void gdk_color_context_free_dither (GdkColorContext *cc);

gulong gdk_color_context_get_pixel_from_palette (GdkColorContext *cc,
                                                           gushort *red,
                                                           gushort *green,
                                                           gushort *blue,
                                                           gint *failed);
guchar gdk_color_context_get_index_from_palette (GdkColorContext *cc,
                                                           gint *red,
                                                           gint *green,
                                                           gint *blue,
                                                           gint *failed);



GdkRegion* gdk_region_new (void);
void gdk_region_destroy (GdkRegion *region);

void gdk_region_get_clipbox(GdkRegion *region,
                                      GdkRectangle *rectangle);

gboolean gdk_region_empty (GdkRegion *region);
gboolean gdk_region_equal (GdkRegion *region1,
                                     GdkRegion *region2);
gboolean gdk_region_point_in (GdkRegion *region,
                                     int x,
                                     int y);
GdkOverlapType gdk_region_rect_in (GdkRegion *region,
                                     GdkRectangle *rect);

GdkRegion* gdk_region_polygon (GdkPoint *points,
                                     gint npoints,
                                     GdkFillRule fill_rule);

void gdk_region_offset (GdkRegion *region,
                                    gint dx,
                                    gint dy);
void gdk_region_shrink (GdkRegion *region,
                                    gint dx,
                                    gint dy);

GdkRegion* gdk_region_union_with_rect (GdkRegion *region,
                                           GdkRectangle *rect);
GdkRegion* gdk_regions_intersect (GdkRegion *source1,
                                           GdkRegion *source2);
GdkRegion* gdk_regions_union (GdkRegion *source1,
                                           GdkRegion *source2);
GdkRegion* gdk_regions_subtract (GdkRegion *source1,
                                           GdkRegion *source2);
GdkRegion* gdk_regions_xor (GdkRegion *source1,
                                           GdkRegion *source2);


void gdk_event_send_clientmessage_toall (GdkEvent *event);
gboolean gdk_event_send_client_message (GdkEvent *event,
                                        guint32 xid);



gchar* gdk_keyval_name (guint keyval);
guint gdk_keyval_from_name (const gchar *keyval_name);
guint gdk_keyval_to_upper (guint keyval);
guint gdk_keyval_to_lower (guint keyval);
gboolean gdk_keyval_is_upper (guint keyval);
gboolean gdk_keyval_is_lower (guint keyval);




extern GMutex *gdk_threads_mutex;

void gdk_threads_enter (void);
void gdk_threads_leave (void);
# 1007 "/usr/include/gtk-1.2/gdk/gdk.h"
# 1 "/usr/include/gtk-1.2/gdk/gdkrgb.h" 1
# 34 "/usr/include/gtk-1.2/gdk/gdkrgb.h"
typedef struct _GdkRgbCmap GdkRgbCmap;

struct _GdkRgbCmap {
  guint32 colors[256];
  guchar lut[256];
};

void
gdk_rgb_init (void);

gulong
gdk_rgb_xpixel_from_rgb (guint32 rgb);

void
gdk_rgb_gc_set_foreground (GdkGC *gc, guint32 rgb);

void
gdk_rgb_gc_set_background (GdkGC *gc, guint32 rgb);

typedef enum
{
  GDK_RGB_DITHER_NONE,
  GDK_RGB_DITHER_NORMAL,
  GDK_RGB_DITHER_MAX
} GdkRgbDither;

void
gdk_draw_rgb_image (GdkDrawable *drawable,
                    GdkGC *gc,
                    gint x,
                    gint y,
                    gint width,
                    gint height,
                    GdkRgbDither dith,
                    guchar *rgb_buf,
                    gint rowstride);

void
gdk_draw_rgb_image_dithalign (GdkDrawable *drawable,
                              GdkGC *gc,
                              gint x,
                              gint y,
                              gint width,
                              gint height,
                              GdkRgbDither dith,
                              guchar *rgb_buf,
                              gint rowstride,
                              gint xdith,
                              gint ydith);

void
gdk_draw_rgb_32_image (GdkDrawable *drawable,
                       GdkGC *gc,
                       gint x,
                       gint y,
                       gint width,
                       gint height,
                       GdkRgbDither dith,
                       guchar *buf,
                       gint rowstride);

void
gdk_draw_gray_image (GdkDrawable *drawable,
                     GdkGC *gc,
                     gint x,
                     gint y,
                     gint width,
                     gint height,
                     GdkRgbDither dith,
                     guchar *buf,
                     gint rowstride);

GdkRgbCmap *
gdk_rgb_cmap_new (guint32 *colors, gint n_colors);

void
gdk_rgb_cmap_free (GdkRgbCmap *cmap);

void
gdk_draw_indexed_image (GdkDrawable *drawable,
                        GdkGC *gc,
                        gint x,
                        gint y,
                        gint width,
                        gint height,
                        GdkRgbDither dith,
                        guchar *buf,
                        gint rowstride,
                        GdkRgbCmap *cmap);




gboolean
gdk_rgb_ditherable (void);

void
gdk_rgb_set_verbose (gboolean verbose);


void
gdk_rgb_set_install (gboolean install);

void
gdk_rgb_set_min_colors (gint min_colors);

GdkColormap *
gdk_rgb_get_cmap (void);

GdkVisual *
gdk_rgb_get_visual (void);
# 1008 "/usr/include/gtk-1.2/gdk/gdk.h" 2
# 32 "/usr/include/gtk-1.2/gtk/gtknotebook.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkcontainer.h" 1
# 32 "/usr/include/gtk-1.2/gtk/gtkcontainer.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkenums.h" 1
# 35 "/usr/include/gtk-1.2/gtk/gtkenums.h"
typedef enum
{
  GTK_ARROW_UP,
  GTK_ARROW_DOWN,
  GTK_ARROW_LEFT,
  GTK_ARROW_RIGHT
} GtkArrowType;


typedef enum
{
  GTK_EXPAND = 1 << 0,
  GTK_SHRINK = 1 << 1,
  GTK_FILL = 1 << 2
} GtkAttachOptions;


typedef enum
{
  GTK_BUTTONBOX_DEFAULT_STYLE,
  GTK_BUTTONBOX_SPREAD,
  GTK_BUTTONBOX_EDGE,
  GTK_BUTTONBOX_START,
  GTK_BUTTONBOX_END
} GtkButtonBoxStyle;


typedef enum
{
  GTK_CURVE_TYPE_LINEAR,
  GTK_CURVE_TYPE_SPLINE,
  GTK_CURVE_TYPE_FREE
} GtkCurveType;


typedef enum
{
  GTK_DIR_TAB_FORWARD,
  GTK_DIR_TAB_BACKWARD,
  GTK_DIR_UP,
  GTK_DIR_DOWN,
  GTK_DIR_LEFT,
  GTK_DIR_RIGHT
} GtkDirectionType;


typedef enum
{
  GTK_JUSTIFY_LEFT,
  GTK_JUSTIFY_RIGHT,
  GTK_JUSTIFY_CENTER,
  GTK_JUSTIFY_FILL
} GtkJustification;


typedef enum
{
  GTK_MATCH_ALL,
  GTK_MATCH_ALL_TAIL,
  GTK_MATCH_HEAD,
  GTK_MATCH_TAIL,
  GTK_MATCH_EXACT,
  GTK_MATCH_LAST
} GtkMatchType;


typedef enum
{
  GTK_MENU_DIR_PARENT,
  GTK_MENU_DIR_CHILD,
  GTK_MENU_DIR_NEXT,
  GTK_MENU_DIR_PREV
} GtkMenuDirectionType;

typedef enum
{
  GTK_MENU_FACTORY_MENU,
  GTK_MENU_FACTORY_MENU_BAR,
  GTK_MENU_FACTORY_OPTION_MENU
} GtkMenuFactoryType;

typedef enum
{
  GTK_PIXELS,
  GTK_INCHES,
  GTK_CENTIMETERS
} GtkMetricType;


typedef enum
{
  GTK_ORIENTATION_HORIZONTAL,
  GTK_ORIENTATION_VERTICAL
} GtkOrientation;


typedef enum
{
  GTK_CORNER_TOP_LEFT,
  GTK_CORNER_BOTTOM_LEFT,
  GTK_CORNER_TOP_RIGHT,
  GTK_CORNER_BOTTOM_RIGHT
} GtkCornerType;


typedef enum
{
  GTK_PACK_START,
  GTK_PACK_END
} GtkPackType;


typedef enum
{
  GTK_PATH_PRIO_LOWEST = 0,
  GTK_PATH_PRIO_GTK = 4,
  GTK_PATH_PRIO_APPLICATION = 8,
  GTK_PATH_PRIO_RC = 12,
  GTK_PATH_PRIO_HIGHEST = 15,
  GTK_PATH_PRIO_MASK = 0x0f
} GtkPathPriorityType;


typedef enum
{
  GTK_PATH_WIDGET,
  GTK_PATH_WIDGET_CLASS,
  GTK_PATH_CLASS
} GtkPathType;


typedef enum
{
  GTK_POLICY_ALWAYS,
  GTK_POLICY_AUTOMATIC,
  GTK_POLICY_NEVER
} GtkPolicyType;

typedef enum
{
  GTK_POS_LEFT,
  GTK_POS_RIGHT,
  GTK_POS_TOP,
  GTK_POS_BOTTOM
} GtkPositionType;

typedef enum
{
  GTK_PREVIEW_COLOR,
  GTK_PREVIEW_GRAYSCALE
} GtkPreviewType;


typedef enum
{
  GTK_RELIEF_NORMAL,
  GTK_RELIEF_HALF,
  GTK_RELIEF_NONE
} GtkReliefStyle;


typedef enum
{
  GTK_RESIZE_PARENT,
  GTK_RESIZE_QUEUE,
  GTK_RESIZE_IMMEDIATE
} GtkResizeMode;


typedef enum
{
  GTK_RUN_FIRST = 1 << 0,
  GTK_RUN_LAST = 1 << 1,
  GTK_RUN_BOTH = (GTK_RUN_FIRST | GTK_RUN_LAST),
  GTK_RUN_NO_RECURSE = 1 << 2,
  GTK_RUN_ACTION = 1 << 3,
  GTK_RUN_NO_HOOKS = 1 << 4
} GtkSignalRunType;


typedef enum
{
  GTK_SCROLL_NONE,
  GTK_SCROLL_STEP_BACKWARD,
  GTK_SCROLL_STEP_FORWARD,
  GTK_SCROLL_PAGE_BACKWARD,
  GTK_SCROLL_PAGE_FORWARD,
  GTK_SCROLL_JUMP
} GtkScrollType;


typedef enum
{
  GTK_SELECTION_SINGLE,
  GTK_SELECTION_BROWSE,
  GTK_SELECTION_MULTIPLE,
  GTK_SELECTION_EXTENDED
} GtkSelectionMode;


typedef enum
{
  GTK_SHADOW_NONE,
  GTK_SHADOW_IN,
  GTK_SHADOW_OUT,
  GTK_SHADOW_ETCHED_IN,
  GTK_SHADOW_ETCHED_OUT
} GtkShadowType;


typedef enum
{
  GTK_STATE_NORMAL,
  GTK_STATE_ACTIVE,
  GTK_STATE_PRELIGHT,
  GTK_STATE_SELECTED,
  GTK_STATE_INSENSITIVE
} GtkStateType;


typedef enum
{
  GTK_DIRECTION_LEFT,
  GTK_DIRECTION_RIGHT
} GtkSubmenuDirection;


typedef enum
{
  GTK_TOP_BOTTOM,
  GTK_LEFT_RIGHT
} GtkSubmenuPlacement;


typedef enum
{
  GTK_TOOLBAR_ICONS,
  GTK_TOOLBAR_TEXT,
  GTK_TOOLBAR_BOTH
} GtkToolbarStyle;


typedef enum
{
  GTK_TROUGH_NONE,
  GTK_TROUGH_START,
  GTK_TROUGH_END,
  GTK_TROUGH_JUMP
} GtkTroughType;


typedef enum
{
  GTK_UPDATE_CONTINUOUS,
  GTK_UPDATE_DISCONTINUOUS,
  GTK_UPDATE_DELAYED
} GtkUpdateType;


typedef enum
{
  GTK_VISIBILITY_NONE,
  GTK_VISIBILITY_PARTIAL,
  GTK_VISIBILITY_FULL
} GtkVisibility;


typedef enum
{
  GTK_WIN_POS_NONE,
  GTK_WIN_POS_CENTER,
  GTK_WIN_POS_MOUSE,
  GTK_WIN_POS_CENTER_ALWAYS
} GtkWindowPosition;


typedef enum
{
  GTK_WINDOW_TOPLEVEL,
  GTK_WINDOW_DIALOG,
  GTK_WINDOW_POPUP
} GtkWindowType;


typedef enum
{
  GTK_SORT_ASCENDING,
  GTK_SORT_DESCENDING
} GtkSortType;
# 33 "/usr/include/gtk-1.2/gtk/gtkcontainer.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkwidget.h" 1
# 31 "/usr/include/gtk-1.2/gtk/gtkwidget.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkaccelgroup.h" 1
# 35 "/usr/include/gtk-1.2/gtk/gtkaccelgroup.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkobject.h" 1
# 31 "/usr/include/gtk-1.2/gtk/gtkobject.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkarg.h" 1
# 31 "/usr/include/gtk-1.2/gtk/gtkarg.h"
# 1 "/usr/include/gtk-1.2/gtk/gtktypeutils.h" 1
# 41 "/usr/include/gtk-1.2/gtk/gtktypeutils.h"
typedef enum
{
  GTK_TYPE_INVALID,
  GTK_TYPE_NONE,


  GTK_TYPE_CHAR,
  GTK_TYPE_UCHAR,
  GTK_TYPE_BOOL,
  GTK_TYPE_INT,
  GTK_TYPE_UINT,
  GTK_TYPE_LONG,
  GTK_TYPE_ULONG,
  GTK_TYPE_FLOAT,
  GTK_TYPE_DOUBLE,
  GTK_TYPE_STRING,
  GTK_TYPE_ENUM,
  GTK_TYPE_FLAGS,
  GTK_TYPE_BOXED,
  GTK_TYPE_POINTER,


  GTK_TYPE_SIGNAL,
  GTK_TYPE_ARGS,
  GTK_TYPE_CALLBACK,
  GTK_TYPE_C_CALLBACK,
  GTK_TYPE_FOREIGN,


  GTK_TYPE_OBJECT
} GtkFundamentalType;
# 123 "/usr/include/gtk-1.2/gtk/gtktypeutils.h"
typedef guint GtkType;

typedef struct _GtkTypeObject GtkTypeObject;
typedef struct _GtkTypeClass GtkTypeClass;
# 135 "/usr/include/gtk-1.2/gtk/gtktypeutils.h"
# 1 "/usr/include/gtk-1.2/gtk/gtktypebuiltins.h" 1


extern GtkType GTK_TYPE_ACCEL_FLAGS;
extern GtkType GTK_TYPE_CALENDAR_DISPLAY_OPTIONS;
extern GtkType GTK_TYPE_CELL_TYPE;
extern GtkType GTK_TYPE_CLIST_DRAG_POS;
extern GtkType GTK_TYPE_BUTTON_ACTION;
extern GtkType GTK_TYPE_CTREE_POS;
extern GtkType GTK_TYPE_CTREE_LINE_STYLE;
extern GtkType GTK_TYPE_CTREE_EXPANDER_STYLE;
extern GtkType GTK_TYPE_CTREE_EXPANSION_TYPE;
extern GtkType GTK_TYPE_DEBUG_FLAG;
extern GtkType GTK_TYPE_DEST_DEFAULTS;
extern GtkType GTK_TYPE_TARGET_FLAGS;
extern GtkType GTK_TYPE_ARROW_TYPE;
extern GtkType GTK_TYPE_ATTACH_OPTIONS;
extern GtkType GTK_TYPE_BUTTON_BOX_STYLE;
extern GtkType GTK_TYPE_CURVE_TYPE;
extern GtkType GTK_TYPE_DIRECTION_TYPE;
extern GtkType GTK_TYPE_JUSTIFICATION;
extern GtkType GTK_TYPE_MATCH_TYPE;
extern GtkType GTK_TYPE_MENU_DIRECTION_TYPE;
extern GtkType GTK_TYPE_MENU_FACTORY_TYPE;
extern GtkType GTK_TYPE_METRIC_TYPE;
extern GtkType GTK_TYPE_ORIENTATION;
extern GtkType GTK_TYPE_CORNER_TYPE;
extern GtkType GTK_TYPE_PACK_TYPE;
extern GtkType GTK_TYPE_PATH_PRIORITY_TYPE;
extern GtkType GTK_TYPE_PATH_TYPE;
extern GtkType GTK_TYPE_POLICY_TYPE;
extern GtkType GTK_TYPE_POSITION_TYPE;
extern GtkType GTK_TYPE_PREVIEW_TYPE;
extern GtkType GTK_TYPE_RELIEF_STYLE;
extern GtkType GTK_TYPE_RESIZE_MODE;
extern GtkType GTK_TYPE_SIGNAL_RUN_TYPE;
extern GtkType GTK_TYPE_SCROLL_TYPE;
extern GtkType GTK_TYPE_SELECTION_MODE;
extern GtkType GTK_TYPE_SHADOW_TYPE;
extern GtkType GTK_TYPE_STATE_TYPE;
extern GtkType GTK_TYPE_SUBMENU_DIRECTION;
extern GtkType GTK_TYPE_SUBMENU_PLACEMENT;
extern GtkType GTK_TYPE_TOOLBAR_STYLE;
extern GtkType GTK_TYPE_TROUGH_TYPE;
extern GtkType GTK_TYPE_UPDATE_TYPE;
extern GtkType GTK_TYPE_VISIBILITY;
extern GtkType GTK_TYPE_WINDOW_POSITION;
extern GtkType GTK_TYPE_WINDOW_TYPE;
extern GtkType GTK_TYPE_SORT_TYPE;
extern GtkType GTK_TYPE_FONT_METRIC_TYPE;
extern GtkType GTK_TYPE_FONT_TYPE;
extern GtkType GTK_TYPE_FONT_FILTER_TYPE;
extern GtkType GTK_TYPE_OBJECT_FLAGS;
extern GtkType GTK_TYPE_ARG_FLAGS;
extern GtkType GTK_TYPE_PACKER_OPTIONS;
extern GtkType GTK_TYPE_SIDE_TYPE;
extern GtkType GTK_TYPE_ANCHOR_TYPE;
extern GtkType GTK_TYPE_PRIVATE_FLAGS;
extern GtkType GTK_TYPE_PROGRESS_BAR_STYLE;
extern GtkType GTK_TYPE_PROGRESS_BAR_ORIENTATION;
extern GtkType GTK_TYPE_RC_FLAGS;
extern GtkType GTK_TYPE_RC_TOKEN_TYPE;
extern GtkType GTK_TYPE_SPIN_BUTTON_UPDATE_POLICY;
extern GtkType GTK_TYPE_SPIN_TYPE;
extern GtkType GTK_TYPE_TOOLBAR_CHILD_TYPE;
extern GtkType GTK_TYPE_TOOLBAR_SPACE_STYLE;
extern GtkType GTK_TYPE_TREE_VIEW_MODE;
extern GtkType GTK_TYPE_FUNDAMENTAL_TYPE;
extern GtkType GTK_TYPE_WIDGET_FLAGS;
extern GtkType GTK_TYPE_GDK_WINDOW_TYPE;
extern GtkType GTK_TYPE_GDK_WINDOW_CLASS;
extern GtkType GTK_TYPE_GDK_IMAGE_TYPE;
extern GtkType GTK_TYPE_GDK_VISUAL_TYPE;
extern GtkType GTK_TYPE_GDK_FONT_TYPE;
extern GtkType GTK_TYPE_GDK_WINDOW_ATTRIBUTES_TYPE;
extern GtkType GTK_TYPE_GDK_WINDOW_HINTS;
extern GtkType GTK_TYPE_GDK_FUNCTION;
extern GtkType GTK_TYPE_GDK_FILL;
extern GtkType GTK_TYPE_GDK_FILL_RULE;
extern GtkType GTK_TYPE_GDK_LINE_STYLE;
extern GtkType GTK_TYPE_GDK_CAP_STYLE;
extern GtkType GTK_TYPE_GDK_JOIN_STYLE;
extern GtkType GTK_TYPE_GDK_CURSOR_TYPE;
extern GtkType GTK_TYPE_GDK_FILTER_RETURN;
extern GtkType GTK_TYPE_GDK_VISIBILITY_STATE;
extern GtkType GTK_TYPE_GDK_EVENT_TYPE;
extern GtkType GTK_TYPE_GDK_EVENT_MASK;
extern GtkType GTK_TYPE_GDK_NOTIFY_TYPE;
extern GtkType GTK_TYPE_GDK_CROSSING_MODE;
extern GtkType GTK_TYPE_GDK_MODIFIER_TYPE;
extern GtkType GTK_TYPE_GDK_SUBWINDOW_MODE;
extern GtkType GTK_TYPE_GDK_INPUT_CONDITION;
extern GtkType GTK_TYPE_GDK_STATUS;
extern GtkType GTK_TYPE_GDK_BYTE_ORDER;
extern GtkType GTK_TYPE_GDK_GC_VALUES_MASK;
extern GtkType GTK_TYPE_GDK_SELECTION;
extern GtkType GTK_TYPE_GDK_PROPERTY_STATE;
extern GtkType GTK_TYPE_GDK_PROP_MODE;
extern GtkType GTK_TYPE_GDK_INPUT_SOURCE;
extern GtkType GTK_TYPE_GDK_INPUT_MODE;
extern GtkType GTK_TYPE_GDK_AXIS_USE;
extern GtkType GTK_TYPE_GDK_TARGET;
extern GtkType GTK_TYPE_GDK_SELECTION_TYPE;
extern GtkType GTK_TYPE_GDK_EXTENSION_MODE;
extern GtkType GTK_TYPE_GDK_IM_STYLE;
extern GtkType GTK_TYPE_GDK_IC_ATTRIBUTES_TYPE;
extern GtkType GTK_TYPE_GDK_WM_DECORATION;
extern GtkType GTK_TYPE_GDK_WM_FUNCTION;
extern GtkType GTK_TYPE_GDK_COLOR_CONTEXT_MODE;
extern GtkType GTK_TYPE_GDK_OVERLAP_TYPE;
extern GtkType GTK_TYPE_GDK_DRAG_ACTION;
extern GtkType GTK_TYPE_GDK_DRAG_PROTOCOL;
extern GtkType GTK_TYPE_GDK_RGB_DITHER;
extern GtkType GTK_TYPE_ACCEL_GROUP;
extern GtkType GTK_TYPE_SELECTION_DATA;
extern GtkType GTK_TYPE_STYLE;
extern GtkType GTK_TYPE_CTREE_NODE;
extern GtkType GTK_TYPE_GDK_COLORMAP;
extern GtkType GTK_TYPE_GDK_VISUAL;
extern GtkType GTK_TYPE_GDK_FONT;
extern GtkType GTK_TYPE_GDK_WINDOW;
extern GtkType GTK_TYPE_GDK_DRAG_CONTEXT;
extern GtkType GTK_TYPE_GDK_EVENT;
extern GtkType GTK_TYPE_GDK_COLOR;
# 136 "/usr/include/gtk-1.2/gtk/gtktypeutils.h" 2






GtkType gtk_identifier_get_type (void);







typedef struct _GtkArg GtkArg;
typedef struct _GtkObject GtkObject;
typedef struct _GtkTypeInfo GtkTypeInfo;
typedef struct _GtkTypeQuery GtkTypeQuery;
typedef struct _GtkEnumValue GtkEnumValue;
typedef struct _GtkEnumValue GtkFlagValue;




typedef void (*GtkClassInitFunc) (gpointer klass);
typedef void (*GtkObjectInitFunc) (gpointer object,
                                    gpointer klass);
typedef void (*GtkSignalFunc) ();
typedef gint (*GtkFunction) (gpointer data);
typedef void (*GtkDestroyNotify) (gpointer data);
typedef void (*GtkCallbackMarshal) (GtkObject *object,
                                    gpointer data,
                                    guint n_args,
                                    GtkArg *args);
typedef void (*GtkSignalMarshaller) (GtkObject *object,
                                     GtkSignalFunc func,
                                     gpointer func_data,
                                     GtkArg *args);


typedef void (*GtkArgGetFunc) (GtkObject*, GtkArg*, guint);
typedef void (*GtkArgSetFunc) (GtkObject*, GtkArg*, guint);







struct _GtkTypeObject
{




  GtkTypeClass *klass;
};


struct _GtkTypeClassDummyAlign
{
  GtkType type;
  guint *signals;
};







struct _GtkTypeClass
{



  GtkType type;
}

__attribute__ ((aligned (__alignof (struct _GtkTypeClassDummyAlign))))

;


struct _GtkArg
{
  GtkType type;
  gchar *name;







  union {

    gchar char_data;
    guchar uchar_data;
    gboolean bool_data;
    gint int_data;
    guint uint_data;
    glong long_data;
    gulong ulong_data;
    gfloat float_data;
    gdouble double_data;
    gchar *string_data;
    gpointer pointer_data;
    GtkObject *object_data;


    struct {
      GtkSignalFunc f;
      gpointer d;
    } signal_data;
    struct {
      gint n_args;
      GtkArg *args;
    } args_data;
    struct {
      GtkCallbackMarshal marshal;
      gpointer data;
      GtkDestroyNotify notify;
    } callback_data;
    struct {
      GtkFunction func;
      gpointer func_data;
    } c_callback_data;
    struct {
      gpointer data;
      GtkDestroyNotify notify;
    } foreign_data;
  } d;
};
# 322 "/usr/include/gtk-1.2/gtk/gtktypeutils.h"
struct _GtkTypeInfo
{
  gchar *type_name;
  guint object_size;
  guint class_size;
  GtkClassInitFunc class_init_func;
  GtkObjectInitFunc object_init_func;
  gpointer reserved_1;
  gpointer reserved_2;
  GtkClassInitFunc base_class_init_func;
};

struct _GtkTypeQuery
{
  GtkType type;
  const gchar *type_name;
  guint object_size;
  guint class_size;
};

struct _GtkEnumValue
{
  guint value;
  gchar *value_name;
  gchar *value_nick;
};


void gtk_type_init (void);
GtkType gtk_type_unique (GtkType parent_type,
                                                 const GtkTypeInfo *type_info);
void gtk_type_set_chunk_alloc (GtkType type,
                                                 guint n_chunks);
gchar* gtk_type_name (guint type);
GtkType gtk_type_from_name (const gchar *name);
GtkType gtk_type_parent (GtkType type);
gpointer gtk_type_class (GtkType type);
gpointer gtk_type_parent_class (GtkType type);
GList* gtk_type_children_types (GtkType type);
gpointer gtk_type_new (GtkType type);
void gtk_type_free (GtkType type,
                                                 gpointer mem);
void gtk_type_describe_heritage (GtkType type);
void gtk_type_describe_tree (GtkType type,
                                                 gboolean show_size);
gboolean gtk_type_is_a (GtkType type,
                                                 GtkType is_a_type);
GtkTypeObject* gtk_type_check_object_cast (GtkTypeObject *type_object,
                                                 GtkType cast_type);
GtkTypeClass* gtk_type_check_class_cast (GtkTypeClass *klass,
                                                 GtkType cast_type);
GtkType gtk_type_register_enum (const gchar *type_name,
                                                 GtkEnumValue *values);
GtkType gtk_type_register_flags (const gchar *type_name,
                                                 GtkFlagValue *values);
GtkEnumValue* gtk_type_enum_get_values (GtkType enum_type);
GtkFlagValue* gtk_type_flags_get_values (GtkType flags_type);
GtkEnumValue* gtk_type_enum_find_value (GtkType enum_type,
                                                 const gchar *value_name);
GtkFlagValue* gtk_type_flags_find_value (GtkType flag_type,
                                                 const gchar *value_name);

void gtk_type_set_varargs_type (GtkType foreign_type,
                                                 GtkType varargs_type);
GtkType gtk_type_get_varargs_type (GtkType foreign_type);




GtkTypeQuery* gtk_type_query (GtkType type);
# 32 "/usr/include/gtk-1.2/gtk/gtkarg.h" 2
# 41 "/usr/include/gtk-1.2/gtk/gtkarg.h"
typedef struct _GtkArgInfo GtkArgInfo;

struct _GtkArgInfo
{

  GtkType class_type;
  gchar *name;

  GtkType type;
  guint arg_flags;
  gchar *full_name;


  guint arg_id;
  guint seq_id;
};




GtkArg* gtk_arg_new (GtkType arg_type);
GtkArg* gtk_arg_copy (GtkArg *src_arg,
                                          GtkArg *dest_arg);
void gtk_arg_free (GtkArg *arg,
                                          gboolean free_contents);
void gtk_arg_reset (GtkArg *arg);
gboolean gtk_arg_values_equal (const GtkArg *arg1,
                                          const GtkArg *arg2);
gchar* gtk_args_collect (GtkType object_type,
                                          GHashTable *arg_info_hash_table,
                                          GSList **arg_list_p,
                                          GSList **info_list_p,
                                          const gchar *first_arg_name,
                                          va_list var_args);
void gtk_args_collect_cleanup (GSList *arg_list,
                                          GSList *info_list);
gchar* gtk_arg_get_info (GtkType object_type,
                                          GHashTable *arg_info_hash_table,
                                          const gchar *arg_name,
                                          GtkArgInfo **info_p);
GtkArgInfo* gtk_arg_type_new_static (GtkType base_class_type,
                                          const gchar *arg_name,
                                          guint class_n_args_offset,
                                          GHashTable *arg_info_hash_table,
                                          GtkType arg_type,
                                          guint arg_flags,
                                          guint arg_id);
GtkArg* gtk_args_query (GtkType class_type,
                                          GHashTable *arg_info_hash_table,
                                          guint32 **arg_flags,
                                          guint *n_args_p);
gchar* gtk_arg_name_strip_type (const gchar *arg_name);
gint gtk_arg_info_equal (gconstpointer arg_info_1,
                                          gconstpointer arg_info_2);
guint gtk_arg_info_hash (gconstpointer arg_info);
void gtk_arg_to_valueloc (GtkArg *arg,
                                          gpointer value_pointer);
# 32 "/usr/include/gtk-1.2/gtk/gtkobject.h" 2


# 1 "/usr/include/gtk-1.2/gtk/gtkdebug.h" 1
# 34 "/usr/include/gtk-1.2/gtk/gtkdebug.h"
typedef enum {
  GTK_DEBUG_OBJECTS = 1 << 0,
  GTK_DEBUG_MISC = 1 << 1,
  GTK_DEBUG_SIGNALS = 1 << 2,
  GTK_DEBUG_DND = 1 << 3,
  GTK_DEBUG_PLUGSOCKET = 1 << 4
} GtkDebugFlag;
# 54 "/usr/include/gtk-1.2/gtk/gtkdebug.h"
extern guint gtk_debug_flags;
# 35 "/usr/include/gtk-1.2/gtk/gtkobject.h" 2
# 80 "/usr/include/gtk-1.2/gtk/gtkobject.h"
typedef enum
{
  GTK_DESTROYED = 1 << 0,
  GTK_FLOATING = 1 << 1,
  GTK_CONNECTED = 1 << 2,
  GTK_CONSTRUCTED = 1 << 3
} GtkObjectFlags;
# 103 "/usr/include/gtk-1.2/gtk/gtkobject.h"
typedef enum
{
  GTK_ARG_READABLE = 1 << 0,
  GTK_ARG_WRITABLE = 1 << 1,
  GTK_ARG_CONSTRUCT = 1 << 2,
  GTK_ARG_CONSTRUCT_ONLY = 1 << 3,
  GTK_ARG_CHILD_ARG = 1 << 4,
  GTK_ARG_MASK = 0x1f,



  GTK_ARG_READWRITE = GTK_ARG_READABLE | GTK_ARG_WRITABLE
} GtkArgFlags;

typedef struct _GtkObjectClass GtkObjectClass;







struct _GtkObject
{

  GtkObjectClass *klass;







  guint32 flags;




  guint ref_count;




  GData *object_data;
};
# 156 "/usr/include/gtk-1.2/gtk/gtkobject.h"
struct _GtkObjectClass
{

  GtkType type;





  guint *signals;



  guint nsignals;



  guint n_args;
  GSList *construct_args;


  void (*set_arg) (GtkObject *object,
                   GtkArg *arg,
                   guint arg_id);
  void (*get_arg) (GtkObject *object,
                   GtkArg *arg,
                   guint arg_id);
# 192 "/usr/include/gtk-1.2/gtk/gtkobject.h"
  void (* shutdown) (GtkObject *object);
  void (* destroy) (GtkObject *object);

  void (* finalize) (GtkObject *object);
};





GtkType gtk_object_get_type (void);


guint gtk_object_class_user_signal_new (GtkObjectClass *klass,
                                           const gchar *name,
                                           GtkSignalRunType signal_flags,
                                           GtkSignalMarshaller marshaller,
                                           GtkType return_val,
                                           guint nparams,
                                           ...);
guint gtk_object_class_user_signal_newv (GtkObjectClass *klass,
                                           const gchar *name,
                                           GtkSignalRunType signal_flags,
                                           GtkSignalMarshaller marshaller,
                                           GtkType return_val,
                                           guint nparams,
                                           GtkType *params);
GtkObject* gtk_object_new (GtkType type,
                                           const gchar *first_arg_name,
                                           ...);
GtkObject* gtk_object_newv (GtkType object_type,
                                           guint n_args,
                                           GtkArg *args);
void gtk_object_default_construct (GtkObject *object);
void gtk_object_constructed (GtkObject *object);
void gtk_object_sink (GtkObject *object);
void gtk_object_ref (GtkObject *object);
void gtk_object_unref (GtkObject *object);
void gtk_object_weakref (GtkObject *object,
                           GtkDestroyNotify notify,
                           gpointer data);
void gtk_object_weakunref (GtkObject *object,
                           GtkDestroyNotify notify,
                           gpointer data);
void gtk_object_destroy (GtkObject *object);






void gtk_object_getv (GtkObject *object,
                                 guint n_args,
                                 GtkArg *args);





void gtk_object_get (GtkObject *object,
                                 const gchar *first_arg_name,
                                 ...);






void gtk_object_set (GtkObject *object,
                                 const gchar *first_arg_name,
                                 ...);
void gtk_object_setv (GtkObject *object,
                                 guint n_args,
                                 GtkArg *args);
# 275 "/usr/include/gtk-1.2/gtk/gtkobject.h"
GtkArg* gtk_object_query_args (GtkType class_type,
                                 guint32 **arg_flags,
                                 guint *n_args);
# 291 "/usr/include/gtk-1.2/gtk/gtkobject.h"
void gtk_object_set_data (GtkObject *object,
                                      const gchar *key,
                                      gpointer data);
void gtk_object_set_data_full (GtkObject *object,
                                      const gchar *key,
                                      gpointer data,
                                      GtkDestroyNotify destroy);
void gtk_object_remove_data (GtkObject *object,
                                      const gchar *key);
gpointer gtk_object_get_data (GtkObject *object,
                                      const gchar *key);
void gtk_object_remove_no_notify (GtkObject *object,
                                      const gchar *key);






void gtk_object_set_user_data (GtkObject *object,
                                   gpointer data);
gpointer gtk_object_get_user_data (GtkObject *object);





void gtk_object_class_add_signals (GtkObjectClass *klass,
                                         guint *signals,
                                         guint nsignals);

void gtk_object_add_arg_type (const gchar *arg_name,
                                         GtkType arg_type,
                                         guint arg_flags,
                                         guint arg_id);


void gtk_object_set_data_by_id (GtkObject *object,
                                         GQuark data_id,
                                         gpointer data);
void gtk_object_set_data_by_id_full (GtkObject *object,
                                         GQuark data_id,
                                         gpointer data,
                                         GtkDestroyNotify destroy);
gpointer gtk_object_get_data_by_id (GtkObject *object,
                                         GQuark data_id);
void gtk_object_remove_data_by_id (GtkObject *object,
                                         GQuark data_id);
void gtk_object_remove_no_notify_by_id (GtkObject *object,
                                         GQuark key_id);






void gtk_object_arg_set (GtkObject *object,
                                 GtkArg *arg,
                                 GtkArgInfo *info);
void gtk_object_arg_get (GtkObject *object,
                                 GtkArg *arg,
                                 GtkArgInfo *info);
gchar* gtk_object_args_collect (GtkType object_type,
                                 GSList **arg_list_p,
                                 GSList **info_list_p,
                                 const gchar *first_arg_name,
                                 va_list var_args);
gchar* gtk_object_arg_get_info (GtkType object_type,
                                 const gchar *arg_name,
                                 GtkArgInfo **info_p);
void gtk_trace_referencing (GtkObject *object,
                                 const gchar *func,
                                 guint dummy,
                                 guint line,
                                 gboolean do_ref);
# 36 "/usr/include/gtk-1.2/gtk/gtkaccelgroup.h" 2
# 44 "/usr/include/gtk-1.2/gtk/gtkaccelgroup.h"
typedef struct _GtkAccelGroup GtkAccelGroup;
typedef struct _GtkAccelEntry GtkAccelEntry;

typedef enum
{



  GTK_ACCEL_VISIBLE = 1 << 0,



  GTK_ACCEL_SIGNAL_VISIBLE = 1 << 1,



  GTK_ACCEL_LOCKED = 1 << 2,
  GTK_ACCEL_MASK = 0x07
} GtkAccelFlags;

struct _GtkAccelGroup
{
  guint ref_count;
  guint lock_count;
  GdkModifierType modifier_mask;
  GSList *attach_objects;
};

struct _GtkAccelEntry
{


  GtkAccelGroup *accel_group;
  guint accelerator_key;
  GdkModifierType accelerator_mods;

  GtkAccelFlags accel_flags;
  GtkObject *object;
  guint signal_id;
};




gboolean gtk_accelerator_valid (guint keyval,
                                               GdkModifierType modifiers);
void gtk_accelerator_parse (const gchar *accelerator,
                                               guint *accelerator_key,
                                               GdkModifierType *accelerator_mods);
gchar* gtk_accelerator_name (guint accelerator_key,
                                               GdkModifierType accelerator_mods);
void gtk_accelerator_set_default_mod_mask (GdkModifierType default_mod_mask);
guint gtk_accelerator_get_default_mod_mask (void);




GtkAccelGroup* gtk_accel_group_new (void);
GtkAccelGroup* gtk_accel_group_get_default (void);
GtkAccelGroup* gtk_accel_group_ref (GtkAccelGroup *accel_group);
void gtk_accel_group_unref (GtkAccelGroup *accel_group);
void gtk_accel_group_lock (GtkAccelGroup *accel_group);
void gtk_accel_group_unlock (GtkAccelGroup *accel_group);
gboolean gtk_accel_groups_activate (GtkObject *object,
                                                 guint accel_key,
                                                 GdkModifierType accel_mods);



gboolean gtk_accel_group_activate (GtkAccelGroup *accel_group,
                                                 guint accel_key,
                                                 GdkModifierType accel_mods);
void gtk_accel_group_attach (GtkAccelGroup *accel_group,
                                                 GtkObject *object);
void gtk_accel_group_detach (GtkAccelGroup *accel_group,
                                                 GtkObject *object);



GtkAccelEntry* gtk_accel_group_get_entry (GtkAccelGroup *accel_group,
                                                 guint accel_key,
                                                 GdkModifierType accel_mods);
void gtk_accel_group_lock_entry (GtkAccelGroup *accel_group,
                                                 guint accel_key,
                                                 GdkModifierType accel_mods);
void gtk_accel_group_unlock_entry (GtkAccelGroup *accel_group,
                                                 guint accel_key,
                                                 GdkModifierType accel_mods);
void gtk_accel_group_add (GtkAccelGroup *accel_group,
                                                 guint accel_key,
                                                 GdkModifierType accel_mods,
                                                 GtkAccelFlags accel_flags,
                                                 GtkObject *object,
                                                 const gchar *accel_signal);
void gtk_accel_group_remove (GtkAccelGroup *accel_group,
                                                 guint accel_key,
                                                 GdkModifierType accel_mods,
                                                 GtkObject *object);



void gtk_accel_group_handle_add (GtkObject *object,
                                                 guint accel_signal_id,
                                                 GtkAccelGroup *accel_group,
                                                 guint accel_key,
                                                 GdkModifierType accel_mods,
                                                 GtkAccelFlags accel_flags);
void gtk_accel_group_handle_remove (GtkObject *object,
                                                 GtkAccelGroup *accel_group,
                                                 guint accel_key,
                                                 GdkModifierType accel_mods);
guint gtk_accel_group_create_add (GtkType class_type,
                                                 GtkSignalRunType signal_flags,
                                                 guint handler_offset);
guint gtk_accel_group_create_remove (GtkType class_type,
                                                 GtkSignalRunType signal_flags,
                                                 guint handler_offset);



GSList* gtk_accel_groups_from_object (GtkObject *object);
GSList* gtk_accel_group_entries_from_object (GtkObject *object);
# 32 "/usr/include/gtk-1.2/gtk/gtkwidget.h" 2

# 1 "/usr/include/gtk-1.2/gtk/gtkadjustment.h" 1
# 32 "/usr/include/gtk-1.2/gtk/gtkadjustment.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkdata.h" 1
# 48 "/usr/include/gtk-1.2/gtk/gtkdata.h"
typedef struct _GtkData GtkData;
typedef struct _GtkDataClass GtkDataClass;

struct _GtkData
{
  GtkObject object;
};

struct _GtkDataClass
{
  GtkObjectClass parent_class;

  void (* disconnect) (GtkData *data);
};


GtkType gtk_data_get_type (void);
# 33 "/usr/include/gtk-1.2/gtk/gtkadjustment.h" 2
# 47 "/usr/include/gtk-1.2/gtk/gtkadjustment.h"
typedef struct _GtkAdjustment GtkAdjustment;
typedef struct _GtkAdjustmentClass GtkAdjustmentClass;

struct _GtkAdjustment
{
  GtkData data;

  gfloat lower;
  gfloat upper;
  gfloat value;
  gfloat step_increment;
  gfloat page_increment;
  gfloat page_size;
};

struct _GtkAdjustmentClass
{
  GtkDataClass parent_class;

  void (* changed) (GtkAdjustment *adjustment);
  void (* value_changed) (GtkAdjustment *adjustment);
};


GtkType gtk_adjustment_get_type (void);
GtkObject* gtk_adjustment_new (gfloat value,
                                                 gfloat lower,
                                                 gfloat upper,
                                                 gfloat step_increment,
                                                 gfloat page_increment,
                                                 gfloat page_size);
void gtk_adjustment_changed (GtkAdjustment *adjustment);
void gtk_adjustment_value_changed (GtkAdjustment *adjustment);
void gtk_adjustment_clamp_page (GtkAdjustment *adjustment,
                                                 gfloat lower,
                                                 gfloat upper);
void gtk_adjustment_set_value (GtkAdjustment *adjustment,
                                                 gfloat value);
# 34 "/usr/include/gtk-1.2/gtk/gtkwidget.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkstyle.h" 1
# 38 "/usr/include/gtk-1.2/gtk/gtkstyle.h"
typedef struct _GtkStyle GtkStyle;
typedef struct _GtkStyleClass GtkStyleClass;




typedef struct _GtkThemeEngine GtkThemeEngine;
typedef struct _GtkRcStyle GtkRcStyle;





typedef struct _GtkWidget GtkWidget;
# 60 "/usr/include/gtk-1.2/gtk/gtkstyle.h"
struct _GtkStyle
{
  GtkStyleClass *klass;

  GdkColor fg[5];
  GdkColor bg[5];
  GdkColor light[5];
  GdkColor dark[5];
  GdkColor mid[5];
  GdkColor text[5];
  GdkColor base[5];

  GdkColor black;
  GdkColor white;
  GdkFont *font;

  GdkGC *fg_gc[5];
  GdkGC *bg_gc[5];
  GdkGC *light_gc[5];
  GdkGC *dark_gc[5];
  GdkGC *mid_gc[5];
  GdkGC *text_gc[5];
  GdkGC *base_gc[5];
  GdkGC *black_gc;
  GdkGC *white_gc;

  GdkPixmap *bg_pixmap[5];



  gint ref_count;
  gint attach_count;

  gint depth;
  GdkColormap *colormap;

  GtkThemeEngine *engine;

  gpointer engine_data;

  GtkRcStyle *rc_style;


  GSList *styles;
};

struct _GtkStyleClass
{
  gint xthickness;
  gint ythickness;

  void (*draw_hline) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint x1,
                                 gint x2,
                                 gint y);
  void (*draw_vline) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint y1,
                                 gint y2,
                                 gint x);
  void (*draw_shadow) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GtkShadowType shadow_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint x,
                                 gint y,
                                 gint width,
                                 gint height);
  void (*draw_polygon) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GtkShadowType shadow_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 GdkPoint *point,
                                 gint npoints,
                                 gboolean fill);
  void (*draw_arrow) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GtkShadowType shadow_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 GtkArrowType arrow_type,
                                 gboolean fill,
                                 gint x,
                                 gint y,
                                 gint width,
                                 gint height);
  void (*draw_diamond) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GtkShadowType shadow_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint x,
                                 gint y,
                                 gint width,
                                 gint height);
  void (*draw_oval) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GtkShadowType shadow_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint x,
                                 gint y,
                                 gint width,
                                 gint height);
  void (*draw_string) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint x,
                                 gint y,
                                 const gchar *string);
  void (*draw_box) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GtkShadowType shadow_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint x,
                                 gint y,
                                 gint width,
                                 gint height);
  void (*draw_flat_box) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GtkShadowType shadow_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint x,
                                 gint y,
                                 gint width,
                                 gint height);
  void (*draw_check) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GtkShadowType shadow_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint x,
                                 gint y,
                                 gint width,
                                 gint height);
  void (*draw_option) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GtkShadowType shadow_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint x,
                                 gint y,
                                 gint width,
                                 gint height);
  void (*draw_cross) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GtkShadowType shadow_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint x,
                                 gint y,
                                 gint width,
                                 gint height);
  void (*draw_ramp) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GtkShadowType shadow_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 GtkArrowType arrow_type,
                                 gint x,
                                 gint y,
                                 gint width,
                                 gint height);
  void (*draw_tab) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GtkShadowType shadow_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint x,
                                 gint y,
                                 gint width,
                                 gint height);
  void (*draw_shadow_gap) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GtkShadowType shadow_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint x,
                                 gint y,
                                 gint width,
                                 gint height,
                                 GtkPositionType gap_side,
                                 gint gap_x,
                                 gint gap_width);
  void (*draw_box_gap) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GtkShadowType shadow_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint x,
                                 gint y,
                                 gint width,
                                 gint height,
                                 GtkPositionType gap_side,
                                 gint gap_x,
                                 gint gap_width);
  void (*draw_extension) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GtkShadowType shadow_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint x,
                                 gint y,
                                 gint width,
                                 gint height,
                                 GtkPositionType gap_side);
  void (*draw_focus) (GtkStyle *style,
                                 GdkWindow *window,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint x,
                                 gint y,
                                 gint width,
                                 gint height);
  void (*draw_slider) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GtkShadowType shadow_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint x,
                                 gint y,
                                 gint width,
                                 gint height,
                                 GtkOrientation orientation);
  void (*draw_handle) (GtkStyle *style,
                                 GdkWindow *window,
                                 GtkStateType state_type,
                                 GtkShadowType shadow_type,
                                 GdkRectangle *area,
                                 GtkWidget *widget,
                                 gchar *detail,
                                 gint x,
                                 gint y,
                                 gint width,
                                 gint height,
                                 GtkOrientation orientation);
};

GtkStyle* gtk_style_new (void);
GtkStyle* gtk_style_copy (GtkStyle *style);
GtkStyle* gtk_style_attach (GtkStyle *style,
                                              GdkWindow *window);
void gtk_style_detach (GtkStyle *style);
GtkStyle* gtk_style_ref (GtkStyle *style);
void gtk_style_unref (GtkStyle *style);
void gtk_style_set_background (GtkStyle *style,
                                              GdkWindow *window,
                                              GtkStateType state_type);
void gtk_style_apply_default_background (GtkStyle *style,
                                              GdkWindow *window,
                                              gboolean set_bg,
                                              GtkStateType state_type,
                                              GdkRectangle *area,
                                              gint x,
                                              gint y,
                                              gint width,
                                              gint height);

void gtk_draw_hline (GtkStyle *style,
                       GdkWindow *window,
                       GtkStateType state_type,
                       gint x1,
                       gint x2,
                       gint y);
void gtk_draw_vline (GtkStyle *style,
                       GdkWindow *window,
                       GtkStateType state_type,
                       gint y1,
                       gint y2,
                       gint x);
void gtk_draw_shadow (GtkStyle *style,
                       GdkWindow *window,
                       GtkStateType state_type,
                       GtkShadowType shadow_type,
                       gint x,
                       gint y,
                       gint width,
                       gint height);
void gtk_draw_polygon (GtkStyle *style,
                       GdkWindow *window,
                       GtkStateType state_type,
                       GtkShadowType shadow_type,
                       GdkPoint *points,
                       gint npoints,
                       gboolean fill);
void gtk_draw_arrow (GtkStyle *style,
                       GdkWindow *window,
                       GtkStateType state_type,
                       GtkShadowType shadow_type,
                       GtkArrowType arrow_type,
                       gboolean fill,
                       gint x,
                       gint y,
                       gint width,
                       gint height);
void gtk_draw_diamond (GtkStyle *style,
                       GdkWindow *window,
                       GtkStateType state_type,
                       GtkShadowType shadow_type,
                       gint x,
                       gint y,
                       gint width,
                       gint height);
void gtk_draw_oval (GtkStyle *style,
                       GdkWindow *window,
                       GtkStateType state_type,
                       GtkShadowType shadow_type,
                       gint x,
                       gint y,
                       gint width,
                       gint height);
void gtk_draw_string (GtkStyle *style,
                       GdkWindow *window,
                       GtkStateType state_type,
                       gint x,
                       gint y,
                       const gchar *string);
void gtk_draw_box (GtkStyle *style,
                       GdkWindow *window,
                       GtkStateType state_type,
                       GtkShadowType shadow_type,
                       gint x,
                       gint y,
                       gint width,
                       gint height);
void gtk_draw_flat_box (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GtkShadowType shadow_type,
                        gint x,
                        gint y,
                        gint width,
                        gint height);
void gtk_draw_check (GtkStyle *style,
                       GdkWindow *window,
                       GtkStateType state_type,
                       GtkShadowType shadow_type,
                       gint x,
                       gint y,
                       gint width,
                       gint height);
void gtk_draw_option (GtkStyle *style,
                       GdkWindow *window,
                       GtkStateType state_type,
                       GtkShadowType shadow_type,
                       gint x,
                       gint y,
                       gint width,
                       gint height);
void gtk_draw_cross (GtkStyle *style,
                       GdkWindow *window,
                       GtkStateType state_type,
                       GtkShadowType shadow_type,
                       gint x,
                       gint y,
                       gint width,
                       gint height);
void gtk_draw_ramp (GtkStyle *style,
                       GdkWindow *window,
                       GtkStateType state_type,
                       GtkShadowType shadow_type,
                       GtkArrowType arrow_type,
                       gint x,
                       gint y,
                       gint width,
                       gint height);
void gtk_draw_tab (GtkStyle *style,
                       GdkWindow *window,
                       GtkStateType state_type,
                       GtkShadowType shadow_type,
                       gint x,
                       gint y,
                       gint width,
                       gint height);
void gtk_draw_shadow_gap (GtkStyle *style,
                          GdkWindow *window,
                          GtkStateType state_type,
                          GtkShadowType shadow_type,
                          gint x,
                          gint y,
                          gint width,
                          gint height,
                          GtkPositionType gap_side,
                          gint gap_x,
                          gint gap_width);
void gtk_draw_box_gap (GtkStyle *style,
                       GdkWindow *window,
                       GtkStateType state_type,
                       GtkShadowType shadow_type,
                       gint x,
                       gint y,
                       gint width,
                       gint height,
                       GtkPositionType gap_side,
                       gint gap_x,
                       gint gap_width);
void gtk_draw_extension (GtkStyle *style,
                         GdkWindow *window,
                         GtkStateType state_type,
                         GtkShadowType shadow_type,
                         gint x,
                         gint y,
                         gint width,
                         gint height,
                         GtkPositionType gap_side);
void gtk_draw_focus (GtkStyle *style,
                       GdkWindow *window,
                       gint x,
                       gint y,
                       gint width,
                       gint height);
void gtk_draw_slider (GtkStyle *style,
                       GdkWindow *window,
                       GtkStateType state_type,
                       GtkShadowType shadow_type,
                       gint x,
                       gint y,
                       gint width,
                       gint height,
                       GtkOrientation orientation);
void gtk_draw_handle (GtkStyle *style,
                       GdkWindow *window,
                       GtkStateType state_type,
                       GtkShadowType shadow_type,
                       gint x,
                       gint y,
                       gint width,
                       gint height,
                       GtkOrientation orientation);

void gtk_paint_hline (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        gint x1,
                        gint x2,
                        gint y);
void gtk_paint_vline (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        gint y1,
                        gint y2,
                        gint x);
void gtk_paint_shadow (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GtkShadowType shadow_type,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        gint x,
                        gint y,
                        gint width,
                        gint height);
void gtk_paint_polygon (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GtkShadowType shadow_type,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        GdkPoint *points,
                        gint npoints,
                        gboolean fill);
void gtk_paint_arrow (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GtkShadowType shadow_type,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        GtkArrowType arrow_type,
                        gboolean fill,
                        gint x,
                        gint y,
                        gint width,
                        gint height);
void gtk_paint_diamond (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GtkShadowType shadow_type,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        gint x,
                        gint y,
                        gint width,
                        gint height);
void gtk_paint_oval (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GtkShadowType shadow_type,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        gint x,
                        gint y,
                        gint width,
                        gint height);
void gtk_paint_string (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        gint x,
                        gint y,
                        const gchar *string);
void gtk_paint_box (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GtkShadowType shadow_type,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        gint x,
                        gint y,
                        gint width,
                        gint height);
void gtk_paint_flat_box (GtkStyle *style,
                         GdkWindow *window,
                         GtkStateType state_type,
                         GtkShadowType shadow_type,
                         GdkRectangle *area,
                         GtkWidget *widget,
                         gchar *detail,
                         gint x,
                         gint y,
                         gint width,
                         gint height);
void gtk_paint_check (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GtkShadowType shadow_type,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        gint x,
                        gint y,
                        gint width,
                        gint height);
void gtk_paint_option (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GtkShadowType shadow_type,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        gint x,
                        gint y,
                        gint width,
                        gint height);
void gtk_paint_cross (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GtkShadowType shadow_type,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        gint x,
                        gint y,
                        gint width,
                        gint height);
void gtk_paint_ramp (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GtkShadowType shadow_type,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        GtkArrowType arrow_type,
                        gint x,
                        gint y,
                        gint width,
                        gint height);
void gtk_paint_tab (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GtkShadowType shadow_type,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        gint x,
                        gint y,
                        gint width,
                        gint height);
void gtk_paint_shadow_gap (GtkStyle *style,
                           GdkWindow *window,
                           GtkStateType state_type,
                           GtkShadowType shadow_type,
                           GdkRectangle *area,
                           GtkWidget *widget,
                           gchar *detail,
                           gint x,
                           gint y,
                           gint width,
                           gint height,
                           GtkPositionType gap_side,
                           gint gap_x,
                           gint gap_width);
void gtk_paint_box_gap (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GtkShadowType shadow_type,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        gint x,
                        gint y,
                        gint width,
                        gint height,
                        GtkPositionType gap_side,
                        gint gap_x,
                        gint gap_width);
void gtk_paint_extension (GtkStyle *style,
                          GdkWindow *window,
                          GtkStateType state_type,
                          GtkShadowType shadow_type,
                          GdkRectangle *area,
                          GtkWidget *widget,
                          gchar *detail,
                          gint x,
                          gint y,
                          gint width,
                          gint height,
                          GtkPositionType gap_side);
void gtk_paint_focus (GtkStyle *style,
                        GdkWindow *window,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        gint x,
                        gint y,
                        gint width,
                        gint height);
void gtk_paint_slider (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GtkShadowType shadow_type,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        gint x,
                        gint y,
                        gint width,
                        gint height,
                        GtkOrientation orientation);
void gtk_paint_handle (GtkStyle *style,
                        GdkWindow *window,
                        GtkStateType state_type,
                        GtkShadowType shadow_type,
                        GdkRectangle *area,
                        GtkWidget *widget,
                        gchar *detail,
                        gint x,
                        gint y,
                        gint width,
                        gint height,
                        GtkOrientation orientation);





void gtk_style_set_prop_experimental (GtkStyle *style,
                                      const gchar *name,
                                      gint value);
gint gtk_style_get_prop_experimental (GtkStyle *style,
                                      const gchar *name,
                                      gint default_value);
# 35 "/usr/include/gtk-1.2/gtk/gtkwidget.h" 2
# 45 "/usr/include/gtk-1.2/gtk/gtkwidget.h"
typedef enum
{
  GTK_TOPLEVEL = 1 << 4,
  GTK_NO_WINDOW = 1 << 5,
  GTK_REALIZED = 1 << 6,
  GTK_MAPPED = 1 << 7,
  GTK_VISIBLE = 1 << 8,
  GTK_SENSITIVE = 1 << 9,
  GTK_PARENT_SENSITIVE = 1 << 10,
  GTK_CAN_FOCUS = 1 << 11,
  GTK_HAS_FOCUS = 1 << 12,



  GTK_CAN_DEFAULT = 1 << 13,



  GTK_HAS_DEFAULT = 1 << 14,

  GTK_HAS_GRAB = 1 << 15,
  GTK_RC_STYLE = 1 << 16,
  GTK_COMPOSITE_CHILD = 1 << 17,
  GTK_NO_REPARENT = 1 << 18,
  GTK_APP_PAINTABLE = 1 << 19,



  GTK_RECEIVES_DEFAULT = 1 << 20
} GtkWidgetFlags;
# 121 "/usr/include/gtk-1.2/gtk/gtkwidget.h"
typedef struct _GtkRequisition GtkRequisition;
typedef struct _GtkAllocation GtkAllocation;
typedef struct _GtkSelectionData GtkSelectionData;
typedef struct _GtkWidgetClass GtkWidgetClass;
typedef struct _GtkWidgetAuxInfo GtkWidgetAuxInfo;
typedef struct _GtkWidgetShapeInfo GtkWidgetShapeInfo;

typedef void (*GtkCallback) (GtkWidget *widget,
                             gpointer data);




struct _GtkRequisition
{
  gint16 width;
  gint16 height;
};





struct _GtkAllocation
{
  gint16 x;
  gint16 y;
  guint16 width;
  guint16 height;
};
# 161 "/usr/include/gtk-1.2/gtk/gtkwidget.h"
struct _GtkSelectionData
{
  GdkAtom selection;
  GdkAtom target;
  GdkAtom type;
  gint format;
  guchar *data;
  gint length;
};






struct _GtkWidget
{






  GtkObject object;






  guint16 private_flags;




  guint8 state;







  guint8 saved_state;







  gchar *name;






  GtkStyle *style;



  GtkRequisition requisition;



  GtkAllocation allocation;





  GdkWindow *window;



  GtkWidget *parent;
};

struct _GtkWidgetClass
{






  GtkObjectClass parent_class;





  guint activate_signal;






  guint set_scroll_adjustments_signal;


  void (* show) (GtkWidget *widget);
  void (* show_all) (GtkWidget *widget);
  void (* hide) (GtkWidget *widget);
  void (* hide_all) (GtkWidget *widget);
  void (* map) (GtkWidget *widget);
  void (* unmap) (GtkWidget *widget);
  void (* realize) (GtkWidget *widget);
  void (* unrealize) (GtkWidget *widget);
  void (* draw) (GtkWidget *widget,
                                GdkRectangle *area);
  void (* draw_focus) (GtkWidget *widget);
  void (* draw_default) (GtkWidget *widget);
  void (* size_request) (GtkWidget *widget,
                                GtkRequisition *requisition);
  void (* size_allocate) (GtkWidget *widget,
                                GtkAllocation *allocation);
  void (* state_changed) (GtkWidget *widget,
                                GtkStateType previous_state);
  void (* parent_set) (GtkWidget *widget,
                                GtkWidget *previous_parent);
  void (* style_set) (GtkWidget *widget,
                                GtkStyle *previous_style);


  gint (* add_accelerator) (GtkWidget *widget,
                                guint accel_signal_id,
                                GtkAccelGroup *accel_group,
                                guint accel_key,
                                GdkModifierType accel_mods,
                                GtkAccelFlags accel_flags);
  void (* remove_accelerator) (GtkWidget *widget,
                                GtkAccelGroup *accel_group,
                                guint accel_key,
                                GdkModifierType accel_mods);


  void (* grab_focus) (GtkWidget *widget);


  gint (* event) (GtkWidget *widget,
                                    GdkEvent *event);
  gint (* button_press_event) (GtkWidget *widget,
                                    GdkEventButton *event);
  gint (* button_release_event) (GtkWidget *widget,
                                    GdkEventButton *event);
  gint (* motion_notify_event) (GtkWidget *widget,
                                    GdkEventMotion *event);
  gint (* delete_event) (GtkWidget *widget,
                                    GdkEventAny *event);
  gint (* destroy_event) (GtkWidget *widget,
                                    GdkEventAny *event);
  gint (* expose_event) (GtkWidget *widget,
                                    GdkEventExpose *event);
  gint (* key_press_event) (GtkWidget *widget,
                                    GdkEventKey *event);
  gint (* key_release_event) (GtkWidget *widget,
                                    GdkEventKey *event);
  gint (* enter_notify_event) (GtkWidget *widget,
                                    GdkEventCrossing *event);
  gint (* leave_notify_event) (GtkWidget *widget,
                                    GdkEventCrossing *event);
  gint (* configure_event) (GtkWidget *widget,
                                    GdkEventConfigure *event);
  gint (* focus_in_event) (GtkWidget *widget,
                                    GdkEventFocus *event);
  gint (* focus_out_event) (GtkWidget *widget,
                                    GdkEventFocus *event);
  gint (* map_event) (GtkWidget *widget,
                                    GdkEventAny *event);
  gint (* unmap_event) (GtkWidget *widget,
                                    GdkEventAny *event);
  gint (* property_notify_event) (GtkWidget *widget,
                                    GdkEventProperty *event);
  gint (* selection_clear_event) (GtkWidget *widget,
                                    GdkEventSelection *event);
  gint (* selection_request_event) (GtkWidget *widget,
                                    GdkEventSelection *event);
  gint (* selection_notify_event) (GtkWidget *widget,
                                    GdkEventSelection *event);
  gint (* proximity_in_event) (GtkWidget *widget,
                                    GdkEventProximity *event);
  gint (* proximity_out_event) (GtkWidget *widget,
                                    GdkEventProximity *event);
  gint (* visibility_notify_event) (GtkWidget *widget,
                                     GdkEventVisibility *event);
  gint (* client_event) (GtkWidget *widget,
                                    GdkEventClient *event);
  gint (* no_expose_event) (GtkWidget *widget,
                                    GdkEventAny *event);


  void (* selection_get) (GtkWidget *widget,
                                    GtkSelectionData *selection_data,
                                    guint info,
                                    guint time);
  void (* selection_received) (GtkWidget *widget,
                                    GtkSelectionData *selection_data,
                                    guint time);


  void (* drag_begin) (GtkWidget *widget,
                                    GdkDragContext *context);
  void (* drag_end) (GtkWidget *widget,
                                    GdkDragContext *context);
  void (* drag_data_get) (GtkWidget *widget,
                                    GdkDragContext *context,
                                    GtkSelectionData *selection_data,
                                    guint info,
                                    guint time);
  void (* drag_data_delete) (GtkWidget *widget,
                                    GdkDragContext *context);


  void (* drag_leave) (GtkWidget *widget,
                                    GdkDragContext *context,
                                    guint time);
  gboolean (* drag_motion) (GtkWidget *widget,
                                    GdkDragContext *context,
                                    gint x,
                                    gint y,
                                    guint time);
  gboolean (* drag_drop) (GtkWidget *widget,
                                    GdkDragContext *context,
                                    gint x,
                                    gint y,
                                    guint time);
  void (* drag_data_received) (GtkWidget *widget,
                                    GdkDragContext *context,
                                    gint x,
                                    gint y,
                                    GtkSelectionData *selection_data,
                                    guint info,
                                    guint time);


  void (* debug_msg) (GtkWidget *widget,
                                    const gchar *string);


  GtkFunction pad1;
  GtkFunction pad2;
  GtkFunction pad3;
  GtkFunction pad4;
};

struct _GtkWidgetAuxInfo
{
  gint16 x;
  gint16 y;
  gint16 width;
  gint16 height;
};

struct _GtkWidgetShapeInfo
{
  gint16 offset_x;
  gint16 offset_y;
  GdkBitmap *shape_mask;
};


GtkType gtk_widget_get_type (void);
GtkWidget* gtk_widget_new (GtkType type,
                                           const gchar *first_arg_name,
                                           ...);
GtkWidget* gtk_widget_newv (GtkType type,
                                           guint nargs,
                                           GtkArg *args);
void gtk_widget_ref (GtkWidget *widget);
void gtk_widget_unref (GtkWidget *widget);
void gtk_widget_destroy (GtkWidget *widget);
void gtk_widget_destroyed (GtkWidget *widget,
                                           GtkWidget **widget_pointer);
void gtk_widget_get (GtkWidget *widget,
                                           GtkArg *arg);
void gtk_widget_getv (GtkWidget *widget,
                                           guint nargs,
                                           GtkArg *args);
void gtk_widget_set (GtkWidget *widget,
                                           const gchar *first_arg_name,
                                           ...);
void gtk_widget_setv (GtkWidget *widget,
                                           guint nargs,
                                           GtkArg *args);
void gtk_widget_unparent (GtkWidget *widget);
void gtk_widget_show (GtkWidget *widget);
void gtk_widget_show_now (GtkWidget *widget);
void gtk_widget_hide (GtkWidget *widget);
void gtk_widget_show_all (GtkWidget *widget);
void gtk_widget_hide_all (GtkWidget *widget);
void gtk_widget_map (GtkWidget *widget);
void gtk_widget_unmap (GtkWidget *widget);
void gtk_widget_realize (GtkWidget *widget);
void gtk_widget_unrealize (GtkWidget *widget);


void gtk_widget_queue_draw (GtkWidget *widget);
void gtk_widget_queue_draw_area (GtkWidget *widget,
                                           gint x,
                                           gint y,
                                           gint width,
                                           gint height);
void gtk_widget_queue_clear (GtkWidget *widget);
void gtk_widget_queue_clear_area (GtkWidget *widget,
                                           gint x,
                                           gint y,
                                           gint width,
                                           gint height);


void gtk_widget_queue_resize (GtkWidget *widget);
void gtk_widget_draw (GtkWidget *widget,
                                           GdkRectangle *area);
void gtk_widget_draw_focus (GtkWidget *widget);
void gtk_widget_draw_default (GtkWidget *widget);
void gtk_widget_size_request (GtkWidget *widget,
                                           GtkRequisition *requisition);
void gtk_widget_size_allocate (GtkWidget *widget,
                                           GtkAllocation *allocation);
void gtk_widget_get_child_requisition (GtkWidget *widget,
                                             GtkRequisition *requisition);
void gtk_widget_add_accelerator (GtkWidget *widget,
                                           const gchar *accel_signal,
                                           GtkAccelGroup *accel_group,
                                           guint accel_key,
                                           guint accel_mods,
                                           GtkAccelFlags accel_flags);
void gtk_widget_remove_accelerator (GtkWidget *widget,
                                           GtkAccelGroup *accel_group,
                                           guint accel_key,
                                           guint accel_mods);
void gtk_widget_remove_accelerators (GtkWidget *widget,
                                           const gchar *accel_signal,
                                           gboolean visible_only);
guint gtk_widget_accelerator_signal (GtkWidget *widget,
                                           GtkAccelGroup *accel_group,
                                           guint accel_key,
                                           guint accel_mods);
void gtk_widget_lock_accelerators (GtkWidget *widget);
void gtk_widget_unlock_accelerators (GtkWidget *widget);
gboolean gtk_widget_accelerators_locked (GtkWidget *widget);
gint gtk_widget_event (GtkWidget *widget,
                                           GdkEvent *event);

gboolean gtk_widget_activate (GtkWidget *widget);
gboolean gtk_widget_set_scroll_adjustments (GtkWidget *widget,
                                              GtkAdjustment *hadjustment,
                                              GtkAdjustment *vadjustment);

void gtk_widget_reparent (GtkWidget *widget,
                                           GtkWidget *new_parent);
void gtk_widget_popup (GtkWidget *widget,
                                           gint x,
                                           gint y);
gint gtk_widget_intersect (GtkWidget *widget,
                                           GdkRectangle *area,
                                           GdkRectangle *intersection);

void gtk_widget_grab_focus (GtkWidget *widget);
void gtk_widget_grab_default (GtkWidget *widget);

void gtk_widget_set_name (GtkWidget *widget,
                                           const gchar *name);
gchar* gtk_widget_get_name (GtkWidget *widget);
void gtk_widget_set_state (GtkWidget *widget,
                                           GtkStateType state);
void gtk_widget_set_sensitive (GtkWidget *widget,
                                           gboolean sensitive);
void gtk_widget_set_app_paintable (GtkWidget *widget,
                                           gboolean app_paintable);
void gtk_widget_set_parent (GtkWidget *widget,
                                           GtkWidget *parent);
void gtk_widget_set_parent_window (GtkWidget *widget,
                                           GdkWindow *parent_window);
GdkWindow *gtk_widget_get_parent_window (GtkWidget *widget);
void gtk_widget_set_uposition (GtkWidget *widget,
                                           gint x,
                                           gint y);
void gtk_widget_set_usize (GtkWidget *widget,
                                           gint width,
                                           gint height);
void gtk_widget_set_events (GtkWidget *widget,
                                           gint events);
void gtk_widget_add_events (GtkWidget *widget,
                                           gint events);
void gtk_widget_set_extension_events (GtkWidget *widget,
                                            GdkExtensionMode mode);

GdkExtensionMode gtk_widget_get_extension_events (GtkWidget *widget);
GtkWidget* gtk_widget_get_toplevel (GtkWidget *widget);
GtkWidget* gtk_widget_get_ancestor (GtkWidget *widget,
                                         GtkType widget_type);
GdkColormap* gtk_widget_get_colormap (GtkWidget *widget);
GdkVisual* gtk_widget_get_visual (GtkWidget *widget);







void gtk_widget_set_colormap (GtkWidget *widget,
                                         GdkColormap *colormap);
void gtk_widget_set_visual (GtkWidget *widget,
                                         GdkVisual *visual);


gint gtk_widget_get_events (GtkWidget *widget);
void gtk_widget_get_pointer (GtkWidget *widget,
                                         gint *x,
                                         gint *y);

gboolean gtk_widget_is_ancestor (GtkWidget *widget,
                                         GtkWidget *ancestor);



gint gtk_widget_hide_on_delete (GtkWidget *widget);



void gtk_widget_set_style (GtkWidget *widget,
                                         GtkStyle *style);
void gtk_widget_set_rc_style (GtkWidget *widget);
void gtk_widget_ensure_style (GtkWidget *widget);
GtkStyle* gtk_widget_get_style (GtkWidget *widget);
void gtk_widget_restore_default_style (GtkWidget *widget);

void gtk_widget_modify_style (GtkWidget *widget,
                                         GtkRcStyle *style);




void gtk_widget_set_composite_name (GtkWidget *widget,
                                         const gchar *name);
gchar* gtk_widget_get_composite_name (GtkWidget *widget);


void gtk_widget_reset_rc_styles (GtkWidget *widget);





void gtk_widget_push_style (GtkStyle *style);
void gtk_widget_push_colormap (GdkColormap *cmap);
void gtk_widget_push_visual (GdkVisual *visual);
void gtk_widget_push_composite_child (void);
void gtk_widget_pop_composite_child (void);
void gtk_widget_pop_style (void);
void gtk_widget_pop_colormap (void);
void gtk_widget_pop_visual (void);



void gtk_widget_set_default_style (GtkStyle *style);
void gtk_widget_set_default_colormap (GdkColormap *colormap);
void gtk_widget_set_default_visual (GdkVisual *visual);
GtkStyle* gtk_widget_get_default_style (void);
GdkColormap* gtk_widget_get_default_colormap (void);
GdkVisual* gtk_widget_get_default_visual (void);



void gtk_widget_shape_combine_mask (GtkWidget *widget,
                                            GdkBitmap *shape_mask,
                                            gint offset_x,
                                            gint offset_y);


void gtk_widget_reset_shapes (GtkWidget *widget);




void gtk_widget_path (GtkWidget *widget,
                                            guint *path_length,
                                            gchar **path,
                                            gchar **path_reversed);
void gtk_widget_class_path (GtkWidget *widget,
                                            guint *path_length,
                                            gchar **path,
                                            gchar **path_reversed);
# 34 "/usr/include/gtk-1.2/gtk/gtkcontainer.h" 2
# 51 "/usr/include/gtk-1.2/gtk/gtkcontainer.h"
typedef struct _GtkContainer GtkContainer;
typedef struct _GtkContainerClass GtkContainerClass;

struct _GtkContainer
{
  GtkWidget widget;

  GtkWidget *focus_child;

  guint border_width : 16;
  guint need_resize : 1;
  guint resize_mode : 2;
  guint reallocate_redraws : 1;



  GSList *resize_widgets;
};

struct _GtkContainerClass
{
  GtkWidgetClass parent_class;

  guint n_child_args;

  void (* add) (GtkContainer *container,
                                 GtkWidget *widget);
  void (* remove) (GtkContainer *container,
                                 GtkWidget *widget);
  void (* check_resize) (GtkContainer *container);
  void (* forall) (GtkContainer *container,
                                 gboolean include_internals,
                                 GtkCallback callback,
                                 gpointer callbabck_data);
  gint (* focus) (GtkContainer *container,
                                 GtkDirectionType direction);
  void (* set_focus_child) (GtkContainer *container,
                                 GtkWidget *widget);
  GtkType (*child_type) (GtkContainer *container);
  void (*set_child_arg) (GtkContainer *container,
                                 GtkWidget *child,
                                 GtkArg *arg,
                                 guint arg_id);
  void (*get_child_arg) (GtkContainer *container,
                                 GtkWidget *child,
                                 GtkArg *arg,
                                 guint arg_id);
  gchar* (*composite_name) (GtkContainer *container,
                                 GtkWidget *child);


  GtkFunction pad1;
  GtkFunction pad2;
};



GtkType gtk_container_get_type (void);
void gtk_container_set_border_width (GtkContainer *container,
                                          guint border_width);
void gtk_container_add (GtkContainer *container,
                                          GtkWidget *widget);
void gtk_container_remove (GtkContainer *container,
                                          GtkWidget *widget);

void gtk_container_set_resize_mode (GtkContainer *container,
                                          GtkResizeMode resize_mode);

void gtk_container_check_resize (GtkContainer *container);

void gtk_container_foreach (GtkContainer *container,
                                          GtkCallback callback,
                                          gpointer callback_data);
void gtk_container_foreach_full (GtkContainer *container,
                                          GtkCallback callback,
                                          GtkCallbackMarshal marshal,
                                          gpointer callback_data,
                                          GtkDestroyNotify notify);
GList* gtk_container_children (GtkContainer *container);
gint gtk_container_focus (GtkContainer *container,
                                            GtkDirectionType direction);



void gtk_container_set_reallocate_redraws (GtkContainer *container,
                                             gboolean needs_redraws);
void gtk_container_set_focus_child (GtkContainer *container,
                                            GtkWidget *child);
void gtk_container_set_focus_vadjustment (GtkContainer *container,
                                            GtkAdjustment *adjustment);
void gtk_container_set_focus_hadjustment (GtkContainer *container,
                                            GtkAdjustment *adjustment);
void gtk_container_register_toplevel (GtkContainer *container);
void gtk_container_unregister_toplevel (GtkContainer *container);
GList* gtk_container_get_toplevels (void);

void gtk_container_resize_children (GtkContainer *container);

GtkType gtk_container_child_type (GtkContainer *container);


void gtk_container_add_child_arg_type (const gchar *arg_name,
                                            GtkType arg_type,
                                            guint arg_flags,
                                            guint arg_id);
# 166 "/usr/include/gtk-1.2/gtk/gtkcontainer.h"
GtkArg* gtk_container_query_child_args (GtkType class_type,
                                            guint32 **arg_flags,
                                            guint *nargs);






void gtk_container_child_getv (GtkContainer *container,
                                            GtkWidget *child,
                                            guint n_args,
                                            GtkArg *args);
void gtk_container_child_setv (GtkContainer *container,
                                            GtkWidget *child,
                                            guint n_args,
                                            GtkArg *args);






void gtk_container_add_with_args (GtkContainer *container,
                                            GtkWidget *widget,
                                            const gchar *first_arg_name,
                                            ...);
void gtk_container_addv (GtkContainer *container,
                                            GtkWidget *widget,
                                            guint n_args,
                                            GtkArg *args);
void gtk_container_child_set (GtkContainer *container,
                                            GtkWidget *child,
                                            const gchar *first_arg_name,
                                            ...);




void gtk_container_queue_resize (GtkContainer *container);
void gtk_container_clear_resize_widgets (GtkContainer *container);
void gtk_container_arg_set (GtkContainer *container,
                                              GtkWidget *child,
                                              GtkArg *arg,
                                              GtkArgInfo *info);
void gtk_container_arg_get (GtkContainer *container,
                                              GtkWidget *child,
                                              GtkArg *arg,
                                              GtkArgInfo *info);
gchar* gtk_container_child_args_collect (GtkType object_type,
                                              GSList **arg_list_p,
                                              GSList **info_list_p,
                                              const gchar *first_arg_name,
                                              va_list args);
gchar* gtk_container_child_arg_get_info (GtkType object_type,
                                              const gchar *arg_name,
                                              GtkArgInfo **info_p);
void gtk_container_forall (GtkContainer *container,
                                              GtkCallback callback,
                                              gpointer callback_data);
gchar* gtk_container_child_composite_name (GtkContainer *container,
                                              GtkWidget *child);
void gtk_container_dequeue_resize_handler (GtkContainer *container);
# 33 "/usr/include/gtk-1.2/gtk/gtknotebook.h" 2
# 49 "/usr/include/gtk-1.2/gtk/gtknotebook.h"
typedef struct _GtkNotebook GtkNotebook;
typedef struct _GtkNotebookClass GtkNotebookClass;
typedef struct _GtkNotebookPage GtkNotebookPage;

struct _GtkNotebook
{
  GtkContainer container;

  GtkNotebookPage *cur_page;
  GList *children;
  GList *first_tab;
  GList *focus_tab;

  GtkWidget *menu;
  GdkWindow *panel;

  guint32 timer;

  guint16 tab_hborder;
  guint16 tab_vborder;

  guint show_tabs : 1;
  guint homogeneous : 1;
  guint show_border : 1;
  guint tab_pos : 2;
  guint scrollable : 1;
  guint in_child : 2;
  guint click_child : 2;
  guint button : 2;
  guint need_timer : 1;
  guint child_has_focus : 1;
  guint have_visible_child : 1;
};

struct _GtkNotebookClass
{
  GtkContainerClass parent_class;

  void (* switch_page) (GtkNotebook *notebook,
                              GtkNotebookPage *page,
                              guint page_num);
};

struct _GtkNotebookPage
{
  GtkWidget *child;
  GtkWidget *tab_label;
  GtkWidget *menu_label;

  guint default_menu : 1;
  guint default_tab : 1;
  guint expand : 1;
  guint fill : 1;
  guint pack : 1;

  GtkRequisition requisition;
  GtkAllocation allocation;
};





GtkType gtk_notebook_get_type (void);
GtkWidget * gtk_notebook_new (void);
void gtk_notebook_append_page (GtkNotebook *notebook,
                                     GtkWidget *child,
                                     GtkWidget *tab_label);
void gtk_notebook_append_page_menu (GtkNotebook *notebook,
                                     GtkWidget *child,
                                     GtkWidget *tab_label,
                                     GtkWidget *menu_label);
void gtk_notebook_prepend_page (GtkNotebook *notebook,
                                     GtkWidget *child,
                                     GtkWidget *tab_label);
void gtk_notebook_prepend_page_menu (GtkNotebook *notebook,
                                     GtkWidget *child,
                                     GtkWidget *tab_label,
                                     GtkWidget *menu_label);
void gtk_notebook_insert_page (GtkNotebook *notebook,
                                     GtkWidget *child,
                                     GtkWidget *tab_label,
                                     gint position);
void gtk_notebook_insert_page_menu (GtkNotebook *notebook,
                                     GtkWidget *child,
                                     GtkWidget *tab_label,
                                     GtkWidget *menu_label,
                                     gint position);
void gtk_notebook_remove_page (GtkNotebook *notebook,
                                     gint page_num);





gint gtk_notebook_get_current_page (GtkNotebook *notebook);
GtkWidget* gtk_notebook_get_nth_page (GtkNotebook *notebook,
                                      gint page_num);
gint gtk_notebook_page_num (GtkNotebook *notebook,
                                    GtkWidget *child);
void gtk_notebook_set_page (GtkNotebook *notebook,
                                    gint page_num);
void gtk_notebook_next_page (GtkNotebook *notebook);
void gtk_notebook_prev_page (GtkNotebook *notebook);





void gtk_notebook_set_show_border (GtkNotebook *notebook,
                                        gboolean show_border);
void gtk_notebook_set_show_tabs (GtkNotebook *notebook,
                                        gboolean show_tabs);
void gtk_notebook_set_tab_pos (GtkNotebook *notebook,
                                        GtkPositionType pos);
void gtk_notebook_set_homogeneous_tabs (GtkNotebook *notebook,
                                        gboolean homogeneous);
void gtk_notebook_set_tab_border (GtkNotebook *notebook,
                                        guint border_width);
void gtk_notebook_set_tab_hborder (GtkNotebook *notebook,
                                        guint tab_hborder);
void gtk_notebook_set_tab_vborder (GtkNotebook *notebook,
                                        guint tab_vborder);
void gtk_notebook_set_scrollable (GtkNotebook *notebook,
                                        gboolean scrollable);





void gtk_notebook_popup_enable (GtkNotebook *notebook);
void gtk_notebook_popup_disable (GtkNotebook *notebook);





GtkWidget * gtk_notebook_get_tab_label (GtkNotebook *notebook,
                                           GtkWidget *child);
void gtk_notebook_set_tab_label (GtkNotebook *notebook,
                                           GtkWidget *child,
                                           GtkWidget *tab_label);
void gtk_notebook_set_tab_label_text (GtkNotebook *notebook,
                                           GtkWidget *child,
                                           const gchar *tab_text);
GtkWidget * gtk_notebook_get_menu_label (GtkNotebook *notebook,
                                           GtkWidget *child);
void gtk_notebook_set_menu_label (GtkNotebook *notebook,
                                           GtkWidget *child,
                                           GtkWidget *menu_label);
void gtk_notebook_set_menu_label_text (GtkNotebook *notebook,
                                           GtkWidget *child,
                                           const gchar *menu_text);
void gtk_notebook_query_tab_label_packing (GtkNotebook *notebook,
                                           GtkWidget *child,
                                           gboolean *expand,
                                           gboolean *fill,
                                           GtkPackType *pack_type);
void gtk_notebook_set_tab_label_packing (GtkNotebook *notebook,
                                           GtkWidget *child,
                                           gboolean expand,
                                           gboolean fill,
                                           GtkPackType pack_type);
void gtk_notebook_reorder_child (GtkNotebook *notebook,
                                           GtkWidget *child,
                                           gint position);
# 29 "mimeview.c" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkscrolledwindow.h" 1
# 32 "/usr/include/gtk-1.2/gtk/gtkscrolledwindow.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkhscrollbar.h" 1
# 32 "/usr/include/gtk-1.2/gtk/gtkhscrollbar.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkscrollbar.h" 1
# 32 "/usr/include/gtk-1.2/gtk/gtkscrollbar.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkrange.h" 1
# 48 "/usr/include/gtk-1.2/gtk/gtkrange.h"
typedef struct _GtkRange GtkRange;
typedef struct _GtkRangeClass GtkRangeClass;

struct _GtkRange
{
  GtkWidget widget;

  GdkWindow *trough;
  GdkWindow *slider;
  GdkWindow *step_forw;
  GdkWindow *step_back;

  gint16 x_click_point;
  gint16 y_click_point;

  guint8 button;
  gint8 digits;
  guint policy : 2;
  guint scroll_type : 3;
  guint in_child : 3;
  guint click_child : 3;
  guint need_timer : 1;

  guint32 timer;

  gfloat old_value;
  gfloat old_lower;
  gfloat old_upper;
  gfloat old_page_size;

  GtkAdjustment *adjustment;
};

struct _GtkRangeClass
{
  GtkWidgetClass parent_class;

  gint slider_width;
  gint stepper_size;
  gint stepper_slider_spacing;
  gint min_slider_size;

  guint8 trough;
  guint8 slider;
  guint8 step_forw;
  guint8 step_back;

  void (* draw_background) (GtkRange *range);
  void (* clear_background) (GtkRange *range);
  void (* draw_trough) (GtkRange *range);
  void (* draw_slider) (GtkRange *range);
  void (* draw_step_forw) (GtkRange *range);
  void (* draw_step_back) (GtkRange *range);
  void (* slider_update) (GtkRange *range);
  gint (* trough_click) (GtkRange *range,
                            gint x,
                            gint y,
                            gfloat *jump_perc);
  gint (* trough_keys) (GtkRange *range,
                            GdkEventKey *key,
                            GtkScrollType *scroll,
                            GtkTroughType *trough);
  void (* motion) (GtkRange *range,
                            gint xdelta,
                            gint ydelta);
  gint (* timer) (GtkRange *range);
};


GtkType gtk_range_get_type (void);
GtkAdjustment* gtk_range_get_adjustment (GtkRange *range);
void gtk_range_set_update_policy (GtkRange *range,
                                                 GtkUpdateType policy);
void gtk_range_set_adjustment (GtkRange *range,
                                                 GtkAdjustment *adjustment);

void gtk_range_draw_background (GtkRange *range);
void gtk_range_clear_background (GtkRange *range);
void gtk_range_draw_trough (GtkRange *range);
void gtk_range_draw_slider (GtkRange *range);
void gtk_range_draw_step_forw (GtkRange *range);
void gtk_range_draw_step_back (GtkRange *range);
void gtk_range_slider_update (GtkRange *range);
gint gtk_range_trough_click (GtkRange *range,
                                                 gint x,
                                                 gint y,
                                                 gfloat *jump_perc);

void gtk_range_default_hslider_update (GtkRange *range);
void gtk_range_default_vslider_update (GtkRange *range);
gint gtk_range_default_htrough_click (GtkRange *range,
                                                 gint x,
                                                 gint y,
                                                 gfloat *jump_perc);
gint gtk_range_default_vtrough_click (GtkRange *range,
                                                 gint x,
                                                 gint y,
                                                 gfloat *jump_perc);
void gtk_range_default_hmotion (GtkRange *range,
                                                 gint xdelta,
                                                 gint ydelta);
void gtk_range_default_vmotion (GtkRange *range,
                                                 gint xdelta,
                                                 gint ydelta);

void _gtk_range_get_props (GtkRange *range,
                           gint *slider_width,
                           gint *trough_border,
                           gint *stepper_size,
                           gint *stepper_spacing);
# 33 "/usr/include/gtk-1.2/gtk/gtkscrollbar.h" 2
# 47 "/usr/include/gtk-1.2/gtk/gtkscrollbar.h"
typedef struct _GtkScrollbar GtkScrollbar;
typedef struct _GtkScrollbarClass GtkScrollbarClass;

struct _GtkScrollbar
{
  GtkRange range;
};

struct _GtkScrollbarClass
{
  GtkRangeClass parent_class;
};


GtkType gtk_scrollbar_get_type (void);
# 33 "/usr/include/gtk-1.2/gtk/gtkhscrollbar.h" 2
# 47 "/usr/include/gtk-1.2/gtk/gtkhscrollbar.h"
typedef struct _GtkHScrollbar GtkHScrollbar;
typedef struct _GtkHScrollbarClass GtkHScrollbarClass;

struct _GtkHScrollbar
{
  GtkScrollbar scrollbar;
};

struct _GtkHScrollbarClass
{
  GtkScrollbarClass parent_class;
};


GtkType gtk_hscrollbar_get_type (void);
GtkWidget* gtk_hscrollbar_new (GtkAdjustment *adjustment);
# 33 "/usr/include/gtk-1.2/gtk/gtkscrolledwindow.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkvscrollbar.h" 1
# 42 "/usr/include/gtk-1.2/gtk/gtkvscrollbar.h"
typedef struct _GtkVScrollbar GtkVScrollbar;
typedef struct _GtkVScrollbarClass GtkVScrollbarClass;

struct _GtkVScrollbar
{
  GtkScrollbar scrollbar;
};

struct _GtkVScrollbarClass
{
  GtkScrollbarClass parent_class;
};







GtkType gtk_vscrollbar_get_type (void);
GtkWidget* gtk_vscrollbar_new (GtkAdjustment *adjustment);
# 34 "/usr/include/gtk-1.2/gtk/gtkscrolledwindow.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkviewport.h" 1
# 33 "/usr/include/gtk-1.2/gtk/gtkviewport.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkbin.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkbin.h"
typedef struct _GtkBin GtkBin;
typedef struct _GtkBinClass GtkBinClass;

struct _GtkBin
{
  GtkContainer container;

  GtkWidget *child;
};

struct _GtkBinClass
{
  GtkContainerClass parent_class;
};


GtkType gtk_bin_get_type (void);
# 34 "/usr/include/gtk-1.2/gtk/gtkviewport.h" 2
# 48 "/usr/include/gtk-1.2/gtk/gtkviewport.h"
typedef struct _GtkViewport GtkViewport;
typedef struct _GtkViewportClass GtkViewportClass;

struct _GtkViewport
{
  GtkBin bin;

  GtkShadowType shadow_type;
  GdkWindow *view_window;
  GdkWindow *bin_window;
  GtkAdjustment *hadjustment;
  GtkAdjustment *vadjustment;
};

struct _GtkViewportClass
{
  GtkBinClass parent_class;

  void (*set_scroll_adjustments) (GtkViewport *viewport,
                                         GtkAdjustment *hadjustment,
                                         GtkAdjustment *vadjustment);
};


GtkType gtk_viewport_get_type (void);
GtkWidget* gtk_viewport_new (GtkAdjustment *hadjustment,
                                             GtkAdjustment *vadjustment);
GtkAdjustment* gtk_viewport_get_hadjustment (GtkViewport *viewport);
GtkAdjustment* gtk_viewport_get_vadjustment (GtkViewport *viewport);
void gtk_viewport_set_hadjustment (GtkViewport *viewport,
                                             GtkAdjustment *adjustment);
void gtk_viewport_set_vadjustment (GtkViewport *viewport,
                                             GtkAdjustment *adjustment);
void gtk_viewport_set_shadow_type (GtkViewport *viewport,
                                             GtkShadowType type);
# 35 "/usr/include/gtk-1.2/gtk/gtkscrolledwindow.h" 2
# 49 "/usr/include/gtk-1.2/gtk/gtkscrolledwindow.h"
typedef struct _GtkScrolledWindow GtkScrolledWindow;
typedef struct _GtkScrolledWindowClass GtkScrolledWindowClass;

struct _GtkScrolledWindow
{
  GtkBin container;

  GtkWidget *hscrollbar;
  GtkWidget *vscrollbar;

  guint hscrollbar_policy : 2;
  guint vscrollbar_policy : 2;
  guint hscrollbar_visible : 1;
  guint vscrollbar_visible : 1;
  guint window_placement : 2;
};

struct _GtkScrolledWindowClass
{
  GtkBinClass parent_class;

  gint scrollbar_spacing;
};


GtkType gtk_scrolled_window_get_type (void);
GtkWidget* gtk_scrolled_window_new (GtkAdjustment *hadjustment,
                                                      GtkAdjustment *vadjustment);
void gtk_scrolled_window_set_hadjustment (GtkScrolledWindow *scrolled_window,
                                                      GtkAdjustment *hadjustment);
void gtk_scrolled_window_set_vadjustment (GtkScrolledWindow *scrolled_window,
                                                      GtkAdjustment *hadjustment);
GtkAdjustment* gtk_scrolled_window_get_hadjustment (GtkScrolledWindow *scrolled_window);
GtkAdjustment* gtk_scrolled_window_get_vadjustment (GtkScrolledWindow *scrolled_window);
void gtk_scrolled_window_set_policy (GtkScrolledWindow *scrolled_window,
                                                      GtkPolicyType hscrollbar_policy,
                                                      GtkPolicyType vscrollbar_policy);
void gtk_scrolled_window_set_placement (GtkScrolledWindow *scrolled_window,
                                                      GtkCornerType window_placement);
void gtk_scrolled_window_add_with_viewport (GtkScrolledWindow *scrolled_window,
                                                      GtkWidget *child);
# 30 "mimeview.c" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkctree.h" 1
# 34 "/usr/include/gtk-1.2/gtk/gtkctree.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkclist.h" 1
# 32 "/usr/include/gtk-1.2/gtk/gtkclist.h"
# 1 "/usr/include/gtk-1.2/gtk/gtksignal.h" 1
# 34 "/usr/include/gtk-1.2/gtk/gtksignal.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkmarshal.h" 1
# 14 "/usr/include/gtk-1.2/gtk/gtkmarshal.h"
  void gtk_marshal_BOOL__NONE (GtkObject * object,
                               GtkSignalFunc func,
                               gpointer func_data, GtkArg * args);

  void gtk_marshal_BOOL__POINTER (GtkObject * object,
                                  GtkSignalFunc func,
                                  gpointer func_data, GtkArg * args);

  void gtk_marshal_BOOL__POINTER_POINTER_INT_INT (GtkObject * object,
                                                  GtkSignalFunc func,
                                                  gpointer func_data,
                                                  GtkArg * args);

  void gtk_marshal_BOOL__POINTER_INT_INT (GtkObject * object,
                                          GtkSignalFunc func,
                                          gpointer func_data, GtkArg * args);



  void gtk_marshal_BOOL__POINTER_INT_INT_INT (GtkObject * object,
                                              GtkSignalFunc func,
                                              gpointer func_data,
                                              GtkArg * args);



  void gtk_marshal_BOOL__POINTER_POINTER_POINTER_POINTER (GtkObject * object,
                                                          GtkSignalFunc func,
                                                          gpointer func_data,
                                                          GtkArg * args);



  void gtk_marshal_INT__INT (GtkObject * object,
                             GtkSignalFunc func,
                             gpointer func_data, GtkArg * args);

  void gtk_marshal_INT__POINTER (GtkObject * object,
                                 GtkSignalFunc func,
                                 gpointer func_data, GtkArg * args);

  void gtk_marshal_INT__POINTER_CHAR_CHAR (GtkObject * object,
                                           GtkSignalFunc func,
                                           gpointer func_data, GtkArg * args);

  void gtk_marshal_NONE__BOOL (GtkObject * object,
                               GtkSignalFunc func,
                               gpointer func_data, GtkArg * args);



  void gtk_marshal_NONE__POINTER (GtkObject * object,
                                  GtkSignalFunc func,
                                  gpointer func_data, GtkArg * args);

  void gtk_marshal_NONE__C_CALLBACK (GtkObject * object,
                                     GtkSignalFunc func,
                                     gpointer func_data, GtkArg * args);

  void gtk_marshal_NONE__C_CALLBACK_C_CALLBACK (GtkObject * object,
                                                GtkSignalFunc func,
                                                gpointer func_data,
                                                GtkArg * args);



  void gtk_marshal_NONE__INT (GtkObject * object,
                              GtkSignalFunc func,
                              gpointer func_data, GtkArg * args);



  void gtk_marshal_NONE__INT_FLOAT (GtkObject * object,
                                    GtkSignalFunc func,
                                    gpointer func_data, GtkArg * args);



  void gtk_marshal_NONE__INT_FLOAT_BOOL (GtkObject * object,
                                         GtkSignalFunc func,
                                         gpointer func_data, GtkArg * args);

  void gtk_marshal_NONE__INT_INT (GtkObject * object,
                                  GtkSignalFunc func,
                                  gpointer func_data, GtkArg * args);

  void gtk_marshal_NONE__INT_INT_POINTER (GtkObject * object,
                                          GtkSignalFunc func,
                                          gpointer func_data, GtkArg * args);

  void gtk_marshal_NONE__NONE (GtkObject * object,
                               GtkSignalFunc func,
                               gpointer func_data, GtkArg * args);



  void gtk_marshal_NONE__POINTER_INT (GtkObject * object,
                                      GtkSignalFunc func,
                                      gpointer func_data, GtkArg * args);

  void gtk_marshal_NONE__POINTER_POINTER (GtkObject * object,
                                          GtkSignalFunc func,
                                          gpointer func_data, GtkArg * args);

  void gtk_marshal_NONE__POINTER_POINTER_POINTER (GtkObject * object,
                                                  GtkSignalFunc func,
                                                  gpointer func_data,
                                                  GtkArg * args);







  void gtk_marshal_NONE__POINTER_INT_INT (GtkObject * object,
                                          GtkSignalFunc func,
                                          gpointer func_data, GtkArg * args);



  void gtk_marshal_NONE__POINTER_POINTER_INT_INT (GtkObject * object,
                                                  GtkSignalFunc func,
                                                  gpointer func_data,
                                                  GtkArg * args);



  void gtk_marshal_NONE__POINTER_INT_INT_POINTER_INT_INT (GtkObject * object,
                                                          GtkSignalFunc func,
                                                          gpointer func_data,
                                                          GtkArg * args);







  void gtk_marshal_NONE__POINTER_INT_POINTER (GtkObject * object,
                                              GtkSignalFunc func,
                                              gpointer func_data,
                                              GtkArg * args);





  void gtk_marshal_NONE__INT_POINTER_INT_INT_INT_POINTER (GtkObject * object,
                                                          GtkSignalFunc func,
                                                          gpointer func_data,
                                                          GtkArg * args);



  void gtk_marshal_NONE__INT_POINTER_INT_INT_INT (GtkObject * object,
                                                  GtkSignalFunc func,
                                                  gpointer func_data,
                                                  GtkArg * args);



  void gtk_marshal_NONE__INT_POINTER (GtkObject * object,
                                      GtkSignalFunc func,
                                      gpointer func_data, GtkArg * args);
# 35 "/usr/include/gtk-1.2/gtk/gtksignal.h" 2
# 44 "/usr/include/gtk-1.2/gtk/gtksignal.h"
typedef void (*GtkSignalMarshal) (GtkObject *object,
                                     gpointer data,
                                     guint nparams,
                                     GtkArg *args,
                                     GtkType *arg_types,
                                     GtkType return_type);
typedef void (*GtkSignalDestroy) (gpointer data);
typedef gboolean (*GtkEmissionHook) (GtkObject *object,
                                     guint signal_id,
                                     guint n_params,
                                     GtkArg *params,
                                     gpointer data);

typedef struct _GtkSignalQuery GtkSignalQuery;

struct _GtkSignalQuery
{
  GtkType object_type;
  guint signal_id;
  const gchar *signal_name;
  guint is_user_signal : 1;
  GtkSignalRunType signal_flags;
  GtkType return_val;
  guint nparams;
  const GtkType *params;
};



guint gtk_signal_lookup (const gchar *name,
                                           GtkType object_type);
gchar* gtk_signal_name (guint signal_id);
guint gtk_signal_n_emissions (GtkObject *object,
                                           guint signal_id);
guint gtk_signal_n_emissions_by_name (GtkObject *object,
                                           const gchar *name);
void gtk_signal_emit_stop (GtkObject *object,
                                           guint signal_id);
void gtk_signal_emit_stop_by_name (GtkObject *object,
                                           const gchar *name);
guint gtk_signal_connect (GtkObject *object,
                                           const gchar *name,
                                           GtkSignalFunc func,
                                           gpointer func_data);
guint gtk_signal_connect_after (GtkObject *object,
                                           const gchar *name,
                                           GtkSignalFunc func,
                                           gpointer func_data);
guint gtk_signal_connect_object (GtkObject *object,
                                           const gchar *name,
                                           GtkSignalFunc func,
                                           GtkObject *slot_object);
guint gtk_signal_connect_object_after (GtkObject *object,
                                           const gchar *name,
                                           GtkSignalFunc func,
                                           GtkObject *slot_object);
guint gtk_signal_connect_full (GtkObject *object,
                                           const gchar *name,
                                           GtkSignalFunc func,
                                           GtkCallbackMarshal marshal,
                                           gpointer data,
                                           GtkDestroyNotify destroy_func,
                                           gint object_signal,
                                           gint after);

void gtk_signal_connect_object_while_alive (GtkObject *object,
                                              const gchar *signal,
                                              GtkSignalFunc func,
                                              GtkObject *alive_object);
void gtk_signal_connect_while_alive (GtkObject *object,
                                              const gchar *signal,
                                              GtkSignalFunc func,
                                              gpointer func_data,
                                              GtkObject *alive_object);

void gtk_signal_disconnect (GtkObject *object,
                                           guint handler_id);
void gtk_signal_disconnect_by_func (GtkObject *object,
                                           GtkSignalFunc func,
                                           gpointer data);
void gtk_signal_disconnect_by_data (GtkObject *object,
                                           gpointer data);
void gtk_signal_handler_block (GtkObject *object,
                                           guint handler_id);
void gtk_signal_handler_block_by_func (GtkObject *object,
                                           GtkSignalFunc func,
                                           gpointer data);
void gtk_signal_handler_block_by_data (GtkObject *object,
                                           gpointer data);
void gtk_signal_handler_unblock (GtkObject *object,
                                           guint handler_id);
void gtk_signal_handler_unblock_by_func (GtkObject *object,
                                           GtkSignalFunc func,
                                           gpointer data);
void gtk_signal_handler_unblock_by_data (GtkObject *object,
                                           gpointer data);
guint gtk_signal_handler_pending (GtkObject *object,
                                           guint signal_id,
                                           gboolean may_be_blocked);
guint gtk_signal_handler_pending_by_func (GtkObject *object,
                                           guint signal_id,
                                           gboolean may_be_blocked,
                                           GtkSignalFunc func,
                                           gpointer data);
gint gtk_signal_handler_pending_by_id (GtkObject *object,
                                           guint handler_id,
                                           gboolean may_be_blocked);
guint gtk_signal_add_emission_hook (guint signal_id,
                                           GtkEmissionHook hook_func,
                                           gpointer data);
guint gtk_signal_add_emission_hook_full (guint signal_id,
                                           GtkEmissionHook hook_func,
                                           gpointer data,
                                           GDestroyNotify destroy);
void gtk_signal_remove_emission_hook (guint signal_id,
                                           guint hook_id);





GtkSignalQuery* gtk_signal_query (guint signal_id);



void gtk_signal_init (void);
guint gtk_signal_new (const gchar *name,
                                           GtkSignalRunType signal_flags,
                                           GtkType object_type,
                                           guint function_offset,
                                           GtkSignalMarshaller marshaller,
                                           GtkType return_val,
                                           guint nparams,
                                           ...);
guint gtk_signal_newv (const gchar *name,
                                           GtkSignalRunType signal_flags,
                                           GtkType object_type,
                                           guint function_offset,
                                           GtkSignalMarshaller marshaller,
                                           GtkType return_val,
                                           guint nparams,
                                           GtkType *params);
void gtk_signal_emit (GtkObject *object,
                                           guint signal_id,
                                           ...);
void gtk_signal_emit_by_name (GtkObject *object,
                                           const gchar *name,
                                           ...);
void gtk_signal_emitv (GtkObject *object,
                                           guint signal_id,
                                           GtkArg *params);
void gtk_signal_emitv_by_name (GtkObject *object,
                                           const gchar *name,
                                           GtkArg *params);

void gtk_signal_handlers_destroy (GtkObject *object);
void gtk_signal_set_funcs (GtkSignalMarshal marshal_func,
                                           GtkSignalDestroy destroy_func);
# 33 "/usr/include/gtk-1.2/gtk/gtkclist.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkalignment.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkalignment.h"
typedef struct _GtkAlignment GtkAlignment;
typedef struct _GtkAlignmentClass GtkAlignmentClass;

struct _GtkAlignment
{
  GtkBin bin;

  gfloat xalign;
  gfloat yalign;
  gfloat xscale;
  gfloat yscale;
};

struct _GtkAlignmentClass
{
  GtkBinClass parent_class;
};


GtkType gtk_alignment_get_type (void);
GtkWidget* gtk_alignment_new (gfloat xalign,
                                     gfloat yalign,
                                     gfloat xscale,
                                     gfloat yscale);
void gtk_alignment_set (GtkAlignment *alignment,
                                     gfloat xalign,
                                     gfloat yalign,
                                     gfloat xscale,
                                     gfloat yscale);
# 34 "/usr/include/gtk-1.2/gtk/gtkclist.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtklabel.h" 1
# 31 "/usr/include/gtk-1.2/gtk/gtklabel.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkmisc.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkmisc.h"
typedef struct _GtkMisc GtkMisc;
typedef struct _GtkMiscClass GtkMiscClass;

struct _GtkMisc
{
  GtkWidget widget;

  gfloat xalign;
  gfloat yalign;

  guint16 xpad;
  guint16 ypad;
};

struct _GtkMiscClass
{
  GtkWidgetClass parent_class;
};


GtkType gtk_misc_get_type (void);
void gtk_misc_set_alignment (GtkMisc *misc,
                                gfloat xalign,
                                gfloat yalign);
void gtk_misc_set_padding (GtkMisc *misc,
                                gint xpad,
                                gint ypad);
# 32 "/usr/include/gtk-1.2/gtk/gtklabel.h" 2
# 46 "/usr/include/gtk-1.2/gtk/gtklabel.h"
typedef struct _GtkLabel GtkLabel;
typedef struct _GtkLabelClass GtkLabelClass;

typedef struct _GtkLabelWord GtkLabelWord;

struct _GtkLabel
{
  GtkMisc misc;

  gchar *label;
  GdkWChar *label_wc;
  gchar *pattern;

  GtkLabelWord *words;

  guint max_width : 16;
  guint jtype : 2;
  gboolean wrap;
};

struct _GtkLabelClass
{
  GtkMiscClass parent_class;
};


GtkType gtk_label_get_type (void);
GtkWidget* gtk_label_new (const gchar *str);
void gtk_label_set_text (GtkLabel *label,
                                    const gchar *str);
void gtk_label_set_justify (GtkLabel *label,
                                    GtkJustification jtype);
void gtk_label_set_pattern (GtkLabel *label,
                                    const gchar *pattern);
void gtk_label_set_line_wrap (GtkLabel *label,
                                    gboolean wrap);
void gtk_label_get (GtkLabel *label,
                                    gchar **str);





guint gtk_label_parse_uline (GtkLabel *label,
                                     const gchar *string);
# 35 "/usr/include/gtk-1.2/gtk/gtkclist.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkbutton.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkbutton.h"
typedef struct _GtkButton GtkButton;
typedef struct _GtkButtonClass GtkButtonClass;

struct _GtkButton
{
  GtkBin bin;

  GtkWidget *child ;



  guint in_button : 1;
  guint button_down : 1;
  guint relief : 2;
};

struct _GtkButtonClass
{
  GtkBinClass parent_class;

  void (* pressed) (GtkButton *button);
  void (* released) (GtkButton *button);
  void (* clicked) (GtkButton *button);
  void (* enter) (GtkButton *button);
  void (* leave) (GtkButton *button);
};


GtkType gtk_button_get_type (void);
GtkWidget* gtk_button_new (void);
GtkWidget* gtk_button_new_with_label (const gchar *label);
void gtk_button_pressed (GtkButton *button);
void gtk_button_released (GtkButton *button);
void gtk_button_clicked (GtkButton *button);
void gtk_button_enter (GtkButton *button);
void gtk_button_leave (GtkButton *button);
void gtk_button_set_relief (GtkButton *button,
                                          GtkReliefStyle newstyle);
GtkReliefStyle gtk_button_get_relief (GtkButton *button);
# 36 "/usr/include/gtk-1.2/gtk/gtkclist.h" 2
# 45 "/usr/include/gtk-1.2/gtk/gtkclist.h"
enum {
  GTK_CLIST_IN_DRAG = 1 << 0,
  GTK_CLIST_ROW_HEIGHT_SET = 1 << 1,
  GTK_CLIST_SHOW_TITLES = 1 << 2,
  GTK_CLIST_CHILD_HAS_FOCUS = 1 << 3,
  GTK_CLIST_ADD_MODE = 1 << 4,
  GTK_CLIST_AUTO_SORT = 1 << 5,
  GTK_CLIST_AUTO_RESIZE_BLOCKED = 1 << 6,
  GTK_CLIST_REORDERABLE = 1 << 7,
  GTK_CLIST_USE_DRAG_ICONS = 1 << 8,
  GTK_CLIST_DRAW_DRAG_LINE = 1 << 9,
  GTK_CLIST_DRAW_DRAG_RECT = 1 << 10
};


typedef enum
{
  GTK_CELL_EMPTY,
  GTK_CELL_TEXT,
  GTK_CELL_PIXMAP,
  GTK_CELL_PIXTEXT,
  GTK_CELL_WIDGET
} GtkCellType;

typedef enum
{
  GTK_CLIST_DRAG_NONE,
  GTK_CLIST_DRAG_BEFORE,
  GTK_CLIST_DRAG_INTO,
  GTK_CLIST_DRAG_AFTER
} GtkCListDragPos;

typedef enum
{
  GTK_BUTTON_IGNORED = 0,
  GTK_BUTTON_SELECTS = 1 << 0,
  GTK_BUTTON_DRAGS = 1 << 1,
  GTK_BUTTON_EXPANDS = 1 << 2
} GtkButtonAction;
# 115 "/usr/include/gtk-1.2/gtk/gtkclist.h"
typedef struct _GtkCList GtkCList;
typedef struct _GtkCListClass GtkCListClass;
typedef struct _GtkCListColumn GtkCListColumn;
typedef struct _GtkCListRow GtkCListRow;

typedef struct _GtkCell GtkCell;
typedef struct _GtkCellText GtkCellText;
typedef struct _GtkCellPixmap GtkCellPixmap;
typedef struct _GtkCellPixText GtkCellPixText;
typedef struct _GtkCellWidget GtkCellWidget;

typedef gint (*GtkCListCompareFunc) (GtkCList *clist,
                                     gconstpointer ptr1,
                                     gconstpointer ptr2);

typedef struct _GtkCListCellInfo GtkCListCellInfo;
typedef struct _GtkCListDestInfo GtkCListDestInfo;

struct _GtkCListCellInfo
{
  gint row;
  gint column;
};

struct _GtkCListDestInfo
{
  GtkCListCellInfo cell;
  GtkCListDragPos insert_pos;
};

struct _GtkCList
{
  GtkContainer container;

  guint16 flags;


  GMemChunk *row_mem_chunk;
  GMemChunk *cell_mem_chunk;

  guint freeze_count;



  GdkRectangle internal_allocation;


  gint rows;
  gint row_center_offset;
  gint row_height;
  GList *row_list;
  GList *row_list_end;


  gint columns;
  GdkRectangle column_title_area;
  GdkWindow *title_window;


  GtkCListColumn *column;



  GdkWindow *clist_window;
  gint clist_window_width;
  gint clist_window_height;


  gint hoffset;
  gint voffset;


  GtkShadowType shadow_type;


  GtkSelectionMode selection_mode;


  GList *selection;
  GList *selection_end;

  GList *undo_selection;
  GList *undo_unselection;
  gint undo_anchor;


  guint8 button_actions[5];

  guint8 drag_button;


  GtkCListCellInfo click_cell;


  GtkAdjustment *hadjustment;
  GtkAdjustment *vadjustment;


  GdkGC *xor_gc;


  GdkGC *fg_gc;
  GdkGC *bg_gc;


  GdkCursor *cursor_drag;


  gint x_drag;


  gint focus_row;


  gint anchor;
  GtkStateType anchor_state;
  gint drag_pos;
  gint htimer;
  gint vtimer;

  GtkSortType sort_type;
  GtkCListCompareFunc compare;
  gint sort_column;
};

struct _GtkCListClass
{
  GtkContainerClass parent_class;

  void (*set_scroll_adjustments) (GtkCList *clist,
                                   GtkAdjustment *hadjustment,
                                   GtkAdjustment *vadjustment);
  void (*refresh) (GtkCList *clist);
  void (*select_row) (GtkCList *clist,
                                 gint row,
                                 gint column,
                                 GdkEvent *event);
  void (*unselect_row) (GtkCList *clist,
                                 gint row,
                                 gint column,
                                 GdkEvent *event);
  void (*row_move) (GtkCList *clist,
                                 gint source_row,
                                 gint dest_row);
  void (*click_column) (GtkCList *clist,
                                 gint column);
  void (*resize_column) (GtkCList *clist,
                                 gint column,
                                 gint width);
  void (*toggle_focus_row) (GtkCList *clist);
  void (*select_all) (GtkCList *clist);
  void (*unselect_all) (GtkCList *clist);
  void (*undo_selection) (GtkCList *clist);
  void (*start_selection) (GtkCList *clist);
  void (*end_selection) (GtkCList *clist);
  void (*extend_selection) (GtkCList *clist,
                                 GtkScrollType scroll_type,
                                 gfloat position,
                                 gboolean auto_start_selection);
  void (*scroll_horizontal) (GtkCList *clist,
                                 GtkScrollType scroll_type,
                                 gfloat position);
  void (*scroll_vertical) (GtkCList *clist,
                                 GtkScrollType scroll_type,
                                 gfloat position);
  void (*toggle_add_mode) (GtkCList *clist);
  void (*abort_column_resize) (GtkCList *clist);
  void (*resync_selection) (GtkCList *clist,
                                 GdkEvent *event);
  GList* (*selection_find) (GtkCList *clist,
                                 gint row_number,
                                 GList *row_list_element);
  void (*draw_row) (GtkCList *clist,
                                 GdkRectangle *area,
                                 gint row,
                                 GtkCListRow *clist_row);
  void (*draw_drag_highlight) (GtkCList *clist,
                                 GtkCListRow *target_row,
                                 gint target_row_number,
                                 GtkCListDragPos drag_pos);
  void (*clear) (GtkCList *clist);
  void (*fake_unselect_all) (GtkCList *clist,
                                 gint row);
  void (*sort_list) (GtkCList *clist);
  gint (*insert_row) (GtkCList *clist,
                                 gint row,
                                 gchar *text[]);
  void (*remove_row) (GtkCList *clist,
                                 gint row);
  void (*set_cell_contents) (GtkCList *clist,
                                 GtkCListRow *clist_row,
                                 gint column,
                                 GtkCellType type,
                                 const gchar *text,
                                 guint8 spacing,
                                 GdkPixmap *pixmap,
                                 GdkBitmap *mask);
  void (*cell_size_request) (GtkCList *clist,
                                 GtkCListRow *clist_row,
                                 gint column,
                                 GtkRequisition *requisition);

};

struct _GtkCListColumn
{
  gchar *title;
  GdkRectangle area;

  GtkWidget *button;
  GdkWindow *window;

  gint width;
  gint min_width;
  gint max_width;
  GtkJustification justification;

  guint visible : 1;
  guint width_set : 1;
  guint resizeable : 1;
  guint auto_resize : 1;
  guint button_passive : 1;
};

struct _GtkCListRow
{
  GtkCell *cell;
  GtkStateType state;

  GdkColor foreground;
  GdkColor background;

  GtkStyle *style;

  gpointer data;
  GtkDestroyNotify destroy;

  guint fg_set : 1;
  guint bg_set : 1;
  guint selectable : 1;
};


struct _GtkCellText
{
  GtkCellType type;

  gint16 vertical;
  gint16 horizontal;

  GtkStyle *style;

  gchar *text;
};

struct _GtkCellPixmap
{
  GtkCellType type;

  gint16 vertical;
  gint16 horizontal;

  GtkStyle *style;

  GdkPixmap *pixmap;
  GdkBitmap *mask;
};

struct _GtkCellPixText
{
  GtkCellType type;

  gint16 vertical;
  gint16 horizontal;

  GtkStyle *style;

  gchar *text;
  guint8 spacing;
  GdkPixmap *pixmap;
  GdkBitmap *mask;
};

struct _GtkCellWidget
{
  GtkCellType type;

  gint16 vertical;
  gint16 horizontal;

  GtkStyle *style;

  GtkWidget *widget;
};

struct _GtkCell
{
  GtkCellType type;

  gint16 vertical;
  gint16 horizontal;

  GtkStyle *style;

  union {
    gchar *text;

    struct {
      GdkPixmap *pixmap;
      GdkBitmap *mask;
    } pm;

    struct {
      gchar *text;
      guint8 spacing;
      GdkPixmap *pixmap;
      GdkBitmap *mask;
    } pt;

    GtkWidget *widget;
  } u;
};

GtkType gtk_clist_get_type (void);


void gtk_clist_construct (GtkCList *clist,
                          gint columns,
                          gchar *titles[]);


GtkWidget* gtk_clist_new (gint columns);
GtkWidget* gtk_clist_new_with_titles (gint columns,
                                      gchar *titles[]);


void gtk_clist_set_hadjustment (GtkCList *clist,
                                GtkAdjustment *adjustment);
void gtk_clist_set_vadjustment (GtkCList *clist,
                                GtkAdjustment *adjustment);


GtkAdjustment* gtk_clist_get_hadjustment (GtkCList *clist);
GtkAdjustment* gtk_clist_get_vadjustment (GtkCList *clist);


void gtk_clist_set_shadow_type (GtkCList *clist,
                                GtkShadowType type);


void gtk_clist_set_selection_mode (GtkCList *clist,
                                   GtkSelectionMode mode);


void gtk_clist_set_reorderable (GtkCList *clist,
                                gboolean reorderable);
void gtk_clist_set_use_drag_icons (GtkCList *clist,
                                   gboolean use_icons);
void gtk_clist_set_button_actions (GtkCList *clist,
                                   guint button,
                                   guint8 button_actions);





void gtk_clist_freeze (GtkCList *clist);
void gtk_clist_thaw (GtkCList *clist);


void gtk_clist_column_titles_show (GtkCList *clist);
void gtk_clist_column_titles_hide (GtkCList *clist);





void gtk_clist_column_title_active (GtkCList *clist,
                                      gint column);
void gtk_clist_column_title_passive (GtkCList *clist,
                                      gint column);
void gtk_clist_column_titles_active (GtkCList *clist);
void gtk_clist_column_titles_passive (GtkCList *clist);


void gtk_clist_set_column_title (GtkCList *clist,
                                 gint column,
                                 const gchar *title);


gchar * gtk_clist_get_column_title (GtkCList *clist,
                                    gint column);


void gtk_clist_set_column_widget (GtkCList *clist,
                                  gint column,
                                  GtkWidget *widget);


GtkWidget * gtk_clist_get_column_widget (GtkCList *clist,
                                         gint column);


void gtk_clist_set_column_justification (GtkCList *clist,
                                         gint column,
                                         GtkJustification justification);


void gtk_clist_set_column_visibility (GtkCList *clist,
                                      gint column,
                                      gboolean visible);


void gtk_clist_set_column_resizeable (GtkCList *clist,
                                      gint column,
                                      gboolean resizeable);


void gtk_clist_set_column_auto_resize (GtkCList *clist,
                                       gint column,
                                       gboolean auto_resize);

gint gtk_clist_columns_autosize (GtkCList *clist);


gint gtk_clist_optimal_column_width (GtkCList *clist,
                                     gint column);





void gtk_clist_set_column_width (GtkCList *clist,
                                 gint column,
                                 gint width);


void gtk_clist_set_column_min_width (GtkCList *clist,
                                     gint column,
                                     gint min_width);
void gtk_clist_set_column_max_width (GtkCList *clist,
                                     gint column,
                                     gint max_width);




void gtk_clist_set_row_height (GtkCList *clist,
                               guint height);






void gtk_clist_moveto (GtkCList *clist,
                       gint row,
                       gint column,
                       gfloat row_align,
                       gfloat col_align);


GtkVisibility gtk_clist_row_is_visible (GtkCList *clist,
                                        gint row);


GtkCellType gtk_clist_get_cell_type (GtkCList *clist,
                                     gint row,
                                     gint column);


void gtk_clist_set_text (GtkCList *clist,
                         gint row,
                         gint column,
                         const gchar *text);




gint gtk_clist_get_text (GtkCList *clist,
                         gint row,
                         gint column,
                         gchar **text);


void gtk_clist_set_pixmap (GtkCList *clist,
                           gint row,
                           gint column,
                           GdkPixmap *pixmap,
                           GdkBitmap *mask);

gint gtk_clist_get_pixmap (GtkCList *clist,
                           gint row,
                           gint column,
                           GdkPixmap **pixmap,
                           GdkBitmap **mask);


void gtk_clist_set_pixtext (GtkCList *clist,
                            gint row,
                            gint column,
                            const gchar *text,
                            guint8 spacing,
                            GdkPixmap *pixmap,
                            GdkBitmap *mask);

gint gtk_clist_get_pixtext (GtkCList *clist,
                            gint row,
                            gint column,
                            gchar **text,
                            guint8 *spacing,
                            GdkPixmap **pixmap,
                            GdkBitmap **mask);




void gtk_clist_set_foreground (GtkCList *clist,
                               gint row,
                               GdkColor *color);




void gtk_clist_set_background (GtkCList *clist,
                               gint row,
                               GdkColor *color);


void gtk_clist_set_cell_style (GtkCList *clist,
                               gint row,
                               gint column,
                               GtkStyle *style);

GtkStyle *gtk_clist_get_cell_style (GtkCList *clist,
                                    gint row,
                                    gint column);

void gtk_clist_set_row_style (GtkCList *clist,
                              gint row,
                              GtkStyle *style);

GtkStyle *gtk_clist_get_row_style (GtkCList *clist,
                                   gint row);





void gtk_clist_set_shift (GtkCList *clist,
                          gint row,
                          gint column,
                          gint vertical,
                          gint horizontal);


void gtk_clist_set_selectable (GtkCList *clist,
                               gint row,
                               gboolean selectable);
gboolean gtk_clist_get_selectable (GtkCList *clist,
                                   gint row);




gint gtk_clist_prepend (GtkCList *clist,
                        gchar *text[]);
gint gtk_clist_append (GtkCList *clist,
                        gchar *text[]);




gint gtk_clist_insert (GtkCList *clist,
                       gint row,
                       gchar *text[]);


void gtk_clist_remove (GtkCList *clist,
                       gint row);


void gtk_clist_set_row_data (GtkCList *clist,
                             gint row,
                             gpointer data);


void gtk_clist_set_row_data_full (GtkCList *clist,
                                  gint row,
                                  gpointer data,
                                  GtkDestroyNotify destroy);


gpointer gtk_clist_get_row_data (GtkCList *clist,
                                 gint row);




gint gtk_clist_find_row_from_data (GtkCList *clist,
                                   gpointer data);


void gtk_clist_select_row (GtkCList *clist,
                           gint row,
                           gint column);


void gtk_clist_unselect_row (GtkCList *clist,
                             gint row,
                             gint column);


void gtk_clist_undo_selection (GtkCList *clist);




void gtk_clist_clear (GtkCList *clist);





gint gtk_clist_get_selection_info (GtkCList *clist,
                                   gint x,
                                   gint y,
                                   gint *row,
                                   gint *column);


void gtk_clist_select_all (GtkCList *clist);


void gtk_clist_unselect_all (GtkCList *clist);


void gtk_clist_swap_rows (GtkCList *clist,
                          gint row1,
                          gint row2);


void gtk_clist_row_move (GtkCList *clist,
                         gint source_row,
                         gint dest_row);


void gtk_clist_set_compare_func (GtkCList *clist,
                                 GtkCListCompareFunc cmp_func);


void gtk_clist_set_sort_column (GtkCList *clist,
                                gint column);


void gtk_clist_set_sort_type (GtkCList *clist,
                              GtkSortType sort_type);


void gtk_clist_sort (GtkCList *clist);


void gtk_clist_set_auto_sort (GtkCList *clist,
                              gboolean auto_sort);
# 35 "/usr/include/gtk-1.2/gtk/gtkctree.h" 2
# 52 "/usr/include/gtk-1.2/gtk/gtkctree.h"
typedef enum
{
  GTK_CTREE_POS_BEFORE,
  GTK_CTREE_POS_AS_CHILD,
  GTK_CTREE_POS_AFTER
} GtkCTreePos;

typedef enum
{
  GTK_CTREE_LINES_NONE,
  GTK_CTREE_LINES_SOLID,
  GTK_CTREE_LINES_DOTTED,
  GTK_CTREE_LINES_TABBED
} GtkCTreeLineStyle;

typedef enum
{
  GTK_CTREE_EXPANDER_NONE,
  GTK_CTREE_EXPANDER_SQUARE,
  GTK_CTREE_EXPANDER_TRIANGLE,
  GTK_CTREE_EXPANDER_CIRCULAR
} GtkCTreeExpanderStyle;

typedef enum
{
  GTK_CTREE_EXPANSION_EXPAND,
  GTK_CTREE_EXPANSION_EXPAND_RECURSIVE,
  GTK_CTREE_EXPANSION_COLLAPSE,
  GTK_CTREE_EXPANSION_COLLAPSE_RECURSIVE,
  GTK_CTREE_EXPANSION_TOGGLE,
  GTK_CTREE_EXPANSION_TOGGLE_RECURSIVE
} GtkCTreeExpansionType;

typedef struct _GtkCTree GtkCTree;
typedef struct _GtkCTreeClass GtkCTreeClass;
typedef struct _GtkCTreeRow GtkCTreeRow;
typedef struct _GtkCTreeNode GtkCTreeNode;

typedef void (*GtkCTreeFunc) (GtkCTree *ctree,
                              GtkCTreeNode *node,
                              gpointer data);

typedef gboolean (*GtkCTreeGNodeFunc) (GtkCTree *ctree,
                                       guint depth,
                                       GNode *gnode,
                                       GtkCTreeNode *cnode,
                                       gpointer data);

typedef gboolean (*GtkCTreeCompareDragFunc) (GtkCTree *ctree,
                                             GtkCTreeNode *source_node,
                                             GtkCTreeNode *new_parent,
                                             GtkCTreeNode *new_sibling);

struct _GtkCTree
{
  GtkCList clist;

  GdkGC *lines_gc;

  gint tree_indent;
  gint tree_spacing;
  gint tree_column;

  guint line_style : 2;
  guint expander_style : 2;
  guint show_stub : 1;

  GtkCTreeCompareDragFunc drag_compare;
};

struct _GtkCTreeClass
{
  GtkCListClass parent_class;

  void (*tree_select_row) (GtkCTree *ctree,
                             GtkCTreeNode *row,
                             gint column);
  void (*tree_unselect_row) (GtkCTree *ctree,
                             GtkCTreeNode *row,
                             gint column);
  void (*tree_expand) (GtkCTree *ctree,
                             GtkCTreeNode *node);
  void (*tree_collapse) (GtkCTree *ctree,
                             GtkCTreeNode *node);
  void (*tree_move) (GtkCTree *ctree,
                             GtkCTreeNode *node,
                             GtkCTreeNode *new_parent,
                             GtkCTreeNode *new_sibling);
  void (*change_focus_row_expansion) (GtkCTree *ctree,
                                      GtkCTreeExpansionType action);
};

struct _GtkCTreeRow
{
  GtkCListRow row;

  GtkCTreeNode *parent;
  GtkCTreeNode *sibling;
  GtkCTreeNode *children;

  GdkPixmap *pixmap_closed;
  GdkBitmap *mask_closed;
  GdkPixmap *pixmap_opened;
  GdkBitmap *mask_opened;

  guint16 level;

  guint is_leaf : 1;
  guint expanded : 1;
};

struct _GtkCTreeNode {
  GList list;
};






GtkType gtk_ctree_get_type (void);
void gtk_ctree_construct (GtkCTree *ctree,
                                                  gint columns,
                                                  gint tree_column,
                                                  gchar *titles[]);
GtkWidget * gtk_ctree_new_with_titles (gint columns,
                                                  gint tree_column,
                                                  gchar *titles[]);
GtkWidget * gtk_ctree_new (gint columns,
                                                  gint tree_column);
GtkCTreeNode * gtk_ctree_insert_node (GtkCTree *ctree,
                                                  GtkCTreeNode *parent,
                                                  GtkCTreeNode *sibling,
                                                  gchar *text[],
                                                  guint8 spacing,
                                                  GdkPixmap *pixmap_closed,
                                                  GdkBitmap *mask_closed,
                                                  GdkPixmap *pixmap_opened,
                                                  GdkBitmap *mask_opened,
                                                  gboolean is_leaf,
                                                  gboolean expanded);
void gtk_ctree_remove_node (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
GtkCTreeNode * gtk_ctree_insert_gnode (GtkCTree *ctree,
                                                  GtkCTreeNode *parent,
                                                  GtkCTreeNode *sibling,
                                                  GNode *gnode,
                                                  GtkCTreeGNodeFunc func,
                                                  gpointer data);
GNode * gtk_ctree_export_to_gnode (GtkCTree *ctree,
                                                  GNode *parent,
                                                  GNode *sibling,
                                                  GtkCTreeNode *node,
                                                  GtkCTreeGNodeFunc func,
                                                  gpointer data);






void gtk_ctree_post_recursive (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  GtkCTreeFunc func,
                                                  gpointer data);
void gtk_ctree_post_recursive_to_depth (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gint depth,
                                                  GtkCTreeFunc func,
                                                  gpointer data);
void gtk_ctree_pre_recursive (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  GtkCTreeFunc func,
                                                  gpointer data);
void gtk_ctree_pre_recursive_to_depth (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gint depth,
                                                  GtkCTreeFunc func,
                                                  gpointer data);
gboolean gtk_ctree_is_viewable (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
GtkCTreeNode * gtk_ctree_last (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
GtkCTreeNode * gtk_ctree_find_node_ptr (GtkCTree *ctree,
                                                  GtkCTreeRow *ctree_row);
GtkCTreeNode * gtk_ctree_node_nth (GtkCTree *ctree,
                                                  guint row);
gboolean gtk_ctree_find (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  GtkCTreeNode *child);
gboolean gtk_ctree_is_ancestor (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  GtkCTreeNode *child);
GtkCTreeNode * gtk_ctree_find_by_row_data (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gpointer data);

GList * gtk_ctree_find_all_by_row_data (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gpointer data);
GtkCTreeNode * gtk_ctree_find_by_row_data_custom (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gpointer data,
                                                  GCompareFunc func);

GList * gtk_ctree_find_all_by_row_data_custom (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gpointer data,
                                                  GCompareFunc func);
gboolean gtk_ctree_is_hot_spot (GtkCTree *ctree,
                                                  gint x,
                                                  gint y);





void gtk_ctree_move (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  GtkCTreeNode *new_parent,
                                                  GtkCTreeNode *new_sibling);
void gtk_ctree_expand (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
void gtk_ctree_expand_recursive (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
void gtk_ctree_expand_to_depth (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gint depth);
void gtk_ctree_collapse (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
void gtk_ctree_collapse_recursive (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
void gtk_ctree_collapse_to_depth (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gint depth);
void gtk_ctree_toggle_expansion (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
void gtk_ctree_toggle_expansion_recursive (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
void gtk_ctree_select (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
void gtk_ctree_select_recursive (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
void gtk_ctree_unselect (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
void gtk_ctree_unselect_recursive (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
void gtk_ctree_real_select_recursive (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gint state);





void gtk_ctree_node_set_text (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gint column,
                                                  const gchar *text);
void gtk_ctree_node_set_pixmap (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gint column,
                                                  GdkPixmap *pixmap,
                                                  GdkBitmap *mask);
void gtk_ctree_node_set_pixtext (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gint column,
                                                  const gchar *text,
                                                  guint8 spacing,
                                                  GdkPixmap *pixmap,
                                                  GdkBitmap *mask);
void gtk_ctree_set_node_info (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  const gchar *text,
                                                  guint8 spacing,
                                                  GdkPixmap *pixmap_closed,
                                                  GdkBitmap *mask_closed,
                                                  GdkPixmap *pixmap_opened,
                                                  GdkBitmap *mask_opened,
                                                  gboolean is_leaf,
                                                  gboolean expanded);
void gtk_ctree_node_set_shift (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gint column,
                                                  gint vertical,
                                                  gint horizontal);
void gtk_ctree_node_set_selectable (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gboolean selectable);
gboolean gtk_ctree_node_get_selectable (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
GtkCellType gtk_ctree_node_get_cell_type (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gint column);
gint gtk_ctree_node_get_text (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gint column,
                                                  gchar **text);
gint gtk_ctree_node_get_pixmap (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gint column,
                                                  GdkPixmap **pixmap,
                                                  GdkBitmap **mask);
gint gtk_ctree_node_get_pixtext (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gint column,
                                                  gchar **text,
                                                  guint8 *spacing,
                                                  GdkPixmap **pixmap,
                                                  GdkBitmap **mask);
gint gtk_ctree_get_node_info (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gchar **text,
                                                  guint8 *spacing,
                                                  GdkPixmap **pixmap_closed,
                                                  GdkBitmap **mask_closed,
                                                  GdkPixmap **pixmap_opened,
                                                  GdkBitmap **mask_opened,
                                                  gboolean *is_leaf,
                                                  gboolean *expanded);
void gtk_ctree_node_set_row_style (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  GtkStyle *style);
GtkStyle * gtk_ctree_node_get_row_style (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
void gtk_ctree_node_set_cell_style (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gint column,
                                                  GtkStyle *style);
GtkStyle * gtk_ctree_node_get_cell_style (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gint column);
void gtk_ctree_node_set_foreground (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  GdkColor *color);
void gtk_ctree_node_set_background (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  GdkColor *color);
void gtk_ctree_node_set_row_data (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gpointer data);
void gtk_ctree_node_set_row_data_full (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gpointer data,
                                                  GtkDestroyNotify destroy);
gpointer gtk_ctree_node_get_row_data (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
void gtk_ctree_node_moveto (GtkCTree *ctree,
                                                  GtkCTreeNode *node,
                                                  gint column,
                                                  gfloat row_align,
                                                  gfloat col_align);
GtkVisibility gtk_ctree_node_is_visible (GtkCTree *ctree,
                                                  GtkCTreeNode *node);





void gtk_ctree_set_indent (GtkCTree *ctree,
                                      gint indent);
void gtk_ctree_set_spacing (GtkCTree *ctree,
                                      gint spacing);
void gtk_ctree_set_show_stub (GtkCTree *ctree,
                                      gboolean show_stub);
void gtk_ctree_set_line_style (GtkCTree *ctree,
                                      GtkCTreeLineStyle line_style);
void gtk_ctree_set_expander_style (GtkCTree *ctree,
                                      GtkCTreeExpanderStyle expander_style);
void gtk_ctree_set_drag_compare_func (GtkCTree *ctree,
                                      GtkCTreeCompareDragFunc cmp_func);





void gtk_ctree_sort_node (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
void gtk_ctree_sort_recursive (GtkCTree *ctree,
                                                  GtkCTreeNode *node);
# 31 "mimeview.c" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkvbox.h" 1
# 32 "/usr/include/gtk-1.2/gtk/gtkvbox.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkbox.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkbox.h"
typedef struct _GtkBox GtkBox;
typedef struct _GtkBoxClass GtkBoxClass;
typedef struct _GtkBoxChild GtkBoxChild;

struct _GtkBox
{
  GtkContainer container;

  GList *children;
  gint16 spacing;
  guint homogeneous : 1;
};

struct _GtkBoxClass
{
  GtkContainerClass parent_class;
};

struct _GtkBoxChild
{
  GtkWidget *widget;
  guint16 padding;
  guint expand : 1;
  guint fill : 1;
  guint pack : 1;
};


GtkType gtk_box_get_type (void);
void gtk_box_pack_start (GtkBox *box,
                                        GtkWidget *child,
                                        gboolean expand,
                                        gboolean fill,
                                        guint padding);
void gtk_box_pack_end (GtkBox *box,
                                        GtkWidget *child,
                                        gboolean expand,
                                        gboolean fill,
                                        guint padding);
void gtk_box_pack_start_defaults (GtkBox *box,
                                        GtkWidget *widget);
void gtk_box_pack_end_defaults (GtkBox *box,
                                        GtkWidget *widget);
void gtk_box_set_homogeneous (GtkBox *box,
                                        gboolean homogeneous);
void gtk_box_set_spacing (GtkBox *box,
                                        gint spacing);
void gtk_box_reorder_child (GtkBox *box,
                                        GtkWidget *child,
                                        gint position);
void gtk_box_query_child_packing (GtkBox *box,
                                        GtkWidget *child,
                                        gboolean *expand,
                                        gboolean *fill,
                                        guint *padding,
                                        GtkPackType *pack_type);
void gtk_box_set_child_packing (GtkBox *box,
                                        GtkWidget *child,
                                        gboolean expand,
                                        gboolean fill,
                                        guint padding,
                                        GtkPackType pack_type);
# 33 "/usr/include/gtk-1.2/gtk/gtkvbox.h" 2
# 47 "/usr/include/gtk-1.2/gtk/gtkvbox.h"
typedef struct _GtkVBox GtkVBox;
typedef struct _GtkVBoxClass GtkVBoxClass;

struct _GtkVBox
{
  GtkBox box;
};

struct _GtkVBoxClass
{
  GtkBoxClass parent_class;
};


GtkType gtk_vbox_get_type (void);
GtkWidget* gtk_vbox_new (gboolean homogeneous,
                              gint spacing);
# 32 "mimeview.c" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkhbox.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkhbox.h"
typedef struct _GtkHBox GtkHBox;
typedef struct _GtkHBoxClass GtkHBoxClass;

struct _GtkHBox
{
  GtkBox box;
};

struct _GtkHBoxClass
{
  GtkBoxClass parent_class;
};


GtkType gtk_hbox_get_type (void);
GtkWidget* gtk_hbox_new (gboolean homogeneous,
                              gint spacing);
# 33 "mimeview.c" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkvpaned.h" 1
# 32 "/usr/include/gtk-1.2/gtk/gtkvpaned.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkpaned.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkpaned.h"
typedef struct _GtkPaned GtkPaned;
typedef struct _GtkPanedClass GtkPanedClass;

struct _GtkPaned
{
  GtkContainer container;

  GtkWidget *child1;
  GtkWidget *child2;

  GdkWindow *handle;
  GdkRectangle groove_rectangle;
  GdkGC *xor_gc;


  guint16 handle_size;
  guint16 gutter_size;


  gint child1_size;
  gint last_allocation;
  gint min_position;
  gint max_position;

  guint position_set : 1;
  guint in_drag : 1;
  guint child1_shrink : 1;
  guint child1_resize : 1;
  guint child2_shrink : 1;
  guint child2_resize : 1;

  gint16 handle_xpos;
  gint16 handle_ypos;
};

struct _GtkPanedClass
{
  GtkContainerClass parent_class;
};


GtkType gtk_paned_get_type (void);
void gtk_paned_add1 (GtkPaned *paned,
                                   GtkWidget *child);
void gtk_paned_add2 (GtkPaned *paned,
                                   GtkWidget *child);
void gtk_paned_pack1 (GtkPaned *paned,
                                   GtkWidget *child,
                                   gboolean resize,
                                   gboolean shrink);
void gtk_paned_pack2 (GtkPaned *paned,
                                   GtkWidget *child,
                                   gboolean resize,
                                   gboolean shrink);
void gtk_paned_set_position (GtkPaned *paned,
                                   gint position);
void gtk_paned_set_handle_size (GtkPaned *paned,
                                   guint16 size);
void gtk_paned_set_gutter_size (GtkPaned *paned,
                                   guint16 size);


void gtk_paned_compute_position (GtkPaned *paned,
                                    gint allocation,
                                    gint child1_req,
                                    gint child2_req);

gboolean _gtk_paned_is_handle_full_size (GtkPaned *paned);
void _gtk_paned_get_handle_rect (GtkPaned *paned,
                                         GdkRectangle *rectangle);
gint _gtk_paned_get_gutter_size (GtkPaned *paned);
# 33 "/usr/include/gtk-1.2/gtk/gtkvpaned.h" 2
# 45 "/usr/include/gtk-1.2/gtk/gtkvpaned.h"
typedef struct _GtkVPaned GtkVPaned;
typedef struct _GtkVPanedClass GtkVPanedClass;

struct _GtkVPaned
{
  GtkPaned paned;
};

struct _GtkVPanedClass
{
  GtkPanedClass parent_class;
};


guint gtk_vpaned_get_type (void);
GtkWidget* gtk_vpaned_new (void);
# 34 "mimeview.c" 2
# 1 "/usr/include/gtk-1.2/gtk/gtktext.h" 1
# 33 "/usr/include/gtk-1.2/gtk/gtktext.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkeditable.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkeditable.h"
typedef struct _GtkEditable GtkEditable;
typedef struct _GtkEditableClass GtkEditableClass;

typedef void (*GtkTextFunction) (GtkEditable *editable, guint32 time);

struct _GtkEditable
{
  GtkWidget widget;


  guint current_pos;

  guint selection_start_pos;
  guint selection_end_pos;
  guint has_selection : 1;


  guint editable : 1;
  guint visible : 1;
  GdkIC *ic;
  GdkICAttr *ic_attr;

  gchar *clipboard_text;
};

struct _GtkEditableClass
{
  GtkWidgetClass parent_class;


  void (* changed) (GtkEditable *editable);
  void (* insert_text) (GtkEditable *editable,
                         const gchar *text,
                         gint length,
                         gint *position);
  void (* delete_text) (GtkEditable *editable,
                         gint start_pos,
                         gint end_pos);


  void (* activate) (GtkEditable *editable);
  void (* set_editable) (GtkEditable *editable,
                            gboolean is_editable);
  void (* move_cursor) (GtkEditable *editable,
                            gint x,
                            gint y);
  void (* move_word) (GtkEditable *editable,
                            gint n);
  void (* move_page) (GtkEditable *editable,
                            gint x,
                            gint y);
  void (* move_to_row) (GtkEditable *editable,
                            gint row);
  void (* move_to_column) (GtkEditable *editable,
                            gint row);
  void (* kill_char) (GtkEditable *editable,
                            gint direction);
  void (* kill_word) (GtkEditable *editable,
                            gint direction);
  void (* kill_line) (GtkEditable *editable,
                            gint direction);
  void (* cut_clipboard) (GtkEditable *editable);
  void (* copy_clipboard) (GtkEditable *editable);
  void (* paste_clipboard) (GtkEditable *editable);






  void (* update_text) (GtkEditable *editable,
                         gint start_pos,
                         gint end_pos);
  gchar* (* get_chars) (GtkEditable *editable,
                         gint start_pos,
                         gint end_pos);
  void (* set_selection)(GtkEditable *editable,
                         gint start_pos,
                         gint end_pos);
  void (* set_position) (GtkEditable *editable,
                         gint position);
};

GtkType gtk_editable_get_type (void);
void gtk_editable_select_region (GtkEditable *editable,
                                        gint start,
                                        gint end);
void gtk_editable_insert_text (GtkEditable *editable,
                                        const gchar *new_text,
                                        gint new_text_length,
                                        gint *position);
void gtk_editable_delete_text (GtkEditable *editable,
                                        gint start_pos,
                                        gint end_pos);
gchar* gtk_editable_get_chars (GtkEditable *editable,
                                        gint start_pos,
                                        gint end_pos);
void gtk_editable_cut_clipboard (GtkEditable *editable);
void gtk_editable_copy_clipboard (GtkEditable *editable);
void gtk_editable_paste_clipboard (GtkEditable *editable);
void gtk_editable_claim_selection (GtkEditable *editable,
                                         gboolean claim,
                                         guint32 time);
void gtk_editable_delete_selection (GtkEditable *editable);

void gtk_editable_changed (GtkEditable *editable);
void gtk_editable_set_position (GtkEditable *editable,
                                         gint position);
gint gtk_editable_get_position (GtkEditable *editable);
void gtk_editable_set_editable (GtkEditable *editable,
                                         gboolean is_editable);
# 34 "/usr/include/gtk-1.2/gtk/gtktext.h" 2
# 46 "/usr/include/gtk-1.2/gtk/gtktext.h"
typedef struct _GtkTextFont GtkTextFont;
typedef struct _GtkPropertyMark GtkPropertyMark;
typedef struct _GtkText GtkText;
typedef struct _GtkTextClass GtkTextClass;

struct _GtkPropertyMark
{

  GList* property;


  guint offset;


  guint index;
};

struct _GtkText
{
  GtkEditable editable;

  GdkWindow *text_area;

  GtkAdjustment *hadj;
  GtkAdjustment *vadj;

  GdkGC *gc;

  GdkPixmap* line_wrap_bitmap;
  GdkPixmap* line_arrow_bitmap;





  union { GdkWChar *wc; guchar *ch; } text;

  guint text_len;


  guint gap_position;


  guint gap_size;



  guint text_end;



  GList *line_start_cache;

  guint first_line_start_index;

  guint first_cut_pixels;

  guint first_onscreen_hor_pixel;

  guint first_onscreen_ver_pixel;





  guint line_wrap : 1;
  guint word_wrap : 1;


  guint use_wchar : 1;


  guint freeze_count;



  GList *text_properties;

  GList *text_properties_end;




  GtkPropertyMark point;



  union { GdkWChar *wc; guchar *ch; } scratch_buffer;
  guint scratch_buffer_len;



  gint last_ver_value;



  gint cursor_pos_x;
  gint cursor_pos_y;
  GtkPropertyMark cursor_mark;
  GdkWChar cursor_char;
  gchar cursor_char_offset;
  gint cursor_virtual_x;
  gint cursor_drawn_level;



  GList *current_line;



  GList *tab_stops;
  gint default_tab_width;

  GtkTextFont *current_font;


  gint timer;

  guint button;
  GdkGC *bg_gc;
};

struct _GtkTextClass
{
  GtkEditableClass parent_class;

  void (*set_scroll_adjustments) (GtkText *text,
                                     GtkAdjustment *hadjustment,
                                     GtkAdjustment *vadjustment);
};


GtkType gtk_text_get_type (void);
GtkWidget* gtk_text_new (GtkAdjustment *hadj,
                                     GtkAdjustment *vadj);
void gtk_text_set_editable (GtkText *text,
                                     gboolean editable);
void gtk_text_set_word_wrap (GtkText *text,
                                     gint word_wrap);
void gtk_text_set_line_wrap (GtkText *text,
                                     gint line_wrap);
void gtk_text_set_adjustments (GtkText *text,
                                     GtkAdjustment *hadj,
                                     GtkAdjustment *vadj);
void gtk_text_set_point (GtkText *text,
                                     guint index);
guint gtk_text_get_point (GtkText *text);
guint gtk_text_get_length (GtkText *text);
void gtk_text_freeze (GtkText *text);
void gtk_text_thaw (GtkText *text);
void gtk_text_insert (GtkText *text,
                                     GdkFont *font,
                                     GdkColor *fore,
                                     GdkColor *back,
                                     const char *chars,
                                     gint length);
gint gtk_text_backward_delete (GtkText *text,
                                     guint nchars);
gint gtk_text_forward_delete (GtkText *text,
                                     guint nchars);
# 35 "mimeview.c" 2

# 1 "/usr/include/gtk-1.2/gtk/gtkmenu.h" 1
# 33 "/usr/include/gtk-1.2/gtk/gtkmenu.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkmenushell.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkmenushell.h"
typedef struct _GtkMenuShell GtkMenuShell;
typedef struct _GtkMenuShellClass GtkMenuShellClass;

struct _GtkMenuShell
{
  GtkContainer container;

  GList *children;
  GtkWidget *active_menu_item;
  GtkWidget *parent_menu_shell;

  guint active : 1;
  guint have_grab : 1;
  guint have_xgrab : 1;
  guint button : 2;
  guint ignore_leave : 1;
  guint menu_flag : 1;
  guint ignore_enter : 1;

  guint32 activate_time;
};

struct _GtkMenuShellClass
{
  GtkContainerClass parent_class;

  guint submenu_placement : 1;

  void (*deactivate) (GtkMenuShell *menu_shell);
  void (*selection_done) (GtkMenuShell *menu_shell);

  void (*move_current) (GtkMenuShell *menu_shell,
                            GtkMenuDirectionType direction);
  void (*activate_current) (GtkMenuShell *menu_shell,
                            gboolean force_hide);
  void (*cancel) (GtkMenuShell *menu_shell);
};


GtkType gtk_menu_shell_get_type (void);
void gtk_menu_shell_append (GtkMenuShell *menu_shell,
                                   GtkWidget *child);
void gtk_menu_shell_prepend (GtkMenuShell *menu_shell,
                                   GtkWidget *child);
void gtk_menu_shell_insert (GtkMenuShell *menu_shell,
                                   GtkWidget *child,
                                   gint position);
void gtk_menu_shell_deactivate (GtkMenuShell *menu_shell);
void gtk_menu_shell_select_item (GtkMenuShell *menu_shell,
                                    GtkWidget *menu_item);
void gtk_menu_shell_deselect (GtkMenuShell *menu_shell);
void gtk_menu_shell_activate_item (GtkMenuShell *menu_shell,
                                       GtkWidget *menu_item,
                                       gboolean force_deactivate);
# 34 "/usr/include/gtk-1.2/gtk/gtkmenu.h" 2
# 48 "/usr/include/gtk-1.2/gtk/gtkmenu.h"
typedef struct _GtkMenu GtkMenu;
typedef struct _GtkMenuClass GtkMenuClass;

typedef void (*GtkMenuPositionFunc) (GtkMenu *menu,
                                     gint *x,
                                     gint *y,
                                     gpointer user_data);
typedef void (*GtkMenuDetachFunc) (GtkWidget *attach_widget,
                                     GtkMenu *menu);

struct _GtkMenu
{
  GtkMenuShell menu_shell;

  GtkWidget *parent_menu_item;
  GtkWidget *old_active_menu_item;

  GtkAccelGroup *accel_group;
  GtkMenuPositionFunc position_func;
  gpointer position_func_data;





  GtkWidget *toplevel;
  GtkWidget *tearoff_window;

  guint torn_off : 1;
};

struct _GtkMenuClass
{
  GtkMenuShellClass parent_class;
};


GtkType gtk_menu_get_type (void);
GtkWidget* gtk_menu_new (void);


void gtk_menu_append (GtkMenu *menu,
                                           GtkWidget *child);
void gtk_menu_prepend (GtkMenu *menu,
                                           GtkWidget *child);
void gtk_menu_insert (GtkMenu *menu,
                                           GtkWidget *child,
                                           gint position);


void gtk_menu_popup (GtkMenu *menu,
                                           GtkWidget *parent_menu_shell,
                                           GtkWidget *parent_menu_item,
                                           GtkMenuPositionFunc func,
                                           gpointer data,
                                           guint button,
                                           guint32 activate_time);




void gtk_menu_reposition (GtkMenu *menu);

void gtk_menu_popdown (GtkMenu *menu);




GtkWidget* gtk_menu_get_active (GtkMenu *menu);
void gtk_menu_set_active (GtkMenu *menu,
                                           guint index);




void gtk_menu_set_accel_group (GtkMenu *menu,
                                           GtkAccelGroup *accel_group);
GtkAccelGroup* gtk_menu_get_accel_group (GtkMenu *menu);




GtkAccelGroup* gtk_menu_get_uline_accel_group (GtkMenu *menu);
GtkAccelGroup* gtk_menu_ensure_uline_accel_group (GtkMenu *menu);






void gtk_menu_attach_to_widget (GtkMenu *menu,
                                           GtkWidget *attach_widget,
                                           GtkMenuDetachFunc detacher);
void gtk_menu_detach (GtkMenu *menu);





GtkWidget* gtk_menu_get_attach_widget (GtkMenu *menu);

void gtk_menu_set_tearoff_state (GtkMenu *menu,
                                           gboolean torn_off);




void gtk_menu_set_title (GtkMenu *menu,
                                           const gchar *title);

void gtk_menu_reorder_child (GtkMenu *menu,
                                           GtkWidget *child,
                                           gint position);
# 37 "mimeview.c" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkdnd.h" 1
# 33 "/usr/include/gtk-1.2/gtk/gtkdnd.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkselection.h" 1
# 39 "/usr/include/gtk-1.2/gtk/gtkselection.h"
typedef struct _GtkSelectionData GtkSelectioData;
typedef struct _GtkTargetList GtkTargetList;
typedef struct _GtkTargetEntry GtkTargetEntry;

struct _GtkTargetEntry {
  gchar *target;
  guint flags;
  guint info;
};





typedef struct _GtkTargetPair GtkTargetPair;


struct _GtkTargetList {
  GList *list;
  guint ref_count;
};

struct _GtkTargetPair {
  GdkAtom target;
  guint flags;
  guint info;
};

GtkTargetList *gtk_target_list_new (const GtkTargetEntry *targets,
                                          guint ntargets);
void gtk_target_list_ref (GtkTargetList *list);
void gtk_target_list_unref (GtkTargetList *list);
void gtk_target_list_add (GtkTargetList *list,
                                          GdkAtom target,
                                          guint flags,
                                          guint info);
void gtk_target_list_add_table (GtkTargetList *list,
                                          const GtkTargetEntry *targets,
                                          guint ntargets);
void gtk_target_list_remove (GtkTargetList *list,
                                          GdkAtom target);
gboolean gtk_target_list_find (GtkTargetList *list,
                                          GdkAtom target,
                                          guint *info);



gint gtk_selection_owner_set (GtkWidget *widget,
                              GdkAtom selection,
                              guint32 time);
void gtk_selection_add_target (GtkWidget *widget,
                               GdkAtom selection,
                               GdkAtom target,
                               guint info);
void gtk_selection_add_targets (GtkWidget *widget,
                                GdkAtom selection,
                                const GtkTargetEntry *targets,
                                guint ntargets);
gint gtk_selection_convert (GtkWidget *widget,
                              GdkAtom selection,
                              GdkAtom target,
                              guint32 time);


void gtk_selection_data_set (GtkSelectionData *selection_data,
                             GdkAtom type,
                             gint format,
                             const guchar *data,
                             gint length);



void gtk_selection_remove_all (GtkWidget *widget);



gint gtk_selection_clear (GtkWidget *widget,
                                    GdkEventSelection *event);
gint gtk_selection_request (GtkWidget *widget,
                                    GdkEventSelection *event);
gint gtk_selection_incr_event (GdkWindow *window,
                                    GdkEventProperty *event);
gint gtk_selection_notify (GtkWidget *widget,
                                    GdkEventSelection *event);
gint gtk_selection_property_notify (GtkWidget *widget,
                                    GdkEventProperty *event);
GtkSelectioData *gtk_selection_data_copy (GtkSelectionData *data);
void gtk_selection_data_free (GtkSelectionData *data);
# 34 "/usr/include/gtk-1.2/gtk/gtkdnd.h" 2





typedef enum {
  GTK_DEST_DEFAULT_MOTION = 1 << 0,
  GTK_DEST_DEFAULT_HIGHLIGHT = 1 << 1,
  GTK_DEST_DEFAULT_DROP = 1 << 2,
  GTK_DEST_DEFAULT_ALL = 0x07
} GtkDestDefaults;



typedef enum {
  GTK_TARGET_SAME_APP = 1 << 0,
  GTK_TARGET_SAME_WIDGET = 1 << 1
} GtkTargetFlags;



void gtk_drag_get_data (GtkWidget *widget,
                        GdkDragContext *context,
                        GdkAtom target,
                        guint32 time);
void gtk_drag_finish (GdkDragContext *context,
                        gboolean success,
                        gboolean del,
                        guint32 time);

GtkWidget *gtk_drag_get_source_widget (GdkDragContext *context);

void gtk_drag_highlight (GtkWidget *widget);
void gtk_drag_unhighlight (GtkWidget *widget);

void gtk_drag_dest_set (GtkWidget *widget,
                          GtkDestDefaults flags,
                          const GtkTargetEntry *targets,
                          gint n_targets,
                          GdkDragAction actions);

void gtk_drag_dest_set_proxy (GtkWidget *widget,
                              GdkWindow *proxy_window,
                              GdkDragProtocol protocol,
                              gboolean use_coordinates);





void gtk_drag_dest_unset (GtkWidget *widget);



void gtk_drag_source_set (GtkWidget *widget,
                           GdkModifierType start_button_mask,
                           const GtkTargetEntry *targets,
                           gint n_targets,
                           GdkDragAction actions);

void gtk_drag_source_unset (GtkWidget *widget);

void gtk_drag_source_set_icon (GtkWidget *widget,
                               GdkColormap *colormap,
                               GdkPixmap *pixmap,
                               GdkBitmap *mask);





GdkDragContext *gtk_drag_begin (GtkWidget *widget,
                                GtkTargetList *targets,
                                GdkDragAction actions,
                                gint button,
                                GdkEvent *event);



void gtk_drag_set_icon_widget (GdkDragContext *context,
                                GtkWidget *widget,
                                gint hot_x,
                                gint hot_y);

void gtk_drag_set_icon_pixmap (GdkDragContext *context,
                                GdkColormap *colormap,
                                GdkPixmap *pixmap,
                                GdkBitmap *mask,
                                gint hot_x,
                                gint hot_y);

void gtk_drag_set_icon_default (GdkDragContext *context);

void gtk_drag_set_default_icon (GdkColormap *colormap,
                                GdkPixmap *pixmap,
                                GdkBitmap *mask,
                                gint hot_x,
                                gint hot_y);



void gtk_drag_source_handle_event (GtkWidget *widget,
                                   GdkEvent *event);
void gtk_drag_dest_handle_event (GtkWidget *toplevel,
                                 GdkEvent *event);
# 38 "mimeview.c" 2

# 1 "/usr/include/gtk-1.2/gtk/gtktooltips.h" 1
# 44 "/usr/include/gtk-1.2/gtk/gtktooltips.h"
typedef struct _GtkTooltips GtkTooltips;
typedef struct _GtkTooltipsClass GtkTooltipsClass;
typedef struct _GtkTooltipsData GtkTooltipsData;

struct _GtkTooltipsData
{
  GtkTooltips *tooltips;
  GtkWidget *widget;
  gchar *tip_text;
  gchar *tip_private;
  GdkFont *font;
  gint width;
  GList *row;
};

struct _GtkTooltips
{
  GtkData data;

  GtkWidget *tip_window;
  GtkTooltipsData *active_tips_data;
  GList *tips_data_list;

  GdkGC *gc;
  GdkColor *foreground;
  GdkColor *background;

  guint delay : 30;
  guint enabled : 1;
  gint timer_tag;
};

struct _GtkTooltipsClass
{
  GtkDataClass parent_class;
};

GtkType gtk_tooltips_get_type (void);
GtkTooltips* gtk_tooltips_new (void);

void gtk_tooltips_enable (GtkTooltips *tooltips);
void gtk_tooltips_disable (GtkTooltips *tooltips);
void gtk_tooltips_set_delay (GtkTooltips *tooltips,
                                            guint delay);
void gtk_tooltips_set_tip (GtkTooltips *tooltips,
                                            GtkWidget *widget,
                                            const gchar *tip_text,
                                            const gchar *tip_private);
void gtk_tooltips_set_colors (GtkTooltips *tooltips,
                                            GdkColor *background,
                                            GdkColor *foreground);
GtkTooltipsData* gtk_tooltips_data_get (GtkWidget *widget);
void gtk_tooltips_force_window (GtkTooltips *tooltips);
# 40 "mimeview.c" 2


# 1 "/usr/include/stdio.h" 1 3 4
# 30 "/usr/include/stdio.h" 3 4




# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 1 3 4
# 35 "/usr/include/stdio.h" 2 3 4
# 44 "/usr/include/stdio.h" 3 4


typedef struct _IO_FILE FILE;





# 62 "/usr/include/stdio.h" 3 4
typedef struct _IO_FILE __FILE;
# 72 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/libio.h" 1 3 4
# 32 "/usr/include/libio.h" 3 4
# 1 "/usr/include/_G_config.h" 1 3 4
# 14 "/usr/include/_G_config.h" 3 4
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 1 3 4
# 325 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 3 4
typedef long int wchar_t;
# 354 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 3 4
typedef unsigned int wint_t;
# 15 "/usr/include/_G_config.h" 2 3 4
# 24 "/usr/include/_G_config.h" 3 4
# 1 "/usr/include/wchar.h" 1 3 4
# 48 "/usr/include/wchar.h" 3 4
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 1 3 4
# 49 "/usr/include/wchar.h" 2 3 4

# 1 "/usr/include/bits/wchar.h" 1 3 4
# 51 "/usr/include/wchar.h" 2 3 4
# 71 "/usr/include/wchar.h" 3 4
typedef struct
{
  int __count;
  union
  {
    wint_t __wch;
    char __wchb[4];
  } __value;
} __mbstate_t;
# 25 "/usr/include/_G_config.h" 2 3 4

typedef struct
{
  __off_t __pos;
  __mbstate_t __state;
} _G_fpos_t;
typedef struct
{
  __off64_t __pos;
  __mbstate_t __state;
} _G_fpos64_t;
# 44 "/usr/include/_G_config.h" 3 4
# 1 "/usr/include/gconv.h" 1 3 4
# 28 "/usr/include/gconv.h" 3 4
# 1 "/usr/include/wchar.h" 1 3 4
# 48 "/usr/include/wchar.h" 3 4
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 1 3 4
# 49 "/usr/include/wchar.h" 2 3 4
# 29 "/usr/include/gconv.h" 2 3 4


# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 1 3 4
# 32 "/usr/include/gconv.h" 2 3 4





enum
{
  __GCONV_OK = 0,
  __GCONV_NOCONV,
  __GCONV_NODB,
  __GCONV_NOMEM,

  __GCONV_EMPTY_INPUT,
  __GCONV_FULL_OUTPUT,
  __GCONV_ILLEGAL_INPUT,
  __GCONV_INCOMPLETE_INPUT,

  __GCONV_ILLEGAL_DESCRIPTOR,
  __GCONV_INTERNAL_ERROR
};



enum
{
  __GCONV_IS_LAST = 0x0001,
  __GCONV_IGNORE_ERRORS = 0x0002
};



struct __gconv_step;
struct __gconv_step_data;
struct __gconv_loaded_object;
struct __gconv_trans_data;



typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *,
                            __const unsigned char **, __const unsigned char *,
                            unsigned char **, size_t *, int, int);


typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char);


typedef int (*__gconv_init_fct) (struct __gconv_step *);
typedef void (*__gconv_end_fct) (struct __gconv_step *);



typedef int (*__gconv_trans_fct) (struct __gconv_step *,
                                  struct __gconv_step_data *, void *,
                                  __const unsigned char *,
                                  __const unsigned char **,
                                  __const unsigned char *, unsigned char **,
                                  size_t *);


typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
                                          __const unsigned char *,
                                          unsigned char *, unsigned char *);


typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
                                        size_t *);


typedef int (*__gconv_trans_init_fct) (void **, const char *);
typedef void (*__gconv_trans_end_fct) (void *);

struct __gconv_trans_data
{

  __gconv_trans_fct __trans_fct;
  __gconv_trans_context_fct __trans_context_fct;
  __gconv_trans_end_fct __trans_end_fct;
  void *__data;
  struct __gconv_trans_data *__next;
};



struct __gconv_step
{
  struct __gconv_loaded_object *__shlib_handle;
  __const char *__modname;

  int __counter;

  char *__from_name;
  char *__to_name;

  __gconv_fct __fct;
  __gconv_btowc_fct __btowc_fct;
  __gconv_init_fct __init_fct;
  __gconv_end_fct __end_fct;



  int __min_needed_from;
  int __max_needed_from;
  int __min_needed_to;
  int __max_needed_to;


  int __stateful;

  void *__data;
};



struct __gconv_step_data
{
  unsigned char *__outbuf;
  unsigned char *__outbufend;



  int __flags;



  int __invocation_counter;



  int __internal_use;

  __mbstate_t *__statep;
  __mbstate_t __state;



  struct __gconv_trans_data *__trans;
};



typedef struct __gconv_info
{
  size_t __nsteps;
  struct __gconv_step *__steps;
  __extension__ struct __gconv_step_data __data [];
} *__gconv_t;
# 45 "/usr/include/_G_config.h" 2 3 4
typedef union
{
  struct __gconv_info __cd;
  struct
  {
    struct __gconv_info __cd;
    struct __gconv_step_data __data;
  } __combined;
} _G_iconv_t;

typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
# 33 "/usr/include/libio.h" 2 3 4
# 162 "/usr/include/libio.h" 3 4
struct _IO_jump_t; struct _IO_FILE;
# 172 "/usr/include/libio.h" 3 4
typedef void _IO_lock_t;





struct _IO_marker {
  struct _IO_marker *_next;
  struct _IO_FILE *_sbuf;



  int _pos;
# 195 "/usr/include/libio.h" 3 4
};


enum __codecvt_result
{
  __codecvt_ok,
  __codecvt_partial,
  __codecvt_error,
  __codecvt_noconv
};
# 263 "/usr/include/libio.h" 3 4
struct _IO_FILE {
  int _flags;




  char* _IO_read_ptr;
  char* _IO_read_end;
  char* _IO_read_base;
  char* _IO_write_base;
  char* _IO_write_ptr;
  char* _IO_write_end;
  char* _IO_buf_base;
  char* _IO_buf_end;

  char *_IO_save_base;
  char *_IO_backup_base;
  char *_IO_save_end;

  struct _IO_marker *_markers;

  struct _IO_FILE *_chain;

  int _fileno;



  int _flags2;

  __off_t _old_offset;



  unsigned short _cur_column;
  signed char _vtable_offset;
  char _shortbuf[1];



  _IO_lock_t *_lock;
# 311 "/usr/include/libio.h" 3 4
  __off64_t _offset;





  void *__pad1;
  void *__pad2;

  int _mode;

  char _unused2[15 * sizeof (int) - 2 * sizeof (void *)];

};


typedef struct _IO_FILE _IO_FILE;


struct _IO_FILE_plus;

extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;
# 350 "/usr/include/libio.h" 3 4
typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);







typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
                                 size_t __n);







typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);


typedef int __io_close_fn (void *__cookie);
# 402 "/usr/include/libio.h" 3 4
extern int __underflow (_IO_FILE *) ;
extern int __uflow (_IO_FILE *) ;
extern int __overflow (_IO_FILE *, int) ;
extern wint_t __wunderflow (_IO_FILE *) ;
extern wint_t __wuflow (_IO_FILE *) ;
extern wint_t __woverflow (_IO_FILE *, wint_t) ;
# 432 "/usr/include/libio.h" 3 4
extern int _IO_getc (_IO_FILE *__fp) ;
extern int _IO_putc (int __c, _IO_FILE *__fp) ;
extern int _IO_feof (_IO_FILE *__fp) ;
extern int _IO_ferror (_IO_FILE *__fp) ;

extern int _IO_peekc_locked (_IO_FILE *__fp) ;





extern void _IO_flockfile (_IO_FILE *) ;
extern void _IO_funlockfile (_IO_FILE *) ;
extern int _IO_ftrylockfile (_IO_FILE *) ;
# 462 "/usr/include/libio.h" 3 4
extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
                        __gnuc_va_list, int *__restrict) ;
extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
                         __gnuc_va_list) ;
extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) ;
extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) ;

extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) ;
extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) ;

extern void _IO_free_backup_area (_IO_FILE *) ;
# 73 "/usr/include/stdio.h" 2 3 4
# 86 "/usr/include/stdio.h" 3 4


typedef _G_fpos_t fpos_t;




# 138 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/bits/stdio_lim.h" 1 3 4
# 139 "/usr/include/stdio.h" 2 3 4



extern struct _IO_FILE *stdin;
extern struct _IO_FILE *stdout;
extern struct _IO_FILE *stderr;







extern int remove (__const char *__filename) ;

extern int rename (__const char *__old, __const char *__new) ;






extern FILE *tmpfile (void) ;
# 171 "/usr/include/stdio.h" 3 4
extern char *tmpnam (char *__s) ;

# 181 "/usr/include/stdio.h" 3 4
extern char *tmpnam_r (char *__s) ;
# 193 "/usr/include/stdio.h" 3 4
extern char *tempnam (__const char *__dir, __const char *__pfx)
     __attribute__ ((__malloc__));





extern int fclose (FILE *__stream) ;

extern int fflush (FILE *__stream) ;




extern int fflush_unlocked (FILE *__stream) ;
# 216 "/usr/include/stdio.h" 3 4



extern FILE *fopen (__const char *__restrict __filename,
                    __const char *__restrict __modes) ;

extern FILE *freopen (__const char *__restrict __filename,
                      __const char *__restrict __modes,
                      FILE *__restrict __stream) ;
# 239 "/usr/include/stdio.h" 3 4

# 250 "/usr/include/stdio.h" 3 4
extern FILE *fdopen (int __fd, __const char *__modes) ;
# 271 "/usr/include/stdio.h" 3 4



extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) ;



extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
                    int __modes, size_t __n) ;





extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
                       size_t __size) ;


extern void setlinebuf (FILE *__stream) ;





extern int fprintf (FILE *__restrict __stream,
                    __const char *__restrict __format, ...) ;

extern int printf (__const char *__restrict __format, ...) ;

extern int sprintf (char *__restrict __s,
                    __const char *__restrict __format, ...) ;


extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
                     __gnuc_va_list __arg) ;

extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg)
     ;

extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
                     __gnuc_va_list __arg) ;





extern int snprintf (char *__restrict __s, size_t __maxlen,
                     __const char *__restrict __format, ...)
     __attribute__ ((__format__ (__printf__, 3, 4)));

extern int vsnprintf (char *__restrict __s, size_t __maxlen,
                      __const char *__restrict __format, __gnuc_va_list __arg)
     __attribute__ ((__format__ (__printf__, 3, 0)));

# 349 "/usr/include/stdio.h" 3 4


extern int fscanf (FILE *__restrict __stream,
                   __const char *__restrict __format, ...) ;

extern int scanf (__const char *__restrict __format, ...) ;

extern int sscanf (__const char *__restrict __s,
                   __const char *__restrict __format, ...) ;

# 379 "/usr/include/stdio.h" 3 4


extern int fgetc (FILE *__stream) ;
extern int getc (FILE *__stream) ;


extern int getchar (void) ;








extern int getc_unlocked (FILE *__stream) ;
extern int getchar_unlocked (void) ;




extern int fgetc_unlocked (FILE *__stream) ;





extern int fputc (int __c, FILE *__stream) ;
extern int putc (int __c, FILE *__stream) ;


extern int putchar (int __c) ;








extern int fputc_unlocked (int __c, FILE *__stream) ;




extern int putc_unlocked (int __c, FILE *__stream) ;
extern int putchar_unlocked (int __c) ;





extern int getw (FILE *__stream) ;


extern int putw (int __w, FILE *__stream) ;





extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
     ;



extern char *gets (char *__s) ;

# 475 "/usr/include/stdio.h" 3 4


extern int fputs (__const char *__restrict __s, FILE *__restrict __stream)
     ;


extern int puts (__const char *__s) ;



extern int ungetc (int __c, FILE *__stream) ;



extern size_t fread (void *__restrict __ptr, size_t __size,
                     size_t __n, FILE *__restrict __stream) ;

extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
                      size_t __n, FILE *__restrict __s) ;

# 504 "/usr/include/stdio.h" 3 4
extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
                              size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
                               size_t __n, FILE *__restrict __stream) ;





extern int fseek (FILE *__stream, long int __off, int __whence) ;

extern long int ftell (FILE *__stream) ;

extern void rewind (FILE *__stream) ;

# 544 "/usr/include/stdio.h" 3 4



extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos)
     ;

extern int fsetpos (FILE *__stream, __const fpos_t *__pos) ;
# 563 "/usr/include/stdio.h" 3 4

# 573 "/usr/include/stdio.h" 3 4


extern void clearerr (FILE *__stream) ;

extern int feof (FILE *__stream) ;

extern int ferror (FILE *__stream) ;




extern void clearerr_unlocked (FILE *__stream) ;
extern int feof_unlocked (FILE *__stream) ;
extern int ferror_unlocked (FILE *__stream) ;





extern void perror (__const char *__s) ;






# 1 "/usr/include/bits/sys_errlist.h" 1 3 4
# 27 "/usr/include/bits/sys_errlist.h" 3 4
extern int sys_nerr;
extern __const char *__const sys_errlist[];
# 600 "/usr/include/stdio.h" 2 3 4




extern int fileno (FILE *__stream) ;




extern int fileno_unlocked (FILE *__stream) ;






extern FILE *popen (__const char *__command, __const char *__modes) ;


extern int pclose (FILE *__stream) ;





extern char *ctermid (char *__s) ;
# 653 "/usr/include/stdio.h" 3 4
extern void flockfile (FILE *__stream) ;



extern int ftrylockfile (FILE *__stream) ;


extern void funlockfile (FILE *__stream) ;
# 677 "/usr/include/stdio.h" 3 4

# 43 "mimeview.c" 2




# 1 "/usr/include/fnmatch.h" 1 3 4
# 78 "/usr/include/fnmatch.h" 3 4
extern int fnmatch (const char *__pattern, const char *__name, int __flags) ;
# 48 "mimeview.c" 2


# 1 "common/intl.h" 1




# 1 "/usr/include/libintl.h" 1 3 4
# 35 "/usr/include/libintl.h" 3 4





extern char *gettext (const char *__msgid) ;



extern char *dgettext (const char *__domainname, const char *__msgid)
     ;
extern char *__dgettext (const char *__domainname, const char *__msgid)
     __attribute__ ((__format_arg__ (2)));



extern char *dcgettext (const char *__domainname,
                        const char *__msgid, int __category) ;
extern char *__dcgettext (const char *__domainname,
                          const char *__msgid, int __category)
     __attribute__ ((__format_arg__ (2)));




extern char *ngettext (const char *__msgid1, const char *__msgid2,
                       unsigned long int __n)
     __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2)));



extern char *dngettext (const char *__domainname, const char *__msgid1,
                        const char *__msgid2, unsigned long int __n)
     __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));



extern char *dcngettext (const char *__domainname, const char *__msgid1,
                         const char *__msgid2, unsigned long int __n,
                         int __category)
     __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));





extern char *textdomain (const char *__domainname) ;



extern char *bindtextdomain (const char *__domainname,
                             const char *__dirname) ;



extern char *bind_textdomain_codeset (const char *__domainname,
                                      const char *__codeset) ;
# 120 "/usr/include/libintl.h" 3 4

# 6 "common/intl.h" 2
# 51 "mimeview.c" 2
# 1 "main.h" 1
# 26 "main.h"
extern gchar *prog_version;
extern gboolean debug_mode;

void app_will_exit (GtkWidget *widget, gpointer data);
void clean_quit (void);
# 52 "mimeview.c" 2
# 1 "mimeview.h" 1
# 33 "mimeview.h"
typedef struct _MimeView MimeView;
typedef struct _MimeViewerFactory MimeViewerFactory;
typedef struct _MimeViewer MimeViewer;

# 1 "textview.h" 1
# 24 "textview.h"
# 1 "../config.h" 1
# 25 "textview.h" 2





typedef struct _TextView TextView;

# 1 "messageview.h" 1
# 26 "messageview.h"
typedef struct _MessageView MessageView;

# 1 "mainwindow.h" 1
# 25 "mainwindow.h"
typedef struct _MainWindow MainWindow;

# 1 "folderview.h" 1
# 23 "folderview.h"
typedef struct _FolderView FolderView;





# 1 "folder.h" 1
# 24 "folder.h"
# 1 "/usr/include/time.h" 1 3 4
# 30 "/usr/include/time.h" 3 4








# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 1 3 4
# 39 "/usr/include/time.h" 2 3 4



# 1 "/usr/include/bits/time.h" 1 3 4
# 40 "/usr/include/bits/time.h" 3 4
extern long int __sysconf (int);
# 43 "/usr/include/time.h" 2 3 4
# 58 "/usr/include/time.h" 3 4


typedef __clock_t clock_t;



# 129 "/usr/include/time.h" 3 4


struct tm
{
  int tm_sec;
  int tm_min;
  int tm_hour;
  int tm_mday;
  int tm_mon;
  int tm_year;
  int tm_wday;
  int tm_yday;
  int tm_isdst;


  long int tm_gmtoff;
  const char *tm_zone;




};








struct itimerspec
  {
    struct timespec it_interval;
    struct timespec it_value;
  };


struct sigevent;
# 178 "/usr/include/time.h" 3 4



extern clock_t clock (void) ;


extern time_t time (time_t *__timer) ;


extern double difftime (time_t __time1, time_t __time0)
     __attribute__ ((__const__));


extern time_t mktime (struct tm *__tp) ;





extern size_t strftime (char *__restrict __s, size_t __maxsize,
                        const char *__restrict __format,
                        const struct tm *__restrict __tp) ;

# 226 "/usr/include/time.h" 3 4



extern struct tm *gmtime (const time_t *__timer) ;



extern struct tm *localtime (const time_t *__timer) ;





extern struct tm *gmtime_r (const time_t *__restrict __timer,
                            struct tm *__restrict __tp) ;



extern struct tm *localtime_r (const time_t *__restrict __timer,
                               struct tm *__restrict __tp) ;





extern char *asctime (const struct tm *__tp) ;


extern char *ctime (const time_t *__timer) ;







extern char *asctime_r (const struct tm *__restrict __tp,
                        char *__restrict __buf) ;


extern char *ctime_r (const time_t *__restrict __timer,
                      char *__restrict __buf) ;




extern char *__tzname[2];
extern int __daylight;
extern long int __timezone;




extern char *tzname[2];



extern void tzset (void) ;



extern int daylight;
extern long int timezone;





extern int stime (const time_t *__when) ;
# 309 "/usr/include/time.h" 3 4
extern time_t timegm (struct tm *__tp) ;


extern time_t timelocal (struct tm *__tp) ;


extern int dysize (int __year) __attribute__ ((__const__));





extern int nanosleep (const struct timespec *__requested_time,
                      struct timespec *__remaining) ;



extern int clock_getres (clockid_t __clock_id, struct timespec *__res) ;


extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) ;


extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
     ;
# 347 "/usr/include/time.h" 3 4
extern int timer_create (clockid_t __clock_id,
                         struct sigevent *__restrict __evp,
                         timer_t *__restrict __timerid) ;


extern int timer_delete (timer_t __timerid) ;


extern int timer_settime (timer_t __timerid, int __flags,
                          const struct itimerspec *__restrict __value,
                          struct itimerspec *__restrict __ovalue) ;


extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
     ;


extern int timer_getoverrun (timer_t __timerid) ;
# 399 "/usr/include/time.h" 3 4

# 25 "folder.h" 2

typedef struct _Folder Folder;
typedef struct _FolderClass FolderClass;
typedef struct _LocalFolder LocalFolder;
typedef struct _RemoteFolder RemoteFolder;



typedef struct _FolderItem FolderItem;

typedef struct _FolderUpdateData FolderUpdateData;
typedef struct _FolderItemUpdateData FolderItemUpdateData;
# 58 "folder.h"
typedef enum
{
        F_MH,
        F_MBOX,
        F_MAILDIR,
        F_IMAP,
        F_NEWS,
        F_UNKNOWN
} FolderType;

typedef enum
{
        F_NORMAL,
        F_INBOX,
        F_OUTBOX,
        F_DRAFT,
        F_QUEUE,
        F_TRASH
} SpecialFolderItemType;

typedef enum
{
        SORT_BY_NONE,
        SORT_BY_NUMBER,
        SORT_BY_SIZE,
        SORT_BY_DATE,
        SORT_BY_FROM,
        SORT_BY_SUBJECT,
        SORT_BY_SCORE,
        SORT_BY_LABEL,
        SORT_BY_MARK,
        SORT_BY_STATUS,
        SORT_BY_MIME,
        SORT_BY_TO,
        SORT_BY_LOCKED
} FolderSortKey;

typedef enum
{
        SORT_ASCENDING,
        SORT_DESCENDING
} FolderSortType;

typedef enum
{
        F_MOVE_OK = 0,
        F_MOVE_FAILED_DEST_IS_PARENT = -1,
        F_MOVE_FAILED_DEST_IS_CHILD = -2,
        F_MOVE_FAILED_DEST_OUTSIDE_MAILBOX = -3,
        F_MOVE_FAILED = -4,
} FolderItemMoveResult;

typedef enum
{
        FOLDER_TREE_CHANGED = 1 << 0,
        FOLDER_NEW_FOLDERITEM = 1 << 1,
        FOLDER_REMOVE_FOLDERITEM = 1 << 2,
} FolderUpdateFlags;

typedef enum
{
        F_ITEM_UPDATE_MSGCNT = 1 << 0,
        F_ITEM_UPDATE_CONTENT = 1 << 1,
} FolderItemUpdateFlags;

typedef void (*FolderUIFunc) (Folder *folder,
                                         FolderItem *item,
                                         gpointer data);
typedef void (*FolderDestroyNotify) (Folder *folder,
                                         FolderItem *item,
                                         gpointer data);
typedef void (*FolderItemFunc) (FolderItem *item,
                                         gpointer data);

# 1 "folder_item_prefs.h" 1
# 26 "folder_item_prefs.h"
typedef struct _FolderItemPrefs FolderItemPrefs;

# 1 "folder.h" 1
# 29 "folder_item_prefs.h" 2

struct _FolderItemPrefs {
        gchar * directory;

        gboolean sort_by_number;
        gboolean sort_by_size;
        gboolean sort_by_date;
        gboolean sort_by_from;
        gboolean sort_by_subject;
        gboolean sort_by_score;

        gboolean sort_descending;

        gboolean enable_thread;

        gint kill_score;
        gint important_score;

        GSList * scoring;
        GSList * processing;

        gboolean request_return_receipt;
        gboolean enable_default_to;
        gchar *default_to;
        gboolean enable_default_reply_to;
        gchar *default_reply_to;
        gboolean enable_simplify_subject;
        gchar *simplify_subject_regexp;
        gboolean enable_folder_chmod;
        gint folder_chmod;
        gboolean enable_default_account;
        gint default_account;

        gboolean enable_default_dictionary;
        gchar *default_dictionary;

        gboolean save_copy_to_folder;
        guint color;
};

void folder_item_prefs_read_config(FolderItem * item);
void folder_item_prefs_save_config(FolderItem * item);
void folder_item_prefs_set_config(FolderItem * item,
                                  int sort_type, gint sort_mode);
FolderItemPrefs *folder_item_prefs_new(void);
void folder_item_prefs_free(FolderItemPrefs * prefs);
gint folder_item_prefs_get_sort_type(FolderItem * item);
gint folder_item_prefs_get_sort_mode(FolderItem * item);
void folder_item_prefs_copy_prefs(FolderItem * src, FolderItem * dest);
# 133 "folder.h" 2

# 1 "prefs_account.h" 1
# 24 "prefs_account.h"
# 1 "../config.h" 1
# 25 "prefs_account.h" 2




typedef struct _PrefsAccount PrefsAccount;


# 1 "common/smtp.h" 1
# 24 "common/smtp.h"
# 1 "../config.h" 1
# 25 "common/smtp.h" 2




# 1 "common/session.h" 1
# 24 "common/session.h"
# 1 "../config.h" 1
# 25 "common/session.h" 2





# 1 "/usr/include/sys/time.h" 1 3 4
# 29 "/usr/include/sys/time.h" 3 4
# 1 "/usr/include/bits/time.h" 1 3 4
# 30 "/usr/include/sys/time.h" 2 3 4
# 39 "/usr/include/sys/time.h" 3 4

# 57 "/usr/include/sys/time.h" 3 4
struct timezone
  {
    int tz_minuteswest;
    int tz_dsttime;
  };

typedef struct timezone *__restrict __timezone_ptr_t;
# 73 "/usr/include/sys/time.h" 3 4
extern int gettimeofday (struct timeval *__restrict __tv,
                         __timezone_ptr_t __tz) ;




extern int settimeofday (const struct timeval *__tv,
                         const struct timezone *__tz) ;





extern int adjtime (const struct timeval *__delta,
                    struct timeval *__olddelta) ;




enum __itimer_which
  {

    ITIMER_REAL = 0,


    ITIMER_VIRTUAL = 1,



    ITIMER_PROF = 2

  };



struct itimerval
  {

    struct timeval it_interval;

    struct timeval it_value;
  };






typedef int __itimer_which_t;




extern int getitimer (__itimer_which_t __which,
                      struct itimerval *__value) ;




extern int setitimer (__itimer_which_t __which,
                      const struct itimerval *__restrict __new,
                      struct itimerval *__restrict __old) ;




extern int utimes (const char *__file, const struct timeval __tvp[2])
     ;



extern int lutimes (const char *__file, const struct timeval __tvp[2])
     ;


extern int futimes (int fd, const struct timeval __tvp[2]) ;
# 182 "/usr/include/sys/time.h" 3 4

# 31 "common/session.h" 2
# 1 "/usr/include/unistd.h" 1 3 4
# 28 "/usr/include/unistd.h" 3 4

# 175 "/usr/include/unistd.h" 3 4
# 1 "/usr/include/bits/posix_opt.h" 1 3 4
# 176 "/usr/include/unistd.h" 2 3 4
# 199 "/usr/include/unistd.h" 3 4
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 1 3 4
# 200 "/usr/include/unistd.h" 2 3 4
# 240 "/usr/include/unistd.h" 3 4
typedef __intptr_t intptr_t;






typedef __socklen_t socklen_t;
# 260 "/usr/include/unistd.h" 3 4
extern int access (const char *__name, int __type) ;
# 290 "/usr/include/unistd.h" 3 4
extern __off_t lseek (int __fd, __off_t __offset, int __whence) ;
# 306 "/usr/include/unistd.h" 3 4
extern int close (int __fd) ;



extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;


extern ssize_t write (int __fd, const void *__buf, size_t __n) ;
# 353 "/usr/include/unistd.h" 3 4
extern int pipe (int __pipedes[2]) ;
# 362 "/usr/include/unistd.h" 3 4
extern unsigned int alarm (unsigned int __seconds) ;
# 371 "/usr/include/unistd.h" 3 4
extern unsigned int sleep (unsigned int __seconds) ;






extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
     ;



extern int usleep (__useconds_t __useconds) ;





extern int pause (void) ;



extern int chown (const char *__file, __uid_t __owner, __gid_t __group)
     ;



extern int fchown (int __fd, __uid_t __owner, __gid_t __group) ;




extern int lchown (const char *__file, __uid_t __owner, __gid_t __group)
     ;




extern int chdir (const char *__path) ;



extern int fchdir (int __fd) ;
# 423 "/usr/include/unistd.h" 3 4
extern char *getcwd (char *__buf, size_t __size) ;
# 436 "/usr/include/unistd.h" 3 4
extern char *getwd (char *__buf) ;




extern int dup (int __fd) ;


extern int dup2 (int __fd, int __fd2) ;


extern char **__environ;







extern int execve (const char *__path, char *const __argv[],
                   char *const __envp[]) ;
# 467 "/usr/include/unistd.h" 3 4
extern int execv (const char *__path, char *const __argv[]) ;



extern int execle (const char *__path, const char *__arg, ...) ;



extern int execl (const char *__path, const char *__arg, ...) ;



extern int execvp (const char *__file, char *const __argv[]) ;




extern int execlp (const char *__file, const char *__arg, ...) ;




extern int nice (int __inc) ;




extern void _exit (int __status) __attribute__ ((__noreturn__));





# 1 "/usr/include/bits/confname.h" 1 3 4
# 25 "/usr/include/bits/confname.h" 3 4
enum
  {
    _PC_LINK_MAX,

    _PC_MAX_CANON,

    _PC_MAX_INPUT,

    _PC_NAME_MAX,

    _PC_PATH_MAX,

    _PC_PIPE_BUF,

    _PC_CHOWN_RESTRICTED,

    _PC_NO_TRUNC,

    _PC_VDISABLE,

    _PC_SYNC_IO,

    _PC_ASYNC_IO,

    _PC_PRIO_IO,

    _PC_SOCK_MAXBUF,

    _PC_FILESIZEBITS,

    _PC_REC_INCR_XFER_SIZE,

    _PC_REC_MAX_XFER_SIZE,

    _PC_REC_MIN_XFER_SIZE,

    _PC_REC_XFER_ALIGN,

    _PC_ALLOC_SIZE_MIN,

    _PC_SYMLINK_MAX

  };


enum
  {
    _SC_ARG_MAX,

    _SC_CHILD_MAX,

    _SC_CLK_TCK,

    _SC_NGROUPS_MAX,

    _SC_OPEN_MAX,

    _SC_STREAM_MAX,

    _SC_TZNAME_MAX,

    _SC_JOB_CONTROL,

    _SC_SAVED_IDS,

    _SC_REALTIME_SIGNALS,

    _SC_PRIORITY_SCHEDULING,

    _SC_TIMERS,

    _SC_ASYNCHRONOUS_IO,

    _SC_PRIORITIZED_IO,

    _SC_SYNCHRONIZED_IO,

    _SC_FSYNC,

    _SC_MAPPED_FILES,

    _SC_MEMLOCK,

    _SC_MEMLOCK_RANGE,

    _SC_MEMORY_PROTECTION,

    _SC_MESSAGE_PASSING,

    _SC_SEMAPHORES,

    _SC_SHARED_MEMORY_OBJECTS,

    _SC_AIO_LISTIO_MAX,

    _SC_AIO_MAX,

    _SC_AIO_PRIO_DELTA_MAX,

    _SC_DELAYTIMER_MAX,

    _SC_MQ_OPEN_MAX,

    _SC_MQ_PRIO_MAX,

    _SC_VERSION,

    _SC_PAGESIZE,


    _SC_RTSIG_MAX,

    _SC_SEM_NSEMS_MAX,

    _SC_SEM_VALUE_MAX,

    _SC_SIGQUEUE_MAX,

    _SC_TIMER_MAX,




    _SC_BC_BASE_MAX,

    _SC_BC_DIM_MAX,

    _SC_BC_SCALE_MAX,

    _SC_BC_STRING_MAX,

    _SC_COLL_WEIGHTS_MAX,

    _SC_EQUIV_CLASS_MAX,

    _SC_EXPR_NEST_MAX,

    _SC_LINE_MAX,

    _SC_RE_DUP_MAX,

    _SC_CHARCLASS_NAME_MAX,


    _SC_2_VERSION,

    _SC_2_C_BIND,

    _SC_2_C_DEV,

    _SC_2_FORT_DEV,

    _SC_2_FORT_RUN,

    _SC_2_SW_DEV,

    _SC_2_LOCALEDEF,


    _SC_PII,

    _SC_PII_XTI,

    _SC_PII_SOCKET,

    _SC_PII_INTERNET,

    _SC_PII_OSI,

    _SC_POLL,

    _SC_SELECT,

    _SC_UIO_MAXIOV,

    _SC_IOV_MAX = _SC_UIO_MAXIOV,

    _SC_PII_INTERNET_STREAM,

    _SC_PII_INTERNET_DGRAM,

    _SC_PII_OSI_COTS,

    _SC_PII_OSI_CLTS,

    _SC_PII_OSI_M,

    _SC_T_IOV_MAX,



    _SC_THREADS,

    _SC_THREAD_SAFE_FUNCTIONS,

    _SC_GETGR_R_SIZE_MAX,

    _SC_GETPW_R_SIZE_MAX,

    _SC_LOGIN_NAME_MAX,

    _SC_TTY_NAME_MAX,

    _SC_THREAD_DESTRUCTOR_ITERATIONS,

    _SC_THREAD_KEYS_MAX,

    _SC_THREAD_STACK_MIN,

    _SC_THREAD_THREADS_MAX,

    _SC_THREAD_ATTR_STACKADDR,

    _SC_THREAD_ATTR_STACKSIZE,

    _SC_THREAD_PRIORITY_SCHEDULING,

    _SC_THREAD_PRIO_INHERIT,

    _SC_THREAD_PRIO_PROTECT,

    _SC_THREAD_PROCESS_SHARED,


    _SC_NPROCESSORS_CONF,

    _SC_NPROCESSORS_ONLN,

    _SC_PHYS_PAGES,

    _SC_AVPHYS_PAGES,

    _SC_ATEXIT_MAX,

    _SC_PASS_MAX,


    _SC_XOPEN_VERSION,

    _SC_XOPEN_XCU_VERSION,

    _SC_XOPEN_UNIX,

    _SC_XOPEN_CRYPT,

    _SC_XOPEN_ENH_I18N,

    _SC_XOPEN_SHM,


    _SC_2_CHAR_TERM,

    _SC_2_C_VERSION,

    _SC_2_UPE,


    _SC_XOPEN_XPG2,

    _SC_XOPEN_XPG3,

    _SC_XOPEN_XPG4,


    _SC_CHAR_BIT,

    _SC_CHAR_MAX,

    _SC_CHAR_MIN,

    _SC_INT_MAX,

    _SC_INT_MIN,

    _SC_LONG_BIT,

    _SC_WORD_BIT,

    _SC_MB_LEN_MAX,

    _SC_NZERO,

    _SC_SSIZE_MAX,

    _SC_SCHAR_MAX,

    _SC_SCHAR_MIN,

    _SC_SHRT_MAX,

    _SC_SHRT_MIN,

    _SC_UCHAR_MAX,

    _SC_UINT_MAX,

    _SC_ULONG_MAX,

    _SC_USHRT_MAX,


    _SC_NL_ARGMAX,

    _SC_NL_LANGMAX,

    _SC_NL_MSGMAX,

    _SC_NL_NMAX,

    _SC_NL_SETMAX,

    _SC_NL_TEXTMAX,


    _SC_XBS5_ILP32_OFF32,

    _SC_XBS5_ILP32_OFFBIG,

    _SC_XBS5_LP64_OFF64,

    _SC_XBS5_LPBIG_OFFBIG,


    _SC_XOPEN_LEGACY,

    _SC_XOPEN_REALTIME,

    _SC_XOPEN_REALTIME_THREADS,


    _SC_ADVISORY_INFO,

    _SC_BARRIERS,

    _SC_BASE,

    _SC_C_LANG_SUPPORT,

    _SC_C_LANG_SUPPORT_R,

    _SC_CLOCK_SELECTION,

    _SC_CPUTIME,

    _SC_THREAD_CPUTIME,

    _SC_DEVICE_IO,

    _SC_DEVICE_SPECIFIC,

    _SC_DEVICE_SPECIFIC_R,

    _SC_FD_MGMT,

    _SC_FIFO,

    _SC_PIPE,

    _SC_FILE_ATTRIBUTES,

    _SC_FILE_LOCKING,

    _SC_FILE_SYSTEM,

    _SC_MONOTONIC_CLOCK,

    _SC_MULTI_PROCESS,

    _SC_SINGLE_PROCESS,

    _SC_NETWORKING,

    _SC_READER_WRITER_LOCKS,

    _SC_SPIN_LOCKS,

    _SC_REGEXP,

    _SC_REGEX_VERSION,

    _SC_SHELL,

    _SC_SIGNALS,

    _SC_SPAWN,

    _SC_SPORADIC_SERVER,

    _SC_THREAD_SPORADIC_SERVER,

    _SC_SYSTEM_DATABASE,

    _SC_SYSTEM_DATABASE_R,

    _SC_TIMEOUTS,

    _SC_TYPED_MEMORY_OBJECTS,

    _SC_USER_GROUPS,

    _SC_USER_GROUPS_R,

    _SC_2_PBS,

    _SC_2_PBS_ACCOUNTING,

    _SC_2_PBS_LOCATE,

    _SC_2_PBS_MESSAGE,

    _SC_2_PBS_TRACK,

    _SC_SYMLOOP_MAX,

    _SC_STREAMS,

    _SC_2_PBS_CHECKPOINT,


    _SC_V6_ILP32_OFF32,

    _SC_V6_ILP32_OFFBIG,

    _SC_V6_LP64_OFF64,

    _SC_V6_LPBIG_OFFBIG,


    _SC_HOST_NAME_MAX,

    _SC_TRACE,

    _SC_TRACE_EVENT_FILTER,

    _SC_TRACE_INHERIT,

    _SC_TRACE_LOG

  };





enum
  {
    _CS_PATH,
# 563 "/usr/include/bits/confname.h" 3 4
    _CS_V6_WIDTH_RESTRICTED_ENVS,


    _CS_GNU_LIBC_VERSION,

    _CS_GNU_LIBPTHREAD_VERSION

  };
# 501 "/usr/include/unistd.h" 2 3 4


extern long int pathconf (const char *__path, int __name) ;


extern long int fpathconf (int __fd, int __name) ;


extern long int sysconf (int __name) __attribute__ ((__const__));



extern size_t confstr (int __name, char *__buf, size_t __len) ;




extern __pid_t getpid (void) ;


extern __pid_t getppid (void) ;




extern __pid_t getpgrp (void) ;
# 536 "/usr/include/unistd.h" 3 4
extern __pid_t __getpgid (__pid_t __pid) ;
# 545 "/usr/include/unistd.h" 3 4
extern int setpgid (__pid_t __pid, __pid_t __pgid) ;
# 562 "/usr/include/unistd.h" 3 4
extern int setpgrp (void) ;
# 580 "/usr/include/unistd.h" 3 4
extern __pid_t setsid (void) ;







extern __uid_t getuid (void) ;


extern __uid_t geteuid (void) ;


extern __gid_t getgid (void) ;


extern __gid_t getegid (void) ;




extern int getgroups (int __size, __gid_t __list[]) ;
# 613 "/usr/include/unistd.h" 3 4
extern int setuid (__uid_t __uid) ;




extern int setreuid (__uid_t __ruid, __uid_t __euid) ;




extern int seteuid (__uid_t __uid) ;






extern int setgid (__gid_t __gid) ;




extern int setregid (__gid_t __rgid, __gid_t __egid) ;




extern int setegid (__gid_t __gid) ;
# 665 "/usr/include/unistd.h" 3 4
extern __pid_t fork (void) ;






extern __pid_t vfork (void) ;





extern char *ttyname (int __fd) ;



extern int ttyname_r (int __fd, char *__buf, size_t __buflen) ;



extern int isatty (int __fd) ;





extern int ttyslot (void) ;




extern int link (const char *__from, const char *__to) ;



extern int symlink (const char *__from, const char *__to) ;




extern int readlink (const char *__restrict __path, char *__restrict __buf,
                     size_t __len) ;



extern int unlink (const char *__name) ;


extern int rmdir (const char *__path) ;



extern __pid_t tcgetpgrp (int __fd) ;


extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) ;



extern char *getlogin (void) ;
# 735 "/usr/include/unistd.h" 3 4
extern int setlogin (const char *__name) ;
# 744 "/usr/include/unistd.h" 3 4
# 1 "/usr/include/getopt.h" 1 3 4
# 47 "/usr/include/getopt.h" 3 4
extern char *optarg;
# 61 "/usr/include/getopt.h" 3 4
extern int optind;




extern int opterr;



extern int optopt;
# 145 "/usr/include/getopt.h" 3 4
extern int getopt (int ___argc, char *const *___argv, const char *__shortopts);
# 745 "/usr/include/unistd.h" 2 3 4







extern int gethostname (char *__name, size_t __len) ;






extern int sethostname (const char *__name, size_t __len) ;



extern int sethostid (long int __id) ;





extern int getdomainname (char *__name, size_t __len) ;
extern int setdomainname (const char *__name, size_t __len) ;





extern int vhangup (void) ;


extern int revoke (const char *__file) ;







extern int profil (unsigned short int *__sample_buffer, size_t __size,
                   size_t __offset, unsigned int __scale) ;





extern int acct (const char *__name) ;



extern char *getusershell (void) ;
extern void endusershell (void) ;
extern void setusershell (void) ;





extern int daemon (int __nochdir, int __noclose) ;






extern int chroot (const char *__path) ;



extern char *getpass (const char *__prompt) ;





extern int fsync (int __fd) ;






extern long int gethostid (void) ;


extern void sync (void) ;




extern int getpagesize (void) __attribute__ ((__const__));




extern int truncate (const char *__file, __off_t __length) ;
# 859 "/usr/include/unistd.h" 3 4
extern int ftruncate (int __fd, __off_t __length) ;
# 875 "/usr/include/unistd.h" 3 4
extern int getdtablesize (void) ;
# 884 "/usr/include/unistd.h" 3 4
extern int brk (void *__addr) ;





extern void *sbrk (intptr_t __delta) ;
# 905 "/usr/include/unistd.h" 3 4
extern long int syscall (long int __sysno, ...) ;
# 925 "/usr/include/unistd.h" 3 4
extern int lockf (int __fd, int __cmd, __off_t __len) ;
# 956 "/usr/include/unistd.h" 3 4
extern int fdatasync (int __fildes) ;
# 1001 "/usr/include/unistd.h" 3 4
extern int pthread_atfork (void (*__prepare) (void),
                           void (*__parent) (void),
                           void (*__child) (void)) ;



# 32 "common/session.h" 2

# 1 "common/socket.h" 1
# 24 "common/socket.h"
# 1 "../config.h" 1
# 25 "common/socket.h" 2



# 1 "/usr/include/netdb.h" 1 3 4
# 28 "/usr/include/netdb.h" 3 4
# 1 "/usr/include/netinet/in.h" 1 3 4
# 23 "/usr/include/netinet/in.h" 3 4
# 1 "/usr/include/stdint.h" 1 3 4
# 28 "/usr/include/stdint.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 29 "/usr/include/stdint.h" 2 3 4
# 49 "/usr/include/stdint.h" 3 4
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;

typedef unsigned int uint32_t;





__extension__
typedef unsigned long long int uint64_t;






typedef signed char int_least8_t;
typedef short int int_least16_t;
typedef int int_least32_t;



__extension__
typedef long long int int_least64_t;



typedef unsigned char uint_least8_t;
typedef unsigned short int uint_least16_t;
typedef unsigned int uint_least32_t;



__extension__
typedef unsigned long long int uint_least64_t;






typedef signed char int_fast8_t;





typedef int int_fast16_t;
typedef int int_fast32_t;
__extension__
typedef long long int int_fast64_t;



typedef unsigned char uint_fast8_t;





typedef unsigned int uint_fast16_t;
typedef unsigned int uint_fast32_t;
__extension__
typedef unsigned long long int uint_fast64_t;
# 129 "/usr/include/stdint.h" 3 4
typedef unsigned int uintptr_t;
# 138 "/usr/include/stdint.h" 3 4
__extension__
typedef long long int intmax_t;
__extension__
typedef unsigned long long int uintmax_t;
# 24 "/usr/include/netinet/in.h" 2 3 4






enum
  {
    IPPROTO_IP = 0,

    IPPROTO_HOPOPTS = 0,

    IPPROTO_ICMP = 1,

    IPPROTO_IGMP = 2,

    IPPROTO_IPIP = 4,

    IPPROTO_TCP = 6,

    IPPROTO_EGP = 8,

    IPPROTO_PUP = 12,

    IPPROTO_UDP = 17,

    IPPROTO_IDP = 22,

    IPPROTO_TP = 29,

    IPPROTO_IPV6 = 41,

    IPPROTO_ROUTING = 43,

    IPPROTO_FRAGMENT = 44,

    IPPROTO_RSVP = 46,

    IPPROTO_GRE = 47,

    IPPROTO_ESP = 50,

    IPPROTO_AH = 51,

    IPPROTO_ICMPV6 = 58,

    IPPROTO_NONE = 59,

    IPPROTO_DSTOPTS = 60,

    IPPROTO_MTP = 92,

    IPPROTO_ENCAP = 98,

    IPPROTO_PIM = 103,

    IPPROTO_COMP = 108,

    IPPROTO_RAW = 255,

    IPPROTO_MAX
  };



typedef uint16_t in_port_t;


enum
  {
    IPPORT_ECHO = 7,
    IPPORT_DISCARD = 9,
    IPPORT_SYSTAT = 11,
    IPPORT_DAYTIME = 13,
    IPPORT_NETSTAT = 15,
    IPPORT_FTP = 21,
    IPPORT_TELNET = 23,
    IPPORT_SMTP = 25,
    IPPORT_TIMESERVER = 37,
    IPPORT_NAMESERVER = 42,
    IPPORT_WHOIS = 43,
    IPPORT_MTP = 57,

    IPPORT_TFTP = 69,
    IPPORT_RJE = 77,
    IPPORT_FINGER = 79,
    IPPORT_TTYLINK = 87,
    IPPORT_SUPDUP = 95,


    IPPORT_EXECSERVER = 512,
    IPPORT_LOGINSERVER = 513,
    IPPORT_CMDSERVER = 514,
    IPPORT_EFSSERVER = 520,


    IPPORT_BIFFUDP = 512,
    IPPORT_WHOSERVER = 513,
    IPPORT_ROUTESERVER = 520,


    IPPORT_RESERVED = 1024,


    IPPORT_USERRESERVED = 5000
  };



typedef uint32_t in_addr_t;
struct in_addr
  {
    in_addr_t s_addr;
  };
# 190 "/usr/include/netinet/in.h" 3 4
struct in6_addr
  {
    union
      {
        uint8_t u6_addr8[16];
        uint16_t u6_addr16[8];
        uint32_t u6_addr32[4];
      } in6_u;



  };

extern const struct in6_addr in6addr_any;
extern const struct in6_addr in6addr_loopback;







# 1 "/usr/include/bits/socket.h" 1 3 4
# 29 "/usr/include/bits/socket.h" 3 4
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 1 3 4
# 30 "/usr/include/bits/socket.h" 2 3 4

# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/limits.h" 1 3 4
# 32 "/usr/include/bits/socket.h" 2 3 4
# 41 "/usr/include/bits/socket.h" 3 4
enum __socket_type
{
  SOCK_STREAM = 1,


  SOCK_DGRAM = 2,


  SOCK_RAW = 3,

  SOCK_RDM = 4,

  SOCK_SEQPACKET = 5,


  SOCK_PACKET = 10



};
# 142 "/usr/include/bits/socket.h" 3 4
# 1 "/usr/include/bits/sockaddr.h" 1 3 4
# 29 "/usr/include/bits/sockaddr.h" 3 4
typedef unsigned short int sa_family_t;
# 143 "/usr/include/bits/socket.h" 2 3 4


struct sockaddr
  {
    sa_family_t sa_family;
    char sa_data[14];
  };
# 162 "/usr/include/bits/socket.h" 3 4
struct sockaddr_storage
  {
    sa_family_t ss_family;
    __uint32_t __ss_align;
    char __ss_padding[(128 - (2 * sizeof (__uint32_t)))];
  };



enum
  {
    MSG_OOB = 0x01,

    MSG_PEEK = 0x02,

    MSG_DONTROUTE = 0x04,






    MSG_CTRUNC = 0x08,

    MSG_PROXY = 0x10,

    MSG_TRUNC = 0x20,

    MSG_DONTWAIT = 0x40,

    MSG_EOR = 0x80,

    MSG_WAITALL = 0x100,

    MSG_FIN = 0x200,

    MSG_SYN = 0x400,

    MSG_CONFIRM = 0x800,

    MSG_RST = 0x1000,

    MSG_ERRQUEUE = 0x2000,

    MSG_NOSIGNAL = 0x4000,

    MSG_MORE = 0x8000

  };




struct msghdr
  {
    void *msg_name;
    socklen_t msg_namelen;

    struct iovec *msg_iov;
    size_t msg_iovlen;

    void *msg_control;
    size_t msg_controllen;

    int msg_flags;
  };


struct cmsghdr
  {
    size_t cmsg_len;

    int cmsg_level;
    int cmsg_type;

    __extension__ unsigned char __cmsg_data [];

  };
# 257 "/usr/include/bits/socket.h" 3 4
extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
                                      struct cmsghdr *__cmsg) ;
# 284 "/usr/include/bits/socket.h" 3 4
enum
  {
    SCM_RIGHTS = 0x01,


    SCM_CREDENTIALS = 0x02,


    __SCM_CONNECT = 0x03
  };



struct ucred
{
  pid_t pid;
  uid_t uid;
  gid_t gid;
};


# 1 "/usr/include/asm/socket.h" 1 3 4



# 1 "/usr/include/asm/sockios.h" 1 3 4
# 5 "/usr/include/asm/socket.h" 2 3 4
# 306 "/usr/include/bits/socket.h" 2 3 4



struct linger
  {
    int l_onoff;
    int l_linger;
  };
# 213 "/usr/include/netinet/in.h" 2 3 4



struct sockaddr_in
  {
    sa_family_t sin_family;
    in_port_t sin_port;
    struct in_addr sin_addr;


    unsigned char sin_zero[sizeof (struct sockaddr) -
                           (sizeof (unsigned short int)) -
                           sizeof (in_port_t) -
                           sizeof (struct in_addr)];
  };


struct sockaddr_in6
  {
    sa_family_t sin6_family;
    in_port_t sin6_port;
    uint32_t sin6_flowinfo;
    struct in6_addr sin6_addr;
    uint32_t sin6_scope_id;
  };


struct ipv6_mreq
  {

    struct in6_addr ipv6mr_multiaddr;


    unsigned int ipv6mr_interface;
  };


# 1 "/usr/include/bits/in.h" 1 3 4
# 66 "/usr/include/bits/in.h" 3 4
struct ip_opts
  {
    struct in_addr ip_dst;
    char ip_opts[40];
  };


struct ip_mreq
  {
    struct in_addr imr_multiaddr;
    struct in_addr imr_interface;
  };


struct ip_mreqn
  {
    struct in_addr imr_multiaddr;
    struct in_addr imr_address;
    int imr_ifindex;
  };


struct in_pktinfo
  {
    int ipi_ifindex;
    struct in_addr ipi_spec_dst;
    struct in_addr ipi_addr;
  };
# 251 "/usr/include/netinet/in.h" 2 3 4
# 259 "/usr/include/netinet/in.h" 3 4
extern uint32_t ntohl (uint32_t __netlong) __attribute__ ((__const__));
extern uint16_t ntohs (uint16_t __netshort)
     __attribute__ ((__const__));
extern uint32_t htonl (uint32_t __hostlong)
     __attribute__ ((__const__));
extern uint16_t htons (uint16_t __hostshort)
     __attribute__ ((__const__));




# 1 "/usr/include/bits/byteswap.h" 1 3 4
# 271 "/usr/include/netinet/in.h" 2 3 4
# 333 "/usr/include/netinet/in.h" 3 4
extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) ;


extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
     ;
# 361 "/usr/include/netinet/in.h" 3 4
struct in6_pktinfo
  {
    struct in6_addr ipi6_addr;
    unsigned int ipi6_ifindex;
  };


# 29 "/usr/include/netdb.h" 2 3 4




# 1 "/usr/include/rpc/netdb.h" 1 3 4
# 42 "/usr/include/rpc/netdb.h" 3 4
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 1 3 4
# 43 "/usr/include/rpc/netdb.h" 2 3 4



struct rpcent
{
  char *r_name;
  char **r_aliases;
  int r_number;
};

extern void setrpcent (int __stayopen) ;
extern void endrpcent (void) ;
extern struct rpcent *getrpcbyname (const char *__name) ;
extern struct rpcent *getrpcbynumber (int __number) ;
extern struct rpcent *getrpcent (void) ;


extern int getrpcbyname_r (const char *__name, struct rpcent *__result_buf,
                           char *__buffer, size_t __buflen,
                           struct rpcent **__result) ;

extern int getrpcbynumber_r (int __number, struct rpcent *__result_buf,
                             char *__buffer, size_t __buflen,
                             struct rpcent **__result) ;

extern int getrpcent_r (struct rpcent *__result_buf, char *__buffer,
                        size_t __buflen, struct rpcent **__result) ;



# 34 "/usr/include/netdb.h" 2 3 4
# 43 "/usr/include/netdb.h" 3 4
# 1 "/usr/include/bits/netdb.h" 1 3 4
# 27 "/usr/include/bits/netdb.h" 3 4
struct netent
{
  char *n_name;
  char **n_aliases;
  int n_addrtype;
  uint32_t n_net;
};
# 44 "/usr/include/netdb.h" 2 3 4
# 54 "/usr/include/netdb.h" 3 4







extern int *__h_errno_location (void) __attribute__ ((__const__));
# 88 "/usr/include/netdb.h" 3 4
extern void herror (const char *__str) ;


extern const char *hstrerror (int __err_num) ;




struct hostent
{
  char *h_name;
  char **h_aliases;
  int h_addrtype;
  int h_length;
  char **h_addr_list;

};



extern void sethostent (int __stay_open) ;


extern void endhostent (void) ;



extern struct hostent *gethostent (void) ;



extern struct hostent *gethostbyaddr (const void *__addr, __socklen_t __len,
                                      int __type) ;


extern struct hostent *gethostbyname (const char *__name) ;





extern struct hostent *gethostbyname2 (const char *__name, int __af) ;






extern int gethostent_r (struct hostent *__restrict __result_buf,
                         char *__restrict __buf, size_t __buflen,
                         struct hostent **__restrict __result,
                         int *__restrict __h_errnop) ;

extern int gethostbyaddr_r (const void *__restrict __addr, __socklen_t __len,
                            int __type,
                            struct hostent *__restrict __result_buf,
                            char *__restrict __buf, size_t __buflen,
                            struct hostent **__restrict __result,
                            int *__restrict __h_errnop) ;

extern int gethostbyname_r (const char *__restrict __name,
                            struct hostent *__restrict __result_buf,
                            char *__restrict __buf, size_t __buflen,
                            struct hostent **__restrict __result,
                            int *__restrict __h_errnop) ;

extern int gethostbyname2_r (const char *__restrict __name, int __af,
                             struct hostent *__restrict __result_buf,
                             char *__restrict __buf, size_t __buflen,
                             struct hostent **__restrict __result,
                             int *__restrict __h_errnop) ;





extern void setnetent (int __stay_open) ;


extern void endnetent (void) ;



extern struct netent *getnetent (void) ;



extern struct netent *getnetbyaddr (uint32_t __net, int __type)
     ;


extern struct netent *getnetbyname (const char *__name) ;







extern int getnetent_r (struct netent *__restrict __result_buf,
                        char *__restrict __buf, size_t __buflen,
                        struct netent **__restrict __result,
                        int *__restrict __h_errnop) ;

extern int getnetbyaddr_r (uint32_t __net, int __type,
                           struct netent *__restrict __result_buf,
                           char *__restrict __buf, size_t __buflen,
                           struct netent **__restrict __result,
                           int *__restrict __h_errnop) ;

extern int getnetbyname_r (const char *__restrict __name,
                           struct netent *__restrict __result_buf,
                           char *__restrict __buf, size_t __buflen,
                           struct netent **__restrict __result,
                           int *__restrict __h_errnop) ;




struct servent
{
  char *s_name;
  char **s_aliases;
  int s_port;
  char *s_proto;
};



extern void setservent (int __stay_open) ;


extern void endservent (void) ;



extern struct servent *getservent (void) ;



extern struct servent *getservbyname (const char *__name,
                                      const char *__proto) ;



extern struct servent *getservbyport (int __port, const char *__proto)
     ;





extern int getservent_r (struct servent *__restrict __result_buf,
                         char *__restrict __buf, size_t __buflen,
                         struct servent **__restrict __result) ;

extern int getservbyname_r (const char *__restrict __name,
                            const char *__restrict __proto,
                            struct servent *__restrict __result_buf,
                            char *__restrict __buf, size_t __buflen,
                            struct servent **__restrict __result) ;

extern int getservbyport_r (int __port, const char *__restrict __proto,
                            struct servent *__restrict __result_buf,
                            char *__restrict __buf, size_t __buflen,
                            struct servent **__restrict __result) ;




struct protoent
{
  char *p_name;
  char **p_aliases;
  int p_proto;
};



extern void setprotoent (int __stay_open) ;


extern void endprotoent (void) ;



extern struct protoent *getprotoent (void) ;


extern struct protoent *getprotobyname (const char *__name) ;


extern struct protoent *getprotobynumber (int __proto) ;





extern int getprotoent_r (struct protoent *__restrict __result_buf,
                          char *__restrict __buf, size_t __buflen,
                          struct protoent **__restrict __result) ;

extern int getprotobyname_r (const char *__restrict __name,
                             struct protoent *__restrict __result_buf,
                             char *__restrict __buf, size_t __buflen,
                             struct protoent **__restrict __result) ;

extern int getprotobynumber_r (int __proto,
                               struct protoent *__restrict __result_buf,
                               char *__restrict __buf, size_t __buflen,
                               struct protoent **__restrict __result) ;




extern int setnetgrent (const char *__netgroup) ;


extern void endnetgrent (void) ;



extern int getnetgrent (char **__restrict __hostp,
                        char **__restrict __userp,
                        char **__restrict __domainp) ;



extern int innetgr (const char *__netgroup, const char *__host,
                    const char *__user, const char *domain) ;


extern int getnetgrent_r (char **__restrict __hostp,
                          char **__restrict __userp,
                          char **__restrict __domainp,
                          char *__restrict __buffer, size_t __buflen) ;
# 334 "/usr/include/netdb.h" 3 4
extern int rcmd (char **__restrict __ahost, unsigned short int __rport,
                 const char *__restrict __locuser,
                 const char *__restrict __remuser,
                 const char *__restrict __cmd, int *__restrict __fd2p)
     ;



extern int rcmd_af (char **__restrict __ahost, unsigned short int __rport,
                    const char *__restrict __locuser,
                    const char *__restrict __remuser,
                    const char *__restrict __cmd, int *__restrict __fd2p,
                    sa_family_t __af) ;






extern int rexec (char **__restrict __ahost, int __rport,
                  const char *__restrict __name,
                  const char *__restrict __pass,
                  const char *__restrict __cmd, int *__restrict __fd2p)
     ;



extern int rexec_af (char **__restrict __ahost, int __rport,
                     const char *__restrict __name,
                     const char *__restrict __pass,
                     const char *__restrict __cmd, int *__restrict __fd2p,
                     sa_family_t __af) ;




extern int ruserok (const char *__rhost, int __suser,
                    const char *__remuser, const char *__locuser) ;



extern int ruserok_af (const char *__rhost, int __suser,
                       const char *__remuser, const char *__locuser,
                       sa_family_t __af) ;




extern int rresvport (int *__alport) ;



extern int rresvport_af (int *__alport, sa_family_t __af) ;






struct addrinfo
{
  int ai_flags;
  int ai_family;
  int ai_socktype;
  int ai_protocol;
  socklen_t ai_addrlen;
  struct sockaddr *ai_addr;
  char *ai_canonname;
  struct addrinfo *ai_next;
};
# 459 "/usr/include/netdb.h" 3 4
extern int getaddrinfo (const char *__restrict __name,
                        const char *__restrict __service,
                        const struct addrinfo *__restrict __req,
                        struct addrinfo **__restrict __pai) ;


extern void freeaddrinfo (struct addrinfo *__ai) ;


extern const char *gai_strerror (int __ecode) ;


extern int getnameinfo (const struct sockaddr *__restrict __sa,
                        socklen_t __salen, char *__restrict __host,
                        socklen_t __hostlen, char *__restrict __serv,
                        socklen_t __servlen, unsigned int __flags) ;
# 498 "/usr/include/netdb.h" 3 4

# 29 "common/socket.h" 2

typedef struct _SockInfo SockInfo;





typedef enum
{
        CONN_READY,
        CONN_LOOKUPSUCCESS,
        CONN_ESTABLISHED,
        CONN_LOOKUPFAILED,
        CONN_FAILED,
        CONN_DISCONNECTED,
} ConnectionState;

typedef gint (*SockConnectFunc) (SockInfo *sock,
                                         gpointer data);
typedef gboolean (*SockFunc) (SockInfo *sock,
                                         GIOCondition condition,
                                         gpointer data);

struct _SockInfo
{
        gint sock;



        GIOChannel *sock_ch;

        gchar *hostname;
        gushort port;
        ConnectionState state;
        gpointer data;

        SockFunc callback;
        GIOCondition condition;
};

gint sock_set_io_timeout (guint sec);

gint sock_set_nonblocking_mode (SockInfo *sock, gboolean nonblock);
gboolean sock_is_nonblocking_mode (SockInfo *sock);

guint sock_add_watch (SockInfo *sock, GIOCondition condition,
                                         SockFunc func, gpointer data);

struct hostent *my_gethostbyname (const gchar *hostname);

SockInfo *sock_connect (const gchar *hostname, gushort port);
SockInfo *sock_connect_cmd (const gchar *hostname, const gchar *tunnelcmd);
gint sock_connect_async (const gchar *hostname, gushort port,
                                         SockConnectFunc func, gpointer data);
gint sock_connect_async_cancel (gint id);


gint sock_printf (SockInfo *sock, const gchar *format, ...)
                         __attribute__((format (printf, 2, 3)));
gint sock_read (SockInfo *sock, gchar *buf, gint len);
gint sock_write (SockInfo *sock, const gchar *buf, gint len);
gint sock_write_all (SockInfo *sock, const gchar *buf, gint len);
gint sock_gets (SockInfo *sock, gchar *buf, gint len);
gchar *sock_getline (SockInfo *sock);
gint sock_puts (SockInfo *sock, const gchar *buf);
gint sock_peek (SockInfo *sock, gchar *buf, gint len);
gint sock_close (SockInfo *sock);


gint fd_connect_unix (const gchar *path);
gint fd_open_unix (const gchar *path);
gint fd_accept (gint sock);

gint fd_read (gint sock, gchar *buf, gint len);
gint fd_write (gint sock, const gchar *buf, gint len);
gint fd_write_all (gint sock, const gchar *buf, gint len);
gint fd_gets (gint sock, gchar *buf, gint len);
gint fd_getline (gint sock, gchar **str);
gint fd_close (gint sock);
# 34 "common/session.h" 2



typedef struct _Session Session;



typedef enum {
        SESSION_UNKNOWN,
        SESSION_IMAP,
        SESSION_NEWS,
        SESSION_SMTP,
        SESSION_POP3
} SessionType;

typedef enum {
        SESSION_READY,
        SESSION_SEND,
        SESSION_RECV,
        SESSION_EOF,
        SESSION_ERROR,
        SESSION_DISCONNECTED
} SessionState;

typedef enum
{
        SESSION_MSG_NORMAL,
        SESSION_MSG_SEND_DATA,
        SESSION_MSG_RECV_DATA,
        SESSION_MSG_CONTROL,
        SESSION_MSG_ERROR,
        SESSION_MSG_UNKNOWN
} SessionMsgType;

typedef gint (*RecvMsgNotify) (Session *session,
                                                 const gchar *msg,
                                                 gpointer user_data);
typedef gint (*RecvDataProgressiveNotify) (Session *session,
                                                 guint cur_len,
                                                 guint total_len,
                                                 gpointer user_data);
typedef gint (*RecvDataNotify) (Session *session,
                                                 guint len,
                                                 gpointer user_data);
typedef gint (*SendDataProgressiveNotify) (Session *session,
                                                 guint cur_len,
                                                 guint total_len,
                                                 gpointer user_data);
typedef gint (*SendDataNotify) (Session *session,
                                                 guint len,
                                                 gpointer user_data);

struct _Session
{
        SessionType type;

        SockInfo *sock;

        gchar *server;
        gushort port;





        gboolean nonblocking;

        SessionState state;

        time_t last_access_time;
        struct timeval tv_prev;

        gint conn_id;

        gint io_tag;

        gchar read_buf[4096];
        gchar *read_buf_p;
        gint read_buf_len;

        GString *read_msg_buf;
        GByteArray *read_data_buf;
        gchar *read_data_terminator;

        gchar *write_buf;
        gchar *write_buf_p;
        gint write_buf_len;

        gpointer data;


        gint (*recv_msg) (Session *session,
                                         const gchar *msg);

        gint (*send_data_finished) (Session *session,
                                         guint len);
        gint (*recv_data_finished) (Session *session,
                                         guchar *data,
                                         guint len);

        void (*destroy) (Session *session);


        RecvMsgNotify recv_msg_notify;
        RecvDataProgressiveNotify recv_data_progressive_notify;
        RecvDataNotify recv_data_notify;
        SendDataProgressiveNotify send_data_progressive_notify;
        SendDataNotify send_data_notify;

        gpointer recv_msg_notify_data;
        gpointer recv_data_progressive_notify_data;
        gpointer recv_data_notify_data;
        gpointer send_data_progressive_notify_data;
        gpointer send_data_notify_data;
};

void session_init (Session *session);
gint session_connect (Session *session,
                                 const gchar *server,
                                 gushort port);
gint session_disconnect (Session *session);
void session_destroy (Session *session);
gboolean session_is_connected (Session *session);

void session_set_recv_message_notify (Session *session,
                                         RecvMsgNotify notify_func,
                                         gpointer data);
void session_set_recv_data_progressive_notify
                                        (Session *session,
                                         RecvDataProgressiveNotify notify_func,
                                         gpointer data);
void session_set_recv_data_notify (Session *session,
                                         RecvDataNotify notify_func,
                                         gpointer data);
void session_set_send_data_progressive_notify
                                        (Session *session,
                                         SendDataProgressiveNotify notify_func,
                                         gpointer data);
void session_set_send_data_notify (Session *session,
                                         SendDataNotify notify_func,
                                         gpointer data);





gint session_send_msg (Session *session,
                         SessionMsgType type,
                         const gchar *msg);
gint session_recv_msg (Session *session);
gint session_send_data (Session *session,
                         const guchar *data,
                         guint size);
gint session_recv_data (Session *session,
                         guint size,
                         const gchar *terminator);
# 30 "common/smtp.h" 2

typedef struct _SMTPSession SMTPSession;





typedef enum
{
        SM_OK = 0,
        SM_ERROR = 128,
        SM_UNRECOVERABLE = 129,
        SM_AUTHFAIL = 130
} SMTPErrorValue;

typedef enum
{
        ESMTP_8BITMIME = 1 << 0,
        ESMTP_SIZE = 1 << 1,
        ESMTP_ETRN = 1 << 2
} ESMTPFlag;

typedef enum
{
        SMTPAUTH_LOGIN = 1 << 0,
        SMTPAUTH_CRAM_MD5 = 1 << 1,
        SMTPAUTH_DIGEST_MD5 = 1 << 2,
        SMTPAUTH_TLS_AVAILABLE = 1 << 3
} SMTPAuthType;

typedef enum
{
        SMTP_READY,
        SMTP_CONNECTED,
        SMTP_HELO,
        SMTP_EHLO,
        SMTP_STARTTLS,
        SMTP_FROM,
        SMTP_AUTH,
        SMTP_AUTH_LOGIN_USER,
        SMTP_AUTH_LOGIN_PASS,
        SMTP_AUTH_CRAM_MD5,
        SMTP_RCPT,
        SMTP_DATA,
        SMTP_SEND_DATA,
        SMTP_EOM,
        SMTP_RSET,
        SMTP_QUIT,
        SMTP_ERROR,
        SMTP_DISCONNECTED,

        N_SMTP_PHASE
} SMTPState;

struct _SMTPSession
{
        Session session;

        SMTPState state;





        gchar *hostname;

        gchar *user;
        gchar *pass;

        gchar *from;
        GSList *to_list;
        GSList *cur_to;

        guchar *send_data;
        guint send_data_len;

        SMTPAuthType avail_auth_type;
        SMTPAuthType forced_auth_type;
        SMTPAuthType auth_type;

        SMTPErrorValue error_val;
        gchar *error_msg;
};

Session *smtp_session_new (void);
# 33 "prefs_account.h" 2





typedef enum {
        A_POP3,
        A_APOP,
        A_RPOP,
        A_IMAP4,
        A_NNTP,
        A_LOCAL
} RecvProtocol;

typedef enum {
        SIG_FILE,
        SIG_COMMAND,
        SIG_DIRECT
} SigType;
# 67 "prefs_account.h"
struct _PrefsAccount
{
        gchar *account_name;


        gchar *name;
        gchar *address;
        gchar *organization;


        RecvProtocol protocol;
        gchar *recv_server;
        gchar *smtp_server;
        gchar *nntp_server;
        gboolean use_nntp_auth;
        gboolean use_nntp_auth_onconnect;
        gchar *userid;
        gchar *passwd;

        gchar * local_mbox;
        gboolean use_mail_command;
        gchar * mail_command;
# 99 "prefs_account.h"
        gchar *tmp_pass;


        gboolean rmmail;
        gint msg_leave_time;
        gboolean getall;
        gboolean recv_at_getall;
        gboolean sd_rmmail_on_download;
        gboolean sd_filter_on_recv;
        gboolean enable_size_limit;
        gint size_limit;
        gboolean filter_on_recv;
        gchar *inbox;
        gint max_articles;

        gint imap_auth_type;


        gboolean add_date;
        gboolean gen_msgid;
        gboolean add_customhdr;
        gboolean use_smtp_auth;
        SMTPAuthType smtp_auth_type;
        gchar *smtp_userid;
        gchar *smtp_passwd;


        gchar *tmp_smtp_pass;

        gboolean pop_before_smtp;
        gint pop_before_smtp_timeout;
        time_t last_pop_login_time;

        GSList *customhdr_list;


        SigType sig_type;
        gchar *sig_path;
        gboolean auto_sig;
        gchar *sig_sep;
        gboolean set_autocc;
        gchar *auto_cc;
        gboolean set_autobcc;
        gchar *auto_bcc;
        gboolean set_autoreplyto;
        gchar *auto_replyto;
# 156 "prefs_account.h"
        gboolean set_smtpport;
        gushort smtpport;
        gboolean set_popport;
        gushort popport;
        gboolean set_imapport;
        gushort imapport;
        gboolean set_nntpport;
        gushort nntpport;
        gboolean set_domain;
        gchar *domain;
        gboolean mark_crosspost_read;
        gint crosspost_col;
# 177 "prefs_account.h"
        gboolean set_tunnelcmd;
        gchar *tunnelcmd;

        gchar *imap_dir;

        gboolean set_sent_folder;
        gchar *sent_folder;
        gboolean set_draft_folder;
        gchar *draft_folder;
        gboolean set_trash_folder;
        gchar *trash_folder;


        gboolean is_default;

        gint account_id;

        RemoteFolder *folder;
};

PrefsAccount *prefs_account_new (void);

void prefs_account_read_config (PrefsAccount *ac_prefs,
                                         const gchar *label);
void prefs_account_save_config_all (GList *account_list);

void prefs_account_free (PrefsAccount *ac_prefs);

PrefsAccount *prefs_account_open (PrefsAccount *ac_prefs);
# 135 "folder.h" 2

# 1 "procmsg.h" 1
# 24 "procmsg.h"
# 1 "../config.h" 1
# 25 "procmsg.h" 2






# 1 "/usr/include/string.h" 1 3 4
# 28 "/usr/include/string.h" 3 4





# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 1 3 4
# 34 "/usr/include/string.h" 2 3 4




extern void *memcpy (void *__restrict __dest,
                     const void *__restrict __src, size_t __n) ;


extern void *memmove (void *__dest, const void *__src, size_t __n)
     ;






extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
                      int __c, size_t __n)
     ;





extern void *memset (void *__s, int __c, size_t __n) ;


extern int memcmp (const void *__s1, const void *__s2, size_t __n)
     __attribute__ ((__pure__));


extern void *memchr (const void *__s, int __c, size_t __n)
      __attribute__ ((__pure__));

# 80 "/usr/include/string.h" 3 4


extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
     ;

extern char *strncpy (char *__restrict __dest,
                      const char *__restrict __src, size_t __n) ;


extern char *strcat (char *__restrict __dest, const char *__restrict __src)
     ;

extern char *strncat (char *__restrict __dest, const char *__restrict __src,
                      size_t __n) ;


extern int strcmp (const char *__s1, const char *__s2)
     __attribute__ ((__pure__));

extern int strncmp (const char *__s1, const char *__s2, size_t __n)
     __attribute__ ((__pure__));


extern int strcoll (const char *__s1, const char *__s2)
     __attribute__ ((__pure__));

extern size_t strxfrm (char *__restrict __dest,
                       const char *__restrict __src, size_t __n) ;

# 126 "/usr/include/string.h" 3 4
extern char *strdup (const char *__s) __attribute__ ((__malloc__));
# 160 "/usr/include/string.h" 3 4


extern char *strchr (const char *__s, int __c) __attribute__ ((__pure__));

extern char *strrchr (const char *__s, int __c) __attribute__ ((__pure__));











extern size_t strcspn (const char *__s, const char *__reject)
     __attribute__ ((__pure__));


extern size_t strspn (const char *__s, const char *__accept)
     __attribute__ ((__pure__));

extern char *strpbrk (const char *__s, const char *__accept)
     __attribute__ ((__pure__));

extern char *strstr (const char *__haystack, const char *__needle)
     __attribute__ ((__pure__));



extern char *strtok (char *__restrict __s, const char *__restrict __delim)
     ;




extern char *__strtok_r (char *__restrict __s,
                         const char *__restrict __delim,
                         char **__restrict __save_ptr) ;

extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
                       char **__restrict __save_ptr) ;
# 228 "/usr/include/string.h" 3 4


extern size_t strlen (const char *__s) __attribute__ ((__pure__));

# 241 "/usr/include/string.h" 3 4


extern char *strerror (int __errnum) ;




extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) ;




extern void __bzero (void *__s, size_t __n) ;



extern void bcopy (const void *__src, void *__dest, size_t __n) ;


extern void bzero (void *__s, size_t __n) ;


extern int bcmp (const void *__s1, const void *__s2, size_t __n)
     __attribute__ ((__pure__));


extern char *index (const char *__s, int __c) __attribute__ ((__pure__));


extern char *rindex (const char *__s, int __c) __attribute__ ((__pure__));



extern int ffs (int __i) __attribute__ ((__const__));
# 287 "/usr/include/string.h" 3 4
extern int strcasecmp (const char *__s1, const char *__s2)
     __attribute__ ((__pure__));


extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
     __attribute__ ((__pure__));
# 309 "/usr/include/string.h" 3 4
extern char *strsep (char **__restrict __stringp,
                     const char *__restrict __delim) ;
# 379 "/usr/include/string.h" 3 4

# 32 "procmsg.h" 2

typedef struct _MsgInfo MsgInfo;
typedef struct _MsgFlags MsgFlags;
typedef struct _MsgFileInfo MsgFileInfo;
typedef struct _MsgInfoUpdate MsgInfoUpdate;
typedef struct _MailFilteringData MailFilteringData;

typedef GSList MsgInfoList;
typedef GSList MsgNumberList;
# 80 "procmsg.h"
typedef guint32 MsgPermFlags;
# 95 "procmsg.h"
typedef guint32 MsgTmpFlags;
# 147 "procmsg.h"
typedef enum {
        MSGINFO_UPDATE_FLAGS = 1 << 0,
        MSGINFO_UPDATE_DELETED = 1 << 1,
} MsgInfoUpdateFlags;


# 1 "procmime.h" 1
# 28 "procmime.h"
# 1 "../config.h" 1
# 29 "procmime.h" 2





typedef struct _MimeType MimeType;
typedef struct _MimeInfo MimeInfo;

typedef enum
{
        ENC_7BIT,
        ENC_8BIT,
        ENC_BINARY,
        ENC_QUOTED_PRINTABLE,
        ENC_BASE64,
        ENC_X_UUENCODE,
        ENC_UNKNOWN
} EncodingType;

typedef enum
{
        MIME_TEXT,
        MIME_TEXT_HTML,
        MIME_MESSAGE_RFC822,
        MIME_APPLICATION,
        MIME_APPLICATION_OCTET_STREAM,
        MIME_MULTIPART,
        MIME_IMAGE,
        MIME_AUDIO,
        MIME_TEXT_ENRICHED,
        MIME_UNKNOWN
} ContentType;

# 1 "procmsg.h" 1
# 63 "procmime.h" 2

struct _MimeType
{
        gchar *type;
        gchar *sub_type;

        gchar *extension;
};
# 90 "procmime.h"
struct _MimeInfo
{
        gchar *encoding;

        EncodingType encoding_type;
        ContentType mime_type;

        gchar *content_type;
        gchar *charset;
        gchar *name;
        gchar *boundary;

        gchar *content_disposition;
        gchar *filename;
        gchar *description;

        glong fpos;
        guint size;

        MimeInfo *main;
        MimeInfo *sub;

        MimeInfo *next;
        MimeInfo *parent;
        MimeInfo *children;
# 127 "procmime.h"
        gint level;
};






MimeInfo *procmime_mimeinfo_new (void);
void procmime_mimeinfo_free_all (MimeInfo *mimeinfo);

MimeInfo *procmime_mimeinfo_insert (MimeInfo *parent,
                                         MimeInfo *mimeinfo);
void procmime_mimeinfo_replace (MimeInfo *old_mimeinfo,
                                         MimeInfo *new_mimeinfo);

MimeInfo *procmime_mimeinfo_next (MimeInfo *mimeinfo);

MimeInfo *procmime_scan_message (MsgInfo *msginfo);
void procmime_scan_multipart_message (MimeInfo *mimeinfo,
                                         FILE *fp);



void procmime_scan_encoding (MimeInfo *mimeinfo,
                                         const gchar *encoding);
void procmime_scan_content_type (MimeInfo *mimeinfo,
                                         const gchar *content_type);
void procmime_scan_content_disposition (MimeInfo *mimeinfo,
                                         const gchar *content_disposition);
void procmime_scan_content_description (MimeInfo *mimeinfo,
                                         const gchar *content_description);
void procmime_scan_subject (MimeInfo *mimeinfo,
                                         const gchar *subject);
MimeInfo *procmime_scan_mime_header (FILE *fp);

FILE *procmime_decode_content (FILE *outfp,
                                         FILE *infp,
                                         MimeInfo *mimeinfo);
gint procmime_get_part (const gchar *outfile,
                                         const gchar *infile,
                                         MimeInfo *mimeinfo);
FILE *procmime_get_text_content (MimeInfo *mimeinfo,
                                         FILE *infp);
FILE *procmime_get_first_text_content (MsgInfo *msginfo);

gboolean procmime_find_string_part (MimeInfo *mimeinfo,
                                         const gchar *filename,
                                         const gchar *str,
                                         gboolean case_sens);
gboolean procmime_find_string (MsgInfo *msginfo,
                                         const gchar *str,
                                         gboolean case_sens);

gchar *procmime_get_tmp_file_name (MimeInfo *mimeinfo);

ContentType procmime_scan_mime_type (const gchar *mime_type);
gchar *procmime_get_mime_type (const gchar *filename);

GList *procmime_get_mime_type_list (void);

EncodingType procmime_get_encoding_for_charset (const gchar *charset);
EncodingType procmime_get_encoding_for_file (const gchar *file);
const gchar *procmime_get_encoding_str (EncodingType encoding);

void renderer_read_config(void);
void renderer_write_config(void);
# 154 "procmsg.h" 2
# 1 "prefs_filtering.h" 1
# 30 "prefs_filtering.h"
typedef enum
{
        FILTER_BY_NONE,
        FILTER_BY_AUTO,
        FILTER_BY_FROM,
        FILTER_BY_TO,
        FILTER_BY_SUBJECT
} PrefsFilterType;

void prefs_filtering_open (FolderItem * item,
                                         const gchar *header,
                                         const gchar *key);
void prefs_filtering_rename_path (const gchar *old_path,
                                         const gchar *new_path);
void prefs_filtering_delete_path (const gchar *path);
# 155 "procmsg.h" 2

struct _MsgFlags
{
        MsgPermFlags perm_flags;
        MsgTmpFlags tmp_flags;
};


struct _MsgInfo
{
        guint refcnt;

        guint msgnum;
        off_t size;
        time_t mtime;
        time_t date_t;

        MsgFlags flags;

        gchar *fromname;

        gchar *date;
        gchar *from;
        gchar *to;
        gchar *cc;
        gchar *newsgroups;
        gchar *subject;
        gchar *msgid;
        gchar *inreplyto;
        gchar *xref;

        FolderItem *folder;
        FolderItem *to_folder;

        gchar *xface;

        gchar *dispositionnotificationto;
        gchar *returnreceiptto;

        gchar *references;
        gchar *fromspace;

        gint score;
        gint threadscore;


        gchar *plaintext_file;
        guint decryption_failed : 1;
};

struct _MsgFileInfo
{
        MsgInfo *msginfo;
        gchar *file;
        MsgFlags *flags;
};

struct _MsgInfoUpdate {
        MsgInfo *msginfo;
        MsgInfoUpdateFlags flags;
};

struct _MailFilteringData
{
        MsgInfo *msginfo;
};

GHashTable *procmsg_msg_hash_table_create (GSList *mlist);
void procmsg_msg_hash_table_append (GHashTable *msg_table,
                                                 GSList *mlist);
GHashTable *procmsg_to_folder_hash_table_create (GSList *mlist);

GSList *procmsg_read_cache (FolderItem *item,
                                         gboolean scan_file);
gint procmsg_get_last_num_in_msg_list(GSList *mlist);
void procmsg_msg_list_free (GSList *mlist);
void procmsg_get_mark_sum (const gchar *folder,
                                         gint *new_msgs,
                                         gint *unread_msgs,
                                         gint *total_msgs,
                                         gint *min,
                                         gint *max,
                                         gint first);

GNode *procmsg_get_thread_tree (GSList *mlist);

void procmsg_move_messages (GSList *mlist);
void procmsg_copy_messages (GSList *mlist);

gchar *procmsg_get_message_file_path (MsgInfo *msginfo);
gchar *procmsg_get_message_file (MsgInfo *msginfo);
GSList *procmsg_get_message_file_list (MsgInfoList *mlist);
void procmsg_message_file_list_free (MsgInfoList *file_list);
FILE *procmsg_open_message (MsgInfo *msginfo);




gboolean procmsg_msg_exist (MsgInfo *msginfo);

void procmsg_get_filter_keyword (MsgInfo *msginfo,
                                         gchar **header,
                                         gchar **key,
                                         PrefsFilterType type);

void procmsg_empty_trash (void);
gint procmsg_send_queue (FolderItem *queue,
                                         gboolean save_msgs);
gint procmsg_save_to_outbox (FolderItem *outbox,
                                         const gchar *file,
                                         gboolean is_queued);
void procmsg_print_message (MsgInfo *msginfo,
                                         const gchar *cmdline);

MsgInfo *procmsg_msginfo_new ();
MsgInfo *procmsg_msginfo_new_ref (MsgInfo *msginfo);
MsgInfo *procmsg_msginfo_copy (MsgInfo *msginfo);
MsgInfo *procmsg_msginfo_get_full_info (MsgInfo *msginfo);
void procmsg_msginfo_free (MsgInfo *msginfo);
guint procmsg_msginfo_memusage (MsgInfo *msginfo);

gint procmsg_cmp_msgnum_for_sort (gconstpointer a,
                                         gconstpointer b);
gint procmsg_send_message_queue (const gchar *file);

void procmsg_msginfo_set_flags (MsgInfo *msginfo,
                                         MsgPermFlags perm_flags,
                                          MsgTmpFlags tmp_flags);
void procmsg_msginfo_unset_flags (MsgInfo *msginfo,
                                         MsgPermFlags perm_flags,
                                          MsgTmpFlags tmp_flags);
gint procmsg_remove_special_headers (const gchar *in,
                                         const gchar *out);

gboolean procmsg_msg_has_flagged_parent (MsgInfo *info,
                                         MsgPermFlags perm_flags);
gboolean procmsg_msg_has_marked_parent (MsgInfo *info);
GSList *procmsg_find_children (MsgInfo *info);
void procmsg_update_unread_children (MsgInfo *info,
                                         gboolean newly_marked);
void procmsg_msginfo_set_to_folder (MsgInfo *msginfo,
                                         FolderItem *to_folder);
gboolean procmsg_msginfo_filter (MsgInfo *msginfo);
# 137 "folder.h" 2
# 1 "msgcache.h" 1
# 24 "msgcache.h"
# 1 "../config.h" 1
# 25 "msgcache.h" 2




typedef struct _MsgCache MsgCache;




MsgCache *msgcache_new (void);
void msgcache_destroy (MsgCache *cache);
MsgCache *msgcache_read_cache (FolderItem *item,
                                                         const gchar *cache_file);
void msgcache_read_mark (MsgCache *cache,
                                                         const gchar *mark_file);
gint msgcache_write (const gchar *cache_file,
                                                         const gchar *mark_file,
                                                         MsgCache *cache);
void msgcache_add_msg (MsgCache *cache,
                                                         MsgInfo *msginfo);
void msgcache_remove_msg (MsgCache *cache,
                                                         guint num);
void msgcache_update_msg (MsgCache *cache,
                                                         MsgInfo *msginfo);
MsgInfo *msgcache_get_msg (MsgCache *cache,
                                                         guint num);
MsgInfo *msgcache_get_msg_by_id (MsgCache *cache,
                                                         const gchar *msgid);
MsgInfoList *msgcache_get_msg_list (MsgCache *cache);
time_t msgcache_get_last_access_time (MsgCache *cache);
gint msgcache_get_memory_usage (MsgCache *cache);
# 138 "folder.h" 2

struct _Folder
{
        FolderClass *klass;

        gchar *name;
        PrefsAccount *account;

        FolderItem *inbox;
        FolderItem *outbox;
        FolderItem *draft;
        FolderItem *queue;
        FolderItem *trash;

        FolderUIFunc ui_func;
        gpointer ui_func_data;

        GNode *node;

        gpointer data;

        GHashTable *newsart;
};

struct _FolderClass
{
        FolderType type;
        gchar *idstr;
        gchar *uistr;




        Folder *(*new_folder) (const gchar *name,
                                                 const gchar *path);
        void (*destroy_folder) (Folder *folder);
        void (*scan_tree) (Folder *folder);

        gint (*create_tree) (Folder *folder);


        FolderItem *(*item_new) (Folder *folder);
        void (*item_destroy) (Folder *folder,
                                                 FolderItem *item);
        gchar *(*item_get_path) (Folder *folder,
                                                 FolderItem *item);
        FolderItem *(*create_folder) (Folder *folder,
                                                 FolderItem *parent,
                                                 const gchar *name);
        gint (*rename_folder) (Folder *folder,
                                                 FolderItem *item,
                                                 const gchar *name);
        gint (*remove_folder) (Folder *folder,
                                                 FolderItem *item);
        gint (*close) (Folder *folder,
                                                 FolderItem *item);
        gint (*get_num_list) (Folder *folder,
                                                 FolderItem *item,
                                                 GSList **list,
                                                 gboolean *old_uids_valid);
        void (*update_mark) (Folder *folder,
                                                 FolderItem *item);
        void (*finished_copy) (Folder *folder,
                                                 FolderItem *item);
        void (*finished_remove) (Folder *folder,
                                                 FolderItem *item);
        gboolean (*scan_required) (Folder *folder,
                                                 FolderItem *item);


        MsgInfo *(*get_msginfo) (Folder *folder,
                                                 FolderItem *item,
                                                 gint num);
        GSList *(*get_msginfos) (Folder *folder,
                                                 FolderItem *item,
                                                 MsgNumberList *msgnum_list);
        gchar *(*fetch_msg) (Folder *folder,
                                                 FolderItem *item,
                                                 gint num);
        gint (*add_msg) (Folder *folder,
                                                 FolderItem *dest,
                                                 const gchar *file,
                                                 MsgFlags *flags);
        gint (*add_msgs) (Folder *folder,
                                                 FolderItem *dest,
                                                 GSList *file_list,
                                                 GRelation *relation);
        gint (*copy_msg) (Folder *folder,
                                                 FolderItem *dest,
                                                 MsgInfo *msginfo);
        gint (*copy_msgs) (Folder *folder,
                                                 FolderItem *dest,
                                                 MsgInfoList *msglist,
                                                 GRelation *relation);
        gint (*remove_msg) (Folder *folder,
                                                 FolderItem *item,
                                                 gint num);
        gint (*remove_all_msg) (Folder *folder,
                                                 FolderItem *item);
        gboolean (*is_msg_changed) (Folder *folder,
                                                 FolderItem *item,
                                                 MsgInfo *msginfo);
        void (*change_flags) (Folder *folder,
                                                 FolderItem *item,
                                                 MsgInfo *msginfo,
                                                 MsgPermFlags newflags);
};

struct _LocalFolder
{
        Folder folder;

        gchar *rootpath;
};

struct _RemoteFolder
{
        Folder folder;

        Session *session;
};
# 267 "folder.h"
struct _FolderItem
{
        SpecialFolderItemType stype;

        gchar *name;
        gchar *path;

        time_t mtime;

        gint new_msgs;
        gint unread_msgs;
        gint total_msgs;
        gint unreadmarked_msgs;

        gint last_num;

        MsgCache *cache;


        guint no_sub : 1;
        guint no_select : 1;
        guint collapsed : 1;
        guint thread_collapsed : 1;
        guint threaded : 1;
        guint hide_read_msgs : 1;
        guint ret_rcpt : 1;

        gint op_count;
        guint opened : 1;
        FolderItemUpdateFlags update_flags;

        FolderSortKey sort_key;
        FolderSortType sort_type;

        GNode *node;

        FolderItem *parent;

        Folder *folder;

        PrefsAccount *account;

        gboolean apply_sub;

        GSList *mark_queue;

        gpointer data;

        FolderItemPrefs * prefs;
};

typedef struct {
        FolderSortKey sort_key;
        FolderSortType sort_type;
        guint collapsed : 1;
        guint thread_collapsed : 1;
        guint threaded : 1;
        guint hide_read_msgs : 1;
        guint ret_rcpt : 1;
} PersistPrefs;

struct _FolderUpdateData
{
        Folder *folder;
        FolderUpdateFlags update_flags;
        FolderItem *item;
};

struct _FolderItemUpdateData
{
        FolderItem *item;
        FolderItemUpdateFlags update_flags;
};

void folder_system_init (void);
void folder_register_class (FolderClass *klass);
Folder *folder_new (FolderClass *type,
                                         const gchar *name,
                                         const gchar *path);
void folder_local_folder_init (Folder *folder,
                                         const gchar *name,
                                         const gchar *path);
void folder_remote_folder_init (Folder *folder,
                                         const gchar *name,
                                         const gchar *path);

void folder_destroy (Folder *folder);
void folder_local_folder_destroy (LocalFolder *lfolder);
void folder_remote_folder_destroy(RemoteFolder *rfolder);

FolderItem *folder_item_new (Folder *folder,
                                         const gchar *name,
                                         const gchar *path);
void folder_item_append (FolderItem *parent,
                                         FolderItem *item);
void folder_item_remove (FolderItem *item);
void folder_item_remove_children (FolderItem *item);
void folder_item_destroy (FolderItem *item);

void folder_set_ui_func (Folder *folder,
                                 FolderUIFunc func,
                                 gpointer data);
void folder_set_name (Folder *folder,
                                 const gchar *name);
void folder_tree_destroy (Folder *folder);

void folder_add (Folder *folder);

GList *folder_get_list (void);
gint folder_read_list (void);
void folder_write_list (void);
void folder_scan_tree (Folder *folder);
FolderItem *folder_create_folder(FolderItem *parent, const gchar *name);
void folder_update_op_count (void);
void folder_func_to_all_folders (FolderItemFunc function,
                                         gpointer data);
void folder_count_total_msgs (guint *new_msgs,
                                 guint *unread_msgs,
                                 guint *unreadmarked_msgs,
                                 guint *total_msgs);
gchar *folder_get_status (GPtrArray *folders,
                                 gboolean full);

Folder *folder_find_from_path (const gchar *path);
Folder *folder_find_from_name (const gchar *name,
                                                 FolderClass *klass);
FolderItem *folder_find_item_from_path (const gchar *path);
FolderClass *folder_get_class_from_string (const gchar *str);
gchar *folder_get_identifier (Folder *folder);
gchar *folder_item_get_identifier (FolderItem *item);
FolderItem *folder_find_item_from_identifier (const gchar *identifier);
gchar *folder_item_get_name (FolderItem *item);

Folder *folder_get_default_folder (void);
FolderItem *folder_get_default_inbox (void);
FolderItem *folder_get_default_outbox (void);
FolderItem *folder_get_default_draft (void);
FolderItem *folder_get_default_queue (void);
FolderItem *folder_get_default_trash (void);
FolderItem *folder_get_default_processing (void);
void folder_set_missing_folders (void);
void folder_unref_account_all (PrefsAccount *account);

gchar *folder_item_get_path (FolderItem *item);

gint folder_item_open (FolderItem *item);
gint folder_item_close (FolderItem *item);
gint folder_item_scan (FolderItem *item);
void folder_item_scan_foreach (GHashTable *table);
MsgInfo *folder_item_get_msginfo (FolderItem *item,
                                         gint num);
MsgInfo *folder_item_get_msginfo_by_msgid(FolderItem *item,
                                         const gchar *msgid);
GSList *folder_item_get_msg_list (FolderItem *item);
gchar *folder_item_fetch_msg (FolderItem *item,
                                         gint num);
gint folder_item_add_msg (FolderItem *dest,
                                         const gchar *file,
                                         MsgFlags *flags,
                                         gboolean remove_source);
gint folder_item_add_msgs (FolderItem *dest,
                                         GSList *file_list,
                                         gboolean remove_source);
gint folder_item_move_to (FolderItem *src,
                                         FolderItem *dest,
                                         FolderItem **new_item);
gint folder_item_move_msg (FolderItem *dest,
                                         MsgInfo *msginfo);
gint folder_item_move_msgs (FolderItem *dest,
                                         GSList *msglist);
gint folder_item_copy_msg (FolderItem *dest,
                                         MsgInfo *msginfo);
gint folder_item_copy_msgs (FolderItem *dest,
                                         GSList *msglist);
gint folder_item_remove_msg (FolderItem *item,
                                         gint num);
gint folder_item_remove_msgs (FolderItem *item,
                                         GSList *msglist);
gint folder_item_remove_all_msg (FolderItem *item);
void folder_item_change_msg_flags (FolderItem *item,
                                         MsgInfo *msginfo,
                                         MsgPermFlags newflags);
gboolean folder_item_is_msg_changed (FolderItem *item,
                                         MsgInfo *msginfo);
gchar *folder_item_get_cache_file (FolderItem *item);
gchar *folder_item_get_mark_file (FolderItem *item);
gchar * folder_item_get_identifier (FolderItem * item);

GHashTable *folder_persist_prefs_new (Folder *folder);
void folder_persist_prefs_free (GHashTable *pptable);
const PersistPrefs *folder_get_persist_prefs
                                        (GHashTable *pptable, const char *name);

void folder_item_restore_persist_prefs (FolderItem *item, GHashTable *pptable);
void folder_clean_cache_memory (void);
void folder_item_write_cache (FolderItem *item);
void folder_item_set_default_flags (FolderItem *dest, MsgFlags *flags);

void folder_item_apply_processing (FolderItem *item);

void folder_item_update (FolderItem *item,
                                         FolderItemUpdateFlags update_flags);
void folder_item_update_recursive (FolderItem *item,
                                         FolderItemUpdateFlags update_flags);
void folder_item_update_freeze (void);
void folder_item_update_thaw (void);
# 30 "folderview.h" 2
# 1 "mainwindow.h" 1
# 31 "folderview.h" 2
# 1 "summaryview.h" 1
# 23 "summaryview.h"
# 1 "/usr/include/regex.h" 1 3 4
# 43 "/usr/include/regex.h" 3 4
typedef long int s_reg_t;
typedef unsigned long int active_reg_t;






typedef unsigned long int reg_syntax_t;
# 175 "/usr/include/regex.h" 3 4
extern reg_syntax_t re_syntax_options;
# 293 "/usr/include/regex.h" 3 4
typedef enum
{




  REG_NOERROR = 0,
  REG_NOMATCH,



  REG_BADPAT,
  REG_ECOLLATE,
  REG_ECTYPE,
  REG_EESCAPE,
  REG_ESUBREG,
  REG_EBRACK,
  REG_EPAREN,
  REG_EBRACE,
  REG_BADBR,
  REG_ERANGE,
  REG_ESPACE,
  REG_BADRPT,


  REG_EEND,
  REG_ESIZE,
  REG_ERPAREN
} reg_errcode_t;
# 333 "/usr/include/regex.h" 3 4
struct re_pattern_buffer
{




  unsigned char *buffer;


  unsigned long int allocated;


  unsigned long int used;


  reg_syntax_t syntax;




  char *fastmap;





  char * translate;


  size_t re_nsub;






  unsigned can_be_null : 1;
# 378 "/usr/include/regex.h" 3 4
  unsigned regs_allocated : 2;



  unsigned fastmap_accurate : 1;



  unsigned no_sub : 1;



  unsigned not_bol : 1;


  unsigned not_eol : 1;


  unsigned newline_anchor : 1;


};

typedef struct re_pattern_buffer regex_t;


typedef int regoff_t;




struct re_registers
{
  unsigned num_regs;
  regoff_t *start;
  regoff_t *end;
};
# 428 "/usr/include/regex.h" 3 4
typedef struct
{
  regoff_t rm_so;
  regoff_t rm_eo;
} regmatch_t;
# 454 "/usr/include/regex.h" 3 4
extern reg_syntax_t re_set_syntax (reg_syntax_t syntax);




extern const char *re_compile_pattern
  (const char *pattern, size_t length, struct re_pattern_buffer *buffer);






extern int re_compile_fastmap (struct re_pattern_buffer *buffer);







extern int re_search
  (struct re_pattern_buffer *buffer, const char *string, int length, int start, int range, struct re_registers *regs);





extern int re_search_2
  (struct re_pattern_buffer *buffer, const char *string1, int length1, const char *string2, int length2, int start, int range, struct re_registers *regs, int stop);






extern int re_match
  (struct re_pattern_buffer *buffer, const char *string, int length, int start, struct re_registers *regs);




extern int re_match_2
  (struct re_pattern_buffer *buffer, const char *string1, int length1, const char *string2, int length2, int start, struct re_registers *regs, int stop);
# 514 "/usr/include/regex.h" 3 4
extern void re_set_registers
  (struct re_pattern_buffer *buffer, struct re_registers *regs, unsigned num_regs, regoff_t *starts, regoff_t *ends);
# 547 "/usr/include/regex.h" 3 4
extern int regcomp (regex_t *__restrict __preg, const char *__restrict __pattern, int __cflags);



extern int regexec (const regex_t *__restrict __preg, const char *__restrict __string, size_t __nmatch, regmatch_t __pmatch[__restrict], int __eflags);




extern size_t regerror (int __errcode, const regex_t *__preg, char *__errbuf, size_t __errbuf_size);


extern void regfree (regex_t *__preg);
# 24 "summaryview.h" 2




# 1 "/usr/include/gtk-1.2/gtk/gtkitemfactory.h" 1
# 35 "/usr/include/gtk-1.2/gtk/gtkitemfactory.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkmenufactory.h" 1
# 39 "/usr/include/gtk-1.2/gtk/gtkmenufactory.h"
typedef struct _GtkMenuEntry GtkMenuEntry;
typedef struct _GtkMenuPath GtkMenuPath;
typedef struct _GtkMenuFactory GtkMenuFactory;

typedef void (*GtkMenuCallback) (GtkWidget *widget,
                                 gpointer user_data);

struct _GtkMenuEntry
{
  gchar *path;
  gchar *accelerator;
  GtkMenuCallback callback;
  gpointer callback_data;
  GtkWidget *widget;
};

struct _GtkMenuPath
{
  char *path;
  GtkWidget *widget;
};

struct _GtkMenuFactory
{
  gchar *path;
  GtkMenuFactoryType type;
  GtkAccelGroup *accel_group;
  GtkWidget *widget;
  GList *subfactories;
};







GtkMenuFactory* gtk_menu_factory_new (GtkMenuFactoryType type);
void gtk_menu_factory_destroy (GtkMenuFactory *factory);
void gtk_menu_factory_add_entries (GtkMenuFactory *factory,
                                                    GtkMenuEntry *entries,
                                                    int nentries);
void gtk_menu_factory_add_subfactory (GtkMenuFactory *factory,
                                                    GtkMenuFactory *subfactory,
                                                    const char *path);
void gtk_menu_factory_remove_paths (GtkMenuFactory *factory,
                                                    char **paths,
                                                    int npaths);
void gtk_menu_factory_remove_entries (GtkMenuFactory *factory,
                                                    GtkMenuEntry *entries,
                                                    int nentries);
void gtk_menu_factory_remove_subfactory (GtkMenuFactory *factory,
                                                    GtkMenuFactory *subfactory,
                                                    const char *path);
GtkMenuPath* gtk_menu_factory_find (GtkMenuFactory *factory,
                                                    const char *path);
# 36 "/usr/include/gtk-1.2/gtk/gtkitemfactory.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkbindings.h" 1
# 46 "/usr/include/gtk-1.2/gtk/gtkbindings.h"
typedef struct _GtkPatternSpec GtkPatternSpec;

struct _GtkPatternSpec
{
  GtkMatchType match_type;
  guint pattern_length;
  gchar *pattern;
  gchar *pattern_reversed;
  gpointer user_data;
  guint seq_id;
};

void gtk_pattern_spec_init (GtkPatternSpec *pspec,
                                     const gchar *pattern);
void gtk_pattern_spec_free_segs (GtkPatternSpec *pspec);
gboolean gtk_pattern_match (GtkPatternSpec *pspec,
                                     guint string_length,
                                     const gchar *string,
                                     const gchar *string_reversed);
gboolean gtk_pattern_match_string (GtkPatternSpec *pspec,
                                     const gchar *string);
gboolean gtk_pattern_match_simple (const gchar *pattern,
                                     const gchar *string);





typedef struct _GtkBindingSet GtkBindingSet;
typedef struct _GtkBindingEntry GtkBindingEntry;
typedef struct _GtkBindingSignal GtkBindingSignal;
typedef struct _GtkBindingArg GtkBindingArg;

struct _GtkBindingSet
{
  gchar *set_name;
  gint priority;
  GSList *widget_path_pspecs;
  GSList *widget_class_pspecs;
  GSList *class_branch_pspecs;
  GtkBindingEntry *entries;
  GtkBindingEntry *current;
};

struct _GtkBindingEntry
{


  guint keyval;
  guint modifiers;

  GtkBindingSet *binding_set;
  guint destroyed : 1;
  guint in_emission : 1;
  GtkBindingEntry *set_next;
  GtkBindingEntry *hash_next;
  GtkBindingSignal *signals;
};

struct _GtkBindingSignal
{
  GtkBindingSignal *next;
  gchar *signal_name;
  guint n_args;
  GtkBindingArg *args;
};

struct _GtkBindingArg
{
  GtkType arg_type;
  union {
    glong long_data;
    gdouble double_data;
    gchar *string_data;
  } d;
};




GtkBindingSet* gtk_binding_set_new (const gchar *set_name);
GtkBindingSet* gtk_binding_set_by_class(gpointer object_class);
GtkBindingSet* gtk_binding_set_find (const gchar *set_name);
gboolean gtk_bindings_activate (GtkObject *object,
                                         guint keyval,
                                         guint modifiers);
gboolean gtk_binding_set_activate (GtkBindingSet *binding_set,
                                         guint keyval,
                                         guint modifiers,
                                         GtkObject *object);

void gtk_binding_entry_clear (GtkBindingSet *binding_set,
                                         guint keyval,
                                         guint modifiers);
void gtk_binding_entry_add_signal (GtkBindingSet *binding_set,
                                         guint keyval,
                                         guint modifiers,
                                         const gchar *signal_name,
                                         guint n_args,
                                         ...);
void gtk_binding_set_add_path (GtkBindingSet *binding_set,
                                         GtkPathType path_type,
                                         const gchar *path_pattern,
                                         GtkPathPriorityType priority);




void gtk_binding_entry_remove (GtkBindingSet *binding_set,
                                         guint keyval,
                                         guint modifiers);
void gtk_binding_entry_add_signall (GtkBindingSet *binding_set,
                                         guint keyval,
                                         guint modifiers,
                                         const gchar *signal_name,
                                         GSList *binding_args);
guint gtk_binding_parse_binding (GScanner *scanner);
# 37 "/usr/include/gtk-1.2/gtk/gtkitemfactory.h" 2







typedef void (*GtkPrintFunc) (gpointer func_data,
                                            gchar *str);
typedef gchar * (*GtkTranslateFunc) (const gchar *path,
                                            gpointer func_data);
typedef void (*GtkItemFactoryCallback) ();
typedef void (*GtkItemFactoryCallback1) (gpointer callback_data,
                                            guint callback_action,
                                            GtkWidget *widget);
# 60 "/usr/include/gtk-1.2/gtk/gtkitemfactory.h"
typedef struct _GtkItemFactory GtkItemFactory;
typedef struct _GtkItemFactoryClass GtkItemFactoryClass;
typedef struct _GtkItemFactoryEntry GtkItemFactoryEntry;
typedef struct _GtkItemFactoryItem GtkItemFactoryItem;

struct _GtkItemFactory
{
  GtkObject object;

  gchar *path;
  GtkAccelGroup *accel_group;
  GtkWidget *widget;
  GSList *items;

  GtkTranslateFunc translate_func;
  gpointer translate_data;
  GtkDestroyNotify translate_notify;
};

struct _GtkItemFactoryClass
{
  GtkObjectClass object_class;

  gchar *cpair_comment_single;

  GHashTable *item_ht;

  gpointer dummy;
};

struct _GtkItemFactoryEntry
{
  gchar *path;
  gchar *accelerator;

  GtkItemFactoryCallback callback;
  guint callback_action;
# 111 "/usr/include/gtk-1.2/gtk/gtkitemfactory.h"
  gchar *item_type;
};

struct _GtkItemFactoryItem
{
  gchar *path;
  guint accelerator_key;
  guint accelerator_mods;
  guint modified : 1;
  guint in_propagation : 1;
  gchar *dummy;

  GSList *widgets;
};


GtkType gtk_item_factory_get_type (void);




GtkItemFactory* gtk_item_factory_new (GtkType container_type,
                                            const gchar *path,
                                            GtkAccelGroup *accel_group);
void gtk_item_factory_construct (GtkItemFactory *ifactory,
                                            GtkType container_type,
                                            const gchar *path,
                                            GtkAccelGroup *accel_group);



void gtk_item_factory_parse_rc (const gchar *file_name);
void gtk_item_factory_parse_rc_string (const gchar *rc_string);
void gtk_item_factory_parse_rc_scanner (GScanner *scanner);
void gtk_item_factory_add_foreign (GtkWidget *accel_widget,
                                                     const gchar *full_path,
                                                     GtkAccelGroup *accel_group,
                                                     guint keyval,
                                                     GdkModifierType modifiers);

GtkItemFactory* gtk_item_factory_from_widget (GtkWidget *widget);
gchar* gtk_item_factory_path_from_widget (GtkWidget *widget);

GtkWidget* gtk_item_factory_get_item (GtkItemFactory *ifactory,
                                                       const gchar *path);
GtkWidget* gtk_item_factory_get_widget (GtkItemFactory *ifactory,
                                                       const gchar *path);
GtkWidget* gtk_item_factory_get_widget_by_action (GtkItemFactory *ifactory,
                                                       guint action);
GtkWidget* gtk_item_factory_get_item_by_action (GtkItemFactory *ifactory,
                                                       guint action);





void gtk_item_factory_dump_items (GtkPatternSpec *path_pspec,
                                         gboolean modified_only,
                                         GtkPrintFunc print_func,
                                         gpointer func_data);
void gtk_item_factory_dump_rc (const gchar *file_name,
                                         GtkPatternSpec *path_pspec,
                                         gboolean modified_only);
void gtk_item_factory_print_func (gpointer FILE_pointer,
                                         gchar *string);
void gtk_item_factory_create_item (GtkItemFactory *ifactory,
                                         GtkItemFactoryEntry *entry,
                                         gpointer callback_data,
                                         guint callback_type);
void gtk_item_factory_create_items (GtkItemFactory *ifactory,
                                         guint n_entries,
                                         GtkItemFactoryEntry *entries,
                                         gpointer callback_data);
void gtk_item_factory_delete_item (GtkItemFactory *ifactory,
                                         const gchar *path);
void gtk_item_factory_delete_entry (GtkItemFactory *ifactory,
                                         GtkItemFactoryEntry *entry);
void gtk_item_factory_delete_entries (GtkItemFactory *ifactory,
                                         guint n_entries,
                                         GtkItemFactoryEntry *entries);
void gtk_item_factory_popup (GtkItemFactory *ifactory,
                                         guint x,
                                         guint y,
                                         guint mouse_button,
                                         guint32 time);
void gtk_item_factory_popup_with_data(GtkItemFactory *ifactory,
                                         gpointer popup_data,
                                         GtkDestroyNotify destroy,
                                         guint x,
                                         guint y,
                                         guint mouse_button,
                                         guint32 time);
gpointer gtk_item_factory_popup_data (GtkItemFactory *ifactory);
gpointer gtk_item_factory_popup_data_from_widget (GtkWidget *widget);
void gtk_item_factory_set_translate_func (GtkItemFactory *ifactory,
                                            GtkTranslateFunc func,
                                            gpointer data,
                                            GtkDestroyNotify notify);



GtkItemFactory* gtk_item_factory_from_path (const gchar *path);
void gtk_item_factory_create_menu_entries (guint n_entries,
                                              GtkMenuEntry *entries);
void gtk_item_factories_path_delete (const gchar *ifactory_path,
                                            const gchar *path);
typedef void (*GtkItemFactoryCallback2) (GtkWidget *widget,
                                            gpointer callback_data,
                                            guint callback_action);
void gtk_item_factory_create_items_ac (GtkItemFactory *ifactory,
                                          guint n_entries,
                                          GtkItemFactoryEntry *entries,
                                          gpointer callback_data,
                                          guint callback_type);
# 29 "summaryview.h" 2



typedef struct _SummaryView SummaryView;
typedef struct _SummaryColumnState SummaryColumnState;

typedef enum
{
        S_COL_MARK,
        S_COL_STATUS,
        S_COL_MIME,
        S_COL_SUBJECT,
        S_COL_FROM,
        S_COL_DATE,
        S_COL_SIZE,
        S_COL_NUMBER,
        S_COL_SCORE,
        S_COL_LOCKED
} SummaryColumnType;



typedef enum
{
        SUMMARY_NONE,
        SUMMARY_SELECTED_NONE,
        SUMMARY_SELECTED_SINGLE,
        SUMMARY_SELECTED_MULTIPLE
} SummarySelection;

typedef enum
{
        TARGET_MAIL_URI_LIST,
        TARGET_DUMMY
} TargetInfo;

typedef enum
{
        S_SEARCH_SUBJECT,
        S_SEARCH_FROM,
        S_SEARCH_TO,
        S_SEARCH_EXTENDED
} SummarySearchType;


# 1 "folderview.h" 1
# 75 "summaryview.h" 2
# 1 "headerview.h" 1
# 26 "headerview.h"
typedef struct _HeaderView HeaderView;



struct _HeaderView
{
        GtkWidget *hbox;

        GtkWidget *from_header_label;
        GtkWidget *from_body_label;
        GtkWidget *to_header_label;
        GtkWidget *to_body_label;
        GtkWidget *ng_header_label;
        GtkWidget *ng_body_label;
        GtkWidget *subject_header_label;
        GtkWidget *subject_body_label;

        GtkWidget *image;
};

HeaderView *headerview_create (void);
void headerview_init (HeaderView *headerview);
void headerview_show (HeaderView *headerview,
                                 MsgInfo *msginfo);
void headerview_clear (HeaderView *headerview);
void headerview_set_visibility (HeaderView *headerview,
                                 gboolean visibility);
void headerview_destroy (HeaderView *headerview);
# 76 "summaryview.h" 2
# 1 "messageview.h" 1
# 77 "summaryview.h" 2
# 1 "compose.h" 1
# 23 "compose.h"
typedef struct _Compose Compose;
typedef struct _AttachInfo AttachInfo;







# 1 "addressbook.h" 1
# 26 "addressbook.h"
# 1 "compose.h" 1
# 27 "addressbook.h" 2
# 1 "addritem.h" 1
# 37 "addritem.h"
typedef enum {
        ITEMTYPE_NONE,
        ITEMTYPE_PERSON,
        ITEMTYPE_EMAIL,
        ITEMTYPE_FOLDER,
        ITEMTYPE_GROUP,
        ITEMTYPE_INDEX,
        ITEMTYPE_INTERFACE,
        ITEMTYPE_DATASOURCE
} ItemObjectType;

typedef enum {
        ADDRFOLDER_NONE,
        ADDRFOLDER_ROOT,
        ADDRFOLDER_REGULAR,
        ADDRFOLDER_CATEGORY,
        ADDRFOLDER_LDAP_QUERY
} AddressFolderType;

typedef struct _AddrItemObject AddrItemObject;
struct _AddrItemObject {
        ItemObjectType type;
        gchar *name;
        gchar *uid;
        AddrItemObject *parent;
        gint subType;
};

typedef struct _ItemPerson ItemPerson;
struct _ItemPerson {
        AddrItemObject obj;
        gchar *firstName;
        gchar *lastName;
        gchar *nickName;
        gchar *externalID;
        GList *listEMail;
        GList *listAttrib;
        gboolean isOpened;
};

typedef struct _ItemEMail ItemEMail;
struct _ItemEMail {
        AddrItemObject obj;
        gchar *address;
        gchar *remarks;
};

typedef struct _UserAttribute UserAttribute;
struct _UserAttribute {
        gchar *uid;
        gchar *name;
        gchar *value;
};

typedef struct _ItemFolder ItemFolder;
struct _ItemFolder {
        AddrItemObject obj;
        gchar *remarks;
        gboolean isRoot;
        GList *listItems;
        GList *listFolder;
        GList *listPerson;
        GList *listGroup;
        AddressFolderType folderType;
        gpointer *folderData;
        gboolean isHidden;
};

typedef struct _ItemGroup ItemGroup;
struct _ItemGroup {
        AddrItemObject obj;
        gchar *remarks;
        GList *listEMail;
};


ItemEMail *addritem_create_item_email ( void );
ItemEMail *addritem_copy_item_email ( ItemEMail *item );
ItemEMail *addritem_copyfull_item_email ( ItemEMail *item );
void addritem_email_set_id ( ItemEMail *email, const gchar *value );
void addritem_email_set_alias ( ItemEMail *email, const gchar *value );
void addritem_email_set_address ( ItemEMail *email, const gchar *value );
void addritem_email_set_remarks ( ItemEMail *email, const gchar *value );
void addritem_free_item_email ( ItemEMail *item );

UserAttribute *addritem_create_attribute( void );
UserAttribute *addritem_copy_attribute ( UserAttribute *item );
void addritem_attrib_set_id ( UserAttribute *item, const gchar *value );
void addritem_attrib_set_name ( UserAttribute *item, const gchar *value );
void addritem_attrib_set_value ( UserAttribute *item, const gchar *value );
void addritem_free_attribute ( UserAttribute *item );

ItemPerson *addritem_create_item_person ( void );
ItemPerson *addritem_copy_item_person ( ItemPerson *item );
void addritem_person_set_id ( ItemPerson *person, const gchar *value );
void addritem_person_set_first_name ( ItemPerson *person, const gchar *value );
void addritem_person_set_last_name ( ItemPerson *person, const gchar *value );
void addritem_person_set_nick_name ( ItemPerson *person, const gchar *value );
void addritem_person_set_common_name ( ItemPerson *person, const gchar *value );
void addritem_person_set_external_id ( ItemPerson *person, const gchar *value );
void addritem_person_set_opened ( ItemPerson *person, const gboolean value );
void addritem_free_item_person ( ItemPerson *person );
gboolean addritem_person_empty ( ItemPerson *person );
void addritem_free_list_email ( GList *list );
void addritem_free_list_attribute ( GList *list );

ItemGroup *addritem_create_item_group ( void );
ItemGroup *addritem_copy_item_group ( ItemGroup *item );
void addritem_free_item_group ( ItemGroup *group );
void addritem_group_set_id ( ItemGroup *group, const gchar *value );
void addritem_group_set_name ( ItemGroup *group, const gchar *value );
void addritem_group_set_remarks ( ItemGroup *group, const gchar *value );

void addritem_print_item_email ( ItemEMail *item, FILE *stream );
void addritem_print_attribute ( UserAttribute *item, FILE *stream );
void addritem_print_item_person ( ItemPerson *person, FILE *stream );
void addritem_print_item_group ( ItemGroup *group, FILE *stream );
void addritem_print_item_folder ( ItemFolder *folder, FILE *stream );
void addritem_print_item ( AddrItemObject *aio, FILE *stream );

gboolean addritem_person_add_email ( ItemPerson *person, ItemEMail *email );
ItemEMail *addritem_person_get_email ( ItemPerson *person, const gchar *eid );
ItemEMail *addritem_person_remove_email_id ( ItemPerson *person, const gchar *eid );
ItemEMail *addritem_person_remove_email ( ItemPerson *person, ItemEMail *email );

void addritem_person_add_attribute ( ItemPerson *person, UserAttribute *attrib );
UserAttribute *addritem_person_get_attribute ( ItemPerson *person, const gchar *aid );
UserAttribute *addritem_person_remove_attrib_id ( ItemPerson *person, const gchar *aid );
UserAttribute *addritem_person_remove_attribute ( ItemPerson *person, UserAttribute *attrib );

ItemFolder *addritem_create_item_folder ( void );
ItemFolder *addritem_copy_item_folder ( ItemFolder *item );
void addritem_folder_set_id ( ItemFolder *folder, const gchar *value );
void addritem_folder_set_name ( ItemFolder *folder, const gchar *value );
void addritem_folder_set_remarks ( ItemFolder *folder, const gchar *value );
void addritem_folder_set_hidden ( ItemFolder *folder, const gboolean value );
void addritem_free_item_folder ( ItemFolder *folder );
void addritem_free_item_folder_recurse ( ItemFolder *parent );

gboolean addritem_group_add_email ( ItemGroup *group, ItemEMail *email );
ItemEMail *addritem_group_remove_email ( ItemGroup *group, ItemEMail *email );
ItemEMail *addritem_group_remove_email_id( ItemGroup *group, const gchar *eid );

gboolean addritem_folder_add_person ( ItemFolder *folder, ItemPerson *item );
gboolean addritem_folder_add_folder ( ItemFolder *folder, ItemFolder *item );
gboolean addritem_folder_add_group ( ItemFolder *folder, ItemGroup *item );
void addritem_folder_free_person ( ItemFolder *folder );
GList *addritem_folder_get_person_list ( ItemFolder *folder );
GList *addritem_folder_get_group_list ( ItemFolder *folder );

ItemEMail *addritem_move_email_before ( ItemPerson *person,
                                          ItemEMail *itemMove,
                                          ItemEMail *itemTarget );
ItemEMail *addritem_move_email_after ( ItemPerson *person,
                                          ItemEMail *itemMove,
                                          ItemEMail *itemTarget );

void addritem_parse_first_last ( ItemPerson *person );
GList *addritem_folder_path ( const ItemFolder *folder,
                                          const gboolean seq );
gchar *addritem_format_email ( ItemEMail *email );
# 28 "addressbook.h" 2

void addressbook_open ( Compose *target );
void addressbook_set_target_compose ( Compose *target );
Compose *addressbook_get_target_compose ( void );
void addressbook_read_file ( void );
void addressbook_export_to_file ( void );
gint addressbook_obj_name_compare ( gconstpointer a,
                                          gconstpointer b );
void addressbook_destroy ( void );

gboolean addressbook_add_contact ( const gchar *name,
                                          const gchar *address,
                                          const gchar *remarks );

gboolean addressbook_load_completion (gint (*callBackFunc)
                                               (const gchar *,
                                                const gchar *,
                                                const gchar *));

void addressbook_gather ( FolderItem *folderItem,
                                          gboolean sourceInd,
                                          GList *msgList );
void addressbook_harvest ( FolderItem *folderItem,
                                          gboolean sourceInd,
                                          GList *msgList);

void addressbook_read_all ( void );
# 33 "compose.h" 2

# 1 "undo.h" 1
# 29 "undo.h"
typedef enum
{
        UNDO_ACTION_INSERT,
        UNDO_ACTION_DELETE,
        UNDO_ACTION_REPLACE_INSERT,
        UNDO_ACTION_REPLACE_DELETE,
} UndoAction;

typedef enum
{
        UNDO_STATE_TRUE,
        UNDO_STATE_FALSE,
        UNDO_STATE_UNCHANGED,
        UNDO_STATE_REFRESH,
} UndoState;

typedef struct _UndoMain UndoMain;

typedef void (*UndoChangeStateFunc) (UndoMain *undostruct,
                                         gint undo_state,
                                         gint redo_state,
                                         gpointer data);

struct _UndoMain
{
        GtkWidget *text;

        GList *undo;
        GList *redo;

        UndoChangeStateFunc change_state_func;
        gpointer change_state_data;

        gboolean undo_state : 1;
        gboolean redo_state : 1;

        gint paste;
};

UndoMain *undo_init (GtkWidget *text);
void undo_destroy (UndoMain *undostruct);

void undo_set_change_state_func (UndoMain *undostruct,
                                 UndoChangeStateFunc func,
                                 gpointer data);

void undo_undo (UndoMain *undostruct);
void undo_redo (UndoMain *undostruct);
# 35 "compose.h" 2
# 1 "toolbar.h" 1
# 25 "toolbar.h"
typedef struct _Toolbar Toolbar;
typedef struct _ToolbarItem ToolbarItem;
typedef struct _ToolbarSylpheedActions ToolbarSylpheedActions;

typedef enum {
        TOOLBAR_MAIN = 0,
        TOOLBAR_COMPOSE,
        TOOLBAR_MSGVIEW
} ToolbarType;

typedef enum
{
        COMPOSEBUTTON_MAIL,
        COMPOSEBUTTON_NEWS
} ComposeButtonType;

struct _Toolbar {
        GtkWidget *toolbar;

        GtkWidget *get_btn;
        GtkWidget *getall_btn;
        GtkWidget *send_btn;

        GtkWidget *compose_mail_btn;
        GtkWidget *compose_news_btn;

        GtkWidget *reply_btn;
        GtkWidget *replysender_btn;
        GtkWidget *replyall_btn;
        GtkWidget *replylist_btn;

        GtkWidget *fwd_btn;

        GtkWidget *delete_btn;
        GtkWidget *next_btn;
        GtkWidget *exec_btn;

        GtkWidget *separator;


        GtkWidget *reply_popup;
        GtkWidget *replyall_popup;
        GtkWidget *replylist_popup;
        GtkWidget *replysender_popup;


        GtkWidget *fwd_popup;

        ComposeButtonType compose_btn_type;


        GtkWidget *sendl_btn;
        GtkWidget *draft_btn;
        GtkWidget *insert_btn;
        GtkWidget *attach_btn;
        GtkWidget *sig_btn;
        GtkWidget *exteditor_btn;
        GtkWidget *linewrap_btn;
        GtkWidget *addrbook_btn;

        GSList *action_list;
        GSList *item_list;

};

struct _ToolbarItem {
        gint index;
        gchar *file;
        gchar *text;
        ToolbarType type;
        gpointer parent;
};
# 133 "toolbar.h"
enum {

        A_RECEIVE_ALL = 0,
        A_RECEIVE_CUR,
        A_SEND_QUEUED,
        A_COMPOSE_EMAIL,
        A_COMPOSE_NEWS,
        A_REPLY_MESSAGE,
        A_REPLY_SENDER,
        A_REPLY_ALL,
        A_REPLY_ML,
        A_FORWARD,
        A_DELETE,
        A_EXECUTE,
        A_GOTO_NEXT,
        A_IGNORE_THREAD,
        A_PRINT,


        A_SEND,
        A_SENDL,
        A_DRAFT,
        A_INSERT,
        A_ATTACH,
        A_SIG,
        A_EXTEDITOR,
        A_LINEWRAP,
        A_ADDRBOOK,


        A_SYL_ACTIONS,
        A_SEPARATOR,

        N_ACTION_VAL
};

struct _ToolbarSylpheedActions {
        GtkWidget *widget;
        gchar *name;
};


void toolbar_action_execute (GtkWidget *widget,
                                         GSList *action_list,
                                         gpointer data,
                                         gint source);

GList *toolbar_get_action_items (ToolbarType source);

void toolbar_save_config_file (ToolbarType source);
void toolbar_read_config_file (ToolbarType source);

void toolbar_set_default (ToolbarType source);
void toolbar_clear_list (ToolbarType source);

GSList *toolbar_get_list (ToolbarType source);
void toolbar_set_list_item (ToolbarItem *t_item,
                                         ToolbarType source);

gint toolbar_ret_val_from_descr (const gchar *descr);
gchar *toolbar_ret_descr_from_val (gint val);

void toolbar_main_set_sensitive (gpointer data);
void toolbar_comp_set_sensitive (gpointer data,
                                         gboolean sensitive);


void delete_msgview_cb (gpointer data,
                                         guint action,
                                         GtkWidget *widget);
void inc_mail_cb (gpointer data,
                                         guint action,
                                         GtkWidget *widget);
void inc_all_account_mail_cb (gpointer data,
                                         guint action,
                                         GtkWidget *widget);
void send_queue_cb (gpointer data,
                                         guint action,
                                         GtkWidget *widget);
void compose_mail_cb (gpointer data,
                                         guint action,
                                         GtkWidget *widget);
void compose_news_cb (gpointer data,
                                         guint action,
                                         GtkWidget *widget);


void toolbar_toggle (guint action,
                                         gpointer data);
void toolbar_update (ToolbarType type,
                                        gpointer data);
Toolbar *toolbar_create (ToolbarType type,
                                         GtkWidget *container,
                                         gpointer data);
void toolbar_set_style (GtkWidget *toolbar_wid,
                                         GtkWidget *handlebox_wid,
                                         guint action);
void toolbar_destroy (Toolbar *toolbar);
void toolbar_init (Toolbar *toolbar);
# 36 "compose.h" 2


# 1 "gtk/gtkaspell.h" 1
# 36 "gtk/gtkaspell.h"
# 1 "../config.h" 1
# 37 "gtk/gtkaspell.h" 2




# 1 "/usr/include/gtk-1.2/gtk/gtkoptionmenu.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkoptionmenu.h"
typedef struct _GtkOptionMenu GtkOptionMenu;
typedef struct _GtkOptionMenuClass GtkOptionMenuClass;

struct _GtkOptionMenu
{
  GtkButton button;

  GtkWidget *menu;
  GtkWidget *menu_item;

  guint16 width;
  guint16 height;
};

struct _GtkOptionMenuClass
{
  GtkButtonClass parent_class;
};


GtkType gtk_option_menu_get_type (void);
GtkWidget* gtk_option_menu_new (void);
GtkWidget* gtk_option_menu_get_menu (GtkOptionMenu *option_menu);
void gtk_option_menu_set_menu (GtkOptionMenu *option_menu,
                                        GtkWidget *menu);
void gtk_option_menu_remove_menu (GtkOptionMenu *option_menu);
void gtk_option_menu_set_history (GtkOptionMenu *option_menu,
                                        guint index);
# 42 "gtk/gtkaspell.h" 2

# 1 "gtk/gtkstext.h" 1
# 35 "gtk/gtkstext.h"
# 1 "../config.h" 1
# 36 "gtk/gtkstext.h" 2



# 1 "/usr/include/wchar.h" 1 3 4
# 48 "/usr/include/wchar.h" 3 4
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 1 3 4
# 49 "/usr/include/wchar.h" 2 3 4
# 88 "/usr/include/wchar.h" 3 4


typedef __mbstate_t mbstate_t;

# 113 "/usr/include/wchar.h" 3 4





struct tm;









extern wchar_t *wcscpy (wchar_t *__restrict __dest,
                        const wchar_t *__restrict __src) ;

extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
                         const wchar_t *__restrict __src, size_t __n)
     ;


extern wchar_t *wcscat (wchar_t *__restrict __dest,
                        const wchar_t *__restrict __src) ;

extern wchar_t *wcsncat (wchar_t *__restrict __dest,
                         const wchar_t *__restrict __src, size_t __n)
     ;


extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2)
     __attribute__ ((__pure__));

extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
     __attribute__ ((__pure__));

# 170 "/usr/include/wchar.h" 3 4



extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) ;



extern size_t wcsxfrm (wchar_t *__restrict __s1,
                       const wchar_t *__restrict __s2, size_t __n) ;

# 200 "/usr/include/wchar.h" 3 4


extern wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc)
     __attribute__ ((__pure__));

extern wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc)
     __attribute__ ((__pure__));

# 216 "/usr/include/wchar.h" 3 4



extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject)
     __attribute__ ((__pure__));


extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept)
     __attribute__ ((__pure__));

extern wchar_t *wcspbrk (const wchar_t *__wcs, const wchar_t *__accept)
     __attribute__ ((__pure__));

extern wchar_t *wcsstr (const wchar_t *__haystack, const wchar_t *__needle)
     __attribute__ ((__pure__));


extern wchar_t *wcstok (wchar_t *__restrict __s,
                        const wchar_t *__restrict __delim,
                        wchar_t **__restrict __ptr) ;


extern size_t wcslen (const wchar_t *__s) __attribute__ ((__pure__));

# 254 "/usr/include/wchar.h" 3 4


extern wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, size_t __n)
     __attribute__ ((__pure__));


extern int wmemcmp (const wchar_t *__restrict __s1,
                    const wchar_t *__restrict __s2, size_t __n)
     __attribute__ ((__pure__));


extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
                         const wchar_t *__restrict __s2, size_t __n) ;



extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n)
     ;


extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) ;

# 286 "/usr/include/wchar.h" 3 4



extern wint_t btowc (int __c) ;



extern int wctob (wint_t __c) ;



extern int mbsinit (const mbstate_t *__ps) __attribute__ ((__pure__));



extern size_t mbrtowc (wchar_t *__restrict __pwc,
                       const char *__restrict __s, size_t __n,
                       mbstate_t *__p) ;


extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,
                       mbstate_t *__restrict __ps) ;


extern size_t __mbrlen (const char *__restrict __s, size_t __n,
                        mbstate_t *__restrict __ps) ;
extern size_t mbrlen (const char *__restrict __s, size_t __n,
                      mbstate_t *__restrict __ps) ;

# 324 "/usr/include/wchar.h" 3 4



extern size_t mbsrtowcs (wchar_t *__restrict __dst,
                         const char **__restrict __src, size_t __len,
                         mbstate_t *__restrict __ps) ;



extern size_t wcsrtombs (char *__restrict __dst,
                         const wchar_t **__restrict __src, size_t __len,
                         mbstate_t *__restrict __ps) ;

# 366 "/usr/include/wchar.h" 3 4



extern double wcstod (const wchar_t *__restrict __nptr,
                      wchar_t **__restrict __endptr) ;
# 383 "/usr/include/wchar.h" 3 4
extern long int wcstol (const wchar_t *__restrict __nptr,
                        wchar_t **__restrict __endptr, int __base) ;



extern unsigned long int wcstoul (const wchar_t *__restrict __nptr,
                                  wchar_t **__restrict __endptr, int __base)
     ;
# 407 "/usr/include/wchar.h" 3 4

# 478 "/usr/include/wchar.h" 3 4
extern double __wcstod_internal (const wchar_t *__restrict __nptr,
                                 wchar_t **__restrict __endptr, int __group)
     ;
extern float __wcstof_internal (const wchar_t *__restrict __nptr,
                                wchar_t **__restrict __endptr, int __group)
     ;
extern long double __wcstold_internal (const wchar_t *__restrict __nptr,
                                       wchar_t **__restrict __endptr,
                                       int __group) ;


extern long int __wcstol_internal (const wchar_t *__restrict __nptr,
                                   wchar_t **__restrict __endptr,
                                   int __base, int __group) ;



extern unsigned long int __wcstoul_internal (const wchar_t *__restrict __npt,
                                             wchar_t **__restrict __endptr,
                                             int __base, int __group) ;



__extension__
extern long long int __wcstoll_internal (const wchar_t *__restrict __nptr,
                                         wchar_t **__restrict __endptr,
                                         int __base, int __group) ;



__extension__
extern unsigned long long int __wcstoull_internal (const wchar_t *
                                                   __restrict __nptr,
                                                   wchar_t **
                                                   __restrict __endptr,
                                                   int __base,
                                                   int __group) ;
# 646 "/usr/include/wchar.h" 3 4


extern wint_t fgetwc (__FILE *__stream) ;
extern wint_t getwc (__FILE *__stream) ;


extern wint_t getwchar (void) ;



extern wint_t fputwc (wchar_t __wc, __FILE *__stream) ;
extern wint_t putwc (wchar_t __wc, __FILE *__stream) ;


extern wint_t putwchar (wchar_t __wc) ;




extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
                        __FILE *__restrict __stream) ;


extern int fputws (const wchar_t *__restrict __ws,
                   __FILE *__restrict __stream) ;



extern wint_t ungetwc (wint_t __wc, __FILE *__stream) ;

# 706 "/usr/include/wchar.h" 3 4




extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
                        const wchar_t *__restrict __format,
                        const struct tm *__restrict __tp) ;

# 737 "/usr/include/wchar.h" 3 4

# 40 "gtk/gtkstext.h" 2
# 1 "/usr/include/wctype.h" 1 3 4
# 35 "/usr/include/wctype.h" 3 4
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 1 3 4
# 36 "/usr/include/wctype.h" 2 3 4
# 47 "/usr/include/wctype.h" 3 4

# 64 "/usr/include/wctype.h" 3 4



typedef unsigned long int wctype_t;

# 86 "/usr/include/wctype.h" 3 4
enum
{
  __ISwupper = 0,
  __ISwlower = 1,
  __ISwalpha = 2,
  __ISwdigit = 3,
  __ISwxdigit = 4,
  __ISwspace = 5,
  __ISwprint = 6,
  __ISwgraph = 7,
  __ISwblank = 8,
  __ISwcntrl = 9,
  __ISwpunct = 10,
  __ISwalnum = 11,

  _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))),
  _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))),
  _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))),
  _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))),
  _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))),
  _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))),
  _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))),
  _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))),
  _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))),
  _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))),
  _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))),
  _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24))))
};












extern int iswalnum (wint_t __wc) ;





extern int iswalpha (wint_t __wc) ;


extern int iswcntrl (wint_t __wc) ;



extern int iswdigit (wint_t __wc) ;



extern int iswgraph (wint_t __wc) ;




extern int iswlower (wint_t __wc) ;


extern int iswprint (wint_t __wc) ;




extern int iswpunct (wint_t __wc) ;




extern int iswspace (wint_t __wc) ;




extern int iswupper (wint_t __wc) ;




extern int iswxdigit (wint_t __wc) ;
# 186 "/usr/include/wctype.h" 3 4
extern wctype_t wctype (const char *__property) ;



extern int iswctype (wint_t __wc, wctype_t __desc) ;










typedef const __int32_t *wctrans_t;







extern wint_t towlower (wint_t __wc) ;


extern wint_t towupper (wint_t __wc) ;



# 228 "/usr/include/wctype.h" 3 4





extern wctrans_t wctrans (const char *__property) ;


extern wint_t towctrans (wint_t __wc, wctrans_t __desc) ;

# 329 "/usr/include/wctype.h" 3 4

# 41 "gtk/gtkstext.h" 2
# 60 "gtk/gtkstext.h"
typedef struct _GtkSTextFont GtkSTextFont;
typedef struct _GtkSPropertyMark GtkSPropertyMark;
typedef struct _GtkSText GtkSText;
typedef struct _GtkSTextClass GtkSTextClass;

typedef enum
{
  GTK_STEXT_CURSOR_LINE,
  GTK_STEXT_CURSOR_BLOCK
} GtkSTextCursorType;

struct _GtkSPropertyMark
{

  GList* property;


  guint offset;


  guint index;
};

struct _GtkSText
{
  GtkEditable editable;

  GdkWindow *text_area;

  GtkAdjustment *hadj;
  GtkAdjustment *vadj;

  GdkGC *gc;

  GdkPixmap* line_wrap_bitmap;
  GdkPixmap* line_arrow_bitmap;





  union { GdkWChar *wc; guchar *ch; } text;

  guint text_len;


  guint gap_position;


  guint gap_size;



  guint text_end;



  GList *line_start_cache;

  guint first_line_start_index;

  guint first_cut_pixels;

  guint first_onscreen_hor_pixel;

  guint first_onscreen_ver_pixel;





  guint line_wrap : 1;
  guint word_wrap : 1;


  guint use_wchar : 1;


  guint freeze_count;



  GList *text_properties;

  GList *text_properties_end;




  GtkSPropertyMark point;



  union { GdkWChar *wc; guchar *ch; } scratch_buffer;
  guint scratch_buffer_len;



  gint last_ver_value;



  gint cursor_pos_x;
  gint cursor_pos_y;
  GtkSPropertyMark cursor_mark;
  GdkWChar cursor_char;
  gchar cursor_char_offset;
  gint cursor_virtual_x;
  gint cursor_drawn_level;



  GList *current_line;



  GList *tab_stops;
  gint default_tab_width;

  GtkSTextFont *current_font;


  gint timer;

  guint button;
  GdkGC *bg_gc;




   gboolean cursor_visible;
   gboolean cursor_timer_on;
   guint cursor_off_ms;
   guint cursor_on_ms;
   gboolean cursor_state_on;
   guint32 cursor_timer_id;
   guint32 cursor_idle_time_timer_id;

   GtkSTextCursorType cursor_type;




   gint wrap_rmargin;




   gint persist_column;
};

struct _GtkSTextClass
{
  GtkEditableClass parent_class;

  void (*set_scroll_adjustments) (GtkSText *text,
                                     GtkAdjustment *hadjustment,
                                     GtkAdjustment *vadjustment);
};


GtkType gtk_stext_get_type (void);
GtkWidget* gtk_stext_new (GtkAdjustment *hadj,
                                      GtkAdjustment *vadj);
void gtk_stext_set_editable (GtkSText *text,
                                      gboolean editable);
void gtk_stext_set_word_wrap (GtkSText *text,
                                      gint word_wrap);
void gtk_stext_set_line_wrap (GtkSText *text,
                                      gint line_wrap);
void gtk_stext_set_adjustments (GtkSText *text,
                                      GtkAdjustment *hadj,
                                      GtkAdjustment *vadj);
void gtk_stext_set_point (GtkSText *text,
                                      guint index);
guint gtk_stext_get_point (GtkSText *text);
guint gtk_stext_get_length (GtkSText *text);
void gtk_stext_freeze (GtkSText *text);
void gtk_stext_thaw (GtkSText *text);
void gtk_stext_insert (GtkSText *text,
                                      GdkFont *font,
                                      GdkColor *fore,
                                      GdkColor *back,
                                      const char *chars,
                                      gint length);
gint gtk_stext_backward_delete (GtkSText *text,
                                      guint nchars);
gint gtk_stext_forward_delete (GtkSText *text,
                                      guint nchars);



void gtk_stext_set_blink (GtkSText *text,
                                      gboolean blinking_on);
void gtk_stext_set_cursor_type (GtkSText *text,
                                      GtkSTextCursorType cursor_type);
void gtk_stext_compact_buffer (GtkSText *text);


void gtk_stext_move_forward_character (GtkSText *text);
void gtk_stext_move_backward_character (GtkSText *text);
void gtk_stext_move_forward_word (GtkSText *text);
void gtk_stext_move_backward_word (GtkSText *text);
void gtk_stext_move_beginning_of_line (GtkSText *text);
void gtk_stext_move_end_of_line (GtkSText *text);
void gtk_stext_move_next_line (GtkSText *text);
void gtk_stext_move_previous_line (GtkSText *text);
void gtk_stext_delete_forward_character (GtkSText *text);
void gtk_stext_delete_backward_character (GtkSText *text);
void gtk_stext_delete_forward_word (GtkSText *text);
void gtk_stext_delete_backward_word (GtkSText *text);
void gtk_stext_delete_line (GtkSText *text);
void gtk_stext_delete_to_line_end (GtkSText *text);




void gtk_stext_set_wrap_rmargin (GtkSText *text, gint rmargin);


gboolean gtk_stext_match_string (GtkSText *text,
                                         gint pos,
                                         wchar_t *wcs,
                                         gint len,
                                         gboolean case_sens);
guint gtk_stext_str_compare_n (GtkSText *text,
                                         guint pos1,
                                         guint pos2,
                                         guint len,
                                         guint text_len);
guint gtk_stext_str_compare (GtkSText *text,
                                         guint start_pos,
                                         guint text_len,
                                         const gchar *str);
gint gtkut_stext_find (GtkSText *text,
                                         guint start_pos,
                                         const gchar *str,
                                         gboolean case_sens);
gboolean gtk_stext_is_uri_string (GtkSText *text,
                                         guint start_pos,
                                         guint text_len);
void gtkut_stext_clear (GtkSText *text);
# 44 "gtk/gtkaspell.h" 2

typedef struct _GtkAspell GtkAspell;

void gtkaspell_checkers_init (void);

void gtkaspell_checkers_quit (void);

const char * gtkaspell_checkers_strerror (void);

void gtkaspell_checkers_reset_error (void);

GtkAspell* gtkaspell_new (const gchar *dictionary_path,
                                                 const gchar *dictionary,
                                                 const gchar *encoding,
                                                 gint misspelled_color,
                                                 gboolean check_while_typing,
                                                 gboolean use_alternate,
                                                 GtkSText *gtktext);

void gtkaspell_delete (GtkAspell *gtkaspell);

guchar* gtkaspell_get_dict (GtkAspell *gtkaspell);

gboolean gtkaspell_change_dict (GtkAspell *gtkaspell,
                                                 const gchar* dictionary);

guchar* gtkaspell_get_path (GtkAspell *gtkaspell);

gboolean gtkaspell_set_sug_mode (GtkAspell *gtkaspell,
                                                 gint themode);

GSList* gtkaspell_get_dictionary_list (const char *aspell_path,
                                                 gint refresh);

void gtkaspell_free_dictionary_list (GSList *list);

void gtkaspell_check_forwards_go (GtkAspell *gtkaspell);
void gtkaspell_check_backwards (GtkAspell *gtkaspell);

void gtkaspell_check_all (GtkAspell *gtkaspell);
void gtkaspell_uncheck_all (GtkAspell *gtkaspell);
void gtkaspell_highlight_all (GtkAspell *gtkaspell);

void gtkaspell_populate_submenu (GtkAspell *gtkaspell,
                                                 GtkWidget *menuitem);

GtkWidget* gtkaspell_dictionary_option_menu_new (const gchar *aspell_path);

gchar* gtkaspell_get_dictionary_menu_active_item
                                                        (GtkWidget *menu);
gint gtkaspell_set_dictionary_menu_active_item
                                                        (GtkWidget *menu,
                                                         const gchar *dictionary);

GtkWidget* gtkaspell_sugmode_option_menu_new (gint sugmode);

void gtkaspell_sugmode_option_menu_set (GtkOptionMenu *optmenu,
                                                         gint sugmode);

gint gtkaspell_get_sugmode_from_option_menu (GtkOptionMenu *optmenu);
# 39 "compose.h" 2


typedef enum
{
        COMPOSE_TO,
        COMPOSE_CC,
        COMPOSE_BCC,
        COMPOSE_REPLYTO,
        COMPOSE_NEWSGROUPS,
        COMPOSE_FOLLOWUPTO
} ComposeEntryType;

typedef enum
{
        COMPOSE_REPLY,
        COMPOSE_REPLY_WITH_QUOTE,
        COMPOSE_REPLY_WITHOUT_QUOTE,
        COMPOSE_REPLY_TO_SENDER,
        COMPOSE_FOLLOWUP_AND_REPLY_TO,
        COMPOSE_REPLY_TO_SENDER_WITH_QUOTE,
        COMPOSE_REPLY_TO_SENDER_WITHOUT_QUOTE,
        COMPOSE_REPLY_TO_ALL,
        COMPOSE_REPLY_TO_ALL_WITH_QUOTE,
        COMPOSE_REPLY_TO_ALL_WITHOUT_QUOTE,
        COMPOSE_REPLY_TO_LIST,
        COMPOSE_REPLY_TO_LIST_WITH_QUOTE,
        COMPOSE_REPLY_TO_LIST_WITHOUT_QUOTE,
        COMPOSE_FORWARD,
        COMPOSE_FORWARD_AS_ATTACH,
        COMPOSE_FORWARD_INLINE,
        COMPOSE_NEW,
        COMPOSE_REDIRECT,
        COMPOSE_REEDIT
} ComposeMode;

typedef struct {
        guint headernum;
        Compose *compose;
        GtkWidget *combo;
        GtkWidget *entry;
} ComposeHeaderEntry;

struct _Compose
{

        GtkWidget *window;
        GtkWidget *vbox;
        GtkWidget *menubar;


        GtkWidget *handlebox;
        Toolbar *toolbar;

        GtkWidget *vbox2;


        GtkWidget *table_vbox;
        GtkWidget *table;






        GtkWidget *subject_entry;
# 114 "compose.h"
        GtkWidget *paned;


        GtkWidget *attach_scrwin;
        GtkWidget *attach_clist;


        GtkWidget *savemsg_checkbtn;
        GtkWidget *savemsg_entry;


        GtkWidget *edit_vbox;
        GtkWidget *ruler_hbox;
        GtkWidget *ruler;
        GtkWidget *scrolledwin;
        GtkWidget *text;

        GtkWidget *focused_editable;

        GtkWidget *popupmenu;

        GtkItemFactory *popupfactory;

        GtkWidget *tmpl_menu;

        ComposeMode mode;

        MsgInfo *targetinfo;
        MsgInfo *replyinfo;
        MsgInfo *autosaved_draft;
        MsgInfo *fwdinfo;

        GtkWidget *header_table;
        GSList *header_list;
        guint header_nextrow;
        ComposeHeaderEntry *header_last;

        gchar *replyto;
        gchar *cc;
        gchar *bcc;
        gchar *newsgroups;
        gchar *followup_to;

        gchar *ml_post;

        gchar *inreplyto;
        gchar *references;
        gchar *msgid;
        gchar *boundary;

        gboolean use_to;
        gboolean use_cc;
        gboolean use_bcc;
        gboolean use_replyto;
        gboolean use_newsgroups;
        gboolean use_followupto;
        gboolean use_attach;


        gboolean use_signing;
        gboolean use_encryption;

        gint gnupg_mode;

        gboolean modified;

        gboolean sending;

        gboolean return_receipt;

        GSList *to_list;
        GSList *newsgroup_list;

        PrefsAccount *account;

        UndoMain *undostruct;

        gchar *sig_str;


        gchar *exteditor_file;
        pid_t exteditor_pid;
        gint exteditor_readdes;
        gint exteditor_tag;



        GtkAspell *gtkaspell;



        gint priority;

        gchar *redirect_filename;

        gboolean remove_references;
};

struct _AttachInfo
{
        gchar *file;
        gchar *content_type;
        EncodingType encoding;
        gchar *name;
        off_t size;
};

Compose *compose_new (PrefsAccount *account,
                                         const gchar *mailto,
                                         GPtrArray *attach_files);

Compose *compose_new_with_folderitem (PrefsAccount *account,
                                         FolderItem *item);

void compose_reply_mode (ComposeMode mode,
                                         GSList *msginfo_list,
                                         gchar *body);

void compose_followup_and_reply_to (MsgInfo *msginfo,
                                         gboolean quote,
                                         gboolean to_all,
                                         gboolean to_sender,
                                         const gchar *body);
void compose_reply (MsgInfo *msginfo,
                                         gboolean quote,
                                         gboolean to_all,
                                         gboolean to_ml,
                                         gboolean to_sender,
                                         const gchar *body);
Compose *compose_forward (PrefsAccount *account,
                                         MsgInfo *msginfo,
                                         gboolean as_attach,
                                         const gchar *body);
Compose *compose_forward_multiple (PrefsAccount *account,
                                         GSList *msginfo_list);


Compose *compose_redirect (PrefsAccount *account,
                                         MsgInfo *msginfo);
void compose_reedit (MsgInfo *msginfo);

GList *compose_get_compose_list (void);

void compose_entry_append (Compose *compose,
                                         const gchar *address,
                                         ComposeEntryType type);

void compose_entry_select (Compose *compose,
                                         const gchar *address);

gint compose_send (Compose *compose);

void compose_reflect_prefs_all (void);
void compose_reflect_prefs_pixmap_theme (void);

void compose_destroy_all (void);
void compose_draft (gpointer data);
void compose_toolbar_cb (gint action,
                                         gpointer data);
# 78 "summaryview.h" 2

# 1 "gtk/gtksctree.h" 1





# 1 "/usr/include/gtk-1.2/gtk/gtk.h" 1
# 33 "/usr/include/gtk-1.2/gtk/gtk.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkaccellabel.h" 1
# 49 "/usr/include/gtk-1.2/gtk/gtkaccellabel.h"
typedef struct _GtkAccelLabel GtkAccelLabel;
typedef struct _GtkAccelLabelClass GtkAccelLabelClass;

struct _GtkAccelLabel
{
  GtkLabel label;

  guint queue_id;
  guint accel_padding;
  GtkWidget *accel_widget;
  gchar *accel_string;
  guint16 accel_string_width;
};

struct _GtkAccelLabelClass
{
  GtkLabelClass parent_class;

  gchar *signal_quote1;
  gchar *signal_quote2;
  gchar *mod_name_shift;
  gchar *mod_name_control;
  gchar *mod_name_alt;
  gchar *mod_separator;
  gchar *accel_seperator;
  guint latin1_to_char : 1;
};


GtkType gtk_accel_label_get_type (void);
GtkWidget* gtk_accel_label_new (const gchar *string);
guint gtk_accel_label_get_accel_width (GtkAccelLabel *accel_label);
void gtk_accel_label_set_accel_widget (GtkAccelLabel *accel_label,
                                              GtkWidget *accel_widget);
gboolean gtk_accel_label_refetch (GtkAccelLabel *accel_label);
# 34 "/usr/include/gtk-1.2/gtk/gtk.h" 2



# 1 "/usr/include/gtk-1.2/gtk/gtkaspectframe.h" 1
# 33 "/usr/include/gtk-1.2/gtk/gtkaspectframe.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkframe.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkframe.h"
typedef struct _GtkFrame GtkFrame;
typedef struct _GtkFrameClass GtkFrameClass;

struct _GtkFrame
{
  GtkBin bin;

  gchar *label;
  gint16 shadow_type;
  gint16 label_width;
  gint16 label_height;
  gfloat label_xalign;
  gfloat label_yalign;
};

struct _GtkFrameClass
{
  GtkBinClass parent_class;
};


GtkType gtk_frame_get_type (void);
GtkWidget* gtk_frame_new (const gchar *label);
void gtk_frame_set_label (GtkFrame *frame,
                                      const gchar *label);
void gtk_frame_set_label_align (GtkFrame *frame,
                                      gfloat xalign,
                                      gfloat yalign);
void gtk_frame_set_shadow_type (GtkFrame *frame,
                                      GtkShadowType type);
# 34 "/usr/include/gtk-1.2/gtk/gtkaspectframe.h" 2
# 48 "/usr/include/gtk-1.2/gtk/gtkaspectframe.h"
typedef struct _GtkAspectFrame GtkAspectFrame;
typedef struct _GtkAspectFrameClass GtkAspectFrameClass;

struct _GtkAspectFrame
{
  GtkFrame frame;

  gfloat xalign;
  gfloat yalign;
  gfloat ratio;
  gboolean obey_child;

  GtkAllocation center_allocation;
};

struct _GtkAspectFrameClass
{
  GtkBinClass parent_class;
};


GtkType gtk_aspect_frame_get_type (void);
GtkWidget* gtk_aspect_frame_new (const gchar *label,
                                        gfloat xalign,
                                        gfloat yalign,
                                        gfloat ratio,
                                        gboolean obey_child);
void gtk_aspect_frame_set (GtkAspectFrame *aspect_frame,
                                        gfloat xalign,
                                        gfloat yalign,
                                        gfloat ratio,
                                        gboolean obey_child);
# 38 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkarrow.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkarrow.h"
typedef struct _GtkArrow GtkArrow;
typedef struct _GtkArrowClass GtkArrowClass;

struct _GtkArrow
{
  GtkMisc misc;

  gint16 arrow_type;
  gint16 shadow_type;
};

struct _GtkArrowClass
{
  GtkMiscClass parent_class;
};


GtkType gtk_arrow_get_type (void);
GtkWidget* gtk_arrow_new (GtkArrowType arrow_type,
                                 GtkShadowType shadow_type);
void gtk_arrow_set (GtkArrow *arrow,
                                 GtkArrowType arrow_type,
                                 GtkShadowType shadow_type);
# 39 "/usr/include/gtk-1.2/gtk/gtk.h" 2



# 1 "/usr/include/gtk-1.2/gtk/gtkbbox.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkbbox.h"
typedef struct _GtkButtonBox GtkButtonBox;
typedef struct _GtkButtonBoxClass GtkButtonBoxClass;

struct _GtkButtonBox
{
  GtkBox box;
  gint spacing;
  gint child_min_width;
  gint child_min_height;
  gint child_ipad_x;
  gint child_ipad_y;
  GtkButtonBoxStyle layout_style;
};

struct _GtkButtonBoxClass
{
  GtkBoxClass parent_class;
};


GtkType gtk_button_box_get_type (void);

void gtk_button_box_get_child_size_default (gint *min_width, gint *min_height);
void gtk_button_box_get_child_ipadding_default (gint *ipad_x, gint *ipad_y);

void gtk_button_box_set_child_size_default (gint min_width, gint min_height);
void gtk_button_box_set_child_ipadding_default (gint ipad_x, gint ipad_y);

gint gtk_button_box_get_spacing (GtkButtonBox *widget);
GtkButtonBoxStyle gtk_button_box_get_layout (GtkButtonBox *widget);
void gtk_button_box_get_child_size (GtkButtonBox *widget,
                                    gint *min_width, gint *min_height);
void gtk_button_box_get_child_ipadding (GtkButtonBox *widget, gint *ipad_x, gint *ipad_y);

void gtk_button_box_set_spacing (GtkButtonBox *widget, gint spacing);
void gtk_button_box_set_layout (GtkButtonBox *widget,
                                GtkButtonBoxStyle layout_style);
void gtk_button_box_set_child_size (GtkButtonBox *widget,
                                    gint min_width, gint min_height);
void gtk_button_box_set_child_ipadding (GtkButtonBox *widget, gint ipad_x, gint ipad_y);



void gtk_button_box_child_requisition (GtkWidget *widget,
                                       int *nvis_children,
                                       int *width,
                                       int *height);
# 43 "/usr/include/gtk-1.2/gtk/gtk.h" 2

# 1 "/usr/include/gtk-1.2/gtk/gtkcalendar.h" 1
# 49 "/usr/include/gtk-1.2/gtk/gtkcalendar.h"
typedef struct _GtkCalendar GtkCalendar;
typedef struct _GtkCalendarClass GtkCalendarClass;

typedef enum
{
  GTK_CALENDAR_SHOW_HEADING = 1 << 0,
  GTK_CALENDAR_SHOW_DAY_NAMES = 1 << 1,
  GTK_CALENDAR_NO_MONTH_CHANGE = 1 << 2,
  GTK_CALENDAR_SHOW_WEEK_NUMBERS = 1 << 3,
  GTK_CALENDAR_WEEK_START_MONDAY = 1 << 4
} GtkCalendarDisplayOptions;

struct _GtkCalendar
{
  GtkWidget widget;

  GtkStyle *header_style;
  GtkStyle *label_style;

  gint month;
  gint year;
  gint selected_day;

  gint day_month[6][7];
  gint day[6][7];

  gint num_marked_dates;
  gint marked_date[31];
  GtkCalendarDisplayOptions display_flags;
  GdkColor marked_date_color[31];

  GdkGC *gc;
  GdkGC *xor_gc;

  gint focus_row;
  gint focus_col;

  gint highlight_row;
  gint highlight_col;

  gpointer private_data;
  gchar grow_space [32];
};

struct _GtkCalendarClass
{
  GtkWidgetClass parent_class;


  void (* month_changed) (GtkCalendar *calendar);
  void (* day_selected) (GtkCalendar *calendar);
  void (* day_selected_double_click) (GtkCalendar *calendar);
  void (* prev_month) (GtkCalendar *calendar);
  void (* next_month) (GtkCalendar *calendar);
  void (* prev_year) (GtkCalendar *calendar);
  void (* next_year) (GtkCalendar *calendar);

};


GtkType gtk_calendar_get_type (void);
GtkWidget* gtk_calendar_new (void);

gint gtk_calendar_select_month (GtkCalendar *calendar,
                                         guint month,
                                         guint year);
void gtk_calendar_select_day (GtkCalendar *calendar,
                                         guint day);

gint gtk_calendar_mark_day (GtkCalendar *calendar,
                                         guint day);
gint gtk_calendar_unmark_day (GtkCalendar *calendar,
                                         guint day);
void gtk_calendar_clear_marks (GtkCalendar *calendar);


void gtk_calendar_display_options (GtkCalendar *calendar,
                                         GtkCalendarDisplayOptions flags);

void gtk_calendar_get_date (GtkCalendar *calendar,
                                         guint *year,
                                         guint *month,
                                         guint *day);
void gtk_calendar_freeze (GtkCalendar *calendar);
void gtk_calendar_thaw (GtkCalendar *calendar);
# 45 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkcheckbutton.h" 1
# 32 "/usr/include/gtk-1.2/gtk/gtkcheckbutton.h"
# 1 "/usr/include/gtk-1.2/gtk/gtktogglebutton.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtktogglebutton.h"
typedef struct _GtkToggleButton GtkToggleButton;
typedef struct _GtkToggleButtonClass GtkToggleButtonClass;

struct _GtkToggleButton
{
  GtkButton button;

  guint active : 1;
  guint draw_indicator : 1;

  GdkWindow *event_window;
};

struct _GtkToggleButtonClass
{
  GtkButtonClass parent_class;

  void (* toggled) (GtkToggleButton *toggle_button);
};


GtkType gtk_toggle_button_get_type (void);
GtkWidget* gtk_toggle_button_new (void);
GtkWidget* gtk_toggle_button_new_with_label (const gchar *label);
void gtk_toggle_button_set_mode (GtkToggleButton *toggle_button,
                                             gboolean draw_indicator);
void gtk_toggle_button_set_active (GtkToggleButton *toggle_button,
                                             gboolean is_active);
gboolean gtk_toggle_button_get_active (GtkToggleButton *toggle_button);
void gtk_toggle_button_toggled (GtkToggleButton *toggle_button);
# 33 "/usr/include/gtk-1.2/gtk/gtkcheckbutton.h" 2
# 47 "/usr/include/gtk-1.2/gtk/gtkcheckbutton.h"
typedef struct _GtkCheckButton GtkCheckButton;
typedef struct _GtkCheckButtonClass GtkCheckButtonClass;

struct _GtkCheckButton
{
  GtkToggleButton toggle_button;
};

struct _GtkCheckButtonClass
{
  GtkToggleButtonClass parent_class;

  guint16 indicator_size;
  guint16 indicator_spacing;

  void (* draw_indicator) (GtkCheckButton *check_button,
                           GdkRectangle *area);
};


GtkType gtk_check_button_get_type (void);
GtkWidget* gtk_check_button_new (void);
GtkWidget* gtk_check_button_new_with_label (const gchar *label);

void _gtk_check_button_get_props (GtkCheckButton *check_button,
                                  gint *indicator_size,
                                  gint *indicator_spacing);
# 46 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkcheckmenuitem.h" 1
# 32 "/usr/include/gtk-1.2/gtk/gtkcheckmenuitem.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkmenuitem.h" 1
# 32 "/usr/include/gtk-1.2/gtk/gtkmenuitem.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkitem.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkitem.h"
typedef struct _GtkItem GtkItem;
typedef struct _GtkItemClass GtkItemClass;

struct _GtkItem
{
  GtkBin bin;
};

struct _GtkItemClass
{
  GtkBinClass parent_class;

  void (* select) (GtkItem *item);
  void (* deselect) (GtkItem *item);
  void (* toggle) (GtkItem *item);
};


GtkType gtk_item_get_type (void);
void gtk_item_select (GtkItem *item);
void gtk_item_deselect (GtkItem *item);
void gtk_item_toggle (GtkItem *item);
# 33 "/usr/include/gtk-1.2/gtk/gtkmenuitem.h" 2
# 47 "/usr/include/gtk-1.2/gtk/gtkmenuitem.h"
typedef struct _GtkMenuItem GtkMenuItem;
typedef struct _GtkMenuItemClass GtkMenuItemClass;

struct _GtkMenuItem
{
  GtkItem item;

  GtkWidget *submenu;

  guint accelerator_signal;
  guint16 toggle_size;
  guint16 accelerator_width;

  guint show_toggle_indicator : 1;
  guint show_submenu_indicator : 1;
  guint submenu_placement : 1;
  guint submenu_direction : 1;
  guint right_justify: 1;
  guint timer;
};

struct _GtkMenuItemClass
{
  GtkItemClass parent_class;

  guint toggle_size;






  guint hide_on_activate : 1;

  void (* activate) (GtkMenuItem *menu_item);
  void (* activate_item) (GtkMenuItem *menu_item);
};


GtkType gtk_menu_item_get_type (void);
GtkWidget* gtk_menu_item_new (void);
GtkWidget* gtk_menu_item_new_with_label (const gchar *label);
void gtk_menu_item_set_submenu (GtkMenuItem *menu_item,
                                           GtkWidget *submenu);
void gtk_menu_item_remove_submenu (GtkMenuItem *menu_item);
void gtk_menu_item_set_placement (GtkMenuItem *menu_item,
                                           GtkSubmenuPlacement placement);
void gtk_menu_item_configure (GtkMenuItem *menu_item,
                                           gint show_toggle_indicator,
                                           gint show_submenu_indicator);
void gtk_menu_item_select (GtkMenuItem *menu_item);
void gtk_menu_item_deselect (GtkMenuItem *menu_item);
void gtk_menu_item_activate (GtkMenuItem *menu_item);
void gtk_menu_item_right_justify (GtkMenuItem *menu_item);
# 33 "/usr/include/gtk-1.2/gtk/gtkcheckmenuitem.h" 2
# 47 "/usr/include/gtk-1.2/gtk/gtkcheckmenuitem.h"
typedef struct _GtkCheckMenuItem GtkCheckMenuItem;
typedef struct _GtkCheckMenuItemClass GtkCheckMenuItemClass;

struct _GtkCheckMenuItem
{
  GtkMenuItem menu_item;

  guint active : 1;
  guint always_show_toggle : 1;
};

struct _GtkCheckMenuItemClass
{
  GtkMenuItemClass parent_class;

  void (* toggled) (GtkCheckMenuItem *check_menu_item);
  void (* draw_indicator) (GtkCheckMenuItem *check_menu_item,
                           GdkRectangle *area);
};


GtkType gtk_check_menu_item_get_type (void);
GtkWidget* gtk_check_menu_item_new (void);
GtkWidget* gtk_check_menu_item_new_with_label (const gchar *label);
void gtk_check_menu_item_set_active (GtkCheckMenuItem *check_menu_item,
                                                gboolean is_active);
void gtk_check_menu_item_set_show_toggle (GtkCheckMenuItem *menu_item,
                                                gboolean always);
void gtk_check_menu_item_toggled (GtkCheckMenuItem *check_menu_item);
# 47 "/usr/include/gtk-1.2/gtk/gtk.h" 2

# 1 "/usr/include/gtk-1.2/gtk/gtkcolorsel.h" 1
# 30 "/usr/include/gtk-1.2/gtk/gtkcolorsel.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkwindow.h" 1
# 49 "/usr/include/gtk-1.2/gtk/gtkwindow.h"
typedef struct _GtkWindow GtkWindow;
typedef struct _GtkWindowClass GtkWindowClass;

struct _GtkWindow
{
  GtkBin bin;

  gchar *title;
  gchar *wmclass_name;
  gchar *wmclass_class;
  GtkWindowType type;

  GtkWidget *focus_widget;
  GtkWidget *default_widget;
  GtkWindow *transient_parent;

  gushort resize_count;
  guint allow_shrink : 1;
  guint allow_grow : 1;
  guint auto_shrink : 1;
  guint handling_resize : 1;
  guint position : 2;







  guint use_uposition : 1;
  guint modal : 1;



  guint window_has_focus : 1;





  guint window_has_pointer_focus : 1;
};

struct _GtkWindowClass
{
  GtkBinClass parent_class;

  void (* set_focus) (GtkWindow *window,
                        GtkWidget *focus);
};


GtkType gtk_window_get_type (void);
GtkWidget* gtk_window_new (GtkWindowType type);
void gtk_window_set_title (GtkWindow *window,
                                                const gchar *title);
void gtk_window_set_wmclass (GtkWindow *window,
                                                const gchar *wmclass_name,
                                                const gchar *wmclass_class);
void gtk_window_set_policy (GtkWindow *window,
                                                gint allow_shrink,
                                                gint allow_grow,
                                                gint auto_shrink);
void gtk_window_add_accel_group (GtkWindow *window,
                                                GtkAccelGroup *accel_group);
void gtk_window_remove_accel_group (GtkWindow *window,
                                                GtkAccelGroup *accel_group);
void gtk_window_set_position (GtkWindow *window,
                                                GtkWindowPosition position);
gint gtk_window_activate_focus (GtkWindow *window);
gint gtk_window_activate_default (GtkWindow *window);

void gtk_window_set_transient_for (GtkWindow *window,
                                                GtkWindow *parent);
void gtk_window_set_geometry_hints (GtkWindow *window,
                                                GtkWidget *geometry_widget,
                                                GdkGeometry *geometry,
                                                GdkWindowHints geom_mask);




void gtk_window_set_default_size (GtkWindow *window,
                                                gint width,
                                                gint height);


void gtk_window_set_modal (GtkWindow *window,
                                                gboolean modal);


void gtk_window_set_focus (GtkWindow *window,
                                                GtkWidget *focus);
void gtk_window_set_default (GtkWindow *window,
                                                GtkWidget *defaultw);
void gtk_window_remove_embedded_xid (GtkWindow *window,
                                                guint xid);
void gtk_window_add_embedded_xid (GtkWindow *window,
                                                guint xid);
void gtk_window_reposition (GtkWindow *window,
                                                gint x,
                                                gint y);
# 31 "/usr/include/gtk-1.2/gtk/gtkcolorsel.h" 2


# 1 "/usr/include/gtk-1.2/gtk/gtkpreview.h" 1
# 46 "/usr/include/gtk-1.2/gtk/gtkpreview.h"
typedef struct _GtkPreview GtkPreview;
typedef struct _GtkPreviewInfo GtkPreviewInfo;
typedef union _GtkDitherInfo GtkDitherInfo;
typedef struct _GtkPreviewClass GtkPreviewClass;

struct _GtkPreview
{
  GtkWidget widget;

  guchar *buffer;
  guint16 buffer_width;
  guint16 buffer_height;

  guint16 bpp;
  guint16 rowstride;

  GdkRgbDither dither;

  guint type : 1;
  guint expand : 1;
};

struct _GtkPreviewInfo
{
  GdkVisual *visual;
  GdkColormap *cmap;

  guchar *lookup;

  gdouble gamma;
};

union _GtkDitherInfo
{
  gushort s[2];
  guchar c[4];
};

struct _GtkPreviewClass
{
  GtkWidgetClass parent_class;

  GtkPreviewInfo info;

};


GtkType gtk_preview_get_type (void);
void gtk_preview_uninit (void);
GtkWidget* gtk_preview_new (GtkPreviewType type);
void gtk_preview_size (GtkPreview *preview,
                                                gint width,
                                                gint height);
void gtk_preview_put (GtkPreview *preview,
                                                GdkWindow *window,
                                                GdkGC *gc,
                                                gint srcx,
                                                gint srcy,
                                                gint destx,
                                                gint desty,
                                                gint width,
                                                gint height);
void gtk_preview_draw_row (GtkPreview *preview,
                                                guchar *data,
                                                gint x,
                                                gint y,
                                                gint w);
void gtk_preview_set_expand (GtkPreview *preview,
                                                gboolean expand);

void gtk_preview_set_gamma (double gamma);
void gtk_preview_set_color_cube (guint nred_shades,
                                                guint ngreen_shades,
                                                guint nblue_shades,
                                                guint ngray_shades);
void gtk_preview_set_install_cmap (gint install_cmap);
void gtk_preview_set_reserved (gint nreserved);
void gtk_preview_set_dither (GtkPreview *preview,
                                                GdkRgbDither dither);
GdkVisual* gtk_preview_get_visual (void);
GdkColormap* gtk_preview_get_cmap (void);
GtkPreviewInfo* gtk_preview_get_info (void);






void gtk_preview_reset (void);
# 34 "/usr/include/gtk-1.2/gtk/gtkcolorsel.h" 2

# 1 "/usr/include/gtk-1.2/gtk/gtkentry.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkentry.h"
typedef struct _GtkEntry GtkEntry;
typedef struct _GtkEntryClass GtkEntryClass;

struct _GtkEntry
{
  GtkEditable editable;

  GdkWindow *text_area;
  GdkPixmap *backing_pixmap;
  GdkCursor *cursor;
  GdkWChar *text;

  guint16 text_size;
  guint16 text_length;
  guint16 text_max_length;
  gint scroll_offset;
  guint visible : 1;
  guint32 timer;
  guint button;



  gint *char_offset;


  gchar *text_mb;

  guint text_mb_dirty : 1;


  guint use_wchar : 1;
};

struct _GtkEntryClass
{
  GtkEditableClass parent_class;
};

GtkType gtk_entry_get_type (void);
GtkWidget* gtk_entry_new (void);
GtkWidget* gtk_entry_new_with_max_length (guint16 max);
void gtk_entry_set_text (GtkEntry *entry,
                                                 const gchar *text);
void gtk_entry_append_text (GtkEntry *entry,
                                                 const gchar *text);
void gtk_entry_prepend_text (GtkEntry *entry,
                                                 const gchar *text);
void gtk_entry_set_position (GtkEntry *entry,
                                                 gint position);

gchar* gtk_entry_get_text (GtkEntry *entry);
void gtk_entry_select_region (GtkEntry *entry,
                                                 gint start,
                                                 gint end);
void gtk_entry_set_visibility (GtkEntry *entry,
                                                 gboolean visible);
void gtk_entry_set_editable (GtkEntry *entry,
                                                 gboolean editable);

void gtk_entry_set_max_length (GtkEntry *entry,
                                                 guint16 max);
# 36 "/usr/include/gtk-1.2/gtk/gtkcolorsel.h" 2


# 1 "/usr/include/gtk-1.2/gtk/gtkmain.h" 1
# 51 "/usr/include/gtk-1.2/gtk/gtkmain.h"
typedef void (*GtkModuleInitFunc) (gint *argc,
                                         gchar ***argv);
typedef gint (*GtkKeySnoopFunc) (GtkWidget *grab_widget,
                                         GdkEventKey *event,
                                         gpointer func_data);



extern const guint gtk_major_version;
extern const guint gtk_minor_version;
extern const guint gtk_micro_version;
extern const guint gtk_binary_age;
extern const guint gtk_interface_age;
gchar* gtk_check_version (guint required_major,
                          guint required_minor,
                          guint required_micro);




void gtk_init (int *argc,
                                  char ***argv);
gboolean gtk_init_check (int *argc,
                                  char ***argv);
void gtk_exit (gint error_code);
gchar* gtk_set_locale (void);
gint gtk_events_pending (void);





void gtk_main_do_event (GdkEvent *event);

void gtk_main (void);
guint gtk_main_level (void);
void gtk_main_quit (void);
gint gtk_main_iteration (void);

gint gtk_main_iteration_do (gboolean blocking);

gint gtk_true (void);
gint gtk_false (void);

void gtk_grab_add (GtkWidget *widget);
GtkWidget* gtk_grab_get_current (void);
void gtk_grab_remove (GtkWidget *widget);

void gtk_init_add (GtkFunction function,
                                    gpointer data);
void gtk_quit_add_destroy (guint main_level,
                                    GtkObject *object);
guint gtk_quit_add (guint main_level,
                                    GtkFunction function,
                                    gpointer data);
guint gtk_quit_add_full (guint main_level,
                                    GtkFunction function,
                                    GtkCallbackMarshal marshal,
                                    gpointer data,
                                    GtkDestroyNotify destroy);
void gtk_quit_remove (guint quit_handler_id);
void gtk_quit_remove_by_data (gpointer data);
guint gtk_timeout_add (guint32 interval,
                                    GtkFunction function,
                                    gpointer data);
guint gtk_timeout_add_full (guint32 interval,
                                    GtkFunction function,
                                    GtkCallbackMarshal marshal,
                                    gpointer data,
                                    GtkDestroyNotify destroy);
void gtk_timeout_remove (guint timeout_handler_id);

guint gtk_idle_add (GtkFunction function,
                                    gpointer data);
guint gtk_idle_add_priority (gint priority,
                                    GtkFunction function,
                                    gpointer data);
guint gtk_idle_add_full (gint priority,
                                    GtkFunction function,
                                    GtkCallbackMarshal marshal,
                                    gpointer data,
                                    GtkDestroyNotify destroy);
void gtk_idle_remove (guint idle_handler_id);
void gtk_idle_remove_by_data (gpointer data);
guint gtk_input_add_full (gint source,
                                    GdkInputCondition condition,
                                    GdkInputFunction function,
                                    GtkCallbackMarshal marshal,
                                    gpointer data,
                                    GtkDestroyNotify destroy);
void gtk_input_remove (guint input_handler_id);


guint gtk_key_snooper_install (GtkKeySnoopFunc snooper,
                                    gpointer func_data);
void gtk_key_snooper_remove (guint snooper_handler_id);

GdkEvent* gtk_get_current_event (void);
GtkWidget* gtk_get_event_widget (GdkEvent *event);




void gtk_propagate_event (GtkWidget *widget,
                                    GdkEvent *event);
# 39 "/usr/include/gtk-1.2/gtk/gtkcolorsel.h" 2



# 1 "/usr/include/gtk-1.2/gtk/gtkscale.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkscale.h"
typedef struct _GtkScale GtkScale;
typedef struct _GtkScaleClass GtkScaleClass;

struct _GtkScale
{
  GtkRange range;

  guint draw_value : 1;
  guint value_pos : 2;
};

struct _GtkScaleClass
{
  GtkRangeClass parent_class;

  gint slider_length;
  gint value_spacing;

  void (* draw_value) (GtkScale *scale);
};


GtkType gtk_scale_get_type (void);
void gtk_scale_set_digits (GtkScale *scale,
                                   gint digits);
void gtk_scale_set_draw_value (GtkScale *scale,
                                   gboolean draw_value);
void gtk_scale_set_value_pos (GtkScale *scale,
                                   GtkPositionType pos);
gint gtk_scale_get_value_width (GtkScale *scale);

void gtk_scale_draw_value (GtkScale *scale);
# 43 "/usr/include/gtk-1.2/gtk/gtkcolorsel.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkhscale.h" 1
# 48 "/usr/include/gtk-1.2/gtk/gtkhscale.h"
typedef struct _GtkHScale GtkHScale;
typedef struct _GtkHScaleClass GtkHScaleClass;

struct _GtkHScale
{
  GtkScale scale;
};

struct _GtkHScaleClass
{
  GtkScaleClass parent_class;
};


GtkType gtk_hscale_get_type (void);
GtkWidget* gtk_hscale_new (GtkAdjustment *adjustment);
# 44 "/usr/include/gtk-1.2/gtk/gtkcolorsel.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtktable.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtktable.h"
typedef struct _GtkTable GtkTable;
typedef struct _GtkTableClass GtkTableClass;
typedef struct _GtkTableChild GtkTableChild;
typedef struct _GtkTableRowCol GtkTableRowCol;

struct _GtkTable
{
  GtkContainer container;

  GList *children;
  GtkTableRowCol *rows;
  GtkTableRowCol *cols;
  guint16 nrows;
  guint16 ncols;
  guint16 column_spacing;
  guint16 row_spacing;
  guint homogeneous : 1;
};

struct _GtkTableClass
{
  GtkContainerClass parent_class;
};

struct _GtkTableChild
{
  GtkWidget *widget;
  guint16 left_attach;
  guint16 right_attach;
  guint16 top_attach;
  guint16 bottom_attach;
  guint16 xpadding;
  guint16 ypadding;
  guint xexpand : 1;
  guint yexpand : 1;
  guint xshrink : 1;
  guint yshrink : 1;
  guint xfill : 1;
  guint yfill : 1;
};

struct _GtkTableRowCol
{
  guint16 requisition;
  guint16 allocation;
  guint16 spacing;
  guint need_expand : 1;
  guint need_shrink : 1;
  guint expand : 1;
  guint shrink : 1;
  guint empty : 1;
};


GtkType gtk_table_get_type (void);
GtkWidget* gtk_table_new (guint rows,
                                       guint columns,
                                       gboolean homogeneous);
void gtk_table_resize (GtkTable *table,
                                       guint rows,
                                       guint columns);
void gtk_table_attach (GtkTable *table,
                                       GtkWidget *child,
                                       guint left_attach,
                                       guint right_attach,
                                       guint top_attach,
                                       guint bottom_attach,
                                       GtkAttachOptions xoptions,
                                       GtkAttachOptions yoptions,
                                       guint xpadding,
                                       guint ypadding);
void gtk_table_attach_defaults (GtkTable *table,
                                       GtkWidget *widget,
                                       guint left_attach,
                                       guint right_attach,
                                       guint top_attach,
                                       guint bottom_attach);
void gtk_table_set_row_spacing (GtkTable *table,
                                       guint row,
                                       guint spacing);
void gtk_table_set_col_spacing (GtkTable *table,
                                       guint column,
                                       guint spacing);
void gtk_table_set_row_spacings (GtkTable *table,
                                       guint spacing);
void gtk_table_set_col_spacings (GtkTable *table,
                                       guint spacing);
void gtk_table_set_homogeneous (GtkTable *table,
                                       gboolean homogeneous);
# 45 "/usr/include/gtk-1.2/gtk/gtkcolorsel.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkeventbox.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkeventbox.h"
typedef struct _GtkEventBox GtkEventBox;
typedef struct _GtkEventBoxClass GtkEventBoxClass;

struct _GtkEventBox
{
  GtkBin bin;
};

struct _GtkEventBoxClass
{
  GtkBinClass parent_class;
};

GtkType gtk_event_box_get_type (void);
GtkWidget* gtk_event_box_new (void);
# 46 "/usr/include/gtk-1.2/gtk/gtkcolorsel.h" 2
# 65 "/usr/include/gtk-1.2/gtk/gtkcolorsel.h"
typedef struct _GtkColorSelection GtkColorSelection;
typedef struct _GtkColorSelectionClass GtkColorSelectionClass;

typedef struct _GtkColorSelectionDialog GtkColorSelectionDialog;
typedef struct _GtkColorSelectionDialogClass GtkColorSelectionDialogClass;


struct _GtkColorSelection
{
  GtkVBox vbox;

  GtkWidget *wheel_area;
  GtkWidget *value_area;
  GtkWidget *sample_area;
  GtkWidget *sample_area_eb;

  GtkWidget *scales[8];
  GtkWidget *entries[8];
  GtkWidget *opacity_label;

  GdkGC *wheel_gc;
  GdkGC *value_gc;
  GdkGC *sample_gc;

  GtkUpdateType policy;
  gint use_opacity;
  gint timer_active;
  gint timer_tag;
  gdouble values[8];
  gdouble old_values[8];

  guchar *wheel_buf;
  guchar *value_buf;
  guchar *sample_buf;
};

struct _GtkColorSelectionClass
{
  GtkVBoxClass parent_class;

  void (* color_changed) (GtkColorSelection *colorsel);
};

struct _GtkColorSelectionDialog
{
  GtkWindow window;

  GtkWidget *colorsel;
  GtkWidget *main_vbox;
  GtkWidget *ok_button;
  GtkWidget *reset_button;
  GtkWidget *cancel_button;
  GtkWidget *help_button;
};

struct _GtkColorSelectionDialogClass
{
  GtkWindowClass parent_class;
};




GtkType gtk_color_selection_get_type (void);

GtkWidget* gtk_color_selection_new (void);

void gtk_color_selection_set_update_policy (GtkColorSelection *colorsel,
                                                  GtkUpdateType policy);

void gtk_color_selection_set_opacity (GtkColorSelection *colorsel,
                                                  gint use_opacity);

void gtk_color_selection_set_color (GtkColorSelection *colorsel,
                                                  gdouble *color);

void gtk_color_selection_get_color (GtkColorSelection *colorsel,
                                                  gdouble *color);



GtkType gtk_color_selection_dialog_get_type (void);

GtkWidget* gtk_color_selection_dialog_new (const gchar *title);
# 49 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkcombo.h" 1
# 41 "/usr/include/gtk-1.2/gtk/gtkcombo.h"
typedef struct _GtkCombo GtkCombo;
typedef struct _GtkComboClass GtkComboClass;


struct _GtkCombo {
        GtkHBox hbox;
        GtkWidget *entry;
        GtkWidget *button;
        GtkWidget *popup;
        GtkWidget *popwin;
        GtkWidget *list;

        guint entry_change_id;
        guint list_change_id;

        guint value_in_list:1;
        guint ok_if_empty:1;
        guint case_sensitive:1;
        guint use_arrows:1;
        guint use_arrows_always:1;

        guint16 current_button;
        guint activate_id;
};

struct _GtkComboClass {
        GtkHBoxClass parent_class;
};

guint gtk_combo_get_type (void);

GtkWidget *gtk_combo_new (void);

void gtk_combo_set_value_in_list (GtkCombo* combo,
                                            gint val,
                                            gint ok_if_empty);

void gtk_combo_set_use_arrows (GtkCombo* combo,
                                            gint val);

void gtk_combo_set_use_arrows_always (GtkCombo* combo,
                                            gint val);

void gtk_combo_set_case_sensitive (GtkCombo* combo,
                                            gint val);


void gtk_combo_set_item_string (GtkCombo* combo,
                                            GtkItem* item,
                                            const gchar* item_value);

void gtk_combo_set_popdown_strings (GtkCombo* combo,
                                            GList *strings);

void gtk_combo_disable_activate (GtkCombo* combo);
# 50 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkcompat.h" 1
# 51 "/usr/include/gtk-1.2/gtk/gtk.h" 2


# 1 "/usr/include/gtk-1.2/gtk/gtkcurve.h" 1
# 32 "/usr/include/gtk-1.2/gtk/gtkcurve.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkdrawingarea.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkdrawingarea.h"
typedef struct _GtkDrawingArea GtkDrawingArea;
typedef struct _GtkDrawingAreaClass GtkDrawingAreaClass;

struct _GtkDrawingArea
{
  GtkWidget widget;

  gpointer draw_data;
};

struct _GtkDrawingAreaClass
{
  GtkWidgetClass parent_class;
};


GtkType gtk_drawing_area_get_type (void);
GtkWidget* gtk_drawing_area_new (void);
void gtk_drawing_area_size (GtkDrawingArea *darea,
                                        gint width,
                                        gint height);
# 33 "/usr/include/gtk-1.2/gtk/gtkcurve.h" 2
# 46 "/usr/include/gtk-1.2/gtk/gtkcurve.h"
typedef struct _GtkCurve GtkCurve;
typedef struct _GtkCurveClass GtkCurveClass;


struct _GtkCurve
{
  GtkDrawingArea graph;

  gint cursor_type;
  gfloat min_x;
  gfloat max_x;
  gfloat min_y;
  gfloat max_y;
  GdkPixmap *pixmap;
  GtkCurveType curve_type;
  gint height;
  gint grab_point;
  gint last;


  gint num_points;
  GdkPoint *point;


  gint num_ctlpoints;
  gfloat (*ctlpoint)[2];
};

struct _GtkCurveClass
{
  GtkDrawingAreaClass parent_class;

  void (* curve_type_changed) (GtkCurve *curve);
};


GtkType gtk_curve_get_type (void);
GtkWidget* gtk_curve_new (void);
void gtk_curve_reset (GtkCurve *curve);
void gtk_curve_set_gamma (GtkCurve *curve, gfloat gamma);
void gtk_curve_set_range (GtkCurve *curve,
                                         gfloat min_x, gfloat max_x,
                                         gfloat min_y, gfloat max_y);
void gtk_curve_get_vector (GtkCurve *curve,
                                         int veclen, gfloat vector[]);
void gtk_curve_set_vector (GtkCurve *curve,
                                         int veclen, gfloat vector[]);
void gtk_curve_set_curve_type (GtkCurve *curve, GtkCurveType type);
# 54 "/usr/include/gtk-1.2/gtk/gtk.h" 2

# 1 "/usr/include/gtk-1.2/gtk/gtkdialog.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkdialog.h"
typedef struct _GtkDialog GtkDialog;
typedef struct _GtkDialogClass GtkDialogClass;
typedef struct _GtkDialogButton GtkDialogButton;


struct _GtkDialog
{
  GtkWindow window;

  GtkWidget *vbox;
  GtkWidget *action_area;
};

struct _GtkDialogClass
{
  GtkWindowClass parent_class;
};


GtkType gtk_dialog_get_type (void);
GtkWidget* gtk_dialog_new (void);
# 56 "/usr/include/gtk-1.2/gtk/gtk.h" 2






# 1 "/usr/include/gtk-1.2/gtk/gtkfeatures.h" 1
# 63 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkfilesel.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkfilesel.h"
typedef struct _GtkFileSelection GtkFileSelection;
typedef struct _GtkFileSelectionClass GtkFileSelectionClass;

struct _GtkFileSelection
{
  GtkWindow window;

  GtkWidget *dir_list;
  GtkWidget *file_list;
  GtkWidget *selection_entry;
  GtkWidget *selection_text;
  GtkWidget *main_vbox;
  GtkWidget *ok_button;
  GtkWidget *cancel_button;
  GtkWidget *help_button;
  GtkWidget *history_pulldown;
  GtkWidget *history_menu;
  GList *history_list;
  GtkWidget *fileop_dialog;
  GtkWidget *fileop_entry;
  gchar *fileop_file;
  gpointer cmpl_state;

  GtkWidget *fileop_c_dir;
  GtkWidget *fileop_del_file;
  GtkWidget *fileop_ren_file;

  GtkWidget *button_area;
  GtkWidget *action_area;

};

struct _GtkFileSelectionClass
{
  GtkWindowClass parent_class;
};


GtkType gtk_file_selection_get_type (void);
GtkWidget* gtk_file_selection_new (const gchar *title);
void gtk_file_selection_set_filename (GtkFileSelection *filesel,
                                                   const gchar *filename);
gchar* gtk_file_selection_get_filename (GtkFileSelection *filesel);
void gtk_file_selection_complete (GtkFileSelection *filesel,
                                                   const gchar *pattern);
void gtk_file_selection_show_fileop_buttons (GtkFileSelection *filesel);
void gtk_file_selection_hide_fileop_buttons (GtkFileSelection *filesel);
# 64 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkfixed.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkfixed.h"
typedef struct _GtkFixed GtkFixed;
typedef struct _GtkFixedClass GtkFixedClass;
typedef struct _GtkFixedChild GtkFixedChild;

struct _GtkFixed
{
  GtkContainer container;

  GList *children;
};

struct _GtkFixedClass
{
  GtkContainerClass parent_class;
};

struct _GtkFixedChild
{
  GtkWidget *widget;
  gint16 x;
  gint16 y;
};


GtkType gtk_fixed_get_type (void);
GtkWidget* gtk_fixed_new (void);
void gtk_fixed_put (GtkFixed *fixed,
                                        GtkWidget *widget,
                                        gint16 x,
                                        gint16 y);
void gtk_fixed_move (GtkFixed *fixed,
                                        GtkWidget *widget,
                                        gint16 x,
                                        gint16 y);
# 65 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkfontsel.h" 1
# 56 "/usr/include/gtk-1.2/gtk/gtkfontsel.h"
typedef struct _GtkFontSelection GtkFontSelection;
typedef struct _GtkFontSelectionClass GtkFontSelectionClass;

typedef struct _GtkFontSelectionDialog GtkFontSelectionDialog;
typedef struct _GtkFontSelectionDialogClass GtkFontSelectionDialogClass;
# 76 "/usr/include/gtk-1.2/gtk/gtkfontsel.h"
typedef enum
{
  GTK_FONT_METRIC_PIXELS,
  GTK_FONT_METRIC_POINTS
} GtkFontMetricType;



typedef enum
{
  GTK_FONT_BITMAP = 1 << 0,
  GTK_FONT_SCALABLE = 1 << 1,
  GTK_FONT_SCALABLE_BITMAP = 1 << 2,

  GTK_FONT_ALL = 0x07
} GtkFontType;




typedef enum
{
  GTK_FONT_FILTER_BASE,
  GTK_FONT_FILTER_USER
} GtkFontFilterType;




typedef struct _GtkFontFilter GtkFontFilter;
struct _GtkFontFilter
{
  gint font_type;
  guint16 *property_filters[6];
  guint16 property_nfilters[6];
};


struct _GtkFontSelection
{
  GtkNotebook notebook;


  GtkWidget *main_vbox;
  GtkWidget *font_label;
  GtkWidget *font_entry;
  GtkWidget *font_clist;
  GtkWidget *font_style_entry;
  GtkWidget *font_style_clist;
  GtkWidget *size_entry;
  GtkWidget *size_clist;
  GtkWidget *pixels_button;
  GtkWidget *points_button;
  GtkWidget *filter_button;
  GtkWidget *preview_entry;
  GtkWidget *message_label;


  GtkWidget *info_vbox;
  GtkWidget *info_clist;
  GtkWidget *requested_font_name;
  GtkWidget *actual_font_name;


  GtkWidget *filter_vbox;
  GtkWidget *type_bitmaps_button;
  GtkWidget *type_scalable_button;
  GtkWidget *type_scaled_bitmaps_button;
  GtkWidget *filter_clists[6];

  GdkFont *font;
  gint font_index;
  gint style;
  GtkFontMetricType metric;

  gint size;



  gint selected_size;



  guint16 property_values[5];


  GtkFontFilter filters[2];
};


struct _GtkFontSelectionClass
{
  GtkNotebookClass parent_class;
};


struct _GtkFontSelectionDialog
{
  GtkWindow window;

  GtkWidget *fontsel;

  GtkWidget *main_vbox;
  GtkWidget *action_area;
  GtkWidget *ok_button;

  GtkWidget *apply_button;
  GtkWidget *cancel_button;


  gint dialog_width;
  gboolean auto_resize;
};

struct _GtkFontSelectionDialogClass
{
  GtkWindowClass parent_class;
};
# 202 "/usr/include/gtk-1.2/gtk/gtkfontsel.h"
GtkType gtk_font_selection_get_type (void);
GtkWidget* gtk_font_selection_new (void);
gchar* gtk_font_selection_get_font_name (GtkFontSelection *fontsel);
GdkFont* gtk_font_selection_get_font (GtkFontSelection *fontsel);
gboolean gtk_font_selection_set_font_name (GtkFontSelection *fontsel,
                                                 const gchar *fontname);
void gtk_font_selection_set_filter (GtkFontSelection *fontsel,
                                                 GtkFontFilterType filter_type,
                                                 GtkFontType font_type,
                                                 gchar **foundries,
                                                 gchar **weights,
                                                 gchar **slants,
                                                 gchar **setwidths,
                                                 gchar **spacings,
                                                 gchar **charsets);
gchar* gtk_font_selection_get_preview_text (GtkFontSelection *fontsel);
void gtk_font_selection_set_preview_text (GtkFontSelection *fontsel,
                                                 const gchar *text);
# 229 "/usr/include/gtk-1.2/gtk/gtkfontsel.h"
GtkType gtk_font_selection_dialog_get_type (void);
GtkWidget* gtk_font_selection_dialog_new (const gchar *title);






gchar* gtk_font_selection_dialog_get_font_name (GtkFontSelectionDialog *fsd);




GdkFont* gtk_font_selection_dialog_get_font (GtkFontSelectionDialog *fsd);





gboolean gtk_font_selection_dialog_set_font_name (GtkFontSelectionDialog *fsd,
                                                     const gchar *fontname);
# 273 "/usr/include/gtk-1.2/gtk/gtkfontsel.h"
void gtk_font_selection_dialog_set_filter (GtkFontSelectionDialog *fsd,
                                                 GtkFontFilterType filter_type,
                                                 GtkFontType font_type,
                                                 gchar **foundries,
                                                 gchar **weights,
                                                 gchar **slants,
                                                 gchar **setwidths,
                                                 gchar **spacings,
                                                 gchar **charsets);



gchar* gtk_font_selection_dialog_get_preview_text (GtkFontSelectionDialog *fsd);



void gtk_font_selection_dialog_set_preview_text (GtkFontSelectionDialog *fsd,
                                                     const gchar *text);
# 66 "/usr/include/gtk-1.2/gtk/gtk.h" 2

# 1 "/usr/include/gtk-1.2/gtk/gtkgamma.h" 1
# 48 "/usr/include/gtk-1.2/gtk/gtkgamma.h"
typedef struct _GtkGammaCurve GtkGammaCurve;
typedef struct _GtkGammaCurveClass GtkGammaCurveClass;


struct _GtkGammaCurve
{
  GtkVBox vbox;

  GtkWidget *table;
  GtkWidget *curve;
  GtkWidget *button[5];

  gfloat gamma;
  GtkWidget *gamma_dialog;
  GtkWidget *gamma_text;
};

struct _GtkGammaCurveClass
{
  GtkVBoxClass parent_class;
};


guint gtk_gamma_curve_get_type (void);
GtkWidget* gtk_gamma_curve_new (void);
# 68 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkgc.h" 1
# 39 "/usr/include/gtk-1.2/gtk/gtkgc.h"
GdkGC* gtk_gc_get (gint depth,
                       GdkColormap *colormap,
                       GdkGCValues *values,
                       GdkGCValuesMask values_mask);
void gtk_gc_release (GdkGC *gc);
# 69 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkhandlebox.h" 1
# 53 "/usr/include/gtk-1.2/gtk/gtkhandlebox.h"
typedef struct _GtkHandleBox GtkHandleBox;
typedef struct _GtkHandleBoxClass GtkHandleBoxClass;

struct _GtkHandleBox
{
  GtkBin bin;

  GdkWindow *bin_window;
  GdkWindow *float_window;
  GtkShadowType shadow_type;
  guint handle_position : 2;
  guint float_window_mapped : 1;
  guint child_detached : 1;
  guint in_drag : 1;
  guint shrink_on_detach : 1;

  gint snap_edge : 3;



  gint deskoff_x, deskoff_y;

  GtkAllocation attach_allocation;
  GtkAllocation float_allocation;
};

struct _GtkHandleBoxClass
{
  GtkBinClass parent_class;

  void (*child_attached) (GtkHandleBox *handle_box,
                                 GtkWidget *child);
  void (*child_detached) (GtkHandleBox *handle_box,
                                 GtkWidget *child);
};


GtkType gtk_handle_box_get_type (void);
GtkWidget* gtk_handle_box_new (void);
void gtk_handle_box_set_shadow_type (GtkHandleBox *handle_box,
                                                 GtkShadowType type);
void gtk_handle_box_set_handle_position (GtkHandleBox *handle_box,
                                                 GtkPositionType position);
void gtk_handle_box_set_snap_edge (GtkHandleBox *handle_box,
                                                 GtkPositionType edge);
# 70 "/usr/include/gtk-1.2/gtk/gtk.h" 2

# 1 "/usr/include/gtk-1.2/gtk/gtkhbbox.h" 1
# 44 "/usr/include/gtk-1.2/gtk/gtkhbbox.h"
typedef struct _GtkHButtonBox GtkHButtonBox;
typedef struct _GtkHButtonBoxClass GtkHButtonBoxClass;

struct _GtkHButtonBox
{
  GtkButtonBox button_box;
};

struct _GtkHButtonBoxClass
{
  GtkButtonBoxClass parent_class;
};


guint gtk_hbutton_box_get_type (void);
GtkWidget *gtk_hbutton_box_new (void);



gint gtk_hbutton_box_get_spacing_default (void);
GtkButtonBoxStyle gtk_hbutton_box_get_layout_default (void);

void gtk_hbutton_box_set_spacing_default (gint spacing);
void gtk_hbutton_box_set_layout_default (GtkButtonBoxStyle layout);
# 72 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkhpaned.h" 1
# 45 "/usr/include/gtk-1.2/gtk/gtkhpaned.h"
typedef struct _GtkHPaned GtkHPaned;
typedef struct _GtkHPanedClass GtkHPanedClass;

struct _GtkHPaned
{
  GtkPaned paned;
};

struct _GtkHPanedClass
{
  GtkPanedClass parent_class;
};


guint gtk_hpaned_get_type (void);
GtkWidget* gtk_hpaned_new (void);
# 73 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkhruler.h" 1
# 32 "/usr/include/gtk-1.2/gtk/gtkhruler.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkruler.h" 1
# 46 "/usr/include/gtk-1.2/gtk/gtkruler.h"
typedef struct _GtkRuler GtkRuler;
typedef struct _GtkRulerClass GtkRulerClass;
typedef struct _GtkRulerMetric GtkRulerMetric;




struct _GtkRuler
{
  GtkWidget widget;

  GdkPixmap *backing_store;
  GdkGC *non_gr_exp_gc;
  GtkRulerMetric *metric;
  gint xsrc, ysrc;
  gint slider_size;


  gfloat lower;

  gfloat upper;

  gfloat position;

  gfloat max_size;
};

struct _GtkRulerClass
{
  GtkWidgetClass parent_class;

  void (* draw_ticks) (GtkRuler *ruler);
  void (* draw_pos) (GtkRuler *ruler);
};

struct _GtkRulerMetric
{
  gchar *metric_name;
  gchar *abbrev;


  gfloat pixels_per_unit;
  gfloat ruler_scale[10];
  gint subdivide[5];
};


GtkType gtk_ruler_get_type (void);
void gtk_ruler_set_metric (GtkRuler *ruler,
                              GtkMetricType metric);
void gtk_ruler_set_range (GtkRuler *ruler,
                              gfloat lower,
                              gfloat upper,
                              gfloat position,
                              gfloat max_size);
void gtk_ruler_draw_ticks (GtkRuler *ruler);
void gtk_ruler_draw_pos (GtkRuler *ruler);
# 33 "/usr/include/gtk-1.2/gtk/gtkhruler.h" 2
# 45 "/usr/include/gtk-1.2/gtk/gtkhruler.h"
typedef struct _GtkHRuler GtkHRuler;
typedef struct _GtkHRulerClass GtkHRulerClass;

struct _GtkHRuler
{
  GtkRuler ruler;
};

struct _GtkHRulerClass
{
  GtkRulerClass parent_class;
};


guint gtk_hruler_get_type (void);
GtkWidget* gtk_hruler_new (void);
# 74 "/usr/include/gtk-1.2/gtk/gtk.h" 2


# 1 "/usr/include/gtk-1.2/gtk/gtkhseparator.h" 1
# 32 "/usr/include/gtk-1.2/gtk/gtkhseparator.h"
# 1 "/usr/include/gtk-1.2/gtk/gtkseparator.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkseparator.h"
typedef struct _GtkSeparator GtkSeparator;
typedef struct _GtkSeparatorClass GtkSeparatorClass;

struct _GtkSeparator
{
  GtkWidget widget;
};

struct _GtkSeparatorClass
{
  GtkWidgetClass parent_class;
};


GtkType gtk_separator_get_type (void);
# 33 "/usr/include/gtk-1.2/gtk/gtkhseparator.h" 2
# 47 "/usr/include/gtk-1.2/gtk/gtkhseparator.h"
typedef struct _GtkHSeparator GtkHSeparator;
typedef struct _GtkHSeparatorClass GtkHSeparatorClass;

struct _GtkHSeparator
{
  GtkSeparator separator;
};

struct _GtkHSeparatorClass
{
  GtkSeparatorClass parent_class;
};


GtkType gtk_hseparator_get_type (void);
GtkWidget* gtk_hseparator_new (void);
# 77 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkimage.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkimage.h"
typedef struct _GtkImage GtkImage;
typedef struct _GtkImageClass GtkImageClass;

struct _GtkImage
{
  GtkMisc misc;

  GdkImage *image;
  GdkBitmap *mask;
};

struct _GtkImageClass
{
  GtkMiscClass parent_class;
};


GtkType gtk_image_get_type (void);
GtkWidget* gtk_image_new (GdkImage *val,
                               GdkBitmap *mask);
void gtk_image_set (GtkImage *image,
                               GdkImage *val,
                               GdkBitmap *mask);
void gtk_image_get (GtkImage *image,
                               GdkImage **val,
                               GdkBitmap **mask);
# 78 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkinputdialog.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkinputdialog.h"
typedef struct _GtkInputDialog GtkInputDialog;
typedef struct _GtkInputDialogClass GtkInputDialogClass;

struct _GtkInputDialog
{
  GtkDialog dialog;

  GtkWidget *axis_list;
  GtkWidget *axis_listbox;
  GtkWidget *mode_optionmenu;

  GtkWidget *close_button;
  GtkWidget *save_button;

  GtkWidget *axis_items[GDK_AXIS_LAST];
  guint32 current_device;

  GtkWidget *keys_list;
  GtkWidget *keys_listbox;
};

struct _GtkInputDialogClass
{
  GtkWindowClass parent_class;

  void (* enable_device) (GtkInputDialog *inputd,
                                        guint32 devid);
  void (* disable_device) (GtkInputDialog *inputd,
                                        guint32 devid);
};


GtkType gtk_input_dialog_get_type (void);
GtkWidget* gtk_input_dialog_new (void);
# 79 "/usr/include/gtk-1.2/gtk/gtk.h" 2



# 1 "/usr/include/gtk-1.2/gtk/gtklayout.h" 1
# 48 "/usr/include/gtk-1.2/gtk/gtklayout.h"
typedef struct _GtkLayout GtkLayout;
typedef struct _GtkLayoutClass GtkLayoutClass;

struct _GtkLayout {
  GtkContainer container;

  GList *children;

  guint width;
  guint height;

  guint xoffset;
  guint yoffset;

  GtkAdjustment *hadjustment;
  GtkAdjustment *vadjustment;

  GdkWindow *bin_window;

  GdkVisibilityState visibility;
  gulong configure_serial;
  gint scroll_x;
  gint scroll_y;

  guint freeze_count;
};

struct _GtkLayoutClass {
  GtkContainerClass parent_class;

  void (*set_scroll_adjustments) (GtkLayout *layout,
                                     GtkAdjustment *hadjustment,
                                     GtkAdjustment *vadjustment);
};

GtkType gtk_layout_get_type (void);
GtkWidget* gtk_layout_new (GtkAdjustment *hadjustment,
                                           GtkAdjustment *vadjustment);
void gtk_layout_put (GtkLayout *layout,
                                           GtkWidget *widget,
                                           gint x,
                                           gint y);

void gtk_layout_move (GtkLayout *layout,
                                           GtkWidget *widget,
                                           gint x,
                                           gint y);

void gtk_layout_set_size (GtkLayout *layout,
                                           guint width,
                                           guint height);

GtkAdjustment* gtk_layout_get_hadjustment (GtkLayout *layout);
GtkAdjustment* gtk_layout_get_vadjustment (GtkLayout *layout);
void gtk_layout_set_hadjustment (GtkLayout *layout,
                                           GtkAdjustment *adjustment);
void gtk_layout_set_vadjustment (GtkLayout *layout,
                                           GtkAdjustment *adjustment);
# 115 "/usr/include/gtk-1.2/gtk/gtklayout.h"
void gtk_layout_freeze (GtkLayout *layout);
void gtk_layout_thaw (GtkLayout *layout);
# 83 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtklist.h" 1
# 34 "/usr/include/gtk-1.2/gtk/gtklist.h"
# 1 "/usr/include/gtk-1.2/gtk/gtklistitem.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtklistitem.h"
typedef struct _GtkListItem GtkListItem;
typedef struct _GtkListItemClass GtkListItemClass;

struct _GtkListItem
{
  GtkItem item;
};

struct _GtkListItemClass
{
  GtkItemClass parent_class;

  void (*toggle_focus_row) (GtkListItem *list_item);
  void (*select_all) (GtkListItem *list_item);
  void (*unselect_all) (GtkListItem *list_item);
  void (*undo_selection) (GtkListItem *list_item);
  void (*start_selection) (GtkListItem *list_item);
  void (*end_selection) (GtkListItem *list_item);
  void (*extend_selection) (GtkListItem *list_item,
                             GtkScrollType scroll_type,
                             gfloat position,
                             gboolean auto_start_selection);
  void (*scroll_horizontal) (GtkListItem *list_item,
                             GtkScrollType scroll_type,
                             gfloat position);
  void (*scroll_vertical) (GtkListItem *list_item,
                             GtkScrollType scroll_type,
                             gfloat position);
  void (*toggle_add_mode) (GtkListItem *list_item);
};


GtkType gtk_list_item_get_type (void);
GtkWidget* gtk_list_item_new (void);
GtkWidget* gtk_list_item_new_with_label (const gchar *label);
void gtk_list_item_select (GtkListItem *list_item);
void gtk_list_item_deselect (GtkListItem *list_item);
# 35 "/usr/include/gtk-1.2/gtk/gtklist.h" 2
# 48 "/usr/include/gtk-1.2/gtk/gtklist.h"
typedef struct _GtkList GtkList;
typedef struct _GtkListClass GtkListClass;

struct _GtkList
{
  GtkContainer container;

  GList *children;
  GList *selection;

  GList *undo_selection;
  GList *undo_unselection;

  GtkWidget *last_focus_child;
  GtkWidget *undo_focus_child;

  guint htimer;
  guint vtimer;

  gint anchor;
  gint drag_pos;
  GtkStateType anchor_state;

  guint selection_mode : 2;
  guint drag_selection:1;
  guint add_mode:1;
};

struct _GtkListClass
{
  GtkContainerClass parent_class;

  void (* selection_changed) (GtkList *list);
  void (* select_child) (GtkList *list,
                              GtkWidget *child);
  void (* unselect_child) (GtkList *list,
                              GtkWidget *child);
};


GtkType gtk_list_get_type (void);
GtkWidget* gtk_list_new (void);
void gtk_list_insert_items (GtkList *list,
                                           GList *items,
                                           gint position);
void gtk_list_append_items (GtkList *list,
                                           GList *items);
void gtk_list_prepend_items (GtkList *list,
                                           GList *items);
void gtk_list_remove_items (GtkList *list,
                                           GList *items);
void gtk_list_remove_items_no_unref (GtkList *list,
                                           GList *items);
void gtk_list_clear_items (GtkList *list,
                                           gint start,
                                           gint end);
void gtk_list_select_item (GtkList *list,
                                           gint item);
void gtk_list_unselect_item (GtkList *list,
                                           gint item);
void gtk_list_select_child (GtkList *list,
                                           GtkWidget *child);
void gtk_list_unselect_child (GtkList *list,
                                           GtkWidget *child);
gint gtk_list_child_position (GtkList *list,
                                           GtkWidget *child);
void gtk_list_set_selection_mode (GtkList *list,
                                           GtkSelectionMode mode);

void gtk_list_extend_selection (GtkList *list,
                                           GtkScrollType scroll_type,
                                           gfloat position,
                                           gboolean auto_start_selection);
void gtk_list_start_selection (GtkList *list);
void gtk_list_end_selection (GtkList *list);
void gtk_list_select_all (GtkList *list);
void gtk_list_unselect_all (GtkList *list);
void gtk_list_scroll_horizontal (GtkList *list,
                                           GtkScrollType scroll_type,
                                           gfloat position);
void gtk_list_scroll_vertical (GtkList *list,
                                           GtkScrollType scroll_type,
                                           gfloat position);
void gtk_list_toggle_add_mode (GtkList *list);
void gtk_list_toggle_focus_row (GtkList *list);
void gtk_list_toggle_row (GtkList *list,
                                           GtkWidget *item);
void gtk_list_undo_selection (GtkList *list);
void gtk_list_end_drag_selection (GtkList *list);
# 84 "/usr/include/gtk-1.2/gtk/gtk.h" 2



# 1 "/usr/include/gtk-1.2/gtk/gtkmenubar.h" 1
# 46 "/usr/include/gtk-1.2/gtk/gtkmenubar.h"
typedef struct _GtkMenuBar GtkMenuBar;
typedef struct _GtkMenuBarClass GtkMenuBarClass;

struct _GtkMenuBar
{
  GtkMenuShell menu_shell;

  GtkShadowType shadow_type;
};

struct _GtkMenuBarClass
{
  GtkMenuShellClass parent_class;
};


GtkType gtk_menu_bar_get_type (void);
GtkWidget* gtk_menu_bar_new (void);
void gtk_menu_bar_append (GtkMenuBar *menu_bar,
                                         GtkWidget *child);
void gtk_menu_bar_prepend (GtkMenuBar *menu_bar,
                                         GtkWidget *child);
void gtk_menu_bar_insert (GtkMenuBar *menu_bar,
                                         GtkWidget *child,
                                         gint position);
void gtk_menu_bar_set_shadow_type (GtkMenuBar *menu_bar,
                                         GtkShadowType type);
# 88 "/usr/include/gtk-1.2/gtk/gtk.h" 2







# 1 "/usr/include/gtk-1.2/gtk/gtkpacker.h" 1
# 48 "/usr/include/gtk-1.2/gtk/gtkpacker.h"
typedef struct _GtkPacker GtkPacker;
typedef struct _GtkPackerClass GtkPackerClass;
typedef struct _GtkPackerChild GtkPackerChild;

typedef enum
{
    GTK_PACK_EXPAND = 1 << 0,
    GTK_FILL_X = 1 << 1,
    GTK_FILL_Y = 1 << 2
} GtkPackerOptions;

typedef enum
{
    GTK_SIDE_TOP,
    GTK_SIDE_BOTTOM,
    GTK_SIDE_LEFT,
    GTK_SIDE_RIGHT
} GtkSideType;

typedef enum
{
  GTK_ANCHOR_CENTER,
  GTK_ANCHOR_NORTH,
  GTK_ANCHOR_NORTH_WEST,
  GTK_ANCHOR_NORTH_EAST,
  GTK_ANCHOR_SOUTH,
  GTK_ANCHOR_SOUTH_WEST,
  GTK_ANCHOR_SOUTH_EAST,
  GTK_ANCHOR_WEST,
  GTK_ANCHOR_EAST,
  GTK_ANCHOR_N = GTK_ANCHOR_NORTH,
  GTK_ANCHOR_NW = GTK_ANCHOR_NORTH_WEST,
  GTK_ANCHOR_NE = GTK_ANCHOR_NORTH_EAST,
  GTK_ANCHOR_S = GTK_ANCHOR_SOUTH,
  GTK_ANCHOR_SW = GTK_ANCHOR_SOUTH_WEST,
  GTK_ANCHOR_SE = GTK_ANCHOR_SOUTH_EAST,
  GTK_ANCHOR_W = GTK_ANCHOR_WEST,
  GTK_ANCHOR_E = GTK_ANCHOR_EAST
} GtkAnchorType;

struct _GtkPackerChild
{
  GtkWidget *widget;

  GtkAnchorType anchor;
  GtkSideType side;
  GtkPackerOptions options;

  guint use_default : 1;

  guint border_width : 16;
  guint pad_x : 16;
  guint pad_y : 16;
  guint i_pad_x : 16;
  guint i_pad_y : 16;
};

struct _GtkPacker
{
  GtkContainer parent;

  GList *children;

  guint spacing;

  guint default_border_width : 16;
  guint default_pad_x : 16;
  guint default_pad_y : 16;
  guint default_i_pad_x : 16;
  guint default_i_pad_y : 16;
};

struct _GtkPackerClass
{
  GtkContainerClass parent_class;
};


GtkType gtk_packer_get_type (void);
GtkWidget* gtk_packer_new (void);
void gtk_packer_add_defaults (GtkPacker *packer,
                                                GtkWidget *child,
                                                GtkSideType side,
                                                GtkAnchorType anchor,
                                                GtkPackerOptions options);
void gtk_packer_add (GtkPacker *packer,
                                                GtkWidget *child,
                                                GtkSideType side,
                                                GtkAnchorType anchor,
                                                GtkPackerOptions options,
                                                guint border_width,
                                                guint pad_x,
                                                guint pad_y,
                                                guint i_pad_x,
                                                guint i_pad_y);
void gtk_packer_set_child_packing (GtkPacker *packer,
                                                GtkWidget *child,
                                                GtkSideType side,
                                                GtkAnchorType anchor,
                                                GtkPackerOptions options,
                                                guint border_width,
                                                guint pad_x,
                                                guint pad_y,
                                                guint i_pad_x,
                                                guint i_pad_y);
void gtk_packer_reorder_child (GtkPacker *packer,
                                                GtkWidget *child,
                                                gint position);
void gtk_packer_set_spacing (GtkPacker *packer,
                                                guint spacing);
void gtk_packer_set_default_border_width (GtkPacker *packer,
                                                guint border);
void gtk_packer_set_default_pad (GtkPacker *packer,
                                                guint pad_x,
                                                guint pad_y);
void gtk_packer_set_default_ipad (GtkPacker *packer,
                                                guint i_pad_x,
                                                guint i_pad_y);
# 96 "/usr/include/gtk-1.2/gtk/gtk.h" 2

# 1 "/usr/include/gtk-1.2/gtk/gtkpixmap.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkpixmap.h"
typedef struct _GtkPixmap GtkPixmap;
typedef struct _GtkPixmapClass GtkPixmapClass;

struct _GtkPixmap
{
  GtkMisc misc;

  GdkPixmap *pixmap;
  GdkBitmap *mask;

  GdkPixmap *pixmap_insensitive;
  guint build_insensitive : 1;
};

struct _GtkPixmapClass
{
  GtkMiscClass parent_class;
};


GtkType gtk_pixmap_get_type (void);
GtkWidget* gtk_pixmap_new (GdkPixmap *pixmap,
                                  GdkBitmap *mask);
void gtk_pixmap_set (GtkPixmap *pixmap,
                                  GdkPixmap *val,
                                  GdkBitmap *mask);
void gtk_pixmap_get (GtkPixmap *pixmap,
                                  GdkPixmap **val,
                                  GdkBitmap **mask);

void gtk_pixmap_set_build_insensitive (GtkPixmap *pixmap,
                                             guint build);
# 98 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkplug.h" 1
# 44 "/usr/include/gtk-1.2/gtk/gtkplug.h"
typedef struct _GtkPlug GtkPlug;
typedef struct _GtkPlugClass GtkPlugClass;


struct _GtkPlug
{
  GtkWindow window;

  GdkWindow *socket_window;
  gint same_app;
};

struct _GtkPlugClass
{
  GtkWindowClass parent_class;
};


guint gtk_plug_get_type (void);
void gtk_plug_construct (GtkPlug *plug, guint32 socket_id);
GtkWidget* gtk_plug_new (guint32 socket_id);
# 99 "/usr/include/gtk-1.2/gtk/gtk.h" 2

# 1 "/usr/include/gtk-1.2/gtk/gtkprogress.h" 1
# 48 "/usr/include/gtk-1.2/gtk/gtkprogress.h"
typedef struct _GtkProgress GtkProgress;
typedef struct _GtkProgressClass GtkProgressClass;


struct _GtkProgress
{
  GtkWidget widget;

  GtkAdjustment *adjustment;
  GdkPixmap *offscreen_pixmap;
  gchar *format;
  gfloat x_align;
  gfloat y_align;

  guint show_text : 1;
  guint activity_mode : 1;
};

struct _GtkProgressClass
{
  GtkWidgetClass parent_class;

  void (* paint) (GtkProgress *progress);
  void (* update) (GtkProgress *progress);
  void (* act_mode_enter) (GtkProgress *progress);
};


GtkType gtk_progress_get_type (void);
void gtk_progress_set_show_text (GtkProgress *progress,
                                             gint show_text);
void gtk_progress_set_text_alignment (GtkProgress *progress,
                                             gfloat x_align,
                                             gfloat y_align);
void gtk_progress_set_format_string (GtkProgress *progress,
                                             const gchar *format);
void gtk_progress_set_adjustment (GtkProgress *progress,
                                             GtkAdjustment *adjustment);
void gtk_progress_configure (GtkProgress *progress,
                                             gfloat value,
                                             gfloat min,
                                             gfloat max);
void gtk_progress_set_percentage (GtkProgress *progress,
                                             gfloat percentage);
void gtk_progress_set_value (GtkProgress *progress,
                                             gfloat value);
gfloat gtk_progress_get_value (GtkProgress *progress);
void gtk_progress_set_activity_mode (GtkProgress *progress,
                                             guint activity_mode);
gchar* gtk_progress_get_current_text (GtkProgress *progress);
gchar* gtk_progress_get_text_from_value (GtkProgress *progress,
                                             gfloat value);
gfloat gtk_progress_get_current_percentage (GtkProgress *progress);
gfloat gtk_progress_get_percentage_from_value (GtkProgress *progress,
                                                   gfloat value);
# 101 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkprogressbar.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkprogressbar.h"
typedef struct _GtkProgressBar GtkProgressBar;
typedef struct _GtkProgressBarClass GtkProgressBarClass;

typedef enum
{
  GTK_PROGRESS_CONTINUOUS,
  GTK_PROGRESS_DISCRETE
} GtkProgressBarStyle;

typedef enum
{
  GTK_PROGRESS_LEFT_TO_RIGHT,
  GTK_PROGRESS_RIGHT_TO_LEFT,
  GTK_PROGRESS_BOTTOM_TO_TOP,
  GTK_PROGRESS_TOP_TO_BOTTOM
} GtkProgressBarOrientation;

struct _GtkProgressBar
{
  GtkProgress progress;

  GtkProgressBarStyle bar_style;
  GtkProgressBarOrientation orientation;

  guint blocks;
  gint in_block;

  gint activity_pos;
  guint activity_step;
  guint activity_blocks;
  guint activity_dir : 1;
};

struct _GtkProgressBarClass
{
  GtkProgressClass parent_class;
};


GtkType gtk_progress_bar_get_type (void);
GtkWidget* gtk_progress_bar_new (void);
GtkWidget* gtk_progress_bar_new_with_adjustment (GtkAdjustment *adjustment);
void gtk_progress_bar_set_bar_style (GtkProgressBar *pbar,
                                                  GtkProgressBarStyle style);
void gtk_progress_bar_set_discrete_blocks (GtkProgressBar *pbar,
                                                  guint blocks);
void gtk_progress_bar_set_activity_step (GtkProgressBar *pbar,
                                                  guint step);
void gtk_progress_bar_set_activity_blocks (GtkProgressBar *pbar,
                                                  guint blocks);
void gtk_progress_bar_set_orientation (GtkProgressBar *pbar,
                                                  GtkProgressBarOrientation orientation);
void gtk_progress_bar_update (GtkProgressBar *pbar,
                                                  gfloat percentage);
# 102 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkradiobutton.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkradiobutton.h"
typedef struct _GtkRadioButton GtkRadioButton;
typedef struct _GtkRadioButtonClass GtkRadioButtonClass;

struct _GtkRadioButton
{
  GtkCheckButton check_button;

  GSList *group;
};

struct _GtkRadioButtonClass
{
  GtkCheckButtonClass parent_class;
};


GtkType gtk_radio_button_get_type (void);
GtkWidget* gtk_radio_button_new (GSList *group);
GtkWidget* gtk_radio_button_new_from_widget (GtkRadioButton *group);
GtkWidget* gtk_radio_button_new_with_label (GSList *group,
                                              const gchar *label);
GtkWidget* gtk_radio_button_new_with_label_from_widget (GtkRadioButton *group,
                                                         const gchar *label);
GSList* gtk_radio_button_group (GtkRadioButton *radio_button);
void gtk_radio_button_set_group (GtkRadioButton *radio_button,
                                              GSList *group);
# 103 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkradiomenuitem.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkradiomenuitem.h"
typedef struct _GtkRadioMenuItem GtkRadioMenuItem;
typedef struct _GtkRadioMenuItemClass GtkRadioMenuItemClass;

struct _GtkRadioMenuItem
{
  GtkCheckMenuItem check_menu_item;

  GSList *group;
};

struct _GtkRadioMenuItemClass
{
  GtkCheckMenuItemClass parent_class;
};


GtkType gtk_radio_menu_item_get_type (void);
GtkWidget* gtk_radio_menu_item_new (GSList *group);
GtkWidget* gtk_radio_menu_item_new_with_label (GSList *group,
                                               const gchar *label);
GSList* gtk_radio_menu_item_group (GtkRadioMenuItem *radio_menu_item);
void gtk_radio_menu_item_set_group (GtkRadioMenuItem *radio_menu_item,
                                               GSList *group);
# 104 "/usr/include/gtk-1.2/gtk/gtk.h" 2

# 1 "/usr/include/gtk-1.2/gtk/gtkrc.h" 1
# 39 "/usr/include/gtk-1.2/gtk/gtkrc.h"
typedef enum {
  GTK_RC_FG = 1 << 0,
  GTK_RC_BG = 1 << 1,
  GTK_RC_TEXT = 1 << 2,
  GTK_RC_BASE = 1 << 3
} GtkRcFlags;

struct _GtkRcStyle
{
  gchar *name;
  gchar *font_name;
  gchar *fontset_name;
  gchar *bg_pixmap_name[5];

  GtkRcFlags color_flags[5];
  GdkColor fg[5];
  GdkColor bg[5];
  GdkColor text[5];
  GdkColor base[5];

  GtkThemeEngine *engine;
  gpointer engine_data;
};

void gtk_rc_init (void);
void gtk_rc_add_default_file (const gchar *filename);
void gtk_rc_set_default_files (gchar **filenames);
gchar** gtk_rc_get_default_files (void);
void gtk_rc_parse (const gchar *filename);
void gtk_rc_parse_string (const gchar *rc_string);
gboolean gtk_rc_reparse_all (void);
GtkStyle* gtk_rc_get_style (GtkWidget *widget);
void gtk_rc_add_widget_name_style (GtkRcStyle *rc_style,
                                         const gchar *pattern);
void gtk_rc_add_widget_class_style (GtkRcStyle *rc_style,
                                         const gchar *pattern);
void gtk_rc_add_class_style (GtkRcStyle *rc_style,
                                         const gchar *pattern);

GtkRcStyle* gtk_rc_style_new (void);
void gtk_rc_style_ref (GtkRcStyle *rc_style);
void gtk_rc_style_unref (GtkRcStyle *rc_style);




typedef GdkPixmap* (*GtkImageLoader) (GdkWindow *window,
                                                 GdkColormap *colormap,
                                                 GdkBitmap **mask,
                                                 GdkColor *transparent_color,
                                                 const gchar *filename);
void gtk_rc_set_image_loader (GtkImageLoader loader);

GdkPixmap* gtk_rc_load_image (GdkColormap *colormap,
                                                 GdkColor *transparent_color,
                                                 const gchar *filename);
gchar* gtk_rc_find_pixmap_in_path (GScanner *scanner,
                                                 const gchar *pixmap_file);
gchar* gtk_rc_find_module_in_path (const gchar *module_file);
gchar* gtk_rc_get_theme_dir (void);
gchar* gtk_rc_get_module_dir (void);


typedef enum {
  GTK_RC_TOKEN_INVALID = G_TOKEN_LAST,
  GTK_RC_TOKEN_INCLUDE,
  GTK_RC_TOKEN_NORMAL,
  GTK_RC_TOKEN_ACTIVE,
  GTK_RC_TOKEN_PRELIGHT,
  GTK_RC_TOKEN_SELECTED,
  GTK_RC_TOKEN_INSENSITIVE,
  GTK_RC_TOKEN_FG,
  GTK_RC_TOKEN_BG,
  GTK_RC_TOKEN_BASE,
  GTK_RC_TOKEN_TEXT,
  GTK_RC_TOKEN_FONT,
  GTK_RC_TOKEN_FONTSET,
  GTK_RC_TOKEN_BG_PIXMAP,
  GTK_RC_TOKEN_PIXMAP_PATH,
  GTK_RC_TOKEN_STYLE,
  GTK_RC_TOKEN_BINDING,
  GTK_RC_TOKEN_BIND,
  GTK_RC_TOKEN_WIDGET,
  GTK_RC_TOKEN_WIDGET_CLASS,
  GTK_RC_TOKEN_CLASS,
  GTK_RC_TOKEN_LOWEST,
  GTK_RC_TOKEN_GTK,
  GTK_RC_TOKEN_APPLICATION,
  GTK_RC_TOKEN_RC,
  GTK_RC_TOKEN_HIGHEST,
  GTK_RC_TOKEN_ENGINE,
  GTK_RC_TOKEN_MODULE_PATH,
  GTK_RC_TOKEN_LAST
} GtkRcTokenType;

guint gtk_rc_parse_color (GScanner *scanner,
                                 GdkColor *color);
guint gtk_rc_parse_state (GScanner *scanner,
                                 GtkStateType *state);
guint gtk_rc_parse_priority (GScanner *scanner,
                                 GtkPathPriorityType *priority);
# 106 "/usr/include/gtk-1.2/gtk/gtk.h" 2







# 1 "/usr/include/gtk-1.2/gtk/gtksocket.h" 1
# 41 "/usr/include/gtk-1.2/gtk/gtksocket.h"
typedef struct _GtkSocket GtkSocket;
typedef struct _GtkSocketClass GtkSocketClass;

struct _GtkSocket
{
  GtkContainer container;

  guint16 request_width;
  guint16 request_height;
  guint16 current_width;
  guint16 current_height;

  GdkWindow *plug_window;
  guint same_app : 1;
  guint focus_in : 1;
  guint have_size : 1;
  guint need_map : 1;
};

struct _GtkSocketClass
{
  GtkContainerClass parent_class;
};


GtkWidget* gtk_socket_new (void);
guint gtk_socket_get_type (void );
void gtk_socket_steal (GtkSocket *socket,
                                    guint32 wid);
# 114 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkspinbutton.h" 1
# 51 "/usr/include/gtk-1.2/gtk/gtkspinbutton.h"
typedef enum
{
  GTK_UPDATE_ALWAYS,
  GTK_UPDATE_IF_VALID
} GtkSpinButtonUpdatePolicy;

typedef enum
{
  GTK_SPIN_STEP_FORWARD,
  GTK_SPIN_STEP_BACKWARD,
  GTK_SPIN_PAGE_FORWARD,
  GTK_SPIN_PAGE_BACKWARD,
  GTK_SPIN_HOME,
  GTK_SPIN_END,
  GTK_SPIN_USER_DEFINED
} GtkSpinType;


typedef struct _GtkSpinButton GtkSpinButton;
typedef struct _GtkSpinButtonClass GtkSpinButtonClass;


struct _GtkSpinButton
{
  GtkEntry entry;

  GtkAdjustment *adjustment;

  GdkWindow *panel;
  GtkShadowType shadow_type;

  guint32 timer;
  guint32 ev_time;

  gfloat climb_rate;
  gfloat timer_step;

  GtkSpinButtonUpdatePolicy update_policy;

  guint in_child : 2;
  guint click_child : 2;
  guint button : 2;
  guint need_timer : 1;
  guint timer_calls : 3;
  guint digits : 3;
  guint numeric : 1;
  guint wrap : 1;
  guint snap_to_ticks : 1;
};

struct _GtkSpinButtonClass
{
  GtkEntryClass parent_class;
};


GtkType gtk_spin_button_get_type (void);

void gtk_spin_button_configure (GtkSpinButton *spin_button,
                                                    GtkAdjustment *adjustment,
                                                    gfloat climb_rate,
                                                    guint digits);

GtkWidget* gtk_spin_button_new (GtkAdjustment *adjustment,
                                                    gfloat climb_rate,
                                                    guint digits);

void gtk_spin_button_set_adjustment (GtkSpinButton *spin_button,
                                                    GtkAdjustment *adjustment);

GtkAdjustment* gtk_spin_button_get_adjustment (GtkSpinButton *spin_button);

void gtk_spin_button_set_digits (GtkSpinButton *spin_button,
                                                    guint digits);

gfloat gtk_spin_button_get_value_as_float (GtkSpinButton *spin_button);

gint gtk_spin_button_get_value_as_int (GtkSpinButton *spin_button);

void gtk_spin_button_set_value (GtkSpinButton *spin_button,
                                                    gfloat value);

void gtk_spin_button_set_update_policy (GtkSpinButton *spin_button,
                                                    GtkSpinButtonUpdatePolicy policy);

void gtk_spin_button_set_numeric (GtkSpinButton *spin_button,
                                                    gboolean numeric);

void gtk_spin_button_spin (GtkSpinButton *spin_button,
                                                    GtkSpinType direction,
                                                    gfloat increment);

void gtk_spin_button_set_wrap (GtkSpinButton *spin_button,
                                                    gboolean wrap);

void gtk_spin_button_set_shadow_type (GtkSpinButton *spin_button,
                                                    GtkShadowType shadow_type);

void gtk_spin_button_set_snap_to_ticks (GtkSpinButton *spin_button,
                                                    gboolean snap_to_ticks);
void gtk_spin_button_update (GtkSpinButton *spin_button);
# 115 "/usr/include/gtk-1.2/gtk/gtk.h" 2

# 1 "/usr/include/gtk-1.2/gtk/gtkstatusbar.h" 1
# 41 "/usr/include/gtk-1.2/gtk/gtkstatusbar.h"
typedef struct _GtkStatusbar GtkStatusbar;
typedef struct _GtkStatusbarClass GtkStatusbarClass;
typedef struct _GtkStatusbarMsg GtkStatusbarMsg;

struct _GtkStatusbar
{
  GtkHBox parent_widget;

  GtkWidget *frame;
  GtkWidget *label;

  GSList *messages;
  GSList *keys;

  guint seq_context_id;
  guint seq_message_id;
};

struct _GtkStatusbarClass
{
  GtkHBoxClass parent_class;

  GMemChunk *messages_mem_chunk;

  void (*text_pushed) (GtkStatusbar *statusbar,
                         guint context_id,
                         const gchar *text);
  void (*text_popped) (GtkStatusbar *statusbar,
                         guint context_id,
                         const gchar *text);
};

struct _GtkStatusbarMsg
{
  gchar *text;
  guint context_id;
  guint message_id;
};

guint gtk_statusbar_get_type (void);
GtkWidget* gtk_statusbar_new (void);
guint gtk_statusbar_get_context_id (GtkStatusbar *statusbar,
                                         const gchar *context_description);

guint gtk_statusbar_push (GtkStatusbar *statusbar,
                                         guint context_id,
                                         const gchar *text);
void gtk_statusbar_pop (GtkStatusbar *statusbar,
                                         guint context_id);
void gtk_statusbar_remove (GtkStatusbar *statusbar,
                                         guint context_id,
                                         guint message_id);
# 117 "/usr/include/gtk-1.2/gtk/gtk.h" 2

# 1 "/usr/include/gtk-1.2/gtk/gtktearoffmenuitem.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtktearoffmenuitem.h"
typedef struct _GtkTearoffMenuItem GtkTearoffMenuItem;
typedef struct _GtkTearoffMenuItemClass GtkTearoffMenuItemClass;

struct _GtkTearoffMenuItem
{
  GtkMenuItem menu_item;

  guint torn_off : 1;
};

struct _GtkTearoffMenuItemClass
{
  GtkMenuItemClass parent_class;
};


GtkType gtk_tearoff_menu_item_get_type (void);
GtkWidget* gtk_tearoff_menu_item_new (void);
# 119 "/usr/include/gtk-1.2/gtk/gtk.h" 2

# 1 "/usr/include/gtk-1.2/gtk/gtkthemes.h" 1
# 41 "/usr/include/gtk-1.2/gtk/gtkthemes.h"
struct _GtkThemeEngine {




  guint (*parse_rc_style) (GScanner *scanner, GtkRcStyle *rc_style);





  void (*merge_rc_style) (GtkRcStyle *dest, GtkRcStyle *src);


  void (*rc_style_to_style) (GtkStyle *style, GtkRcStyle *rc_style);





  void (*duplicate_style) (GtkStyle *dest, GtkStyle *src);






  void (*realize_style) (GtkStyle *new_style);




  void (*unrealize_style) (GtkStyle *new_style);


  void (*destroy_rc_style) (GtkRcStyle *rc_style);


  void (*destroy_style) (GtkStyle *style);

  void (*set_background) (GtkStyle *style,
                          GdkWindow *window,
                          GtkStateType state_type);
};

GtkThemeEngine *gtk_theme_engine_get (const gchar *name);
void gtk_theme_engine_ref (GtkThemeEngine *engine);
void gtk_theme_engine_unref (GtkThemeEngine *engine);
# 121 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtktipsquery.h" 1
# 51 "/usr/include/gtk-1.2/gtk/gtktipsquery.h"
typedef struct _GtkTipsQuery GtkTipsQuery;
typedef struct _GtkTipsQueryClass GtkTipsQueryClass;



struct _GtkTipsQuery
{
  GtkLabel label;

  guint emit_always : 1;
  guint in_query : 1;
  gchar *label_inactive;
  gchar *label_no_tip;

  GtkWidget *caller;
  GtkWidget *last_crossed;

  GdkCursor *query_cursor;
};

struct _GtkTipsQueryClass
{
  GtkLabelClass parent_class;

  void (*start_query) (GtkTipsQuery *tips_query);
  void (*stop_query) (GtkTipsQuery *tips_query);
  void (*widget_entered) (GtkTipsQuery *tips_query,
                                 GtkWidget *widget,
                                 const gchar *tip_text,
                                 const gchar *tip_private);
  gint (*widget_selected) (GtkTipsQuery *tips_query,
                                 GtkWidget *widget,
                                 const gchar *tip_text,
                                 const gchar *tip_private,
                                 GdkEventButton *event);
};



GtkType gtk_tips_query_get_type (void);
GtkWidget* gtk_tips_query_new (void);
void gtk_tips_query_start_query (GtkTipsQuery *tips_query);
void gtk_tips_query_stop_query (GtkTipsQuery *tips_query);
void gtk_tips_query_set_caller (GtkTipsQuery *tips_query,
                                                 GtkWidget *caller);
void gtk_tips_query_set_labels (GtkTipsQuery *tips_query,
                                                 const gchar *label_inactive,
                                                 const gchar *label_no_tip);
# 122 "/usr/include/gtk-1.2/gtk/gtk.h" 2

# 1 "/usr/include/gtk-1.2/gtk/gtktoolbar.h" 1
# 51 "/usr/include/gtk-1.2/gtk/gtktoolbar.h"
typedef enum
{
  GTK_TOOLBAR_CHILD_SPACE,
  GTK_TOOLBAR_CHILD_BUTTON,
  GTK_TOOLBAR_CHILD_TOGGLEBUTTON,
  GTK_TOOLBAR_CHILD_RADIOBUTTON,
  GTK_TOOLBAR_CHILD_WIDGET
} GtkToolbarChildType;

typedef enum
{
  GTK_TOOLBAR_SPACE_EMPTY,
  GTK_TOOLBAR_SPACE_LINE
} GtkToolbarSpaceStyle;

typedef struct _GtkToolbarChild GtkToolbarChild;
typedef struct _GtkToolbar GtkToolbar;
typedef struct _GtkToolbarClass GtkToolbarClass;

struct _GtkToolbarChild
{
  GtkToolbarChildType type;
  GtkWidget *widget;
  GtkWidget *icon;
  GtkWidget *label;
};

struct _GtkToolbar
{
  GtkContainer container;

  gint num_children;
  GList *children;
  GtkOrientation orientation;
  GtkToolbarStyle style;
  gint space_size;
  GtkToolbarSpaceStyle space_style;

  GtkTooltips *tooltips;

  gint button_maxw;
  gint button_maxh;
  GtkReliefStyle relief;
};

struct _GtkToolbarClass
{
  GtkContainerClass parent_class;

  void (* orientation_changed) (GtkToolbar *toolbar,
                                GtkOrientation orientation);
  void (* style_changed) (GtkToolbar *toolbar,
                                GtkToolbarStyle style);
};


GtkType gtk_toolbar_get_type (void);
GtkWidget* gtk_toolbar_new (GtkOrientation orientation,
                                        GtkToolbarStyle style);


GtkWidget* gtk_toolbar_append_item (GtkToolbar *toolbar,
                                        const char *text,
                                        const char *tooltip_text,
                                        const char *tooltip_private_text,
                                        GtkWidget *icon,
                                        GtkSignalFunc callback,
                                        gpointer user_data);
GtkWidget* gtk_toolbar_prepend_item (GtkToolbar *toolbar,
                                        const char *text,
                                        const char *tooltip_text,
                                        const char *tooltip_private_text,
                                        GtkWidget *icon,
                                        GtkSignalFunc callback,
                                        gpointer user_data);
GtkWidget* gtk_toolbar_insert_item (GtkToolbar *toolbar,
                                        const char *text,
                                        const char *tooltip_text,
                                        const char *tooltip_private_text,
                                        GtkWidget *icon,
                                        GtkSignalFunc callback,
                                        gpointer user_data,
                                        gint position);


void gtk_toolbar_append_space (GtkToolbar *toolbar);
void gtk_toolbar_prepend_space (GtkToolbar *toolbar);
void gtk_toolbar_insert_space (GtkToolbar *toolbar,
                                        gint position);


GtkWidget* gtk_toolbar_append_element (GtkToolbar *toolbar,
                                        GtkToolbarChildType type,
                                        GtkWidget *widget,
                                        const char *text,
                                        const char *tooltip_text,
                                        const char *tooltip_private_text,
                                        GtkWidget *icon,
                                        GtkSignalFunc callback,
                                        gpointer user_data);

GtkWidget* gtk_toolbar_prepend_element (GtkToolbar *toolbar,
                                        GtkToolbarChildType type,
                                        GtkWidget *widget,
                                        const char *text,
                                        const char *tooltip_text,
                                        const char *tooltip_private_text,
                                        GtkWidget *icon,
                                        GtkSignalFunc callback,
                                        gpointer user_data);

GtkWidget* gtk_toolbar_insert_element (GtkToolbar *toolbar,
                                        GtkToolbarChildType type,
                                        GtkWidget *widget,
                                        const char *text,
                                        const char *tooltip_text,
                                        const char *tooltip_private_text,
                                        GtkWidget *icon,
                                        GtkSignalFunc callback,
                                        gpointer user_data,
                                        gint position);


void gtk_toolbar_append_widget (GtkToolbar *toolbar,
                                        GtkWidget *widget,
                                        const char *tooltip_text,
                                        const char *tooltip_private_text);
void gtk_toolbar_prepend_widget (GtkToolbar *toolbar,
                                        GtkWidget *widget,
                                        const char *tooltip_text,
                                        const char *tooltip_private_text);
void gtk_toolbar_insert_widget (GtkToolbar *toolbar,
                                        GtkWidget *widget,
                                        const char *tooltip_text,
                                        const char *tooltip_private_text,
                                        gint position);


void gtk_toolbar_set_orientation (GtkToolbar *toolbar,
                                              GtkOrientation orientation);
void gtk_toolbar_set_style (GtkToolbar *toolbar,
                                              GtkToolbarStyle style);
void gtk_toolbar_set_space_size (GtkToolbar *toolbar,
                                              gint space_size);
void gtk_toolbar_set_space_style (GtkToolbar *toolbar,
                                              GtkToolbarSpaceStyle space_style);
void gtk_toolbar_set_tooltips (GtkToolbar *toolbar,
                                              gint enable);
void gtk_toolbar_set_button_relief (GtkToolbar *toolbar,
                                              GtkReliefStyle relief);
GtkReliefStyle gtk_toolbar_get_button_relief (GtkToolbar *toolbar);
# 124 "/usr/include/gtk-1.2/gtk/gtk.h" 2

# 1 "/usr/include/gtk-1.2/gtk/gtktree.h" 1
# 52 "/usr/include/gtk-1.2/gtk/gtktree.h"
typedef enum
{
  GTK_TREE_VIEW_LINE,
  GTK_TREE_VIEW_ITEM
} GtkTreeViewMode;

typedef struct _GtkTree GtkTree;
typedef struct _GtkTreeClass GtkTreeClass;

struct _GtkTree
{
  GtkContainer container;

  GList *children;

  GtkTree* root_tree;
  GtkWidget* tree_owner;
  GList *selection;
  guint level;
  guint indent_value;
  guint current_indent;
  guint selection_mode : 2;
  guint view_mode : 1;
  guint view_line : 1;
};

struct _GtkTreeClass
{
  GtkContainerClass parent_class;

  void (* selection_changed) (GtkTree *tree);
  void (* select_child) (GtkTree *tree,
                              GtkWidget *child);
  void (* unselect_child) (GtkTree *tree,
                              GtkWidget *child);
};


GtkType gtk_tree_get_type (void);
GtkWidget* gtk_tree_new (void);
void gtk_tree_append (GtkTree *tree,
                                        GtkWidget *tree_item);
void gtk_tree_prepend (GtkTree *tree,
                                        GtkWidget *tree_item);
void gtk_tree_insert (GtkTree *tree,
                                        GtkWidget *tree_item,
                                        gint position);
void gtk_tree_remove_items (GtkTree *tree,
                                        GList *items);
void gtk_tree_clear_items (GtkTree *tree,
                                        gint start,
                                        gint end);
void gtk_tree_select_item (GtkTree *tree,
                                        gint item);
void gtk_tree_unselect_item (GtkTree *tree,
                                        gint item);
void gtk_tree_select_child (GtkTree *tree,
                                        GtkWidget *tree_item);
void gtk_tree_unselect_child (GtkTree *tree,
                                        GtkWidget *tree_item);
gint gtk_tree_child_position (GtkTree *tree,
                                        GtkWidget *child);
void gtk_tree_set_selection_mode (GtkTree *tree,
                                        GtkSelectionMode mode);
void gtk_tree_set_view_mode (GtkTree *tree,
                                        GtkTreeViewMode mode);
void gtk_tree_set_view_lines (GtkTree *tree,
                                        guint flag);



void gtk_tree_remove_item (GtkTree *tree,
                                        GtkWidget *child);
# 126 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtktreeitem.h" 1
# 49 "/usr/include/gtk-1.2/gtk/gtktreeitem.h"
typedef struct _GtkTreeItem GtkTreeItem;
typedef struct _GtkTreeItemClass GtkTreeItemClass;

struct _GtkTreeItem
{
  GtkItem item;

  GtkWidget *subtree;
  GtkWidget *pixmaps_box;
  GtkWidget *plus_pix_widget, *minus_pix_widget;

  GList *pixmaps;

  guint expanded : 1;
};

struct _GtkTreeItemClass
{
  GtkItemClass parent_class;

  void (* expand) (GtkTreeItem *tree_item);
  void (* collapse) (GtkTreeItem *tree_item);
};


GtkType gtk_tree_item_get_type (void);
GtkWidget* gtk_tree_item_new (void);
GtkWidget* gtk_tree_item_new_with_label (const gchar *label);
void gtk_tree_item_set_subtree (GtkTreeItem *tree_item,
                                         GtkWidget *subtree);
void gtk_tree_item_remove_subtree (GtkTreeItem *tree_item);
void gtk_tree_item_select (GtkTreeItem *tree_item);
void gtk_tree_item_deselect (GtkTreeItem *tree_item);
void gtk_tree_item_expand (GtkTreeItem *tree_item);
void gtk_tree_item_collapse (GtkTreeItem *tree_item);
# 127 "/usr/include/gtk-1.2/gtk/gtk.h" 2


# 1 "/usr/include/gtk-1.2/gtk/gtkvbbox.h" 1
# 44 "/usr/include/gtk-1.2/gtk/gtkvbbox.h"
typedef struct _GtkVButtonBox GtkVButtonBox;
typedef struct _GtkVButtonBoxClass GtkVButtonBoxClass;

struct _GtkVButtonBox
{
  GtkButtonBox button_box;
};

struct _GtkVButtonBoxClass
{
  GtkButtonBoxClass parent_class;
};


guint gtk_vbutton_box_get_type (void);
GtkWidget *gtk_vbutton_box_new (void);



gint gtk_vbutton_box_get_spacing_default (void);
void gtk_vbutton_box_set_spacing_default (gint spacing);

GtkButtonBoxStyle gtk_vbutton_box_get_layout_default (void);
void gtk_vbutton_box_set_layout_default (GtkButtonBoxStyle layout);
# 130 "/usr/include/gtk-1.2/gtk/gtk.h" 2


# 1 "/usr/include/gtk-1.2/gtk/gtkvruler.h" 1
# 45 "/usr/include/gtk-1.2/gtk/gtkvruler.h"
typedef struct _GtkVRuler GtkVRuler;
typedef struct _GtkVRulerClass GtkVRulerClass;

struct _GtkVRuler
{
  GtkRuler ruler;
};

struct _GtkVRulerClass
{
  GtkRulerClass parent_class;
};


guint gtk_vruler_get_type (void);
GtkWidget* gtk_vruler_new (void);
# 133 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 1 "/usr/include/gtk-1.2/gtk/gtkvscale.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkvscale.h"
typedef struct _GtkVScale GtkVScale;
typedef struct _GtkVScaleClass GtkVScaleClass;

struct _GtkVScale
{
  GtkScale scale;
};

struct _GtkVScaleClass
{
  GtkScaleClass parent_class;
};


GtkType gtk_vscale_get_type (void);
GtkWidget* gtk_vscale_new (GtkAdjustment *adjustment);
# 134 "/usr/include/gtk-1.2/gtk/gtk.h" 2

# 1 "/usr/include/gtk-1.2/gtk/gtkvseparator.h" 1
# 47 "/usr/include/gtk-1.2/gtk/gtkvseparator.h"
typedef struct _GtkVSeparator GtkVSeparator;
typedef struct _GtkVSeparatorClass GtkVSeparatorClass;

struct _GtkVSeparator
{
  GtkSeparator separator;
};

struct _GtkVSeparatorClass
{
  GtkSeparatorClass parent_class;
};


GtkType gtk_vseparator_get_type (void);
GtkWidget* gtk_vseparator_new (void);
# 136 "/usr/include/gtk-1.2/gtk/gtk.h" 2
# 7 "gtk/gtksctree.h" 2
# 19 "gtk/gtksctree.h"
typedef struct _GtkSCTree GtkSCTree;
typedef struct _GtkSCTreeClass GtkSCTreeClass;

struct _GtkSCTree {
        GtkCTree ctree;


        GtkCTreeNode *anchor_row;


        gint dnd_press_button;
        gint dnd_press_x, dnd_press_y;


        gint dnd_select_pending;
        guint dnd_select_pending_state;
        gint dnd_select_pending_row;
};

struct _GtkSCTreeClass {
        GtkCTreeClass parent_class;


        void (* row_popup_menu) (GtkSCTree *sctree, GdkEventButton *event);


        void (* empty_popup_menu) (GtkSCTree *sctree, GdkEventButton *event);


        void (* open_row) (GtkSCTree *sctree);


        void (* start_drag) (GtkSCTree *sctree, gint button, GdkEvent *event);
};


GtkType gtk_sctree_get_type (void);

GtkWidget *gtk_sctree_new_with_titles (gint columns,
                                         gint tree_column,
                                         gchar *titles[]);
void gtk_sctree_select (GtkSCTree *sctree,
                                         GtkCTreeNode *node);
void gtk_sctree_unselect_all (GtkSCTree *sctree);

void gtk_sctree_set_anchor_row (GtkSCTree *sctree,
                                         GtkCTreeNode *node);





void gtk_sctree_sort_node (GtkCTree *ctree, GtkCTreeNode *node);

void gtk_sctree_sort_recursive (GtkCTree *ctree, GtkCTreeNode *node);
# 80 "summaryview.h" 2


extern GtkTargetEntry summary_drag_types[1];

struct _SummaryColumnState
{
        SummaryColumnType type;
        gboolean visible;
};

struct _SummaryView
{
        GtkWidget *vbox;
        GtkWidget *scrolledwin;
        GtkWidget *ctree;
        GtkWidget *hbox;
        GtkWidget *hbox_l;
        GtkWidget *hbox_search;
        GtkWidget *folder_pixmap;
        GtkWidget *statlabel_folder;
        GtkWidget *statlabel_select;
        GtkWidget *statlabel_msgs;
        GtkWidget *toggle_eventbox;
        GtkWidget *toggle_arrow;
        GtkWidget *toggle_search;
        GtkWidget *quick_search_pixmap;
        GtkWidget *popupmenu;
        GtkWidget *colorlabel_menu;
        GtkWidget *search_type_opt;
        GtkWidget *search_type;
        GtkWidget *search_string;
        GtkWidget *search_description;

        GtkItemFactory *popupfactory;

        GtkWidget *window;

        GtkCTreeNode *selected;
        GtkCTreeNode *displayed;

        gboolean display_msg;

        GdkColor color_important;
        SummaryColumnState col_state[10];
        gint col_pos[10];

        GdkColor color_marked;
        GdkColor color_dim;

        guint lock_count;

        MainWindow *mainwin;
        FolderView *folderview;
        HeaderView *headerview;
        MessageView *messageview;

        FolderItem *folder_item;


        gint important_score;
        FolderSortKey sort_key;
        FolderSortType sort_type;
        guint threaded;
        guint thread_collapsed;


        regex_t *simplify_subject_preg;


        gint unreadmarked;
        off_t total_size;
        gint deleted;
        gint moved;
        gint copied;





        GHashTable *msgid_table;
        GHashTable *subject_table;


        GSList *mlist;
        int msginfo_update_callback_id;

        GtkTargetList *target_list;
};

SummaryView *summary_create(void);

void summary_init (SummaryView *summaryview);
gboolean summary_show (SummaryView *summaryview,
                                   FolderItem *fitem);
void summary_clear_list (SummaryView *summaryview);
void summary_clear_all (SummaryView *summaryview);

void summary_lock (SummaryView *summaryview);
void summary_unlock (SummaryView *summaryview);
gboolean summary_is_locked (SummaryView *summaryview);

SummarySelection summary_get_selection_type (SummaryView *summaryview);
GSList *summary_get_selected_msg_list (SummaryView *summaryview);

void summary_select_prev_unread (SummaryView *summaryview);
void summary_select_next_unread (SummaryView *summaryview);
void summary_select_prev_new (SummaryView *summaryview);
void summary_select_next_new (SummaryView *summaryview);
void summary_select_prev_marked (SummaryView *summaryview);
void summary_select_next_marked (SummaryView *summaryview);
void summary_select_prev_labeled (SummaryView *summaryview);
void summary_select_next_labeled (SummaryView *summaryview);
void summary_select_by_msgnum (SummaryView *summaryview,
                                   guint msgnum);
guint summary_get_current_msgnum (SummaryView *summaryview);
void summary_select_node (SummaryView *summaryview,
                                   GtkCTreeNode *node,
                                   gboolean display_msg,
                                   gboolean do_refresh);

void summary_thread_build (SummaryView *summaryview);
void summary_unthread (SummaryView *summaryview);

void summary_expand_threads (SummaryView *summaryview);
void summary_collapse_threads (SummaryView *summaryview);
void summary_toggle_ignore_thread (SummaryView *summaryview);

void summary_filter (SummaryView *summaryview);
void summary_filter_open (SummaryView *summaryview,
                                   PrefsFilterType type);

void summary_sort (SummaryView *summaryview,
                                   FolderSortKey sort_key,
                                   FolderSortType sort_type);

void summary_delete (SummaryView *summaryview);
void summary_delete_duplicated (SummaryView *summaryview);

void summary_cancel (SummaryView *summaryview);

gboolean summary_execute (SummaryView *summaryview);

void summary_attract_by_subject (SummaryView *summaryview);

gint summary_write_cache (SummaryView *summaryview);

void summary_pass_key_press_event (SummaryView *summaryview,
                                   GdkEventKey *event);

void summary_display_msg_selected (SummaryView *summaryview,
                                   gboolean all_headers);
void summary_redisplay_msg (SummaryView *summaryview);
void summary_open_msg (SummaryView *summaryview);
void summary_view_source (SummaryView *summaryview);
void summary_reedit (SummaryView *summaryview);
void summary_step (SummaryView *summaryview,
                                   GtkScrollType type);
void summary_toggle_view (SummaryView *summaryview);
void summary_set_marks_selected (SummaryView *summaryview);

void summary_move_selected_to (SummaryView *summaryview,
                                   FolderItem *to_folder);
void summary_move_to (SummaryView *summaryview);
void summary_copy_selected_to (SummaryView *summaryview,
                                   FolderItem *to_folder);
GSList *summary_get_selection (SummaryView *summaryview);
void summary_copy_to (SummaryView *summaryview);
void summary_save_as (SummaryView *summaryview);
void summary_print (SummaryView *summaryview);
void summary_mark (SummaryView *summaryview);
void summary_unmark (SummaryView *summaryview);
void summary_mark_as_unread (SummaryView *summaryview);
void summary_mark_as_read (SummaryView *summaryview);
void summary_msgs_lock (SummaryView *summaryview);
void summary_msgs_unlock (SummaryView *summaryview);
void summary_mark_all_read (SummaryView *summaryview);
void summary_add_address (SummaryView *summaryview);
void summary_select_all (SummaryView *summaryview);
void summary_unselect_all (SummaryView *summaryview);
void summary_select_thread (SummaryView *summaryview);

void summary_set_colorlabel (SummaryView *summaryview,
                                   guint labelcolor,
                                   GtkWidget *widget);
void summary_set_colorlabel_color (GtkCTree *ctree,
                                   GtkCTreeNode *node,
                                   guint labelcolor);

void summary_set_column_order (SummaryView *summaryview);





void summary_toggle_show_read_messages
                                  (SummaryView *summaryview);

void summary_toggle_view_real (SummaryView *summaryview);

void summary_reflect_prefs_pixmap_theme
                                  (SummaryView *summaryview);

void summary_harvest_address (SummaryView *summaryview);
void summary_set_prefs_from_folderitem
                                  (SummaryView *summaryview, FolderItem *item);
void summary_save_prefs_to_folderitem
                                  (SummaryView *summaryview, FolderItem *item);
# 32 "folderview.h" 2

struct _FolderView
{
        GtkWidget *scrolledwin;
        GtkWidget *ctree;
        GtkWidget *mail_popup;
        GtkWidget *imap_popup;
        GtkWidget *news_popup;
        GtkWidget *mbox_popup;

        GtkItemFactory *mail_factory;
        GtkItemFactory *imap_factory;
        GtkItemFactory *news_factory;
        GtkItemFactory *mbox_factory;

        GtkCTreeNode *selected;
        GtkCTreeNode *opened;

        gboolean open_folder;

        GdkColor color_new;
        GdkColor color_op;

        MainWindow *mainwin;
        SummaryView *summaryview;

        gint folder_update_callback_id;
        gint folder_item_update_callback_id;


        GSList *nodes_to_recollapse;
        guint drag_timer;
        FolderItem *drag_item;
        GtkCTreeNode *drag_node;

        GtkTargetList *target_list;
};

FolderView *folderview_create (void);
void folderview_init (FolderView *folderview);
void folderview_set (FolderView *folderview);
void folderview_set_all (void);
void folderview_select (FolderView *folderview,
                                         FolderItem *item);
void folderview_unselect (FolderView *folderview);
void folderview_select_next_unread (FolderView *folderview);
void folderview_update_msg_num (FolderView *folderview,
                                         GtkCTreeNode *row);
void folderview_rescan_tree (Folder *folder);
void folderview_rescan_all (void);
gint folderview_check_new (Folder *folder);
void folderview_check_new_all (void);

void folderview_new_folder (FolderView *folderview);
void folderview_rename_folder (FolderView *folderview);
void folderview_delete_folder (FolderView *folderview);

void folderview_set_target_folder_color (gint color_op);

void folderview_reflect_prefs_pixmap_theme (FolderView *folderview);
# 28 "mainwindow.h" 2



# 1 "logwindow.h" 1
# 26 "logwindow.h"
typedef struct _LogWindow LogWindow;

struct _LogWindow
{
        GtkWidget *window;
        GtkWidget *scrolledwin;
        GtkWidget *text;

        GdkColor msg_color;
        GdkColor warn_color;
        GdkColor error_color;

        guint hook_id;
};

LogWindow *log_window_create(void);
void log_window_init(LogWindow *logwin);
void log_window_show(LogWindow *logwin);
# 32 "mainwindow.h" 2


typedef enum
{
        M_UNLOCKED = 1 << 0,
        M_MSG_EXIST = 1 << 1,
        M_TARGET_EXIST = 1 << 2,
        M_SINGLE_TARGET_EXIST = 1 << 3,
        M_EXEC = 1 << 4,
        M_ALLOW_REEDIT = 1 << 5,
        M_HAVE_ACCOUNT = 1 << 6,
        M_THREADED = 1 << 7,
        M_UNTHREADED = 1 << 8,
        M_ALLOW_DELETE = 1 << 9,
        M_INC_ACTIVE = 1 << 10,
        M_NEWS = 1 << 11,
        M_HAVE_NEWS_ACCOUNT = 1 << 12,
        M_HIDE_READ_MSG = 1 << 13,
        M_DELAY_EXEC = 1 << 14,
        M_NOT_NEWS = 1 << 15,
} SensitiveCond;

typedef enum
{
        SEPARATE_NONE = 0,
        SEPARATE_FOLDER = 1 << 0,
        SEPARATE_MESSAGE = 1 << 1,
        SEPARATE_BOTH = (SEPARATE_FOLDER | SEPARATE_MESSAGE)
} SeparateType;

typedef enum
{
        TOOLBAR_NONE = 0,
        TOOLBAR_ICON = 1,
        TOOLBAR_TEXT = 2,
        TOOLBAR_BOTH = 3
} ToolbarStyle;

struct _MainWindow
{
        SeparateType type;

        union CompositeWin {
                struct
                {
                        GtkWidget *hpaned;
                        GtkWidget *vpaned;
                } sep_none;
                struct {
                        GtkWidget *folderwin;
                        GtkWidget *vpaned;
                } sep_folder;
                struct {
                        GtkWidget *messagewin;
                        GtkWidget *hpaned;
                } sep_message;
                struct {
                        GtkWidget *folderwin;
                        GtkWidget *messagewin;
                } sep_both;
        } win;

        GtkWidget *window;
        GtkWidget *vbox;
        GtkWidget *menubar;

        GtkItemFactory *menu_factory;


        GtkWidget *handlebox;
        Toolbar *toolbar;


        GtkWidget *vbox_body;
        GtkWidget *hbox_stat;
        GtkWidget *statusbar;
        GtkWidget *progressbar;
        GtkWidget *statuslabel;
        GtkWidget *ac_button;
        GtkWidget *ac_label;
        GtkWidget *ac_menu;
        GtkWidget *online_switch;
        GtkWidget *offline_switch;
        GtkWidget *online_pixmap;
        GtkWidget *offline_pixmap;


        gint mainwin_cid;
        gint folderview_cid;
        gint summaryview_cid;

        ToolbarStyle toolbar_style;

        guint lock_count;
        guint menu_lock_count;
        guint cursor_count;

        FolderView *folderview;
        SummaryView *summaryview;
        MessageView *messageview;
        LogWindow *logwin;

        gint progressindicator_hook;
};

MainWindow *main_window_create (SeparateType type);

void main_window_cursor_wait (MainWindow *mainwin);
void main_window_cursor_normal (MainWindow *mainwin);

void main_window_lock (MainWindow *mainwin);
void main_window_unlock (MainWindow *mainwin);

void main_window_reflect_prefs_all_real (gboolean pixmap_theme_changed);
void main_window_reflect_prefs_all (void);
void main_window_set_summary_column (void);
void main_window_set_account_menu (GList *account_list);

GtkWidget *main_window_get_folder_window (MainWindow *mainwin);
GtkWidget *main_window_get_message_window (MainWindow *mainwin);

void main_window_separation_change (MainWindow *mainwin,
                                         SeparateType type);

void main_window_toggle_message_view (MainWindow *mainwin);

void main_window_get_size (MainWindow *mainwin);
void main_window_get_position (MainWindow *mainwin);

void main_window_empty_trash (MainWindow *mainwin,
                                         gboolean confirm);
void main_window_add_mailbox (MainWindow *mainwin);

void main_window_set_menu_sensitive (MainWindow *mainwin);


void main_window_show (MainWindow *mainwin);
void main_window_hide (MainWindow *mainwin);
void main_window_popup (MainWindow *mainwin);

void main_window_toolbar_set_compose_button (MainWindow *mainwin,
                                                 ComposeButtonType compose_btn_type);

SensitiveCond main_window_get_current_state (MainWindow *mainwin);

void toolbar_set_compose_button (Toolbar *toolbar,
                                               ComposeButtonType compose_btn_type);
void main_window_destroy_all (void);

void main_window_toggle_work_offline (MainWindow *mainwin,
                                               gboolean offline);


void mainwindow_key_pressed (GtkWidget *widget,
                                               GdkEventKey *event,
                                               gpointer data);
MainWindow *mainwindow_get_mainwindow (void);
# 29 "messageview.h" 2

# 1 "textview.h" 1
# 31 "messageview.h" 2
# 1 "mimeview.h" 1
# 32 "messageview.h" 2
# 1 "noticeview.h" 1
# 23 "noticeview.h"
typedef struct _NoticeView NoticeView;

struct _NoticeView
{
        GtkWidget *vbox;
        GtkWidget *hsep;
        GtkWidget *hbox;
        GtkWidget *icon;
        GtkWidget *text;
        GtkWidget *button;
        gboolean visible;
        gpointer user_data;
        void (*press) (NoticeView *, gpointer user_data);
};

NoticeView *noticeview_create (MainWindow *mainwin);
void noticeview_destroy (NoticeView *noticeview);
void noticeview_init (NoticeView *noticeview);
void noticeview_set_icon (NoticeView *noticeview,
                                         GtkWidget *icon);
void noticeview_set_text (NoticeView *noticeview,
                                         const gchar *text);
void noticeview_set_button_text
                                        (NoticeView *noticeview,
                                         const gchar *text);
gboolean noticeview_is_visible (NoticeView *noticeview);
void noticeview_show (NoticeView *noticeview);
void noticeview_hide (NoticeView *noticeview);

void noticeview_set_button_press_callback
                                        (NoticeView *noticeview,
                                         GtkSignalFunc callback,
                                         gpointer *user_data);
# 33 "messageview.h" 2




typedef enum
{
        MVIEW_TEXT,
        MVIEW_MIME
} MessageType;

struct _MessageView
{
        GtkWidget *vbox;

        MessageType type;
        gboolean new_window;
        GtkWidget *window;


        GtkWidget *handlebox;
        Toolbar *toolbar;
        GtkWidget *menubar;

        HeaderView *headerview;
        TextView *textview;
        MimeView *mimeview;
        NoticeView *noticeview;

        MainWindow *mainwin;

        MsgInfo *msginfo;

        gchar *forced_charset;

        gboolean visible;


        gboolean filtered;


        gboolean all_headers;

        gint msginfo_update_callback_id;
};

MessageView *messageview_create (MainWindow *mainwin);
MessageView *messageview_create_with_new_window (MainWindow *mainwin);

void messageview_init (MessageView *messageview);
void messageview_show (MessageView *messageview,
                                                 MsgInfo *msginfo,
                                                 gboolean all_headers);
void messageview_clear (MessageView *messageview);
void messageview_destroy (MessageView *messageview);

void messageview_quote_color_set (void);
void messageview_set_font (MessageView *messageview);

TextView *messageview_get_current_textview (MessageView *messageview);
MimeInfo *messageview_get_selected_mime_part (MessageView *messageview);

void messageview_copy_clipboard (MessageView *messageview);
void messageview_select_all (MessageView *messageview);
void messageview_set_position (MessageView *messageview,
                                                 gint pos);
void messageview_toggle_view_real (MessageView *messageview);
GList *messageview_get_msgview_list (void);
void messageview_delete (MessageView *messageview);
gboolean messageview_search_string (MessageView *messageview,
                                                 const gchar *str,
                                                 gboolean case_sens);
gboolean messageview_search_string_backward (MessageView *messageview,
                                                 const gchar *str,
                                                 gboolean case_sens);

gboolean messageview_is_visible (MessageView *messageview);

void messageview_add_toolbar (MessageView *msgview,
                                                 GtkWidget *vbox);
void messageview_reflect_prefs_pixmap_theme (void);
gchar *messageview_get_selection (MessageView *msgview);
# 33 "textview.h" 2


struct _TextView
{
        GtkWidget *vbox;
        GtkWidget *scrolledwin;
        GtkWidget *scrolledwin_sb;
        GtkWidget *scrolledwin_mb;
        GtkWidget *text;
        GtkWidget *text_sb;
        GtkWidget *text_mb;

        GtkWidget *popup_menu;
        GtkItemFactory *popup_factory;

        gboolean text_is_mb;
        gboolean default_text;
        gboolean is_in_signature;

        GSList *uri_list;
        gint body_pos;
        gint cur_pos;

        GdkFont *msgfont;
        GdkFont *boldfont;

        gboolean show_all_headers;

        MessageView *messageview;
        gint last_buttonpress;
        gint show_url_msgid;
        gint show_url_timeout_tag;
};

TextView *textview_create (void);
void textview_init (TextView *textview);
void textview_show_message (TextView *textview,
                                 MimeInfo *mimeinfo,
                                 const gchar *file);
void textview_show_part (TextView *textview,
                                 MimeInfo *mimeinfo,
                                 FILE *fp);
void textview_show_mime_part (TextView *textview,
                                 MimeInfo *partinfo);




void textview_clear (TextView *textview);
void textview_destroy (TextView *textview);
void textview_set_all_headers (TextView *textview,
                                 gboolean all_headers);
void textview_set_font (TextView *textview,
                                 const gchar *codeset);
void textview_set_position (TextView *textview,
                                 gint pos);
void textview_scroll_one_line (TextView *textview,
                                 gboolean up);
gboolean textview_scroll_page (TextView *textview,
                                 gboolean up);

void textview_update_message_colors (void);

gboolean textview_search_string (TextView *textview,
                                                 const gchar *str,
                                                 gboolean case_sens);
gboolean textview_search_string_backward (TextView *textview,
                                                 const gchar *str,
                                                 gboolean case_sens);
# 38 "mimeview.h" 2



typedef enum
{
        MIMEVIEW_TEXT,
        MIMEVIEW_VIEWER,
} MimeViewType;

struct _MimeView
{
        GtkWidget *hbox;
        GtkWidget *paned;
        GtkWidget *notebook;
        GtkWidget *vbox;
        GtkWidget *scrolledwin;
        GtkWidget *ctree;
        GtkWidget *mime_notebook;
        GtkWidget *ctree_mainbox;
        GtkWidget *icon_scroll;
        GtkWidget *icon_vbox;
        GtkWidget *icon_mainbox;
        GtkWidget *mime_toggle;

        MimeViewType type;

        GtkWidget *popupmenu;
        GtkItemFactory *popupfactory;

        GtkCTreeNode *opened;

        TextView *textview;
        MimeViewer *mimeviewer;

        MessageView *messageview;

        MimeInfo *mimeinfo;

        gchar *file;

        GSList *viewers;

        GtkTargetList *target_list;

        gint icon_count;
        MainWindow *mainwin;
        GtkTooltips *tooltips;
        gint oldsize;
};

struct _MimeViewerFactory
{




        gchar **content_types;
        gint priority;

        MimeViewer *(*create_viewer) (void);
};

struct _MimeViewer
{
        MimeViewerFactory *factory;

        GtkWidget *(*get_widget) (MimeViewer *);
        void (*show_mimepart) (MimeViewer *, const gchar *infile, MimeInfo *);
        void (*clear_viewer) (MimeViewer *);
        void (*destroy_viewer) (MimeViewer *);
};

MimeView *mimeview_create (MainWindow *mainwin);
void mimeview_init (MimeView *mimeview);
void mimeview_show_message (MimeView *mimeview,
                                 MimeInfo *mimeinfo,
                                 const gchar *file);
void mimeview_destroy (MimeView *mimeview);
void mimeview_update (MimeView *mimeview);

MimeInfo *mimeview_get_selected_part (MimeView *mimeview);




void mimeview_pass_key_press_event (MimeView *mimeview,
                                         GdkEventKey *event);

void mimeview_register_viewer_factory (MimeViewerFactory *factory);
void mimeview_unregister_viewer_factory (MimeViewerFactory *factory);
# 53 "mimeview.c" 2



# 1 "gtk/menu.h" 1
# 43 "gtk/menu.h"
GtkWidget *menubar_create (GtkWidget *window,
                                 GtkItemFactoryEntry *entries,
                                 guint n_entries,
                                 const gchar *path,
                                 gpointer data);
GtkWidget *menu_create_items (GtkItemFactoryEntry *entries,
                                 guint n_entries,
                                 const gchar *path,
                                 GtkItemFactory **factory,
                                 gpointer data);
GtkWidget *popupmenu_create(GtkWidget *window,
                                 GtkItemFactoryEntry *entries,
                             guint n_entries,
                                 const gchar *path,
                                 gpointer data);

GString *menu_factory_get_rc (const gchar *path);
void menu_factory_clear_rc (const gchar *rc_str);
void menu_factory_copy_rc (const gchar *src_path,
                                 const gchar *dest_path);

void menu_set_sensitive (GtkItemFactory *ifactory,
                                 const gchar *path,
                                 gboolean sensitive);
void menu_set_sensitive_all (GtkMenuShell *menu_shell,
                                 gboolean sensitive);

void menu_set_toggle (GtkItemFactory *ifactory,
                                 const gchar *path,
                                 gboolean active);
void menu_toggle_toggle (GtkItemFactory *ifactory,
                                 const gchar *path);
void menu_button_position (GtkMenu *menu,
                                 gint *x,
                                 gint *y,
                                 gpointer user_data);

gint menu_find_option_menu_index(GtkOptionMenu *optmenu,
                                 gpointer data,
                                 GCompareFunc func);

void menu_connect_identical_items(void);

void menu_select_by_data (GtkMenu *menu,
                                 gpointer data);
# 57 "mimeview.c" 2
# 1 "gtk/filesel.h" 1
# 25 "gtk/filesel.h"
gchar *filesel_select_file(const gchar *title, const gchar *file);

GList *filesel_select_multiple_files(const gchar *title, const gchar *file);
# 58 "mimeview.c" 2
# 1 "alertpanel.h" 1
# 26 "alertpanel.h"
typedef enum
{
        G_ALERTDEFAULT,
        G_ALERTALTERNATE,
        G_ALERTOTHER,
        G_ALERTWAIT,

        G_ALERTDISABLE = 1 << 16
} AlertValue;



AlertValue alertpanel (const gchar *title,
                         const gchar *message,
                         const gchar *button1_label,
                         const gchar *button2_label,
                         const gchar *button3_label);

AlertValue alertpanel_with_widget (const gchar *title,
                                         const gchar *message,
                                         const gchar *button1_label,
                                         const gchar *button2_label,
                                         const gchar *button3_label,
                                         GtkWidget *widget);

void alertpanel_message (const gchar *title,
                         const gchar *message);

AlertValue alertpanel_message_with_disable (const gchar *title,
                                                 const gchar *message);

void alertpanel_notice (const gchar *format,
                         ...) __attribute__((format (printf, 1, 2)));
void alertpanel_warning (const gchar *format,
                         ...) __attribute__((format (printf, 1, 2)));
void alertpanel_error (const gchar *format,
                         ...) __attribute__((format (printf, 1, 2)));
void alertpanel_error_log(const gchar *format,
                          ...) __attribute__((format (printf, 1, 2)));
# 59 "mimeview.c" 2
# 1 "inputdialog.h" 1
# 25 "inputdialog.h"
gchar *input_dialog (const gchar *title,
                                         const gchar *message,
                                         const gchar *default_string);
gchar *input_dialog_with_invisible (const gchar *title,
                                         const gchar *message,
                                         const gchar *default_string);
gchar *input_dialog_combo (const gchar *title,
                                         const gchar *message,
                                         const gchar *default_string,
                                         GList *list,
                                         gboolean case_sensitive);
gchar *input_dialog_query_password (const gchar *server,
                                         const gchar *user);
# 60 "mimeview.c" 2
# 1 "common/utils.h" 1
# 24 "common/utils.h"
# 1 "../config.h" 1
# 25 "common/utils.h" 2





# 1 "/usr/include/stdlib.h" 1 3 4
# 33 "/usr/include/stdlib.h" 3 4
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 1 3 4
# 34 "/usr/include/stdlib.h" 2 3 4


# 93 "/usr/include/stdlib.h" 3 4


typedef struct
  {
    int quot;
    int rem;
  } div_t;



typedef struct
  {
    long int quot;
    long int rem;
  } ldiv_t;



# 137 "/usr/include/stdlib.h" 3 4
extern size_t __ctype_get_mb_cur_max (void) ;




extern double atof (const char *__nptr) __attribute__ ((__pure__));

extern int atoi (const char *__nptr) __attribute__ ((__pure__));

extern long int atol (const char *__nptr) __attribute__ ((__pure__));





__extension__ extern long long int atoll (const char *__nptr)
     __attribute__ ((__pure__));





extern double strtod (const char *__restrict __nptr,
                      char **__restrict __endptr) ;

# 174 "/usr/include/stdlib.h" 3 4


extern long int strtol (const char *__restrict __nptr,
                        char **__restrict __endptr, int __base) ;

extern unsigned long int strtoul (const char *__restrict __nptr,
                                  char **__restrict __endptr, int __base)
     ;




__extension__
extern long long int strtoq (const char *__restrict __nptr,
                             char **__restrict __endptr, int __base) ;

__extension__
extern unsigned long long int strtouq (const char *__restrict __nptr,
                                       char **__restrict __endptr, int __base)
     ;





__extension__
extern long long int strtoll (const char *__restrict __nptr,
                              char **__restrict __endptr, int __base) ;

__extension__
extern unsigned long long int strtoull (const char *__restrict __nptr,
                                        char **__restrict __endptr, int __base)
     ;

# 264 "/usr/include/stdlib.h" 3 4
extern double __strtod_internal (const char *__restrict __nptr,
                                 char **__restrict __endptr, int __group)
     ;
extern float __strtof_internal (const char *__restrict __nptr,
                                char **__restrict __endptr, int __group)
     ;
extern long double __strtold_internal (const char *__restrict __nptr,
                                       char **__restrict __endptr,
                                       int __group) ;

extern long int __strtol_internal (const char *__restrict __nptr,
                                   char **__restrict __endptr,
                                   int __base, int __group) ;



extern unsigned long int __strtoul_internal (const char *__restrict __nptr,
                                             char **__restrict __endptr,
                                             int __base, int __group) ;




__extension__
extern long long int __strtoll_internal (const char *__restrict __nptr,
                                         char **__restrict __endptr,
                                         int __base, int __group) ;



__extension__
extern unsigned long long int __strtoull_internal (const char *
                                                   __restrict __nptr,
                                                   char **__restrict __endptr,
                                                   int __base, int __group)
     ;
# 408 "/usr/include/stdlib.h" 3 4
extern char *l64a (long int __n) ;


extern long int a64l (const char *__s) __attribute__ ((__pure__));
# 421 "/usr/include/stdlib.h" 3 4
extern long int random (void) ;


extern void srandom (unsigned int __seed) ;





extern char *initstate (unsigned int __seed, char *__statebuf,
                        size_t __statelen) ;



extern char *setstate (char *__statebuf) ;







struct random_data
  {
    int32_t *fptr;
    int32_t *rptr;
    int32_t *state;
    int rand_type;
    int rand_deg;
    int rand_sep;
    int32_t *end_ptr;
  };

extern int random_r (struct random_data *__restrict __buf,
                     int32_t *__restrict __result) ;

extern int srandom_r (unsigned int __seed, struct random_data *__buf) ;

extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
                        size_t __statelen,
                        struct random_data *__restrict __buf) ;

extern int setstate_r (char *__restrict __statebuf,
                       struct random_data *__restrict __buf) ;






extern int rand (void) ;

extern void srand (unsigned int __seed) ;




extern int rand_r (unsigned int *__seed) ;







extern double drand48 (void) ;
extern double erand48 (unsigned short int __xsubi[3]) ;


extern long int lrand48 (void) ;
extern long int nrand48 (unsigned short int __xsubi[3]) ;


extern long int mrand48 (void) ;
extern long int jrand48 (unsigned short int __xsubi[3]) ;


extern void srand48 (long int __seedval) ;
extern unsigned short int *seed48 (unsigned short int __seed16v[3]) ;
extern void lcong48 (unsigned short int __param[7]) ;





struct drand48_data
  {
    unsigned short int __x[3];
    unsigned short int __old_x[3];
    unsigned short int __c;
    unsigned short int __init;
    unsigned long long int __a;
  };


extern int drand48_r (struct drand48_data *__restrict __buffer,
                      double *__restrict __result) ;
extern int erand48_r (unsigned short int __xsubi[3],
                      struct drand48_data *__restrict __buffer,
                      double *__restrict __result) ;


extern int lrand48_r (struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;
extern int nrand48_r (unsigned short int __xsubi[3],
                      struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;


extern int mrand48_r (struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;
extern int jrand48_r (unsigned short int __xsubi[3],
                      struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;


extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
     ;

extern int seed48_r (unsigned short int __seed16v[3],
                     struct drand48_data *__buffer) ;

extern int lcong48_r (unsigned short int __param[7],
                      struct drand48_data *__buffer) ;









extern void *malloc (size_t __size) __attribute__ ((__malloc__));

extern void *calloc (size_t __nmemb, size_t __size)
     __attribute__ ((__malloc__));







extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__malloc__));

extern void free (void *__ptr) ;




extern void cfree (void *__ptr) ;



# 1 "/usr/include/alloca.h" 1 3 4
# 25 "/usr/include/alloca.h" 3 4
# 1 "/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/include/stddef.h" 1 3 4
# 26 "/usr/include/alloca.h" 2 3 4







extern void *alloca (size_t __size) ;






# 577 "/usr/include/stdlib.h" 2 3 4




extern void *valloc (size_t __size) __attribute__ ((__malloc__));
# 590 "/usr/include/stdlib.h" 3 4


extern void abort (void) __attribute__ ((__noreturn__));



extern int atexit (void (*__func) (void)) ;





extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
     ;






extern void exit (int __status) __attribute__ ((__noreturn__));

# 622 "/usr/include/stdlib.h" 3 4


extern char *getenv (const char *__name) ;




extern char *__secure_getenv (const char *__name) ;





extern int putenv (char *__string) ;





extern int setenv (const char *__name, const char *__value, int __replace)
     ;


extern int unsetenv (const char *__name) ;






extern int clearenv (void) ;
# 661 "/usr/include/stdlib.h" 3 4
extern char *mktemp (char *__template) ;







extern int mkstemp (char *__template) ;
# 688 "/usr/include/stdlib.h" 3 4
extern char *mkdtemp (char *__template) ;





extern int system (const char *__command) ;

# 712 "/usr/include/stdlib.h" 3 4
extern char *realpath (const char *__restrict __name,
                       char *__restrict __resolved) ;






typedef int (*__compar_fn_t) (const void *, const void *);









extern void *bsearch (const void *__key, const void *__base,
                      size_t __nmemb, size_t __size, __compar_fn_t __compar);



extern void qsort (void *__base, size_t __nmemb, size_t __size,
                   __compar_fn_t __compar);



extern int abs (int __x) __attribute__ ((__const__));
extern long int labs (long int __x) __attribute__ ((__const__));












extern div_t div (int __numer, int __denom)
     __attribute__ ((__const__));
extern ldiv_t ldiv (long int __numer, long int __denom)
     __attribute__ ((__const__));

# 776 "/usr/include/stdlib.h" 3 4
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign) ;




extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign) ;




extern char *gcvt (double __value, int __ndigit, char *__buf) ;




extern char *qecvt (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign) ;
extern char *qfcvt (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf) ;




extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign, char *__restrict __buf,
                   size_t __len) ;
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign, char *__restrict __buf,
                   size_t __len) ;

extern int qecvt_r (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign,
                    char *__restrict __buf, size_t __len) ;
extern int qfcvt_r (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign,
                    char *__restrict __buf, size_t __len) ;







extern int mblen (const char *__s, size_t __n) ;


extern int mbtowc (wchar_t *__restrict __pwc,
                   const char *__restrict __s, size_t __n) ;


extern int wctomb (char *__s, wchar_t __wchar) ;



extern size_t mbstowcs (wchar_t *__restrict __pwcs,
                        const char *__restrict __s, size_t __n) ;

extern size_t wcstombs (char *__restrict __s,
                        const wchar_t *__restrict __pwcs, size_t __n)
     ;








extern int rpmatch (const char *__response) ;
# 908 "/usr/include/stdlib.h" 3 4
extern int getloadavg (double __loadavg[], int __nelem) ;






# 31 "common/utils.h" 2
# 58 "common/utils.h"
  typedef guint32 u32;
# 139 "common/utils.h"
void debug_set_mode (gboolean mode);
gboolean debug_get_mode (void);
# 149 "common/utils.h"
void list_free_strings (GList *list);
void slist_free_strings (GSList *list);

void hash_free_strings (GHashTable *table);
void hash_free_value_mem (GHashTable *table);

gint str_case_equal (gconstpointer v,
                                 gconstpointer v2);
guint str_case_hash (gconstpointer key);

void ptr_array_free_strings (GPtrArray *array);


gint to_number (const gchar *nstr);
gchar *itos_buf (gchar *nstr,
                                 gint n);
gchar *itos (gint n);
gchar *to_human_readable (off_t size);


gint strcmp2 (const gchar *s1,
                         const gchar *s2);
gchar *strstr2 (const gchar *s1,
                         const gchar *s2);
gint path_cmp (const gchar *s1,
                         const gchar *s2);
gchar *strretchomp (gchar *str);
gchar *strtailchomp (gchar *str,
                         gchar tail_char);
gchar *strcrchomp (gchar *str);
gchar *strcasestr (const gchar *haystack,
                         const gchar *needle);
gchar *strncpy2 (gchar *dest,
                         const gchar *src,
                         size_t n);
# 209 "common/utils.h"
wchar_t *wcsdup (const wchar_t *s);
wchar_t *wcsndup (const wchar_t *s,
                                 size_t n);
wchar_t *strdup_mbstowcs (const gchar *s);
gchar *strdup_wcstombs (const wchar_t *s);
gint wcsncasecmp (const wchar_t *s1,
                                 const wchar_t *s2,
                                 size_t n);
wchar_t *wcscasestr (const wchar_t *haystack,
                                 const wchar_t *needle);
gint get_mbs_len (const gchar *s);

gboolean is_next_nonascii (const guchar *s);
gint get_next_word_len (const gchar *s);


gint subject_compare (const gchar *s1,
                                         const gchar *s2);
gint subject_compare_for_sort (const gchar *s1,
                                         const gchar *s2);
void trim_subject_for_compare (gchar *str);
void trim_subject_for_sort (gchar *str);
void trim_subject (gchar *str);
void eliminate_parenthesis (gchar *str,
                                         gchar op,
                                         gchar cl);
void extract_parenthesis (gchar *str,
                                         gchar op,
                                         gchar cl);

void extract_parenthesis_with_skip_quote (gchar *str,
                                                 gchar quote_chr,
                                                 gchar op,
                                                 gchar cl);

void eliminate_quote (gchar *str,
                                         gchar quote_chr);
void extract_quote (gchar *str,
                                         gchar quote_chr);
void eliminate_address_comment (gchar *str);
gchar *strchr_with_skip_quote (const gchar *str,
                                         gint quote_chr,
                                         gint c);
gchar *strrchr_with_skip_quote (const gchar *str,
                                         gint quote_chr,
                                         gint c);
void extract_address (gchar *str);
void extract_list_id_str (gchar *str);

GSList *slist_concat_unique (GSList *first,
                                         GSList *second);
GSList *address_list_append (GSList *addr_list,
                                         const gchar *str);
GSList *address_list_append_with_comments(GSList *addr_list,
                                         const gchar *str);
GSList *references_list_append (GSList *msgid_list,
                                         const gchar *str);
GSList *newsgroup_list_append (GSList *group_list,
                                         const gchar *str);

GList *add_history (GList *list,
                                         const gchar *str);

void remove_return (gchar *str);
void remove_space (gchar *str);
void unfold_line (gchar *str);
void subst_char (gchar *str,
                                         gchar orig,
                                         gchar subst);
void subst_chars (gchar *str,
                                         gchar *orig,
                                         gchar subst);
void subst_for_filename (gchar *str);
gboolean is_header_line (const gchar *str);
gboolean is_ascii_str (const guchar *str);
gint get_quote_level (const gchar *str,
                                         const gchar *quote_chars);
gchar *strstr_with_skip_quote (const gchar *haystack,
                                         const gchar *needle);
gchar *strchr_parenthesis_close (const gchar *str,
                                         gchar op,
                                         gchar cl);

gchar **strsplit_parenthesis (const gchar *str,
                                         gchar op,
                                         gchar cl,
                                         gint max_tokens);
gchar **strsplit_with_quote (const gchar *str,
                                         const gchar *delim,
                                         gint max_tokens);

gchar *get_abbrev_newsgroup_name (const gchar *group,
                                         gint len);
gchar *trim_string (const gchar *str,
                                         gint len);

GList *uri_list_extract_filenames (const gchar *uri_list);
void decode_uri (gchar *decoded_uri,
                                         const gchar *encoded_uri);
gint scan_mailto_url (const gchar *mailto,
                                         gchar **to,
                                         gchar **cc,
                                         gchar **bcc,
                                         gchar **subject,
                                         gchar **body);


gchar *get_home_dir (void);
gchar *get_rc_dir (void);
gchar *get_news_cache_dir (void);
gchar *get_imap_cache_dir (void);
gchar *get_mbox_cache_dir (void);
gchar *get_mime_tmp_dir (void);
gchar *get_template_dir (void);
gchar *get_header_cache_dir (void);
gchar *get_tmp_dir (void);
gchar *get_tmp_file (void);
gchar *get_domain_name (void);


off_t get_file_size (const gchar *file);
off_t get_file_size_as_crlf (const gchar *file);
off_t get_left_file_size (FILE *fp);

gboolean file_exist (const gchar *file,
                                 gboolean allow_fifo);
gboolean is_dir_exist (const gchar *dir);
gboolean is_file_entry_exist (const gchar *file);




gint change_dir (const gchar *dir);
gint make_dir (const gchar *dir);
gint make_dir_hier (const gchar *dir);
gint remove_all_files (const gchar *dir);
gint remove_numbered_files (const gchar *dir,
                                 guint first,
                                 guint last);
gint remove_numbered_files_not_in_list(const gchar *dir,
                                       GSList *numberlist);
gint remove_all_numbered_files (const gchar *dir);
gint remove_expired_files (const gchar *dir,
                                 guint hours);
gint remove_dir_recursive (const gchar *dir);
gint append_file (const gchar *src,
                                 const gchar *dest,
                                 gboolean keep_backup);
gint copy_file (const gchar *src,
                                 const gchar *dest,
                                 gboolean keep_backup);
gint move_file (const gchar *src,
                                 const gchar *dest,
                                 gboolean overwrite);
gint copy_file_part (FILE *fp,
                                 off_t offset,
                                 size_t length,
                                 const gchar *dest);

gchar *canonicalize_str (const gchar *str);
gint canonicalize_file (const gchar *src,
                                 const gchar *dest);
gint canonicalize_file_replace (const gchar *file);
gint uncanonicalize_file (const gchar *src,
                                 const gchar *dest);
gint uncanonicalize_file_replace(const gchar *file);

gchar *normalize_newlines (const gchar *str);

gchar *get_outgoing_rfc2822_str (FILE *fp);

gint change_file_mode_rw (FILE *fp,
                                 const gchar *file);
FILE *my_tmpfile (void);
FILE *str_open_as_stream (const gchar *str);
gint str_write_to_file (const gchar *str,
                                 const gchar *file);
gchar *file_read_to_str (const gchar *file);
gchar *file_read_stream_to_str (FILE *fp);


gint execute_async (gchar *const argv[]);
gint execute_sync (gchar *const argv[]);
gint execute_command_line (const gchar *cmdline,
                                 gboolean async);
gchar *get_command_output (const gchar *cmdline);


gint open_uri(const gchar *uri, const gchar *cmdline);


time_t remote_tzoffset_sec (const gchar *zone);
time_t tzoffset_sec (time_t *now);
gchar *tzoffset (time_t *now);
void get_rfc822_date (gchar *buf,
                                 gint len);


void debug_print_real (const gchar *format, ...) __attribute__((format (printf, 1, 2)));


void * subject_table_lookup(GHashTable *subject_table, gchar * subject);
void subject_table_insert(GHashTable *subject_table, gchar * subject,
                          void * data);
void subject_table_remove(GHashTable *subject_table, gchar * subject);
gint subject_get_prefix_length (const gchar *subject);


const gchar * line_has_quote_char (const gchar *str,
                                         const gchar *quote_chars);
const gchar * line_has_quote_char_last (const gchar *str,
                                         const gchar *quote_chars);


gchar * expand_search_string (const gchar *str);

guint g_stricase_hash (gconstpointer gptr);
gint g_stricase_equal (gconstpointer gptr1, gconstpointer gptr2);
gint g_int_compare (gconstpointer a, gconstpointer b);

gchar *generate_msgid (const gchar *address, gchar *buf, gint len);
gchar *generate_mime_boundary (void);
# 61 "mimeview.c" 2
# 1 "gtk/gtkutils.h" 1
# 24 "gtk/gtkutils.h"
# 1 "../config.h" 1
# 25 "gtk/gtkutils.h" 2
# 80 "gtk/gtkutils.h"
gint gtkut_get_font_width (GdkFont *font);
gint gtkut_get_font_height (GdkFont *font);

GdkFont *gtkut_font_load (const gchar *fontset_name);
GdkFont *gtkut_font_load_from_fontset (const gchar *fontset_name);

void gtkut_convert_int_to_gdk_color (gint rgbvalue,
                                         GdkColor *color);

void gtkut_button_set_create (GtkWidget **bbox,
                                         GtkWidget **button1,
                                         const gchar *label1,
                                         GtkWidget **button2,
                                         const gchar *label2,
                                         GtkWidget **button3,
                                         const gchar *label3);

void gtkut_ctree_node_move_if_on_the_edge
                                        (GtkCTree *ctree,
                                         GtkCTreeNode *node);
gint gtkut_ctree_get_nth_from_node (GtkCTree *ctree,
                                         GtkCTreeNode *node);
GtkCTreeNode *gtkut_ctree_node_next (GtkCTree *ctree,
                                         GtkCTreeNode *node);
GtkCTreeNode *gtkut_ctree_node_prev (GtkCTree *ctree,
                                         GtkCTreeNode *node);
gboolean gtkut_ctree_node_is_selected (GtkCTree *ctree,
                                         GtkCTreeNode *node);
GtkCTreeNode *gtkut_ctree_find_collapsed_parent
                                        (GtkCTree *ctree,
                                         GtkCTreeNode *node);
void gtkut_ctree_expand_parent_all (GtkCTree *ctree,
                                         GtkCTreeNode *node);
gboolean gtkut_ctree_node_is_parent (GtkCTreeNode *parent,
                                         GtkCTreeNode *node);
void gtkut_ctree_set_focus_row (GtkCTree *ctree,
                                         GtkCTreeNode *node);

void gtkut_clist_set_focus_row (GtkCList *clist,
                                         gint row);

void gtkut_combo_set_items (GtkCombo *combo,
                                         const gchar *str1, ...);

gchar *gtkut_editable_get_selection (GtkEditable *editable);

void gtkut_container_remove (GtkContainer *container,
                                         GtkWidget *widget);


void gtkut_window_popup (GtkWidget *window);

void gtkut_widget_get_uposition (GtkWidget *widget,
                                         gint *px,
                                         gint *py);
void gtkut_widget_disable_theme_engine (GtkWidget *widget);
void gtkut_widget_wait_for_draw (GtkWidget *widget);
void gtkut_widget_init (void);

void gtkut_widget_set_app_icon (GtkWidget *widget);
void gtkut_widget_set_composer_icon (GtkWidget *widget);

GtkWidget *gtkut_account_menu_new (GList *ac_list,
                                         GtkSignalFunc callback,
                                         gpointer data);

void gtkut_set_widget_bgcolor_rgb (GtkWidget *widget,
                                         guint rgbvalue);
# 62 "mimeview.c" 2
# 1 "prefs_common.h" 1
# 24 "prefs_common.h"
# 1 "../config.h" 1
# 25 "prefs_common.h" 2






# 1 "codeconv.h" 1
# 24 "codeconv.h"
# 1 "../config.h" 1
# 25 "codeconv.h" 2




typedef struct _CodeConverter CodeConverter;

typedef enum
{
        C_AUTO,
        C_US_ASCII,
        C_UTF_8,
        C_UTF_7,
        C_ISO_8859_1,
        C_ISO_8859_2,
        C_ISO_8859_3,
        C_ISO_8859_4,
        C_ISO_8859_5,
        C_ISO_8859_6,
        C_ISO_8859_7,
        C_ISO_8859_8,
        C_ISO_8859_9,
        C_ISO_8859_10,
        C_ISO_8859_11,
        C_ISO_8859_13,
        C_ISO_8859_14,
        C_ISO_8859_15,
        C_BALTIC,
        C_CP1250,
        C_CP1251,
        C_CP1252,
        C_CP1253,
        C_CP1254,
        C_CP1255,
        C_CP1256,
        C_CP1257,
        C_CP1258,
        C_WINDOWS_1250,
        C_WINDOWS_1251,
        C_WINDOWS_1252,
        C_WINDOWS_1253,
        C_WINDOWS_1254,
        C_WINDOWS_1255,
        C_WINDOWS_1256,
        C_WINDOWS_1257,
        C_WINDOWS_1258,
        C_KOI8_R,
        C_KOI8_T,
        C_KOI8_U,
        C_ISO_2022_JP,
        C_ISO_2022_JP_2,
        C_EUC_JP,
        C_SHIFT_JIS,
        C_ISO_2022_KR,
        C_EUC_KR,
        C_ISO_2022_CN,
        C_EUC_CN,
        C_GB2312,
        C_GBK,
        C_EUC_TW,
        C_BIG5,
        C_BIG5_HKSCS,
        C_TIS_620,
        C_WINDOWS_874,
        C_GEORGIAN_PS,
        C_TCVN5712_1
} CharSet;

typedef void (*CodeConvFunc) (gchar *outbuf, gint outlen, const gchar *inbuf);

struct _CodeConverter
{
        CodeConvFunc code_conv_func;
        gchar *charset_str;
        CharSet charset;
};
# 164 "codeconv.h"
void conv_jistoeuc (gchar *outbuf, gint outlen, const gchar *inbuf);
void conv_euctojis (gchar *outbuf, gint outlen, const gchar *inbuf);
void conv_sjistoeuc (gchar *outbuf, gint outlen, const gchar *inbuf);
void conv_anytoeuc (gchar *outbuf, gint outlen, const gchar *inbuf);
void conv_anytojis (gchar *outbuf, gint outlen, const gchar *inbuf);

void conv_unreadable_eucjp (gchar *str);
void conv_unreadable_8bit (gchar *str);
void conv_unreadable_latin (gchar *str);
void conv_unreadable_locale (gchar *str);

void conv_mb_alnum(gchar *str);

CharSet conv_guess_ja_encoding(const gchar *str);

void conv_jistodisp (gchar *outbuf, gint outlen, const gchar *inbuf);
void conv_sjistodisp (gchar *outbuf, gint outlen, const gchar *inbuf);
void conv_euctodisp (gchar *outbuf, gint outlen, const gchar *inbuf);
void conv_ustodisp (gchar *outbuf, gint outlen, const gchar *inbuf);
void conv_latintodisp (gchar *outbuf, gint outlen, const gchar *inbuf);
void conv_noconv (gchar *outbuf, gint outlen, const gchar *inbuf);
void conv_localetodisp (gchar *outbuf, gint outlen, const gchar *inbuf);

CodeConverter *conv_code_converter_new (const gchar *charset);
void conv_code_converter_destroy (CodeConverter *conv);
gint conv_convert (CodeConverter *conv,
                                         gchar *outbuf,
                                         gint outlen,
                                         const gchar *inbuf);

gchar *conv_codeset_strdup (const gchar *inbuf,
                                         const gchar *src_code,
                                         const gchar *dest_code);

CodeConvFunc conv_get_code_conv_func (const gchar *src_charset_str,
                                         const gchar *dest_charset_str);


gchar *conv_iconv_strdup (const gchar *inbuf,
                                         const gchar *src_code,
                                         const gchar *dest_code);


const gchar *conv_get_charset_str (CharSet charset);
CharSet conv_get_charset_from_str (const gchar *charset);
CharSet conv_get_current_charset (void);
const gchar *conv_get_current_charset_str (void);
CharSet conv_get_outgoing_charset (void);
const gchar *conv_get_outgoing_charset_str (void);
gboolean conv_is_multibyte_encoding (CharSet encoding);

const gchar *conv_get_current_locale (void);

void conv_unmime_header_overwrite (gchar *str);
void conv_unmime_header (gchar *outbuf,
                                         gint outlen,
                                         const gchar *str,
                                         const gchar *charset);
void conv_encode_header (gchar *dest,
                                         gint len,
                                         const gchar *src,
                                         gint header_len,
                                         gboolean addr_field);
# 32 "prefs_common.h" 2


typedef struct _PrefsCommon PrefsCommon;

typedef enum {
        RECV_DIALOG_ALWAYS,
        RECV_DIALOG_MANUAL,
        RECV_DIALOG_NEVER
} RecvDialogMode;

typedef enum {
        CTE_AUTO,
        CTE_BASE64,
        CTE_QUOTED_PRINTABLE,
        CTE_8BIT
} TransferEncodingMethod;

typedef enum {
        SEND_DIALOG_ALWAYS,

        SEND_DIALOG_NEVER
} SendDialogMode;

typedef enum
{
        NEXTUNREADMSGDIALOG_ALWAYS,
        NEXTUNREADMSGDIALOG_ASSUME_YES,
        NEXTUNREADMSGDIALOG_ASSUME_NO
} NextUnreadMsgDialogShow;

struct _PrefsCommon
{

        gboolean use_extinc;
        gchar *extinc_cmd;
        gboolean inc_local;
        gboolean filter_on_inc;
        gchar *spool_path;
        gboolean scan_all_after_inc;
        gboolean autochk_newmail;
        gint autochk_itv;
        gboolean chk_on_startup;
        gboolean newmail_notify_auto;
        gboolean newmail_notify_manu;
        gchar *newmail_notify_cmd;
        RecvDialogMode recv_dialog_mode;
        gboolean close_recv_dialog;
        gboolean no_recv_err_panel;


        gboolean use_extsend;
        gchar *extsend_cmd;
        gboolean savemsg;
        gboolean queue_msg;
        SendDialogMode send_dialog_mode;
        gchar *outgoing_charset;
        TransferEncodingMethod encoding_method;


        gint undolevels;
        gint linewrap_len;
        gboolean linewrap_quote;
        gboolean autowrap;
        gboolean linewrap_at_send;
        gboolean auto_exteditor;
        gboolean reply_account_autosel;
        gboolean default_reply_list;
        gboolean forward_account_autosel;
        gboolean reedit_account_autosel;
        gboolean show_ruler;
        gboolean autosave;
        gint autosave_length;


        gboolean reply_with_quote;
        gchar *quotemark;
        gchar *quotefmt;
        gchar *fw_quotemark;
        gchar *fw_quotefmt;
        gboolean forward_as_attachment;
        gboolean redirect_keep_from;
        gboolean smart_wrapping;
        gboolean block_cursor;
        gchar *quote_chars;


        gboolean enable_aspell;
        gchar *aspell_path;
        gchar *dictionary;
        gulong misspelled_col;
        gint aspell_sugmode;
        gboolean check_while_typing;
        gboolean use_alternate;



        gchar *widgetfont;
        gchar *textfont;
        gchar *normalfont;
        gchar *boldfont;
        gchar *smallfont;

        gboolean trans_hdr;
        gboolean display_folder_unread;
        gint ng_abbrev_len;

        gboolean show_searchbar;
        gboolean swap_from;
        gboolean expand_thread;
        gboolean use_addr_book;
        gchar *date_format;

        gboolean enable_hscrollbar;
        gboolean bold_unread;
        gboolean enable_thread;
        gboolean thread_by_subject;
        gint thread_by_subject_max_age;


        ToolbarStyle toolbar_style;
        gboolean show_statusbar;

        gint folderview_vscrollbar_policy;


        GSList *fltlist;

        gint kill_score;
        gint important_score;


        GSList *actions_list;


        gboolean summary_col_visible[10];
        gint summary_col_pos[10];
        gint summary_col_size[10];


        gint folderwin_x;
        gint folderwin_y;
        gint folderview_width;
        gint folderview_height;
        gboolean folderview_visible;

        gint folder_col_folder;
        gint folder_col_new;
        gint folder_col_unread;
        gint folder_col_total;

        gint summaryview_width;
        gint summaryview_height;

        gint main_msgwin_x;
        gint main_msgwin_y;
        gint msgview_width;
        gint msgview_height;
        gboolean msgview_visible;

        gint mainview_x;
        gint mainview_y;
        gint mainview_width;
        gint mainview_height;
        gint mainwin_x;
        gint mainwin_y;
        gint mainwin_width;
        gint mainwin_height;

        gint msgwin_width;
        gint msgwin_height;

        gint sourcewin_width;
        gint sourcewin_height;

        gint compose_width;
        gint compose_height;


        gboolean enable_color;
        gulong quote_level1_col;
        gulong quote_level2_col;
        gulong quote_level3_col;
        gulong uri_col;
        gulong tgt_folder_col;
        gulong signature_col;
        gboolean recycle_quote_colors;
        gboolean conv_mb_alnum;
        gboolean display_header_pane;
        gboolean display_header;
        gboolean head_space;
        gint line_space;
        gboolean enable_smooth_scroll;
        gint scroll_step;
        gboolean scroll_halfpage;

        gchar *force_charset;

        gboolean show_other_header;
        GSList *disphdr_list;

        gboolean attach_desc;


        gchar *mime_image_viewer;
        gchar *mime_audio_player;
        gchar *mime_open_cmd;

        GList *mime_open_cmd_history;
# 252 "prefs_common.h"
        gboolean sep_folder;
        gboolean sep_msg;
        gboolean emulate_emacs;
        gboolean always_show_msg;
        gboolean open_unread_on_enter;
        gboolean mark_as_read_on_new_window;
        gboolean open_inbox_on_inc;
        gboolean immediate_exec;
        NextUnreadMsgDialogShow next_unread_msg_dialog;
        gboolean add_address_by_click;
        gchar *pixmap_theme_path;
        int hover_timeout;


        gchar *uri_cmd;
        gchar *print_cmd;
        gchar *ext_editor_cmd;

        gboolean cliplog;
        guint loglength;

        gboolean confirm_on_exit;
        gboolean clean_on_exit;
        gboolean ask_on_clean;
        gboolean warn_queued_on_exit;

        gint io_timeout_secs;
# 287 "prefs_common.h"
        gint cache_max_mem_usage;
        gint cache_min_keep_time;



        gboolean work_offline;

        gint summary_quicksearch_type;
        gulong color_new;
};

extern PrefsCommon prefs_common;

void prefs_common_init (void);
void prefs_common_read_config (void);
void prefs_common_save_config (void);
void prefs_common_open (void);
PrefsCommon *prefs_common_get (void);
# 63 "mimeview.c" 2
# 1 "rfc2015.h" 1
# 28 "rfc2015.h"
void rfc2015_disable_all (void);
void rfc2015_secure_remove (const gchar *fname);
MimeInfo *rfc2015_find_signature (MimeInfo *mimeinfo);
gboolean rfc2015_has_signature (MimeInfo *mimeinfo);
void rfc2015_check_signature (MimeInfo *mimeinfo,
                                         FILE *fp);
gint rfc2015_is_encrypted (MimeInfo *mimeinfo);
gboolean rfc2015_msg_is_encrypted (const gchar *file);
void rfc2015_decrypt_message (MsgInfo *msginfo,
                                         MimeInfo *mimeinfo,
                                         FILE *fp);
GSList *rfc2015_create_signers_list (const gchar *keyid);
gint rfc2015_encrypt (const gchar *file,
                                         GSList *recp_list,
                                         gboolean ascii_armored);
gint rfc2015_sign (const gchar *file,
                                         GSList *key_list);
gint rfc2015_clearsign (const gchar *file,
                                         GSList *key_list);

gboolean gpg_started;
# 64 "mimeview.c" 2
# 1 "stock_pixmap.h" 1
# 26 "stock_pixmap.h"
typedef enum
{
        STOCK_PIXMAP_ADDRESS,
        STOCK_PIXMAP_ADDRESS_BOOK,
        STOCK_PIXMAP_ADDRESS_SEARCH,
        STOCK_PIXMAP_BOOK,
        STOCK_PIXMAP_CATEGORY,
        STOCK_PIXMAP_CHECKBOX_OFF,
        STOCK_PIXMAP_CHECKBOX_ON,
        STOCK_PIXMAP_CLIP,
        STOCK_PIXMAP_CLIP_KEY,
        STOCK_PIXMAP_CLOSE,
        STOCK_PIXMAP_COMPLETE,
        STOCK_PIXMAP_CONTINUE,
        STOCK_PIXMAP_DELETED,
        STOCK_PIXMAP_DIR_CLOSE,
        STOCK_PIXMAP_DIR_CLOSE_HRM,
        STOCK_PIXMAP_DIR_OPEN,
        STOCK_PIXMAP_DIR_OPEN_HRM,
        STOCK_PIXMAP_DOWN_ARROW,
        STOCK_PIXMAP_UP_ARROW,
        STOCK_PIXMAP_EDIT_EXTERN,
        STOCK_PIXMAP_ERROR,
        STOCK_PIXMAP_EXEC,
        STOCK_PIXMAP_FORWARDED,
        STOCK_PIXMAP_GROUP,
        STOCK_PIXMAP_IGNORETHREAD,
        STOCK_PIXMAP_INBOX_CLOSE,
        STOCK_PIXMAP_INBOX_CLOSE_HRM,
        STOCK_PIXMAP_INBOX_OPEN,
        STOCK_PIXMAP_INBOX_OPEN_HRM,
        STOCK_PIXMAP_INSERT_FILE,
        STOCK_PIXMAP_INTERFACE,
        STOCK_PIXMAP_JPILOT,
        STOCK_PIXMAP_KEY,
        STOCK_PIXMAP_LDAP,
        STOCK_PIXMAP_LINEWRAP,
        STOCK_PIXMAP_LOCKED,
        STOCK_PIXMAP_MAIL,
        STOCK_PIXMAP_MAIL_ATTACH,
        STOCK_PIXMAP_MAIL_COMPOSE,
        STOCK_PIXMAP_MAIL_FORWARD,
        STOCK_PIXMAP_MAIL_RECEIVE,
        STOCK_PIXMAP_MAIL_RECEIVE_ALL,
        STOCK_PIXMAP_MAIL_REPLY,
        STOCK_PIXMAP_MAIL_REPLY_TO_ALL,
        STOCK_PIXMAP_MAIL_REPLY_TO_AUTHOR,
        STOCK_PIXMAP_MAIL_SEND,
        STOCK_PIXMAP_MAIL_SEND_QUEUE,
        STOCK_PIXMAP_MAIL_SIGN,
        STOCK_PIXMAP_MARK,
        STOCK_PIXMAP_NEW,
        STOCK_PIXMAP_NEWS_COMPOSE,
        STOCK_PIXMAP_OUTBOX_CLOSE,
        STOCK_PIXMAP_OUTBOX_CLOSE_HRM,
        STOCK_PIXMAP_OUTBOX_OPEN,
        STOCK_PIXMAP_OUTBOX_OPEN_HRM,
        STOCK_PIXMAP_REPLIED,
        STOCK_PIXMAP_PASTE,
        STOCK_PIXMAP_PREFERENCES,
        STOCK_PIXMAP_PROPERTIES,
        STOCK_PIXMAP_QUEUE_CLOSE,
        STOCK_PIXMAP_QUEUE_CLOSE_HRM,
        STOCK_PIXMAP_QUEUE_OPEN,
        STOCK_PIXMAP_QUEUE_OPEN_HRM,
        STOCK_PIXMAP_TRASH_OPEN,
        STOCK_PIXMAP_TRASH_OPEN_HRM,
        STOCK_PIXMAP_TRASH_CLOSE,
        STOCK_PIXMAP_TRASH_CLOSE_HRM,
        STOCK_PIXMAP_UNREAD,
        STOCK_PIXMAP_VCARD,
        STOCK_PIXMAP_WORK_ONLINE,
        STOCK_PIXMAP_WORK_OFFLINE,
        STOCK_PIXMAP_NOTICE_WARN,
        STOCK_PIXMAP_NOTICE_ERROR,
        STOCK_PIXMAP_NOTICE_NOTE,
        STOCK_PIXMAP_QUICKSEARCH,
        STOCK_PIXMAP_GPG_SIGNED,
        STOCK_PIXMAP_DRAFTS_CLOSE,
        STOCK_PIXMAP_DRAFTS_OPEN,
        STOCK_PIXMAP_MESSAGEVIEW_TEXT,
        STOCK_PIXMAP_MIME_TEXT_PLAIN,
        STOCK_PIXMAP_MIME_TEXT_HTML,
        STOCK_PIXMAP_MIME_APPLICATION,
        STOCK_PIXMAP_MIME_APPLICATION_OCTET_STREAM,
        STOCK_PIXMAP_MIME_IMAGE,
        STOCK_PIXMAP_MIME_AUDIO,
        STOCK_PIXMAP_MIME_TEXT_ENRICHED,
        STOCK_PIXMAP_MIME_UNKNOWN,
        STOCK_PIXMAP_MIME_GPG_SIGNED,
        STOCK_PIXMAP_MIME_GPG_PASSED,
        STOCK_PIXMAP_MIME_GPG_FAILED,
        STOCK_PIXMAP_MIME_GPG_UNKNOWN,
        STOCK_PIXMAP_MIME_GPG_EXPIRED,

        STOCK_PIXMAP_SYLPHEED_LOGO,

        N_STOCK_PIXMAPS
} StockPixmap;

GtkWidget *stock_pixmap_widget (GtkWidget *window,
                                 StockPixmap icon);
gint stock_pixmap_gdk (GtkWidget *window,
                                 StockPixmap icon,
                                 GdkPixmap **pixmap,
                                 GdkBitmap **mask);

GList *stock_pixmap_themes_list_new (void);
void stock_pixmap_themes_list_free (GList *list);
gchar *stock_pixmap_get_name (StockPixmap icon);
StockPixmap stock_pixmap_get_icon (gchar *file);
# 65 "mimeview.c" 2
# 1 "gtk/gtkvscrollbutton.h" 1
# 47 "gtk/gtkvscrollbutton.h"
typedef struct _GtkVScrollbutton GtkVScrollbutton;
typedef struct _GtkVScrollbuttonClass GtkVScrollbuttonClass;

struct _GtkVScrollbutton
{
        GtkVBox vbox;
        GtkWidget *upbutton;
        GtkWidget *downbutton;
        guint need_timer : 1;
        guint32 timer;
        GtkAdjustment *adjustment;
        gint button;
        GtkScrollType scroll_type;

};

struct _GtkVScrollbuttonClass
{
        GtkVBoxClass parent_class;
};
# 75 "gtk/gtkvscrollbutton.h"
GtkType gtk_vscrollbutton_get_type (void);
GtkWidget* gtk_vscrollbutton_new (GtkAdjustment *adjustment);
# 66 "mimeview.c" 2


typedef enum
{
        COL_MIMETYPE = 0,
        COL_SIZE = 1,
        COL_NAME = 2
} MimeViewColumnPos;



static void mimeview_set_multipart_tree (MimeView *mimeview,
                                                 MimeInfo *mimeinfo,
                                                 GtkCTreeNode *parent);
static GtkCTreeNode *mimeview_append_part (MimeView *mimeview,
                                                 MimeInfo *partinfo,
                                                 GtkCTreeNode *parent);
static void mimeview_show_message_part (MimeView *mimeview,
                                                 MimeInfo *partinfo);
static void mimeview_change_view_type (MimeView *mimeview,
                                                 MimeViewType type);
static void mimeview_clear (MimeView *mimeview);

static void mimeview_selected (GtkCTree *ctree,
                                         GtkCTreeNode *node,
                                         gint column,
                                         MimeView *mimeview);
static void mimeview_start_drag (GtkWidget *widget,
                                         gint button,
                                         GdkEvent *event,
                                         MimeView *mimeview);
static gint mimeview_button_pressed (GtkWidget *widget,
                                         GdkEventButton *event,
                                         MimeView *mimeview);
static gint mimeview_key_pressed (GtkWidget *widget,
                                         GdkEventKey *event,
                                         MimeView *mimeview);

static void mimeview_drag_data_get (GtkWidget *widget,
                                         GdkDragContext *drag_context,
                                         GtkSelectionData *selection_data,
                                         guint info,
                                         guint time,
                                         MimeView *mimeview);

static void mimeview_display_as_text (MimeView *mimeview);
static void mimeview_save_as (MimeView *mimeview);
static void mimeview_save_all (MimeView *mimeview);
static void mimeview_launch (MimeView *mimeview);
static void mimeview_open_with (MimeView *mimeview);
static void mimeview_view_file (const gchar *filename,
                                         MimeInfo *partinfo,
                                         const gchar *cmdline);
static gboolean icon_clicked_cb (GtkWidget *button,
                                         GdkEventButton *event,
                                         MimeView *mimeview);
static void icon_selected (MimeView *mimeview,
                                         gint num,
                                         MimeInfo *partinfo);
static gint icon_key_pressed (GtkWidget *button,
                                         GdkEventKey *event,
                                         MimeView *mimeview);
static void toggle_icon (GtkToggleButton *button,
                                         MimeView *mimeview);
static void icon_list_append_icon (MimeView *mimeview,
                                         MimeInfo *mimeinfo);
static void icon_list_create (MimeView *mimeview,
                                         MimeInfo *mimeinfo);
static void icon_list_clear (MimeView *mimeview);
static void icon_list_toggle_by_mime_info (MimeView *mimeview,
                                           MimeInfo *mimeinfo);
static gboolean icon_list_select_by_number(MimeView *mimeview,
                                           gint number);
static void mime_toggle_button_cb (GtkWidget *button,
                                         MimeView *mimeview);
static void part_button_pressed (MimeView *mimeview,
                                         GdkEventButton *event,
                                         MimeInfo *partinfo);
static void icon_scroll_size_allocate_cb(GtkWidget *widget,
                                         GtkAllocation *layout_size,
                                         MimeView *mimeview);

static GtkItemFactoryEntry mimeview_popup_entries[] =
{
        {("/_Open"), ((void *)0), mimeview_launch, 0, ((void *)0)},
        {("/Open _with..."), ((void *)0), mimeview_open_with, 0, ((void *)0)},
        {("/_Display as text"), ((void *)0), mimeview_display_as_text, 0, ((void *)0)},
        {("/_Save as..."), ((void *)0), mimeview_save_as, 0, ((void *)0)},
        {("/Save _all..."), ((void *)0), mimeview_save_all, 0, ((void *)0)}




};

static GtkTargetEntry mimeview_mime_types[] =
{
        {"text/uri-list", 0, 0}
};

GSList *mimeviewer_factories;
GSList *mimeviews;

MimeView *mimeview_create(MainWindow *mainwin)
{
        MimeView *mimeview;

        GtkWidget *notebook;
        GtkWidget *vbox;
        GtkWidget *paned;
        GtkWidget *scrolledwin;
        GtkWidget *ctree;
        GtkWidget *mime_notebook;
        GtkWidget *popupmenu;
        GtkWidget *ctree_mainbox;
        GtkWidget *mime_toggle;
        GtkWidget *icon_mainbox;
        GtkWidget *icon_scroll;
        GtkWidget *icon_vbox;
        GtkWidget *arrow;
        GtkWidget *scrollbutton;
        GtkWidget *hbox;
        GtkTooltips *tooltips;
        GtkItemFactory *popupfactory;
        gchar *titles[3];
        gint n_entries;
        gint i;

        debug_print_real("mimeview.c" ":%d:", 194), debug_print_real("Creating MIME view...\n");
        mimeview = ((MimeView *) g_malloc0 ((unsigned) sizeof (MimeView) * (1)));

        titles[COL_MIMETYPE] = gettext("MIME Type");
        titles[COL_SIZE] = gettext("Size");
        titles[COL_NAME] = gettext("Name");

        notebook = gtk_notebook_new();
        gtk_notebook_set_scrollable((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((notebook)), ((gtk_notebook_get_type ()))))), (!(0)));
        gtk_notebook_set_show_tabs((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((notebook)), ((gtk_notebook_get_type ()))))), (0));
        gtk_notebook_set_show_border((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((notebook)), ((gtk_notebook_get_type ()))))), (0));

        vbox = gtk_vbox_new((0), 0);
        print_debug( "%s:%d -> gtk_container_add()\n", "mimeview.c", 207 );
        gtk_container_add((((GtkContainer*) gtk_type_check_object_cast ((GtkTypeObject*) ((notebook)), ((gtk_container_get_type ()))))), vbox);

        scrolledwin = gtk_scrolled_window_new(((void *)0), ((void *)0));
        gtk_scrolled_window_set_policy((((GtkScrolledWindow*) gtk_type_check_object_cast ((GtkTypeObject*) ((scrolledwin)), ((gtk_scrolled_window_get_type ()))))),
                                       GTK_POLICY_AUTOMATIC,
                                       GTK_POLICY_ALWAYS);

        ctree = gtk_sctree_new_with_titles(3, 0, titles);
        gtk_clist_set_selection_mode((((GtkCList*) gtk_type_check_object_cast ((GtkTypeObject*) ((ctree)), ((gtk_clist_get_type ()))))), GTK_SELECTION_BROWSE);
        gtk_ctree_set_line_style((((GtkCTree*) gtk_type_check_object_cast ((GtkTypeObject*) ((ctree)), ((gtk_ctree_get_type ()))))), GTK_CTREE_LINES_NONE);
        gtk_clist_set_column_justification((((GtkCList*) gtk_type_check_object_cast ((GtkTypeObject*) ((ctree)), ((gtk_clist_get_type ()))))), COL_SIZE,
                                           GTK_JUSTIFY_RIGHT);
        gtk_clist_set_column_width((((GtkCList*) gtk_type_check_object_cast ((GtkTypeObject*) ((ctree)), ((gtk_clist_get_type ()))))), COL_MIMETYPE, 240);
        gtk_clist_set_column_width((((GtkCList*) gtk_type_check_object_cast ((GtkTypeObject*) ((ctree)), ((gtk_clist_get_type ()))))), COL_SIZE, 90);
        for (i = 0; i < 3; i++)
                (void)({ (((( ( ((((GtkCList*) gtk_type_check_object_cast ((GtkTypeObject*) ((ctree)), ((gtk_clist_get_type ())))))->column[i].button) != ((void *)0) && ( (((GtkObject*) ((((GtkCList*) gtk_type_check_object_cast ((GtkTypeObject*) ((ctree)), ((gtk_clist_get_type ())))))->column[i].button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) ((((GtkCList*) gtk_type_check_object_cast ((GtkTypeObject*) ((ctree)), ((gtk_clist_get_type ())))))->column[i].button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) ((((GtkCList*) gtk_type_check_object_cast ((GtkTypeObject*) ((ctree)), ((gtk_clist_get_type ())))))->column[i].button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) ((((GtkCList*) gtk_type_check_object_cast ((GtkTypeObject*) ((ctree)), ((gtk_clist_get_type ())))))->column[i].button), GTK_TYPE_OBJECT) )->flags)) &= ~(GTK_CAN_FOCUS)); });

        print_debug( "%s:%d -> gtk_container_add()\n", "mimeview.c", 225 );
        gtk_container_add((((GtkContainer*) gtk_type_check_object_cast ((GtkTypeObject*) ((scrolledwin)), ((gtk_container_get_type ()))))), ctree);

        gtk_signal_connect(( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ), "tree_select_row",
                           ((GtkSignalFunc) mimeview_selected), mimeview);
        gtk_signal_connect(( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ), "button_press_event",
                           ((GtkSignalFunc) mimeview_button_pressed), mimeview);
        gtk_signal_connect(( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ), "key_press_event",
                           ((GtkSignalFunc) mimeview_key_pressed), mimeview);
        gtk_signal_connect(( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ),"start_drag",
                           ((GtkSignalFunc) mimeview_start_drag), mimeview);
        gtk_signal_connect(( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ), "drag_data_get",
                           ((GtkSignalFunc) mimeview_drag_data_get), mimeview);

        mime_notebook = gtk_notebook_new();
        gtk_widget_show(mime_notebook);
        (void)({ (((( ( (mime_notebook) != ((void *)0) && ( (((GtkObject*) (mime_notebook))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (mime_notebook))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (mime_notebook) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (mime_notebook), GTK_TYPE_OBJECT) )->flags)) &= ~(GTK_CAN_FOCUS)); });
        gtk_notebook_set_show_tabs((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((mime_notebook)), ((gtk_notebook_get_type ()))))), (0));
        gtk_notebook_set_show_border((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((mime_notebook)), ((gtk_notebook_get_type ()))))), (0));

        gtk_notebook_set_page((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((notebook)), ((gtk_notebook_get_type ()))))), 0);

        icon_vbox = gtk_vbox_new((0), 2);
        icon_scroll = gtk_layout_new(((void *)0), ((void *)0));
        gtk_layout_put((((GtkLayout*) gtk_type_check_object_cast ((GtkTypeObject*) ((icon_scroll)), ((gtk_layout_get_type ()))))), icon_vbox, 0, 0);
        scrollbutton = gtk_vscrollbutton_new(gtk_layout_get_vadjustment((((GtkLayout*) gtk_type_check_object_cast ((GtkTypeObject*) ((icon_scroll)), ((gtk_layout_get_type ())))))));

        mime_toggle = gtk_toggle_button_new();
        arrow = gtk_arrow_new(GTK_ARROW_LEFT, GTK_SHADOW_NONE);
        gtk_widget_show(arrow);
        print_debug( "%s:%d -> gtk_container_add()\n", "mimeview.c", 255 );
        gtk_container_add((((GtkContainer*) gtk_type_check_object_cast ((GtkTypeObject*) ((mime_toggle)), ((gtk_container_get_type ()))))), arrow);
        gtk_signal_connect(( ( (mime_toggle) != ((void *)0) && ( (((GtkObject*) (mime_toggle))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (mime_toggle))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (mime_toggle) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (mime_toggle), GTK_TYPE_OBJECT) ), "toggled",
                           ((GtkSignalFunc) mime_toggle_button_cb), mimeview);

        icon_mainbox = gtk_vbox_new((0), 0);
        gtk_box_pack_start((((GtkBox*) gtk_type_check_object_cast ((GtkTypeObject*) ((icon_mainbox)), ((gtk_box_get_type ()))))), mime_toggle, (0), (0), 0);
        gtk_box_pack_start((((GtkBox*) gtk_type_check_object_cast ((GtkTypeObject*) ((icon_mainbox)), ((gtk_box_get_type ()))))), icon_scroll, (!(0)), (!(0)), 3);
        gtk_box_pack_end((((GtkBox*) gtk_type_check_object_cast ((GtkTypeObject*) ((icon_mainbox)), ((gtk_box_get_type ()))))), scrollbutton, (0), (0), 0);
        gtk_signal_connect(( ( (icon_mainbox) != ((void *)0) && ( (((GtkObject*) (icon_mainbox))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (icon_mainbox))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (icon_mainbox) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (icon_mainbox), GTK_TYPE_OBJECT) ), "size_allocate",
                        ((GtkSignalFunc) icon_scroll_size_allocate_cb), mimeview);

        ctree_mainbox = gtk_hbox_new((0), 0);
        gtk_box_pack_start((((GtkBox*) gtk_type_check_object_cast ((GtkTypeObject*) ((ctree_mainbox)), ((gtk_box_get_type ()))))), scrolledwin, (!(0)), (!(0)), 0);

        n_entries = sizeof(mimeview_popup_entries) /
                sizeof(mimeview_popup_entries[0]);
        popupmenu = menu_create_items(mimeview_popup_entries, n_entries,
                                      "<MimeView>", &popupfactory, mimeview);
        tooltips = gtk_tooltips_new();
        gtk_tooltips_set_delay(tooltips, 0);

        paned = gtk_vpaned_new();
        gtk_paned_set_gutter_size((((GtkPaned*) gtk_type_check_object_cast ((GtkTypeObject*) ((paned)), ((gtk_paned_get_type ()))))), 6);
        gtk_paned_pack1((((GtkPaned*) gtk_type_check_object_cast ((GtkTypeObject*) ((paned)), ((gtk_paned_get_type ()))))), ctree_mainbox, (0), (!(0)));
        gtk_paned_pack2((((GtkPaned*) gtk_type_check_object_cast ((GtkTypeObject*) ((paned)), ((gtk_paned_get_type ()))))), mime_notebook, (!(0)), (!(0)));
        print_debug( "%s:%d -> gtk_container_add()\n", "mimeview.c", 281 );
        gtk_container_add((((GtkContainer*) gtk_type_check_object_cast ((GtkTypeObject*) ((notebook)), ((gtk_container_get_type ()))))), paned);

        hbox = gtk_hbox_new((0), 0);
        gtk_box_pack_start((((GtkBox*) gtk_type_check_object_cast ((GtkTypeObject*) ((hbox)), ((gtk_box_get_type ()))))), notebook, (!(0)), (!(0)), 0);
        gtk_box_pack_start((((GtkBox*) gtk_type_check_object_cast ((GtkTypeObject*) ((hbox)), ((gtk_box_get_type ()))))), icon_mainbox, (0), (0), 0);

        gtk_widget_show_all(hbox);
        gtk_widget_hide(ctree_mainbox);

        mimeview->notebook = notebook;
        mimeview->vbox = vbox;
        mimeview->hbox = hbox;
        mimeview->paned = paned;
        mimeview->scrolledwin = scrolledwin;
        mimeview->ctree = ctree;
        mimeview->mime_notebook = mime_notebook;
        mimeview->popupmenu = popupmenu;
        mimeview->popupfactory = popupfactory;
        mimeview->type = -1;
        mimeview->ctree_mainbox = ctree_mainbox;
        mimeview->icon_scroll = icon_scroll;
        mimeview->icon_vbox = icon_vbox;
        mimeview->icon_mainbox = icon_mainbox;
        mimeview->icon_count = 0;
        mimeview->mainwin = mainwin;
        mimeview->tooltips = tooltips;
        mimeview->oldsize = 60;
        mimeview->mime_toggle = mime_toggle;

        mimeview->target_list = gtk_target_list_new(mimeview_mime_types, 1);

        mimeviews = g_slist_prepend(mimeviews, mimeview);

        return mimeview;
}

void mimeview_init(MimeView *mimeview)
{
        textview_init(mimeview->textview);

        print_debug( "%s:%d -> gtk_container_add()\n", "mimeview.c", 322 );
        gtk_container_add((((GtkContainer*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->mime_notebook)), ((gtk_container_get_type ()))))),
                (*(GtkWidget **)mimeview->textview));
}
# 377 "mimeview.c"
void mimeview_show_message(MimeView *mimeview, MimeInfo *mimeinfo,
                           const gchar *file)
{
        GtkCTree *ctree = (((GtkCTree*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->ctree)), ((gtk_ctree_get_type ())))));
        GtkCTreeNode *node;
        FILE *fp;

        mimeview_clear(mimeview);
        textview_clear(mimeview->messageview->textview);

        (void)({ if (!(file != ((void *)0))) { g_log (((gchar*) 0), G_LOG_LEVEL_CRITICAL, "file %s: line %d (%s): assertion `%s' failed.", "mimeview.c", 387, __PRETTY_FUNCTION__, "file != NULL"); return; }; });
        (void)({ if (!(mimeinfo != ((void *)0))) { g_log (((gchar*) 0), G_LOG_LEVEL_CRITICAL, "file %s: line %d (%s): assertion `%s' failed.", "mimeview.c", 388, __PRETTY_FUNCTION__, "mimeinfo != NULL"); return; }; });

        mimeview->mimeinfo = mimeinfo;

        mimeview->file = g_strdup(file);
# 406 "mimeview.c"
        gtk_signal_handler_block_by_func(( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ), mimeview_selected,
                                         mimeview);

        mimeview_set_multipart_tree(mimeview, mimeinfo, ((void *)0));
        icon_list_create(mimeview, mimeinfo);

        gtk_signal_handler_unblock_by_func(( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ),
                                           mimeview_selected, mimeview);


        for (node = ((GtkCTreeNode *)(((((GtkCList*) gtk_type_check_object_cast ((GtkTypeObject*) ((ctree)), ((gtk_clist_get_type ())))))->row_list)));
             node != ((void *)0); node = ((GtkCTreeNode *)(((GList *)(node))->next))) {
                MimeInfo *partinfo;

                partinfo = gtk_ctree_node_get_row_data(ctree, node);
                if (partinfo &&
                    (partinfo->mime_type == MIME_TEXT ||
                     partinfo->mime_type == MIME_TEXT_HTML))
                        break;
        }
        textview_show_message(mimeview->messageview->textview, mimeinfo, file);

        if (!node)
                node = ((GtkCTreeNode *)(((((GtkCList*) gtk_type_check_object_cast ((GtkTypeObject*) ((ctree)), ((gtk_clist_get_type ())))))->row_list)));

        if (node) {
                gtk_ctree_select(ctree, node);
                icon_list_toggle_by_mime_info
                        (mimeview, gtk_ctree_node_get_row_data(ctree, node));
                gtkut_ctree_set_focus_row(ctree, node);
                if (gtk_toggle_button_get_active((((GtkToggleButton*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->mime_toggle)), ((gtk_toggle_button_get_type ())))))))
                        gtk_widget_grab_focus(mimeview->ctree);
        }
}

void mimeview_destroy(MimeView *mimeview)
{
        GSList *cur;

        for (cur = mimeview->viewers; cur != ((void *)0); cur = ((cur) ? (((GSList *)(cur))->next) : ((void *)0))) {
                MimeViewer *viewer = (MimeViewer *) cur->data;
                gtk_container_remove((((GtkContainer*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->mime_notebook)), ((gtk_container_get_type ()))))),
                        (((GtkWidget*) gtk_type_check_object_cast ((GtkTypeObject*) ((viewer->get_widget(viewer))), ((gtk_widget_get_type ()))))));
                viewer->destroy_viewer(viewer);
        }
        g_slist_free(mimeview->viewers);
        gtk_target_list_unref(mimeview->target_list);

        procmime_mimeinfo_free_all(mimeview->mimeinfo);
        g_free(mimeview->file);
        g_free(mimeview);

        mimeviews = g_slist_remove(mimeviews, mimeview);

}

MimeInfo *mimeview_get_selected_part(MimeView *mimeview)
{
        if (gtk_notebook_get_current_page
                ((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->notebook)), ((gtk_notebook_get_type ())))))) == 0)
                return ((void *)0);

        return gtk_ctree_node_get_row_data
                ((((GtkCTree*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->ctree)), ((gtk_ctree_get_type ()))))), mimeview->opened);
}

static void mimeview_set_multipart_tree(MimeView *mimeview,
                                        MimeInfo *mimeinfo,
                                        GtkCTreeNode *parent)
{
        GtkCTreeNode *node;

        (void)({ if (!(mimeinfo != ((void *)0))) { g_log (((gchar*) 0), G_LOG_LEVEL_CRITICAL, "file %s: line %d (%s): assertion `%s' failed.", "mimeview.c", 478, __PRETTY_FUNCTION__, "mimeinfo != NULL"); return; }; });

        if (mimeinfo->children)
                mimeinfo = mimeinfo->children;

        while (mimeinfo != ((void *)0)) {
                node = mimeview_append_part(mimeview, mimeinfo, parent);

                if (mimeinfo->children)
                        mimeview_set_multipart_tree(mimeview, mimeinfo, node);
                else if (mimeinfo->sub &&
                         mimeinfo->sub->mime_type != MIME_TEXT &&
                         mimeinfo->sub->mime_type != MIME_TEXT_HTML)
                        mimeview_set_multipart_tree(mimeview, mimeinfo->sub,
                                                    node);
                mimeinfo = mimeinfo->next;
        }
}

static gchar *get_part_name(MimeInfo *partinfo)
{





        if (partinfo->name)
                return partinfo->name;
        else if (partinfo->filename)
                return partinfo->filename;
        else if (partinfo->description)
                return partinfo->description;
        else
                return "";
}

static gchar *get_part_description(MimeInfo *partinfo)
{
        if (partinfo->description)
                return partinfo->description;
        else if (partinfo->name)
                return partinfo->name;
        else if (partinfo->filename)
                return partinfo->filename;
        else
                return "";
}

static GtkCTreeNode *mimeview_append_part(MimeView *mimeview,
                                          MimeInfo *partinfo,
                                          GtkCTreeNode *parent)
{
        GtkCTree *ctree = (((GtkCTree*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->ctree)), ((gtk_ctree_get_type ())))));
        GtkCTreeNode *node;
        gchar *str[3];

        str[COL_MIMETYPE] =
                partinfo->content_type ? partinfo->content_type : "";
        str[COL_SIZE] = to_human_readable(partinfo->size);
        if (prefs_common.attach_desc)
                str[COL_NAME] = get_part_description(partinfo);
        else
                str[COL_NAME] = get_part_name(partinfo);

        node = gtk_ctree_insert_node(ctree, parent, ((void *)0), str, 0,
                                     ((void *)0), ((void *)0), ((void *)0), ((void *)0),
                                     (0), (!(0)));
        gtk_ctree_node_set_row_data(ctree, node, partinfo);

        return node;
}

static void mimeview_show_message_part(MimeView *mimeview, MimeInfo *partinfo)
{
        FILE *fp;
        const gchar *fname;




        if (!partinfo) return;






        fname = mimeview->file;

        if (!fname) return;

        if ((fp = fopen(fname, "rb")) == ((void *)0)) {
                { fprintf(stderr, "%s: ", fname); perror("fopen"); };
                return;
        }

        if (fseek(fp, partinfo->fpos, 0) < 0) {
                { fprintf(stderr, "%s: ", mimeview->file); perror("fseek"); };
                fclose(fp);
                return;
        }

        mimeview_change_view_type(mimeview, MIMEVIEW_TEXT);
        textview_show_part(mimeview->textview, partinfo, fp);

        fclose(fp);
}

static MimeViewer *get_viewer_for_content_type(MimeView *mimeview, const gchar *content_type)
{
        GSList *cur;
        MimeViewerFactory *factory = ((void *)0);
        MimeViewer *viewer = ((void *)0);
# 599 "mimeview.c"
        { gchar *__tmp; if ((__tmp = __builtin_alloca (strlen(content_type) + 1)) == ((void *)0)) { g_log (((gchar*) 0), G_LOG_LEVEL_WARNING, "can't allocate memory\n"); return ((void *)0); } else strcpy(__tmp, content_type); content_type = __tmp; };
        g_strdown((gchar *)content_type);


        for (cur = mimeviewer_factories; cur != ((void *)0); cur = ((cur) ? (((GSList *)(cur))->next) : ((void *)0))) {
                MimeViewerFactory *curfactory = cur->data;
                gint i = 0;

                while (curfactory->content_types[i] != ((void *)0)) {
                        debug_print_real("mimeview.c" ":%d:", 608), debug_print_real("%s\n", curfactory->content_types[i]);
                        if(!fnmatch(curfactory->content_types[i], content_type, 0)) {
                                factory = curfactory;
                                break;
                        }
                        i++;
                }
                if (factory != ((void *)0))
                        break;
        }
        if (factory == ((void *)0))
                return ((void *)0);

        for (cur = mimeview->viewers; cur != ((void *)0); cur = ((cur) ? (((GSList *)(cur))->next) : ((void *)0))) {
                MimeViewer *curviewer = cur->data;

                if (curviewer->factory == factory)
                        return curviewer;
        }
        viewer = factory->create_viewer();
        print_debug( "%s:%d -> gtk_container_add()\n", "mimeview.c", 628 );
        gtk_container_add((((GtkContainer*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->mime_notebook)), ((gtk_container_get_type ()))))),
                (((GtkWidget*) gtk_type_check_object_cast ((GtkTypeObject*) ((viewer->get_widget(viewer))), ((gtk_widget_get_type ()))))));

        mimeview->viewers = g_slist_append(mimeview->viewers, viewer);

        return viewer;
}

static MimeViewer *get_viewer_for_mimeinfo(MimeView *mimeview, MimeInfo *partinfo)
{
        gchar *content_type = ((void *)0);
        MimeViewer *viewer = ((void *)0);

        if ((partinfo->mime_type == MIME_APPLICATION_OCTET_STREAM) &&
            (partinfo->name != ((void *)0))) {
                content_type = procmime_get_mime_type(partinfo->name);
        } else {
                content_type = g_strdup(partinfo->content_type);
        }

        if (content_type != ((void *)0)) {
                viewer = get_viewer_for_content_type(mimeview, content_type);
                g_free(content_type);
        }

        return viewer;
}

static gboolean mimeview_show_part(MimeView *mimeview, MimeInfo *partinfo)
{
        MimeViewer *viewer;

        viewer = get_viewer_for_mimeinfo(mimeview, partinfo);
        if (viewer == ((void *)0)) {
                if (mimeview->mimeviewer != ((void *)0))
                        mimeview->mimeviewer->clear_viewer(mimeview->mimeviewer);
                mimeview->mimeviewer = ((void *)0);
                return (0);
        }

        if (mimeview->mimeviewer != viewer) {
                if (mimeview->mimeviewer != ((void *)0))
                        mimeview->mimeviewer->clear_viewer(mimeview->mimeviewer);
                mimeview->mimeviewer = viewer;
                mimeview_change_view_type(mimeview, MIMEVIEW_VIEWER);
        }
        viewer->show_mimepart(viewer, mimeview->file, partinfo);

        return (!(0));
}

static void mimeview_change_view_type(MimeView *mimeview, MimeViewType type)
{
        TextView *textview = mimeview->textview;

        if ((mimeview->type != MIMEVIEW_VIEWER) &&
            (mimeview->type == type)) return;

        switch (type) {
        case MIMEVIEW_TEXT:
                gtk_notebook_set_page((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->mime_notebook)), ((gtk_notebook_get_type ()))))),
                        gtk_notebook_page_num((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->mime_notebook)), ((gtk_notebook_get_type ()))))),
                        (*(GtkWidget **)textview)));
                break;
        case MIMEVIEW_VIEWER:
                gtk_notebook_set_page((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->mime_notebook)), ((gtk_notebook_get_type ()))))),
                        gtk_notebook_page_num((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->mime_notebook)), ((gtk_notebook_get_type ()))))),
                        (((GtkWidget*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->mimeviewer->get_widget(mimeview->mimeviewer))), ((gtk_widget_get_type ())))))));
                break;
        default:
                return;
        }

        mimeview->type = type;
}

static void mimeview_clear(MimeView *mimeview)
{
        GtkCList *clist = (((GtkCList*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->ctree)), ((gtk_clist_get_type ())))));

        procmime_mimeinfo_free_all(mimeview->mimeinfo);
        mimeview->mimeinfo = ((void *)0);

        gtk_clist_clear(clist);
        textview_clear(mimeview->textview);
        if (mimeview->mimeviewer != ((void *)0))
                mimeview->mimeviewer->clear_viewer(mimeview->mimeviewer);

        mimeview->opened = ((void *)0);

        g_free(mimeview->file);
        mimeview->file = ((void *)0);

        icon_list_clear(mimeview);

        if (!gtk_toggle_button_get_active((((GtkToggleButton*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->mime_toggle)), ((gtk_toggle_button_get_type ())))))))
                gtk_notebook_set_page((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->notebook)), ((gtk_notebook_get_type ()))))), 0);
}

static void mimeview_selected(GtkCTree *ctree, GtkCTreeNode *node, gint column,
                              MimeView *mimeview)
{
        MimeInfo *partinfo;

        if (mimeview->opened == node) return;
        mimeview->opened = node;
        gtk_ctree_node_moveto(ctree, node, -1, 0.5, 0);

        partinfo = gtk_ctree_node_get_row_data(ctree, node);
        if (!partinfo) return;


        if (((((( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) )->flags)) & GTK_HAS_GRAB) != 0)) {
                gtk_grab_remove((((GtkWidget*) gtk_type_check_object_cast ((GtkTypeObject*) ((ctree)), ((gtk_widget_get_type ()))))));
                if (gdk_pointer_is_grabbed())
                        gdk_pointer_ungrab(0L);
        }

        mimeview->textview->default_text = (0);

        if (!mimeview_show_part(mimeview, partinfo)) {
                switch (partinfo->mime_type) {
                case MIME_TEXT:
                case MIME_TEXT_HTML:
                case MIME_TEXT_ENRICHED:
                case MIME_MESSAGE_RFC822:
                case MIME_MULTIPART:
                        mimeview_show_message_part(mimeview, partinfo);

                        break;
                default:
                        mimeview->textview->default_text = (!(0));
                        mimeview_change_view_type(mimeview, MIMEVIEW_TEXT);







                                textview_show_mime_part(mimeview->textview, partinfo);
                        break;
                }
        }
}

static void mimeview_start_drag(GtkWidget *widget, gint button,
                                GdkEvent *event, MimeView *mimeview)
{
        GdkDragContext *context;
        MimeInfo *partinfo;

        (void)({ if (!(mimeview != ((void *)0))) { g_log (((gchar*) 0), G_LOG_LEVEL_CRITICAL, "file %s: line %d (%s): assertion `%s' failed.", "mimeview.c", 781, __PRETTY_FUNCTION__, "mimeview != NULL"); return; }; });

        partinfo = mimeview_get_selected_part(mimeview);
        if (partinfo->filename == ((void *)0) && partinfo->name == ((void *)0)) return;

        context = gtk_drag_begin(widget, mimeview->target_list,
                                 GDK_ACTION_COPY, button, event);
        gtk_drag_set_icon_default(context);
}

static gint mimeview_button_pressed(GtkWidget *widget, GdkEventButton *event,
                                    MimeView *mimeview)
{
        GtkCList *clist = (((GtkCList*) gtk_type_check_object_cast ((GtkTypeObject*) ((widget)), ((gtk_clist_get_type ())))));
        gint row, column;

        if (!event) return (0);

        if (event->button == 2 || event->button == 3) {
                if (!gtk_clist_get_selection_info(clist, event->x, event->y,
                                                  &row, &column))
                        return (0);
                gtk_clist_unselect_all(clist);
                gtk_clist_select_row(clist, row, column);
                gtkut_clist_set_focus_row(clist, row);
        }
        part_button_pressed(mimeview, event, mimeview_get_selected_part(mimeview));

        return (!(0));
}

static void part_button_pressed(MimeView *mimeview, GdkEventButton *event,
                                MimeInfo *partinfo)
{
        if (event->button == 2 ||
            (event->button == 1 && event->type == GDK_2BUTTON_PRESS)) {

                mimeview_launch(mimeview);
        } else if (event->button == 3) {
                if (partinfo && (partinfo->mime_type == MIME_TEXT ||
                                 partinfo->mime_type == MIME_TEXT_HTML ||
                                 partinfo->mime_type == MIME_TEXT_ENRICHED ||
                                 partinfo->mime_type == MIME_MESSAGE_RFC822 ||
                                 partinfo->mime_type == MIME_IMAGE ||
                                 partinfo->mime_type == MIME_MULTIPART))
                        menu_set_sensitive(mimeview->popupfactory,
                                           "/Display as text", (0));
                else
                        menu_set_sensitive(mimeview->popupfactory,
                                           "/Display as text", (!(0)));
                if (partinfo &&
                    partinfo->mime_type == MIME_APPLICATION_OCTET_STREAM)
                        menu_set_sensitive(mimeview->popupfactory,
                                           "/Open", (0));
                else
                        menu_set_sensitive(mimeview->popupfactory,
                                           "/Open", (!(0)));






                gtk_object_set_data(( ( (mimeview->popupmenu) != ((void *)0) && ( (((GtkObject*) (mimeview->popupmenu))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (mimeview->popupmenu))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (mimeview->popupmenu) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (mimeview->popupmenu), GTK_TYPE_OBJECT) ),
                                    "pop_partinfo", partinfo);

                gtk_menu_popup((((GtkMenu*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->popupmenu)), ((gtk_menu_get_type ()))))),
                               ((void *)0), ((void *)0), ((void *)0), ((void *)0),
                               event->button, event->time);
        }

}


void mimeview_pass_key_press_event(MimeView *mimeview, GdkEventKey *event)
{
        mimeview_key_pressed(mimeview->ctree, event, mimeview);
}
# 870 "mimeview.c"
static gint mimeview_key_pressed(GtkWidget *widget, GdkEventKey *event,
                                 MimeView *mimeview)
{
        SummaryView *summaryview;
        GtkCTree *ctree = (((GtkCTree*) gtk_type_check_object_cast ((GtkTypeObject*) ((widget)), ((gtk_ctree_get_type ())))));
        GtkCTreeNode *node;

        if (!event) return (0);
        if (!mimeview->opened) return (0);

        switch (event->keyval) {
        case 0x020:
                if (textview_scroll_page(mimeview->textview, (0)))
                        return (!(0));

                node = ((GtkCTreeNode *)(((GList *)(mimeview->opened))->next));
                if (node) {
                        gtk_sctree_unselect_all((((GtkSCTree*) gtk_type_check_object_cast ((GtkTypeObject*) ((ctree)), ((gtk_sctree_get_type ()))))));
                        gtk_sctree_select((((GtkSCTree*) gtk_type_check_object_cast ((GtkTypeObject*) ((ctree)), ((gtk_sctree_get_type ()))))), node);
                        return (!(0));
                }
                break;
        case 0xFF08:
                textview_scroll_page(mimeview->textview, (!(0)));
                return (!(0));
        case 0xFF0D:
                textview_scroll_one_line(mimeview->textview,
                                         (event->state & GDK_MOD1_MASK) != 0);
                return (!(0));
        case 0x06e:
        case 0x04e:
                if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0) break;
                if (!((GtkCTreeNode *)(((GList *)(mimeview->opened))->next))) break;
                if (gtk_signal_n_emissions_by_name (( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ), "key_press_event") > 0) { gtk_signal_emit_stop_by_name(( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ), "key_press_event"); };

                gtk_signal_emit_by_name(( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ), "scroll_vertical",
                                        GTK_SCROLL_STEP_FORWARD, 0.0);
                return (!(0));
        case 0x070:
        case 0x050:
                if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0) break;
                if (!((GtkCTreeNode *)(((GList *)(mimeview->opened))->prev))) break;
                if (gtk_signal_n_emissions_by_name (( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ), "key_press_event") > 0) { gtk_signal_emit_stop_by_name(( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ), "key_press_event"); };

                gtk_signal_emit_by_name(( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ), "scroll_vertical",
                                        GTK_SCROLL_STEP_BACKWARD, 0.0);
                return (!(0));
        case 0x079:
                if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0) break;
                if (gtk_signal_n_emissions_by_name (( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ), "key_press_event") > 0) { gtk_signal_emit_stop_by_name(( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ), "key_press_event"); };
                mimeview_save_as(mimeview);
                return (!(0));
        case 0x074:
                if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0) break;
                if (gtk_signal_n_emissions_by_name (( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ), "key_press_event") > 0) { gtk_signal_emit_stop_by_name(( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ), "key_press_event"); };
                mimeview_display_as_text(mimeview);
                return (!(0));
        case 0x06c:
                if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0) break;
                if (gtk_signal_n_emissions_by_name (( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ), "key_press_event") > 0) { gtk_signal_emit_stop_by_name(( ( (ctree) != ((void *)0) && ( (((GtkObject*) (ctree))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (ctree))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (ctree) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (ctree), GTK_TYPE_OBJECT) ), "key_press_event"); };
                mimeview_launch(mimeview);
                return (!(0));
        default:
                break;
        }

        if (!mimeview->messageview->mainwin) return (0);
        summaryview = mimeview->messageview->mainwin->summaryview;
        summary_pass_key_press_event(summaryview, event);
        return (!(0));
}

static void mimeview_drag_data_get(GtkWidget *widget,
                                   GdkDragContext *drag_context,
                                   GtkSelectionData *selection_data,
                                   guint info,
                                   guint time,
                                   MimeView *mimeview)
{
        gchar *filename, *uriname;
        MimeInfo *partinfo;

        if (!mimeview->opened) return;
        if (!mimeview->file) return;

        partinfo = mimeview_get_selected_part(mimeview);
        if (!partinfo) return;
        if (!partinfo->filename && !partinfo->name) return;

        filename = partinfo->filename ? partinfo->filename : partinfo->name;
        filename = g_basename(filename);
        if (*filename == '\0') return;

        filename = g_strconcat(get_mime_tmp_dir(), "/",
                               filename, ((void *)0));

        if (procmime_get_part(filename, mimeview->file, partinfo) < 0)
                alertpanel_error
                        (gettext("Can't save the part of multipart message."));

        uriname = g_strconcat("file:/", filename, ((void *)0));
        gtk_selection_data_set(selection_data, selection_data->target, 8,
                               uriname, strlen(uriname));

        g_free(uriname);
        g_free(filename);
}

static void mimeview_save_all(MimeView *mimeview)
{
        gchar *dirname;
        gchar *defname = ((void *)0);
        MimeInfo *partinfo;
        MimeInfo *attachment;
        gchar buf[1024];

        if (!mimeview->opened) return;
        if (!mimeview->file) return;

        partinfo = mimeview_get_selected_part(mimeview);
        (void)({ if (!(partinfo != ((void *)0))) { g_log (((gchar*) 0), G_LOG_LEVEL_CRITICAL, "file %s: line %d (%s): assertion `%s' failed.", "mimeview.c", 990, __PRETTY_FUNCTION__, "partinfo != NULL"); return; }; });

        dirname = filesel_select_file(gettext("Save as"), defname);
        if (!dirname) return;


        if (!partinfo->parent->children) return;
        attachment = partinfo->parent->children->next;

        while (attachment != ((void *)0)) {
                static guint subst_cnt = 1;
                gchar *attachdir;
                gchar *attachname = g_strdup(get_part_name(attachment));
                AlertValue aval = G_ALERTDEFAULT;
                gchar *res;

                if (!attachname || !strlen(attachname))
                        attachname = g_strdup_printf("noname.%d",subst_cnt++);
                subst_chars(attachname, ":?*&|<>\t\r\n", '_');
                g_snprintf(buf, sizeof(buf), "%s%s",
                           dirname,
                           (attachname[0] == '/')
                           ? &attachname[1]
                           : attachname);
                subst_chars(buf, "/\\", '/');
                attachdir = g_dirname(buf);
                make_dir_hier(attachdir);
                g_free(attachdir);

                if (file_exist(buf, (0))) {
                        res = g_strdup_printf(gettext("Overwrite existing file '%s'?"),
                                              attachname);
                        aval = alertpanel(gettext("Overwrite"), res, gettext("OK"),
                                          gettext("Cancel"), ((void *)0));
                        g_free(res);
                }
                g_free(attachname);

                if ((G_ALERTDEFAULT != aval) || (procmime_get_part(buf, mimeview->file, attachment) < 0))
                        alertpanel_error(gettext("Can't save the part of multipart message."));
                attachment = attachment->next;
        }
}

static void mimeview_display_as_text(MimeView *mimeview)
{
        MimeInfo *partinfo;

        if (!mimeview->opened) return;

        partinfo = mimeview_get_selected_part(mimeview);
        if (!partinfo) {
                partinfo = (MimeInfo *) gtk_object_get_data
                        (( ( (mimeview->popupmenu) != ((void *)0) && ( (((GtkObject*) (mimeview->popupmenu))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (mimeview->popupmenu))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (mimeview->popupmenu) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (mimeview->popupmenu), GTK_TYPE_OBJECT) ),
                         "pop_partinfo");
                gtk_object_set_data(( ( (mimeview->popupmenu) != ((void *)0) && ( (((GtkObject*) (mimeview->popupmenu))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (mimeview->popupmenu))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (mimeview->popupmenu) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (mimeview->popupmenu), GTK_TYPE_OBJECT) ),
                                    "pop_partinfo", ((void *)0));

        }
        (void)({ if (!(partinfo != ((void *)0))) { g_log (((gchar*) 0), G_LOG_LEVEL_CRITICAL, "file %s: line %d (%s): assertion `%s' failed.", "mimeview.c", 1049, __PRETTY_FUNCTION__, "partinfo != NULL"); return; }; });
        mimeview_show_message_part(mimeview, partinfo);
}

static void mimeview_save_as(MimeView *mimeview)
{
        gchar *filename;
        gchar *defname = ((void *)0);
        MimeInfo *partinfo;
        gchar *res;

        if (!mimeview->opened) return;
        if (!mimeview->file) return;

        partinfo = mimeview_get_selected_part(mimeview);
        if (!partinfo) {
                partinfo = (MimeInfo *) gtk_object_get_data
                        (( ( (mimeview->popupmenu) != ((void *)0) && ( (((GtkObject*) (mimeview->popupmenu))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (mimeview->popupmenu))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (mimeview->popupmenu) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (mimeview->popupmenu), GTK_TYPE_OBJECT) ),
                         "pop_partinfo");
                gtk_object_set_data(( ( (mimeview->popupmenu) != ((void *)0) && ( (((GtkObject*) (mimeview->popupmenu))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (mimeview->popupmenu))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (mimeview->popupmenu) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (mimeview->popupmenu), GTK_TYPE_OBJECT) ),
                                    "pop_partinfo", ((void *)0));
        }
        (void)({ if (!(partinfo != ((void *)0))) { g_log (((gchar*) 0), G_LOG_LEVEL_CRITICAL, "file %s: line %d (%s): assertion `%s' failed.", "mimeview.c", 1071, __PRETTY_FUNCTION__, "partinfo != NULL"); return; }; });

        if (partinfo->filename)
                defname = partinfo->filename;
        else if (partinfo->name) {
                { gchar *__tmp; if ((__tmp = __builtin_alloca (strlen(partinfo->name) + 1)) == ((void *)0)) { g_log (((gchar*) 0), G_LOG_LEVEL_WARNING, "can't allocate memory\n"); return; } else strcpy(__tmp, partinfo->name); defname = __tmp; };
                subst_for_filename(defname);
        }

        filename = filesel_select_file(gettext("Save as"), defname);
        if (!filename) return;
        if (file_exist(filename, (0))) {
                AlertValue aval;
                res = g_strdup_printf(gettext("Overwrite existing file '%s'?"),
                                      filename);
                aval = alertpanel(gettext("Overwrite"), res, gettext("OK"),
                                  gettext("Cancel"), ((void *)0));
                g_free(res);
                if (G_ALERTDEFAULT != aval) return;
        }

        if (procmime_get_part(filename, mimeview->file, partinfo) < 0)
                alertpanel_error
                        (gettext("Can't save the part of multipart message."));
}

static void mimeview_launch(MimeView *mimeview)
{
        MimeInfo *partinfo;
        gchar *filename;

        if (!mimeview->opened) return;
        if (!mimeview->file) return;

        partinfo = mimeview_get_selected_part(mimeview);
        if (!partinfo) {
                partinfo = (MimeInfo *) gtk_object_get_data
                        (( ( (mimeview->popupmenu) != ((void *)0) && ( (((GtkObject*) (mimeview->popupmenu))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (mimeview->popupmenu))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (mimeview->popupmenu) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (mimeview->popupmenu), GTK_TYPE_OBJECT) ),
                         "pop_partinfo");
                gtk_object_set_data(( ( (mimeview->popupmenu) != ((void *)0) && ( (((GtkObject*) (mimeview->popupmenu))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (mimeview->popupmenu))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (mimeview->popupmenu) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (mimeview->popupmenu), GTK_TYPE_OBJECT) ),
                                    "pop_partinfo", ((void *)0));
        }
        (void)({ if (!(partinfo != ((void *)0))) { g_log (((gchar*) 0), G_LOG_LEVEL_CRITICAL, "file %s: line %d (%s): assertion `%s' failed.", "mimeview.c", 1113, __PRETTY_FUNCTION__, "partinfo != NULL"); return; }; });

        filename = procmime_get_tmp_file_name(partinfo);

        if (procmime_get_part(filename, mimeview->file, partinfo) < 0)
                alertpanel_error
                        (gettext("Can't save the part of multipart message."));
        else
                mimeview_view_file(filename, partinfo, ((void *)0));

        g_free(filename);
}

static void mimeview_open_with(MimeView *mimeview)
{
        MimeInfo *partinfo;
        gchar *filename;
        gchar *cmd;

        if (!mimeview->opened) return;
        if (!mimeview->file) return;

        partinfo = mimeview_get_selected_part(mimeview);
        if (!partinfo) {
                partinfo = (MimeInfo *) gtk_object_get_data
                        (( ( (mimeview->popupmenu) != ((void *)0) && ( (((GtkObject*) (mimeview->popupmenu))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (mimeview->popupmenu))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (mimeview->popupmenu) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (mimeview->popupmenu), GTK_TYPE_OBJECT) ),
                         "pop_partinfo");
                gtk_object_set_data(( ( (mimeview->popupmenu) != ((void *)0) && ( (((GtkObject*) (mimeview->popupmenu))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (mimeview->popupmenu))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (mimeview->popupmenu) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (mimeview->popupmenu), GTK_TYPE_OBJECT) ),
                                    "pop_partinfo", ((void *)0));
        }
        (void)({ if (!(partinfo != ((void *)0))) { g_log (((gchar*) 0), G_LOG_LEVEL_CRITICAL, "file %s: line %d (%s): assertion `%s' failed.", "mimeview.c", 1143, __PRETTY_FUNCTION__, "partinfo != NULL"); return; }; });

        filename = procmime_get_tmp_file_name(partinfo);

        if (procmime_get_part(filename, mimeview->file, partinfo) < 0) {
                alertpanel_error
                        (gettext("Can't save the part of multipart message."));
                g_free(filename);
                return;
        }

        if (!prefs_common.mime_open_cmd_history)
                prefs_common.mime_open_cmd_history =
                        add_history(((void *)0), prefs_common.mime_open_cmd);

        cmd = input_dialog_combo
                (gettext("Open with"),
                 gettext("Enter the command line to open file:\n" "(`%s' will be replaced with file name)"),

                 prefs_common.mime_open_cmd,
                 prefs_common.mime_open_cmd_history,
                 (!(0)));
        if (cmd) {
                mimeview_view_file(filename, partinfo, cmd);
                g_free(prefs_common.mime_open_cmd);
                prefs_common.mime_open_cmd = cmd;
                prefs_common.mime_open_cmd_history =
                        add_history(prefs_common.mime_open_cmd_history, cmd);
        }

        g_free(filename);
}

static void mimeview_view_file(const gchar *filename, MimeInfo *partinfo,
                               const gchar *cmdline)
{
        static gchar *default_image_cmdline = "display '%s'";
        static gchar *default_audio_cmdline = "play '%s'";
        static gchar *default_html_cmdline = "mozilla -remote 'openURL(%s, new-window)'";
        static gchar *mime_cmdline = "metamail -d -b -x -c %s '%s'";
        gchar buf[1024];
        gchar m_buf[1024];
        const gchar *cmd;
        const gchar *def_cmd;
        const gchar *p;

        if (cmdline) {
                cmd = cmdline;
                def_cmd = ((void *)0);
        } else if (MIME_APPLICATION_OCTET_STREAM == partinfo->mime_type) {
                return;
        } else if (MIME_IMAGE == partinfo->mime_type) {
                cmd = prefs_common.mime_image_viewer;
                def_cmd = default_image_cmdline;
        } else if (MIME_AUDIO == partinfo->mime_type) {
                cmd = prefs_common.mime_audio_player;
                def_cmd = default_audio_cmdline;
        } else if (MIME_TEXT_HTML == partinfo->mime_type) {
                cmd = prefs_common.uri_cmd;
                def_cmd = default_html_cmdline;
        } else {
                g_snprintf(m_buf, sizeof(m_buf), mime_cmdline,
                           partinfo->content_type, "%s");
                cmd = m_buf;
                def_cmd = ((void *)0);
        }

        if (cmd && (p = strchr(cmd, '%')) && *(p + 1) == 's' &&
            !strchr(p + 2, '%'))
                g_snprintf(buf, sizeof(buf), cmd, filename);
        else {
                if (cmd)
                        g_log (((gchar*) 0), G_LOG_LEVEL_WARNING, "MIME viewer command line is invalid: `%s'", cmd);
                if (def_cmd)
                        g_snprintf(buf, sizeof(buf), def_cmd, filename);
                else
                        return;
        }

        execute_command_line(buf, (!(0)));
}
# 1297 "mimeview.c"
void mimeview_register_viewer_factory(MimeViewerFactory *factory)
{
        mimeviewer_factories = g_slist_append(mimeviewer_factories, factory);
}

static gint cmp_viewer_by_factroy(gconstpointer a, gconstpointer b)
{
        return ((MimeViewer *) a)->factory == (MimeViewerFactory *) b ? 0 : -1;
}

void mimeview_unregister_viewer_factory(MimeViewerFactory *factory)
{
        GSList *mimeview_list, *viewer_list;

        for (mimeview_list = mimeviews; mimeview_list != ((void *)0); mimeview_list = ((mimeview_list) ? (((GSList *)(mimeview_list))->next) : ((void *)0))) {
                MimeView *mimeview = (MimeView *) mimeview_list->data;

                if (mimeview->mimeviewer && mimeview->mimeviewer->factory == factory) {
                        mimeview_change_view_type(mimeview, MIMEVIEW_TEXT);
                        mimeview->mimeviewer = ((void *)0);
                }

                while ((viewer_list = g_slist_find_custom(mimeview->viewers, factory, cmp_viewer_by_factroy)) != ((void *)0)) {
                        MimeViewer *mimeviewer = (MimeViewer *) viewer_list->data;

                        mimeviewer->destroy_viewer(mimeviewer);
                        mimeview->viewers = g_slist_remove(mimeview->viewers, mimeviewer);
                }
        }

        mimeviewer_factories = g_slist_remove(mimeviewer_factories, factory);
}

static gboolean icon_clicked_cb (GtkWidget *button, GdkEventButton *event, MimeView *mimeview)
{
        gint num;
        MimeInfo *partinfo;

        num = ((gint) (gtk_object_get_data(( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "icon_number")));
        partinfo = gtk_object_get_data(( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "partinfo");
        if (event->button == 1) {
                icon_selected(mimeview, num, partinfo);
                gtk_widget_grab_focus(button);

                if (!gtk_toggle_button_get_active((((GtkToggleButton*) gtk_type_check_object_cast ((GtkTypeObject*) ((button)), ((gtk_toggle_button_get_type ())))))))
                        toggle_icon((((GtkToggleButton*) gtk_type_check_object_cast ((GtkTypeObject*) ((button)), ((gtk_toggle_button_get_type ()))))), mimeview);
                else
                        gtk_signal_emit_stop_by_name(( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "button_press_event");
        }

        part_button_pressed(mimeview, event, partinfo);

        return (!(0));
}

static void icon_selected (MimeView *mimeview, gint num, MimeInfo *partinfo)
{
        if (num == 1 && (partinfo->mime_type == MIME_TEXT ||
                         partinfo->mime_type == MIME_TEXT_HTML)) {
                gtk_notebook_set_page((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->notebook)), ((gtk_notebook_get_type ()))))), 0);



        } else {
                GtkCTreeNode *node;
                gtk_notebook_set_page((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->notebook)), ((gtk_notebook_get_type ()))))), 1);
                node = gtk_ctree_find_by_row_data((((GtkCTree*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->ctree)), ((gtk_ctree_get_type ()))))), ((void *)0), partinfo);
                if (node)
                        gtk_ctree_select((((GtkCTree*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->ctree)), ((gtk_ctree_get_type ()))))), node);
        }
}
# 1376 "mimeview.c"
static gint icon_key_pressed(GtkWidget *button, GdkEventKey *event,
                             MimeView *mimeview)
{
        gint num;
        MimeInfo *partinfo;
        SummaryView *summaryview;
        TextView *textview;

        num = ((gint) (gtk_object_get_data(( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "icon_number")));
        partinfo = gtk_object_get_data(( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "partinfo");

        if (!event) return (0);

        if (gtk_notebook_get_current_page((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->notebook)), ((gtk_notebook_get_type ())))))) == 0)
                textview = mimeview->messageview->textview;
        else
                textview = mimeview->textview;

        switch (event->keyval) {
        case 0x020:
                if (gtk_toggle_button_get_active((((GtkToggleButton*) gtk_type_check_object_cast ((GtkTypeObject*) ((button)), ((gtk_toggle_button_get_type ()))))))) {

                        if (gtk_signal_n_emissions_by_name (( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "key_press_event") > 0) { gtk_signal_emit_stop_by_name(( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "key_press_event"); };
                        if (textview_scroll_page(textview, (0)))
                                return (!(0));

                        if (icon_list_select_by_number(mimeview, num + 1))
                                return (!(0));
                } else {
                        icon_selected(mimeview, num, partinfo);
                        toggle_icon((((GtkToggleButton*) gtk_type_check_object_cast ((GtkTypeObject*) ((button)), ((gtk_toggle_button_get_type ()))))), mimeview);
                        return (!(0));
                }

                break;
        case 0xFF08:
                textview_scroll_page(textview, (!(0)));
                return (!(0));
        case 0xFF0D:
                if (gtk_toggle_button_get_active((((GtkToggleButton*) gtk_type_check_object_cast ((GtkTypeObject*) ((button)), ((gtk_toggle_button_get_type ()))))))) {
                        if (gtk_signal_n_emissions_by_name (( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "key_press_event") > 0) { gtk_signal_emit_stop_by_name(( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "key_press_event"); };
                        textview_scroll_one_line(textview,
                                                 (event->state & GDK_MOD1_MASK) != 0);
                        return (!(0));
                } else {
                        icon_selected(mimeview, num, partinfo);
                        toggle_icon((((GtkToggleButton*) gtk_type_check_object_cast ((GtkTypeObject*) ((button)), ((gtk_toggle_button_get_type ()))))), mimeview);
                        return (!(0));
                }

        case 0x06e:
        case 0x04e:
                if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0) break;
                if (icon_list_select_by_number(mimeview, num + 1))
                        if (gtk_signal_n_emissions_by_name (( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "key_press_event") > 0) { gtk_signal_emit_stop_by_name(( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "key_press_event"); };
                        return (!(0));
                break;

        case 0x070:
        case 0x050:
                if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0) break;
                if (icon_list_select_by_number(mimeview, num - 1))
                        if (gtk_signal_n_emissions_by_name (( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "key_press_event") > 0) { gtk_signal_emit_stop_by_name(( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "key_press_event"); };
                        return (!(0));
                break;

        case 0x079:
                if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0) break;
                if (gtk_notebook_get_current_page((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->notebook)), ((gtk_notebook_get_type ())))))) == 0)
                        break;
                if (gtk_signal_n_emissions_by_name (( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "key_press_event") > 0) { gtk_signal_emit_stop_by_name(( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "key_press_event"); };
                mimeview_save_as(mimeview);
                return (!(0));
        case 0x074:
                if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0) break;
                if (gtk_notebook_get_current_page((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->notebook)), ((gtk_notebook_get_type ())))))) == 0)
                        break;
                if (gtk_signal_n_emissions_by_name (( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "key_press_event") > 0) { gtk_signal_emit_stop_by_name(( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "key_press_event"); };
                mimeview_display_as_text(mimeview);
                return (!(0));
        case 0x06c:
                if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0) break;
                if (gtk_notebook_get_current_page((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->notebook)), ((gtk_notebook_get_type ())))))) == 0)
                        break;
                if (gtk_signal_n_emissions_by_name (( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "key_press_event") > 0) { gtk_signal_emit_stop_by_name(( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "key_press_event"); };
                mimeview_launch(mimeview);
                return (!(0));
        default:
                break;
        }

        if (!mimeview->messageview->mainwin) return (0);
        summaryview = mimeview->messageview->mainwin->summaryview;
        summary_pass_key_press_event(summaryview, event);
        return (!(0));
}

static void toggle_icon(GtkToggleButton *button, MimeView *mimeview)
{
        GList *child;

        child = gtk_container_children((((GtkContainer*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->icon_vbox)), ((gtk_container_get_type ()))))));
        for (; child != ((void *)0); child = ((child) ? (((GList *)(child))->next) : ((void *)0))) {
                if ((( ((GtkTypeObject*) ((child->data))) != ((void *)0) && ( ((GtkTypeClass*) (((GtkTypeObject*) ((child->data)))->klass)) != ((void *)0) && gtk_type_is_a (((GtkTypeClass*) (((GtkTypeObject*) ((child->data)))->klass))->type, (((gtk_toggle_button_get_type ())))) ) )) &&
                    (((GtkToggleButton*) gtk_type_check_object_cast ((GtkTypeObject*) ((child->data)), ((gtk_toggle_button_get_type ()))))) != button &&
                    gtk_toggle_button_get_active((((GtkToggleButton*) gtk_type_check_object_cast ((GtkTypeObject*) ((child->data)), ((gtk_toggle_button_get_type ())))))))
                        gtk_toggle_button_set_active
                                ((((GtkToggleButton*) gtk_type_check_object_cast ((GtkTypeObject*) ((child->data)), ((gtk_toggle_button_get_type ()))))),
                                 (0));
        }
}

static void icon_list_append_icon (MimeView *mimeview, MimeInfo *mimeinfo)
{
        GtkWidget *pixmap;
        GtkWidget *vbox;
        GtkWidget *button;
        gchar *tip;
        gchar *desc = ((void *)0);
        StockPixmap stockp;

        vbox = mimeview->icon_vbox;
        mimeview->icon_count++;
        button = gtk_toggle_button_new();
        gtk_button_set_relief((((GtkButton*) gtk_type_check_object_cast ((GtkTypeObject*) ((button)), ((gtk_button_get_type ()))))), GTK_RELIEF_NONE);
        gtk_object_set_data(( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "icon_number",
                ((gpointer) (mimeview->icon_count)));
        gtk_object_set_data(( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "partinfo",
                mimeinfo);

        switch (mimeinfo->mime_type) {

        case MIME_TEXT:
        case MIME_MESSAGE_RFC822:
                stockp = STOCK_PIXMAP_MIME_TEXT_PLAIN;
                break;
        case MIME_TEXT_HTML:
                stockp = STOCK_PIXMAP_MIME_TEXT_HTML;
                break;
        case MIME_APPLICATION:
# 1535 "mimeview.c"
                        stockp = STOCK_PIXMAP_MIME_APPLICATION;
                break;
        case MIME_APPLICATION_OCTET_STREAM:
                stockp = STOCK_PIXMAP_MIME_APPLICATION_OCTET_STREAM;
                break;
        case MIME_IMAGE:
                stockp = STOCK_PIXMAP_MIME_IMAGE;
                break;
        case MIME_AUDIO:
                stockp = STOCK_PIXMAP_MIME_AUDIO;
                break;
        case MIME_TEXT_ENRICHED:
                stockp = STOCK_PIXMAP_MIME_TEXT_ENRICHED;
                break;
        default:
                stockp = STOCK_PIXMAP_MIME_UNKNOWN;
                break;
        }

        pixmap = stock_pixmap_widget(mimeview->mainwin->window, stockp);
        print_debug( "%s:%d -> gtk_container_add()\n", "mimeview.c", 1555 );
        gtk_container_add((((GtkContainer*) gtk_type_check_object_cast ((GtkTypeObject*) ((button)), ((gtk_container_get_type ()))))), pixmap);

        if (!desc) {
                if (prefs_common.attach_desc)
                        desc = get_part_description(mimeinfo);
                else
                        desc = get_part_name(mimeinfo);
        }
        if (desc && *desc)
                tip = g_strdup_printf("%s\n%s\n%s", desc, mimeinfo->content_type,
                                to_human_readable(mimeinfo->size));
        else
                tip = g_strdup_printf("%s\n%s", mimeinfo->content_type,
                                to_human_readable(mimeinfo->size));

        gtk_tooltips_set_tip(mimeview->tooltips, button, tip, ((void *)0));
        g_free(tip);
        gtk_widget_show_all(button);
        gtk_signal_connect(( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "button_press_event",
                           ((GtkSignalFunc) icon_clicked_cb), mimeview);
        gtk_signal_connect(( ( (button) != ((void *)0) && ( (((GtkObject*) (button))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (button))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (button) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (button), GTK_TYPE_OBJECT) ), "key_press_event",
                           ((GtkSignalFunc) icon_key_pressed), mimeview);
        gtk_box_pack_start((((GtkBox*) gtk_type_check_object_cast ((GtkTypeObject*) ((vbox)), ((gtk_box_get_type ()))))), button, (0), (0), 0);

}

static void icon_list_clear (MimeView *mimeview)
{
        GList *child;
        GtkAdjustment *adj;

        child = gtk_container_children((((GtkContainer*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->icon_vbox)), ((gtk_container_get_type ()))))));
        for (; child != ((void *)0); child = ((child) ? (((GList *)(child))->next) : ((void *)0))) {
                gtkut_container_remove((((GtkContainer*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->icon_vbox)), ((gtk_container_get_type ()))))),
                                       (((GtkWidget*) gtk_type_check_object_cast ((GtkTypeObject*) ((child->data)), ((gtk_widget_get_type ()))))));
        }
        mimeview->icon_count = 0;
        adj = gtk_layout_get_vadjustment((((GtkLayout*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->icon_scroll)), ((gtk_layout_get_type ()))))));
        adj->value = adj->lower;
        gtk_signal_emit_by_name(( ( (adj) != ((void *)0) && ( (((GtkObject*) (adj))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (adj))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (adj) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (adj), GTK_TYPE_OBJECT) ), "value_changed");
}

static void icon_list_toggle_by_mime_info(MimeView *mimeview,
                                          MimeInfo *mimeinfo)
{
        GList *child;

        child = gtk_container_children((((GtkContainer*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->icon_vbox)), ((gtk_container_get_type ()))))));
        for (; child != ((void *)0); child = ((child) ? (((GList *)(child))->next) : ((void *)0))) {
                if ((( ((GtkTypeObject*) ((child->data))) != ((void *)0) && ( ((GtkTypeClass*) (((GtkTypeObject*) ((child->data)))->klass)) != ((void *)0) && gtk_type_is_a (((GtkTypeClass*) (((GtkTypeObject*) ((child->data)))->klass))->type, (((gtk_toggle_button_get_type ())))) ) )) &&
                    gtk_object_get_data(( ( (child->data) != ((void *)0) && ( (((GtkObject*) (child->data))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (child->data))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (child->data) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (child->data), GTK_TYPE_OBJECT) ),
                                        "partinfo") == (gpointer)mimeinfo) {
                        toggle_icon((((GtkToggleButton*) gtk_type_check_object_cast ((GtkTypeObject*) ((child->data)), ((gtk_toggle_button_get_type ()))))), mimeview);
                        gtk_toggle_button_set_active
                                ((((GtkToggleButton*) gtk_type_check_object_cast ((GtkTypeObject*) ((child->data)), ((gtk_toggle_button_get_type ()))))), (!(0)));
                }
        }
}






static gboolean icon_list_select_by_number(MimeView *mimeview,
                                           gint number)
{
        GList *child;

        if (number == 0) return (0);
        child = gtk_container_children((((GtkContainer*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->icon_vbox)), ((gtk_container_get_type ()))))));
        for (; child != ((void *)0); child = ((child) ? (((GList *)(child))->next) : ((void *)0))) {
                if ((( ((GtkTypeObject*) ((child->data))) != ((void *)0) && ( ((GtkTypeClass*) (((GtkTypeObject*) ((child->data)))->klass)) != ((void *)0) && gtk_type_is_a (((GtkTypeClass*) (((GtkTypeObject*) ((child->data)))->klass))->type, (((gtk_toggle_button_get_type ())))) ) )) &&
                    ((gint) (gtk_object_get_data(( ( (child->data) != ((void *)0) && ( (((GtkObject*) (child->data))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (child->data))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (child->data) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (child->data), GTK_TYPE_OBJECT) ), "icon_number"))) == number) {

                        icon_selected(mimeview, number,
                                      (MimeInfo*)gtk_object_get_data(( ( (child->data) != ((void *)0) && ( (((GtkObject*) (child->data))->klass) != ((void *)0) && ((GtkFundamentalType) ((((GtkObjectClass*) (((GtkObject*) (child->data))->klass))->type) & 0xFF)) == GTK_TYPE_OBJECT ) ) ? (GtkObject*) (child->data) : (GtkObject*) gtk_type_check_object_cast ((GtkTypeObject*) (child->data), GTK_TYPE_OBJECT) ),
                                                                     "partinfo"));
                        toggle_icon((((GtkToggleButton*) gtk_type_check_object_cast ((GtkTypeObject*) ((child->data)), ((gtk_toggle_button_get_type ()))))), mimeview);
                        gtk_toggle_button_set_active
                                ((((GtkToggleButton*) gtk_type_check_object_cast ((GtkTypeObject*) ((child->data)), ((gtk_toggle_button_get_type ()))))), (!(0)));
                        gtk_widget_grab_focus((((GtkWidget*) gtk_type_check_object_cast ((GtkTypeObject*) ((child->data)), ((gtk_widget_get_type ()))))));

                        return (!(0));
                }
        }
        return (0);
}

static void icon_scroll_size_allocate_cb(GtkWidget *widget,
                                        GtkAllocation *size, MimeView *mimeview)
{
        GtkAllocation *mainbox_size;
        GtkAllocation *vbox_size;
        GtkAllocation *layout_size;
        GtkAdjustment *adj;

        adj = gtk_layout_get_vadjustment((((GtkLayout*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->icon_scroll)), ((gtk_layout_get_type ()))))));

        mainbox_size = &mimeview->icon_mainbox->allocation;
        vbox_size = &mimeview->icon_vbox->allocation;
        layout_size = &mimeview->icon_scroll->allocation;


        gtk_layout_move((((GtkLayout*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->icon_scroll)), ((gtk_layout_get_type ()))))), mimeview->icon_vbox,
                        (mainbox_size->width - vbox_size->width)/2, 0);

        gtk_layout_set_size((((GtkLayout*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->icon_scroll)), ((gtk_layout_get_type ()))))),
                            (((GtkLayout*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->icon_scroll)), ((gtk_layout_get_type ())))))->width,
                            (((vbox_size->height) > (layout_size->height)) ? (vbox_size->height) : (layout_size->height)));
        adj->step_increment = 5;
}

static void icon_list_create(MimeView *mimeview, MimeInfo *mimeinfo)
{
        GtkRequisition size;
        gint width;
        (void)({ if (!(mimeinfo != ((void *)0))) { g_log (((gchar*) 0), G_LOG_LEVEL_CRITICAL, "file %s: line %d (%s): assertion `%s' failed.", "mimeview.c", 1673, __PRETTY_FUNCTION__, "mimeinfo != NULL"); return; }; });

        if (mimeinfo->children)
                mimeinfo = mimeinfo->children;

        while (mimeinfo != ((void *)0)) {
                if (mimeinfo->children)
                        icon_list_create(mimeview, mimeinfo);
                else if (mimeinfo->sub &&
                         mimeinfo->sub->mime_type != MIME_TEXT &&
                         mimeinfo->sub->mime_type != MIME_TEXT_HTML)
                        icon_list_create(mimeview, mimeinfo->sub);
                else
                        icon_list_append_icon(mimeview, mimeinfo);
                mimeinfo = mimeinfo->next;
        }
        gtk_widget_size_request(mimeview->icon_vbox, &size);
        width = size.width + 4;
        if (width > mimeview->icon_mainbox->requisition.width) {
                gtk_widget_set_usize(mimeview->icon_mainbox,
                                     width, -1);
        }

}

static void mime_toggle_button_cb (GtkWidget *button, MimeView *mimeview)
{
        gtk_widget_ref(button);

        if (gtk_toggle_button_get_active((((GtkToggleButton*) gtk_type_check_object_cast ((GtkTypeObject*) ((button)), ((gtk_toggle_button_get_type ()))))))) {
                gtk_arrow_set((((GtkArrow*) gtk_type_check_object_cast ((GtkTypeObject*) (((((GtkBin*) gtk_type_check_object_cast ((GtkTypeObject*) ((button)), ((gtk_bin_get_type ())))))->child)), ((gtk_arrow_get_type ()))))), GTK_ARROW_RIGHT,
                                        GTK_SHADOW_NONE);
                gtk_widget_hide(mimeview->icon_mainbox);
                gtk_widget_show(mimeview->ctree_mainbox);
                gtk_paned_set_position((((GtkPaned*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->paned)), ((gtk_paned_get_type ()))))), mimeview->oldsize);

                gtkut_container_remove((((GtkContainer*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->icon_mainbox)), ((gtk_container_get_type ()))))),
                                        button);
                gtk_box_pack_end((((GtkBox*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->ctree_mainbox)), ((gtk_box_get_type ()))))),
                                   button, (0), (0), 0);
                gtk_notebook_set_page((((GtkNotebook*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->notebook)), ((gtk_notebook_get_type ()))))), 1);
        } else {
                gtk_arrow_set((((GtkArrow*) gtk_type_check_object_cast ((GtkTypeObject*) (((((GtkBin*) gtk_type_check_object_cast ((GtkTypeObject*) ((button)), ((gtk_bin_get_type ())))))->child)), ((gtk_arrow_get_type ()))))), GTK_ARROW_LEFT,
                              GTK_SHADOW_NONE);
                mimeview->oldsize = mimeview->ctree_mainbox->allocation.height;
                gtk_widget_hide(mimeview->ctree_mainbox);
                gtk_widget_show(mimeview->icon_mainbox);
                gtk_paned_set_position((((GtkPaned*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->paned)), ((gtk_paned_get_type ()))))), 0);

                gtkut_container_remove((((GtkContainer*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->ctree_mainbox)), ((gtk_container_get_type ()))))),
                                        button);
                gtk_box_pack_start((((GtkBox*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->icon_mainbox)), ((gtk_box_get_type ()))))),
                                   button, (0), (0), 0);
                gtk_box_reorder_child((((GtkBox*) gtk_type_check_object_cast ((GtkTypeObject*) ((button->parent)), ((gtk_box_get_type ()))))), button, 0);
                if (mimeview->opened)
                        icon_list_toggle_by_mime_info
                                (mimeview, gtk_ctree_node_get_row_data((((GtkCTree*) gtk_type_check_object_cast ((GtkTypeObject*) ((mimeview->ctree)), ((gtk_ctree_get_type ()))))),
                                                                       mimeview->opened));

        }
        gtk_widget_grab_focus(button);
        gtk_widget_unref(button);

}

void mimeview_update (MimeView *mimeview) {
        if (mimeview && mimeview->mimeinfo) {
                icon_list_clear(mimeview);
                icon_list_create(mimeview, mimeview->mimeinfo);
        }
}
Comment 2 Andrew Pinski 2003-09-17 03:53:44 UTC
I cannot reproduce this in 3.3.1 or the mainline, can you provide the output of "gcc -v"?
And Is this reproducible all the time?
Comment 3 relson 2003-09-17 11:33:10 UTC
Subject: Re:  internal compiler error: Segmentation fault

On 17 Sep 2003 03:53:45 -0000
"pinskia at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org> wrote:

> PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT*
> gcc-bugs@gcc.gnu.org.
> 
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12240
> 
> 
> pinskia at gcc dot gnu dot org changed:
> 
>            What    |Removed                     |Added
> ---------------------------------------------------------------------
> -------
>              Status|UNCONFIRMED                 |WAITING
>           Component|preprocessor                |c
>            Keywords|                            |ice-on-valid-code
> 
> 
> ------- Additional Comments From pinskia at gcc dot gnu dot org 
> 2003-09-17 03:53 ------- I cannot reproduce this in 3.3.1 or the
> mainline, can you provide the output of "gcc -v"? And Is this
> reproducible all the time?
>

Here's the "gcc -v" output.
     gcc -v
    Reading specs from
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/specs
    Configured with: ./configure 
    Thread model: posix
    gcc version 3.3.1

When I reported it, I was seeing the same failure with a number of the
Sylpheed-Claws source files.  I cannot reproduce it today.

Because of the problem, I had stopped using 3.3.1 (and returned to
3.2.2).  I'll start using 3.3.1 again.

If the problem reappears, we can re-open the bug report.  For the
moment, I agree - it's a "can not duplicate".

David

Comment 4 Andrew Pinski 2003-09-17 16:15:29 UTC
It works for me and the reporter reports it might be a hardware issue.