class ImageBox(Window):
def __init__(self, layer = "UI"):
Window.__init__(self, layer)
self.eventDict={}
self.eventFunc = {"mouse_click" : None, "mouse_over_in" : None, "mouse_over_out" : None}
self.eventArgs = {"mouse_click" : None, "mouse_over_in" : None, "mouse_over_out" : None}
self.ToolTipText = None
self.overFunc = None
self.overArgs = None
self.overOutFunc = None
self.overOutArgs = None
self.showtooltipevent = None
self.showtooltiparg = None
self.hidetooltipevent = None
self.hidetooltiparg = None
def __del__(self):
Window.__del__(self)
self.eventFunc = None
self.eventArgs = None
def RegisterWindow(self, layer):
self.hWnd = wndMgr.RegisterImageBox(self, layer)
def LoadImage(self, imageName):
self.name=imageName
wndMgr.LoadImage(self.hWnd, imageName)
if len(self.eventDict)!=0:
print("LOAD IMAGE", self, self.eventDict)
def SetAlpha(self, alpha):
wndMgr.SetDiffuseColor(self.hWnd, 1.0, 1.0, 1.0, alpha)
def GetWidth(self):
return wndMgr.GetWidth(self.hWnd)
def GetHeight(self):
return wndMgr.GetHeight(self.hWnd)
def SetDiffuseColor(self, r, g, b, a):
wndMgr.SetDiffuseColor(self.hWnd, r, g, b, a)
def SAFE_SetStringEvent(self, event, func, *args):
self.eventDict[event] =__mem_func__(func)
self.eventArgs[event] = args
def SetMouseOverInEvent(self, func, *args):
self.eventDict["MOUSE_OVER_IN"] = func
self.eventArgs["MOUSE_OVER_IN"] = args
def SetOnMouseLeftButtonUpEvent(self, event, *args):
self.eventFunc["MOUSE_LEFT_BUTTON_UP"] = event
self.eventArgs["MOUSE_LEFT_BUTTON_UP"] = args
def SetMouseOverOutEvent(self, func, *args):
self.eventDict["MOUSE_OVER_OUT"] = func
self.eventArgs["MOUSE_OVER_OUT"] = args
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_click"]:
apply(self.eventFunc["mouse_click"], self.eventArgs["mouse_click"])
Window.OnMouseLeftButtonUp(self)
def OnMouseOverIn(self):
if self.eventFunc["mouse_over_in"]:
apply(self.eventFunc["mouse_over_in"], self.eventArgs["mouse_over_in"])
if self.eventDict.has_key("MOUSE_OVER_IN"):
if self.eventArgs["MOUSE_OVER_IN"]:
apply(self.eventDict["MOUSE_OVER_IN"], self.eventArgs["MOUSE_OVER_IN"])
else:
self.eventDict["MOUSE_OVER_IN"]()
def OnMouseOverOut(self):
if self.eventFunc["mouse_over_out"]:
apply(self.eventFunc["mouse_over_out"], self.eventArgs["mouse_over_out"])
if self.eventDict.has_key("MOUSE_OVER_OUT"):
if self.eventArgs["MOUSE_OVER_OUT"]:
apply(self.eventDict["MOUSE_OVER_OUT"], self.eventArgs["MOUSE_OVER_OUT"])
else:
self.eventDict["MOUSE_OVER_OUT"]()
def SetFormToolTipText(self, type, text, x, y):
if not self.ToolTipText:
toolTip = createToolTipWindowDict[type]()
toolTip.SetParent(self)
toolTip.SetSize(0, 0)
toolTip.SetHorizontalAlignCenter()
toolTip.SetOutline()
toolTip.Hide()
toolTip.SetPosition(x + self.GetWidth() / 2, y)
self.ToolTipText = toolTip
self.ToolTipText.SetText(text)
def SetToolTipWindow(self, toolTip):
self.ToolTipText=toolTip
self.ToolTipText.SetParentProxy(self)
def SetToolTipText(self, text, x=0, y = -19):
self.SetFormToolTipText("TEXT", text, x, y)
def ShowToolTip(self):
if self.ToolTipText:
self.ToolTipText.Show()
def HideToolTip(self):
if self.ToolTipText:
self.ToolTipText.Hide()
def SetShowToolTipEvent(self, func, *args):
self.showtooltipevent = func
self.showtooltiparg = args
def SetHideToolTipEvent(self, func, *args):
self.hidetooltipevent = func
self.hidetooltiparg = args
def SetScale(self, xScale, yScale):
wndMgr.SetScale(self.hWnd, xScale, yScale)