#! /usr/bin/python # To change this template, choose Tools | Templates # and open the template in the editor. __author__="bjschuma" __date__ ="$May 16, 2010 10:27:25 PM$" from ct import call #from ct.call import * from gtknodes import make class Node: def __init__(self,elm): call.write("Creating node: "+elm.nodeName, 2) self.elm = elm self.part = None self.function = None self.init2() def __del__(self): call.write("Deleting node: "+self.elm.nodeName, 2) def init2(self): self.name = self.elm.nodeName.lower() self.attrs = dict() self.children = self.getchildren() def __setitem__(self,key,value): self.attrs[str(key).lower()] = str(value).lower() def __getitem__(self,key): return self.attrs[str(key).lower()] def keys(self): return self.attrs.keys() def show(self): self.part.show() def hide(self): self.part.hide() def setattrs(self): if ("show" in self.keys()) == False: self["show"] = "true" if ("click" in self.keys()) == False: self["click"] = "none" self["viewport"] = "false" if self.elm.hasAttributes() == True: for i in range( self.elm.attributes.length ): item = self.elm.attributes.item(i) self[item.name.lower()] = item.nodeValue.lower() self.function = self["click"] if self.part != None: try: self.part.connect("clicked", self.onclick) except: pass if self["show"] == "true": self.part.show() def onclick(self,item): if self.function!="none": exec "call."+self.function+"()" def getchildren(self): if self.elm.hasChildNodes() == False: return [] children = [] for node in self.elm.childNodes: if not node.nodeName[0] == "#": child = self.make(node) if child != None: children += [child] return children def make(self,child): return make(child)