コード例 #1
0
ファイル: SqueezeBoxTag.py プロジェクト: sernst/StaticFlow
    def _renderImpl(self, **kwargs):
        a = self.attrs

        class SqueezeEnum(object):
            VERTICAL = ['v', ['vertical','vert','v']]

            HORIZONTAL = ['h', ['horizontal', 'horiz', 'h']]

        squeezeType = a.getAsEnumerated(
            TagAttributesEnum.TYPE,
            SqueezeEnum,
            SqueezeEnum.HORIZONTAL,
            overrides=kwargs,
            extract=True
        )

        pad = a.getAsEnumerated(
            TagAttributesEnum.SIZE,
            GeneralSizeEnum,
            None,
            overrides=kwargs,
        )
        if pad is None:
            pad = a.getAsUnit(
                TagAttributesEnum.SIZE,
                None
            )

        if isinstance(pad, basestring):
            if pad == GeneralSizeEnum.xxsmall[0]:
                pad = '0.25em'
            elif pad == GeneralSizeEnum.xsmall[0]:
                pad = '0.5em'
            elif pad == GeneralSizeEnum.small[0]:
                pad = '0.75em'
            elif pad == GeneralSizeEnum.medium[0]:
                pad = '1.0em'
            elif pad == GeneralSizeEnum.large[0]:
                pad = '1.5em'
            elif pad == GeneralSizeEnum.xlarge[0]:
                pad = '2.0em'
            elif pad == GeneralSizeEnum.xxlarge[0]:
                pad = '3.0em'
            else:
                pad = '0'
        elif pad:
            pad = pad.valueAndUnit

        if pad is None:
            pad = '0.5em'

        if squeezeType == 'h':
            a.styles.add('margin', 'auto ' + pad)
        else:
            a.styles.add('margin', pad + ' auto')

        BoxTag._renderImpl(self, **kwargs)
コード例 #2
0
ファイル: HangerTag.py プロジェクト: sernst/StaticFlow
    def _renderImpl(self, **kwargs):
        BoxTag._renderImpl(self, **kwargs)
        a = self.attrs

        # If the hanger tag is a row child tag its hanging attributes should be ignored and it
        # should be rendered as a normal box tag.
        if a.settings.getKey('rowReach'):
            a.render['hangerActive'] = False
            return
        else:
            a.render['hangerActive'] = True

        side = a.getAsKeyword(
            TagAttributesEnum.SIDE + TagAttributesEnum.EDGES + TagAttributesEnum.ON,
            'left',
            kwargs
        )

        r = a.getAsEnumerated(
            TagAttributesEnum.REACH,
            GeneralSizeEnum,
            GeneralSizeEnum.xsmall,
            kwargs
        )

        if side in ['left', 'lft', 'l']:
            a.classes.add('v-gvml-hangerLeft')
        else:
            a.classes.add('v-gvml-hangerRight')

        if r == 'xxs':
            r = 0.125
        elif r == 'xs':
            r = 0.25
        elif r == 's':
            r = 0.33
        elif r == 'm':
            r = 0.5
        elif r == 'l':
            r = 0.66
        elif r == 'xl':
            r = 0.75
        elif r == 'xxl':
            r = 1.0
        else:
            r = None

        if r is not None:
            a.settings.add('hangerReach', r)

        # Populate the attributes and settings for the resizer tag that triggers resize handling
        # on the hanger.
        a.addTagClasses('sizer', 'resizer')
        a.vdata.add('target', a.id.get(), 'resizer')

        self.addResizerClass()
コード例 #3
0
ファイル: ZurbRowTag.py プロジェクト: sernst/StaticFlow
    def _renderImpl(self, **kwargs):
        a = self.attrs

        a.classes.add('row')
        rowType, rowTypeKey = a.get(TagAttributesEnum.TYPE, returnKey=True)
        if rowType is not None:
            rowType = rowType.lower()
            if rowType in ['f', 'full']:
                a.classes.add('fullWidth')
            elif rowType in ['l', 'large']:
                a.classes.add('largeWidth')

        BoxTag._renderImpl(self, paddingDef=GeneralSizeEnum.none[0], **kwargs)
コード例 #4
0
ファイル: BorderTag.py プロジェクト: sernst/StaticFlow
    def _connectivityReversalImpl(self):
        # If the border tag is wrapping a single block tag then apply the border to the element to
        # save on wrapping the border in an element of its own.
        cs    = self.children
        merge = not self.attrs.explicitAccent and \
                self.attrs.getAsBool(TagAttributesEnum.MERGE, True) and \
                len(cs) == 1 and cs[0].isBlockDisplay

        if merge:
            merge = not self._processor.result[self.bodyStart():cs[0].start()].strip()
            if merge:
                merge = not self._processor.result[cs[0].end():self.bodyEnd()].strip()

        if merge:
            self._populateBorder(cs[0])
            cs[0].attrs.join(self.attrs)
            self.renderTemplate = 'markup/empty.mako'
            self._mergedToChild = True
            BoxTag._renderImpl(self, skipBackground=True, paddingDef=GeneralSizeEnum.none[0])
コード例 #5
0
ファイル: GridTag.py プロジェクト: sernst/StaticFlow
 def getAttributeList(cls):
     t = TagAttributesEnum
     return (
         BoxTag.getAttributeList()
         + t.VERTICAL_ALIGN
         + t.SPACING
         + t.SAME_HEIGHT
         + t.RAGGED
         + t.DEFAULT_REACH
         + t.MAX_COLUMNS
         + t.SIZE
     )
コード例 #6
0
ファイル: ZurbRowTag.py プロジェクト: sernst/StaticFlow
 def getAttributeList(cls):
     t = TagAttributesEnum
     return BoxTag.getAttributeList() + t.TYPE
コード例 #7
0
ファイル: GridTag.py プロジェクト: sernst/StaticFlow
    def _renderImpl(self, **kwargs):
        a = self.attrs

        align = a.getAsKeyword(TagAttributesEnum.VERTICAL_ALIGN, "grow", kwargs)

        gapSize = a.getAsEnumerated(TagAttributesEnum.SPACING, GeneralSizeEnum, GeneralSizeEnum.medium, kwargs)

        sameHeight = a.getAsBool(TagAttributesEnum.SAME_HEIGHT, True, kwargs)

        ragged = a.getAsBool(TagAttributesEnum.RAGGED, False, kwargs)

        size = a.getAsEnumerated(
            TagAttributesEnum.SIZE + TagAttributesEnum.DEFAULT_REACH, GeneralSizeEnum, None, kwargs
        )

        maxColumns = a.getAsInt(TagAttributesEnum.MAX_COLUMNS, len(self.children), kwargs)

        a.settings.add("maxCols", maxColumns)
        a.settings.add("rag", ragged)
        a.settings.add("hAll", sameHeight)

        if not size:
            size = a.getAsUnit(TagAttributesEnum.SIZE + TagAttributesEnum.DEFAULT_REACH, 125, "px", unitType=int)
            a.settings.add("size", size.value)
        else:
            if size == "xxs":
                size = 50
            elif size == "xs":
                size = 125
            elif size == "s":
                size = 200
            elif size == "m":
                size = 250
            elif size == "l":
                size = 325
            elif size == "xl":
                size = 425
            elif size == "xxl":
                size = 500
            else:
                size = 125
            a.settings.add("size", size)

        if gapSize == "xxs":
            gap = 1
        elif gapSize == "xs":
            gap = 4
        elif gapSize == "s":
            gap = 8
        elif gapSize == "m":
            gap = 16
        elif gapSize == "l":
            gap = 32
        elif gapSize == "xl":
            gap = 64
        elif gapSize == "xxl":
            gap = 128
        else:
            gap = 0
        a.settings.add("gap", gap)

        if align in ["grow", "fill"]:
            align = "fill"
        elif align in ["top"]:
            align = "top"
        elif align in ["middle", "center"]:
            align = "middle"
        elif align in ["bottom", "baseline"]:
            align = "bottom"
        else:
            align = None

        if align:
            a.settings.add("rowAlign", align)

        self.addResizerClass()
        BoxTag._renderImpl(self, paddingDef=GeneralSizeEnum.none[0], align="auto", **kwargs)
コード例 #8
0
ファイル: RowTag.py プロジェクト: sernst/StaticFlow
    def _renderImpl(self, **kwargs):
        a = self.attrs
        sameHeight = a.getAsBool(
            TagAttributesEnum.SAME_HEIGHT,
            False,
            kwargs
        )

        maxColumns = a.getAsInt(
            TagAttributesEnum.MAX_COLUMNS,
            0,
            kwargs
        )

        minColumns = a.getAsInt(
            TagAttributesEnum.MIN_COLUMNS,
            1,
            kwargs
        )

        align = a.getAsKeyword(
            TagAttributesEnum.VERTICAL_ALIGN,
            'grow',
            kwargs
        )

        gapSize = a.getAsEnumerated(
            TagAttributesEnum.SPACING,
            GeneralSizeEnum,
            GeneralSizeEnum.medium,
            kwargs
        )

        if gapSize == 'xxs':
            gap = 1
        elif gapSize == 'xs':
            gap = 4
        elif gapSize == 's':
            gap = 8
        elif gapSize == 'm':
            gap = 16
        elif gapSize == 'l':
            gap = 32
        elif gapSize == 'xl':
            gap = 64
        elif gapSize == 'xxl':
            gap = 128
        else:
            gap = 0

        a.settings.add('gap', gap)
        a.settings.add('maxCols', maxColumns)
        a.settings.add('minCols', min(max(minColumns, 1), maxColumns))
        a.settings.add('hAll', sameHeight)

        if align in ['grow', 'fill']:
            align = 'fill'
        elif align in ['top']:
            align = 'top'
        elif align in ['middle', 'center']:
            align = 'middle'
        elif align in ['bottom', 'baseline']:
            align = 'bottom'
        else:
            align = None

        if align:
            a.settings.add('rowAlign', align)

        self.addResizerClass()
        BoxTag._renderImpl(self, paddingDef=GeneralSizeEnum.none[0], **kwargs)
コード例 #9
0
ファイル: HangerTag.py プロジェクト: sernst/StaticFlow
 def getAttributeList(cls):
     t = TagAttributesEnum
     return BoxTag.getAttributeList() + t.ROW_REACH + t.SIDE + t.EDGES + t.ON + t.REACH
コード例 #10
0
ファイル: ZurbChunkTag.py プロジェクト: sernst/StaticFlow
 def _renderImpl(self, **kwargs):
     a = self.attrs
     a.classes.add('row')
     ZurbBoxTag.addZurbColumnClasses(a, target='column', **kwargs)
     BoxTag._renderImpl(self, paddingDef=GeneralSizeEnum.none[0], **kwargs)
コード例 #11
0
ファイル: ZurbBoxTag.py プロジェクト: sernst/StaticFlow
 def _renderImpl(self, **kwargs):
     a = self.attrs
     self.addZurbColumnClasses(a, **kwargs)
     BoxTag._renderImpl(self, paddingDef=GeneralSizeEnum.none[0], **kwargs)
コード例 #12
0
ファイル: ZurbBoxTag.py プロジェクト: sernst/StaticFlow
 def getAttributeList(cls):
     t = TagAttributesEnum
     return BoxTag.getAttributeList() + t.SMALL + t.SIZE + t.CENTER + t.TYPE + t.PUSH + t.PULL \
         + t.OFFSET
コード例 #13
0
ファイル: BorderTag.py プロジェクト: sernst/StaticFlow
    def _renderImpl(self, **kwargs):
        if self._mergedToChild:
            return

        self._populateBorder(self)
        BoxTag._renderImpl(self, paddingDef=GeneralSizeEnum.none[0], **kwargs)
コード例 #14
0
ファイル: BorderTag.py プロジェクト: sernst/StaticFlow
 def getAttributeList(cls):
     t = TagAttributesEnum
     return BoxTag.getAttributeList() + t.MERGE + t.LINE_TYPE + t.EDGES + t.COLOR + \
            t.LINE_WIDTH + t.TYPE
コード例 #15
0
ファイル: BorderTag.py プロジェクト: sernst/StaticFlow
 def __init__(self, *args, **kwargs):
     BoxTag.__init__(self, *args, **kwargs)
     self._mergedToChild = False