Branch: Tag:

2012-01-28

2012-01-28 11:14:24 by Henrik Grubbström (Grubba) <grubba@grubba.org>

GTK: Added GDK1 and GDK2 modules corresponding to GTK1 and GTK2.

Updated the GTKSupport module accordingly.

1: + #pike __REAL_VERSION__    -  + #if constant(GTK2) && constant(GTK2.Widget) +  + #define INDEX(x) GTK2[x] +  + //! @decl import GTK2 +  + //! @decl constant Atom +  + object Atom = class + { +  mapping atoms = ([]); +  +  class fake_atom +  { +  object ra; +  string n; +  object get_atom() +  { +  if(ra) return ra; +  return ra = GTK2->Gdk_Atom( n, 0 ); +  } +  string get_name() +  { +  return get_atom()->get_name(); +  } +  void create(string q) +  { +  n = q; +  } +  } +  +  object `[](string what) +  { +  if(atoms[what]) +  return atoms[what]; +  return atoms[what] = fake_atom( what ); +  } + }(); +  + mixed `[](string what) + { +  if(what == "_module_value") return UNDEFINED; +  if(what == "Atom") return Atom; +  if(!zero_type(INDEX("Gdk"+what))) +  return INDEX("Gdk"+what); +  if(!zero_type(INDEX("GDK_"+what))) +  return INDEX("GDK_"+what); +  if(!zero_type(INDEX("GDK_"+upper_case(GTK2->unsillycaps(what))))) +  return INDEX("GDK_"+upper_case(GTK2->unsillycaps(what))); +  return UNDEFINED; + // return GDKSupport[what]; + } +  + #else /* constant(GTK2.Widget) */ + constant this_program_does_not_exist=1; + #endif   Newline at end of file added.