³ò
J3IHc           @   sm  d  Z  d d k Z d d k Z d d k l Z d d k Z d d k i Z d d k	 i
 Z
 d d k i Z d „  Z e d ƒ i d d ƒ Z e d ƒ Z e i d	 ƒ Z e i d
 ƒ Z h  d e i <d e i <d e i <d e i <d e i <Z d e
 i f d „  ƒ  YZ d „  Z d e f d „  ƒ  YZ d e i f d „  ƒ  YZ d „  Z e  d j o d GHd GHn d S(   s:   Panel to execute scripts and redirect their output for SPEiÿÿÿÿN(   t   escapec         C   s   t  i i t i d |  ƒ S(   Nt   skinLocation(   t   ost   patht   joint   infot   INFO(   t   x(    (    s   C:\py\_spe\tabs\Output.pyt   icon   s    s
   lookup.pngs   \s   \\s   run.pngs   (\s*)(File "(.*))
s   File "([^"]*)", line (\d+)t   oks
   bad signals   access denieds   no such processs   unspecified errort   Outputc           B   s›   e  Z d  Z d d „ Z d „  Z d d e d „ Z d „  Z d „  Z	 e d „ Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   iÿÿÿÿc         O   sZ   t  i i |  | | | Ž |  i d d d d d d d d d d	 d
 d g ƒ | i |  _ d  S(   Nt   normal_facet   couriert
   fixed_facet   sizesi   i	   i
   i   i   i   i   (   t   htmlt
   HtmlWindowt   __init__t   SetFontst   app(   t   selft   parentt   argst   keyw(    (    s   C:\py\_spe\tabs\Output.pyR      s    1c         C   sX   |  i  i oG |  i  i } | i i o | i i i | ƒ qT | i i i | ƒ n d  S(   N(   R   t   childrent   childActivet   framet   menuBart	   check_runt   parentFrame(   R   t   boolt   child(    (    s   C:\py\_spe\tabs\Output.pyt
   _check_run$   s
    s   Running script...c         C   sr  |  i  d j o^| p
 | } n |  i d t | f ƒ |  i | ƒ |  i ƒ  |  i ƒ  |  i t i |  i	 ƒ |  i t i
 |  i ƒ |  i t i |  i ƒ t i |  ƒ |  _ |  i i ƒ  t i o) t i | t i t i B|  i ƒ |  _  n& t i | t i t i B|  i ƒ |  _  |  i i ƒ  |  _ |  i i ƒ  |  _ |  i i ƒ  |  _ t |  i _ |  i t ƒ | |  _  n d S(   sU   Executes a command of which the output will be redirected by OnIdle and OnEndProcess.iÿÿÿÿs\   <table bgcolor=#CCCCCC width=100%%><tr><td><TT><img src="%s">&nbsp;%s</TT></td></tr></table>N(!   t   pidt   AddTextt   RUN_ICONt   SetStatusTextt   UpdateToolbart   Raiset   Bindt   wxt   EVT_IDLEt   OnIdlet   EVT_END_PROCESSt   OnEndProcesst   EVT_TEXT_COPYt   Copyt   Processt   processt   RedirectR   t   WINt   Executet
   EXEC_ASYNCt   EXEC_NOHIDEt   EXEC_MAKE_GROUP_LEADERt   GetInputStreamt   inputstreamt   GetErrorStreamt   errorstreamt   GetOutputStreamt   outputstreamt   WriteR    t   Truet   beep(   R   t   commandt   labelt
   statustextR?   (    (    s   C:\py\_spe\tabs\Output.pyR3   -   s*     



)%c         C   s˜   t  i i |  i ƒ o~ |  i d j on t  i i |  i t  i d t  i ƒ} |  i d d  ƒ d t	 i
 | d ƒ } |  i | ƒ |  i | d t ƒn d  S(   Niÿÿÿÿt   flagst   events   Script stopped by user (%s).s   unknown errort   error(   R(   R/   t   ExistsR!   t   Killt   SIGKILLt   KILL_CHILDRENR,   t   Nonet
   KILL_ERRORt   getR$   R"   R>   (   R   t   resultt   message(    (    s   C:\py\_spe\tabs\Output.pyRG   H   s    &$c         C   s   |  i  d j	 S(   s)   Is the instance busy executing a command.iÿÿÿÿ(   R!   (   R   (    (    s   C:\py\_spe\tabs\Output.pyt   IsBusyP   s    c         C   s    | i  d d ƒ i  d d ƒ } | o0 t | ƒ } t i d t | ƒ } d | } n | i  d d ƒ } |  i | ƒ |  i d |  i ƒ  d	 |  i ƒ  d	 ƒ d
 S(   s<   Add text and in case of error, colour red and provide links.s   
s   
s   <string>s   &lt;string&gt;s6   \g<1><img src='%s'>&nbsp;<a href='\g<2>'>\g<2></a><br>s   <font color=red>%s</font>s   <br>i    i   N(	   t   replaceR    t   RE_LINKt   subt	   FIND_ICONt   AppendToPaget   Scrollt   GetVirtualSizet   GetScrollPixelsPerUnit(   R   t   textRE   (    (    s   C:\py\_spe\tabs\Output.pyR"   U   s    c         C   s	   | GHd  S(   N(    (   R   RX   (    (    s   C:\py\_spe\tabs\Output.pyR$   `   s    c         C   s   d  S(   N(    (   R   (    (    s   C:\py\_spe\tabs\Output.pyR%   c   s    c         C   s   |  i  d ƒ d  S(   Nt    (   t   SetPage(   R   (    (    s   C:\py\_spe\tabs\Output.pyt   Clearh   s    c         C   s‰   t  i |  i ƒ  ƒ } t  i i ƒ  oC z. t  i i | ƒ p |  i i i d ƒ n Wd  t  i i	 ƒ  Xn |  i i i d ƒ | i
 ƒ  d  S(   Ns"   Data can't be copied to clipboard.s   Clipboard can't be opened.(   R(   t   TextDataObjectt   SelectionToTextt   TheClipboardt   Opent   SetDataR   t   parentPanelt   messageErrort   Closet   Skip(   R   RD   t	   text_data(    (    s   C:\py\_spe\tabs\Output.pyR.   k   s    c         C   sˆ   |  i  i ƒ  o> |  i  i ƒ  } |  i t | ƒ i d d ƒ i d d ƒ ƒ n |  i i ƒ  o& |  i i ƒ  } |  i | d t ƒn d  S(   Nt    s   &nbsp;s   	RE   (   R8   t   CanReadt   readR"   R    RP   R:   R>   (   R   RD   RX   (    (    s   C:\py\_spe\tabs\Output.pyR*   x   s    /c         C   s­   |  i  t i ƒ |  i  t i ƒ |  i | ƒ | d  j o |  i i ƒ  n d  |  _ d |  _ |  i	 ƒ  |  i
 t ƒ | o. d } |  i | ƒ |  i | ƒ t i ƒ  n d  S(   Niÿÿÿÿs   Script terminated.(   t   UnbindR(   R)   R+   R*   RJ   R0   t   DestroyR!   R%   R    t   FalseR$   R"   t   Bell(   R   RD   RN   (    (    s   C:\py\_spe\tabs\Output.pyR,   €   s    		
c         C   s•   t  i | i ƒ  ƒ } yS | i d ƒ } t | i d ƒ ƒ } |  i | | d ƒ |  i d | | f ƒ Wn& t j
 o } |  i d | ƒ n Xd  S(   Ni   i   s   Jumped to file "%s" (line %s).s&   SPE could not locate source file. (%s)(   t   RE_LOCATIONt   matcht   GetHreft   groupt   intt   OpenFileR$   t	   Exception(   R   t   linkInfoRn   t   fileNamet   linenoRN   (    (    s   C:\py\_spe\tabs\Output.pyt   OnLinkClicked”   s    c         C   s   | G| GHd  S(   N(    (   R   Ru   Rv   (    (    s   C:\py\_spe\tabs\Output.pyRr   ž   s    N(   t   __name__t
   __module__R!   RJ   R   R    Rk   R3   RG   RO   R"   R$   R%   R[   R.   R*   R,   Rw   Rr   (    (    (    s   C:\py\_spe\tabs\Output.pyR
      s   											
c         O   s   t  i i |  | | Ž d  S(   N(   R(   t   OutputStreamR=   (   R   R   R   (    (    s   C:\py\_spe\tabs\Output.pyR=   ¡   s    t   Panelc           B   s   e  Z d  „  Z d „  Z RS(   c         O   sG   t  i |  d | d d | | Ž| i |  _ | i |  _ | i |  _ d  S(   NR   t   idiÿÿÿÿ(   R
   R   R   t   openListRr   t   SetActiveStatusTextR$   (   R   t   panelR   R   (    (    s   C:\py\_spe\tabs\Output.pyR   ¥   s    c         C   s   |  i  ƒ  i d ƒ d  S(   Ni   (   t	   GetParentt   SetSelection(   R   (    (    s   C:\py\_spe\tabs\Output.pyR&   «   s    (   Rx   Ry   R   R&   (    (    (    s   C:\py\_spe\tabs\Output.pyR{   ¤   s   	t	   TestFramec           B   s    e  Z d d  d „ Z d „  Z RS(   iÿÿÿÿc         O   sH   t  i i |  d | d | | | Žt d |  d d ƒ |  _ |  i ƒ  d  S(   NR   R|   iÿÿÿÿ(   R(   t   FrameR   R
   t   outputt   Show(   R   R   R|   R   R   (    (    s   C:\py\_spe\tabs\Output.pyR   ±   s    "c         C   s;   d d  k  } x( t d ƒ D] } |  i i d | ƒ q Wd  S(   Niÿÿÿÿi   s   python -c "%s/0"(   t   timet   rangeR„   R3   (   R   R†   t   i(    (    s   C:\py\_spe\tabs\Output.pyt   test¶   s     N(   Rx   Ry   RJ   R   R‰   (    (    (    s   C:\py\_spe\tabs\Output.pyR‚   ¯   s   c          C   s@   t  i ƒ  }  t ƒ  } |  i | ƒ t  i | i ƒ |  i ƒ  d  S(   N(   R(   t   PySimpleAppR‚   t   SetTopWindowt	   CallAfterR‰   t   MainLoop(   R   R   (    (    s   C:\py\_spe\tabs\Output.pyR‰   ¾   s
    	t   __main__s   <hello world>s                hello world(!   t   __doc__R   t   ret   cgiR    R(   t   wx.stct   stct   wx_stct   wx.htmlR   t	   _spe.infoR   R   RP   RS   R#   t   compileRQ   Rm   t   KILL_OKt   KILL_BAD_SIGNALt   KILL_ACCESS_DENIEDt   KILL_NO_PROCESSRK   R   R
   R=   R{   Rƒ   R‚   R‰   Rx   (    (    (    s   C:\py\_spe\tabs\Output.pys   <module>   s2   	†		