pike.git / lib / modules / GDK.pmod

version» Context lines:

pike.git/lib/modules/GDK.pmod:1: + inherit "GTK.so"; + #define INDEX(x) predef::`->(this_object(),(x))    -  + object Atom = class + { +  mapping atoms = ([]); +  +  class fake_atom +  { +  object ra; +  string n; +  object get_atom() +  { +  if(ra) return ra; +  return ra = 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 ([])[0]; +  +  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(GTK.unsillycaps(what))))) +  return INDEX("GDK_"+upper_case(GTK.unsillycaps(what))); +  return GDKSupport[what]; + }   Newline at end of file added.