Guest User

Untitled

a guest
Apr 23rd, 2017
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 99.25 KB | None | 0 0
  1. import app
  2. import ime
  3. import grp
  4. import snd
  5. import wndMgr
  6. import item
  7. import skill
  8. import localeInfo
  9. import dbg
  10. # MARK_BUG_FIX
  11. import guild
  12. # END_OF_MARK_BUG_FIX
  13.  
  14. from _weakref import proxy
  15.  
  16. BACKGROUND_COLOR = grp.GenerateColor(0.0, 0.0, 0.0, 1.0)
  17. DARK_COLOR = grp.GenerateColor(0.2, 0.2, 0.2, 1.0)
  18. BRIGHT_COLOR = grp.GenerateColor(0.7, 0.7, 0.7, 1.0)
  19.  
  20. if localeInfo.IsCANADA():
  21. SELECT_COLOR = grp.GenerateColor(0.9, 0.03, 0.01, 0.4)
  22. else:
  23. SELECT_COLOR = grp.GenerateColor(0.0, 0.0, 0.5, 0.3)
  24.  
  25. WHITE_COLOR = grp.GenerateColor(1.0, 1.0, 1.0, 0.5)
  26. HALF_WHITE_COLOR = grp.GenerateColor(1.0, 1.0, 1.0, 0.2)
  27.  
  28. createToolTipWindowDict = {}
  29. def RegisterCandidateWindowClass(codePage, candidateWindowClass):
  30. EditLine.candidateWindowClassDict[codePage]=candidateWindowClass
  31. def RegisterToolTipWindow(type, createToolTipWindow):
  32. createToolTipWindowDict[type]=createToolTipWindow
  33.  
  34. app.SetDefaultFontName(localeInfo.UI_DEF_FONT)
  35.  
  36. ## Window Manager Event List##
  37. ##############################
  38. ## "OnMouseLeftButtonDown"
  39. ## "OnMouseLeftButtonUp"
  40. ## "OnMouseLeftButtonDoubleClick"
  41. ## "OnMouseRightButtonDown"
  42. ## "OnMouseRightButtonUp"
  43. ## "OnMouseRightButtonDoubleClick"
  44. ## "OnMouseDrag"
  45. ## "OnSetFocus"
  46. ## "OnKillFocus"
  47. ## "OnMouseOverIn"
  48. ## "OnMouseOverOut"
  49. ## "OnRender"
  50. ## "OnUpdate"
  51. ## "OnKeyDown"
  52. ## "OnKeyUp"
  53. ## "OnTop"
  54. ## "OnIMEUpdate" ## IME Only
  55. ## "OnIMETab" ## IME Only
  56. ## "OnIMEReturn" ## IME Only
  57. ##############################
  58. ## Window Manager Event List##
  59.  
  60.  
  61. class __mem_func__:
  62. class __noarg_call__:
  63. def __init__(self, cls, obj, func):
  64. self.cls=cls
  65. self.obj=proxy(obj)
  66. self.func=proxy(func)
  67.  
  68. def __call__(self, *arg):
  69. return self.func(self.obj)
  70.  
  71. class __arg_call__:
  72. def __init__(self, cls, obj, func):
  73. self.cls=cls
  74. self.obj=proxy(obj)
  75. self.func=proxy(func)
  76.  
  77. def __call__(self, *arg):
  78. return self.func(self.obj, *arg)
  79.  
  80. def __init__(self, mfunc):
  81. if mfunc.im_func.func_code.co_argcount>1:
  82. self.call=__mem_func__.__arg_call__(mfunc.im_class, mfunc.im_self, mfunc.im_func)
  83. else:
  84. self.call=__mem_func__.__noarg_call__(mfunc.im_class, mfunc.im_self, mfunc.im_func)
  85.  
  86. def __call__(self, *arg):
  87. return self.call(*arg)
  88.  
  89.  
  90. class Window(object):
  91. def NoneMethod(cls):
  92. pass
  93.  
  94. NoneMethod = classmethod(NoneMethod)
  95.  
  96. def __init__(self, layer = "UI"):
  97. self.hWnd = None
  98. self.parentWindow = 0
  99. self.onMouseLeftButtonUpEvent = None
  100. self.RegisterWindow(layer)
  101. self.Hide()
  102.  
  103. def __del__(self):
  104. wndMgr.Destroy(self.hWnd)
  105.  
  106. def RegisterWindow(self, layer):
  107. self.hWnd = wndMgr.Register(self, layer)
  108.  
  109. def Destroy(self):
  110. pass
  111.  
  112. def GetWindowHandle(self):
  113. return self.hWnd
  114.  
  115. def AddFlag(self, style):
  116. wndMgr.AddFlag(self.hWnd, style)
  117.  
  118. def IsRTL(self):
  119. return wndMgr.IsRTL(self.hWnd)
  120.  
  121. def SetWindowName(self, Name):
  122. wndMgr.SetName(self.hWnd, Name)
  123.  
  124. def GetWindowName(self):
  125. return wndMgr.GetName(self.hWnd)
  126.  
  127. def SetParent(self, parent):
  128. wndMgr.SetParent(self.hWnd, parent.hWnd)
  129.  
  130. def SetParentProxy(self, parent):
  131. self.parentWindow=proxy(parent)
  132. wndMgr.SetParent(self.hWnd, parent.hWnd)
  133.  
  134.  
  135. def GetParentProxy(self):
  136. return self.parentWindow
  137.  
  138. def SetPickAlways(self):
  139. wndMgr.SetPickAlways(self.hWnd)
  140.  
  141. def SetWindowHorizontalAlignLeft(self):
  142. wndMgr.SetWindowHorizontalAlign(self.hWnd, wndMgr.HORIZONTAL_ALIGN_LEFT)
  143.  
  144. def SetWindowHorizontalAlignCenter(self):
  145. wndMgr.SetWindowHorizontalAlign(self.hWnd, wndMgr.HORIZONTAL_ALIGN_CENTER)
  146.  
  147. def SetWindowHorizontalAlignRight(self):
  148. wndMgr.SetWindowHorizontalAlign(self.hWnd, wndMgr.HORIZONTAL_ALIGN_RIGHT)
  149.  
  150. def SetWindowVerticalAlignTop(self):
  151. wndMgr.SetWindowVerticalAlign(self.hWnd, wndMgr.VERTICAL_ALIGN_TOP)
  152.  
  153. def SetWindowVerticalAlignCenter(self):
  154. wndMgr.SetWindowVerticalAlign(self.hWnd, wndMgr.VERTICAL_ALIGN_CENTER)
  155.  
  156. def SetWindowVerticalAlignBottom(self):
  157. wndMgr.SetWindowVerticalAlign(self.hWnd, wndMgr.VERTICAL_ALIGN_BOTTOM)
  158.  
  159. def SetTop(self):
  160. wndMgr.SetTop(self.hWnd)
  161.  
  162. def Show(self):
  163. wndMgr.Show(self.hWnd)
  164.  
  165. def Hide(self):
  166. wndMgr.Hide(self.hWnd)
  167.  
  168. def Lock(self):
  169. wndMgr.Lock(self.hWnd)
  170.  
  171. def Unlock(self):
  172. wndMgr.Unlock(self.hWnd)
  173.  
  174. def IsShow(self):
  175. return wndMgr.IsShow(self.hWnd)
  176.  
  177. def UpdateRect(self):
  178. wndMgr.UpdateRect(self.hWnd)
  179.  
  180. def SetSize(self, width, height):
  181. wndMgr.SetWindowSize(self.hWnd, width, height)
  182.  
  183. def GetWidth(self):
  184. return wndMgr.GetWindowWidth(self.hWnd)
  185.  
  186. def GetHeight(self):
  187. return wndMgr.GetWindowHeight(self.hWnd)
  188.  
  189. def GetLocalPosition(self):
  190. return wndMgr.GetWindowLocalPosition(self.hWnd)
  191.  
  192. def GetGlobalPosition(self):
  193. return wndMgr.GetWindowGlobalPosition(self.hWnd)
  194.  
  195. def GetMouseLocalPosition(self):
  196. return wndMgr.GetMouseLocalPosition(self.hWnd)
  197.  
  198. def GetRect(self):
  199. return wndMgr.GetWindowRect(self.hWnd)
  200.  
  201. def SetPosition(self, x, y):
  202. wndMgr.SetWindowPosition(self.hWnd, x, y)
  203.  
  204. def SetCenterPosition(self, x = 0, y = 0):
  205. self.SetPosition((wndMgr.GetScreenWidth() - self.GetWidth()) / 2 + x, (wndMgr.GetScreenHeight() - self.GetHeight()) / 2 + y)
  206.  
  207. def IsFocus(self):
  208. return wndMgr.IsFocus(self.hWnd)
  209.  
  210. def SetFocus(self):
  211. wndMgr.SetFocus(self.hWnd)
  212.  
  213. def KillFocus(self):
  214. wndMgr.KillFocus(self.hWnd)
  215.  
  216. def GetChildCount(self):
  217. return wndMgr.GetChildCount(self.hWnd)
  218.  
  219. def IsIn(self):
  220. return wndMgr.IsIn(self.hWnd)
  221.  
  222. def SetOnMouseLeftButtonUpEvent(self, event):
  223. self.onMouseLeftButtonUpEvent = ev
  224.  
  225. def OnMouseLeftButtonUp(self):
  226. if self.onMouseLeftButtonUpEvent:
  227. self.onMouseLeftButtonUpEvent()
  228.  
  229. class ListBoxEx(Window):
  230.  
  231. class Item(Window):
  232. def __init__(self):
  233. Window.__init__(self)
  234.  
  235. def __del__(self):
  236. Window.__del__(self)
  237.  
  238. def SetParent(self, parent):
  239. Window.SetParent(self, parent)
  240. self.parent=proxy(parent)
  241.  
  242. def OnMouseLeftButtonDown(self):
  243. self.parent.SelectItem(self)
  244.  
  245. def OnRender(self):
  246. if self.parent.GetSelectedItem()==self:
  247. self.OnSelectedRender()
  248.  
  249. def OnSelectedRender(self):
  250. x, y = self.GetGlobalPosition()
  251. grp.SetColor(grp.GenerateColor(0.0, 0.0, 0.7, 0.7))
  252. grp.RenderBar(x, y, self.GetWidth(), self.GetHeight())
  253.  
  254. def __init__(self):
  255. Window.__init__(self)
  256.  
  257. self.viewItemCount=10
  258. self.basePos=0
  259. self.itemHeight=16
  260. self.itemStep=20
  261. self.selItem=0
  262. self.itemList=[]
  263. self.onSelectItemEvent = lambda *arg: None
  264.  
  265. if localeInfo.IsARABIC():
  266. self.itemWidth=130
  267. else:
  268. self.itemWidth=100
  269.  
  270. self.scrollBar=None
  271. self.__UpdateSize()
  272.  
  273. def __del__(self):
  274. Window.__del__(self)
  275.  
  276. def __UpdateSize(self):
  277. height=self.itemStep*self.__GetViewItemCount()
  278.  
  279. self.SetSize(self.itemWidth, height)
  280.  
  281. def IsEmpty(self):
  282. if len(self.itemList)==0:
  283. return 1
  284. return 0
  285.  
  286. def SetItemStep(self, itemStep):
  287. self.itemStep=itemStep
  288. self.__UpdateSize()
  289.  
  290. def SetItemSize(self, itemWidth, itemHeight):
  291. self.itemWidth=itemWidth
  292. self.itemHeight=itemHeight
  293. self.__UpdateSize()
  294.  
  295. def SetViewItemCount(self, viewItemCount):
  296. self.viewItemCount=viewItemCount
  297.  
  298. def SetSelectEvent(self, event):
  299. self.onSelectItemEvent = event
  300.  
  301. def SetBasePos(self, basePos):
  302. for oldItem in self.itemList[self.basePos:self.basePos+self.viewItemCount]:
  303. oldItem.Hide()
  304.  
  305. self.basePos=basePos
  306.  
  307. pos=basePos
  308. for newItem in self.itemList[self.basePos:self.basePos+self.viewItemCount]:
  309. (x, y)=self.GetItemViewCoord(pos, newItem.GetWidth())
  310. newItem.SetPosition(x, y)
  311. newItem.Show()
  312. pos+=1
  313.  
  314. def GetItemIndex(self, argItem):
  315. return self.itemList.index(argItem)
  316.  
  317. def GetSelectedItem(self):
  318. return self.selItem
  319.  
  320. def SelectIndex(self, index):
  321.  
  322. if index >= len(self.itemList) or index < 0:
  323. self.selItem = None
  324. return
  325.  
  326. try:
  327. self.selItem=self.itemList[index]
  328. except:
  329. pass
  330.  
  331. def SelectItem(self, selItem):
  332. self.selItem=selItem
  333. self.onSelectItemEvent(selItem)
  334.  
  335. def RemoveAllItems(self):
  336. self.selItem=None
  337. self.itemList=[]
  338.  
  339. if self.scrollBar:
  340. self.scrollBar.SetPos(0)
  341.  
  342. def RemoveItem(self, delItem):
  343. if delItem==self.selItem:
  344. self.selItem=None
  345.  
  346. self.itemList.remove(delItem)
  347.  
  348. def AppendItem(self, newItem):
  349. newItem.SetParent(self)
  350. newItem.SetSize(self.itemWidth, self.itemHeight)
  351.  
  352. pos=len(self.itemList)
  353. if self.__IsInViewRange(pos):
  354. (x, y)=self.GetItemViewCoord(pos, newItem.GetWidth())
  355. newItem.SetPosition(x, y)
  356. newItem.Show()
  357. else:
  358. newItem.Hide()
  359.  
  360. self.itemList.append(newItem)
  361.  
  362. def SetScrollBar(self, scrollBar):
  363. scrollBar.SetScrollEvent(__mem_func__(self.__OnScroll))
  364. self.scrollBar=scrollBar
  365.  
  366. def __OnScroll(self):
  367. self.SetBasePos(int(self.scrollBar.GetPos()*self.__GetScrollLen()))
  368.  
  369. def __GetScrollLen(self):
  370. scrollLen=self.__GetItemCount()-self.__GetViewItemCount()
  371. if scrollLen<0:
  372. return 0
  373.  
  374. return scrollLen
  375.  
  376. def __GetViewItemCount(self):
  377. return self.viewItemCount
  378.  
  379. def __GetItemCount(self):
  380. return len(self.itemList)
  381.  
  382. def GetItemViewCoord(self, pos, itemWidth):
  383. if localeInfo.IsARABIC():
  384. return (self.GetWidth()-itemWidth-10, (pos-self.basePos)*self.itemStep)
  385. else:
  386. return (0, (pos-self.basePos)*self.itemStep)
  387.  
  388. def __IsInViewRange(self, pos):
  389. if pos<self.basePos:
  390. return 0
  391. if pos>=self.basePos+self.viewItemCount:
  392. return 0
  393. return 1
  394.  
  395. class CandidateListBox(ListBoxEx):
  396.  
  397. HORIZONTAL_MODE = 0
  398. VERTICAL_MODE = 1
  399.  
  400. class Item(ListBoxEx.Item):
  401. def __init__(self, text):
  402. ListBoxEx.Item.__init__(self)
  403.  
  404. self.textBox=TextLine()
  405. self.textBox.SetParent(self)
  406. self.textBox.SetText(text)
  407. self.textBox.Show()
  408.  
  409. def __del__(self):
  410. ListBoxEx.Item.__del__(self)
  411.  
  412. def __init__(self, mode = HORIZONTAL_MODE):
  413. ListBoxEx.__init__(self)
  414. self.itemWidth=32
  415. self.itemHeight=32
  416. self.mode = mode
  417.  
  418. def __del__(self):
  419. ListBoxEx.__del__(self)
  420.  
  421. def SetMode(self, mode):
  422. self.mode = mode
  423.  
  424. def AppendItem(self, newItem):
  425. ListBoxEx.AppendItem(self, newItem)
  426.  
  427. def GetItemViewCoord(self, pos):
  428. if self.mode == self.HORIZONTAL_MODE:
  429. return ((pos-self.basePos)*self.itemStep, 0)
  430. elif self.mode == self.VERTICAL_MODE:
  431. return (0, (pos-self.basePos)*self.itemStep)
  432.  
  433.  
  434. class TextLine(Window):
  435. def __init__(self):
  436. Window.__init__(self)
  437. self.max = 0
  438. self.SetFontName(localeInfo.UI_DEF_FONT)
  439.  
  440. def __del__(self):
  441. Window.__del__(self)
  442.  
  443. def RegisterWindow(self, layer):
  444. self.hWnd = wndMgr.RegisterTextLine(self, layer)
  445.  
  446. def SetMax(self, max):
  447. wndMgr.SetMax(self.hWnd, max)
  448.  
  449. def SetLimitWidth(self, width):
  450. wndMgr.SetLimitWidth(self.hWnd, width)
  451.  
  452. def SetMultiLine(self):
  453. wndMgr.SetMultiLine(self.hWnd, True)
  454.  
  455. def SetHorizontalAlignArabic(self):
  456. wndMgr.SetHorizontalAlign(self.hWnd, wndMgr.TEXT_HORIZONTAL_ALIGN_ARABIC)
  457.  
  458. def SetHorizontalAlignLeft(self):
  459. wndMgr.SetHorizontalAlign(self.hWnd, wndMgr.TEXT_HORIZONTAL_ALIGN_LEFT)
  460.  
  461. def SetHorizontalAlignRight(self):
  462. wndMgr.SetHorizontalAlign(self.hWnd, wndMgr.TEXT_HORIZONTAL_ALIGN_RIGHT)
  463.  
  464. def SetHorizontalAlignCenter(self):
  465. wndMgr.SetHorizontalAlign(self.hWnd, wndMgr.TEXT_HORIZONTAL_ALIGN_CENTER)
  466.  
  467. def SetVerticalAlignTop(self):
  468. wndMgr.SetVerticalAlign(self.hWnd, wndMgr.TEXT_VERTICAL_ALIGN_TOP)
  469.  
  470. def SetVerticalAlignBottom(self):
  471. wndMgr.SetVerticalAlign(self.hWnd, wndMgr.TEXT_VERTICAL_ALIGN_BOTTOM)
  472.  
  473. def SetVerticalAlignCenter(self):
  474. wndMgr.SetVerticalAlign(self.hWnd, wndMgr.TEXT_VERTICAL_ALIGN_CENTER)
  475.  
  476. def SetSecret(self, Value=True):
  477. wndMgr.SetSecret(self.hWnd, Value)
  478.  
  479. def SetOutline(self, Value=True):
  480. wndMgr.SetOutline(self.hWnd, Value)
  481.  
  482. def SetFeather(self, value=True):
  483. wndMgr.SetFeather(self.hWnd, value)
  484.  
  485. def SetFontName(self, fontName):
  486. wndMgr.SetFontName(self.hWnd, fontName)
  487.  
  488. def SetDefaultFontName(self):
  489. wndMgr.SetFontName(self.hWnd, localeInfo.UI_DEF_FONT)
  490.  
  491. def SetFontColor(self, red, green, blue):
  492. wndMgr.SetFontColor(self.hWnd, red, green, blue)
  493.  
  494. def SetPackedFontColor(self, color):
  495. wndMgr.SetFontColor(self.hWnd, color)
  496.  
  497. def SetText(self, text):
  498. wndMgr.SetText(self.hWnd, text)
  499.  
  500. def GetText(self):
  501. return wndMgr.GetText(self.hWnd)
  502.  
  503. def GetTextSize(self):
  504. return wndMgr.GetTextSize(self.hWnd)
  505.  
  506. class EmptyCandidateWindow(Window):
  507. def __init__(self):
  508. Window.__init__(self)
  509.  
  510. def __del__(self):
  511. Window.__init__(self)
  512.  
  513. def Load(self):
  514. pass
  515.  
  516. def SetCandidatePosition(self, x, y, textCount):
  517. pass
  518.  
  519. def Clear(self):
  520. pass
  521.  
  522. def Append(self, text):
  523. pass
  524.  
  525. def Refresh(self):
  526. pass
  527.  
  528. def Select(self):
  529. pass
  530.  
  531. class EditLine(TextLine):
  532. candidateWindowClassDict = {}
  533.  
  534. def __init__(self):
  535. TextLine.__init__(self)
  536.  
  537. self.eventReturn = Window.NoneMethod
  538. self.eventEscape = Window.NoneMethod
  539. self.eventTab = None
  540. self.numberMode = False
  541. self.useIME = True
  542.  
  543. self.bCodePage = False
  544.  
  545. self.candidateWindowClass = None
  546. self.candidateWindow = None
  547. self.SetCodePage(app.GetDefaultCodePage())
  548.  
  549. self.readingWnd = ReadingWnd()
  550. self.readingWnd.Hide()
  551.  
  552. def __del__(self):
  553. TextLine.__del__(self)
  554.  
  555. self.eventReturn = Window.NoneMethod
  556. self.eventEscape = Window.NoneMethod
  557. self.eventTab = None
  558.  
  559.  
  560. def SetCodePage(self, codePage):
  561. candidateWindowClass=EditLine.candidateWindowClassDict.get(codePage, EmptyCandidateWindow)
  562. self.__SetCandidateClass(candidateWindowClass)
  563.  
  564. def __SetCandidateClass(self, candidateWindowClass):
  565. if self.candidateWindowClass==candidateWindowClass:
  566. return
  567.  
  568. self.candidateWindowClass = candidateWindowClass
  569. self.candidateWindow = self.candidateWindowClass()
  570. self.candidateWindow.Load()
  571. self.candidateWindow.Hide()
  572.  
  573. def RegisterWindow(self, layer):
  574. self.hWnd = wndMgr.RegisterTextLine(self, layer)
  575.  
  576. def SAFE_SetReturnEvent(self, event):
  577. self.eventReturn = __mem_func__(event)
  578.  
  579. def SetReturnEvent(self, event):
  580. self.eventReturn = event
  581.  
  582. def SetEscapeEvent(self, event):
  583. self.eventEscape = event
  584.  
  585. def SetTabEvent(self, event):
  586. self.eventTab = event
  587.  
  588. def SetMax(self, max):
  589. self.max = max
  590. wndMgr.SetMax(self.hWnd, self.max)
  591. ime.SetMax(self.max)
  592. self.SetUserMax(self.max)
  593.  
  594. def SetUserMax(self, max):
  595. self.userMax = max
  596. ime.SetUserMax(self.userMax)
  597.  
  598. def SetNumberMode(self):
  599. self.numberMode = True
  600.  
  601. #def AddExceptKey(self, key):
  602. # ime.AddExceptKey(key)
  603.  
  604. #def ClearExceptKey(self):
  605. # ime.ClearExceptKey()
  606.  
  607. def SetIMEFlag(self, flag):
  608. self.useIME = flag
  609.  
  610. def SetText(self, text):
  611. wndMgr.SetText(self.hWnd, text)
  612.  
  613. if self.IsFocus():
  614. ime.SetText(text)
  615.  
  616. def Enable(self):
  617. wndMgr.ShowCursor(self.hWnd)
  618.  
  619. def Disable(self):
  620. wndMgr.HideCursor(self.hWnd)
  621.  
  622. def SetEndPosition(self):
  623. ime.MoveEnd()
  624.  
  625. def OnSetFocus(self):
  626. Text = self.GetText()
  627. ime.SetText(Text)
  628. ime.SetMax(self.max)
  629. ime.SetUserMax(self.userMax)
  630. ime.SetCursorPosition(-1)
  631. if self.numberMode:
  632. ime.SetNumberMode()
  633. else:
  634. ime.SetStringMode()
  635. ime.EnableCaptureInput()
  636. if self.useIME:
  637. ime.EnableIME()
  638. else:
  639. ime.DisableIME()
  640. wndMgr.ShowCursor(self.hWnd, True)
  641.  
  642. def OnKillFocus(self):
  643. self.SetText(ime.GetText(self.bCodePage))
  644. self.OnIMECloseCandidateList()
  645. self.OnIMECloseReadingWnd()
  646. ime.DisableIME()
  647. ime.DisableCaptureInput()
  648. wndMgr.HideCursor(self.hWnd)
  649.  
  650. def OnIMEChangeCodePage(self):
  651. self.SetCodePage(ime.GetCodePage())
  652.  
  653. def OnIMEOpenCandidateList(self):
  654. self.candidateWindow.Show()
  655. self.candidateWindow.Clear()
  656. self.candidateWindow.Refresh()
  657.  
  658. gx, gy = self.GetGlobalPosition()
  659. self.candidateWindow.SetCandidatePosition(gx, gy, len(self.GetText()))
  660.  
  661. return True
  662.  
  663. def OnIMECloseCandidateList(self):
  664. self.candidateWindow.Hide()
  665. return True
  666.  
  667. def OnIMEOpenReadingWnd(self):
  668. gx, gy = self.GetGlobalPosition()
  669. textlen = len(self.GetText())-2
  670. reading = ime.GetReading()
  671. readinglen = len(reading)
  672. self.readingWnd.SetReadingPosition( gx + textlen*6-24-readinglen*6, gy )
  673. self.readingWnd.SetText(reading)
  674. if ime.GetReadingError() == 0:
  675. self.readingWnd.SetTextColor(0xffffffff)
  676. else:
  677. self.readingWnd.SetTextColor(0xffff0000)
  678. self.readingWnd.SetSize(readinglen * 6 + 4, 19)
  679. self.readingWnd.Show()
  680. return True
  681.  
  682. def OnIMECloseReadingWnd(self):
  683. self.readingWnd.Hide()
  684. return True
  685.  
  686. def OnIMEUpdate(self):
  687. snd.PlaySound("sound/ui/type.wav")
  688. TextLine.SetText(self, ime.GetText(self.bCodePage))
  689.  
  690. def OnIMETab(self):
  691. if self.eventTab:
  692. self.eventTab()
  693. return True
  694.  
  695. return False
  696.  
  697. def OnIMEReturn(self):
  698. snd.PlaySound("sound/ui/click.wav")
  699. self.eventReturn()
  700.  
  701. return True
  702.  
  703. def OnPressEscapeKey(self):
  704. self.eventEscape()
  705. return True
  706.  
  707. def OnKeyDown(self, key):
  708. if app.DIK_F1 == key:
  709. return False
  710. if app.DIK_F2 == key:
  711. return False
  712. if app.DIK_F3 == key:
  713. return False
  714. if app.DIK_F4 == key:
  715. return False
  716. if app.DIK_LALT == key:
  717. return False
  718. if app.DIK_SYSRQ == key:
  719. return False
  720. if app.DIK_LCONTROL == key:
  721. return False
  722. if app.DIK_V == key:
  723. if app.IsPressed(app.DIK_LCONTROL):
  724. ime.PasteTextFromClipBoard()
  725.  
  726. return True
  727.  
  728. def OnKeyUp(self, key):
  729. if app.DIK_F1 == key:
  730. return False
  731. if app.DIK_F2 == key:
  732. return False
  733. if app.DIK_F3 == key:
  734. return False
  735. if app.DIK_F4 == key:
  736. return False
  737. if app.DIK_LALT == key:
  738. return False
  739. if app.DIK_SYSRQ == key:
  740. return False
  741. if app.DIK_LCONTROL == key:
  742. return False
  743.  
  744. return True
  745.  
  746. def OnIMEKeyDown(self, key):
  747. # Left
  748. if app.VK_LEFT == key:
  749. ime.MoveLeft()
  750. return True
  751. # Right
  752. if app.VK_RIGHT == key:
  753. ime.MoveRight()
  754. return True
  755.  
  756. # Home
  757. if app.VK_HOME == key:
  758. ime.MoveHome()
  759. return True
  760. # End
  761. if app.VK_END == key:
  762. ime.MoveEnd()
  763. return True
  764.  
  765. # Delete
  766. if app.VK_DELETE == key:
  767. ime.Delete()
  768. TextLine.SetText(self, ime.GetText(self.bCodePage))
  769. return True
  770.  
  771. return True
  772.  
  773. #def OnMouseLeftButtonDown(self):
  774. # self.SetFocus()
  775. def OnMouseLeftButtonDown(self):
  776. if False == self.IsIn():
  777. return False
  778.  
  779. self.SetFocus()
  780. PixelPosition = wndMgr.GetCursorPosition(self.hWnd)
  781. ime.SetCursorPosition(PixelPosition)
  782.  
  783. class MarkBox(Window):
  784. def __init__(self, layer = "UI"):
  785. Window.__init__(self, layer)
  786.  
  787. def __del__(self):
  788. Window.__del__(self)
  789.  
  790. def RegisterWindow(self, layer):
  791. self.hWnd = wndMgr.RegisterMarkBox(self, layer)
  792.  
  793. def Load(self):
  794. wndMgr.MarkBox_Load(self.hWnd)
  795.  
  796. def SetScale(self, scale):
  797. wndMgr.MarkBox_SetScale(self.hWnd, scale)
  798.  
  799. def SetIndex(self, guildID):
  800. MarkID = guild.GuildIDToMarkID(guildID)
  801. wndMgr.MarkBox_SetImageFilename(self.hWnd, guild.GetMarkImageFilenameByMarkID(MarkID))
  802. wndMgr.MarkBox_SetIndex(self.hWnd, guild.GetMarkIndexByMarkID(MarkID))
  803.  
  804. def SetAlpha(self, alpha):
  805. wndMgr.MarkBox_SetDiffuseColor(self.hWnd, 1.0, 1.0, 1.0, alpha)
  806.  
  807. class ImageBox(Window):
  808. def __init__(self, layer = "UI"):
  809. Window.__init__(self, layer)
  810.  
  811. self.eventDict={}
  812.  
  813. def __del__(self):
  814. Window.__del__(self)
  815.  
  816. def RegisterWindow(self, layer):
  817. self.hWnd = wndMgr.RegisterImageBox(self, layer)
  818.  
  819. def LoadImage(self, imageName):
  820. self.name=imageName
  821. wndMgr.LoadImage(self.hWnd, imageName)
  822.  
  823. if len(self.eventDict)!=0:
  824. print "LOAD IMAGE", self, self.eventDict
  825.  
  826. def SetAlpha(self, alpha):
  827. wndMgr.SetDiffuseColor(self.hWnd, 1.0, 1.0, 1.0, alpha)
  828.  
  829. def GetWidth(self):
  830. return wndMgr.GetWidth(self.hWnd)
  831.  
  832. def GetHeight(self):
  833. return wndMgr.GetHeight(self.hWnd)
  834.  
  835. def OnMouseOverIn(self):
  836. try:
  837. self.eventDict["MOUSE_OVER_IN"]()
  838. except KeyError:
  839. pass
  840.  
  841. def OnMouseOverOut(self):
  842. try:
  843. self.eventDict["MOUSE_OVER_OUT"]()
  844. except KeyError:
  845. pass
  846.  
  847. def SAFE_SetStringEvent(self, event, func):
  848. self.eventDict[event]=__mem_func__(func)
  849.  
  850.  
  851. class ExpandedImageBox(ImageBox):
  852. def __init__(self, layer = "UI"):
  853. ImageBox.__init__(self, layer)
  854.  
  855. def __del__(self):
  856. ImageBox.__del__(self)
  857.  
  858. def RegisterWindow(self, layer):
  859. self.hWnd = wndMgr.RegisterExpandedImageBox(self, layer)
  860.  
  861. def SetScale(self, xScale, yScale):
  862. wndMgr.SetScale(self.hWnd, xScale, yScale)
  863.  
  864. def SetOrigin(self, x, y):
  865. wndMgr.SetOrigin(self.hWnd, x, y)
  866.  
  867. def SetRotation(self, rotation):
  868. wndMgr.SetRotation(self.hWnd, rotation)
  869.  
  870. def SetRenderingMode(self, mode):
  871. wndMgr.SetRenderingMode(self.hWnd, mode)
  872.  
  873. # [0.0, 1.0] »çŔĚŔÇ °Ş¸¸Ĺ­ ĆŰĽľĆ®·Î ±×¸®Áö ľĘ´Â´Ů.
  874. def SetRenderingRect(self, left, top, right, bottom):
  875. wndMgr.SetRenderingRect(self.hWnd, left, top, right, bottom)
  876.  
  877. def SetPercentage(self, curValue, maxValue):
  878. if maxValue:
  879. self.SetRenderingRect(0.0, 0.0, -1.0 + float(curValue) / float(maxValue), 0.0)
  880. else:
  881. self.SetRenderingRect(0.0, 0.0, 0.0, 0.0)
  882.  
  883. def GetWidth(self):
  884. return wndMgr.GetWindowWidth(self.hWnd)
  885.  
  886. def GetHeight(self):
  887. return wndMgr.GetWindowHeight(self.hWnd)
  888.  
  889. class AniImageBox(Window):
  890. def __init__(self, layer = "UI"):
  891. Window.__init__(self, layer)
  892.  
  893. def __del__(self):
  894. Window.__del__(self)
  895.  
  896. def RegisterWindow(self, layer):
  897. self.hWnd = wndMgr.RegisterAniImageBox(self, layer)
  898.  
  899. def SetDelay(self, delay):
  900. wndMgr.SetDelay(self.hWnd, delay)
  901.  
  902. def AppendImage(self, filename):
  903. wndMgr.AppendImage(self.hWnd, filename)
  904.  
  905. def SetPercentage(self, curValue, maxValue):
  906. wndMgr.SetRenderingRect(self.hWnd, 0.0, 0.0, -1.0 + float(curValue) / float(maxValue), 0.0)
  907.  
  908. def OnEndFrame(self):
  909. pass
  910.  
  911. class Button(Window):
  912. def __init__(self, layer = "UI"):
  913. Window.__init__(self, layer)
  914.  
  915. self.eventFunc = None
  916. self.eventArgs = None
  917.  
  918. self.ButtonText = None
  919. self.ToolTipText = None
  920.  
  921. def __del__(self):
  922. Window.__del__(self)
  923.  
  924. self.eventFunc = None
  925. self.eventArgs = None
  926.  
  927. def RegisterWindow(self, layer):
  928. self.hWnd = wndMgr.RegisterButton(self, layer)
  929.  
  930. def SetUpVisual(self, filename):
  931. wndMgr.SetUpVisual(self.hWnd, filename)
  932.  
  933. def SetOverVisual(self, filename):
  934. wndMgr.SetOverVisual(self.hWnd, filename)
  935.  
  936. def SetDownVisual(self, filename):
  937. wndMgr.SetDownVisual(self.hWnd, filename)
  938.  
  939. def SetDisableVisual(self, filename):
  940. wndMgr.SetDisableVisual(self.hWnd, filename)
  941.  
  942. def GetUpVisualFileName(self):
  943. return wndMgr.GetUpVisualFileName(self.hWnd)
  944.  
  945. def GetOverVisualFileName(self):
  946. return wndMgr.GetOverVisualFileName(self.hWnd)
  947.  
  948. def GetDownVisualFileName(self):
  949. return wndMgr.GetDownVisualFileName(self.hWnd)
  950.  
  951. def Flash(self):
  952. wndMgr.Flash(self.hWnd)
  953.  
  954. def Enable(self):
  955. wndMgr.Enable(self.hWnd)
  956.  
  957. def Disable(self):
  958. wndMgr.Disable(self.hWnd)
  959.  
  960. def Down(self):
  961. wndMgr.Down(self.hWnd)
  962.  
  963. def SetUp(self):
  964. wndMgr.SetUp(self.hWnd)
  965.  
  966. def SAFE_SetEvent(self, func, *args):
  967. self.eventFunc = __mem_func__(func)
  968. self.eventArgs = args
  969.  
  970. def SetEvent(self, func, *args):
  971. self.eventFunc = func
  972. self.eventArgs = args
  973.  
  974. def SetTextColor(self, color):
  975. if not self.ButtonText:
  976. return
  977. self.ButtonText.SetPackedFontColor(color)
  978.  
  979. def SetText(self, text, height = 4):
  980.  
  981. if not self.ButtonText:
  982. textLine = TextLine()
  983. textLine.SetParent(self)
  984. textLine.SetPosition(self.GetWidth()/2, self.GetHeight()/2)
  985. textLine.SetVerticalAlignCenter()
  986. textLine.SetHorizontalAlignCenter()
  987. textLine.Show()
  988. self.ButtonText = textLine
  989.  
  990. self.ButtonText.SetText(text)
  991. def GetText(self):
  992. if not self.ButtonText:
  993. return# ""
  994. return self.ButtonText.GetText()
  995.  
  996. def SetFormToolTipText(self, type, text, x, y):
  997. if not self.ToolTipText:
  998. toolTip=createToolTipWindowDict[type]()
  999. toolTip.SetParent(self)
  1000. toolTip.SetSize(0, 0)
  1001. toolTip.SetHorizontalAlignCenter()
  1002. toolTip.SetOutline()
  1003. toolTip.Hide()
  1004. toolTip.SetPosition(x + self.GetWidth()/2, y)
  1005. self.ToolTipText=toolTip
  1006.  
  1007. self.ToolTipText.SetText(text)
  1008.  
  1009. def SetToolTipWindow(self, toolTip):
  1010. self.ToolTipText=toolTip
  1011. self.ToolTipText.SetParentProxy(self)
  1012.  
  1013. def SetToolTipText(self, text, x=0, y = -19):
  1014. self.SetFormToolTipText("TEXT", text, x, y)
  1015.  
  1016. def CallEvent(self):
  1017. snd.PlaySound("sound/ui/click.wav")
  1018.  
  1019. if self.eventFunc:
  1020. apply(self.eventFunc, self.eventArgs)
  1021.  
  1022. def ShowToolTip(self):
  1023. if self.ToolTipText:
  1024. self.ToolTipText.Show()
  1025.  
  1026. def HideToolTip(self):
  1027. if self.ToolTipText:
  1028. self.ToolTipText.Hide()
  1029.  
  1030. def IsDown(self):
  1031. return wndMgr.IsDown(self.hWnd)
  1032.  
  1033. class RadioButton(Button):
  1034. def __init__(self):
  1035. Button.__init__(self)
  1036.  
  1037. def __del__(self):
  1038. Button.__del__(self)
  1039.  
  1040. def RegisterWindow(self, layer):
  1041. self.hWnd = wndMgr.RegisterRadioButton(self, layer)
  1042.  
  1043. class RadioButtonGroup:
  1044. def __init__(self):
  1045. self.buttonGroup = []
  1046. self.selectedBtnIdx = -1
  1047.  
  1048. def __del__(self):
  1049. for button, ue, de in self.buttonGroup:
  1050. button.__del__()
  1051.  
  1052. def Show(self):
  1053. for (button, selectEvent, unselectEvent) in self.buttonGroup:
  1054. button.Show()
  1055.  
  1056. def Hide(self):
  1057. for (button, selectEvent, unselectEvent) in self.buttonGroup:
  1058. button.Hide()
  1059.  
  1060. def SetText(self, idx, text):
  1061. if idx >= len(self.buttonGroup):
  1062. return
  1063. (button, selectEvent, unselectEvent) = self.buttonGroup[idx]
  1064. button.SetText(text)
  1065.  
  1066. def OnClick(self, btnIdx):
  1067. if btnIdx == self.selectedBtnIdx:
  1068. return
  1069. (button, selectEvent, unselectEvent) = self.buttonGroup[self.selectedBtnIdx]
  1070. if unselectEvent:
  1071. unselectEvent()
  1072. button.SetUp()
  1073.  
  1074. self.selectedBtnIdx = btnIdx
  1075. (button, selectEvent, unselectEvent) = self.buttonGroup[btnIdx]
  1076. if selectEvent:
  1077. selectEvent()
  1078.  
  1079. button.Down()
  1080.  
  1081. def AddButton(self, button, selectEvent, unselectEvent):
  1082. i = len(self.buttonGroup)
  1083. button.SetEvent(lambda : self.OnClick(i))
  1084. self.buttonGroup.append([button, selectEvent, unselectEvent])
  1085. button.SetUp()
  1086.  
  1087. def Create(rawButtonGroup):
  1088. radioGroup = RadioButtonGroup()
  1089. for (button, selectEvent, unselectEvent) in rawButtonGroup:
  1090. radioGroup.AddButton(button, selectEvent, unselectEvent)
  1091.  
  1092. radioGroup.OnClick(0)
  1093.  
  1094. return radioGroup
  1095.  
  1096. Create=staticmethod(Create)
  1097.  
  1098. class ToggleButton(Button):
  1099. def __init__(self):
  1100. Button.__init__(self)
  1101.  
  1102. self.eventUp = None
  1103. self.eventDown = None
  1104.  
  1105. def __del__(self):
  1106. Button.__del__(self)
  1107.  
  1108. self.eventUp = None
  1109. self.eventDown = None
  1110.  
  1111. def SetToggleUpEvent(self, event):
  1112. self.eventUp = event
  1113.  
  1114. def SetToggleDownEvent(self, event):
  1115. self.eventDown = event
  1116.  
  1117. def RegisterWindow(self, layer):
  1118. self.hWnd = wndMgr.RegisterToggleButton(self, layer)
  1119.  
  1120. def OnToggleUp(self):
  1121. if self.eventUp:
  1122. self.eventUp()
  1123.  
  1124. def OnToggleDown(self):
  1125. if self.eventDown:
  1126. self.eventDown()
  1127.  
  1128. class DragButton(Button):
  1129. def __init__(self):
  1130. Button.__init__(self)
  1131. self.AddFlag("movable")
  1132.  
  1133. self.callbackEnable = True
  1134. self.eventMove = lambda: None
  1135.  
  1136. def __del__(self):
  1137. Button.__del__(self)
  1138.  
  1139. self.eventMove = lambda: None
  1140.  
  1141. def RegisterWindow(self, layer):
  1142. self.hWnd = wndMgr.RegisterDragButton(self, layer)
  1143.  
  1144. def SetMoveEvent(self, event):
  1145. self.eventMove = event
  1146.  
  1147. def SetRestrictMovementArea(self, x, y, width, height):
  1148. wndMgr.SetRestrictMovementArea(self.hWnd, x, y, width, height)
  1149.  
  1150. def TurnOnCallBack(self):
  1151. self.callbackEnable = True
  1152.  
  1153. def TurnOffCallBack(self):
  1154. self.callbackEnable = False
  1155.  
  1156. def OnMove(self):
  1157. if self.callbackEnable:
  1158. self.eventMove()
  1159.  
  1160. class NumberLine(Window):
  1161.  
  1162. def __init__(self, layer = "UI"):
  1163. Window.__init__(self, layer)
  1164.  
  1165. def __del__(self):
  1166. Window.__del__(self)
  1167.  
  1168. def RegisterWindow(self, layer):
  1169. self.hWnd = wndMgr.RegisterNumberLine(self, layer)
  1170.  
  1171. def SetHorizontalAlignCenter(self):
  1172. wndMgr.SetNumberHorizontalAlignCenter(self.hWnd)
  1173.  
  1174. def SetHorizontalAlignRight(self):
  1175. wndMgr.SetNumberHorizontalAlignRight(self.hWnd)
  1176.  
  1177. def SetPath(self, path):
  1178. wndMgr.SetPath(self.hWnd, path)
  1179.  
  1180. def SetNumber(self, number):
  1181. wndMgr.SetNumber(self.hWnd, number)
  1182.  
  1183. ###################################################################################################
  1184. ## PythonScript Element
  1185. ###################################################################################################
  1186.  
  1187. class Box(Window):
  1188.  
  1189. def RegisterWindow(self, layer):
  1190. self.hWnd = wndMgr.RegisterBox(self, layer)
  1191.  
  1192. def SetColor(self, color):
  1193. wndMgr.SetColor(self.hWnd, color)
  1194.  
  1195. class Bar(Window):
  1196.  
  1197. def RegisterWindow(self, layer):
  1198. self.hWnd = wndMgr.RegisterBar(self, layer)
  1199.  
  1200. def SetColor(self, color):
  1201. wndMgr.SetColor(self.hWnd, color)
  1202.  
  1203. class Line(Window):
  1204.  
  1205. def RegisterWindow(self, layer):
  1206. self.hWnd = wndMgr.RegisterLine(self, layer)
  1207.  
  1208. def SetColor(self, color):
  1209. wndMgr.SetColor(self.hWnd, color)
  1210.  
  1211. class SlotBar(Window):
  1212.  
  1213. def __init__(self):
  1214. Window.__init__(self)
  1215.  
  1216. def RegisterWindow(self, layer):
  1217. self.hWnd = wndMgr.RegisterBar3D(self, layer)
  1218.  
  1219. ## Same with SlotBar
  1220. class Bar3D(Window):
  1221.  
  1222. def __init__(self):
  1223. Window.__init__(self)
  1224.  
  1225. def RegisterWindow(self, layer):
  1226. self.hWnd = wndMgr.RegisterBar3D(self, layer)
  1227.  
  1228. def SetColor(self, left, right, center):
  1229. wndMgr.SetColor(self.hWnd, left, right, center)
  1230.  
  1231. class SlotWindow(Window):
  1232.  
  1233. def __init__(self):
  1234. Window.__init__(self)
  1235.  
  1236. self.StartIndex = 0
  1237.  
  1238. self.eventSelectEmptySlot = None
  1239. self.eventSelectItemSlot = None
  1240. self.eventUnselectEmptySlot = None
  1241. self.eventUnselectItemSlot = None
  1242. self.eventUseSlot = None
  1243. self.eventOverInItem = None
  1244. self.eventOverOutItem = None
  1245. self.eventPressedSlotButton = None
  1246.  
  1247. def __del__(self):
  1248. Window.__del__(self)
  1249.  
  1250. self.eventSelectEmptySlot = None
  1251. self.eventSelectItemSlot = None
  1252. self.eventUnselectEmptySlot = None
  1253. self.eventUnselectItemSlot = None
  1254. self.eventUseSlot = None
  1255. self.eventOverInItem = None
  1256. self.eventOverOutItem = None
  1257. self.eventPressedSlotButton = None
  1258.  
  1259. def RegisterWindow(self, layer):
  1260. self.hWnd = wndMgr.RegisterSlotWindow(self, layer)
  1261.  
  1262. def SetSlotStyle(self, style):
  1263. wndMgr.SetSlotStyle(self.hWnd, style)
  1264.  
  1265. def HasSlot(self, slotIndex):
  1266. return wndMgr.HasSlot(self.hWnd, slotIndex)
  1267.  
  1268. def SetSlotBaseImage(self, imageFileName, r, g, b, a):
  1269. wndMgr.SetSlotBaseImage(self.hWnd, imageFileName, r, g, b, a)
  1270.  
  1271. def SetCoverButton(self,\
  1272. slotIndex,\
  1273. upName="d:/ymir work/ui/public/slot_cover_button_01.sub",\
  1274. overName="d:/ymir work/ui/public/slot_cover_button_02.sub",\
  1275. downName="d:/ymir work/ui/public/slot_cover_button_03.sub",\
  1276. disableName="d:/ymir work/ui/public/slot_cover_button_04.sub",\
  1277. LeftButtonEnable = False,\
  1278. RightButtonEnable = True):
  1279. wndMgr.SetCoverButton(self.hWnd, slotIndex, upName, overName, downName, disableName, LeftButtonEnable, RightButtonEnable)
  1280.  
  1281. def EnableCoverButton(self, slotIndex):
  1282. wndMgr.EnableCoverButton(self.hWnd, slotIndex)
  1283.  
  1284. def DisableCoverButton(self, slotIndex):
  1285. wndMgr.DisableCoverButton(self.hWnd, slotIndex)
  1286.  
  1287. def SetAlwaysRenderCoverButton(self, slotIndex, bAlwaysRender = TRUE):
  1288. wndMgr.SetAlwaysRenderCoverButton(self.hWnd, slotIndex, bAlwaysRender)
  1289.  
  1290. def AppendSlotButton(self, upName, overName, downName):
  1291. wndMgr.AppendSlotButton(self.hWnd, upName, overName, downName)
  1292.  
  1293. def ShowSlotButton(self, slotNumber):
  1294. wndMgr.ShowSlotButton(self.hWnd, slotNumber)
  1295.  
  1296. def HideAllSlotButton(self):
  1297. wndMgr.HideAllSlotButton(self.hWnd)
  1298.  
  1299. def AppendRequirementSignImage(self, filename):
  1300. wndMgr.AppendRequirementSignImage(self.hWnd, filename)
  1301.  
  1302. def ShowRequirementSign(self, slotNumber):
  1303. wndMgr.ShowRequirementSign(self.hWnd, slotNumber)
  1304.  
  1305. def HideRequirementSign(self, slotNumber):
  1306. wndMgr.HideRequirementSign(self.hWnd, slotNumber)
  1307.  
  1308. if app.ENABLE_SASH_SYSTEM:
  1309. def ActivateSlot(self, slotNumber, r = 1.0, g = 1.0, b = 1.0, a = 1.0):
  1310. wndMgr.ActivateEffect(self.hWnd, slotNumber, r, g, b, a)
  1311.  
  1312. def DeactivateSlot(self, slotNumber):
  1313. wndMgr.DeactivateEffect(self.hWnd, slotNumber)
  1314.  
  1315. def ActivateSlotOld(self, slotNumber):
  1316. wndMgr.ActivateSlot(self.hWnd, slotNumber)
  1317.  
  1318. def DeactivateSlotOld(self, slotNumber):
  1319. wndMgr.DeactivateSlot(self.hWnd, slotNumber)
  1320. else:
  1321. def ActivateSlot(self, slotNumber):
  1322. wndMgr.ActivateSlot(self.hWnd, slotNumber)
  1323.  
  1324. def DeactivateSlot(self, slotNumber):
  1325. wndMgr.DeactivateSlot(self.hWnd, slotNumber)
  1326.  
  1327. def ShowSlotBaseImage(self, slotNumber):
  1328. wndMgr.ShowSlotBaseImage(self.hWnd, slotNumber)
  1329.  
  1330. def HideSlotBaseImage(self, slotNumber):
  1331. wndMgr.HideSlotBaseImage(self.hWnd, slotNumber)
  1332.  
  1333. def SAFE_SetButtonEvent(self, button, state, event):
  1334. if "LEFT"==button:
  1335. if "EMPTY"==state:
  1336. self.eventSelectEmptySlot=__mem_func__(event)
  1337. elif "EXIST"==state:
  1338. self.eventSelectItemSlot=__mem_func__(event)
  1339. elif "ALWAYS"==state:
  1340. self.eventSelectEmptySlot=__mem_func__(event)
  1341. self.eventSelectItemSlot=__mem_func__(event)
  1342. elif "RIGHT"==button:
  1343. if "EMPTY"==state:
  1344. self.eventUnselectEmptySlot=__mem_func__(event)
  1345. elif "EXIST"==state:
  1346. self.eventUnselectItemSlot=__mem_func__(event)
  1347. elif "ALWAYS"==state:
  1348. self.eventUnselectEmptySlot=__mem_func__(event)
  1349. self.eventUnselectItemSlot=__mem_func__(event)
  1350.  
  1351. def SetSelectEmptySlotEvent(self, empty):
  1352. self.eventSelectEmptySlot = empty
  1353.  
  1354. def SetSelectItemSlotEvent(self, item):
  1355. self.eventSelectItemSlot = item
  1356.  
  1357. def SetUnselectEmptySlotEvent(self, empty):
  1358. self.eventUnselectEmptySlot = empty
  1359.  
  1360. def SetUnselectItemSlotEvent(self, item):
  1361. self.eventUnselectItemSlot = item
  1362.  
  1363. def SetUseSlotEvent(self, use):
  1364. self.eventUseSlot = use
  1365.  
  1366. def SetOverInItemEvent(self, event):
  1367. self.eventOverInItem = event
  1368.  
  1369. def SetOverOutItemEvent(self, event):
  1370. self.eventOverOutItem = event
  1371.  
  1372. def SetPressedSlotButtonEvent(self, event):
  1373. self.eventPressedSlotButton = event
  1374.  
  1375. def GetSlotCount(self):
  1376. return wndMgr.GetSlotCount(self.hWnd)
  1377.  
  1378. def SetUseMode(self, flag):
  1379. "TrueŔ϶§¸¸ ItemToItem ŔĚ °ˇ´ÉÇŃÁö ş¸ż©ÁŘ´Ů"
  1380. wndMgr.SetUseMode(self.hWnd, flag)
  1381.  
  1382. def SetUsableItem(self, flag):
  1383. "True¸é ÇöŔç °ˇ¸®Ĺ˛ ľĆŔĚĹŰŔĚ ItemToItem Ŕűżë °ˇ´ÉÇĎ´Ů"
  1384. wndMgr.SetUsableItem(self.hWnd, flag)
  1385.  
  1386. ## Slot
  1387. def SetSlotCoolTime(self, slotIndex, coolTime, elapsedTime = 0.0):
  1388. wndMgr.SetSlotCoolTime(self.hWnd, slotIndex, coolTime, elapsedTime)
  1389.  
  1390. def DisableSlot(self, slotIndex):
  1391. wndMgr.DisableSlot(self.hWnd, slotIndex)
  1392.  
  1393. def EnableSlot(self, slotIndex):
  1394. wndMgr.EnableSlot(self.hWnd, slotIndex)
  1395.  
  1396. def LockSlot(self, slotIndex):
  1397. wndMgr.LockSlot(self.hWnd, slotIndex)
  1398.  
  1399. def UnlockSlot(self, slotIndex):
  1400. wndMgr.UnlockSlot(self.hWnd, slotIndex)
  1401.  
  1402. def RefreshSlot(self):
  1403. wndMgr.RefreshSlot(self.hWnd)
  1404.  
  1405. def ClearSlot(self, slotNumber):
  1406. wndMgr.ClearSlot(self.hWnd, slotNumber)
  1407.  
  1408. def ClearAllSlot(self):
  1409. wndMgr.ClearAllSlot(self.hWnd)
  1410.  
  1411. def AppendSlot(self, index, x, y, width, height):
  1412. wndMgr.AppendSlot(self.hWnd, index, x, y, width, height)
  1413.  
  1414. def SetSlot(self, slotIndex, itemIndex, width, height, icon, diffuseColor = (1.0, 1.0, 1.0, 1.0)):
  1415. wndMgr.SetSlot(self.hWnd, slotIndex, itemIndex, width, height, icon, diffuseColor)
  1416.  
  1417. def SetSlotCount(self, slotNumber, count):
  1418. wndMgr.SetSlotCount(self.hWnd, slotNumber, count)
  1419.  
  1420. def SetSlotCountNew(self, slotNumber, grade, count):
  1421. wndMgr.SetSlotCountNew(self.hWnd, slotNumber, grade, count)
  1422.  
  1423. def SetItemSlot(self, renderingSlotNumber, ItemIndex, ItemCount = 0, diffuseColor = (1.0, 1.0, 1.0, 1.0)):
  1424. if 0 == ItemIndex or None == ItemIndex:
  1425. wndMgr.ClearSlot(self.hWnd, renderingSlotNumber)
  1426. return
  1427.  
  1428. item.SelectItem(ItemIndex)
  1429. itemIcon = item.GetIconImage()
  1430.  
  1431. item.SelectItem(ItemIndex)
  1432. (width, height) = item.GetItemSize()
  1433.  
  1434. wndMgr.SetSlot(self.hWnd, renderingSlotNumber, ItemIndex, width, height, itemIcon, diffuseColor)
  1435. wndMgr.SetSlotCount(self.hWnd, renderingSlotNumber, ItemCount)
  1436.  
  1437. def SetSkillSlot(self, renderingSlotNumber, skillIndex, skillLevel):
  1438.  
  1439. skillIcon = skill.GetIconImage(skillIndex)
  1440.  
  1441. if 0 == skillIcon:
  1442. wndMgr.ClearSlot(self.hWnd, renderingSlotNumber)
  1443. return
  1444.  
  1445. wndMgr.SetSlot(self.hWnd, renderingSlotNumber, skillIndex, 1, 1, skillIcon)
  1446. wndMgr.SetSlotCount(self.hWnd, renderingSlotNumber, skillLevel)
  1447.  
  1448. def SetSkillSlotNew(self, renderingSlotNumber, skillIndex, skillGrade, skillLevel):
  1449.  
  1450. skillIcon = skill.GetIconImageNew(skillIndex, skillGrade)
  1451.  
  1452. if 0 == skillIcon:
  1453. wndMgr.ClearSlot(self.hWnd, renderingSlotNumber)
  1454. return
  1455.  
  1456. wndMgr.SetSlot(self.hWnd, renderingSlotNumber, skillIndex, 1, 1, skillIcon)
  1457.  
  1458. def SetEmotionSlot(self, renderingSlotNumber, emotionIndex):
  1459. import player
  1460. icon = player.GetEmotionIconImage(emotionIndex)
  1461.  
  1462. if 0 == icon:
  1463. wndMgr.ClearSlot(self.hWnd, renderingSlotNumber)
  1464. return
  1465.  
  1466. wndMgr.SetSlot(self.hWnd, renderingSlotNumber, emotionIndex, 1, 1, icon)
  1467.  
  1468. ## Event
  1469. def OnSelectEmptySlot(self, slotNumber):
  1470. if self.eventSelectEmptySlot:
  1471. self.eventSelectEmptySlot(slotNumber)
  1472.  
  1473. def OnSelectItemSlot(self, slotNumber):
  1474. if self.eventSelectItemSlot:
  1475. self.eventSelectItemSlot(slotNumber)
  1476.  
  1477. def OnUnselectEmptySlot(self, slotNumber):
  1478. if self.eventUnselectEmptySlot:
  1479. self.eventUnselectEmptySlot(slotNumber)
  1480.  
  1481. def OnUnselectItemSlot(self, slotNumber):
  1482. if self.eventUnselectItemSlot:
  1483. self.eventUnselectItemSlot(slotNumber)
  1484.  
  1485. def OnUseSlot(self, slotNumber):
  1486. if self.eventUseSlot:
  1487. self.eventUseSlot(slotNumber)
  1488.  
  1489. def OnOverInItem(self, slotNumber):
  1490. if self.eventOverInItem:
  1491. self.eventOverInItem(slotNumber)
  1492.  
  1493. def OnOverOutItem(self):
  1494. if self.eventOverOutItem:
  1495. self.eventOverOutItem()
  1496.  
  1497. def OnPressedSlotButton(self, slotNumber):
  1498. if self.eventPressedSlotButton:
  1499. self.eventPressedSlotButton(slotNumber)
  1500.  
  1501. def GetStartIndex(self):
  1502. return 0
  1503.  
  1504. class GridSlotWindow(SlotWindow):
  1505.  
  1506. def __init__(self):
  1507. SlotWindow.__init__(self)
  1508.  
  1509. self.startIndex = 0
  1510.  
  1511. def __del__(self):
  1512. SlotWindow.__del__(self)
  1513.  
  1514. def RegisterWindow(self, layer):
  1515. self.hWnd = wndMgr.RegisterGridSlotWindow(self, layer)
  1516.  
  1517. def ArrangeSlot(self, StartIndex, xCount, yCount, xSize, ySize, xBlank, yBlank):
  1518.  
  1519. self.startIndex = StartIndex
  1520.  
  1521. wndMgr.ArrangeSlot(self.hWnd, StartIndex, xCount, yCount, xSize, ySize, xBlank, yBlank)
  1522. self.startIndex = StartIndex
  1523.  
  1524. def GetStartIndex(self):
  1525. return self.startIndex
  1526.  
  1527. class TitleBar(Window):
  1528.  
  1529. BLOCK_WIDTH = 32
  1530. BLOCK_HEIGHT = 23
  1531.  
  1532. def __init__(self):
  1533. Window.__init__(self)
  1534. self.AddFlag("attach")
  1535.  
  1536. def __del__(self):
  1537. Window.__del__(self)
  1538.  
  1539. def MakeTitleBar(self, width, color):
  1540.  
  1541. ## ÇöŔç Color´Â »çżëÇϰí ŔÖÁö ľĘŔ˝
  1542.  
  1543. width = max(64, width)
  1544.  
  1545. imgLeft = ImageBox()
  1546. imgCenter = ExpandedImageBox()
  1547. imgRight = ImageBox()
  1548. imgLeft.AddFlag("not_pick")
  1549. imgCenter.AddFlag("not_pick")
  1550. imgRight.AddFlag("not_pick")
  1551. imgLeft.SetParent(self)
  1552. imgCenter.SetParent(self)
  1553. imgRight.SetParent(self)
  1554.  
  1555. if localeInfo.IsARABIC():
  1556. imgLeft.LoadImage("locale/ae/ui/pattern/titlebar_left.tga")
  1557. imgCenter.LoadImage("locale/ae/ui/pattern/titlebar_center.tga")
  1558. imgRight.LoadImage("locale/ae/ui/pattern/titlebar_right.tga")
  1559. else:
  1560. imgLeft.LoadImage("d:/ymir work/ui/pattern/titlebar_left.tga")
  1561. imgCenter.LoadImage("d:/ymir work/ui/pattern/titlebar_center.tga")
  1562. imgRight.LoadImage("d:/ymir work/ui/pattern/titlebar_right.tga")
  1563.  
  1564. imgLeft.Show()
  1565. imgCenter.Show()
  1566. imgRight.Show()
  1567.  
  1568. btnClose = Button()
  1569. btnClose.SetParent(self)
  1570. btnClose.SetUpVisual("d:/ymir work/ui/public/close_button_01.sub")
  1571. btnClose.SetOverVisual("d:/ymir work/ui/public/close_button_02.sub")
  1572. btnClose.SetDownVisual("d:/ymir work/ui/public/close_button_03.sub")
  1573. btnClose.SetToolTipText(localeInfo.UI_CLOSE, 0, -23)
  1574. btnClose.Show()
  1575.  
  1576. self.imgLeft = imgLeft
  1577. self.imgCenter = imgCenter
  1578. self.imgRight = imgRight
  1579. self.btnClose = btnClose
  1580.  
  1581. self.SetWidth(width)
  1582.  
  1583. def SetWidth(self, width):
  1584. self.imgCenter.SetRenderingRect(0.0, 0.0, float((width - self.BLOCK_WIDTH*2) - self.BLOCK_WIDTH) / self.BLOCK_WIDTH, 0.0)
  1585. self.imgCenter.SetPosition(self.BLOCK_WIDTH, 0)
  1586. self.imgRight.SetPosition(width - self.BLOCK_WIDTH, 0)
  1587.  
  1588. if localeInfo.IsARABIC():
  1589. self.btnClose.SetPosition(3, 3)
  1590. else:
  1591. self.btnClose.SetPosition(width - self.btnClose.GetWidth() - 3, 3)
  1592.  
  1593. self.SetSize(width, self.BLOCK_HEIGHT)
  1594.  
  1595. def SetCloseEvent(self, event):
  1596. self.btnClose.SetEvent(event)
  1597.  
  1598. class HorizontalBar(Window):
  1599.  
  1600. BLOCK_WIDTH = 32
  1601. BLOCK_HEIGHT = 17
  1602.  
  1603. def __init__(self):
  1604. Window.__init__(self)
  1605. self.AddFlag("attach")
  1606.  
  1607. def __del__(self):
  1608. Window.__del__(self)
  1609.  
  1610. def Create(self, width):
  1611.  
  1612. width = max(96, width)
  1613.  
  1614. imgLeft = ImageBox()
  1615. imgLeft.SetParent(self)
  1616. imgLeft.AddFlag("not_pick")
  1617. imgLeft.LoadImage("d:/ymir work/ui/pattern/horizontalbar_left.tga")
  1618. imgLeft.Show()
  1619.  
  1620. imgCenter = ExpandedImageBox()
  1621. imgCenter.SetParent(self)
  1622. imgCenter.AddFlag("not_pick")
  1623. imgCenter.LoadImage("d:/ymir work/ui/pattern/horizontalbar_center.tga")
  1624. imgCenter.Show()
  1625.  
  1626. imgRight = ImageBox()
  1627. imgRight.SetParent(self)
  1628. imgRight.AddFlag("not_pick")
  1629. imgRight.LoadImage("d:/ymir work/ui/pattern/horizontalbar_right.tga")
  1630. imgRight.Show()
  1631.  
  1632. self.imgLeft = imgLeft
  1633. self.imgCenter = imgCenter
  1634. self.imgRight = imgRight
  1635. self.SetWidth(width)
  1636.  
  1637. def SetWidth(self, width):
  1638. self.imgCenter.SetRenderingRect(0.0, 0.0, float((width - self.BLOCK_WIDTH*2) - self.BLOCK_WIDTH) / self.BLOCK_WIDTH, 0.0)
  1639. self.imgCenter.SetPosition(self.BLOCK_WIDTH, 0)
  1640. self.imgRight.SetPosition(width - self.BLOCK_WIDTH, 0)
  1641. self.SetSize(width, self.BLOCK_HEIGHT)
  1642.  
  1643. class Gauge(Window):
  1644.  
  1645. SLOT_WIDTH = 16
  1646. SLOT_HEIGHT = 7
  1647.  
  1648. GAUGE_TEMPORARY_PLACE = 12
  1649. GAUGE_WIDTH = 16
  1650.  
  1651. def __init__(self):
  1652. Window.__init__(self)
  1653. self.width = 0
  1654. def __del__(self):
  1655. Window.__del__(self)
  1656.  
  1657. def MakeGauge(self, width, color):
  1658.  
  1659. self.width = max(48, width)
  1660.  
  1661. imgSlotLeft = ImageBox()
  1662. imgSlotLeft.SetParent(self)
  1663. imgSlotLeft.LoadImage("d:/ymir work/ui/pattern/gauge_slot_left.tga")
  1664. imgSlotLeft.Show()
  1665.  
  1666. imgSlotRight = ImageBox()
  1667. imgSlotRight.SetParent(self)
  1668. imgSlotRight.LoadImage("d:/ymir work/ui/pattern/gauge_slot_right.tga")
  1669. imgSlotRight.Show()
  1670. imgSlotRight.SetPosition(width - self.SLOT_WIDTH, 0)
  1671.  
  1672. imgSlotCenter = ExpandedImageBox()
  1673. imgSlotCenter.SetParent(self)
  1674. imgSlotCenter.LoadImage("d:/ymir work/ui/pattern/gauge_slot_center.tga")
  1675. imgSlotCenter.Show()
  1676. imgSlotCenter.SetRenderingRect(0.0, 0.0, float((width - self.SLOT_WIDTH*2) - self.SLOT_WIDTH) / self.SLOT_WIDTH, 0.0)
  1677. imgSlotCenter.SetPosition(self.SLOT_WIDTH, 0)
  1678.  
  1679. imgGauge = ExpandedImageBox()
  1680. imgGauge.SetParent(self)
  1681. imgGauge.LoadImage("d:/ymir work/ui/pattern/gauge_" + color + ".tga")
  1682. imgGauge.Show()
  1683. imgGauge.SetRenderingRect(0.0, 0.0, 0.0, 0.0)
  1684. imgGauge.SetPosition(self.GAUGE_TEMPORARY_PLACE, 0)
  1685.  
  1686. imgSlotLeft.AddFlag("attach")
  1687. imgSlotCenter.AddFlag("attach")
  1688. imgSlotRight.AddFlag("attach")
  1689.  
  1690. self.imgLeft = imgSlotLeft
  1691. self.imgCenter = imgSlotCenter
  1692. self.imgRight = imgSlotRight
  1693. self.imgGauge = imgGauge
  1694.  
  1695. self.SetSize(width, self.SLOT_HEIGHT)
  1696.  
  1697. def SetPercentage(self, curValue, maxValue):
  1698.  
  1699. # PERCENTAGE_MAX_VALUE_ZERO_DIVISION_ERROR
  1700. if maxValue > 0.0:
  1701. percentage = min(1.0, float(curValue)/float(maxValue))
  1702. else:
  1703. percentage = 0.0
  1704. # END_OF_PERCENTAGE_MAX_VALUE_ZERO_DIVISION_ERROR
  1705.  
  1706. gaugeSize = -1.0 + float(self.width - self.GAUGE_TEMPORARY_PLACE*2) * percentage / self.GAUGE_WIDTH
  1707. self.imgGauge.SetRenderingRect(0.0, 0.0, gaugeSize, 0.0)
  1708.  
  1709. class Board(Window):
  1710.  
  1711. CORNER_WIDTH = 32
  1712. CORNER_HEIGHT = 32
  1713. LINE_WIDTH = 128
  1714. LINE_HEIGHT = 128
  1715.  
  1716. LT = 0
  1717. LB = 1
  1718. RT = 2
  1719. RB = 3
  1720. L = 0
  1721. R = 1
  1722. T = 2
  1723. B = 3
  1724.  
  1725. def __init__(self):
  1726. Window.__init__(self)
  1727.  
  1728. self.MakeBoard("d:/ymir work/ui/pattern/Board_Corner_", "d:/ymir work/ui/pattern/Board_Line_")
  1729. self.MakeBase()
  1730.  
  1731. def MakeBoard(self, cornerPath, linePath):
  1732.  
  1733. CornerFileNames = [ cornerPath+dir+".tga" for dir in ("LeftTop", "LeftBottom", "RightTop", "RightBottom", ) ]
  1734. LineFileNames = [ linePath+dir+".tga" for dir in ("Left", "Right", "Top", "Bottom", ) ]
  1735. """
  1736. CornerFileNames = (
  1737. "d:/ymir work/ui/pattern/Board_Corner_LeftTop.tga",
  1738. "d:/ymir work/ui/pattern/Board_Corner_LeftBottom.tga",
  1739. "d:/ymir work/ui/pattern/Board_Corner_RightTop.tga",
  1740. "d:/ymir work/ui/pattern/Board_Corner_RightBottom.tga",
  1741. )
  1742. LineFileNames = (
  1743. "d:/ymir work/ui/pattern/Board_Line_Left.tga",
  1744. "d:/ymir work/ui/pattern/Board_Line_Right.tga",
  1745. "d:/ymir work/ui/pattern/Board_Line_Top.tga",
  1746. "d:/ymir work/ui/pattern/Board_Line_Bottom.tga",
  1747. )
  1748. """
  1749.  
  1750. self.Corners = []
  1751. for fileName in CornerFileNames:
  1752. Corner = ExpandedImageBox()
  1753. Corner.AddFlag("not_pick")
  1754. Corner.LoadImage(fileName)
  1755. Corner.SetParent(self)
  1756. Corner.SetPosition(0, 0)
  1757. Corner.Show()
  1758. self.Corners.append(Corner)
  1759.  
  1760. self.Lines = []
  1761. for fileName in LineFileNames:
  1762. Line = ExpandedImageBox()
  1763. Line.AddFlag("not_pick")
  1764. Line.LoadImage(fileName)
  1765. Line.SetParent(self)
  1766. Line.SetPosition(0, 0)
  1767. Line.Show()
  1768. self.Lines.append(Line)
  1769.  
  1770. self.Lines[self.L].SetPosition(0, self.CORNER_HEIGHT)
  1771. self.Lines[self.T].SetPosition(self.CORNER_WIDTH, 0)
  1772.  
  1773. def MakeBase(self):
  1774. self.Base = ExpandedImageBox()
  1775. self.Base.AddFlag("not_pick")
  1776. self.Base.LoadImage("d:/ymir work/ui/pattern/Board_Base.tga")
  1777. self.Base.SetParent(self)
  1778. self.Base.SetPosition(self.CORNER_WIDTH, self.CORNER_HEIGHT)
  1779. self.Base.Show()
  1780.  
  1781. def __del__(self):
  1782. Window.__del__(self)
  1783.  
  1784. def SetSize(self, width, height):
  1785.  
  1786. width = max(self.CORNER_WIDTH*2, width)
  1787. height = max(self.CORNER_HEIGHT*2, height)
  1788. Window.SetSize(self, width, height)
  1789.  
  1790. self.Corners[self.LB].SetPosition(0, height - self.CORNER_HEIGHT)
  1791. self.Corners[self.RT].SetPosition(width - self.CORNER_WIDTH, 0)
  1792. self.Corners[self.RB].SetPosition(width - self.CORNER_WIDTH, height - self.CORNER_HEIGHT)
  1793. self.Lines[self.R].SetPosition(width - self.CORNER_WIDTH, self.CORNER_HEIGHT)
  1794. self.Lines[self.B].SetPosition(self.CORNER_HEIGHT, height - self.CORNER_HEIGHT)
  1795.  
  1796. verticalShowingPercentage = float((height - self.CORNER_HEIGHT*2) - self.LINE_HEIGHT) / self.LINE_HEIGHT
  1797. horizontalShowingPercentage = float((width - self.CORNER_WIDTH*2) - self.LINE_WIDTH) / self.LINE_WIDTH
  1798. self.Lines[self.L].SetRenderingRect(0, 0, 0, verticalShowingPercentage)
  1799. self.Lines[self.R].SetRenderingRect(0, 0, 0, verticalShowingPercentage)
  1800. self.Lines[self.T].SetRenderingRect(0, 0, horizontalShowingPercentage, 0)
  1801. self.Lines[self.B].SetRenderingRect(0, 0, horizontalShowingPercentage, 0)
  1802.  
  1803. if self.Base:
  1804. self.Base.SetRenderingRect(0, 0, horizontalShowingPercentage, verticalShowingPercentage)
  1805.  
  1806. class BoardWithTitleBar(Board):
  1807. def __init__(self):
  1808. Board.__init__(self)
  1809.  
  1810. titleBar = TitleBar()
  1811. titleBar.SetParent(self)
  1812. titleBar.MakeTitleBar(0, "red")
  1813. titleBar.SetPosition(8, 7)
  1814. titleBar.Show()
  1815.  
  1816. titleName = TextLine()
  1817. titleName.SetParent(titleBar)
  1818. titleName.SetPosition(0, 4)
  1819. titleName.SetWindowHorizontalAlignCenter()
  1820. titleName.SetHorizontalAlignCenter()
  1821. titleName.Show()
  1822.  
  1823. self.titleBar = titleBar
  1824. self.titleName = titleName
  1825.  
  1826. self.SetCloseEvent(self.Hide)
  1827.  
  1828. def __del__(self):
  1829. Board.__del__(self)
  1830. self.titleBar = None
  1831. self.titleName = None
  1832.  
  1833. def SetSize(self, width, height):
  1834. self.titleBar.SetWidth(width - 15)
  1835. #self.pickRestrictWindow.SetSize(width, height - 30)
  1836. Board.SetSize(self, width, height)
  1837. self.titleName.UpdateRect()
  1838.  
  1839. def SetTitleColor(self, color):
  1840. self.titleName.SetPackedFontColor(color)
  1841.  
  1842. def SetTitleName(self, name):
  1843. self.titleName.SetText(name)
  1844.  
  1845. def SetCloseEvent(self, event):
  1846. self.titleBar.SetCloseEvent(event)
  1847.  
  1848. class ThinBoard(Window):
  1849.  
  1850. CORNER_WIDTH = 16
  1851. CORNER_HEIGHT = 16
  1852. LINE_WIDTH = 16
  1853. LINE_HEIGHT = 16
  1854. BOARD_COLOR = grp.GenerateColor(0.0, 0.0, 0.0, 0.51)
  1855.  
  1856. LT = 0
  1857. LB = 1
  1858. RT = 2
  1859. RB = 3
  1860. L = 0
  1861. R = 1
  1862. T = 2
  1863. B = 3
  1864.  
  1865. def __init__(self, layer = "UI"):
  1866. Window.__init__(self, layer)
  1867.  
  1868. CornerFileNames = [ "d:/ymir work/ui/pattern/ThinBoard_Corner_"+dir+".tga" for dir in ["LeftTop","LeftBottom","RightTop","RightBottom"] ]
  1869. LineFileNames = [ "d:/ymir work/ui/pattern/ThinBoard_Line_"+dir+".tga" for dir in ["Left","Right","Top","Bottom"] ]
  1870.  
  1871. self.Corners = []
  1872. for fileName in CornerFileNames:
  1873. Corner = ExpandedImageBox()
  1874. Corner.AddFlag("attach")
  1875. Corner.AddFlag("not_pick")
  1876. Corner.LoadImage(fileName)
  1877. Corner.SetParent(self)
  1878. Corner.SetPosition(0, 0)
  1879. Corner.Show()
  1880. self.Corners.append(Corner)
  1881.  
  1882. self.Lines = []
  1883. for fileName in LineFileNames:
  1884. Line = ExpandedImageBox()
  1885. Line.AddFlag("attach")
  1886. Line.AddFlag("not_pick")
  1887. Line.LoadImage(fileName)
  1888. Line.SetParent(self)
  1889. Line.SetPosition(0, 0)
  1890. Line.Show()
  1891. self.Lines.append(Line)
  1892.  
  1893. Base = Bar()
  1894. Base.SetParent(self)
  1895. Base.AddFlag("attach")
  1896. Base.AddFlag("not_pick")
  1897. Base.SetPosition(self.CORNER_WIDTH, self.CORNER_HEIGHT)
  1898. Base.SetColor(self.BOARD_COLOR)
  1899. Base.Show()
  1900. self.Base = Base
  1901.  
  1902. self.Lines[self.L].SetPosition(0, self.CORNER_HEIGHT)
  1903. self.Lines[self.T].SetPosition(self.CORNER_WIDTH, 0)
  1904.  
  1905. def __del__(self):
  1906. Window.__del__(self)
  1907.  
  1908. def SetSize(self, width, height):
  1909.  
  1910. width = max(self.CORNER_WIDTH*2, width)
  1911. height = max(self.CORNER_HEIGHT*2, height)
  1912. Window.SetSize(self, width, height)
  1913.  
  1914. self.Corners[self.LB].SetPosition(0, height - self.CORNER_HEIGHT)
  1915. self.Corners[self.RT].SetPosition(width - self.CORNER_WIDTH, 0)
  1916. self.Corners[self.RB].SetPosition(width - self.CORNER_WIDTH, height - self.CORNER_HEIGHT)
  1917. self.Lines[self.R].SetPosition(width - self.CORNER_WIDTH, self.CORNER_HEIGHT)
  1918. self.Lines[self.B].SetPosition(self.CORNER_HEIGHT, height - self.CORNER_HEIGHT)
  1919.  
  1920. verticalShowingPercentage = float((height - self.CORNER_HEIGHT*2) - self.LINE_HEIGHT) / self.LINE_HEIGHT
  1921. horizontalShowingPercentage = float((width - self.CORNER_WIDTH*2) - self.LINE_WIDTH) / self.LINE_WIDTH
  1922. self.Lines[self.L].SetRenderingRect(0, 0, 0, verticalShowingPercentage)
  1923. self.Lines[self.R].SetRenderingRect(0, 0, 0, verticalShowingPercentage)
  1924. self.Lines[self.T].SetRenderingRect(0, 0, horizontalShowingPercentage, 0)
  1925. self.Lines[self.B].SetRenderingRect(0, 0, horizontalShowingPercentage, 0)
  1926. self.Base.SetSize(width - self.CORNER_WIDTH*2, height - self.CORNER_HEIGHT*2)
  1927.  
  1928. def ShowInternal(self):
  1929. self.Base.Show()
  1930. for wnd in self.Lines:
  1931. wnd.Show()
  1932. for wnd in self.Corners:
  1933. wnd.Show()
  1934.  
  1935. def HideInternal(self):
  1936. self.Base.Hide()
  1937. for wnd in self.Lines:
  1938. wnd.Hide()
  1939. for wnd in self.Corners:
  1940. wnd.Hide()
  1941.  
  1942. class ScrollBar(Window):
  1943.  
  1944. SCROLLBAR_WIDTH = 17
  1945. SCROLLBAR_MIDDLE_HEIGHT = 9
  1946. SCROLLBAR_BUTTON_WIDTH = 17
  1947. SCROLLBAR_BUTTON_HEIGHT = 17
  1948. MIDDLE_BAR_POS = 5
  1949. MIDDLE_BAR_UPPER_PLACE = 3
  1950. MIDDLE_BAR_DOWNER_PLACE = 4
  1951. TEMP_SPACE = MIDDLE_BAR_UPPER_PLACE + MIDDLE_BAR_DOWNER_PLACE
  1952.  
  1953. class MiddleBar(DragButton):
  1954. def __init__(self):
  1955. DragButton.__init__(self)
  1956. self.AddFlag("movable")
  1957. #self.AddFlag("restrict_x")
  1958.  
  1959. def MakeImage(self):
  1960. top = ImageBox()
  1961. top.SetParent(self)
  1962. top.LoadImage("d:/ymir work/ui/pattern/ScrollBar_Top.tga")
  1963. top.SetPosition(0, 0)
  1964. top.AddFlag("not_pick")
  1965. top.Show()
  1966. bottom = ImageBox()
  1967. bottom.SetParent(self)
  1968. bottom.LoadImage("d:/ymir work/ui/pattern/ScrollBar_Bottom.tga")
  1969. bottom.AddFlag("not_pick")
  1970. bottom.Show()
  1971.  
  1972. middle = ExpandedImageBox()
  1973. middle.SetParent(self)
  1974. middle.LoadImage("d:/ymir work/ui/pattern/ScrollBar_Middle.tga")
  1975. middle.SetPosition(0, 4)
  1976. middle.AddFlag("not_pick")
  1977. middle.Show()
  1978.  
  1979. self.top = top
  1980. self.bottom = bottom
  1981. self.middle = middle
  1982.  
  1983. def SetSize(self, height):
  1984. height = max(12, height)
  1985. DragButton.SetSize(self, 10, height)
  1986. self.bottom.SetPosition(0, height-4)
  1987.  
  1988. height -= 4*3
  1989. self.middle.SetRenderingRect(0, 0, 0, float(height)/4.0)
  1990.  
  1991. def __init__(self):
  1992. Window.__init__(self)
  1993.  
  1994. self.pageSize = 1
  1995. self.curPos = 0.0
  1996. self.eventScroll = lambda *arg: None
  1997. self.lockFlag = False
  1998. self.scrollStep = 0.20
  1999.  
  2000.  
  2001. self.CreateScrollBar()
  2002.  
  2003. def __del__(self):
  2004. Window.__del__(self)
  2005.  
  2006. def CreateScrollBar(self):
  2007. barSlot = Bar3D()
  2008. barSlot.SetParent(self)
  2009. barSlot.AddFlag("not_pick")
  2010. barSlot.Show()
  2011.  
  2012. middleBar = self.MiddleBar()
  2013. middleBar.SetParent(self)
  2014. middleBar.SetMoveEvent(__mem_func__(self.OnMove))
  2015. middleBar.Show()
  2016. middleBar.MakeImage()
  2017. middleBar.SetSize(12)
  2018.  
  2019. upButton = Button()
  2020. upButton.SetParent(self)
  2021. upButton.SetEvent(__mem_func__(self.OnUp))
  2022. upButton.SetUpVisual("d:/ymir work/ui/public/scrollbar_up_button_01.sub")
  2023. upButton.SetOverVisual("d:/ymir work/ui/public/scrollbar_up_button_02.sub")
  2024. upButton.SetDownVisual("d:/ymir work/ui/public/scrollbar_up_button_03.sub")
  2025. upButton.Show()
  2026.  
  2027. downButton = Button()
  2028. downButton.SetParent(self)
  2029. downButton.SetEvent(__mem_func__(self.OnDown))
  2030. downButton.SetUpVisual("d:/ymir work/ui/public/scrollbar_down_button_01.sub")
  2031. downButton.SetOverVisual("d:/ymir work/ui/public/scrollbar_down_button_02.sub")
  2032. downButton.SetDownVisual("d:/ymir work/ui/public/scrollbar_down_button_03.sub")
  2033. downButton.Show()
  2034.  
  2035. self.upButton = upButton
  2036. self.downButton = downButton
  2037. self.middleBar = middleBar
  2038. self.barSlot = barSlot
  2039.  
  2040. self.SCROLLBAR_WIDTH = self.upButton.GetWidth()
  2041. self.SCROLLBAR_MIDDLE_HEIGHT = self.middleBar.GetHeight()
  2042. self.SCROLLBAR_BUTTON_WIDTH = self.upButton.GetWidth()
  2043. self.SCROLLBAR_BUTTON_HEIGHT = self.upButton.GetHeight()
  2044.  
  2045. def Destroy(self):
  2046. self.middleBar = None
  2047. self.upButton = None
  2048. self.downButton = None
  2049. self.eventScroll = lambda *arg: None
  2050.  
  2051. def SetScrollEvent(self, event):
  2052. self.eventScroll = event
  2053.  
  2054. def SetMiddleBarSize(self, pageScale):
  2055. realHeight = self.GetHeight() - self.SCROLLBAR_BUTTON_HEIGHT*2
  2056. self.SCROLLBAR_MIDDLE_HEIGHT = int(pageScale * float(realHeight))
  2057. self.middleBar.SetSize(self.SCROLLBAR_MIDDLE_HEIGHT)
  2058. self.pageSize = (self.GetHeight() - self.SCROLLBAR_BUTTON_HEIGHT*2) - self.SCROLLBAR_MIDDLE_HEIGHT - (self.TEMP_SPACE)
  2059.  
  2060. def SetScrollBarSize(self, height):
  2061. self.pageSize = (height - self.SCROLLBAR_BUTTON_HEIGHT*2) - self.SCROLLBAR_MIDDLE_HEIGHT - (self.TEMP_SPACE)
  2062. self.SetSize(self.SCROLLBAR_WIDTH, height)
  2063. self.upButton.SetPosition(0, 0)
  2064. self.downButton.SetPosition(0, height - self.SCROLLBAR_BUTTON_HEIGHT)
  2065. self.middleBar.SetRestrictMovementArea(self.MIDDLE_BAR_POS, self.SCROLLBAR_BUTTON_HEIGHT + self.MIDDLE_BAR_UPPER_PLACE, self.MIDDLE_BAR_POS+2, height - self.SCROLLBAR_BUTTON_HEIGHT*2 - self.TEMP_SPACE)
  2066. self.middleBar.SetPosition(self.MIDDLE_BAR_POS, 0)
  2067.  
  2068. self.UpdateBarSlot()
  2069.  
  2070. def UpdateBarSlot(self):
  2071. self.barSlot.SetPosition(0, self.SCROLLBAR_BUTTON_HEIGHT)
  2072. self.barSlot.SetSize(self.GetWidth() - 2, self.GetHeight() - self.SCROLLBAR_BUTTON_HEIGHT*2 - 2)
  2073.  
  2074. def GetPos(self):
  2075. return self.curPos
  2076.  
  2077. def SetPos(self, pos):
  2078. pos = max(0.0, pos)
  2079. pos = min(1.0, pos)
  2080.  
  2081. newPos = float(self.pageSize) * pos
  2082. self.middleBar.SetPosition(self.MIDDLE_BAR_POS, int(newPos) + self.SCROLLBAR_BUTTON_HEIGHT + self.MIDDLE_BAR_UPPER_PLACE)
  2083. self.OnMove()
  2084.  
  2085. def SetScrollStep(self, step):
  2086. self.scrollStep = step
  2087.  
  2088. def GetScrollStep(self):
  2089. return self.scrollStep
  2090.  
  2091. def OnUp(self):
  2092. self.SetPos(self.curPos-self.scrollStep)
  2093.  
  2094. def OnDown(self):
  2095. self.SetPos(self.curPos+self.scrollStep)
  2096.  
  2097. def OnMove(self):
  2098.  
  2099. if self.lockFlag:
  2100. return
  2101.  
  2102. if 0 == self.pageSize:
  2103. return
  2104.  
  2105. (xLocal, yLocal) = self.middleBar.GetLocalPosition()
  2106. self.curPos = float(yLocal - self.SCROLLBAR_BUTTON_HEIGHT - self.MIDDLE_BAR_UPPER_PLACE) / float(self.pageSize)
  2107.  
  2108. self.eventScroll()
  2109.  
  2110. def OnMouseLeftButtonDown(self):
  2111. (xMouseLocalPosition, yMouseLocalPosition) = self.GetMouseLocalPosition()
  2112. pickedPos = yMouseLocalPosition - self.SCROLLBAR_BUTTON_HEIGHT - self.SCROLLBAR_MIDDLE_HEIGHT/2
  2113. newPos = float(pickedPos) / float(self.pageSize)
  2114. self.SetPos(newPos)
  2115.  
  2116. def LockScroll(self):
  2117. self.lockFlag = True
  2118.  
  2119. def UnlockScroll(self):
  2120. self.lockFlag = False
  2121.  
  2122. class ThinScrollBar(ScrollBar):
  2123.  
  2124. def CreateScrollBar(self):
  2125. middleBar = self.MiddleBar()
  2126. middleBar.SetParent(self)
  2127. middleBar.SetMoveEvent(__mem_func__(self.OnMove))
  2128. middleBar.Show()
  2129. middleBar.SetUpVisual("d:/ymir work/ui/public/scrollbar_thin_middle_button_01.sub")
  2130. middleBar.SetOverVisual("d:/ymir work/ui/public/scrollbar_thin_middle_button_02.sub")
  2131. middleBar.SetDownVisual("d:/ymir work/ui/public/scrollbar_thin_middle_button_03.sub")
  2132.  
  2133. upButton = Button()
  2134. upButton.SetParent(self)
  2135. upButton.SetUpVisual("d:/ymir work/ui/public/scrollbar_thin_up_button_01.sub")
  2136. upButton.SetOverVisual("d:/ymir work/ui/public/scrollbar_thin_up_button_02.sub")
  2137. upButton.SetDownVisual("d:/ymir work/ui/public/scrollbar_thin_up_button_03.sub")
  2138. upButton.SetEvent(__mem_func__(self.OnUp))
  2139. upButton.Show()
  2140.  
  2141. downButton = Button()
  2142. downButton.SetParent(self)
  2143. downButton.SetUpVisual("d:/ymir work/ui/public/scrollbar_thin_down_button_01.sub")
  2144. downButton.SetOverVisual("d:/ymir work/ui/public/scrollbar_thin_down_button_02.sub")
  2145. downButton.SetDownVisual("d:/ymir work/ui/public/scrollbar_thin_down_button_03.sub")
  2146. downButton.SetEvent(__mem_func__(self.OnDown))
  2147. downButton.Show()
  2148.  
  2149. self.middleBar = middleBar
  2150. self.upButton = upButton
  2151. self.downButton = downButton
  2152.  
  2153. self.SCROLLBAR_WIDTH = self.upButton.GetWidth()
  2154. self.SCROLLBAR_MIDDLE_HEIGHT = self.middleBar.GetHeight()
  2155. self.SCROLLBAR_BUTTON_WIDTH = self.upButton.GetWidth()
  2156. self.SCROLLBAR_BUTTON_HEIGHT = self.upButton.GetHeight()
  2157. self.MIDDLE_BAR_POS = 0
  2158. self.MIDDLE_BAR_UPPER_PLACE = 0
  2159. self.MIDDLE_BAR_DOWNER_PLACE = 0
  2160. self.TEMP_SPACE = 0
  2161.  
  2162. def UpdateBarSlot(self):
  2163. pass
  2164.  
  2165. class SmallThinScrollBar(ScrollBar):
  2166.  
  2167. def CreateScrollBar(self):
  2168. middleBar = self.MiddleBar()
  2169. middleBar.SetParent(self)
  2170. middleBar.SetMoveEvent(__mem_func__(self.OnMove))
  2171. middleBar.Show()
  2172. middleBar.SetUpVisual("d:/ymir work/ui/public/scrollbar_small_thin_middle_button_01.sub")
  2173. middleBar.SetOverVisual("d:/ymir work/ui/public/scrollbar_small_thin_middle_button_01.sub")
  2174. middleBar.SetDownVisual("d:/ymir work/ui/public/scrollbar_small_thin_middle_button_01.sub")
  2175.  
  2176. upButton = Button()
  2177. upButton.SetParent(self)
  2178. upButton.SetUpVisual("d:/ymir work/ui/public/scrollbar_small_thin_up_button_01.sub")
  2179. upButton.SetOverVisual("d:/ymir work/ui/public/scrollbar_small_thin_up_button_02.sub")
  2180. upButton.SetDownVisual("d:/ymir work/ui/public/scrollbar_small_thin_up_button_03.sub")
  2181. upButton.SetEvent(__mem_func__(self.OnUp))
  2182. upButton.Show()
  2183.  
  2184. downButton = Button()
  2185. downButton.SetParent(self)
  2186. downButton.SetUpVisual("d:/ymir work/ui/public/scrollbar_small_thin_down_button_01.sub")
  2187. downButton.SetOverVisual("d:/ymir work/ui/public/scrollbar_small_thin_down_button_02.sub")
  2188. downButton.SetDownVisual("d:/ymir work/ui/public/scrollbar_small_thin_down_button_03.sub")
  2189. downButton.SetEvent(__mem_func__(self.OnDown))
  2190. downButton.Show()
  2191.  
  2192. self.middleBar = middleBar
  2193. self.upButton = upButton
  2194. self.downButton = downButton
  2195.  
  2196. self.SCROLLBAR_WIDTH = self.upButton.GetWidth()
  2197. self.SCROLLBAR_MIDDLE_HEIGHT = self.middleBar.GetHeight()
  2198. self.SCROLLBAR_BUTTON_WIDTH = self.upButton.GetWidth()
  2199. self.SCROLLBAR_BUTTON_HEIGHT = self.upButton.GetHeight()
  2200. self.MIDDLE_BAR_POS = 0
  2201. self.MIDDLE_BAR_UPPER_PLACE = 0
  2202. self.MIDDLE_BAR_DOWNER_PLACE = 0
  2203. self.TEMP_SPACE = 0
  2204.  
  2205. def UpdateBarSlot(self):
  2206. pass
  2207.  
  2208. class SliderBar(Window):
  2209.  
  2210. def __init__(self):
  2211. Window.__init__(self)
  2212.  
  2213. self.curPos = 1.0
  2214. self.pageSize = 1.0
  2215. self.eventChange = None
  2216.  
  2217. self.__CreateBackGroundImage()
  2218. self.__CreateCursor()
  2219.  
  2220. def __del__(self):
  2221. Window.__del__(self)
  2222.  
  2223. def __CreateBackGroundImage(self):
  2224. img = ImageBox()
  2225. img.SetParent(self)
  2226. img.LoadImage("d:/ymir work/ui/game/windows/sliderbar.sub")
  2227. img.Show()
  2228. self.backGroundImage = img
  2229.  
  2230. ##
  2231. self.SetSize(self.backGroundImage.GetWidth(), self.backGroundImage.GetHeight())
  2232.  
  2233. def __CreateCursor(self):
  2234. cursor = DragButton()
  2235. cursor.AddFlag("movable")
  2236. cursor.AddFlag("restrict_y")
  2237. cursor.SetParent(self)
  2238. cursor.SetMoveEvent(__mem_func__(self.__OnMove))
  2239. cursor.SetUpVisual("d:/ymir work/ui/game/windows/sliderbar_cursor.sub")
  2240. cursor.SetOverVisual("d:/ymir work/ui/game/windows/sliderbar_cursor.sub")
  2241. cursor.SetDownVisual("d:/ymir work/ui/game/windows/sliderbar_cursor.sub")
  2242. cursor.Show()
  2243. self.cursor = cursor
  2244.  
  2245. ##
  2246. self.cursor.SetRestrictMovementArea(0, 0, self.backGroundImage.GetWidth(), 0)
  2247. self.pageSize = self.backGroundImage.GetWidth() - self.cursor.GetWidth()
  2248.  
  2249. def __OnMove(self):
  2250. (xLocal, yLocal) = self.cursor.GetLocalPosition()
  2251. self.curPos = float(xLocal) / float(self.pageSize)
  2252.  
  2253. if self.eventChange:
  2254. self.eventChange()
  2255.  
  2256. def SetSliderPos(self, pos):
  2257. self.curPos = pos
  2258. self.cursor.SetPosition(int(self.pageSize * pos), 0)
  2259.  
  2260. def GetSliderPos(self):
  2261. return self.curPos
  2262.  
  2263. def SetEvent(self, event):
  2264. self.eventChange = event
  2265.  
  2266. def Enable(self):
  2267. self.cursor.Show()
  2268.  
  2269. def Disable(self):
  2270. self.cursor.Hide()
  2271.  
  2272. class ListBox(Window):
  2273.  
  2274. TEMPORARY_PLACE = 3
  2275.  
  2276. def __init__(self, layer = "UI"):
  2277. Window.__init__(self, layer)
  2278. self.overLine = -1
  2279. self.selectedLine = -1
  2280. self.width = 0
  2281. self.height = 0
  2282. self.stepSize = 17
  2283. self.basePos = 0
  2284. self.showLineCount = 0
  2285. self.itemCenterAlign = True
  2286. self.itemList = []
  2287. self.keyDict = {}
  2288. self.textDict = {}
  2289. self.event = lambda *arg: None
  2290. def __del__(self):
  2291. Window.__del__(self)
  2292.  
  2293. def SetWidth(self, width):
  2294. self.SetSize(width, self.height)
  2295.  
  2296. def SetSize(self, width, height):
  2297. Window.SetSize(self, width, height)
  2298. self.width = width
  2299. self.height = height
  2300.  
  2301. def SetTextCenterAlign(self, flag):
  2302. self.itemCenterAlign = flag
  2303.  
  2304. def SetBasePos(self, pos):
  2305. self.basePos = pos
  2306. self._LocateItem()
  2307.  
  2308. def ClearItem(self):
  2309. self.keyDict = {}
  2310. self.textDict = {}
  2311. self.itemList = []
  2312. self.overLine = -1
  2313. self.selectedLine = -1
  2314.  
  2315. def InsertItem(self, number, text):
  2316. self.keyDict[len(self.itemList)] = number
  2317. self.textDict[len(self.itemList)] = text
  2318.  
  2319. textLine = TextLine()
  2320. textLine.SetParent(self)
  2321. textLine.SetText(text)
  2322. textLine.Show()
  2323.  
  2324. if self.itemCenterAlign:
  2325. textLine.SetWindowHorizontalAlignCenter()
  2326. textLine.SetHorizontalAlignCenter()
  2327.  
  2328. self.itemList.append(textLine)
  2329.  
  2330. self._LocateItem()
  2331.  
  2332. def ChangeItem(self, number, text):
  2333. for key, value in self.keyDict.items():
  2334. if value == number:
  2335. self.textDict[key] = text
  2336.  
  2337. if number < len(self.itemList):
  2338. self.itemList[key].SetText(text)
  2339.  
  2340. return
  2341.  
  2342. def LocateItem(self):
  2343. self._LocateItem()
  2344.  
  2345. def _LocateItem(self):
  2346.  
  2347. skipCount = self.basePos
  2348. yPos = 0
  2349. self.showLineCount = 0
  2350.  
  2351. for textLine in self.itemList:
  2352. textLine.Hide()
  2353.  
  2354. if skipCount > 0:
  2355. skipCount -= 1
  2356. continue
  2357.  
  2358. if localeInfo.IsARABIC():
  2359. w, h = textLine.GetTextSize()
  2360. textLine.SetPosition(w+10, yPos + 3)
  2361. else:
  2362. textLine.SetPosition(0, yPos + 3)
  2363.  
  2364. yPos += self.stepSize
  2365.  
  2366. if yPos <= self.GetHeight():
  2367. self.showLineCount += 1
  2368. textLine.Show()
  2369.  
  2370. def ArrangeItem(self):
  2371. self.SetSize(self.width, len(self.itemList) * self.stepSize)
  2372. self._LocateItem()
  2373.  
  2374. def GetViewItemCount(self):
  2375. return int(self.GetHeight() / self.stepSize)
  2376.  
  2377. def GetItemCount(self):
  2378. return len(self.itemList)
  2379.  
  2380. def SetEvent(self, event):
  2381. self.event = event
  2382.  
  2383. def SelectItem(self, line):
  2384.  
  2385. if not self.keyDict.has_key(line):
  2386. return
  2387.  
  2388. if line == self.selectedLine:
  2389. return
  2390.  
  2391. self.selectedLine = line
  2392. self.event(self.keyDict.get(line, 0), self.textDict.get(line, "None"))
  2393.  
  2394. def GetSelectedItem(self):
  2395. return self.keyDict.get(self.selectedLine, 0)
  2396.  
  2397. def OnMouseLeftButtonDown(self):
  2398. if self.overLine < 0:
  2399. return
  2400.  
  2401. def OnMouseLeftButtonUp(self):
  2402. if self.overLine >= 0:
  2403. self.SelectItem(self.overLine+self.basePos)
  2404.  
  2405. def OnUpdate(self):
  2406.  
  2407. self.overLine = -1
  2408.  
  2409. if self.IsIn():
  2410. x, y = self.GetGlobalPosition()
  2411. height = self.GetHeight()
  2412. xMouse, yMouse = wndMgr.GetMousePosition()
  2413.  
  2414. if yMouse - y < height - 1:
  2415. self.overLine = (yMouse - y) / self.stepSize
  2416.  
  2417. if self.overLine < 0:
  2418. self.overLine = -1
  2419. if self.overLine >= len(self.itemList):
  2420. self.overLine = -1
  2421.  
  2422. def OnRender(self):
  2423. xRender, yRender = self.GetGlobalPosition()
  2424. yRender -= self.TEMPORARY_PLACE
  2425. widthRender = self.width
  2426. heightRender = self.height + self.TEMPORARY_PLACE*2
  2427.  
  2428. if localeInfo.IsCIBN10:
  2429. if -1 != self.overLine and self.keyDict[self.overLine] != -1:
  2430. grp.SetColor(HALF_WHITE_COLOR)
  2431. grp.RenderBar(xRender + 2, yRender + self.overLine*self.stepSize + 4, self.width - 3, self.stepSize)
  2432.  
  2433. if -1 != self.selectedLine and self.keyDict[self.selectedLine] != -1:
  2434. if self.selectedLine >= self.basePos:
  2435. if self.selectedLine - self.basePos < self.showLineCount:
  2436. grp.SetColor(SELECT_COLOR)
  2437. grp.RenderBar(xRender + 2, yRender + (self.selectedLine-self.basePos)*self.stepSize + 4, self.width - 3, self.stepSize)
  2438.  
  2439. else:
  2440. if -1 != self.overLine:
  2441. grp.SetColor(HALF_WHITE_COLOR)
  2442. grp.RenderBar(xRender + 2, yRender + self.overLine*self.stepSize + 4, self.width - 3, self.stepSize)
  2443.  
  2444. if -1 != self.selectedLine:
  2445. if self.selectedLine >= self.basePos:
  2446. if self.selectedLine - self.basePos < self.showLineCount:
  2447. grp.SetColor(SELECT_COLOR)
  2448. grp.RenderBar(xRender + 2, yRender + (self.selectedLine-self.basePos)*self.stepSize + 4, self.width - 3, self.stepSize)
  2449.  
  2450.  
  2451.  
  2452. class ListBox2(ListBox):
  2453. def __init__(self, *args, **kwargs):
  2454. ListBox.__init__(self, *args, **kwargs)
  2455. self.rowCount = 10
  2456. self.barWidth = 0
  2457. self.colCount = 0
  2458.  
  2459. def SetRowCount(self, rowCount):
  2460. self.rowCount = rowCount
  2461.  
  2462. def SetSize(self, width, height):
  2463. ListBox.SetSize(self, width, height)
  2464. self._RefreshForm()
  2465.  
  2466. def ClearItem(self):
  2467. ListBox.ClearItem(self)
  2468. self._RefreshForm()
  2469.  
  2470. def InsertItem(self, *args, **kwargs):
  2471. ListBox.InsertItem(self, *args, **kwargs)
  2472. self._RefreshForm()
  2473.  
  2474. def OnUpdate(self):
  2475. mpos = wndMgr.GetMousePosition()
  2476. self.overLine = self._CalcPointIndex(mpos)
  2477.  
  2478. def OnRender(self):
  2479. x, y = self.GetGlobalPosition()
  2480. pos = (x + 2, y)
  2481.  
  2482. if -1 != self.overLine:
  2483. grp.SetColor(HALF_WHITE_COLOR)
  2484. self._RenderBar(pos, self.overLine)
  2485.  
  2486. if -1 != self.selectedLine:
  2487. if self.selectedLine >= self.basePos:
  2488. if self.selectedLine - self.basePos < self.showLineCount:
  2489. grp.SetColor(SELECT_COLOR)
  2490. self._RenderBar(pos, self.selectedLine-self.basePos)
  2491.  
  2492.  
  2493.  
  2494. def _CalcPointIndex(self, mpos):
  2495. if self.IsIn():
  2496. px, py = mpos
  2497. gx, gy = self.GetGlobalPosition()
  2498. lx, ly = px - gx, py - gy
  2499.  
  2500. col = lx / self.barWidth
  2501. row = ly / self.stepSize
  2502. idx = col * self.rowCount + row
  2503. if col >= 0 and col < self.colCount:
  2504. if row >= 0 and row < self.rowCount:
  2505. if idx >= 0 and idx < len(self.itemList):
  2506. return idx
  2507.  
  2508. return -1
  2509.  
  2510. def _CalcRenderPos(self, pos, idx):
  2511. x, y = pos
  2512. row = idx % self.rowCount
  2513. col = idx / self.rowCount
  2514. return (x + col * self.barWidth, y + row * self.stepSize)
  2515.  
  2516. def _RenderBar(self, basePos, idx):
  2517. x, y = self._CalcRenderPos(basePos, idx)
  2518. grp.RenderBar(x, y, self.barWidth - 3, self.stepSize)
  2519.  
  2520. def _LocateItem(self):
  2521. pos = (0, self.TEMPORARY_PLACE)
  2522.  
  2523. self.showLineCount = 0
  2524. for textLine in self.itemList:
  2525. x, y = self._CalcRenderPos(pos, self.showLineCount)
  2526. textLine.SetPosition(x, y)
  2527. textLine.Show()
  2528.  
  2529. self.showLineCount += 1
  2530.  
  2531. def _RefreshForm(self):
  2532. if len(self.itemList) % self.rowCount:
  2533. self.colCount = len(self.itemList) / self.rowCount + 1
  2534. else:
  2535. self.colCount = len(self.itemList) / self.rowCount
  2536.  
  2537. if self.colCount:
  2538. self.barWidth = self.width / self.colCount
  2539. else:
  2540. self.barWidth = self.width
  2541.  
  2542.  
  2543. class ComboBox(Window):
  2544.  
  2545. class ListBoxWithBoard(ListBox):
  2546.  
  2547. def __init__(self, layer):
  2548. ListBox.__init__(self, layer)
  2549.  
  2550. def OnRender(self):
  2551. xRender, yRender = self.GetGlobalPosition()
  2552. yRender -= self.TEMPORARY_PLACE
  2553. widthRender = self.width
  2554. heightRender = self.height + self.TEMPORARY_PLACE*2
  2555. grp.SetColor(BACKGROUND_COLOR)
  2556. grp.RenderBar(xRender, yRender, widthRender, heightRender)
  2557. grp.SetColor(DARK_COLOR)
  2558. grp.RenderLine(xRender, yRender, widthRender, 0)
  2559. grp.RenderLine(xRender, yRender, 0, heightRender)
  2560. grp.SetColor(BRIGHT_COLOR)
  2561. grp.RenderLine(xRender, yRender+heightRender, widthRender, 0)
  2562. grp.RenderLine(xRender+widthRender, yRender, 0, heightRender)
  2563.  
  2564. ListBox.OnRender(self)
  2565.  
  2566. def __init__(self):
  2567. Window.__init__(self)
  2568. self.x = 0
  2569. self.y = 0
  2570. self.width = 0
  2571. self.height = 0
  2572. self.isSelected = False
  2573. self.isOver = False
  2574. self.isListOpened = False
  2575. self.event = lambda *arg: None
  2576. self.enable = True
  2577.  
  2578. self.textLine = MakeTextLine(self)
  2579. self.textLine.SetText(localeInfo.UI_ITEM)
  2580.  
  2581. self.listBox = self.ListBoxWithBoard("TOP_MOST")
  2582. self.listBox.SetPickAlways()
  2583. self.listBox.SetParent(self)
  2584. self.listBox.SetEvent(__mem_func__(self.OnSelectItem))
  2585. self.listBox.Hide()
  2586.  
  2587. def __del__(self):
  2588. Window.__del__(self)
  2589.  
  2590. def Destroy(self):
  2591. self.textLine = None
  2592. self.listBox = None
  2593.  
  2594. def SetPosition(self, x, y):
  2595. Window.SetPosition(self, x, y)
  2596. self.x = x
  2597. self.y = y
  2598. self.__ArrangeListBox()
  2599.  
  2600. def SetSize(self, width, height):
  2601. Window.SetSize(self, width, height)
  2602. self.width = width
  2603. self.height = height
  2604. self.textLine.UpdateRect()
  2605. self.__ArrangeListBox()
  2606.  
  2607. def __ArrangeListBox(self):
  2608. self.listBox.SetPosition(0, self.height + 5)
  2609. self.listBox.SetWidth(self.width)
  2610.  
  2611. def Enable(self):
  2612. self.enable = True
  2613.  
  2614. def Disable(self):
  2615. self.enable = False
  2616. self.textLine.SetText("")
  2617. self.CloseListBox()
  2618.  
  2619. def SetEvent(self, event):
  2620. self.event = event
  2621.  
  2622. def ClearItem(self):
  2623. self.CloseListBox()
  2624. self.listBox.ClearItem()
  2625.  
  2626. def InsertItem(self, index, name):
  2627. self.listBox.InsertItem(index, name)
  2628. self.listBox.ArrangeItem()
  2629.  
  2630. def SetCurrentItem(self, text):
  2631. self.textLine.SetText(text)
  2632.  
  2633. def SelectItem(self, key):
  2634. self.listBox.SelectItem(key)
  2635.  
  2636. def OnSelectItem(self, index, name):
  2637.  
  2638. self.CloseListBox()
  2639. self.event(index)
  2640.  
  2641. def CloseListBox(self):
  2642. self.isListOpened = False
  2643. self.listBox.Hide()
  2644.  
  2645. def OnMouseLeftButtonDown(self):
  2646.  
  2647. if not self.enable:
  2648. return
  2649.  
  2650. self.isSelected = True
  2651.  
  2652. def OnMouseLeftButtonUp(self):
  2653.  
  2654. if not self.enable:
  2655. return
  2656.  
  2657. self.isSelected = False
  2658.  
  2659. if self.isListOpened:
  2660. self.CloseListBox()
  2661. else:
  2662. if self.listBox.GetItemCount() > 0:
  2663. self.isListOpened = True
  2664. self.listBox.Show()
  2665. self.__ArrangeListBox()
  2666.  
  2667. def OnUpdate(self):
  2668.  
  2669. if not self.enable:
  2670. return
  2671.  
  2672. if self.IsIn():
  2673. self.isOver = True
  2674. else:
  2675. self.isOver = False
  2676.  
  2677. def OnRender(self):
  2678. self.x, self.y = self.GetGlobalPosition()
  2679. xRender = self.x
  2680. yRender = self.y
  2681. widthRender = self.width
  2682. heightRender = self.height
  2683. grp.SetColor(BACKGROUND_COLOR)
  2684. grp.RenderBar(xRender, yRender, widthRender, heightRender)
  2685. grp.SetColor(DARK_COLOR)
  2686. grp.RenderLine(xRender, yRender, widthRender, 0)
  2687. grp.RenderLine(xRender, yRender, 0, heightRender)
  2688. grp.SetColor(BRIGHT_COLOR)
  2689. grp.RenderLine(xRender, yRender+heightRender, widthRender, 0)
  2690. grp.RenderLine(xRender+widthRender, yRender, 0, heightRender)
  2691.  
  2692. if self.isOver:
  2693. grp.SetColor(HALF_WHITE_COLOR)
  2694. grp.RenderBar(xRender + 2, yRender + 3, self.width - 3, heightRender - 5)
  2695.  
  2696. if self.isSelected:
  2697. grp.SetColor(WHITE_COLOR)
  2698. grp.RenderBar(xRender + 2, yRender + 3, self.width - 3, heightRender - 5)
  2699.  
  2700. ###################################################################################################
  2701. ## Python Script Loader
  2702. ###################################################################################################
  2703.  
  2704. class ScriptWindow(Window):
  2705. def __init__(self, layer = "UI"):
  2706. Window.__init__(self, layer)
  2707. self.Children = []
  2708. self.ElementDictionary = {}
  2709. def __del__(self):
  2710. Window.__del__(self)
  2711.  
  2712. def ClearDictionary(self):
  2713. self.Children = []
  2714. self.ElementDictionary = {}
  2715. def InsertChild(self, name, child):
  2716. self.ElementDictionary[name] = child
  2717.  
  2718. def IsChild(self, name):
  2719. return self.ElementDictionary.has_key(name)
  2720. def GetChild(self, name):
  2721. return self.ElementDictionary[name]
  2722.  
  2723. def GetChild2(self, name):
  2724. return self.ElementDictionary.get(name, None)
  2725.  
  2726.  
  2727. class PythonScriptLoader(object):
  2728.  
  2729. BODY_KEY_LIST = ( "x", "y", "width", "height" )
  2730.  
  2731. #####
  2732.  
  2733. DEFAULT_KEY_LIST = ( "type", "x", "y", )
  2734. WINDOW_KEY_LIST = ( "width", "height", )
  2735. IMAGE_KEY_LIST = ( "image", )
  2736. EXPANDED_IMAGE_KEY_LIST = ( "image", )
  2737. ANI_IMAGE_KEY_LIST = ( "images", )
  2738. SLOT_KEY_LIST = ( "width", "height", "slot", )
  2739. CANDIDATE_LIST_KEY_LIST = ( "item_step", "item_xsize", "item_ysize", )
  2740. GRID_TABLE_KEY_LIST = ( "start_index", "x_count", "y_count", "x_step", "y_step", )
  2741. EDIT_LINE_KEY_LIST = ( "width", "height", "input_limit", )
  2742. COMBO_BOX_KEY_LIST = ( "width", "height", "item", )
  2743. TITLE_BAR_KEY_LIST = ( "width", )
  2744. HORIZONTAL_BAR_KEY_LIST = ( "width", )
  2745. BOARD_KEY_LIST = ( "width", "height", )
  2746. BOARD_WITH_TITLEBAR_KEY_LIST = ( "width", "height", "title", )
  2747. BOX_KEY_LIST = ( "width", "height", )
  2748. BAR_KEY_LIST = ( "width", "height", )
  2749. LINE_KEY_LIST = ( "width", "height", )
  2750. SLOTBAR_KEY_LIST = ( "width", "height", )
  2751. GAUGE_KEY_LIST = ( "width", "color", )
  2752. SCROLLBAR_KEY_LIST = ( "size", )
  2753. LIST_BOX_KEY_LIST = ( "width", "height", )
  2754.  
  2755. def __init__(self):
  2756. self.Clear()
  2757.  
  2758. def Clear(self):
  2759. self.ScriptDictionary = { "SCREEN_WIDTH" : wndMgr.GetScreenWidth(), "SCREEN_HEIGHT" : wndMgr.GetScreenHeight() }
  2760. self.InsertFunction = 0
  2761.  
  2762. def LoadScriptFile(self, window, FileName):
  2763. import exception
  2764. import exceptions
  2765. import os
  2766. import errno
  2767. self.Clear()
  2768.  
  2769. print "===== Load Script File : %s" % (FileName)
  2770.  
  2771. try:
  2772. # chr, player µîŔş sandbox ł»żˇĽ­ import°ˇ ÇăżëµÇÁö ľĘ±â ¶§ą®żˇ,(şżŔĚ ľÇżëÇŇ ż©Áö°ˇ ¸Ĺżě Ĺ­.)
  2773. # ąĚ¸® script dictionaryżˇ ÇĘżäÇŃ »óĽö¸¦ łÖľîłő´Â´Ů.
  2774. import chr
  2775. import player
  2776. import app
  2777. self.ScriptDictionary["PLAYER_NAME_MAX_LEN"] = chr.PLAYER_NAME_MAX_LEN
  2778. self.ScriptDictionary["DRAGON_SOUL_EQUIPMENT_SLOT_START"] = player.DRAGON_SOUL_EQUIPMENT_SLOT_START
  2779. self.ScriptDictionary["LOCALE_PATH"] = app.GetLocalePath()
  2780. execfile(FileName, self.ScriptDictionary)
  2781. except IOError, err:
  2782. import sys
  2783. import dbg
  2784. dbg.TraceError("Failed to load script file : %s" % (FileName))
  2785. dbg.TraceError("error : %s" % (err))
  2786. exception.Abort("LoadScriptFile1")
  2787. except RuntimeError,err:
  2788. import sys
  2789. import dbg
  2790. dbg.TraceError("Failed to load script file : %s" % (FileName))
  2791. dbg.TraceError("error : %s" % (err))
  2792. exception.Abort("LoadScriptFile2")
  2793. except:
  2794. import sys
  2795. import dbg
  2796. dbg.TraceError("Failed to load script file : %s" % (FileName))
  2797. exception.Abort("LoadScriptFile!!!!!!!!!!!!!!")
  2798.  
  2799. #####
  2800.  
  2801. Body = self.ScriptDictionary["window"]
  2802. self.CheckKeyList("window", Body, self.BODY_KEY_LIST)
  2803.  
  2804. window.ClearDictionary()
  2805. self.InsertFunction = window.InsertChild
  2806.  
  2807. window.SetPosition(int(Body["x"]), int(Body["y"]))
  2808.  
  2809. if localeInfo.IsARABIC():
  2810. w = wndMgr.GetScreenWidth()
  2811. h = wndMgr.GetScreenHeight()
  2812. if Body.has_key("width"):
  2813. w = int(Body["width"])
  2814. if Body.has_key("height"):
  2815. h = int(Body["height"])
  2816.  
  2817. window.SetSize(w, h)
  2818. else:
  2819. window.SetSize(int(Body["width"]), int(Body["height"]))
  2820. if True == Body.has_key("style"):
  2821. for StyleList in Body["style"]:
  2822. window.AddFlag(StyleList)
  2823.  
  2824.  
  2825. self.LoadChildren(window, Body)
  2826.  
  2827. def LoadChildren(self, parent, dicChildren):
  2828.  
  2829. if localeInfo.IsARABIC():
  2830. parent.AddFlag( "rtl" )
  2831.  
  2832. if True == dicChildren.has_key("style"):
  2833. for style in dicChildren["style"]:
  2834. parent.AddFlag(style)
  2835.  
  2836. if False == dicChildren.has_key("children"):
  2837. return False
  2838.  
  2839. Index = 0
  2840.  
  2841. ChildrenList = dicChildren["children"]
  2842. parent.Children = range(len(ChildrenList))
  2843. for ElementValue in ChildrenList:
  2844. try:
  2845. Name = ElementValue["name"]
  2846. except KeyError:
  2847. Name = ElementValue["name"] = "NONAME"
  2848.  
  2849. try:
  2850. Type = ElementValue["type"]
  2851. except KeyError:
  2852. Type = ElementValue["type"] = "window"
  2853.  
  2854. if False == self.CheckKeyList(Name, ElementValue, self.DEFAULT_KEY_LIST):
  2855. del parent.Children[Index]
  2856. continue
  2857.  
  2858. if Type == "window":
  2859. parent.Children[Index] = ScriptWindow()
  2860. parent.Children[Index].SetParent(parent)
  2861. self.LoadElementWindow(parent.Children[Index], ElementValue, parent)
  2862.  
  2863. elif Type == "button":
  2864. parent.Children[Index] = Button()
  2865. parent.Children[Index].SetParent(parent)
  2866. self.LoadElementButton(parent.Children[Index], ElementValue, parent)
  2867.  
  2868. elif Type == "radio_button":
  2869. parent.Children[Index] = RadioButton()
  2870. parent.Children[Index].SetParent(parent)
  2871. self.LoadElementButton(parent.Children[Index], ElementValue, parent)
  2872.  
  2873. elif Type == "toggle_button":
  2874. parent.Children[Index] = ToggleButton()
  2875. parent.Children[Index].SetParent(parent)
  2876. self.LoadElementButton(parent.Children[Index], ElementValue, parent)
  2877.  
  2878. elif Type == "mark":
  2879. parent.Children[Index] = MarkBox()
  2880. parent.Children[Index].SetParent(parent)
  2881. self.LoadElementMark(parent.Children[Index], ElementValue, parent)
  2882.  
  2883. elif Type == "image":
  2884. parent.Children[Index] = ImageBox()
  2885. parent.Children[Index].SetParent(parent)
  2886. self.LoadElementImage(parent.Children[Index], ElementValue, parent)
  2887.  
  2888. elif Type == "expanded_image":
  2889. parent.Children[Index] = ExpandedImageBox()
  2890. parent.Children[Index].SetParent(parent)
  2891. self.LoadElementExpandedImage(parent.Children[Index], ElementValue, parent)
  2892.  
  2893. elif Type == "ani_image":
  2894. parent.Children[Index] = AniImageBox()
  2895. parent.Children[Index].SetParent(parent)
  2896. self.LoadElementAniImage(parent.Children[Index], ElementValue, parent)
  2897.  
  2898. elif Type == "slot":
  2899. parent.Children[Index] = SlotWindow()
  2900. parent.Children[Index].SetParent(parent)
  2901. self.LoadElementSlot(parent.Children[Index], ElementValue, parent)
  2902.  
  2903. elif Type == "candidate_list":
  2904. parent.Children[Index] = CandidateListBox()
  2905. parent.Children[Index].SetParent(parent)
  2906. self.LoadElementCandidateList(parent.Children[Index], ElementValue, parent)
  2907.  
  2908. elif Type == "grid_table":
  2909. parent.Children[Index] = GridSlotWindow()
  2910. parent.Children[Index].SetParent(parent)
  2911. self.LoadElementGridTable(parent.Children[Index], ElementValue, parent)
  2912.  
  2913. elif Type == "text":
  2914. parent.Children[Index] = TextLine()
  2915. parent.Children[Index].SetParent(parent)
  2916. self.LoadElementText(parent.Children[Index], ElementValue, parent)
  2917.  
  2918. elif Type == "editline":
  2919. parent.Children[Index] = EditLine()
  2920. parent.Children[Index].SetParent(parent)
  2921. self.LoadElementEditLine(parent.Children[Index], ElementValue, parent)
  2922.  
  2923. elif Type == "titlebar":
  2924. parent.Children[Index] = TitleBar()
  2925. parent.Children[Index].SetParent(parent)
  2926. self.LoadElementTitleBar(parent.Children[Index], ElementValue, parent)
  2927.  
  2928. elif Type == "horizontalbar":
  2929. parent.Children[Index] = HorizontalBar()
  2930. parent.Children[Index].SetParent(parent)
  2931. self.LoadElementHorizontalBar(parent.Children[Index], ElementValue, parent)
  2932.  
  2933. elif Type == "board":
  2934. parent.Children[Index] = Board()
  2935. parent.Children[Index].SetParent(parent)
  2936. self.LoadElementBoard(parent.Children[Index], ElementValue, parent)
  2937.  
  2938. elif Type == "board_with_titlebar":
  2939. parent.Children[Index] = BoardWithTitleBar()
  2940. parent.Children[Index].SetParent(parent)
  2941. self.LoadElementBoardWithTitleBar(parent.Children[Index], ElementValue, parent)
  2942.  
  2943. elif Type == "thinboard":
  2944. parent.Children[Index] = ThinBoard()
  2945. parent.Children[Index].SetParent(parent)
  2946. self.LoadElementThinBoard(parent.Children[Index], ElementValue, parent)
  2947.  
  2948. elif Type == "box":
  2949. parent.Children[Index] = Box()
  2950. parent.Children[Index].SetParent(parent)
  2951. self.LoadElementBox(parent.Children[Index], ElementValue, parent)
  2952.  
  2953. elif Type == "bar":
  2954. parent.Children[Index] = Bar()
  2955. parent.Children[Index].SetParent(parent)
  2956. self.LoadElementBar(parent.Children[Index], ElementValue, parent)
  2957.  
  2958. elif Type == "line":
  2959. parent.Children[Index] = Line()
  2960. parent.Children[Index].SetParent(parent)
  2961. self.LoadElementLine(parent.Children[Index], ElementValue, parent)
  2962.  
  2963. elif Type == "slotbar":
  2964. parent.Children[Index] = SlotBar()
  2965. parent.Children[Index].SetParent(parent)
  2966. self.LoadElementSlotBar(parent.Children[Index], ElementValue, parent)
  2967.  
  2968. elif Type == "gauge":
  2969. parent.Children[Index] = Gauge()
  2970. parent.Children[Index].SetParent(parent)
  2971. self.LoadElementGauge(parent.Children[Index], ElementValue, parent)
  2972.  
  2973. elif Type == "scrollbar":
  2974. parent.Children[Index] = ScrollBar()
  2975. parent.Children[Index].SetParent(parent)
  2976. self.LoadElementScrollBar(parent.Children[Index], ElementValue, parent)
  2977.  
  2978. elif Type == "thin_scrollbar":
  2979. parent.Children[Index] = ThinScrollBar()
  2980. parent.Children[Index].SetParent(parent)
  2981. self.LoadElementScrollBar(parent.Children[Index], ElementValue, parent)
  2982.  
  2983. elif Type == "small_thin_scrollbar":
  2984. parent.Children[Index] = SmallThinScrollBar()
  2985. parent.Children[Index].SetParent(parent)
  2986. self.LoadElementScrollBar(parent.Children[Index], ElementValue, parent)
  2987.  
  2988. elif Type == "sliderbar":
  2989. parent.Children[Index] = SliderBar()
  2990. parent.Children[Index].SetParent(parent)
  2991. self.LoadElementSliderBar(parent.Children[Index], ElementValue, parent)
  2992.  
  2993. elif Type == "listbox":
  2994. parent.Children[Index] = ListBox()
  2995. parent.Children[Index].SetParent(parent)
  2996. self.LoadElementListBox(parent.Children[Index], ElementValue, parent)
  2997.  
  2998. elif Type == "listbox2":
  2999. parent.Children[Index] = ListBox2()
  3000. parent.Children[Index].SetParent(parent)
  3001. self.LoadElementListBox2(parent.Children[Index], ElementValue, parent)
  3002. elif Type == "listboxex":
  3003. parent.Children[Index] = ListBoxEx()
  3004. parent.Children[Index].SetParent(parent)
  3005. self.LoadElementListBoxEx(parent.Children[Index], ElementValue, parent)
  3006.  
  3007. else:
  3008. Index += 1
  3009. continue
  3010.  
  3011. parent.Children[Index].SetWindowName(Name)
  3012. if 0 != self.InsertFunction:
  3013. self.InsertFunction(Name, parent.Children[Index])
  3014.  
  3015. self.LoadChildren(parent.Children[Index], ElementValue)
  3016. Index += 1
  3017.  
  3018. def CheckKeyList(self, name, value, key_list):
  3019.  
  3020. for DataKey in key_list:
  3021. if False == value.has_key(DataKey):
  3022. print "Failed to find data key", "[" + name + "/" + DataKey + "]"
  3023. return False
  3024.  
  3025. return True
  3026.  
  3027. def LoadDefaultData(self, window, value, parentWindow):
  3028. loc_x = int(value["x"])
  3029. loc_y = int(value["y"])
  3030. if value.has_key("vertical_align"):
  3031. if "center" == value["vertical_align"]:
  3032. window.SetWindowVerticalAlignCenter()
  3033. elif "bottom" == value["vertical_align"]:
  3034. window.SetWindowVerticalAlignBottom()
  3035.  
  3036. if parentWindow.IsRTL():
  3037. loc_x = int(value["x"]) + window.GetWidth()
  3038. if value.has_key("horizontal_align"):
  3039. if "center" == value["horizontal_align"]:
  3040. window.SetWindowHorizontalAlignCenter()
  3041. loc_x = - int(value["x"])
  3042. elif "right" == value["horizontal_align"]:
  3043. window.SetWindowHorizontalAlignLeft()
  3044. loc_x = int(value["x"]) - window.GetWidth()
  3045. ## loc_x = parentWindow.GetWidth() - int(value["x"]) + window.GetWidth()
  3046. else:
  3047. window.SetWindowHorizontalAlignRight()
  3048.  
  3049. if value.has_key("all_align"):
  3050. window.SetWindowVerticalAlignCenter()
  3051. window.SetWindowHorizontalAlignCenter()
  3052. loc_x = - int(value["x"])
  3053. else:
  3054. if value.has_key("horizontal_align"):
  3055. if "center" == value["horizontal_align"]:
  3056. window.SetWindowHorizontalAlignCenter()
  3057. elif "right" == value["horizontal_align"]:
  3058. window.SetWindowHorizontalAlignRight()
  3059.  
  3060. window.SetPosition(loc_x, loc_y)
  3061. window.Show()
  3062.  
  3063. ## Window
  3064. def LoadElementWindow(self, window, value, parentWindow):
  3065.  
  3066. if False == self.CheckKeyList(value["name"], value, self.WINDOW_KEY_LIST):
  3067. return False
  3068.  
  3069. window.SetSize(int(value["width"]), int(value["height"]))
  3070. self.LoadDefaultData(window, value, parentWindow)
  3071.  
  3072. return True
  3073.  
  3074. ## Button
  3075. def LoadElementButton(self, window, value, parentWindow):
  3076.  
  3077. if value.has_key("width") and value.has_key("height"):
  3078. window.SetSize(int(value["width"]), int(value["height"]))
  3079.  
  3080. if True == value.has_key("default_image"):
  3081. window.SetUpVisual(value["default_image"])
  3082. if True == value.has_key("over_image"):
  3083. window.SetOverVisual(value["over_image"])
  3084. if True == value.has_key("down_image"):
  3085. window.SetDownVisual(value["down_image"])
  3086. if True == value.has_key("disable_image"):
  3087. window.SetDisableVisual(value["disable_image"])
  3088.  
  3089. if True == value.has_key("text"):
  3090. if True == value.has_key("text_height"):
  3091. window.SetText(value["text"], value["text_height"])
  3092. else:
  3093. window.SetText(value["text"])
  3094.  
  3095. if value.has_key("text_color"):
  3096. window.SetTextColor(value["text_color"])
  3097.  
  3098. if True == value.has_key("tooltip_text"):
  3099. if True == value.has_key("tooltip_x") and True == value.has_key("tooltip_y"):
  3100. window.SetToolTipText(value["tooltip_text"], int(value["tooltip_x"]), int(value["tooltip_y"]))
  3101. else:
  3102. window.SetToolTipText(value["tooltip_text"])
  3103.  
  3104. self.LoadDefaultData(window, value, parentWindow)
  3105.  
  3106. return True
  3107.  
  3108. ## Mark
  3109. def LoadElementMark(self, window, value, parentWindow):
  3110.  
  3111. #if False == self.CheckKeyList(value["name"], value, self.MARK_KEY_LIST):
  3112. # return False
  3113.  
  3114. self.LoadDefaultData(window, value, parentWindow)
  3115.  
  3116. return True
  3117.  
  3118. ## Image
  3119. def LoadElementImage(self, window, value, parentWindow):
  3120.  
  3121. if False == self.CheckKeyList(value["name"], value, self.IMAGE_KEY_LIST):
  3122. return False
  3123.  
  3124. window.LoadImage(value["image"])
  3125. self.LoadDefaultData(window, value, parentWindow)
  3126.  
  3127. return True
  3128.  
  3129. ## AniImage
  3130. def LoadElementAniImage(self, window, value, parentWindow):
  3131.  
  3132. if False == self.CheckKeyList(value["name"], value, self.ANI_IMAGE_KEY_LIST):
  3133. return False
  3134.  
  3135. if True == value.has_key("delay"):
  3136. window.SetDelay(value["delay"])
  3137.  
  3138. for image in value["images"]:
  3139. window.AppendImage(image)
  3140.  
  3141. if value.has_key("width") and value.has_key("height"):
  3142. window.SetSize(value["width"], value["height"])
  3143.  
  3144. self.LoadDefaultData(window, value, parentWindow)
  3145.  
  3146. return True
  3147.  
  3148. ## Expanded Image
  3149. def LoadElementExpandedImage(self, window, value, parentWindow):
  3150.  
  3151. if False == self.CheckKeyList(value["name"], value, self.EXPANDED_IMAGE_KEY_LIST):
  3152. return False
  3153.  
  3154. window.LoadImage(value["image"])
  3155.  
  3156. if True == value.has_key("x_origin") and True == value.has_key("y_origin"):
  3157. window.SetOrigin(float(value["x_origin"]), float(value["y_origin"]))
  3158.  
  3159. if True == value.has_key("x_scale") and True == value.has_key("y_scale"):
  3160. window.SetScale(float(value["x_scale"]), float(value["y_scale"]))
  3161.  
  3162. if True == value.has_key("rect"):
  3163. RenderingRect = value["rect"]
  3164. window.SetRenderingRect(RenderingRect[0], RenderingRect[1], RenderingRect[2], RenderingRect[3])
  3165.  
  3166. if True == value.has_key("mode"):
  3167. mode = value["mode"]
  3168. if "MODULATE" == mode:
  3169. window.SetRenderingMode(wndMgr.RENDERING_MODE_MODULATE)
  3170.  
  3171. self.LoadDefaultData(window, value, parentWindow)
  3172.  
  3173. return True
  3174.  
  3175. ## Slot
  3176. def LoadElementSlot(self, window, value, parentWindow):
  3177.  
  3178. if False == self.CheckKeyList(value["name"], value, self.SLOT_KEY_LIST):
  3179. return False
  3180.  
  3181. global_x = int(value["x"])
  3182. global_y = int(value["y"])
  3183. global_width = int(value["width"])
  3184. global_height = int(value["height"])
  3185.  
  3186. window.SetPosition(global_x, global_y)
  3187. window.SetSize(global_width, global_height)
  3188. window.Show()
  3189.  
  3190. r = 1.0
  3191. g = 1.0
  3192. b = 1.0
  3193. a = 1.0
  3194.  
  3195. if True == value.has_key("image_r") and \
  3196. True == value.has_key("image_g") and \
  3197. True == value.has_key("image_b") and \
  3198. True == value.has_key("image_a"):
  3199. r = float(value["image_r"])
  3200. g = float(value["image_g"])
  3201. b = float(value["image_b"])
  3202. a = float(value["image_a"])
  3203.  
  3204. SLOT_ONE_KEY_LIST = ("index", "x", "y", "width", "height")
  3205.  
  3206. for slot in value["slot"]:
  3207. if True == self.CheckKeyList(value["name"] + " - one", slot, SLOT_ONE_KEY_LIST):
  3208. wndMgr.AppendSlot(window.hWnd,
  3209. int(slot["index"]),
  3210. int(slot["x"]),
  3211. int(slot["y"]),
  3212. int(slot["width"]),
  3213. int(slot["height"]))
  3214.  
  3215. if True == value.has_key("image"):
  3216. wndMgr.SetSlotBaseImage(window.hWnd,
  3217. value["image"],
  3218. r, g, b, a)
  3219.  
  3220. return True
  3221.  
  3222. def LoadElementCandidateList(self, window, value, parentWindow):
  3223. if False == self.CheckKeyList(value["name"], value, self.CANDIDATE_LIST_KEY_LIST):
  3224. return False
  3225.  
  3226. window.SetPosition(int(value["x"]), int(value["y"]))
  3227. window.SetItemSize(int(value["item_xsize"]), int(value["item_ysize"]))
  3228. window.SetItemStep(int(value["item_step"]))
  3229. window.Show()
  3230.  
  3231. return True
  3232.  
  3233. ## Table
  3234. def LoadElementGridTable(self, window, value, parentWindow):
  3235.  
  3236. if False == self.CheckKeyList(value["name"], value, self.GRID_TABLE_KEY_LIST):
  3237. return False
  3238.  
  3239. xBlank = 0
  3240. yBlank = 0
  3241. if True == value.has_key("x_blank"):
  3242. xBlank = int(value["x_blank"])
  3243. if True == value.has_key("y_blank"):
  3244. yBlank = int(value["y_blank"])
  3245.  
  3246. if localeInfo.IsARABIC():
  3247. pass
  3248. else:
  3249. window.SetPosition(int(value["x"]), int(value["y"]))
  3250.  
  3251. window.ArrangeSlot( int(value["start_index"]),
  3252. int(value["x_count"]),
  3253. int(value["y_count"]),
  3254. int(value["x_step"]),
  3255. int(value["y_step"]),
  3256. xBlank,
  3257. yBlank)
  3258. if True == value.has_key("image"):
  3259. r = 1.0
  3260. g = 1.0
  3261. b = 1.0
  3262. a = 1.0
  3263. if True == value.has_key("image_r") and \
  3264. True == value.has_key("image_g") and \
  3265. True == value.has_key("image_b") and \
  3266. True == value.has_key("image_a"):
  3267. r = float(value["image_r"])
  3268. g = float(value["image_g"])
  3269. b = float(value["image_b"])
  3270. a = float(value["image_a"])
  3271. wndMgr.SetSlotBaseImage(window.hWnd, value["image"], r, g, b, a)
  3272.  
  3273. if True == value.has_key("style"):
  3274. if "select" == value["style"]:
  3275. wndMgr.SetSlotStyle(window.hWnd, wndMgr.SLOT_STYLE_SELECT)
  3276. if localeInfo.IsARABIC():
  3277. self.LoadDefaultData(window, value, parentWindow)
  3278. else:
  3279. window.Show()
  3280.  
  3281. return True
  3282.  
  3283. ## Text
  3284. def LoadElementText(self, window, value, parentWindow):
  3285.  
  3286. if value.has_key("fontsize"):
  3287. fontSize = value["fontsize"]
  3288.  
  3289. if "LARGE" == fontSize:
  3290. window.SetFontName(localeInfo.UI_DEF_FONT_LARGE)
  3291.  
  3292. elif value.has_key("fontname"):
  3293. fontName = value["fontname"]
  3294. window.SetFontName(fontName)
  3295.  
  3296. if value.has_key("text_horizontal_align"):
  3297. if "left" == value["text_horizontal_align"]:
  3298. window.SetHorizontalAlignLeft()
  3299. elif "center" == value["text_horizontal_align"]:
  3300. window.SetHorizontalAlignCenter()
  3301. elif "right" == value["text_horizontal_align"]:
  3302. window.SetHorizontalAlignRight()
  3303.  
  3304. if value.has_key("text_vertical_align"):
  3305. if "top" == value["text_vertical_align"]:
  3306. window.SetVerticalAlignTop()
  3307. elif "center" == value["text_vertical_align"]:
  3308. window.SetVerticalAlignCenter()
  3309. elif "bottom" == value["text_vertical_align"]:
  3310. window.SetVerticalAlignBottom()
  3311.  
  3312. if value.has_key("all_align"):
  3313. window.SetHorizontalAlignCenter()
  3314. window.SetVerticalAlignCenter()
  3315. window.SetWindowHorizontalAlignCenter()
  3316. window.SetWindowVerticalAlignCenter()
  3317.  
  3318. if value.has_key("r") and value.has_key("g") and value.has_key("b"):
  3319. window.SetFontColor(float(value["r"]), float(value["g"]), float(value["b"]))
  3320. elif value.has_key("color"):
  3321. window.SetPackedFontColor(value["color"])
  3322. else:
  3323. window.SetFontColor(0.8549, 0.8549, 0.8549)
  3324.  
  3325. if value.has_key("outline"):
  3326. if value["outline"]:
  3327. window.SetOutline()
  3328. if True == value.has_key("text"):
  3329. window.SetText(value["text"])
  3330.  
  3331. self.LoadDefaultData(window, value, parentWindow)
  3332.  
  3333. return True
  3334.  
  3335. ## EditLine
  3336. def LoadElementEditLine(self, window, value, parentWindow):
  3337.  
  3338. if False == self.CheckKeyList(value["name"], value, self.EDIT_LINE_KEY_LIST):
  3339. return False
  3340.  
  3341.  
  3342. if value.has_key("secret_flag"):
  3343. window.SetSecret(value["secret_flag"])
  3344. if value.has_key("with_codepage"):
  3345. if value["with_codepage"]:
  3346. window.bCodePage = True
  3347. if value.has_key("only_number"):
  3348. if value["only_number"]:
  3349. window.SetNumberMode()
  3350. if value.has_key("enable_codepage"):
  3351. window.SetIMEFlag(value["enable_codepage"])
  3352. if value.has_key("enable_ime"):
  3353. window.SetIMEFlag(value["enable_ime"])
  3354. if value.has_key("limit_width"):
  3355. window.SetLimitWidth(value["limit_width"])
  3356. if value.has_key("multi_line"):
  3357. if value["multi_line"]:
  3358. window.SetMultiLine()
  3359.  
  3360. window.SetMax(int(value["input_limit"]))
  3361. window.SetSize(int(value["width"]), int(value["height"]))
  3362. self.LoadElementText(window, value, parentWindow)
  3363.  
  3364. return True
  3365.  
  3366. ## TitleBar
  3367. def LoadElementTitleBar(self, window, value, parentWindow):
  3368.  
  3369. if False == self.CheckKeyList(value["name"], value, self.TITLE_BAR_KEY_LIST):
  3370. return False
  3371.  
  3372. window.MakeTitleBar(int(value["width"]), value.get("color", "red"))
  3373. self.LoadDefaultData(window, value, parentWindow)
  3374.  
  3375. return True
  3376.  
  3377. ## HorizontalBar
  3378. def LoadElementHorizontalBar(self, window, value, parentWindow):
  3379.  
  3380. if False == self.CheckKeyList(value["name"], value, self.HORIZONTAL_BAR_KEY_LIST):
  3381. return False
  3382.  
  3383. window.Create(int(value["width"]))
  3384. self.LoadDefaultData(window, value, parentWindow)
  3385.  
  3386. return True
  3387.  
  3388. ## Board
  3389. def LoadElementBoard(self, window, value, parentWindow):
  3390.  
  3391. if False == self.CheckKeyList(value["name"], value, self.BOARD_KEY_LIST):
  3392. return False
  3393.  
  3394. window.SetSize(int(value["width"]), int(value["height"]))
  3395. self.LoadDefaultData(window, value, parentWindow)
  3396.  
  3397. return True
  3398.  
  3399. ## Board With TitleBar
  3400. def LoadElementBoardWithTitleBar(self, window, value, parentWindow):
  3401.  
  3402. if False == self.CheckKeyList(value["name"], value, self.BOARD_WITH_TITLEBAR_KEY_LIST):
  3403. return False
  3404.  
  3405. window.SetSize(int(value["width"]), int(value["height"]))
  3406. window.SetTitleName(value["title"])
  3407. self.LoadDefaultData(window, value, parentWindow)
  3408.  
  3409. return True
  3410.  
  3411. ## ThinBoard
  3412. def LoadElementThinBoard(self, window, value, parentWindow):
  3413.  
  3414. if False == self.CheckKeyList(value["name"], value, self.BOARD_KEY_LIST):
  3415. return False
  3416.  
  3417. window.SetSize(int(value["width"]), int(value["height"]))
  3418. self.LoadDefaultData(window, value, parentWindow)
  3419.  
  3420. return True
  3421.  
  3422. ## Box
  3423. def LoadElementBox(self, window, value, parentWindow):
  3424.  
  3425. if False == self.CheckKeyList(value["name"], value, self.BOX_KEY_LIST):
  3426. return False
  3427.  
  3428. if True == value.has_key("color"):
  3429. window.SetColor(value["color"])
  3430.  
  3431. window.SetSize(int(value["width"]), int(value["height"]))
  3432. self.LoadDefaultData(window, value, parentWindow)
  3433.  
  3434. return True
  3435.  
  3436. ## Bar
  3437. def LoadElementBar(self, window, value, parentWindow):
  3438.  
  3439. if False == self.CheckKeyList(value["name"], value, self.BAR_KEY_LIST):
  3440. return False
  3441.  
  3442. if True == value.has_key("color"):
  3443. window.SetColor(value["color"])
  3444.  
  3445. window.SetSize(int(value["width"]), int(value["height"]))
  3446. self.LoadDefaultData(window, value, parentWindow)
  3447.  
  3448. return True
  3449.  
  3450. ## Line
  3451. def LoadElementLine(self, window, value, parentWindow):
  3452.  
  3453. if False == self.CheckKeyList(value["name"], value, self.LINE_KEY_LIST):
  3454. return False
  3455.  
  3456. if True == value.has_key("color"):
  3457. window.SetColor(value["color"])
  3458.  
  3459. window.SetSize(int(value["width"]), int(value["height"]))
  3460. self.LoadDefaultData(window, value, parentWindow)
  3461.  
  3462. return True
  3463.  
  3464. ## Slot
  3465. def LoadElementSlotBar(self, window, value, parentWindow):
  3466.  
  3467. if False == self.CheckKeyList(value["name"], value, self.SLOTBAR_KEY_LIST):
  3468. return False
  3469.  
  3470. window.SetSize(int(value["width"]), int(value["height"]))
  3471. self.LoadDefaultData(window, value, parentWindow)
  3472.  
  3473. return True
  3474.  
  3475. ## Gauge
  3476. def LoadElementGauge(self, window, value, parentWindow):
  3477.  
  3478. if False == self.CheckKeyList(value["name"], value, self.GAUGE_KEY_LIST):
  3479. return False
  3480.  
  3481. window.MakeGauge(value["width"], value["color"])
  3482. self.LoadDefaultData(window, value, parentWindow)
  3483.  
  3484. return True
  3485.  
  3486. ## ScrollBar
  3487. def LoadElementScrollBar(self, window, value, parentWindow):
  3488.  
  3489. if False == self.CheckKeyList(value["name"], value, self.SCROLLBAR_KEY_LIST):
  3490. return False
  3491.  
  3492. window.SetScrollBarSize(value["size"])
  3493. self.LoadDefaultData(window, value, parentWindow)
  3494.  
  3495. return True
  3496.  
  3497. ## SliderBar
  3498. def LoadElementSliderBar(self, window, value, parentWindow):
  3499.  
  3500. self.LoadDefaultData(window, value, parentWindow)
  3501.  
  3502. return True
  3503.  
  3504. ## ListBox
  3505. def LoadElementListBox(self, window, value, parentWindow):
  3506.  
  3507. if False == self.CheckKeyList(value["name"], value, self.LIST_BOX_KEY_LIST):
  3508. return False
  3509.  
  3510. if value.has_key("item_align"):
  3511. window.SetTextCenterAlign(value["item_align"])
  3512.  
  3513. window.SetSize(value["width"], value["height"])
  3514. self.LoadDefaultData(window, value, parentWindow)
  3515.  
  3516. return True
  3517.  
  3518. ## ListBox2
  3519. def LoadElementListBox2(self, window, value, parentWindow):
  3520.  
  3521. if False == self.CheckKeyList(value["name"], value, self.LIST_BOX_KEY_LIST):
  3522. return False
  3523.  
  3524. window.SetRowCount(value.get("row_count", 10))
  3525. window.SetSize(value["width"], value["height"])
  3526. self.LoadDefaultData(window, value, parentWindow)
  3527.  
  3528. if value.has_key("item_align"):
  3529. window.SetTextCenterAlign(value["item_align"])
  3530.  
  3531. return True
  3532. def LoadElementListBoxEx(self, window, value, parentWindow):
  3533.  
  3534. if False == self.CheckKeyList(value["name"], value, self.LIST_BOX_KEY_LIST):
  3535. return False
  3536.  
  3537. window.SetSize(value["width"], value["height"])
  3538. self.LoadDefaultData(window, value, parentWindow)
  3539.  
  3540. if value.has_key("itemsize_x") and value.has_key("itemsize_y"):
  3541. window.SetItemSize(int(value["itemsize_x"]), int(value["itemsize_y"]))
  3542.  
  3543. if value.has_key("itemstep"):
  3544. window.SetItemStep(int(value["itemstep"]))
  3545.  
  3546. if value.has_key("viewcount"):
  3547. window.SetViewItemCount(int(value["viewcount"]))
  3548.  
  3549. return True
  3550.  
  3551. class ReadingWnd(Bar):
  3552.  
  3553. def __init__(self):
  3554. Bar.__init__(self,"TOP_MOST")
  3555.  
  3556. self.__BuildText()
  3557. self.SetSize(80, 19)
  3558. self.Show()
  3559.  
  3560. def __del__(self):
  3561. Bar.__del__(self)
  3562.  
  3563. def __BuildText(self):
  3564. self.text = TextLine()
  3565. self.text.SetParent(self)
  3566. self.text.SetPosition(4, 3)
  3567. self.text.Show()
  3568.  
  3569. def SetText(self, text):
  3570. self.text.SetText(text)
  3571.  
  3572. def SetReadingPosition(self, x, y):
  3573. xPos = x + 2
  3574. yPos = y - self.GetHeight() - 2
  3575. self.SetPosition(xPos, yPos)
  3576.  
  3577. def SetTextColor(self, color):
  3578. self.text.SetPackedFontColor(color)
  3579.  
  3580.  
  3581. def MakeSlotBar(parent, x, y, width, height):
  3582. slotBar = SlotBar()
  3583. slotBar.SetParent(parent)
  3584. slotBar.SetSize(width, height)
  3585. slotBar.SetPosition(x, y)
  3586. slotBar.Show()
  3587. return slotBar
  3588.  
  3589. def MakeImageBox(parent, name, x, y):
  3590. image = ImageBox()
  3591. image.SetParent(parent)
  3592. image.LoadImage(name)
  3593. image.SetPosition(x, y)
  3594. image.Show()
  3595. return image
  3596.  
  3597. def MakeTextLine(parent):
  3598. textLine = TextLine()
  3599. textLine.SetParent(parent)
  3600. textLine.SetWindowHorizontalAlignCenter()
  3601. textLine.SetWindowVerticalAlignCenter()
  3602. textLine.SetHorizontalAlignCenter()
  3603. textLine.SetVerticalAlignCenter()
  3604. textLine.Show()
  3605. return textLine
  3606.  
  3607. def MakeButton(parent, x, y, tooltipText, path, up, over, down):
  3608. button = Button()
  3609. button.SetParent(parent)
  3610. button.SetPosition(x, y)
  3611. button.SetUpVisual(path + up)
  3612. button.SetOverVisual(path + over)
  3613. button.SetDownVisual(path + down)
  3614. button.SetToolTipText(tooltipText)
  3615. button.Show()
  3616. return button
  3617.  
  3618. def RenderRoundBox(x, y, width, height, color):
  3619. grp.SetColor(color)
  3620. grp.RenderLine(x+2, y, width-3, 0)
  3621. grp.RenderLine(x+2, y+height, width-3, 0)
  3622. grp.RenderLine(x, y+2, 0, height-4)
  3623. grp.RenderLine(x+width, y+1, 0, height-3)
  3624. grp.RenderLine(x, y+2, 2, -2)
  3625. grp.RenderLine(x, y+height-2, 2, 2)
  3626. grp.RenderLine(x+width-2, y, 2, 2)
  3627. grp.RenderLine(x+width-2, y+height, 2, -2)
  3628.  
  3629. def GenerateColor(r, g, b):
  3630. r = float(r) / 255.0
  3631. g = float(g) / 255.0
  3632. b = float(b) / 255.0
  3633. return grp.GenerateColor(r, g, b, 1.0)
  3634.  
  3635. def EnablePaste(flag):
  3636. ime.EnablePaste(flag)
  3637.  
  3638. def GetHyperlink():
  3639. return wndMgr.GetHyperlink()
  3640.  
  3641. RegisterToolTipWindow("TEXT", TextLine)
Advertisement
Add Comment
Please, Sign In to add comment