internal static void Copy(XModel document, Object selection) { if (document != null) { //return Copy(document.getCurrentController(), selection); } }
/// <summary> /// Gets the frame from document. /// </summary> /// <param name="doc">The doc.</param> /// <returns></returns> public static XFrame GetFrameFromDocument(XModel doc) { try { return(doc.getCurrentController().getFrame()); } catch (System.Exception ex) { System.Diagnostics.Debug.WriteLine("Can't get Frame form doc: " + ex); } return(null); }
private void CreateThumbnails() { // TODO: this currently only works when the default view is selected (not outline or notes) var pages = (document as XDrawPagesSupplier).getDrawPages(); var file = Path.GetTempFileName(); for (int i = 0; i < pages.getCount(); i++) { var page = (XDrawPage)pages.getByIndex(i).Value; var name = (page as XNamed).getName(); (document.getCurrentController() as XDrawView).setCurrentPage(page); (document as XStorable).storeToURL(CreateFileUrl(file), new PropertyValue[] { CreateProperty("FilterName", new uno.Any("impress_png_Export")) }); using (StreamReader reader = new StreamReader(file)) { var decoder = new PngBitmapDecoder(reader.BaseStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.OnLoad); decoder.Frames[0].Freeze(); thumbnails.Add(new SlideThumbnail { Image = decoder.Frames[0], Title = name + " (" + String.Format(Resource.slideDescriptionN, i + 1) + ")" }); } } File.Delete(file); (document.getCurrentController() as XDrawView).setCurrentPage((XDrawPage)pages.getByIndex(0).Value); }
void PerformLoad() { // Start LibreOffice and load file unoidl.com.sun.star.uno.XComponentContext localContext = uno.util.Bootstrap.bootstrap(); unoidl.com.sun.star.lang.XMultiServiceFactory multiServiceFactory = (unoidl.com.sun.star.lang.XMultiServiceFactory)localContext.getServiceManager(); desktop = (XDesktop)multiServiceFactory.createInstance("com.sun.star.frame.Desktop"); var componentLoader = (XComponentLoader)desktop; component = componentLoader.loadComponentFromURL(CreateFileUrl(file.FullName), "_blank", 0, new PropertyValue[] { }); // TODO: while/before loading, set the viewsettings ViewId:=view1, PageKind:=0 to reset to the default view // (instead of notes or outline view). Unfortunately these settings aren't accesible in the API ... // Get the main window's handle and hide the window document = (XModel)component; XWindow window = document.getCurrentController().getFrame().getContainerWindow(); window.setVisible(false); XSystemDependentWindowPeer xWindowPeer = (XSystemDependentWindowPeer)(window); mainHandle = new IntPtr((int)xWindowPeer.getWindowHandle(new byte[] { }, SystemDependent.SYSTEM_WIN32).Value); //ShowWindow(mainHandle, 0); presentation = (XPresentation2)((XPresentationSupplier)component).getPresentation(); CreateThumbnails(); listener.SlideTransitionStarted += (sender, args) => { OnSlideIndexChanged(); }; Start(); controller.gotoSlideIndex(0); LoadPreviewProvider(); base.OnLoaded(true); }
/// <summary> /// Registers the listener to the given object. /// </summary> /// <param name="element">The element.</param> /// <returns></returns> public bool RegisterListenerToElement(Object element) { XSelectionSupplier supl = element as XSelectionSupplier; //TODO: maybe extend this if (supl == null && element is XModel) { XModel model = element as XModel; var controller = model.getCurrentController(); if (controller != null && controller is XSelectionSupplier) { supl = controller as XSelectionSupplier; } } if (supl != null) { try { supl.removeSelectionChangeListener(Instance.eventForwarder); } catch { } try { supl.addSelectionChangeListener(Instance.eventForwarder); return(true); } catch { System.Threading.Thread.Sleep(5); try { supl.addSelectionChangeListener(Instance.eventForwarder); return(true); } catch { } } } return(false); }
public void InsertGraphic(string imgpath) { Object dispatchHelper = mxMSFactory.createInstance("com.sun.star.frame.DispatchHelper"); XDispatchHelper dispatcher = dispatchHelper as XDispatchHelper; XModel xModel = mxDocument as XModel; XFrame xFrame = xModel.getCurrentController().getFrame(); XDispatchProvider xDispatchProvider = xFrame as XDispatchProvider; unoidl.com.sun.star.beans.PropertyValue[] MyProp = new unoidl.com.sun.star.beans.PropertyValue[4]; MyProp[0] = new unoidl.com.sun.star.beans.PropertyValue(); MyProp[0].Name = "FileName"; MyProp[0].Value = new uno.Any(PathConverter(imgpath)); MyProp[1] = new unoidl.com.sun.star.beans.PropertyValue(); MyProp[1].Name = "FilterName"; MyProp[1].Value = new uno.Any("<Tous les formats>"); MyProp[2] = new unoidl.com.sun.star.beans.PropertyValue(); MyProp[2].Name = "AsLink"; MyProp[2].Value = new uno.Any(false); MyProp[3] = new unoidl.com.sun.star.beans.PropertyValue(); MyProp[3].Name = "Style"; MyProp[3].Value = new uno.Any("Image"); dispatcher.executeDispatch(xDispatchProvider, ".uno:InsertGraphic", "", 0, MyProp); }
/// <summary> /// Registers the context menu controler. /// </summary> /// <param name="xModel">The x model.</param> public void RegisterContextMenuControler(XModel xModel) { _xFrame = xModel.getCurrentController().getFrame(); RegisterContextMenuControler(_xFrame); }
/// <summary> /// Gets the current controller of the given model. /// </summary> /// <param name="xModel">The x model.</param> /// <returns>Current controller or <code>null</code></returns> public XController GetController(XModel xModel) { return xModel != null ? xModel.getCurrentController() : null; }