Guest User

Untitled

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