
    G@d                         d Z ddlmZmZmZ ddlmZmZmZm	Z	 ddl
mZ ddlmZ  G d de          Z G d d	e          Zd
S )z
Spyder API auxiliary widgets.
    )QEventQSizeSignal)QMainWindowQSizePolicyQToolBarQWidget)SpyderAPIError)APP_STYLESHEETc                   d     e Zd ZdZ e            Z	  ee          Z	  fdZ fdZ	 fdZ
 xZS )SpyderWindowWidgetz9MainWindow subclass that contains a SpyderDockablePlugin.c                     t                                                       || _        |                     t	          t
                               d S )N)super__init__widgetsetStyleSheetstrr   )selfr   	__class__s     Dlib/python3.11/site-packages/spyder/api/widgets/auxiliary_widgets.pyr   zSpyderWindowWidget.__init__'   sD     	3~../////    c                 |    t                                          |           | j                                         dS )z7Override Qt method to emit a custom `sig_close` signal.N)r   
closeEvent
sig_closedemitr   eventr   s     r   r   zSpyderWindowWidget.closeEvent.   s5    5!!!r   c                     |                                 t          j        k    r,| j                            |                                            t                                          |           dS )z
        Override Qt method to emit a custom `sig_windowstate_changed` signal
        when there's a change in the window state.
        N)typer   WindowStateChangesig_window_state_changedr   windowStater   changeEventr   s     r   r#   zSpyderWindowWidget.changeEvent3   s\    
 ::<<6333)..t/?/?/A/ABBBE"""""r   )__name__
__module____qualname____doc__r   r   objectr!   r   r   r#   __classcell__r   s   @r   r   r      s        CC J?%vf~~0 0 0 0 0    
# # # # # # # # #r   r   c                   .     e Zd ZdZ fdZd Zd Z xZS )MainCornerWidgetzM
    Corner widget to hold options menu, spinner and additional options.
    c                    t                                          |           t          dd          | _        |                     | j                   i | _        g | _        |                     |           t                      | _	        | j	        
                    d           | j	                            t          j        t          j                   |                     | j	                   d S )N   r   )r   r   r   
_icon_sizesetIconSize_widgets_actionssetObjectNamer	   _strutsetFixedWidthsetSizePolicyr   	Expanding	addWidget)r   parentnamer   s      r   r   zMainCornerWidget.__init__B   s       B--)))4   
 ii!!!$$$!!+"79NOOOt{#####r   c           	      "   || j         v rGt          d                    |t          | j                                                                       ||_        || j         |<   | j                            |                     |                     dS )zR
        Add a widget to the left of the last widget added to the corner.
        z:Wigdet with name "{}" already added. Current names are: {}N)	r1   r
   formatlistkeysIDr2   appendr8   )r   	widget_idr   s      r   
add_widgetzMainCornerWidget.add_widgetS   s     %% 6)T$-*<*<*>*>%?%?@@  
 	#)i T^^F3344444r   c                 2    || j         v r| j         |         S dS )zReturn a widget by unique id.N)r1   )r   rA   s     r   
get_widgetzMainCornerWidget.get_widgeta   s$    %%=++ &%r   )r$   r%   r&   r'   r   rB   rD   r)   r*   s   @r   r,   r,   =   s`         $ $ $ $ $"5 5 5, , , , , , ,r   r,   N)r'   qtpy.QtCorer   r   r   qtpy.QtWidgetsr   r   r   r	   spyder.api.exceptionsr
   spyder.utils.stylesheetr   r   r,    r   r   <module>rJ      s    
 . - - - - - - - - - F F F F F F F F F F F F 1 0 0 0 0 0 2 2 2 2 2 2&# &# &# &# &# &# &# &#R', ', ', ', ',x ', ', ', ', ',r   