comparison dwtx/jface/text/TextViewerHoverManager.d @ 162:1a5b8f8129df

...
author Frank Benoit <benoit@tionex.de>
date Mon, 08 Sep 2008 00:51:37 +0200
parents f8d52b926852
children 862b05e0334a
comparison
equal deleted inserted replaced
161:f8d52b926852 162:1a5b8f8129df
194 /** The hover information computation thread */ 194 /** The hover information computation thread */
195 private Thread fThread; 195 private Thread fThread;
196 /** The stopper of the computation thread */ 196 /** The stopper of the computation thread */
197 private ITextListener fStopper; 197 private ITextListener fStopper;
198 /** Internal monitor */ 198 /** Internal monitor */
199 private Object fMutex= new Object(); 199 private Object fMutex;
200 /** The currently shown text hover. */ 200 /** The currently shown text hover. */
201 private /+volatile+/ ITextHover fTextHover; 201 private /+volatile+/ ITextHover fTextHover;
202 /** 202 /**
203 * Tells whether the next mouse hover event 203 * Tells whether the next mouse hover event
204 * should be processed. 204 * should be processed.
223 * 223 *
224 * @param textViewer the viewer for which the controller is created 224 * @param textViewer the viewer for which the controller is created
225 * @param creator the information control creator 225 * @param creator the information control creator
226 */ 226 */
227 public this(TextViewer textViewer, IInformationControlCreator creator) { 227 public this(TextViewer textViewer, IInformationControlCreator creator) {
228 fMutex= new Object();
228 super(creator); 229 super(creator);
229 fTextViewer= textViewer; 230 fTextViewer= textViewer;
230 fStopper= new class() ITextListener { 231 fStopper= new class() ITextListener {
231 public void textChanged(TextEvent event) { 232 public void textChanged(TextEvent event) {
232 synchronized (fMutex) { 233 synchronized (fMutex) {
349 } 350 }
350 fThread= new Thread( &threadrun ); 351 fThread= new Thread( &threadrun );
351 fThread.name = "Text Viewer Hover Presenter"; //$NON-NLS-1$ 352 fThread.name = "Text Viewer Hover Presenter"; //$NON-NLS-1$
352 353
353 fThread.isDaemon(true); 354 fThread.isDaemon(true);
354 fThread.setPriority(Thread.MIN_PRIORITY); 355 fThread.priority(Thread.PRIORITY_MIN);
355 synchronized (fMutex) { 356 synchronized (fMutex) {
356 fTextViewer.addTextListener(fStopper); 357 fTextViewer.addTextListener(fStopper);
357 fThread.start(); 358 fThread.start();
358 } 359 }
359 } 360 }
412 if ( cast(ITextViewerExtension5)fTextViewer ) { 413 if ( cast(ITextViewerExtension5)fTextViewer ) {
413 ITextViewerExtension5 extension= cast(ITextViewerExtension5) fTextViewer; 414 ITextViewerExtension5 extension= cast(ITextViewerExtension5) fTextViewer;
414 return extension.widgetOffset2ModelOffset(widgetOffset); 415 return extension.widgetOffset2ModelOffset(widgetOffset);
415 } 416 }
416 417
417 return widgetOffset + fTextViewer._getVisibleRegionOffset(); 418 return widgetOffset + fTextViewer._getVisibleRegionOffset_package();
418 419
419 } catch (IllegalArgumentException e) { 420 } catch (IllegalArgumentException e) {
420 return -1; 421 return -1;
421 } 422 }
422 } 423 }
515 * @return the currently shown text hover or <code>null</code> 516 * @return the currently shown text hover or <code>null</code>
516 */ 517 */
517 protected ITextHover getCurrentTextHover() { 518 protected ITextHover getCurrentTextHover() {
518 return fTextHover; 519 return fTextHover;
519 } 520 }
521 package ITextHover getCurrentTextHover_package() {
522 return getCurrentTextHover();
523 }
520 524
521 /* 525 /*
522 * @see dwtx.jface.text.AbstractHoverInformationControlManager#dispose() 526 * @see dwtx.jface.text.AbstractHoverInformationControlManager#dispose()
523 * @since 3.0 527 * @since 3.0
524 */ 528 */