
    d+                     v   d Z dZddlZddlmZ ddlZddlZddlZddlZddlm	Z	 ddl
mZ dej                  v rd	d
ddddddddd
Zn^dej                  v r)dej                  v sdej                  v rdddddddddd	Zn'dej                  v rddd dd!ddddd	Znd"d#d$dd!ddddd	Z G d% d&ej                        Zy)'zEditWindow class.z(Patrick K. O'Brien <pobrien@orbtech.com>    N)stc   )
dispatcher)VERSIONwxMSWzTimes New RomanzCourier NewArialzLucida ConsolezComic Sans MS
      z#FFFFFFz#FFFFB8z#404040)
timesmonohelvlucidaothersizelnsizebackcol	calltipbg	calltipfgwxGTKgtk2gtk3Serif	MonospaceSansznew century schoolbook	   )	r   r   r   r   r   r   r   r   r   wxMaczLucida GrandeMonacoGeneva   TimesCourier	Helveticac                       e Zd ZdZdej
                  ej                  ej                  ej                  z  fdZ	d Z
d Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd ZddZd Zy)
EditWindowz#EditWindow based on StyledTextCtrl.c                    t         j                  j                  | |||||       | j                          | j	                  t         j
                  | j                         t        j                  | j                  d       t        j                  | j                  d       t        j                  | j                  d       y)zCreate EditWindow instance.FontIncreasereceiversignalFontDecreaseFontDefaultN)
r   StyledTextCtrl__init___EditWindow__configBindEVT_STC_UPDATEUI
OnUpdateUIr   connect
_fontsizer)selfparentidposr   styles         2/usr/lib/python3/dist-packages/wx/py/editwindow.pyr.   zEditWindow.__init__H   s     	##D&"c4G		#&&8DOONKDOONKDOOMJ    c                 L   | sdt        j                  | j                  d       t        j                  | j                  d       t        j                  | j                  d       y| j                         }|dk(  r|dz  }n|dk(  r|dz  }n|dk(  rd}| j	                  |       y)zReceiver for Font* signals.r'   r(   r+   r,   Nr   r   )r   
disconnectr4   GetZoomSetZoom)r5   r*   r   s      r:   r4   zEditWindow._fontsizerR   s    !!4??>R!!4??>R!!4??=Q||~^#AID~%AID}$DTr;   c                    | j                  d       | j                  t        j                         | j	                  ddj                  t        j                               | j                  t               | j                  d       | j                  d       | j                  d       d| _        d| _        d| _        d| _        d| _        | j%                  | j"                         d| _        | j)                  | j&                         | j+                  d       d| _        d| _        | j1                  t        d          | j3                  t        d          | j5                  d       	 | j7                  d       y # t8        $ r Y y w xY w)	NFr       Tz .,;:([)]}'"\<>%^&+-=*/|`r   r   )setDisplayLineNumbersSetLexerr   STC_LEX_PYTHONSetKeyWordsjoinkeywordkwlist	setStylesFACESSetViewWhiteSpaceSetTabWidth
SetUseTabsautoCompleteautoCompleteIncludeMagicautoCompleteIncludeSingleautoCompleteIncludeDoubleautoCompleteCaseInsensitiveAutoCompSetIgnoreCaseautoCompleteAutoHideAutoCompSetAutoHideAutoCompStopsautoCallTipcallTipInsertCallTipSetBackgroundCallTipSetForegroundSetWrapModeSetEndAtLastLineAttributeErrorr5   s    r:   __configzEditWindow.__configc   sC   ""5)c(()CHHW^^45uu% (,%)-&)-&+/(""4#C#CD$)!  !:!:;89!!!%"45!!%"45	!!%( 		s   )E; ;	FFc                     || _         |r3| j                  dt        j                         | j	                  dd       y | j                  dd       | j	                  dd       y )Nr   (   r   r	   )lineNumbersSetMarginTyper   STC_MARGIN_NUMBERSetMarginWidth)r5   states     r:   rC   z EditWindow.setDisplayLineNumbers   sU     q#"7"782& q!$2&r;   c                    | j                  t        j                  d|z         | j                          | j	                  dt
        j                  j                  t
        j                               | j                  dt
        j                  j                  t
        j                               | j                  t        j                  dt        z         | j                  t        j                  d|z         | j                  t        j                  d       | j                  t        j                  d       | j                  t        j                   d|z         | j                  t        j"                  d|z         | j                  t        j$                  d       | j                  t        j&                  d	|z         | j                  t        j(                  d	|z         | j                  t        j*                  d
       | j                  t        j,                  d       | j                  t        j.                  d       | j                  t        j0                  d       | j                  t        j2                  d       | j                  t        j4                  d       | j                  t        j6                  d       | j                  t        j8                  d       | j                  t        j:                  d|z         y)z2Configure font size, typeface and color for lexer.z,face:%(mono)s,size:%(size)d,back:%(backcol)sTz*back:#C0C0C0,face:%(mono)s,size:%(lnsize)dzface:%(mono)szfore:#0000FF,back:#FFFF88zfore:#FF0000,back:#FFFF88zfore:#007F00,face:%(mono)s zfore:#7F007F,face:%(mono)szfore:#00007F,boldzfore:#7F0000zfore:#000033,back:#FFFFE8zfore:#0000FF,boldzfore:#007F7F,boldzfore:#7F7F7Fz1fore:#000000,face:%(mono)s,back:#E0C0E0,eolfilledN)StyleSetSpecr   STC_STYLE_DEFAULTStyleClearAllSetSelForegroundwxSystemSettings	GetColourSYS_COLOUR_HIGHLIGHTTEXTSetSelBackgroundSYS_COLOUR_HIGHLIGHTSTC_STYLE_LINENUMBERrK   STC_STYLE_CONTROLCHARSTC_STYLE_BRACELIGHTSTC_STYLE_BRACEBADSTC_P_DEFAULTSTC_P_COMMENTLINESTC_P_NUMBERSTC_P_STRINGSTC_P_CHARACTER
STC_P_WORDSTC_P_TRIPLESTC_P_TRIPLEDOUBLESTC_P_CLASSNAMESTC_P_DEFNAMESTC_P_OPERATORSTC_P_IDENTIFIERSTC_P_COMMENTBLOCKSTC_P_STRINGEOL)r5   facess     r:   rJ   zEditWindow.setStyles   sn    	#//H 	! 	dB$5$5$?$?@[@[$\]dB$5$5$?$?@W@W$XY 	#22FN	P#33)E1	3#225	7#005	7 	#++)E1	3#//6>	@#**	#**6>	@#--6>	@#..-	/#**(	*#005	7#---	/#++-	/#,,	#..	#00(	*#--MPUU	Wr;   c                 8   | j                         s| j                         ryd}d}d}| j                         }|dkD  r(| j                  |dz
        }| j	                  |dz
        }|r%t        |      dv rt        j                  k(  r|dz
  }|dk  rF| j                  |      }| j	                  |      }|r"t        |      dv r|t        j                  k(  r|}|dk\  r| j                  |      }|dk7  r|dk(  r| j                  |       y| j                  ||       y)zCheck for matching braces.Nr%   r   r   z[]{}())AutoCompActiveCallTipActiveGetCurrentPos	GetCharAt
GetStyleAtchrr   r   
BraceMatchBraceBadLightBraceHighlight)	r5   eventbraceAtCaretbraceOpposite
charBeforecaretPosstyleBefore	charAfter
styleAfters	            r:   r2   zEditWindow.OnUpdateUI   s     D$6$6$8
%%'a<15J//(Q,7K #j/X53---#a<L !x0I2JS^x7c000'1 OOL9M2=B#6|,m<r;   c                 D    | j                         | j                         k7  S )z2Return True if text is selected and can be copied.)GetSelectionStartGetSelectionEndr_   s    r:   CanCopyzEditWindow.CanCopy   s    %%'4+?+?+AAAr;   c                 F    | j                         xr | j                         S )z/Return True if text is selected and can be cut.)r   CanEditr_   s    r:   CanCutzEditWindow.CanCut   s    ||~0$,,.0r;   c                 $    | j                          S )z&Return True if editing should succeed.)GetReadOnlyr_   s    r:   r   zEditWindow.CanEdit   s    ##%%%r;   c                 d    t         j                  j                  |       xr | j                         S )z&Return True if pasting should succeed.)r   r-   CanPaster   r_   s    r:   r   zEditWindow.CanPaste   s$    !!**40CT\\^Cr;   c                 "    | j                         S N)	GetLengthr_   s    r:   GetLastPositionzEditWindow.GetLastPosition   s    ~~r;   c                 &    | j                  ||      S r   )GetTextRange)r5   startends      r:   GetRangezEditWindow.GetRange   s      ,,r;   c                 B    | j                         | j                         fS r   )	GetAnchorr   r_   s    r:   GetSelectionzEditWindow.GetSelection   s    ~~!3!3!555r;   c                 H    | j                  |      }| j                  |       y r   )LineFromPositionGotoLine)r5   r8   lines      r:   ShowPositionzEditWindow.ShowPosition   s    $$S)dr;   Nc                     |j                         t        j                  z   }|j                         t        j                  z  dk7  }| j	                         }| j                  d|      j                  d      }|j                         j                  d      }|s |j                         }|j                         }|r'| j                         d   }|j                  |d|      }	n%| j                         d   }|j                  ||      }	|	dk(  r1|dk7  r,|r|}|j                  |d|      }	nd}|j                  ||      }	|	dk(  rWt        j                  | ddt        j                  t        j                  z        }
|
j                          |
j!                          |r5|	dk(  r t        j"                  |j$                         y |j'                          | j)                  |	       | j+                  |	|	t-        |      z          y )Nr   zutf-8r   r%   zUnable to find the search text.z
Not found!)GetFlagsrn   FR_DOWNFR_MATCHCASEr   r   encodeGetFindStringlowerr   rfindfindMessageDialogOKICON_INFORMATION	ShowModalDestroy	CallAfterSetFocusCloser   SetSelectionlen)r5   findDatafindDlgbackward	matchcaser   
textstring
findstringr   locdlgs              r:   
DoFindNextzEditWindow.DoFindNext  s    ))+bjj89&&(2??:q@	""$]]1c*11':
++-44W=
#))+J#))+J%%'*E"":q%8C%%'*E//*e4C "9! &&z1e< ooj%8 "9""4)J&%%""5"557C MMOKKMbyW--. 	##sS_45r;   c                 H    | j                  |       | j                  |       y)z~Selects the text starting at the first position up to
        (but not including) the character at the last position.
        N)	SetAnchorSetCurrentPos)r5   from_to_s      r:   r   zEditWindow.SetSelection-  s     	u3r;   r   )__name__
__module____qualname____doc__rn   DefaultPositionDefaultSizeCLIP_CHILDRENSUNKEN_BORDERr.   r4   r/   rC   rJ   r2   r   r   r   r   r   r   r   r   r   r    r;   r:   r$   r$   D   s    - #%"*<*<nnB,<,<r?O?O,OK">'2Wh =DB1&D
 -6
*6X r;   r$   )r   
__author__rn   r   rH   ossystimeri   r   versionr   PlatformInforK   r-   r$   r   r;   r:   <module>r      s   7
 	   	 
    boo-)#,+%%%
E Vr%>%+r%>#'"4%%%	E +$$4%%%	E $%'4%%%	Ep ## p r;   