summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Northover <steve>2007-02-21 18:37:35 +0000
committerSteve Northover <steve>2007-02-21 18:37:35 +0000
commit4eb166d89eb46006ffefe52776362a58a1e97438 (patch)
tree7caaa56a634e4ba316afe64bcd6605c920f40901
parent66fa307eec506e3136d2c27a9cce2ce77b077065 (diff)
downloadeclipse.platform.swt-4eb166d89eb46006ffefe52776362a58a1e97438.tar.gz
eclipse.platform.swt-4eb166d89eb46006ffefe52776362a58a1e97438.tar.xz
eclipse.platform.swt-4eb166d89eb46006ffefe52776362a58a1e97438.zip
*** empty log message ***
-rw-r--r--examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet262.java51
1 files changed, 49 insertions, 2 deletions
diff --git a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet262.java b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet262.java
index 5c42f98685..4c08a54fec 100644
--- a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet262.java
+++ b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet262.java
@@ -10,7 +10,10 @@
*******************************************************************************/
package org.eclipse.swt.snippets;
+import java.io.*;
+
import org.eclipse.swt.*;
+import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.ole.win32.*;
import org.eclipse.swt.widgets.*;
@@ -24,14 +27,18 @@ import org.eclipse.swt.widgets.*;
* @since 3.3
*/
public class Snippet262 {
+ static OleClientSite clientSite;
+ static OleFrame frame;
+
public static void main(String[] args) {
Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("Word Example");
shell.setLayout(new FillLayout());
try {
- OleFrame frame = new OleFrame(shell, SWT.NONE);
- new OleClientSite(frame, SWT.NONE, "Word.Document");
+ frame = new OleFrame(shell, SWT.NONE);
+ clientSite = new OleClientSite(frame, SWT.NONE, "Word.Document");
+ addFileMenu(frame);
} catch (SWTError e) {
System.out.println("Unable to open activeX control");
return;
@@ -45,4 +52,44 @@ public class Snippet262 {
}
display.dispose();
}
+
+ static void addFileMenu(OleFrame frame) {
+ final Shell shell = frame.getShell();
+ Menu menuBar = shell.getMenuBar();
+ if (menuBar == null) {
+ menuBar = new Menu(shell, SWT.BAR);
+ shell.setMenuBar(menuBar);
+ }
+ MenuItem fileMenu = new MenuItem(menuBar, SWT.CASCADE);
+ fileMenu.setText("&File");
+ Menu menuFile = new Menu(fileMenu);
+ fileMenu.setMenu(menuFile);
+ frame.setFileMenus(new MenuItem[] { fileMenu });
+
+ MenuItem menuFileOpen = new MenuItem(menuFile, SWT.CASCADE);
+ menuFileOpen.setText("Open...");
+ menuFileOpen.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ fileOpen();
+ }
+ });
+ MenuItem menuFileExit = new MenuItem(menuFile, SWT.CASCADE);
+ menuFileExit.setText("Exit");
+ menuFileExit.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ shell.dispose();
+ }
+ });
+ }
+
+ static void fileOpen() {
+ FileDialog dialog = new FileDialog(clientSite.getShell(), SWT.OPEN);
+ dialog.setFilterExtensions(new String[] { "*.doc" });
+ String fileName = dialog.open();
+ if (fileName != null) {
+ clientSite.dispose();
+ clientSite = new OleClientSite(frame, SWT.NONE, "Word.Document", new File(fileName));
+ clientSite.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);
+ }
+ }
} \ No newline at end of file