Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd2457e5

Browse files
imageview fullscreen works sortof
1 parent06cdf9a commitd2457e5

File tree

2 files changed

+47
-14
lines changed

2 files changed

+47
-14
lines changed

‎internal_filesystem/apps/com.micropythonos.imageview/assets/imageview.py‎

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,24 @@ def onCreate(self):
3030
self.label.align(lv.ALIGN.TOP_MID,0,0)
3131
self.prev_button=lv.button(screen)
3232
self.prev_button.align(lv.ALIGN.BOTTOM_LEFT,0,0)
33+
self.prev_button.add_event_cb(lambdae:self.show_prev_image_if_fullscreen(),lv.EVENT.FOCUSED,None)
3334
self.prev_button.add_event_cb(lambdae:self.show_prev_image(),lv.EVENT.CLICKED,None)
3435
prev_label=lv.label(self.prev_button)
3536
prev_label.set_text(lv.SYMBOL.LEFT)
36-
#self.play_button = lv.button(screen)
37-
#self.play_button.align(lv.ALIGN.BOTTOM_MID,0,0)
37+
self.play_button=lv.button(screen)
38+
self.play_button.align(lv.ALIGN.BOTTOM_MID,0,0)
39+
self.play_button.add_flag(lv.obj.FLAG.HIDDEN)
40+
self.play_button.set_style_opa(lv.OPA.TRANSP,0)
41+
#self.play_button.add_event_cb(lambda e: self.unfocus_if_not_fullscreen(),lv.EVENT.FOCUSED,None)
42+
#self.play_button.set_style_shadow_opa(lv.OPA.TRANSP, 0)
3843
#self.play_button.add_event_cb(lambda e: self.play(),lv.EVENT.CLICKED,None)
3944
#play_label = lv.label(self.play_button)
4045
#play_label.set_text(lv.SYMBOL.PLAY)
4146
self.next_button=lv.button(screen)
4247
self.next_button.align(lv.ALIGN.BOTTOM_RIGHT,0,0)
48+
#self.next_button.add_event_cb(self.print_events, lv.EVENT.ALL, None)
49+
self.next_button.add_event_cb(lambdae:self.show_next_image_if_fullscreen(),lv.EVENT.FOCUSED,None)
4350
self.next_button.add_event_cb(lambdae:self.show_next_image(),lv.EVENT.CLICKED,None)
44-
self.next_button.add_event_cb(self.print_events,lv.EVENT.ALL,None)
4551
next_label=lv.label(self.next_button)
4652
next_label.set_text(lv.SYMBOL.RIGHT)
4753
#screen.add_event_cb(self.print_events, lv.EVENT.ALL, None)
@@ -109,16 +115,42 @@ def play(self, event=None):
109115
mpos.ui.anim.smooth_show(self.label)
110116
mpos.ui.anim.smooth_show(self.prev_button)
111117
#mpos.ui.anim.smooth_show(self.play_button)
118+
self.play_button.add_flag(lv.obj.FLAG.HIDDEN)
112119
mpos.ui.anim.smooth_show(self.next_button)
113120
else:
114121
print("starting fullscreen")
115122
self.fullscreen=True
116123
mpos.ui.anim.smooth_hide(self.label)
117-
mpos.ui.anim.smooth_hide(self.prev_button)
118-
#mpos.ui.anim.smooth_hide(self.play_button)
119-
mpos.ui.anim.smooth_hide(self.next_button)
124+
mpos.ui.anim.smooth_hide(self.prev_button,hide=False)
125+
#mpos.ui.anim.smooth_hide(self.play_button, hide=False)
126+
self.play_button.remove_flag(lv.obj.FLAG.HIDDEN)
127+
mpos.ui.anim.smooth_hide(self.next_button,hide=False)
120128
self.scale_image()
121129

130+
defshow_prev_image_if_fullscreen(self,event=None):
131+
ifself.fullscreen:
132+
self.unfocus(True)
133+
self.show_prev_image()
134+
135+
defshow_next_image_if_fullscreen(self,event=None):
136+
ifself.fullscreen:
137+
self.unfocus(False)
138+
self.show_next_image()
139+
140+
defunfocus_if_not_fullscreen(self,event=None):
141+
ifnotself.fullscreen:
142+
self.unfocus(False)
143+
144+
defunfocus(self,next):
145+
group=lv.group_get_default()
146+
# This doesn't work, and group.focus_obj() is missing, so need to do this hack:
147+
#b = group.get_focused()
148+
#b.remove_state(lv.STATE.FOCUSED)
149+
ifnext:
150+
group.focus_next()
151+
else:
152+
group.focus_prev()
153+
122154
defshow_next_image(self,event=None):
123155
print("showing next image...")
124156
iflen(self.images)<1:

‎internal_filesystem/lib/mpos/ui/anim.py‎

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def show_widget(widget, anim_type="fade", duration=500, delay=0):
6767
anim.start()
6868

6969
@staticmethod
70-
defhide_widget(widget,anim_type="fade",duration=500,delay=0):
70+
defhide_widget(widget,anim_type="fade",duration=500,delay=0,hide=True):
7171
"""Hide a widget with an animation (fade or slide)."""
7272
ifanim_type=="fade":
7373
# Create fade-out animation (opacity from 255 to 0)
@@ -80,7 +80,7 @@ def hide_widget(widget, anim_type="fade", duration=500, delay=0):
8080
anim.set_custom_exec_cb(lambdaanim,value:widget.set_style_opa(value,0))
8181
anim.set_path_cb(lv.anim_t.path_ease_in_out)
8282
# Set HIDDEN flag after animation
83-
anim.set_completed_cb(lambda*args:WidgetAnimator.hide_complete_cb(widget))
83+
anim.set_completed_cb(lambda*args:WidgetAnimator.hide_complete_cb(widget,hide=hide))
8484
elifanim_type=="slide_down":
8585
# Create slide-down animation (y from original y to +height)
8686
# Seems to cause scroll bars to be added somehow if done to a keyboard at the bottom of the screen...
@@ -95,7 +95,7 @@ def hide_widget(widget, anim_type="fade", duration=500, delay=0):
9595
anim.set_custom_exec_cb(lambdaanim,value:widget.set_y(value))
9696
anim.set_path_cb(lv.anim_t.path_ease_in_out)
9797
# Set HIDDEN flag after animation
98-
anim.set_completed_cb(lambda*args:WidgetAnimator.hide_complete_cb(widget,original_y))
98+
anim.set_completed_cb(lambda*args:WidgetAnimator.hide_complete_cb(widget,original_y,hide))
9999
elifanim_type=="slide_up":
100100
print("hide with slide_up")
101101
# Create slide-up animation (y from original y to -height)
@@ -110,22 +110,23 @@ def hide_widget(widget, anim_type="fade", duration=500, delay=0):
110110
anim.set_custom_exec_cb(lambdaanim,value:widget.set_y(value))
111111
anim.set_path_cb(lv.anim_t.path_ease_in_out)
112112
# Set HIDDEN flag after animation
113-
anim.set_completed_cb(lambda*args:WidgetAnimator.hide_complete_cb(widget,original_y))
113+
anim.set_completed_cb(lambda*args:WidgetAnimator.hide_complete_cb(widget,original_y,hide))
114114

115115
# Store and start animation
116116
#self.animations[widget] = anim
117117
anim.start()
118118

119119
@staticmethod
120-
defhide_complete_cb(widget,original_y=None):
120+
defhide_complete_cb(widget,original_y=None,hide=True):
121121
#print("hide_complete_cb")
122-
widget.add_flag(lv.obj.FLAG.HIDDEN)
122+
ifhide:
123+
widget.add_flag(lv.obj.FLAG.HIDDEN)
123124
iforiginal_y:
124125
widget.set_y(original_y)# in case it shifted slightly due to rounding etc
125126

126127

127128
defsmooth_show(widget):
128129
WidgetAnimator.show_widget(widget,anim_type="fade",duration=500,delay=0)
129130

130-
defsmooth_hide(widget):
131-
WidgetAnimator.hide_widget(widget,anim_type="fade",duration=500,delay=0)
131+
defsmooth_hide(widget,hide=True):
132+
WidgetAnimator.hide_widget(widget,anim_type="fade",duration=500,delay=0,hide=hide)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp