
    g
f                     Z    d Z dZdZdZdZddlmZ ddlmZ  G d d	ej                        Zy
)z$Id$z
$Revision$z$Date$z-Copyright (c) 2005-2008 Sun Microsystems Inc.LGPL    )	bookmarks)messagesc                   >     e Zd Z fdZd ZddZd Zd Zd Z xZ	S )	Bookmarksc                 2    t         |   |       i | _        y N)super__init___currentbookmarkindex)selfscript	__class__s     </usr/lib/python3/dist-packages/orca/scripts/web/bookmarks.pyr   zBookmarks.__init__    s     %'"    c                    |j                   | j                         f}| j                  j                  j	                         \  }}| j                         }||f| j                  |<   | j                  j                  t        j                         y)z?Add an in-page accessible object bookmark for this key and URI.N)
hw_code	getURIKey_script	utilitiesgetCaretContext
_objToPath
_bookmarkspresentMessager   BOOKMARK_ENTERED)r   r   
inputEventindexobjcharacterOffsetpaths          r   addBookmarkzBookmarks.addBookmark$   so     ##T^^%56#||55EEG_ !%!6##H$=$=>r   c                 F   |xs |j                   | j                         f}	 | j                  |   \  }}| j                  |      }|s| j                  j                          y| j                  j                  j                  ||       | j                  j                  j                  ||      }| j                  j                  |       | j                  j                  |       |d   | j                  |d   <   y# t        $ r | j                  j                          Y yw xY w)z;Go to the bookmark indexed at this key and this page's URI.Nr      )r   r   r   KeyErrorr   
systemBeep	pathToObjr   setCaretPositiongetObjectContentsAtOffsetspeakContentsdisplayContentsr   )r   r   r   r   r    offsetr   contentss           r   goToBookmarkzBookmarks.goToBookmark-   s     ?*,,dnn.>?	??51LD&
 nnT"LL##%//V<<<))CCCP""8,$$X./4Qx""58,  	LL##%	s   C: :#D D c                 |   i }| j                   j                         D ]  \  }}|d   |d   f||<    	 | j                  |       | j                  j	                  t
        j                         | j                  D ]	  } |         y# t        $ r, | j                  j	                  t
        j                         Y Mw xY w)z#Save the bookmarks for this script.r   r#   N)
r   itemssaveBookmarksToDiskr   r   r   BOOKMARKS_SAVEDIOErrorBOOKMARKS_SAVED_FAILURE_saveObservers)r   r   r   savedr   bookmarkos          r   saveBookmarkszBookmarks.saveBookmarksB   s     #446 	4OE8#A;3E%L	4	J$$U+LL''(@(@A $$ 	AC	  	JLL''(H(HI	Js   :B 2B;:B;c                 j   t        | j                  j                               }| j                         }g }|D ]  }|d   |k(  s|j	                  |d          ! |j                          t        |      dk(  r| j                  j                          yt        |      dk(  s|| j                  vr| j                  d|d   |f       y	 |j                  | j                  |         }| j                  d||dz      |f       y# t        t        t        f$ r | j                  d|d   |f       Y yw xY w)z!Go to the next bookmark location.r#   r   Nr   listr   keysr   appendsortlenr   r%   r   r-   r   
ValueErrorr$   
IndexErrorr   r   r   bm_keyscurrent_urithispage_hwkeysbm_keyr   s           r   goToNextBookmarkzBookmarks.goToNextBookmarkR   s:    t++-.nn&  	2FayK'&&vay1	2 	1$LL##%1$4;U;U(Ud?1+={*KL	M#))$*D*D[*QREd?57+C[*QRHj1 	Md?1+={*KL	M   	9D ,D21D2c                 j   t        | j                  j                               }| j                         }g }|D ]  }|d   |k(  s|j	                  |d          ! |j                          t        |      dk(  r| j                  j                          yt        |      dk(  s|| j                  vr| j                  d|d   |f       y	 |j                  | j                  |         }| j                  d||dz
     |f       y# t        t        t        f$ r | j                  d|d   |f       Y yw xY w)z%Go to the previous bookmark location.r#   r   Nr:   r;   rC   s           r   goToPrevBookmarkzBookmarks.goToPrevBookmarkp   s:    t++-.nn&  	2FayK'&&vay1	2 	1$LL##%1$4;U;U(Ud?1+={*KL	M#))$*D*D[*QREd?57+C[*QRHj1 	Md?1+={*KL	MrI   r	   )
__name__
__module____qualname__r   r!   r-   r8   rH   rK   __classcell__)r   s   @r   r   r      s#    (?8* M<Mr   r   N)	__id____version____date____copyright____license__orcar   r   r    r   r   <module>rW      s<   ( ?  kM	## kMr   