-
><c    	   sD     d  k  Z  d  k Z  d  k Z  d  k Z  d  k Z  y  d k l Z Wn&  e j
 o  d k l Z n X
 d  k Z  d Z	  d Z
  d Z  d Z  d Z  d Z  d Z  d	 Z  d
 Z $ d Z + h  d d <d d <d d <d d <d d <d d <d d <d d <d d <Z 7 d   Z U d   Z ] d    Z c h  Z e h  Z i h  Z l h  d! d" d# f d$ <d% d& d' f d( <d) d* d+ f d, <d- d. d/ f d0 <d1 d2 d3 f d4 <d5 d6 d7 f d8 <d5 d6 d7 f d9 <d5 d6 d7 f d: <d5 d6 d7 f d; <d< d= d> f d? <d@ dA dB f dC <dD dE dF f dG <dH dI dJ f dK <dL dM dN f dO <dP dQ dR f dS <dT dU dV f dW <Z  dX f  dY     YZ  dZ e i f d[     YZ  d\ e f d]     YZ d^ e f d_     YZ e  d` j o(e i e  i! d da  db dc dd de df dg g  \ Z" Z# e$ Z% e$ Z& g  Z' g  Z( x
e" D] \ Z) Z* e) dh di f j o e* Z% n 	e) dj dk f j o 
e* Z& n e) dl j o e' i+ e*  n e) dm j o e, i+ e*  nf e) dn j o e e*  i-   n? e) e. do f j o' e  i/ i0 dp  e  i1 d  n qWe% p e& o' e  i/ i0 dp  e  i1 d  n e dq e% dr e& ds dt  Z2 x! e' D] Z3 e2 i4 e3  qWx! e, D] Z5 e2 i6 e5  qWe2 i-   n d  S(u   N(   s   StringIOi   i    s       { "%s", _wrap_%s, 1 },
s=   static PyObject *
_wrap_%s(PyObject *self, PyObject *args)
{
sG       if (PyGtkEnum_get_value(%s, %s, (gint *)&%s))
        return NULL;
sG       if (PyGtkFlag_get_value(%s, %s, (gint *)&%s))
        return NULL;
s     if (py_%s)
        %s = %s;
s   static PyObject *
_wrap_%s(PyObject *self, PyObject *args)
{
    if (!PyArg_ParseTuple(args, ":%s"))
        return NULL;
    return PyInt_FromLong(%s());
}

s       if (PyGtk_Check(py_%s))
        %s = %s(PyGtk_Get(py_%s));
    else if (py_%s != Py_None) {
        PyErr_SetString(PyExc_TypeError, "%s argument must be a %s or None");
	return NULL;
    }
s       if (Py%s_Check(py_%s))
        %s = %s(py_%s);
    else if (py_%s != Py_None) {
        PyErr_SetString(PyExc_TypeError, "%s argument must be a %s or None");
	return NULL;
    }
s
   _GTK_CLISTs   GtkCLists
   _GTK_CTREEs   GtkCTrees   _GTK_CTREE_POSs   GtkCTreePoss   _GTK_CTREE_LINE_STYLEs   GtkCTreeLineStyles   _GTK_CTREE_EXPANDER_STYLEs   GtkCTreeExpanderStyles   _GTK_CTREE_EXPANSION_STYLEs   GtkCTreeExpansionStyles   _GNOME_ROOTWINs   GnomeRootWins   _GNOME_APPBARs   GnomeAppBars   _GNOME_DENTRY_EDITs   GnomeDEntryEditc    s  7 : ; t  i |   o < t  |  Sn = g  } > x> |  o? t |   d j o% |  d t i j o |  d t i j o) A | i d |  d   B |  d }  n<C t |   d j oJ |  d t i j o6 |  d d j o% |  d t i j o |  d t i j o4 H | i |  d d |  d d ! I |  d }  n J t |   d j o9 |  d t i j o% |  d t i j o |  d t i j o1 N | i |  d d |  d  O |  d }  n" Q | i |  d  R |  d }  q7 WS t i	 t i
 | d   Sd S(	   s   Converts a typename to the equivalent upercase and underscores
	name.  This is used to form the type conversion macros and enum/flag
	name variablesi   i    s   _i   i   s   HVs    N(   s   convSpecialCasess   has_keys   strs   rets   lens   strings	   uppercases	   lowercases   appends   uppers   join(   s   strs   ret(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys
   toUpperStr7 s$   	 
>c#R c    s^   U V W t  |   } X t |  d j o | d  d j o Y d | d Sn [ d | Sd S(   s,   create a GTK_TYPE_* name from the given typei   s   _GTKs   GTK_TYPEN(   s
   toUpperStrs   typenames   parts   len(   s   typenames   part(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   enumNameU s
   'c    s   ] ^ _ t  |   d Sd S(   s+   get the conversion macro for the given typei   N(   s
   toUpperStrs   typename(   s   typename(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   conversionMacro] s   s   PyGtkAccelGroup_Types   PyGtkAccelGroup_Gets   PyGtkAccelGroup_News   GtkAccelGroups   PyGtkStyle_Types   PyGtkStyle_Gets   PyGtkStyle_News   GtkStyles   PyGdkFont_Types   PyGdkFont_Gets   PyGdkFont_News   GdkFonts   PyGdkColor_Types   PyGdkColor_Gets   PyGdkColor_News   GdkColors   PyGdkEvent_Types   PyGdkEvent_Gets   PyGdkEvent_News   GdkEvents   PyGdkWindow_Types   PyGdkWindow_Gets   PyGdkWindow_News	   GdkWindows	   GdkPixmaps	   GdkBitmaps   GdkDrawables   PyGdkGC_Types   PyGdkGC_Gets   PyGdkGC_News   GdkGCs   PyGdkColormap_Types   PyGdkColormap_Gets   PyGdkColormap_News   GdkColormaps   PyGdkDragContext_Types   PyGdkDragContext_Gets   PyGdkDragContext_News   GdkDragContexts   PyGtkSelectionData_Types   PyGtkSelectionData_Gets   PyGtkSelectionData_News   GtkSelectionDatas   PyGdkAtom_Types   PyGdkAtom_Gets   PyGdkAtom_News   GdkAtoms   PyGdkCursor_Types   PyGdkCursor_Gets   PyGdkCursor_News	   GdkCursors   PyGtkCTreeNode_Types   PyGtkCTreeNode_Gets   PyGtkCTreeNode_News   GtkCTreeNodes   VarDefsc      s)     d   Z   d   Z  d   Z RS(   Nc    s     h  |  _ d  S(   N(   s   selfs   vars(   s   self(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   __init__ s   c    sR     |  i i |  o"  |  i | | f |  i | <n  | f |  i | <d  S(   N(   s   selfs   varss   has_keys   types   name(   s   selfs   types   name(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   add s   "c    s     g  }  x} |  i i   D ]i }  | i d   | i |   | i d   | i t i |  i | d    | i d  q W | o  | i d  n  t i | d  Sd  S(   Ns       s    s   , s   ;
s   
s    (   s   rets   selfs   varss   keyss   types   appends   strings   join(   s   selfs   types   ret(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   __str__ s   	 	#
 (   s   __init__s   adds   __str__(    (    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   VarDefs s   s   TypesParserc      sS    d  Z    d   Z  d   Z  d   Z  e e e d  Z  d   Z RS(   s2   A parser that only parses definitions -- no outputc    s2     t  i |  o  t |  t  | <n d  S(   N(   s   enumss   has_keys   names   enumName(   s   selfs   names   values(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   define_enum s   c    s2     t  i |  o  t |  t  | <n d  S(   N(   s   flagss   has_keys   names   enumName(   s   selfs   names   values(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   define_flags s   c    s2     t  i |  o  t |  t  | <n d  S(   N(   s   objectss   has_keys   names   conversionMacro(   s   selfs   names   args(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   define_object s   c    s/     t  i |  o  d G| Gd GHn d  S(   Ns
   Warning --s   not supported(   s   boxeds   has_keys   name(   s   selfs   names   reffuncs	   unreffuncs   size(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   define_boxed s   c    s     | d d j o.  t i i t i i |  i    |  } n
  | }  t i i |  o  | } n  t |  }  |  i
 t i |   d  S(   Ni    s   /(   s   filenames   oss   paths   joins   dirnames   selfs   afiles   existss   opens   fps   startParsings   scmexprs   parse(   s   selfs   filenames   fps   afile(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   include s   	(   s   __doc__s   define_enums   define_flagss   define_objects   Nones   define_boxeds   include(    (    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   TypesParser s   	s   FunctionDefsParserc      s\     d d d  Z   d   Z  f  f  d  Z  d   Z  d   Z e d  Z RS(	   Ns	   gtkmodules   &c    sX     t  i |  |   t | d d  |  _  t | d d  |  _  | |  _	 d  S(   Ns   _impl.cs   ws   _defs.c(
   s   TypesParsers   __init__s   selfs   inputs   opens   prefixs   impls   defss
   typeprefixs   tp(   s   selfs   inputs   prefixs
   typeprefix(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   __init__ s   c    s%     d G| o | d p d GHd  S(   Ns   Unknown function:i    s    (   s   tup(   s   selfs   tup(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   unknown s   c    s     t  i |  |   t i t |  d }  |  i i	 t
 | | f   |  i i	 t | | | f   | o | d d j o;  x1 | d D ]" \ } }  |  i | | |  q Wn d  S(   Ns	   _get_typei    s   fieldsi   (   s   TypesParsers   define_objects   selfs   names   strings   lowers   objectss   get_types   defss   writes   funcDefTmpls   impls   getTypeTmpls   fieldss   retTypes   attrnames   get_attr_func(   s   selfs   names   parents   fieldss   retTypes   attrnames   get_type(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   define_object s     c    s    t    }  t i t |  d | }  | i t	 | f   | d j o$  | i d   | i d  n  | d j o  | i d  n}  | t i   j o  | i d  nS  | d j o  | i d  n/  | t i   j o  | i d	 |  n  | i d
   | i d   | i |   | i d |  i d   | i d   d t | | f }  |  i | | |  o  d  Sn  | i d   |  i i t | | f   |  i i | i    d  S(   Ns   _get_s   strings       gchar *ret;
s       PyObject *py_ret;
s   static_strings       GtkObject *ret;
s   GdkAtoms       GdkAtom ret;
s       %s *ret;
s       PyObject *obj;

s$       if (!PyArg_ParseTuple(args, "O!:s   ", s   PyGtk_Type, &obj))
s           return NULL;
s   %s(PyGtk_Get(obj))->%ss   }

(   s   StringIOs   impls   strings   lowers   objectss   names   attrnames   funcNames   writes   funcLeadTmpls   retTypes   keyss   boxeds   selfs   tps   funcCalls	   decodeRets   defss   funcDefTmpls   getvalue(   s   selfs   names   retTypes   attrnames   funcCalls   funcNames   impl(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   get_attr_func s2   c    s    t    }  | i t | f   t   }  d }  g  }  g  }  g  }	  t }
  t |  t f   j o  | d }
  | d } n  | d j o*  | i d d   | i d d  n  | d	 j o  | i d d  n  | t i   j o  | i d
 d  nU  | d j o  | i d d  n.  | t i   j o  | i | d  n  x:| D ]/} | d } | d } | d d d d d d d d d f	 j o | d } n d } t } 	t |  d j o 
x | d D
] } t |  t f   j o | d d j o6 d | d } d | j o | d } n n; t |  t f   j o | d d j o t } n qWn | d j ok | i d d | |  | o | d } n | d } | i d  |  | i |  nu| d d! f j oL | i d | |  | d" } | i d  |  | i |  n| d# d$ d% d& d' d( d f j oL "| i d$ | |  #| d) } $| i d  |  %| i |  n&| d* d+ f j oL '| i d+ | |  (| d, } )| i d  |  *| i |  n@+| d- j oh ,| i d d | |  -| d. } .| i d/  /| i d  |  0| i d0 | d1  n2| t i   j o 3| i | | |  4| o 5| i d d2 | d3  n 8| i d d2 |  9| d4 } :| i d5 |  ;| i |  <|	 i t t | d6 | | f  n@| t  i   j o A| i | | |  B| o C| i d d2 | d3  n F| i d d2 |  G| d4 } H| i d5 |  I| i |  J|	 i t! t  | d6 | | f  n:N| t i   j oO| o P| d4 } Q| i d5 |  R| i d d2 | d7  T| i | d | d3  V|	 i t" | | t | | | | | f  [| i |  n)\| o ]| d. } ^| i |  i$ d8  _| i d d2 | d3  a| i | d | |  c| i d5 |  d|	 i t% | | t | d9 | d: f  i| i |  np k| d. } l| i |  i$ d8  m| i d d |  n| i d  |  o| i t | d; | d:  nVr| t i   j o&st | \ } } } t| o u| i d d2 | d7  w| i | d | d3  y| d4 } z| i d5 |  {|	 i t( | | | | | | | | f  | i |  nl | i d d |  | d. } | i |  i$ |  | i d  |  | i | d< | d1  n d= | | f GHd  SqW| i t) |   | i d>  | i |  | i d?  | i |  | i d@  | o0 | i dA  | i t* i+ | dA   n | i dB  | i t* i+ |	 d   | d< t* i+ | dA  d1 } |  i- | | | |
  o d  Sn | i dC  |  i. i t/ | | f  |  i i | i0    d  S(D   Ns    i   i    s   strings   gchars   *rets   PyObjects   *py_rets   static_strings	   GtkObjects   GdkAtoms   rets   defaults   ifs   thens   elses   whiles   fors   dos   cases   selects   _i   s   =s    = s   |s   null-oks   chars   *s   zs   ss   &s   uchars   cs   bools   ints   uints   longs   ulongs   guints   is   floats   doubles   ds   FILEs   O!s   &PyFile_Types   PyFile_AsFile(s   )s   *py_s    = NULLs   Os   &py_s   py_s
    = Py_Nones
   PyGtk_Types   (PyGtk_Get(py_s   ))s   (PyGtk_Get(s   (s   %s: unknown arg type '%s's!       if (!PyArg_ParseTuple(args, "s   :s   "s   , s   ))
        return NULL;
s   }

(1   s   StringIOs   impls   writes   funcLeadTmpls   names   VarDefss   varDefss   parseStrs	   parseLists   argLists	   extraCodes   Nones   retArgss   types   retTypes   adds   objectss   keyss   boxeds   argss   args   argTypes   argNames   defaults   FALSEs   nulloks   lens   as   TRUEs   appends   enumss   enumCodeTmpls   flagss   flagCodeTmpls
   nullokTmpls   selfs   tps
   setVarTmpls   gets   news   nullokBoxedTmpls   strs   strings   joins   funcCalls	   decodeRets   defss   funcDefTmpls   getvalue(   s   selfs   names   retTypes   argss   as   gets   nulloks	   parseLists   args	   extraCodes   retArgss   argLists   funcCalls   defaults   parseStrs   varDefss   tps   news   argNames   argTypes   impl(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   define_func s  					
 	+		 	--
%
)
)
-
-$
, 
 !c    s  t  } | o; | d d j o t } n d | f GHd Sn | d j o4 | i d  | i |  | i d  n?| d j o( | i d	 |  | i d
  n| d j o( | i d	 |  | i d  n| d d f j o4 | i d  | i |  | i d  n| d d d d d d f j p# | t i	   j p | t
 i	   j o4 | i d  | i |  | i d  n	| d d f j o4 | i d  | i |  | i d  n | t i	   j oT | i d	 |  | i d  | i d t | d  | i d  nU | t i	   j o( | i d  |  | i d!  n d" | f GHd Sd Sd  S(#   Ni    s   null-oks   unknown return attribute '%s'i   s   nones       s.   ;
    Py_INCREF(Py_None);
    return Py_None;
s   static_strings       ret = %s;
s       if (ret) {
        return PyString_FromString(ret);
    } else {
        Py_INCREF(Py_None);
        return Py_None;
    }
s   strings       if (ret) {
        py_ret = PyString_FromString(ret);
        g_free(ret);
        return py_ret;
    } else {
        Py_INCREF(Py_None);
        return Py_None;
    }
s   chars   uchars(       return PyString_fromStringAndSize(*(s   ));
s   bools   ints   uints   longs   ulongs   guints       return PyInt_FromLong(s   );
s   floats   doubles       return PyFloat_FromDouble(s       if (ret)
s           return %s(ret);
i   s,       Py_INCREF(Py_None);
    return Py_None;
s       ret = (GtkObject *) %s;
sX       if (ret)
        return PyGtk_New(ret);
    Py_INCREF(Py_None);
    return Py_None;
s   unknown return type '%s'(   s   FALSEs   nulloks   retArgss   TRUEs   retTypes   impls   writes   funcCalls   enumss   keyss   flagss   boxeds   objects(   s   selfs   impls   funcCalls   retTypes   retArgss   nullok(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys	   decodeRetsN   	
H(   s   __init__s   unknowns   define_objects   get_attr_funcs   define_funcs   Nones	   decodeRet(    (    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   FunctionDefsParser s   
s   FilteringParserc      sP   d  Z  d d d  Z d   Z d   Z d   Z d   Z RS(   sJ   A refinement of FunctionDefsParser with some common filter types
	built ins	   gtkmodules   &c    s8   t  i |  | | |  h  |  _ g  |  _ d  S(   N(   s   FunctionDefsParsers   __init__s   selfs   inputs   prefixs
   typeprefixs   excludeLists   excludeGlob(   s   selfs   inputs   prefixs
   typeprefix(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   __init__s   c    sj   |  i i |  o d Sn x5 |  i D]' } t i | |  o d Sn q1 Wd Sd  S(   Ni    i   (   s   selfs   excludeLists   has_keys   names   excludeGlobs   globs   fnmatchs   fnmatchcase(   s   selfs   names   glob(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   filters    	c    sC   |  i |  o t i |  | | |  n d | GHd  S(   Ns   %s: filtered out(   s   selfs   filters   names   FunctionDefsParsers   define_funcs   retTypes   args(   s   selfs   names   retTypes   args(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   define_funcs   c    sp   t  |  i   } t d   |  } t d   |  } x! | D] } t |  i	 | <qO Wd S(   s6   Adds the function names from file fname to excludeListc    s   |  d  S(   Ni(   s   x(   s   x(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   <lambda>s    c    s   |  o |  d d j S(   Ni    s   #(   s   x(   s   x(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   <lambda>s    N(
   s   opens   fnames	   readliness   liness   maps   filters   names   Nones   selfs   excludeList(   s   selfs   fnames   names   lines(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   addExcludeFiles   
 	c    s1   | |  i j o |  i i |  n d  S(   N(   s   globs   selfs   excludeGlobs   append(   s   selfs   glob(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   addExcludeGlobs   (   s   __doc__s   __init__s   filters   define_funcs   addExcludeFiles   addExcludeGlob(    (    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   FilteringParsers   		s   __main__s   d:o:hs   defs=s   output-prefix=s   exclude-file=s   exclude-globs	   register=s   helps   -ds   --defss   -os   --output-prefixs   --exclude-files   --exclude-globs
   --registers   --helps1   usage: generate.py -d defs file -o output-prefix
s   inputs   prefixs
   typeprefixs   &(7   s   syss   getopts   oss   strings   scmexprs	   cStringIOs   StringIOs   ImportErrors   fnmatchs   TRUEs   FALSEs   funcDefTmpls   funcLeadTmpls   enumCodeTmpls   flagCodeTmpls
   setVarTmpls   getTypeTmpls
   nullokTmpls   nullokBoxedTmpls   convSpecialCasess
   toUpperStrs   enumNames   conversionMacros   enumss   flagss   objectss   boxeds   VarDefss   Parsers   TypesParsers   FunctionDefsParsers   FilteringParsers   __name__s   argvs   optss   argss   Nones   defss   output_prefixs   exclude_filess   exclude_globs   opts   args   appends   exclude_globss   startParsings   hs   stderrs   writes   exits   parsers   files   addExcludeFiles   globs   addExcludeGlob((   s   opts   flagCodeTmpls   conversionMacros   FunctionDefsParsers   files   args   TRUEs   boxeds   nullokBoxedTmpls   getTypeTmpls   convSpecialCasess   getopts
   toUpperStrs   enumCodeTmpls   exclude_filess   defss   TypesParsers   parsers   strings   globs   argss   VarDefss   syss
   nullokTmpls   objectss   exclude_globs   FALSEs   enumss   funcLeadTmpls
   setVarTmpls   StringIOs   FilteringParsers   funcDefTmpls   enumNames   output_prefixs   flagss   fnmatchs   scmexprs   oss   opts(    (    s(   /usr/share/pygtk/1.2/codegen/generate.pys   ? s   										Z			 * )!$				
 
 	
 	