/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #pragma once #include #include #include #include #include #include #include #include #include /************************************************************************* |* |* dialog to set filter options for pixel formats |* \************************************************************************/ class FilterConfigItem; class ExportDialog : public weld::GenericDialogController { private: FltCallDialogParameter& mrFltCallPara; const css::uno::Reference< css::uno::XComponentContext > mxContext; const css::uno::Reference< css::lang::XComponent >& mxSourceDocument; const css::uno::Reference< css::graphic::XGraphic >& mxGraphic; OUString msEstimatedSizePix1; OUString msEstimatedSizePix2; OUString msEstimatedSizeVec; OUString ms1BitThreshold; OUString ms8BitGrayscale; OUString ms8BitColorPalette; OUString ms24BitColor; std::unique_ptr mpOptionsItem; std::unique_ptr mpFilterOptionsItem; OUString maExt; sal_Int16 mnFormat; sal_Int32 mnMaxFilesizeForRealtimePreview; std::unique_ptr mpTempStream; css::awt::Size maOriginalSize; // the original graphic size in 1/100mm css::awt::Size maSize; // for vector graphics it always contains the logical size in 1/100mm bool mbIsPixelFormat; bool mbExportSelection; bool mbGraphicsSource; // whether source document is graphics (Draw, Impress) or not (Calc, Writer) sal_Int32 mnInitialResolutionUnit; // for pixel graphics it always contains the pixel count css::awt::Size maResolution; // it always contains the number of pixels per meter css::uno::Reference< css::drawing::XShape > mxShape; css::uno::Reference< css::drawing::XShapes > mxShapes; css::uno::Reference< css::drawing::XDrawPage > mxPage; weld::Scale* mpSbCompression; weld::SpinButton* mpNfCompression; std::unique_ptr mxMfSizeX; std::unique_ptr mxLbSizeX; std::unique_ptr mxMfSizeY; std::unique_ptr mxFtResolution; std::unique_ptr mxNfResolution; std::unique_ptr mxLbResolution; std::unique_ptr mxColorDepth; std::unique_ptr mxLbColorDepth; std::unique_ptr mxJPGWEBPQuality; std::unique_ptr mxPNGCompression; std::unique_ptr mxSbPngCompression; std::unique_ptr mxNfPngCompression; std::unique_ptr mxSbJpgWebpCompression; std::unique_ptr mxNfJpgWebpCompression; std::unique_ptr mxCbLossless; std::unique_ptr mxMode; std::unique_ptr mxCbInterlaced; std::unique_ptr mxBMPCompression; std::unique_ptr mxCbRLEEncoding; std::unique_ptr mxDrawingObjects; std::unique_ptr mxCbSaveTransparency; std::unique_ptr mxEncoding; std::unique_ptr mxRbBinary; std::unique_ptr mxRbText; std::unique_ptr mxEPSGrid; std::unique_ptr mxModifyDimension; std::unique_ptr mxModifyResolution; std::unique_ptr mxCbEPSPreviewTIFF; std::unique_ptr mxCbEPSPreviewEPSI; std::unique_ptr mxRbEPSLevel1; std::unique_ptr mxRbEPSLevel2; std::unique_ptr mxRbEPSColorFormat1; std::unique_ptr mxRbEPSColorFormat2; std::unique_ptr mxRbEPSCompressionLZW; std::unique_ptr mxRbEPSCompressionNone; std::unique_ptr mxInfo; std::unique_ptr mxFtEstimatedSize; std::unique_ptr mxBtnOK; DECL_LINK(UpdateHdl, weld::Toggleable&, void); DECL_LINK(UpdateLock, weld::Toggleable&, void); DECL_LINK(SelectListBoxHdl, weld::ComboBox&, void); DECL_LINK(SelectHdl, weld::SpinButton&, void); DECL_LINK(UpdateHdlMtfSizeX, weld::SpinButton&, void); DECL_LINK(UpdateHdlMtfSizeY, weld::SpinButton&, void); DECL_LINK(UpdateHdlNfResolution, weld::SpinButton&, void); DECL_LINK(SbCompressionUpdateHdl, weld::Scale&, void); DECL_LINK(UpdateHdlLossless, weld::Toggleable&, void); DECL_LINK(OK, weld::Button&, void); void setupSizeControls(); void createFilterOptions(); void setupControls(); void updateControls(); void GetGraphicSource(); void GetGraphicStream(); css::uno::Sequence< css::beans::PropertyValue > GetFilterData( bool bUpdateConfig ); sal_uInt32 GetRawFileSize() const; bool IsTempExportAvailable() const; css::awt::Size GetOriginalSize(); sal_Int32 GetDefaultUnit() const; public: ExportDialog( FltCallDialogParameter& rPara, const css::uno::Reference< css::uno::XComponentContext >& rxContext, const css::uno::Reference< css::lang::XComponent >& rxSourceDocument, bool bExportSelection, bool bIsExportVectorFormat, bool bGraphicsSource, const css::uno::Reference< css::graphic::XGraphic >& rxGraphic); virtual ~ExportDialog() override; }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */