1 /******************************************************************************* 2 * Copyright (c) 2000, 2008 IBM Corporation and others. 3 * All rights reserved. This program and the accompanying materials 4 * are made available under the terms of the Eclipse Public License v1.0 5 * which accompanies this distribution, and is available at 6 * http://www.eclipse.org/legal/epl-v10.html 7 * 8 * Contributors: 9 * IBM Corporation - initial API and implementation 10 * Port to the D programming language: 11 * Frank Benoit <benoit@tionex.de> 12 *******************************************************************************/ 13 module org.eclipse.swt.events.ShellAdapter; 14 15 import org.eclipse.swt.events.ShellListener; 16 17 /** 18 * This adapter class provides default implementations for the 19 * methods described by the <code>ShellListener</code> interface. 20 * <p> 21 * Classes that wish to deal with <code>ShellEvent</code>s can 22 * extend this class and override only the methods which they are 23 * interested in. 24 * </p> 25 * 26 * @see ShellListener 27 * @see ShellEvent 28 * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a> 29 */ 30 public abstract class ShellAdapter : ShellListener { 31 32 /** 33 * Sent when a shell becomes the active window. 34 * The default behavior is to do nothing. 35 * 36 * @param e an event containing information about the activation 37 */ 38 public void shellActivated(ShellEvent e) { 39 } 40 41 /** 42 * Sent when a shell is closed. 43 * The default behavior is to do nothing. 44 * 45 * @param e an event containing information about the close 46 */ 47 public void shellClosed(ShellEvent e) { 48 } 49 50 /** 51 * Sent when a shell stops being the active window. 52 * The default behavior is to do nothing. 53 * 54 * @param e an event containing information about the deactivation 55 */ 56 public void shellDeactivated(ShellEvent e) { 57 } 58 59 /** 60 * Sent when a shell is un-minimized. 61 * The default behavior is to do nothing. 62 * 63 * @param e an event containing information about the un-minimization 64 */ 65 public void shellDeiconified(ShellEvent e) { 66 } 67 68 /** 69 * Sent when a shell is minimized. 70 * The default behavior is to do nothing. 71 * 72 * @param e an event containing information about the minimization 73 */ 74 public void shellIconified(ShellEvent e) { 75 } 76 } 77 78 class ShellDelegator : ShellAdapter { 79 alias void delegate(ShellEvent) DFunc; 80 DFunc delShellActivated; 81 DFunc delShellClosed; 82 DFunc delShellDeactivated; 83 DFunc delShellDeiconified; 84 DFunc delShellIconified; 85 86 private this( 87 DFunc delShellActivated, 88 DFunc delShellClosed, 89 DFunc delShellDeactivated, 90 DFunc delShellDeiconified, 91 DFunc delShellIconified ) 92 { 93 this.delShellActivated = delShellActivated; 94 this.delShellClosed = delShellClosed; 95 this.delShellDeactivated = delShellDeactivated; 96 this.delShellDeiconified = delShellDeiconified; 97 this.delShellIconified = delShellIconified; 98 } 99 100 static ShellDelegator createShellActivated( DFunc del ){ 101 return new ShellDelegator( del, null, null, null, null ); 102 } 103 static ShellDelegator createShellClosed( DFunc del ){ 104 return new ShellDelegator( null, del, null, null, null ); 105 } 106 107 override 108 public void shellActivated(ShellEvent e) { 109 if( delShellActivated !is null ) delShellActivated(e); 110 } 111 override 112 public void shellClosed(ShellEvent e) { 113 if( delShellClosed !is null ) delShellClosed(e); 114 } 115 override 116 public void shellDeactivated(ShellEvent e) { 117 if( delShellDeactivated !is null ) delShellDeactivated(e); 118 } 119 override 120 public void shellDeiconified(ShellEvent e) { 121 if( delShellDeiconified !is null ) delShellDeiconified(e); 122 } 123 override 124 public void shellIconified(ShellEvent e) { 125 if( delShellIconified !is null ) delShellIconified(e); 126 } 127 } 128 129