/* -*- 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 . */ #ifndef INCLUDED_SVTOOLS_SOURCE_FILTER_EXPORTDIALOG_HXX #define INCLUDED_SVTOOLS_SOURCE_FILTER_EXPORTDIALOG_HXX #include #include #include #include #include #include #include #include #include #include #include #include #include #include /************************************************************************* |* |* dialog to set filter options for pixel formats |* \************************************************************************/ class FilterConfigItem; class ExportDialog : public ModalDialog { 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; VclPtr mpMfSizeX; VclPtr mpLbSizeX; VclPtr mpMfSizeY; VclPtr mpFtResolution; VclPtr mpNfResolution; VclPtr mpLbResolution; VclPtr mpColorDepth; VclPtr mpLbColorDepth; VclPtr mpJPGQuality; VclPtr mpPNGCompression; VclPtr mpSbCompression; VclPtr mpNfCompression; VclPtr mpMode; VclPtr mpCbInterlaced; VclPtr mpBMPCompression; VclPtr mpCbRLEEncoding; VclPtr mpDrawingObjects; VclPtr mpCbSaveTransparency; VclPtr mpEncoding; VclPtr mpRbBinary; VclPtr mpRbText; VclPtr mpEPSGrid; VclPtr mpCbEPSPreviewTIFF; VclPtr mpCbEPSPreviewEPSI; VclPtr mpRbEPSLevel1; VclPtr mpRbEPSLevel2; VclPtr mpRbEPSColorFormat1; VclPtr mpRbEPSColorFormat2; VclPtr mpRbEPSCompressionLZW; VclPtr mpRbEPSCompressionNone; VclPtr mpInfo; VclPtr mpFtEstimatedSize; VclPtr mpBtnOK; OUString msEstimatedSizePix1; OUString msEstimatedSizePix2; OUString msEstimatedSizeVec; OUString ms1BitTreshold; OUString ms1BitDithered; OUString ms4BitGrayscale; OUString ms4BitColorPalette; OUString ms8BitGrayscale; OUString ms8BitColorPalette; OUString ms24BitColor; FilterConfigItem* mpOptionsItem; FilterConfigItem* mpFilterOptionsItem; OUString maExt; sal_Int16 mnFormat; sal_Int32 mnMaxFilesizeForRealtimePreview; std::unique_ptr mpTempStream; Bitmap maBitmap; 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; DECL_LINK( UpdateHdl, Button*, void ); DECL_LINK( SelectListBoxHdl, ListBox&, void ); DECL_LINK( SelectHdl, Edit&, void ); DECL_LINK( UpdateHdlMtfSizeX, Edit&, void ); DECL_LINK( UpdateHdlMtfSizeY, Edit&, void ); DECL_LINK( UpdateHdlNfResolution, Edit&, void ); DECL_LINK( SbCompressionUpdateHdl, Slider*, void ); DECL_LINK( OK, Button*, void ); void setupSizeControls(); void createFilterOptions(); void setupControls(); void updateControls(); void GetGraphicSource(); void GetGraphicStream(); static Bitmap GetGraphicBitmap( SvStream& rStream ); css::uno::Sequence< css::beans::PropertyValue > GetFilterData( bool bUpdateConfig ); sal_uInt32 GetRawFileSize() const; bool IsTempExportAvailable() const; css::awt::Size GetOriginalSize(); sal_Int32 GetDefaultUnit(); 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; virtual void dispose() override; }; #endif // INCLUDED_SVTOOLS_SOURCE_FILTER_EXPORTDIALOG_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */