path_demo: add more options
This commit is contained in:
parent
9d0bdb876a
commit
25fc898671
@ -34,6 +34,12 @@ def draw_text():
|
|||||||
let Rect, w = font.prepare_string(0,128,"ToaruOS")
|
let Rect, w = font.prepare_string(0,128,"ToaruOS")
|
||||||
return Rect
|
return Rect
|
||||||
|
|
||||||
|
let cursor = 0,0
|
||||||
|
def draw_cursor_position():
|
||||||
|
let font = Font('sans-serif.bold',128)
|
||||||
|
let Rect, w = font.prepare_string(0,128,f'{cursor[0]},{cursor[1]}')
|
||||||
|
return Rect
|
||||||
|
|
||||||
def draw_box():
|
def draw_box():
|
||||||
let Rect = TTContour(20,20)
|
let Rect = TTContour(20,20)
|
||||||
Rect.line_to(520,20)
|
Rect.line_to(520,20)
|
||||||
@ -46,14 +52,18 @@ let base_graphic = draw_text
|
|||||||
let tt_filter = TTShape.TT_PATH_FILTER_BILINEAR
|
let tt_filter = TTShape.TT_PATH_FILTER_BILINEAR
|
||||||
let tt_wrap = TTShape.TT_PATH_WRAP_REPEAT
|
let tt_wrap = TTShape.TT_PATH_WRAP_REPEAT
|
||||||
|
|
||||||
|
let warp_shape = False
|
||||||
|
|
||||||
def paint_demo(ctx, cursor):
|
def paint_demo(ctx, cursor):
|
||||||
let tm = TransformMatrix()
|
let tm = TransformMatrix()
|
||||||
let Rect = base_graphic()
|
|
||||||
let SRect = Rect.finish()
|
|
||||||
Rect.free()
|
|
||||||
let x, y = cursor
|
let x, y = cursor
|
||||||
x_thing(tm,x)
|
x_thing(tm,x)
|
||||||
y_thing(tm,y)
|
y_thing(tm,y)
|
||||||
|
let Rect = base_graphic()
|
||||||
|
if warp_shape:
|
||||||
|
Rect.transform(tm)
|
||||||
|
let SRect = Rect.finish()
|
||||||
|
Rect.free()
|
||||||
SRect.paint_sprite(ctx,tt_texture,tm,tt_filter,tt_wrap)
|
SRect.paint_sprite(ctx,tt_texture,tm,tt_filter,tt_wrap)
|
||||||
SRect.free()
|
SRect.free()
|
||||||
|
|
||||||
@ -126,11 +136,19 @@ class MyWindow(Window):
|
|||||||
|
|
||||||
let _menu_View_Shape = check_list((
|
let _menu_View_Shape = check_list((
|
||||||
('Text', lambda: base_graphic = draw_text),
|
('Text', lambda: base_graphic = draw_text),
|
||||||
|
('Cursor', lambda: base_graphic = draw_cursor_position),
|
||||||
('Box', lambda: base_graphic = draw_box),
|
('Box', lambda: base_graphic = draw_box),
|
||||||
))
|
))
|
||||||
self.mb.insert('view-shape', _menu_View_Shape)
|
self.mb.insert('view-shape', _menu_View_Shape)
|
||||||
_menu_View.insert(MenuEntrySubmenu('Shape','view-shape'))
|
_menu_View.insert(MenuEntrySubmenu('Shape','view-shape'))
|
||||||
|
|
||||||
|
let _menu_View_Warp_Shape = check_list((
|
||||||
|
('No', lambda: warp_shape = False),
|
||||||
|
('Yes', lambda: warp_shape = True),
|
||||||
|
))
|
||||||
|
self.mb.insert('view-warp-shape', _menu_View_Warp_Shape)
|
||||||
|
_menu_View.insert(MenuEntrySubmenu('Warp shape','view-warp-shape'))
|
||||||
|
|
||||||
self.mb.insert('view', _menu_View)
|
self.mb.insert('view', _menu_View)
|
||||||
|
|
||||||
let _menu_Help = MenuList()
|
let _menu_Help = MenuList()
|
||||||
@ -138,7 +156,7 @@ class MyWindow(Window):
|
|||||||
_menu_Help.insert(_menu_Help_help)
|
_menu_Help.insert(_menu_Help_help)
|
||||||
self.mb.insert('help', _menu_Help)
|
self.mb.insert('help', _menu_Help)
|
||||||
self.mb.callback = lambda x: self.pending_updates = True
|
self.mb.callback = lambda x: self.pending_updates = True
|
||||||
self.cursor = 0,0
|
cursor = 0,0
|
||||||
self.redrawer = Task(self.redraw_loop())
|
self.redrawer = Task(self.redraw_loop())
|
||||||
self.pending_updates = True
|
self.pending_updates = True
|
||||||
|
|
||||||
@ -158,7 +176,7 @@ class MyWindow(Window):
|
|||||||
self.mb.height = 24 # Compatibility
|
self.mb.height = 24 # Compatibility
|
||||||
let sprite = Sprite(width=self.width-bounds['width'],height=self.height-bounds['height']-self.mb.height)
|
let sprite = Sprite(width=self.width-bounds['width'],height=self.height-bounds['height']-self.mb.height)
|
||||||
sprite.fill(rgb(255,255,255))
|
sprite.fill(rgb(255,255,255))
|
||||||
paint_demo(sprite,self.cursor)
|
paint_demo(sprite,cursor)
|
||||||
self.draw_sprite(sprite,bounds['left_width'],bounds['top_height']+self.mb.height)
|
self.draw_sprite(sprite,bounds['left_width'],bounds['top_height']+self.mb.height)
|
||||||
sprite.free()
|
sprite.free()
|
||||||
self.flip()
|
self.flip()
|
||||||
@ -172,8 +190,8 @@ class MyWindow(Window):
|
|||||||
decor_show_default_menu(self, self.x + msg.new_x, self.y + msg.new_y)
|
decor_show_default_menu(self, self.x + msg.new_x, self.y + msg.new_y)
|
||||||
self.mb.mouse_event(self, msg)
|
self.mb.mouse_event(self, msg)
|
||||||
let nc = msg.new_x, msg.new_y
|
let nc = msg.new_x, msg.new_y
|
||||||
if self.cursor != nc:
|
if cursor != nc:
|
||||||
self.cursor = nc
|
cursor = nc
|
||||||
self.pending_updates = True
|
self.pending_updates = True
|
||||||
|
|
||||||
def keyboard_event(self, msg):
|
def keyboard_event(self, msg):
|
||||||
|
Loading…
Reference in New Issue
Block a user