office-gobmx/vcl/inc/vcl/prndlg.hxx

322 lines
12 KiB
C++
Raw Normal View History

/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: prndlg.hxx,v $
* $Revision: 1.3.114.5 $
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#ifndef _SV_PRNDLG_HXX
#define _SV_PRNDLG_HXX
#include <vcl/dllapi.h>
#include "vcl/print.hxx"
#include "vcl/print.h"
#include "vcl/dialog.hxx"
#include "vcl/fixed.hxx"
#include "vcl/button.hxx"
#include "vcl/gdimtf.hxx"
#include "vcl/lstbox.hxx"
#include "vcl/field.hxx"
#include "vcl/tabctrl.hxx"
#include "vcl/tabpage.hxx"
#include "vcl/arrange.hxx"
2009-07-24 08:15:45 -05:00
#include "vcl/virdev.hxx"
#include <boost/shared_ptr.hpp>
#include <map>
namespace vcl
{
class PrintDialog : public ModalDialog
{
class PrintPreviewWindow : public Window
{
GDIMetaFile maMtf;
2009-07-24 08:15:45 -05:00
Size maOrigSize;
VirtualDevice maPageVDev;
2009-08-11 10:50:07 -05:00
rtl::OUString maReplacementString;
public:
PrintPreviewWindow( Window* pParent, const ResId& );
virtual ~PrintPreviewWindow();
virtual void Paint( const Rectangle& rRect );
virtual void Command( const CommandEvent& );
2009-07-24 08:15:45 -05:00
virtual void Resize();
2009-08-13 10:10:43 -05:00
void setPreview( const GDIMetaFile&, const Size&, const rtl::OUString&,
sal_Int32 i_nDPIX, sal_Int32 i_nDPIY
);
};
2009-07-30 08:52:50 -05:00
class ShowNupOrderWindow : public Window
{
int mnOrderMode;
int mnRows;
int mnColumns;
void ImplInitSettings();
public:
ShowNupOrderWindow( Window* pParent );
virtual ~ShowNupOrderWindow();
virtual void Paint( const Rectangle& );
void setValues( int i_nOrderMode, int i_nColumns, int i_nRows )
{
mnOrderMode = i_nOrderMode;
mnRows = i_nRows;
mnColumns = i_nColumns;
Invalidate();
}
};
class NUpTabPage : public TabPage
{
public:
2009-03-28 03:52:14 -05:00
FixedLine maNupLine;
2009-08-01 10:16:11 -05:00
RadioButton maPagesBtn;
2009-08-03 06:26:33 -05:00
RadioButton maBrochureBtn;
2009-07-27 12:10:15 -05:00
ListBox maNupPagesBox;
// controls for "Custom" page mode
FixedText maNupNumPagesTxt;
2009-03-28 03:52:14 -05:00
NumericField maNupColEdt;
2009-07-27 12:10:15 -05:00
FixedText maNupTimesTxt;
NumericField maNupRowsEdt;
FixedText maPageMarginTxt1;
2009-07-27 12:10:15 -05:00
MetricField maPageMarginEdt;
FixedText maPageMarginTxt2;
FixedText maSheetMarginTxt1;
2009-07-27 12:10:15 -05:00
MetricField maSheetMarginEdt;
FixedText maSheetMarginTxt2;
2009-07-27 12:10:15 -05:00
FixedText maNupOrientationTxt;
ListBox maNupOrientationBox;
// page order ("left to right, then down")
FixedText maNupOrderTxt;
ListBox maNupOrderBox;
2009-07-30 08:52:50 -05:00
ShowNupOrderWindow maNupOrderWin;
2009-07-27 12:10:15 -05:00
// border around each page
2009-06-09 13:58:38 -05:00
CheckBox maBorderCB;
2009-07-27 12:10:15 -05:00
vcl::RowOrColumn maLayout;
2009-08-01 10:16:11 -05:00
boost::shared_ptr< vcl::RowOrColumn > mxBrochureDep;
2009-07-27 12:10:15 -05:00
void setupLayout();
2009-06-09 13:58:38 -05:00
NUpTabPage( Window*, const ResId& );
virtual ~NUpTabPage();
2009-06-02 06:37:36 -05:00
void readFromSettings();
void storeToSettings();
void initFromMultiPageSetup( const vcl::PrinterController::MultiPageSetup& );
2009-08-01 10:16:11 -05:00
void enableNupControls( bool bEnable );
2009-06-18 13:26:15 -05:00
void showAdvancedControls( bool );
2009-06-18 13:26:15 -05:00
virtual void Resize();
};
class JobTabPage : public TabPage
{
public:
2009-07-22 12:16:34 -05:00
FixedLine maPrinterFL;
ListBox maPrinters;
2009-09-08 14:48:08 -05:00
DisclosureButton maDetailsBtn;
2009-07-22 12:16:34 -05:00
FixedText maStatusLabel;
FixedText maStatusTxt;
FixedText maLocationLabel;
FixedText maLocationTxt;
FixedText maCommentLabel;
FixedText maCommentTxt;
PushButton maSetupButton;
FixedLine maCopies;
2009-07-22 12:16:34 -05:00
FixedLine maCopySpacer;
FixedText maCopyCount;
NumericField maCopyCountField;
CheckBox maCollateBox;
FixedImage maCollateImage;
Image maCollateImg;
Image maCollateHCImg;
Image maNoCollateImg;
Image maNoCollateHCImg;
long mnCollateUIMode;
2009-07-22 12:16:34 -05:00
vcl::RowOrColumn maLayout;
boost::shared_ptr<vcl::RowOrColumn> mxPrintRange;
2009-07-27 13:42:13 -05:00
boost::shared_ptr<vcl::WindowArranger> mxDetails;
2009-07-22 12:16:34 -05:00
JobTabPage( Window*, const ResId& );
virtual ~JobTabPage();
2009-06-02 06:37:36 -05:00
void readFromSettings();
void storeToSettings();
2009-07-22 12:16:34 -05:00
virtual void Resize();
void setupLayout();
};
class OutputOptPage : public TabPage
{
public:
FixedLine maOptionsLine;
CheckBox maToFileBox;
CheckBox maCollateSingleJobsBox;
CheckBox maReverseOrderBox;
2009-07-23 12:22:34 -05:00
vcl::RowOrColumn maLayout;
2009-07-28 14:01:04 -05:00
boost::shared_ptr<vcl::RowOrColumn> mxOptGroup;
2009-07-23 12:22:34 -05:00
2009-07-22 12:16:34 -05:00
OutputOptPage( Window*, const ResId& );
virtual ~OutputOptPage();
void readFromSettings();
void storeToSettings();
2009-07-23 12:22:34 -05:00
virtual void Resize();
void setupLayout();
};
OKButton maOKButton;
CancelButton maCancelButton;
2009-08-03 10:51:37 -05:00
HelpButton maHelpButton;
PrintPreviewWindow maPreviewWindow;
NumericField maPageEdit;
FixedText maNumPagesText;
PushButton maForwardBtn;
PushButton maBackwardBtn;
TabControl maTabCtrl;
NUpTabPage maNUpPage;
JobTabPage maJobPage;
2009-07-22 12:16:34 -05:00
OutputOptPage maOptionsPage;
FixedLine maButtonLine;
boost::shared_ptr< PrinterController > maPController;
rtl::OUString maPageStr;
2009-03-26 13:00:43 -05:00
rtl::OUString maNoPageStr;
sal_Int32 mnCurPage;
sal_Int32 mnCachedPages;
std::list< Window* > maControls;
std::map< Window*, rtl::OUString > maControlToPropertyMap;
std::multimap< rtl::OUString, Window* > maPropertyToWindowMap;
std::map< Window*, sal_Int32 > maControlToNumValMap;
2009-03-28 03:52:14 -05:00
Size maNupPortraitSize;
Size maNupLandscapeSize;
2009-07-27 12:10:15 -05:00
// internal, used for automatic Nup-Portrait/landscape
Size maFirstPageSize;
2009-07-22 12:16:34 -05:00
rtl::OUString maPrintToFileText;
rtl::OUString maPrintText;
2009-08-26 10:46:13 -05:00
rtl::OUString maDefPrtText;
2009-07-24 08:15:45 -05:00
vcl::RowOrColumn maLayout;
2009-09-08 11:05:37 -05:00
Size maDetailsCollapsedSize;
Size maDetailsExpandedSize;
2009-07-27 12:10:15 -05:00
Size getJobPageSize();
2009-03-28 03:52:14 -05:00
void updateNup();
2009-08-03 06:26:33 -05:00
void updateNupFromPages();
2009-06-10 12:21:10 -05:00
void preparePreview( bool i_bPrintChanged = true, bool i_bMayUseCache = false );
void setPreviewText( sal_Int32 );
void updatePrinterText();
void checkControlDependencies();
void checkOptionalControlDependencies();
void setupOptionalUI();
2009-06-02 06:37:36 -05:00
void readFromSettings();
void storeToSettings();
com::sun::star::beans::PropertyValue* getValueForWindow( Window* ) const;
2009-03-17 07:27:26 -05:00
virtual void Resize();
virtual void Command( const CommandEvent& );
2009-03-17 07:27:26 -05:00
DECL_LINK( SelectHdl, ListBox* );
DECL_LINK( ClickHdl, Button* );
DECL_LINK( ModifyHdl, Edit* );
DECL_LINK( UIOptionsChanged, void* );
DECL_LINK( UIOption_CheckHdl, CheckBox* );
DECL_LINK( UIOption_RadioHdl, RadioButton* );
DECL_LINK( UIOption_SelectHdl, ListBox* );
2009-03-16 12:48:45 -05:00
DECL_LINK( UIOption_ModifyHdl, Edit* );
2009-07-24 08:15:45 -05:00
void setupLayout();
public:
PrintDialog( Window*, const boost::shared_ptr< PrinterController >& );
virtual ~PrintDialog();
bool isPrintToFile();
int getCopyCount();
bool isCollate();
void previewForward();
void previewBackward();
};
2009-03-18 09:46:10 -05:00
class PrintProgressDialog : public ModelessDialog
{
String maStr;
FixedText maText;
CancelButton maButton;
bool mbCanceled;
sal_Int32 mnCur;
sal_Int32 mnMax;
2009-03-18 11:16:06 -05:00
long mnProgressHeight;
2009-03-18 09:46:10 -05:00
Rectangle maProgressRect;
2009-03-18 11:16:06 -05:00
bool mbNativeProgress;
2009-03-18 09:46:10 -05:00
DECL_LINK( ClickHdl, Button* );
void implCalcProgressRect();
public:
PrintProgressDialog( Window* i_pParent, int i_nMax );
~PrintProgressDialog();
bool isCanceled() const { return mbCanceled; }
2009-03-18 09:46:10 -05:00
void setProgress( int i_nCurrent, int i_nMax = -1 );
void tick();
virtual void Paint( const Rectangle& );
};
}
#endif // _SV_PRNDLG_HXX