From: <pga...@vu...> - 2017-01-10 23:36:59
|
Revision: 43974 Author: pgardner Date: 2017-01-10 23:36:50 +0000 (Tue, 10 Jan 2017) Log Message: ----------- better printin Modified Paths: -------------- client/trunk/azureus3/src/com/aelitis/azureus/ui/swt/views/TopBarView.java client/trunk/azureus3/src/com/aelitis/azureus/ui/swt/views/ViewQuickNotifications.java Modified: client/trunk/azureus3/src/com/aelitis/azureus/ui/swt/views/TopBarView.java =================================================================== --- client/trunk/azureus3/src/com/aelitis/azureus/ui/swt/views/TopBarView.java 2017-01-10 21:59:20 UTC (rev 43973) +++ client/trunk/azureus3/src/com/aelitis/azureus/ui/swt/views/TopBarView.java 2017-01-10 23:36:50 UTC (rev 43974) @@ -302,9 +302,7 @@ } for ( final UISWTViewCore view: topbarViews ){ - - final String id = view.getViewID(); - + final String name = getViewName( view ); final MenuItem mi = new MenuItem( menu, SWT.CHECK ); @@ -322,19 +320,19 @@ widgetSelected( SelectionEvent e ) { - boolean sel = mi.getSelection(); + boolean enabled = mi.getSelection(); - COConfigurationManager.setParameter( "topbar.view." + id + ".enabled", sel ); - - view.getComposite().setVisible( sel ); - - if ( sel ){ + setEnabled( view, enabled ); + + if ( enabled ){ - listPlugins.add( name ); + activateTopBar( view ); }else{ listPlugins.remove( name ); + + activateTopBar( null ); } Utils.relayout( cPluginArea ); @@ -547,7 +545,45 @@ activateTopBar( UISWTViewCore view ) { - + if ( view == null ){ + + // indicates that a view has been disabled and we need to maybe tidy up + + if ( activeTopBar != null ){ + + if ( !isEnabled( activeTopBar )){ + + Composite c = activeTopBar.getComposite(); + + while (c.getParent() != cPluginArea ){ + + c = c.getParent(); + } + + c.setVisible(false); + + activeTopBar = null; + + for ( UISWTViewCore v: topbarViews ){ + + if ( isEnabled( v )){ + + // switch to first enabled found, if any + + view = v; + } + } + } + } + + if ( view == null ){ + + // no enabled views, bail + + return; + } + } + if ( !isEnabled( view )){ Debug.out( "Attempt to activate disabled view" ); Modified: client/trunk/azureus3/src/com/aelitis/azureus/ui/swt/views/ViewQuickNotifications.java =================================================================== --- client/trunk/azureus3/src/com/aelitis/azureus/ui/swt/views/ViewQuickNotifications.java 2017-01-10 21:59:20 UTC (rev 43973) +++ client/trunk/azureus3/src/com/aelitis/azureus/ui/swt/views/ViewQuickNotifications.java 2017-01-10 23:36:50 UTC (rev 43974) @@ -20,7 +20,10 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.events.MouseAdapter; import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.events.PaintEvent; +import org.eclipse.swt.events.PaintListener; import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.*; @@ -31,6 +34,7 @@ import org.gudy.azureus2.ui.swt.plugins.UISWTView; import org.gudy.azureus2.ui.swt.plugins.UISWTViewEvent; import org.gudy.azureus2.ui.swt.pluginsimpl.UISWTViewCoreEventListener; +import org.gudy.azureus2.ui.swt.shells.GCStringPrinter; import com.aelitis.azureus.activities.VuzeActivitiesEntry; import com.aelitis.azureus.activities.VuzeActivitiesManager; @@ -46,7 +50,7 @@ private Composite composite; private Label notification_icon; - private BufferedLabel notification_text; + private Label notification_text; private BufferedLabel more_text; public @@ -81,7 +85,7 @@ // text - notification_text = new BufferedLabel(composite,SWT.NONE); + notification_text = new Label(composite,SWT.DOUBLE_BUFFERED); gridData = new GridData(GridData.FILL_HORIZONTAL); Utils.setLayoutData(notification_text, gridData); @@ -105,6 +109,7 @@ gridData = new GridData(GridData.FILL_HORIZONTAL); gridData.horizontalSpan = 2; Utils.setLayoutData(more_text, gridData); + notification_text.setData( "" ); composite.addMouseListener( listener ); @@ -112,6 +117,29 @@ notification_icon.addMouseListener( listener ); notification_text.addMouseListener( listener ); more_text.addMouseListener( listener ); + + notification_text.addPaintListener( + new PaintListener() { + + @Override + public void paintControl(PaintEvent e) { + String text = (String)notification_text.getData(); + + int style = SWT.LEFT; + + Rectangle bounds = notification_text.getBounds(); + + bounds.x = 4; + bounds.y = 0; + bounds.width -= 8; + + GCStringPrinter sp = new GCStringPrinter(e.gc, text, bounds, true, true, style ); + + sp.calculateMetrics(); + + sp.printString(); + } + }); } private void @@ -138,18 +166,32 @@ VuzeActivitiesEntry entry = (VuzeActivitiesEntry)temp[0]; + String old_text = (String)notification_text.getData(); + if ( entry == null ){ notification_icon.setImage( null ); + + if ( old_text.length() > 0 ){ + + notification_text.setData( "" ); + + notification_text.redraw(); + } - notification_text.setText( "" ); - more_text.setText( "" ); }else{ - notification_text.setText( entry.getText()); + String cur_text = entry.getText(); + if ( !old_text.equals( cur_text )){ + + notification_text.setData(cur_text ); + + notification_text.redraw(); + } + String icon_id = entry.getIconID(); if ( icon_id != null ){ |