expanded_card_overlay.py (4152B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\achievement_system\client\ui\window\card\expanded_card_overlay.py 2 import threadutils 3 from achievement_system.client.ui.controller.achievement_entry import AchievementEntryController 4 from achievement_system.client.ui.window.card.expanded_card import ExpandedAchievementCard 5 from achievement_system.client.ui.window.const import TRANSITION_DURATION 6 from carbonui import Align, uiconst 7 from carbonui.control.scrollContainer import ScrollContainer 8 from carbonui.primitives.container import Container 9 from carbonui.primitives.fill import Fill 10 from carbonui.uianimations import animations 11 from eve.client.script.ui import eveColor 12 from eve.client.script.ui.control.eveLoadingWheel import LoadingWheel 13 SCROLL_PADDING = 16 14 15 class AchievementCardOverlay(Container): 16 default_state = uiconst.UI_NORMAL 17 default_opacity = 0.0 18 19 def __init__(self, controller, *args, **kwargs): 20 super(AchievementCardOverlay, self).__init__(*args, **kwargs) 21 self.controller = controller 22 self.scroll_container = None 23 self.expanded_card = None 24 self.expanded_list = None 25 self.construct_layout() 26 self.update() 27 self.connect_signals() 28 29 def Close(self): 30 try: 31 self.disconnect_signals() 32 finally: 33 super(AchievementCardOverlay, self).Close() 34 35 def connect_signals(self): 36 if self.expanded_card and not self.expanded_card.destroyed: 37 self.expanded_card.on_update_complete.connect(self.on_expanded_card_update_complete) 38 self.expanded_card.on_size_changed.connect(self.on_expanded_card_size_changed) 39 if self.scroll_container and not self.scroll_container.destroyed: 40 self.scroll_container.onSizeChangeSignal.connect(self.on_scroll_container_size_changed) 41 42 def disconnect_signals(self): 43 if self.expanded_card and not self.expanded_card.destroyed: 44 self.expanded_card.on_update_complete.disconnect(self.on_expanded_card_update_complete) 45 self.expanded_card.on_size_changed.disconnect(self.on_expanded_card_size_changed) 46 if self.scroll_container and not self.scroll_container.destroyed: 47 self.scroll_container.onSizeChangeSignal.disconnect(self.on_scroll_container_size_changed) 48 49 def construct_layout(self): 50 self.loading_wheel = LoadingWheel(name='loading_wheel', parent=self, align=Align.CENTER) 51 self.scroll_container = ScrollContainer(name='scroll_container', parent=self, align=Align.HORIZONTALLY_CENTERED, width=self.scroll_container_width, opacity=0.0) 52 self.scroll_container.OnClick = self.OnClick 53 self.card_container = Container(name='card_container', parent=self.scroll_container, align=Align.CENTER, state=uiconst.UI_NORMAL, width=self.scroll_container_width - SCROLL_PADDING) 54 self.card_container.OnClick = self.OnClick 55 self.expanded_card = ExpandedAchievementCard(name='expanded_card', parent=self.card_container, align=Align.TOPLEFT, controller=self.controller) 56 Fill(parent=self, color=eveColor.BLACK, opacity=0.85) 57 58 @property 59 def scroll_container_width(self): 60 return ExpandedAchievementCard.default_width + SCROLL_PADDING 61 62 @threadutils.highlander_threaded 63 def update(self): 64 animations.FadeIn(self, duration=TRANSITION_DURATION) 65 66 def on_expanded_card_update_complete(self): 67 animations.FadeOut(self.loading_wheel, duration=TRANSITION_DURATION) 68 animations.FadeIn(self.scroll_container, duration=TRANSITION_DURATION) 69 70 def on_expanded_card_size_changed(self, width, height): 71 self.card_container.height = height 72 73 def on_scroll_container_size_changed(self, width, height): 74 self.scroll_container.onSizeChangeSignal.disconnect(self.on_scroll_container_size_changed) 75 self.scroll_container.ScrollToVertical(0.0) 76 77 def OnClick(self, *args): 78 self.state = uiconst.UI_DISABLED 79 animations.FadeOut(self, duration=TRANSITION_DURATION, callback=self.on_fade_out_complete) 80 81 def on_fade_out_complete(self, *args): 82 self.Close()