Neata. Are careva class-ul UnfoldListBox2 in ui.py ... ?
Nu o gasesc in orice svf am cautat-o pana acum :/
Mersi cui o gaseste si-mi poate da..
Cerere functie din ui.py
- SkyLine
-

- Mesaje: 2655
- Membru din: 12 Dec 2013, 23:37
- Server: Miraj2-Online
- Regat: Jinno
- Aprecieri: 520
- Mulţumiri: 987
- Discord: Copiază ID
- Contact:
- SkyLine
-

- Mesaje: 2655
- Membru din: 12 Dec 2013, 23:37
- Server: Miraj2-Online
- Regat: Jinno
- Aprecieri: 520
- Mulţumiri: 987
- Discord: Copiază ID
- Contact:
Am gasit-o, pana la urma, chiar in topicul respectiv. Pentru cine va mai avea nevoie de ea:
Cod: Selectaţi tot
class UnfoldListBox2(Window):
def __init__(self, layer = "UI"):
Window.__init__(self, layer)
self.width = 0
self.height = 0
self.basePos = 0
self.xDif = 0
self.yDif = 0
self.showObjCount = 0
self.showLineCount = 0
self.fullLineCount = 0
self.scrollPos = 0
self.objList = []
self.scrollBar = ScrollBar()
self.scrollBar.SetParent(self)
self.scrollBar.SetScrollEvent(self.OnScroll)
self.scrollBar.Hide()
def __del__(self):
Window.__del__(self)
def OnScroll(self):
import math
if self.fullLineCount <= 0 or self.showLineCount == self.fullLineCount:
self.scrollPos = 0
self.SetBasePos(0)
return
pos = self.scrollBar.GetPos()
itempos = math.floor(float(pos) / float(float(1) / float(self.fullLineCount - self.showLineCount)) + 0.001)
if itempos != self.scrollPos:
self.scrollPos = itempos
self.SetBasePos(itempos)
def SetWidth(self, width):
self.SetSize(width, self.height)
def SetSize(self, width, height):
Window.SetSize(self, width, height)
self.width = width
self.height = height
self.scrollBar.SetScrollBarSize(self.height)
self.scrollBar.SetPosition(self.width - self.scrollBar.GetWidth(), 0)
def SetXDif(self, xDif):
self.xDif = xDif
self.LocateItem()
def SetYDif(self, yDif):
self.yDif = yDif
self.LocateItem()
def SetBasePos(self, pos):
self.basePos = pos
self.LocateItem(False)
def ClearItem(self):
for obj in self.objList:
obj.Hide()
self.objList = []
self.scrollBar.SetPos(0)
def InsertItem(self, obj, doLocate = True):
obj.SetParent(self)
self.objList.append(obj)
if doLocate:
self._LocateItem()
def LocateItem(self, reloadScrollBar=True):
self._LocateItem(reloadScrollBar)
def _LocateItem(self, reloadScrollBar=True):
import math
skipCount = self.basePos
yPos = 0
xPos = 0
if reloadScrollBar:
self.showObjCount = 0
self.showLineCount = 0
self.fullLineCount = 0
if len(self.objList) > 0:
self.objPerLine = int(float(self.width-self.scrollBar.GetWidth()) / (self.objList[0].GetWidth()+self.xDif))
for obj in self.objList:
obj.Hide()
if skipCount > 0:
xPos += obj.GetWidth()+self.xDif
if xPos-self.xDif > self.width-self.scrollBar.GetWidth():
xPos = obj.GetWidth()+self.xDif
skipCount -= 1
if skipCount > 0:
continue
else:
xPos = 0
else:
continue
xPos += obj.GetWidth()+self.xDif
if xPos-self.xDif > self.width-self.scrollBar.GetWidth():
xPos = obj.GetWidth()+self.xDif
yPos += obj.GetHeight()+self.yDif
if reloadScrollBar:
if xPos-obj.GetWidth()-self.xDif == 0:
self.fullLineCount += 1
if yPos+obj.GetHeight() <= self.height:
self.showLineCount += 1
obj.SetPosition(xPos-obj.GetWidth()-self.xDif, yPos)
if yPos+obj.GetHeight() <= self.height:
self.showObjCount += 1
obj.Show()
if reloadScrollBar:
if self.showObjCount < len(self.objList):
self.scrollBar.SetMiddleBarSize(float(self.showLineCount)/self.fullLineCount)
self.scrollBar.Show()
else:
self.scrollBar.Hide()
def ArrangeItem(self):
self.SetSize(self.width, len(self.objList) * self.stepSize)
self._LocateItem()
def GetViewObjectCount(self):
return self.showObjCount
def GetObjectCount(self):
return len(self.objList)
[code/]- NewHero
-

- Mesaje: 1331
- Membru din: 24 Iun 2014, 00:44
- Server: Metin2NewHero
- Regat: Jinno
- Aprecieri: 215
- Mulţumiri: 35
- Discord: Copiază ID
- Contact:
Subiect marcat ca fiind rezolvat.
-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 3 vizitatori