blob: ec8a567818d2691409823b466cf61edb83ef5815 [file] [log] [blame]
/**************************************************************
*
* 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
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef _PAD_PRTSETUP_HXX_
#define _PAD_PRTSETUP_HXX_
#include "helper.hxx"
#include "tools/link.hxx"
#include "vcl/tabdlg.hxx"
#include "vcl/tabpage.hxx"
#include "vcl/tabctrl.hxx"
#include "vcl/button.hxx"
#include "vcl/fixed.hxx"
#include "vcl/lstbox.hxx"
#include "vcl/field.hxx"
#include "vcl/combobox.hxx"
#include "vcl/ppdparser.hxx"
#include "vcl/printerinfomanager.hxx"
namespace padmin {
class RTSPaperPage;
class RTSDevicePage;
class RTSOtherPage;
class RTSFontSubstPage;
class RTSCommandPage;
class RTSDialog : public TabDialog
{
friend class RTSPaperPage;
friend class RTSDevicePage;
friend class RTSOtherPage;
friend class RTSFontSubstPage;
friend class RTSCommandPage;
::psp::PrinterInfo m_aJobData;
String m_aPrinter;
// controls
TabControl m_aTabControl;
OKButton m_aOKButton;
CancelButton m_aCancelButton;
// pages
RTSPaperPage* m_pPaperPage;
RTSDevicePage* m_pDevicePage;
RTSOtherPage* m_pOtherPage;
RTSFontSubstPage* m_pFontSubstPage;
RTSCommandPage* m_pCommandPage;
// some resources
String m_aInvalidString;
String m_aFromDriverString;
DECL_LINK( ActivatePage, TabControl* );
DECL_LINK( ClickButton, Button* );
// helper functions
void insertAllPPDValues( ListBox&, const psp::PPDParser*, const psp::PPDKey* );
public:
RTSDialog( const ::psp::PrinterInfo& rJobData, const String& rPrinter, bool bAllPages, Window* pParent = NULL );
~RTSDialog();
const ::psp::PrinterInfo& getSetup() const { return m_aJobData; }
};
class RTSPaperPage : public TabPage
{
RTSDialog* m_pParent;
FixedText m_aPaperText;
ListBox m_aPaperBox;
FixedText m_aOrientText;
ListBox m_aOrientBox;
FixedText m_aDuplexText;
ListBox m_aDuplexBox;
FixedText m_aSlotText;
ListBox m_aSlotBox;
DECL_LINK( SelectHdl, ListBox* );
public:
RTSPaperPage( RTSDialog* );
~RTSPaperPage();
void update();
String getOrientation() { return m_aOrientBox.GetSelectEntry(); }
};
class RTSDevicePage : public TabPage
{
RTSDialog* m_pParent;
String m_aSpaceColor;
String m_aSpaceGray;
FixedText m_aPPDKeyText;
ListBox m_aPPDKeyBox;
FixedText m_aPPDValueText;
ListBox m_aPPDValueBox;
FixedText m_aLevelText;
ListBox m_aLevelBox;
FixedText m_aSpaceText;
ListBox m_aSpaceBox;
FixedText m_aDepthText;
ListBox m_aDepthBox;
void FillValueBox( const ::psp::PPDKey* );
DECL_LINK( SelectHdl, ListBox* );
public:
RTSDevicePage( RTSDialog* );
~RTSDevicePage();
void update();
sal_uLong getLevel();
sal_uLong getPDFDevice();
sal_uLong getDepth() { return m_aDepthBox.GetSelectEntry().ToInt32(); }
sal_uLong getColorDevice()
{
String aSpace( m_aSpaceBox.GetSelectEntry() );
return aSpace == m_aSpaceColor ? 1 : ( aSpace == m_aSpaceGray ? -1 : 0 );
}
};
class RTSOtherPage : public TabPage
{
RTSDialog* m_pParent;
FixedText m_aLeftTxt;
MetricField m_aLeftLB;
FixedText m_aTopTxt;
MetricField m_aTopLB;
FixedText m_aRightTxt;
MetricField m_aRightLB;
FixedText m_aBottomTxt;
MetricField m_aBottomLB;
FixedText m_aCommentTxt;
Edit m_aCommentEdt;
PushButton m_aDefaultBtn;
void initValues();
DECL_LINK( ClickBtnHdl, Button *);
public:
RTSOtherPage( RTSDialog* );
~RTSOtherPage();
void save();
};
class RTSFontSubstPage : public TabPage
{
RTSDialog* m_pParent;
FixedText m_aSubstitutionsText;
DelMultiListBox m_aSubstitutionsBox;
FixedText m_aFromFontText;
ComboBox m_aFromFontBox;
FixedText m_aToFontText;
ListBox m_aToFontBox;
PushButton m_aAddButton;
PushButton m_aRemoveButton;
CheckBox m_aEnableBox;
DECL_LINK( ClickBtnHdl, Button* );
DECL_LINK( SelectHdl, ListBox* );
DECL_LINK( DelPressedHdl, ListBox* );
void update();
public:
RTSFontSubstPage( RTSDialog* );
~RTSFontSubstPage();
};
} // namespace
#endif // _PAD_PRTSETUP_HXX