NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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()