
    ը	f              	           d Z ddlZddlmZmZ ddlmZ ddlmZ  ed e	d            ed	   j                   e	d
             ed e	d       e	d            dZ G d de      Z G d de      Z G d de      Zy)a  
@package swipe.toolbars

@brief Map Swipe toolbars and icons.

Classes:
 - toolbars::SwipeMapToolbar
 - toolbars::SwipeMainToolbar
 - toolbars::SwipeMiscToolbar

(C) 2012 by the GRASS Development Team

This program is free software under the GNU General Public License
(>=v2). Read the file COPYING that comes with GRASS for details.

@author Anna Kratochvilova <kratochanna gmail.com>
    N)BaseToolbar	BaseIcons)Menu)MetaIcontoolsTools)imglabeladdRastzSelect raster mapsinfozQuery raster/vector map(s)z#Query selected raster/vector map(s))r	   r
   desc)r   r   queryc                   "    e Zd ZdZd Zd Zd Zy)SwipeMapToolbarz/Map toolbar (to control map zoom and rendering)c                    t        j                  | ||       | j                  | j                                | j                  | _        | j                          | j                  | j                  | j                  | j                  | j                  fD ]   }| j                  j                  d| |       " | j                  | j                  d       y)zMap toolbar constructormouseUse)grouptoolbartoolFN)r   __init__InitToolbar_toolbarDatapan_defaultRealizepointerr   zoomInzoomOuttoolSwitcherAddToolToGroup
EnableToolzoomBack)selfparentr   r   s       2/usr/lib/grass83/gui/wxpython/mapswipe/toolbars.pyr   zSwipeMapToolbar.__init__(   s    T6<8**,- 	\\4::txxdllS 	XD,,:tRV,W	X 	u-    c                 2   t         }| j                  d|d   j                  f|d   | j                  j                  fd|d   j                  f|d   | j                  j
                  t        j                  fdt        d   j                  ft        d   | j                  j                  t        j                  fd|d   j                  f|d   | j                  j                  t        j                  fd|d   j                  f|d   | j                  j                  t        j                  fd|d   j                  f|d   | j                  j                  t        j                  fdd	|d	   j                  f|d	   | j                  j                  fd
|d   j                  f|d   | j                  j                  fdd|d   j                  f|d   | j                  j                  fdt         d   j                  ft         d   | j                  j                   ff      S )z*Returns toolbar data (name, icon, handler)	rendermaprenderr   r   r   r   r   Nr"   	zoomToMap
zoomExtentsaveFilemapDispSettings)r   _getToolbarDatar
   r$   OnRender	OnPointerwx
ITEM_CHECK
swipeIconsOnQueryOnPanOnZoomIn	OnZoomOut
OnZoomBackOnZoomToMap
SaveToFileOnMapDisplayProperties)r#   iconss     r%   r   zSwipeMapToolbar._toolbarData7   s    ## !%/"7"78(OKK(( i 0 6 67)$KK))MM	 j1778w'KK''MM	 E%L../%LKK%%MM	 uX445(OKK((MM	 i 0 6 67)$KK))MM	 z!2!8!89*%KK** !%"5";";<,'KK++
 z!2!8!89*%KK** '	2C(D(J(JK/0KK66k:<
 <	
r&   c                      y)zZSet currently selected map.
        Unused, needed because of DoubleMapPanel API.
        N )r#   indexs     r%   SetActiveMapzSwipeMapToolbar.SetActiveMapz   s     	r&   N)__name__
__module____qualname____doc__r   r   rA   r?   r&   r%   r   r   %   s    9.A
Fr&   r   c                   (    e Zd ZdZd Zd Zd Zd Zy)SwipeMainToolbarz7Toolbar with tools related to application functionalityc                     t        j                   |        j                   j                                t	        j
                          _        t        t        d      t        d      gddg      D ]!  \  }} j                  j                  ||       #  j                  j                  d        j                  j                   j                  j                                 j                  j                  t        j                   fd        j                  d j                         t        d	      } j!                   j                  j#                         |        j%                          y
)Toolbar constructor)r$   z
Swipe modezMirror modeswipemirrorr   c                     j                   j                  j                  j                  | j	                                     S r*   )r$   SetViewMode
toggleModeGetClientDataGetSelection)eventr#   s    r%   <lambda>z+SwipeMainToolbar.__init__.<locals>.<lambda>   s1    $++11--e.@.@.BC r&      zChoose view modeN)r   r   r   r   r2   ChoicerN   zip_AppendSetSelectionSetSizeGetBestSizeBind
EVT_CHOICEInsertControlSetToolShortHelpGetIdr   )r#   r$   r
   cdatahelps   `    r%   r   zSwipeMainToolbar.__init__   s   T6***,- ))40|_a./'81D
 	1LE5 OO""5%0	1 	$$Q' ; ; =>MM	
 	1doo.#$doo335t<r&   c                     | j                  dt        d   j                  ft        d   | j                  j                  fddt        d   j                  ft        d   | j
                  ff      S )Toolbar data	addRasterr   r*   r   )r/   r4   r
   r$   OnSelectLayers
OnToolMenur#   s    r%   r   zSwipeMainToolbar._toolbarData   su    ## !*Y"7"="=>y)KK..
 j1778w'OO
 	
r&   c                     t        | j                  j                               D ]<  }|| j                  j                  |      k(  s"| j                  j	                  |       > y r*   )rangerN   GetCountrO   rX   )r#   modeis      r%   SetModezSwipeMainToolbar.SetMode   sL    t//12 	0At44Q77,,Q/	0r&   c                 D   t               }t        d      t        j                  | j                  j
                  dft        d      t        j                  | j                  j                  dffD ]x  \  }}}}t        j                  |t        j                  ||      }|j                  |       | j                  j                         j                  t        j                  ||       z | j                  j                         j                  |       |j                          y)zMenu for additional toolszSwitch orientationswitchOrientationzSwitch maps
switchMaps)
parentMenuidtextkindN)r   rV   r2   ITEM_NORMALr$   OnSwitchOrientationOnSwitchWindowsMenuItemID_ANY
AppendItem	GetWindowr[   EVT_MENU	PopupMenuDestroy)r#   rQ   toolMenur
   itypehandlerr   items           r%   rf   zSwipeMainToolbar.OnToolMenu   s    6 &'//#	 - ++	,
 	E'E5'4 ;;#		ED %KK!!#((gtD'	E. 	))(3r&   N)rB   rC   rD   rE   r   r   rm   rf   r?   r&   r%   rG   rG      s    A6
$0
r&   rG   c                       e Zd ZdZd Zd Zy)SwipeMiscToolbarz/Toolbar with miscellaneous tools related to appc                     t        j                  | |       | j                  | j                                | j	                          y)rI   N)r   r   r   r   r   )r#   r$   s     r%   r   zSwipeMiscToolbar.__init__   s2    T6***,-r&   c                 P   | j                  dt        d   j                  ft        d   | j                  j                  fdt        d   j                  ft        d   | j                  j
                  fdt        d   j                  ft        d   | j                  j                  ff      S )rc   settingsra   quit)r/   r   r
   r$   OnPreferencesOnHelpOnCloseWindowrg   s    r%   r   zSwipeMiscToolbar._toolbarData   s    ##  :!6!<!<=j)KK-- Yv.445f%KK&& Yv.445f%KK--
 	
r&   N)rB   rC   rD   rE   r   r   r?   r&   r%   r   r      s    9
r&   r   )rE   r2   gui_core.toolbarsr   r   gui_core.wrapr   
icons.iconr   rV   SetLabelr4   r   rG   r   r?   r&   r%   <module>r      s   $ 
 4   '74#,,Q/C-DE,-45
Yk YxQ{ Qh
{ 
r&   