1 /*******************************************************************************
\r
2 * Copyright (c) 2007, 2010 Association for Decentralized Information Management
\r
3 * in Industry THTH ry.
\r
4 * All rights reserved. This program and the accompanying materials
\r
5 * are made available under the terms of the Eclipse Public License v1.0
\r
6 * which accompanies this distribution, and is available at
\r
7 * http://www.eclipse.org/legal/epl-v10.html
\r
10 * VTT Technical Research Centre of Finland - initial API and implementation
\r
11 *******************************************************************************/
\r
12 package org.simantics.editors.win32.ole;
\r
14 import org.eclipse.swt.ole.win32.OLE;
\r
15 import org.eclipse.swt.ole.win32.OleAutomation;
\r
16 import org.eclipse.swt.ole.win32.OleClientSite;
\r
17 import org.eclipse.swt.ole.win32.OleFrame;
\r
18 import org.eclipse.swt.ole.win32.Variant;
\r
19 import org.simantics.editors.win32.OLEEditorInput;
\r
23 * Utility for Windows Picture and Fax Preview
\r
25 * @author Marko Luukkainen <marko.luukkainen@vtt.fi>
\r
28 public class PreviewController implements OleController {
\r
34 public PreviewController(OleFrame frame, OleClientSite site, OleAutomation auto) {
\r
40 public void show(OLEEditorInput input) {
\r
41 site.doVerb(OLE.OLEIVERB_SHOW);
\r
42 loadFile(input.getFile().getAbsoluteFile().toString());
\r
45 public void loadFile(String file) {
\r
48 rgdispid = auto.getIDsOfNames(new String[]{"Show"});
\r
50 if (rgdispid != null) {
\r
51 int dispIdMember = rgdispid[0];
\r
52 auto.invoke(dispIdMember, new Variant[]{new Variant(file)});
\r
56 public void bestFit() {
\r
58 rgdispid = auto.getIDsOfNames(new String[]{"BestFit"});
\r
60 if (rgdispid != null) {
\r
61 int dispIdMember = rgdispid[0];
\r
62 auto.invoke(dispIdMember);
\r
66 public void actualSize() {
\r
68 rgdispid = auto.getIDsOfNames(new String[]{"ActualSize"});
\r
70 if (rgdispid != null) {
\r
71 int dispIdMember = rgdispid[0];
\r
72 auto.invoke(dispIdMember);
\r
76 public void zoom(int i) {
\r
79 rgdispid = auto.getIDsOfNames(new String[]{"Zoom"});
\r
81 if (rgdispid != null) {
\r
82 int dispIdMember = rgdispid[0];
\r
83 auto.invoke(dispIdMember, new Variant[]{new Variant(i)});
\r