Advertisement
deadx2

Untitled

Sep 29th, 2017
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 10.41 KB | None | 0 0
  1. import uimg
  2. import net
  3. import chat
  4. import player
  5. import app
  6. import localemg
  7. import ime
  8. import chr
  9.  
  10. class WhisperButton(uimg.Button):
  11.     def __init__(self):
  12.         uimg.Button.__init__(self, "TOP_MOST")
  13.  
  14.     def __del__(self):
  15.         uimg.Button.__del__(self)
  16.  
  17.     def SetToolTipText(self, text, x=0, y = 32):
  18.         uimg.Button.SetToolTipText(self, text, x, y)
  19.         self.ToolTipText.Show()
  20.  
  21.     def SetToolTipTextWithColor(self, text, color, x=0, y = 32):
  22.         uimg.Button.SetToolTipText(self, text, x, y)
  23.         self.ToolTipText.SetPackedFontColor(color)
  24.         self.ToolTipText.Show()
  25.  
  26.     def ShowToolTip(self):
  27.         if 0 != self.ToolTipText:
  28.             self.ToolTipText.Show()
  29.  
  30.     def HideToolTip(self):
  31.         if 0 != self.ToolTipText:
  32.             self.ToolTipText.Show()
  33.  
  34. class WhisperDialog(uimg.ScriptWindow):
  35.  
  36.     class TextRenderer(uimg.Window):
  37.         def SetTargetName(self, targetName):
  38.             self.targetName = targetName
  39.  
  40.         def OnRender(self):
  41.             (x, y) = self.GetGlobalPosition()
  42.             chat.RenderWhisper(self.targetName, x, y)
  43.  
  44.     class ResizeButton(uimg.DragButton):
  45.  
  46.         def __init__(self):
  47.             uimg.DragButton.__init__(self)
  48.  
  49.         def __del__(self):
  50.             uimg.DragButton.__del__(self)
  51.  
  52.         def OnMouseOverIn(self):
  53.             app.SetCursor(app.HVSIZE)
  54.  
  55.         def OnMouseOverOut(self):
  56.             app.SetCursor(app.NORMAL)
  57.  
  58.     def __init__(self, eventMinimize, eventClose):
  59.         print "NEW WHISPER DIALOG  ----------------------------------------------------------------------------"
  60.         uimg.ScriptWindow.__init__(self)
  61.         self.targetName = ""
  62.         self.eventMinimize = eventMinimize
  63.         self.eventClose = eventClose
  64.         self.eventAcceptTarget = None
  65.     def __del__(self):
  66.         print "---------------------------------------------------------------------------- DELETE WHISPER DIALOG"
  67.         uimg.ScriptWindow.__del__(self)    
  68.  
  69.     def LoadDialog(self):
  70.         try:
  71.             pyScrLoader = uimg.PythonScriptLoader()
  72.             pyScrLoader.LoadScriptFile(self, "UIScript/WhisperDialog.py")
  73.         except:
  74.             import exception
  75.             exception.Abort("WhisperDialog.LoadDialog.LoadScript")
  76.  
  77.         try:
  78.             GetObject=self.GetChild
  79.             self.titleName = GetObject("titlename")
  80.             self.titleNameEdit = GetObject("titlename_edit")
  81.             self.closeButton = GetObject("closebutton")
  82.             self.scrollBar = GetObject("scrollbar")
  83.             self.chatLine = GetObject("chatline")
  84.             self.minimizeButton = GetObject("minimizebutton")
  85.             self.ignoreButton = GetObject("ignorebutton")
  86.            
  87.             self.add_friend_button = GetObject("add_friend_button")
  88.             self.dealte_friend_button = GetObject("dealte_friend_button")
  89.             self.ignorebuttonnew = GetObject("ignorebuttonnew")
  90.            
  91.             self.reportViolentWhisperButton = GetObject("reportviolentwhisperbutton")
  92.             self.acceptButton = GetObject("acceptbutton")
  93.             self.sendButton = GetObject("sendbutton")
  94.             self.board = GetObject("board")
  95.             self.editBar = GetObject("editbar")
  96.             self.gamemasterMark = GetObject("gamemastermark")
  97.         except:
  98.             import exception
  99.             exception.Abort("DialogWindow.LoadDialog.BindObject")
  100.  
  101.         self.gamemasterMark.Hide()
  102.         self.titleName.SetFontColorNew(230, 208, 162)
  103.         self.titleName.SetText("")
  104.         self.titleNameEdit.SetFontColorNew(230, 208, 162)
  105.         self.titleNameEdit.SetText("")
  106.         self.minimizeButton.SetEvent(uimg.__mem_func__(self.Minimize))
  107.         self.closeButton.SetEvent(uimg.__mem_func__(self.Close))
  108.         self.scrollBar.SetPos(1.0)
  109.         self.scrollBar.SetScrollEvent(uimg.__mem_func__(self.OnScroll))
  110.         self.chatLine.SetReturnEvent(uimg.__mem_func__(self.SendWhisper))
  111.         self.chatLine.SetEscapeEvent(uimg.__mem_func__(self.Minimize))
  112.         self.chatLine.SetMultiLine()
  113.         self.sendButton.SetEvent(uimg.__mem_func__(self.SendWhisper))
  114.         self.titleNameEdit.SetReturnEvent(uimg.__mem_func__(self.AcceptTarget))
  115.         self.titleNameEdit.SetEscapeEvent(uimg.__mem_func__(self.Close))
  116.         self.ignorebuttonnew.SetEvent(uimg.__mem_func__(self.IgnoreTarget))
  117.     #   self.dealte_friend_button.SetEvent(uimg.__mem_func__(self.IgnoreTarget))
  118.         self.reportViolentWhisperButton.SetEvent(uimg.__mem_func__(self.ReportViolentWhisper))
  119.         self.acceptButton.SetEvent(uimg.__mem_func__(self.AcceptTarget))
  120.        
  121.         self.add_friend_button.SetEvent(uimg.__mem_func__(self.DodajPrzyjaciela))
  122.         self.dealte_friend_button.SetEvent(uimg.__mem_func__(self.UjmijPrzyjaciela))
  123.  
  124.         self.textRenderer = self.TextRenderer()
  125.         self.textRenderer.SetParent(self)
  126.         self.textRenderer.SetPosition(20, 28)
  127.     #   self.textRenderer.SetFontColorNew(230, 208, 162)
  128.         self.textRenderer.SetTargetName("")
  129.         self.textRenderer.Show()
  130.  
  131.         self.resizeButton = self.ResizeButton()
  132.         self.resizeButton.SetParent(self)
  133.         self.resizeButton.SetSize(20, 20)
  134.         self.resizeButton.SetPosition(280, 180)
  135.         self.resizeButton.SetMoveEvent(uimg.__mem_func__(self.ResizeWhisperDialog))
  136.         self.resizeButton.Show()
  137.  
  138.         self.ResizeWhisperDialog()
  139.  
  140.     def Destroy(self):
  141.  
  142.         self.eventMinimize = None
  143.         self.eventClose = None
  144.         self.eventAcceptTarget = None
  145.  
  146.         self.ClearDictionary()
  147.         self.scrollBar.Destroy()
  148.         self.titleName = None
  149.         self.titleNameEdit = None
  150.         self.closeButton = None
  151.         self.scrollBar = None
  152.         self.chatLine = None
  153.         self.sendButton = None
  154.         self.ignoreButton = None
  155.         self.reportViolentWhisperButton = None
  156.         self.acceptButton = None
  157.         self.minimizeButton = None
  158.         self.textRenderer = None
  159.         self.board = None
  160.         self.editBar = None
  161.         self.resizeButton = None
  162.        
  163.     def DodajPrzyjaciela(self):
  164.         if self.targetName != 0:
  165.             net.SendMessengerAddByNamePacket(self.targetName)
  166.            
  167.     def UjmijPrzyjaciela(self):
  168.         net.SendChatPacket(chat.CHAT_TYPE_INFO, "Mały penis KoYGeRa")
  169.         net.SendMessengerRemovePacket(0, self.targetName)
  170.         net.SendChatPacket(chat.CHAT_TYPE_INFO, "Bardzo mały penis KoYGeRa")
  171.  
  172.     def ResizeWhisperDialog(self):
  173.         (xPos, yPos) = self.resizeButton.GetLocalPosition()
  174.         if xPos < 280:
  175.             self.resizeButton.SetPosition(280, yPos)
  176.             return
  177.         if yPos < 150:
  178.             self.resizeButton.SetPosition(xPos, 150)
  179.             return
  180.         self.SetWhisperDialogSize(xPos + 20, yPos + 20)
  181.  
  182.     def SetWhisperDialogSize(self, width, height):
  183.         try:
  184.  
  185.             max = int((width-90)/6) * 3 - 6
  186.  
  187.             self.board.SetSize(width, height)
  188.             self.scrollBar.SetPosition(width-25, 35)
  189.             self.scrollBar.SetScrollBarSize(height-100)
  190.             self.scrollBar.SetPos(1.0)
  191.             self.editBar.SetSize(width-18, 50)
  192.             self.chatLine.SetSize(width-90, 40)
  193.             self.chatLine.SetLimitWidth(width-90)
  194.             self.SetSize(width, height)
  195.  
  196.             if 0 != self.targetName:
  197.                 chat.SetWhisperBoxSize(self.targetName, width - 50, height - 90)           
  198.            
  199.             if localemg.IsARABIC():
  200.                 self.textRenderer.SetPosition(width-20, 28)
  201.                 self.scrollBar.SetPosition(width-25+self.scrollBar.GetWidth(), 35)
  202.                 self.editBar.SetPosition(10 + self.editBar.GetWidth(), height-60)
  203.                 self.sendButton.SetPosition(width - 80-5 + self.sendButton.GetWidth(), 10)
  204.                 self.minimizeButton.SetPosition(width-42 + self.minimizeButton.GetWidth(), 12)
  205.                 self.closeButton.SetPosition(width-24+self.closeButton.GetWidth(), 12)             
  206.                 self.chatLine.SetPosition(5 + self.chatLine.GetWidth(), 5)
  207.                 self.board.SetPosition(self.board.GetWidth(), 0)
  208.             else:
  209.                 self.textRenderer.SetPosition(20, 28)
  210.                 self.scrollBar.SetPosition(width-25, 35)
  211.                 self.editBar.SetPosition(10, height-60)
  212.                 self.sendButton.SetPosition(width-80-5, 10)
  213.                 self.minimizeButton.SetPosition(width-42, 12)
  214.                 self.closeButton.SetPosition(width-24, 12)
  215.  
  216.             self.SetChatLineMax(max)
  217.  
  218.         except:
  219.             import exception
  220.             exception.Abort("WhisperDialog.SetWhisperDialogSize.BindObject")
  221.  
  222.     def SetChatLineMax(self, max):
  223.         self.chatLine.SetMax(max)
  224.  
  225.         from grpText import GetSplitingTextLine
  226.  
  227.         text = self.chatLine.GetText()
  228.         if text:
  229.             self.chatLine.SetFontColorNew(160, 121, 112)
  230.             self.chatLine.SetText(GetSplitingTextLine(text, max, 0))
  231.  
  232.     def OpenWithTarget(self, targetName):
  233.         chat.CreateWhisper(targetName)
  234.         chat.SetWhisperBoxSize(targetName, self.GetWidth() - 60, self.GetHeight() - 90)
  235.         self.chatLine.SetFocus()
  236.         self.titleName.SetText(targetName)
  237.         self.targetName = targetName
  238.         self.textRenderer.SetTargetName(targetName)
  239.         self.titleNameEdit.Hide()
  240.         self.ignoreButton.Hide()
  241.         if app.IsDevStage():
  242.             self.reportViolentWhisperButton.Show()
  243.         else:
  244.             self.reportViolentWhisperButton.Hide()
  245.         self.acceptButton.Hide()
  246.         self.gamemasterMark.Hide()
  247.         self.minimizeButton.Show()
  248.  
  249.     def OpenWithoutTarget(self, event):
  250.         self.eventAcceptTarget = event
  251.         self.titleName.SetFontColorNew(230, 208, 162)
  252.         self.titleName.SetText("")
  253.         self.titleNameEdit.SetFontColorNew(230, 208, 162)
  254.         self.titleNameEdit.SetText("")
  255.         self.titleNameEdit.SetFocus()
  256.         self.targetName = 0
  257.         self.titleNameEdit.Show()
  258.         self.ignoreButton.Hide()
  259.         self.reportViolentWhisperButton.Hide()
  260.         self.acceptButton.Show()
  261.         self.minimizeButton.Hide()
  262.         self.gamemasterMark.Hide()
  263.  
  264.     def SetGameMasterLook(self):
  265.         self.gamemasterMark.Show()
  266.         self.reportViolentWhisperButton.Hide()
  267.  
  268.     def Minimize(self):
  269.         self.titleNameEdit.KillFocus()
  270.         self.chatLine.KillFocus()
  271.         self.Hide()
  272.  
  273.         if None != self.eventMinimize:
  274.             self.eventMinimize(self.targetName)
  275.  
  276.     def Close(self):
  277.         chat.ClearWhisper(self.targetName)
  278.         self.titleNameEdit.KillFocus()
  279.         self.chatLine.KillFocus()
  280.         self.Hide()
  281.  
  282.         if None != self.eventClose:
  283.             self.eventClose(self.targetName)
  284.  
  285.     def ReportViolentWhisper(self):
  286.         net.SendChatPacket("/reportviolentwhisper " + self.targetName)
  287.  
  288.     def IgnoreTarget(self):
  289.         net.SendChatPacket("/ignore " + self.targetName)
  290.  
  291.     def AcceptTarget(self):
  292.         name = self.titleNameEdit.GetText()
  293.         if len(name) <= 0:
  294.             self.Close()
  295.             return
  296.  
  297.         if None != self.eventAcceptTarget:
  298.             self.titleNameEdit.KillFocus()
  299.             self.eventAcceptTarget(name)
  300.  
  301.     def OnScroll(self):
  302.         chat.SetWhisperPosition(self.targetName, self.scrollBar.GetPos())
  303.  
  304.     def SendWhisper(self):
  305.  
  306.         text = self.chatLine.GetText()
  307.         textLength = len(text)
  308.  
  309.         if textLength > 0:
  310.             if net.IsInsultIn(text):
  311.                 chat.AppendChat(chat.CHAT_TYPE_INFO, localemg.CHAT_INSULT_STRING)
  312.                 return
  313.  
  314.             net.SendWhisperPacket(self.targetName, text)
  315.             self.chatLine.SetFontColorNew(160, 121, 112)
  316.             self.chatLine.SetText("")
  317.  
  318.             chat.AppendWhisper(chat.WHISPER_TYPE_CHAT, self.targetName, player.GetName() + " : " + text)
  319.  
  320.     def OnTop(self):
  321.         self.chatLine.SetFocus()
  322.        
  323.     def BindInterface(self, interface):
  324.         self.interface = interface
  325.        
  326.     def OnMouseLeftButtonDown(self):
  327.         hyperlink = uimg.GetHyperlink()
  328.         if hyperlink:
  329.             if app.IsPressed(app.DIK_LALT):
  330.                 link = chat.GetLinkFromHyperlink(hyperlink)
  331.                 ime.PasteString(link)
  332.             else:
  333.                 self.interface.MakeHyperlinkTooltip(hyperlink)
  334.  
  335. if "__main__" == __name__:
  336.     import uiTest
  337.  
  338.     class TestApp(uiTest.App):
  339.         def OnInit(self):
  340.             wnd = WhisperDialog(self.OnMax, self.OnMin)
  341.             wnd.LoadDialog()
  342.             wnd.OpenWithoutTarget(self.OnNew)
  343.             wnd.SetPosition(0, 0)
  344.             wnd.Show()
  345.  
  346.             self.wnd = wnd
  347.  
  348.         def OnMax(self):
  349.             pass
  350.  
  351.         def OnMin(self):
  352.             pass
  353.  
  354.         def OnNew(self):
  355.             pass
  356.  
  357.     TestApp().MainLoop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement