centering

This commit is contained in:
q
2016-06-20 09:34:32 +03:00
parent 7fdaf6a23a
commit d3d24538ff

View File

@@ -57,6 +57,8 @@ class slide_reader:
self.page=0 self.page=0
self.width=None self.width=None
self.height=None self.height=None
self.max_width=None
self.max_height=None
self.data=[] self.data=[]
self.re_image_convert=re.compile("(.*)(!\[.*\])\((.*)\)>") self.re_image_convert=re.compile("(.*)(!\[.*\])\((.*)\)>")
self.re_command=re.compile("(.*)`(.*)`>(.*)") self.re_command=re.compile("(.*)`(.*)`>(.*)")
@@ -95,7 +97,12 @@ class slide_reader:
self.toc() self.toc()
self.pages=len(self.data) self.pages=len(self.data)
self.inc_page_no(0) self.inc_page_no(0)
self.max_width=0
self.max_height=0
for page in self.data:
self.max_height=max(self.max_height, len(page))
for row in page:
self.max_width=max(self.max_width, len(row))
def get_data(self): def get_data(self):
return self.data return self.data
@@ -136,6 +143,10 @@ class slide_reader:
return self.height return self.height
def get_page_width(self): def get_page_width(self):
return self.width return self.width
def get_max_height(self):
return self.max_height
def get_max_width(self):
return self.max_width
def toc(self): def toc(self):
if self.opts.toc: if self.opts.toc:
@@ -254,6 +265,8 @@ Keyboard shortcuts:
execution = parser.add_argument_group('execution') execution = parser.add_argument_group('execution')
control = parser.add_argument_group('controls') control = parser.add_argument_group('controls')
content.add_argument("--center",action="store_true",dest="center",default=False,
help="Center slides on screen.")
content.add_argument("--dc",action="store_true",dest="dark_colors",default=False, content.add_argument("--dc",action="store_true",dest="dark_colors",default=False,
help="Use dark colorscheme, better for white background terminals.") help="Use dark colorscheme, better for white background terminals.")
content.add_argument("-m",action="store_false",dest="autocolor",default=True, content.add_argument("-m",action="store_false",dest="autocolor",default=True,
@@ -302,10 +315,11 @@ def page_print(reader,opts,offset):
scrsize=opts.size scrsize=opts.size
# clear page # clear page
bc.clear() bc.clear()
if False: # Placeholder for 80x25 center alignment if opts.center: # Placeholder for 80x25 center alignment
align_x_offset=scrsize[1]/2-40 align_width=reader.get_max_width()
align_x_offset=scrsize[1]/2-align_width/2
align_pad=" "*align_x_offset align_pad=" "*align_x_offset
align_y_offset=scrsize[0]/2-12 align_y_offset=scrsize[0]/2-reader.get_max_height()/2
bc.down_line(align_y_offset) bc.down_line(align_y_offset)
else: else:
align_pad="" align_pad=""
@@ -317,6 +331,8 @@ def page_print(reader,opts,offset):
print(align_pad+colorify(coloring+page[0],opts)+bc.Z) print(align_pad+colorify(coloring+page[0],opts)+bc.Z)
# Print page rows # Print page rows
if not opts.wrap:
page=[cut_line(row,scrsize[1]-1) for row in page]
parsed=md_color.parse(page) parsed=md_color.parse(page)
if opts.autocolor: if opts.autocolor:
colored=md_color.colorize(parsed,not opts.color,opts.dark_colors) colored=md_color.colorize(parsed,not opts.color,opts.dark_colors)
@@ -331,11 +347,11 @@ def page_print(reader,opts,offset):
if row_i<offset[0]: continue if row_i<offset[0]: continue
row=page[row_i] row=page[row_i]
#page[1+offset[0]:]: #page[1+offset[0]:]:
if not opts.wrap: if opts.wrap:
row=cut_line(row,scrsize[1]-1)
row_lines=0
else:
row_lines=int(float(len(row))/scrsize[1]) row_lines=int(float(len(row))/scrsize[1])
else:
row_lines=0
colored_row=colored[row_i]#=colorify(row,opts) colored_row=colored[row_i]#=colorify(row,opts)
if offset[1]==r+1+offset[0]: if offset[1]==r+1+offset[0]:
colored_row=add_highlight(row,opts) colored_row=add_highlight(row,opts)