opt -= self.border[0] + self.border[1] + self.padding[0] + self.padding[1] if min > 0: min -= self.border[0] + self.border[1] + self.padding[0] + self.padding[1] if max > 0: max -= self.border[0] + self.border[1] + self.padding[0] + self.padding[1] return [opt, min, max] class CaptionTag(BaseHtmlElemParser): def __init__( self, parent, parser, tag, attrs, ): BaseHtmlElemParser.__init__(self, parent, parser, tag, attrs) self.td_list = [] def close(self): self.parent.caption = "".join(self.data) BaseHtmlElemParser.close(self) register_tag_map("table", TableTag) register_tag_map("caption", CaptionTag) register_tag_map("tr", TrTag) register_tag_map("td", TdTag) register_tag_map("th", TdTag) register_tag_map("hr", TableTag)
if "type" in self.attrs: t = self.attrs["type"] if t == "circle": z = "●" elif t == "square": z = "■" elif t == "none": z = " " else: z = "•" if child.level > 1: z = "○" return " " + z + " " register_tag_map("p", Par) register_tag_map("h1", Par) register_tag_map("h2", Par) register_tag_map("h3", Par) register_tag_map("h4", Par) register_tag_map("h5", Par) register_tag_map("h6", Par) register_tag_map("dt", Par) register_tag_map("dd", Par) register_tag_map("pre", Par) register_tag_map("div", Par) register_tag_map("ol", Ul) register_tag_map("ul", Ul)
class ParCalc(AtomTag): def handle_data(self, data): parent = self.parent while parent: if parent.tag == "table": table = parent if parent.tag == "body": body = parent if parent.tag == "html": html = parent parent = parent.parent data2 = str(eval(data)) return AtomTag.handle_data(self, data2) register_tag_map("br", BrTag) register_tag_map("a", Atag) register_tag_map("i", AtomTag) register_tag_map("b", AtomTag) register_tag_map("em", AtomTag) register_tag_map("strong", AtomTag) register_tag_map("s", AtomTag) register_tag_map("small", AtomTag) register_tag_map("big", AtomTag) register_tag_map("sub", AtomTag) register_tag_map("sup", AtomTag) register_tag_map("tt", AtomTag) register_tag_map("span", AtomTag) register_tag_map("font", AtomTag) register_tag_map("img", ImgTag) register_tag_map("image", ImgTag)
BaseHtmlElemParser.close(self) def set_dc(self, dc): (self.width, self.height) = dc.get_size() self.dc = dc class HeaderTag(BaseHtmlElemParser): def __init__(self, parent, parser, tag, attrs): BaseHtmlElemParser.__init__(self, parent, parser, tag, attrs) self.child_tags = ["style", "link"] def close(self): pass class CommentTag(BaseHtmlElemParser): def __init__(self, parent, parser, tag, attrs): BaseHtmlElemParser.__init__(self, parent, parser, tag, attrs) def handle_starttag(self, parser, tag, attrs): return None def close(self): pass register_tag_map("html", HtmlTag) register_tag_map("head", HeaderTag) register_tag_map("comment", CommentTag)
# copyright: "Copyright (C) ????/2012 Slawomir Cholaj" # license: "LGPL 3.0" # version: "0.1a" from pytigon_lib.schhtml.basehtmltags import BaseHtmlElemParser, register_tag_map class Css(BaseHtmlElemParser): def __init__(self, parent, parser, tag, attrs): BaseHtmlElemParser.__init__(self, parent, parser, tag, attrs) def close(self): self.parser.css.parse_str("".join(self.data)) register_tag_map("style", Css) class CssLink(BaseHtmlElemParser): def __init__(self, parent, parser, tag, attrs): BaseHtmlElemParser.__init__(self, parent, parser, tag, attrs) def close(self): if "href" in self.attrs: href = self.attrs["href"] http = self.parser.http try: response = http.get(self, href) if response.ret_code == 404: css_txt = None else:
def handle_starttag(self, parser, tag, attrs): self.data.write("<" + tag) for pos in attrs: if attrs[pos] != None: self.data.write(" " + pos + '="' + attrs[pos] + '"') else: self.data.write(" " + pos) self.data.write(">") return None def handle_endtag(self, tag): if tag == self.tag: self.parent.data_from_child(self, self.data) return self.parent else: self.data.write("</" + tag + ">") return self def handle_data(self, data): self.data.write(data) def close(self): pass register_tag_map("page", Page) register_tag_map("header", HeaderFooter) register_tag_map("footer", HeaderFooter) register_tag_map("newpage", NewPage)
obj.SetValue(value) parent.append_ctrl(obj) else: obj = self.classObj(parent, **self.kwargs) if not obj: print("ERROR:", self.classObj) obj.set_unique_name(name) if value != None and (valuetype == "data" or valuetype == "str"): obj.SetValue(value) obj.after_create() parent.append_ctrl(obj) self.obj = obj register_tag_map("ctr*", CtrlTag) class ComponentTag(CtrlTag): def __init__(self, parent, parser, tag, attrs): super().__init__(parent, parser, tag, attrs) self.data.append(make_start_tag(attrs["_tag"], attrs)) self.count = 1 self._close_tag = None def close(self): # self.count -= 1 # if self.count < 0: if "window-width" in self.attrs: self.attrs["width"] = self.attrs["window-width"]
self.extra_space[3], ] def close(self): if self.width > 0 and self.height > 0: self.dx = self.width self.dy = self.height else: self.dx = 100 self.dy = 100 img_atom = Atom(self, self.dx, 0, self.dy, 0) img_atom.set_parent(self) self.make_atom_list() self.atom_list.append_atom(img_atom) self.parent.append_atom_list(self.atom_list) def handle_data(self, data): self.draw_txt += data def draw_atom(self, dc, style, x, y, dx, dy): self.reg_id(dc) self.reg_end() dc2 = dc.subdc(x, y, self.width, self.height, True) for r in self.render_helpers: dc2 = r.render(dc2) dc2.play_str(self.draw_txt) return True register_tag_map("vimg", VectorImg)
if (not self.dc.paging or dy <= self.height - self.footer_height - self.y or self.new_page != 2): (dy, cont) = child.render( self.dc_page.subdc(0, self.y, self.width, dy)) self.new_page = 2 if dy > 0: self.y += dy else: self.render_new_page() cont = True if self.y > self._maxheight: self._maxheight = self.y register_tag_map("body", BodyTag) class FormTag(BaseHtmlElemParser): def __init__(self, parent, parser, tag, attrs): BaseHtmlElemParser.__init__(self, parent, parser, tag, attrs) self.child_tags = parent.child_tags self.child_tags += [ "table", ] self.fields = None self.field_names = {} self.upload = None self.parent.reg_field = self.reg_field self.parent.get_fields = self.get_fields self.parent.gethref = self.gethref