File indexing completed on 2024-04-21 03:57:32

0001 /*
0002     SPDX-FileCopyrightText: 2002-2010 Anders Lund <anders@alweb.dk>
0003 
0004     Rewritten based on code of:
0005     SPDX-FileCopyrightText: 2002 Michael Goffioul <kdeprint@swing.be>
0006 
0007     SPDX-License-Identifier: LGPL-2.0-or-later
0008 */
0009 
0010 #ifndef KATE_PRINT_CONFIG_WIDGETS_H
0011 #define KATE_PRINT_CONFIG_WIDGETS_H
0012 
0013 #include <QWidget>
0014 
0015 class KColorButton;
0016 class KFontRequester;
0017 
0018 class QCheckBox;
0019 class QLabel;
0020 class QLineEdit;
0021 class QComboBox;
0022 class QSpinBox;
0023 class QGroupBox;
0024 
0025 namespace KatePrinter
0026 {
0027 // BEGIN Text settings
0028 /*
0029  *  Text settings page:
0030  *  - Print Line Numbers
0031  *    () Smart () Yes () No
0032  */
0033 class KatePrintTextSettings : public QWidget
0034 {
0035 public:
0036     explicit KatePrintTextSettings(QWidget *parent = nullptr);
0037     ~KatePrintTextSettings() override;
0038 
0039     bool printLineNumbers();
0040     bool printGuide();
0041     bool dontPrintFoldedCode() const;
0042 
0043 private:
0044     void readSettings();
0045     void writeSettings();
0046 
0047     QCheckBox *cbLineNumbers;
0048     QCheckBox *cbGuide;
0049     QCheckBox *cbFolding;
0050 };
0051 // END Text Settings
0052 
0053 // BEGIN Header/Footer
0054 /*
0055  *  Header & Footer page:
0056  *  - enable header/footer
0057  *  - header/footer props
0058  *    o formats
0059  *    o colors
0060  */
0061 
0062 class KatePrintHeaderFooter : public QWidget
0063 {
0064 public:
0065     explicit KatePrintHeaderFooter(QWidget *parent = nullptr);
0066     ~KatePrintHeaderFooter() override;
0067 
0068     QFont font();
0069 
0070     bool useHeader();
0071     QStringList headerFormat();
0072     QColor headerForeground();
0073     QColor headerBackground();
0074     bool useHeaderBackground();
0075 
0076     bool useFooter();
0077     QStringList footerFormat();
0078     QColor footerForeground();
0079     QColor footerBackground();
0080     bool useFooterBackground();
0081 
0082 public:
0083     void showContextMenu(const QPoint &pos);
0084 
0085 private:
0086     void readSettings();
0087     void writeSettings();
0088 
0089     QCheckBox *cbEnableHeader, *cbEnableFooter;
0090     KFontRequester *lFontPreview;
0091     QGroupBox *gbHeader, *gbFooter;
0092     QLineEdit *leHeaderLeft, *leHeaderCenter, *leHeaderRight;
0093     KColorButton *kcbtnHeaderFg, *kcbtnHeaderBg;
0094     QCheckBox *cbHeaderEnableBgColor;
0095     QLineEdit *leFooterLeft, *leFooterCenter, *leFooterRight;
0096     KColorButton *kcbtnFooterFg, *kcbtnFooterBg;
0097     QCheckBox *cbFooterEnableBgColor;
0098 };
0099 
0100 // END Header/Footer
0101 
0102 // BEGIN Layout
0103 /*
0104  *  Layout page:
0105  *  - Color scheme
0106  *  - Use Box
0107  *  - Box properties
0108  *    o Width
0109  *    o Margin
0110  *    o Color
0111  */
0112 class KatePrintLayout : public QWidget
0113 {
0114 public:
0115     explicit KatePrintLayout(QWidget *parent = nullptr);
0116     ~KatePrintLayout() override;
0117 
0118     QString colorScheme();
0119     QFont textFont();
0120     bool useBackground();
0121     bool useBox();
0122     int boxWidth();
0123     int boxMargin();
0124     QColor boxColor();
0125 
0126 private:
0127     void readSettings();
0128     void writeSettings();
0129 
0130     QComboBox *cmbSchema;
0131     KFontRequester *lFontPreview;
0132     QCheckBox *cbEnableBox;
0133     QCheckBox *cbDrawBackground;
0134     QGroupBox *gbBoxProps;
0135     QSpinBox *sbBoxWidth;
0136     QSpinBox *sbBoxMargin;
0137     KColorButton *kcbtnBoxColor;
0138 };
0139 // END Layout
0140 
0141 }
0142 
0143 #endif