paginationButtons.py (2369B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\cosmetics\ship\pages\store\paginationButtons.py 2 import eveicon 3 from carbonui import Align, Density 4 from carbonui.button import styling 5 from carbonui.control.button import Button 6 from carbonui.primitives.containerAutoSize import ContainerAutoSize 7 from localization import GetByLabel 8 from signals import Signal 9 10 class PaginationButtons(ContainerAutoSize): 11 12 def __init__(self, pagination_controller, density = Density.NORMAL, **kw): 13 super(PaginationButtons, self).__init__(**kw) 14 self.density = density 15 self.height = styling.get_height(density) 16 self.on_page_selected = Signal('on_page_selected') 17 self.pagination_controller = pagination_controller 18 self.pagination_controller.on_page_num_changed.connect(self._on_page_num_changed) 19 self.first_page_btn = Button(name='first_page_btn', parent=self, align=Align.TOLEFT, func=self.on_first_page_btn, texturePath=eveicon.chevron_left_double, density=self.density, hint=GetByLabel('UI/Common/FirstPage')) 20 self.prev_page_btn = Button(name='first_page_btn', parent=self, align=Align.TOLEFT, func=self.on_prev_page_btn, texturePath=eveicon.chevron_left, padLeft=4, density=self.density, hint=GetByLabel('UI/Common/PreviousPage')) 21 self.next_page_btn = Button(name='next_page_btn', parent=self, align=Align.TOLEFT, func=self.on_next_page_btn, texturePath=eveicon.chevron_right, padLeft=4, density=self.density, hint=GetByLabel('UI/Common/NextPage')) 22 self.update_buttons() 23 24 def _on_page_num_changed(self, page_num): 25 self.update_buttons() 26 27 def on_prev_page_btn(self, *args): 28 self.on_page_selected(self.pagination_controller.page_num - 1) 29 30 def on_next_page_btn(self, *args): 31 self.on_page_selected(self.pagination_controller.page_num + 1) 32 33 def on_first_page_btn(self, *args): 34 self.on_page_selected(0) 35 36 def update_buttons(self): 37 if self.pagination_controller.page_num > 0: 38 self.first_page_btn.Enable() 39 self.prev_page_btn.Enable() 40 else: 41 self.first_page_btn.Disable() 42 self.prev_page_btn.Disable() 43 if self.pagination_controller.has_next_page(): 44 self.next_page_btn.Enable() 45 else: 46 self.next_page_btn.Disable()