Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ''' Is not a very great code, but is honest work. '''
- ### 0.1 Root / uiMessenger.py:
- # 1. Search:
- def OnLogin(self, groupIndex ...
- # 1. After:
- member.Online()
- self.OnRefreshList()
- # 1. Add:
- if not name in constInfo.ALREADY_NOTIFY_LIST:
- self.onlinePopup = uiCommon.OnlinePopup()
- self.onlinePopup.SetUserName(name)
- self.onlinePopup.SetEvent(ui.__mem_func__(self.OpenWhisper), "MOUSE_LEFT_BUTTON_UP", name)
- self.onlinePopup.SlideIn()
- constInfo.ALREADY_NOTIFY_LIST.append(name)
- ### 0.2 Root / constInfo.py:
- # 2. Add:
- ALREADY_NOTIFY_LIST = []
- ### 0.3 Root / ui.py
- # 3 Search:
- class Board(Window):
- (....)
- # 3 REPLACE this class with:
- class Board(Window):
- CORNER_WIDTH = 32
- CORNER_HEIGHT = 32
- LINE_WIDTH = 128
- LINE_HEIGHT = 128
- LT = 0
- LB = 1
- RT = 2
- RB = 3
- L = 0
- R = 1
- T = 2
- B = 3
- BASE_PATH = "d:/ymir work/ui/pattern"
- IMAGES = {
- 'CORNER' : {
- 0 : "Board_Corner_LeftTop",
- 1 : "Board_Corner_LeftBottom",
- 2 : "Board_Corner_RightTop",
- 3 : "Board_Corner_RightBottom"
- },
- 'BAR' : {
- 0 : "Board_Line_Left",
- 1 : "Board_Line_Right",
- 2 : "Board_Line_Top",
- 3 : "Board_Line_Bottom"
- },
- 'FILL' : "Board_Base"
- }
- def __init__(self, layer = "UI"):
- Window.__init__(self, layer)
- self.skipMaxCheck = False
- self.MakeBoard()
- def MakeBoard(self):
- CornerFileNames = [ ]
- LineFileNames = [ ]
- for imageDictKey in (['CORNER', 'BAR']):
- for x in xrange(len(self.IMAGES[imageDictKey])):
- if imageDictKey == "CORNER":
- CornerFileNames.append("%s/%s.tga" % (self.BASE_PATH, self.IMAGES[imageDictKey][x]))
- elif imageDictKey == "BAR":
- LineFileNames.append("%s/%s.tga" % (self.BASE_PATH, self.IMAGES[imageDictKey][x]))
- self.Corners = []
- for fileName in CornerFileNames:
- Corner = ExpandedImageBox()
- Corner.AddFlag("not_pick")
- Corner.LoadImage(fileName)
- Corner.SetParent(self)
- Corner.SetPosition(0, 0)
- Corner.Show()
- self.Corners.append(Corner)
- self.Lines = []
- for fileName in LineFileNames:
- Line = ExpandedImageBox()
- Line.AddFlag("not_pick")
- Line.LoadImage(fileName)
- Line.SetParent(self)
- Line.SetPosition(0, 0)
- Line.Show()
- self.Lines.append(Line)
- self.Lines[self.L].SetPosition(0, self.CORNER_HEIGHT)
- self.Lines[self.T].SetPosition(self.CORNER_WIDTH, 0)
- self.Base = ExpandedImageBox()
- self.Base.AddFlag("not_pick")
- self.Base.LoadImage("%s/%s.tga" % (self.BASE_PATH, self.IMAGES['FILL']))
- self.Base.SetParent(self)
- self.Base.SetPosition(self.CORNER_WIDTH, self.CORNER_HEIGHT)
- self.Base.Show()
- def __del__(self):
- Window.__del__(self)
- def SetSize(self, width, height):
- if not self.skipMaxCheck:
- width = max(self.CORNER_WIDTH*2, width)
- height = max(self.CORNER_HEIGHT*2, height)
- Window.SetSize(self, width, height)
- self.Corners[self.LB].SetPosition(0, height - self.CORNER_HEIGHT)
- self.Corners[self.RT].SetPosition(width - self.CORNER_WIDTH, 0)
- self.Corners[self.RB].SetPosition(width - self.CORNER_WIDTH, height - self.CORNER_HEIGHT)
- self.Lines[self.R].SetPosition(width - self.CORNER_WIDTH, self.CORNER_HEIGHT)
- self.Lines[self.B].SetPosition(self.CORNER_HEIGHT, height - self.CORNER_HEIGHT)
- verticalShowingPercentage = float((height - self.CORNER_HEIGHT*2) - self.LINE_HEIGHT) / self.LINE_HEIGHT
- horizontalShowingPercentage = float((width - self.CORNER_WIDTH*2) - self.LINE_WIDTH) / self.LINE_WIDTH
- self.Lines[self.L].SetRenderingRect(0, 0, 0, verticalShowingPercentage)
- self.Lines[self.R].SetRenderingRect(0, 0, 0, verticalShowingPercentage)
- self.Lines[self.T].SetRenderingRect(0, 0, horizontalShowingPercentage, 0)
- self.Lines[self.B].SetRenderingRect(0, 0, horizontalShowingPercentage, 0)
- if self.Base:
- self.Base.SetRenderingRect(0, 0, horizontalShowingPercentage, verticalShowingPercentage)
- # 3 AFTER CLASS BOARD ADD THIS CLASS:
- class BorderB(Board):
- CORNER_WIDTH = 16
- CORNER_HEIGHT = 16
- LINE_WIDTH = 16
- LINE_HEIGHT = 16
- BASE_PATH = "d:/ymir work/ui/pattern"
- IMAGES = {
- 'CORNER' : {
- 0 : "border_b_left_top",
- 1 : "border_b_left_bottom",
- 2 : "border_b_right_top",
- 3 : "border_b_right_bottom"
- },
- 'BAR' : {
- 0 : "border_b_left",
- 1 : "border_b_right",
- 2 : "border_b_top",
- 3 : "border_b_bottom"
- },
- 'FILL' : "border_b_center"
- }
- def __init__(self):
- Board.__init__(self)
- self.eventFunc = {
- "MOUSE_LEFT_BUTTON_UP" : None,
- }
- self.eventArgs = {
- "MOUSE_LEFT_BUTTON_UP" : None,
- }
- def __del__(self):
- Board.__del__(self)
- self.eventFunc = None
- self.eventArgs = None
- def SetSize(self, width, height):
- Board.SetSize(self, width, height)
- def SetEvent(self, func, *args) :
- result = self.eventFunc.has_key(args[0])
- if result :
- self.eventFunc[args[0]] = func
- self.eventArgs[args[0]] = args
- else :
- print "[ERROR] ui.py SetEvent, Can`t Find has_key : %s" % args[0]
- def OnMouseLeftButtonUp(self):
- if self.eventFunc["MOUSE_LEFT_BUTTON_UP"] :
- apply(self.eventFunc["MOUSE_LEFT_BUTTON_UP"], self.eventArgs["MOUSE_LEFT_BUTTON_UP"])
- ### 0.4 Root / uiCommon.py
- # 4 Add this to the end of file:
- ### (Check if you have in this file import app )
- class OnlinePopup(ui.BorderB):
- def __init__(self):
- ui.BorderB.__init__(self)
- self.isActiveSlide = False
- self.isActiveSlideOut = False
- self.endTime = 0
- self.wndWidth = 0
- self.textLine = ui.TextLine()
- self.textLine.SetParent(self)
- self.textLine.SetWindowHorizontalAlignCenter()
- self.textLine.SetWindowVerticalAlignCenter()
- self.textLine.SetHorizontalAlignCenter()
- self.textLine.SetVerticalAlignCenter()
- self.textLine.SetPosition(13, 0)
- self.textLine.Show()
- self.onlineImage = ui.ImageBox()
- self.onlineImage.SetParent(self)
- self.onlineImage.SetPosition(8, 8)
- self.onlineImage.LoadImage("d:/ymir work/ui/game/windows/messenger_list_online.sub")
- self.onlineImage.Show()
- def __del__(self):
- ui.BorderB.__del__(self)
- def SlideIn(self):
- self.SetTop()
- self.Show()
- self.isActiveSlide = True
- self.endTime = app.GetGlobalTimeStamp() + 5
- def Close(self):
- self.Hide()
- def Destroy(self):
- self.Close()
- def SetUserName(self, name):
- self.textLine.SetText("Jucatorul %s este online." % str(name))
- self.wndWidth = self.textLine.GetTextSize()[0] + 40
- self.SetSize(self.wndWidth, 25)
- self.SetPosition(-self.wndWidth, wndMgr.GetScreenHeight() - 200)
- def OnUpdate(self):
- if self.isActiveSlide and self.isActiveSlide == True:
- x, y = self.GetLocalPosition()
- if x < 0:
- self.SetPosition(x + 4, y)
- if self.endTime - app.GetGlobalTimeStamp() <= 0 and self.isActiveSlideOut == False and self.isActiveSlide == True:
- self.isActiveSlide = False
- self.isActiveSlideOut = True
- if self.isActiveSlideOut and self.isActiveSlideOut == True:
- x, y = self.GetLocalPosition()
- if x > -(self.wndWidth):
- self.SetPosition(x - 4, y)
- if x <= -(self.wndWidth):
- self.isActiveSlideOut = False
- self.Close()
- ######## Please write in topic If i forgot something. ########
Advertisement
Add Comment
Please, Sign In to add comment