Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion consolemenu/format/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from .menu_borders import HeavyBorderStyle
from .menu_borders import HeavyOuterLightInnerBorderStyle
from .menu_borders import LightBorderStyle
from .menu_borders import ZeroBorderStyle
from .menu_borders import MenuBorderStyle
from .menu_borders import MenuBorderStyleFactory
from .menu_borders import MenuBorderStyleType
Expand All @@ -13,4 +14,4 @@

__all__ = ['MenuBorderStyle', 'MenuBorderStyleType', 'MenuBorderStyleFactory', 'MenuMargins', 'MenuPadding',
'MenuStyle', 'AsciiBorderStyle', 'LightBorderStyle', 'HeavyBorderStyle', 'DoubleLineBorderStyle',
'DoubleLineOuterLightInnerBorderStyle', 'HeavyOuterLightInnerBorderStyle']
'DoubleLineOuterLightInnerBorderStyle', 'HeavyOuterLightInnerBorderStyle', 'ZeroBorderStyle']
61 changes: 61 additions & 0 deletions consolemenu/format/menu_borders.py
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,51 @@ def outer_vertical_inner_left(self): return u'\u2562'
def outer_vertical_inner_right(self): return u'\u255F'



class ZeroBorderStyle(MenuBorderStyle):
"""
A borderless border. This fills the border with empty strings
"""

@property
def bottom_left_corner(self): return ''

@property
def bottom_right_corner(self): return ''

@property
def inner_horizontal(self): return ''

@property
def inner_vertical(self): return ''

@property
def intersection(self): return ''

@property
def outer_horizontal(self): return ''

@property
def outer_horizontal_inner_down(self): return ''

@property
def outer_horizontal_inner_up(self): return ''

@property
def outer_vertical(self): return ''

@property
def outer_vertical_inner_left(self): return ''

@property
def outer_vertical_inner_right(self): return ''

@property
def top_left_corner(self): return ''

@property
def top_right_corner(self): return ''

class MenuBorderStyleType(object):
"""
Defines the various menu border styles, as expected by the border factory.
Expand Down Expand Up @@ -339,6 +384,11 @@ class MenuBorderStyleType(object):
DOUBLE_LINE_OUTER_LIGHT_INNER_BORDER = 5
""" int: Menu Border using the "double-line" box drawing characters for the outer border elements, and "light"
box-drawing characters for the inner border elements."""

ZERO_BORDER = 6
"""
int: Menu border that is borderless. This uses empty strings instead of borders with characters.
"""


class MenuBorderStyleFactory(object):
Expand Down Expand Up @@ -372,6 +422,8 @@ def create_border(self, border_style_type):
return self.create_heavy_outer_light_inner_border()
elif border_style_type == MenuBorderStyleType.DOUBLE_LINE_OUTER_LIGHT_INNER_BORDER:
return self.create_doubleline_outer_light_inner_border()
elif border_style_type == MenuBorderStyleType.ZERO_BORDER:
return self.create_zero_border()
else:
# Use ASCII if we don't recognize the type
self.logger.info('Unrecognized border style type: {}. Defaulting to ASCII.'.format(border_style_type))
Expand Down Expand Up @@ -449,6 +501,15 @@ def create_doubleline_outer_light_inner_border(self):
:obj:`DoubleLineOuterLightInnerBorderStyle`: a new instance of DoubleLineOuterLightInnerBorderStyle
"""
return DoubleLineOuterLightInnerBorderStyle()

def create_zero_border(self):
"""
Creates a zero border with empty strings.

Returns:
:obj:`ZeroBorder`: a new instance of ZeroBorderStyle
"""
return ZeroBorderStyle()

@staticmethod
def is_win_python35_or_earlier():
Expand Down