File indexing completed on 2024-04-28 15:30:34
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 Q_OBJECT 0036 public: 0037 explicit KatePrintTextSettings(QWidget *parent = nullptr); 0038 ~KatePrintTextSettings() override; 0039 0040 bool printLineNumbers(); 0041 bool printGuide(); 0042 bool dontPrintFoldedCode() const; 0043 0044 private: 0045 void readSettings(); 0046 void writeSettings(); 0047 0048 QCheckBox *cbLineNumbers; 0049 QCheckBox *cbGuide; 0050 QCheckBox *cbFolding; 0051 }; 0052 // END Text Settings 0053 0054 // BEGIN Header/Footer 0055 /* 0056 * Header & Footer page: 0057 * - enable header/footer 0058 * - header/footer props 0059 * o formats 0060 * o colors 0061 */ 0062 0063 class KatePrintHeaderFooter : public QWidget 0064 { 0065 Q_OBJECT 0066 public: 0067 explicit KatePrintHeaderFooter(QWidget *parent = nullptr); 0068 ~KatePrintHeaderFooter() override; 0069 0070 QFont font(); 0071 0072 bool useHeader(); 0073 QStringList headerFormat(); 0074 QColor headerForeground(); 0075 QColor headerBackground(); 0076 bool useHeaderBackground(); 0077 0078 bool useFooter(); 0079 QStringList footerFormat(); 0080 QColor footerForeground(); 0081 QColor footerBackground(); 0082 bool useFooterBackground(); 0083 0084 public Q_SLOTS: 0085 void showContextMenu(const QPoint &pos); 0086 0087 private: 0088 void readSettings(); 0089 void writeSettings(); 0090 0091 QCheckBox *cbEnableHeader, *cbEnableFooter; 0092 KFontRequester *lFontPreview; 0093 QGroupBox *gbHeader, *gbFooter; 0094 QLineEdit *leHeaderLeft, *leHeaderCenter, *leHeaderRight; 0095 KColorButton *kcbtnHeaderFg, *kcbtnHeaderBg; 0096 QCheckBox *cbHeaderEnableBgColor; 0097 QLineEdit *leFooterLeft, *leFooterCenter, *leFooterRight; 0098 KColorButton *kcbtnFooterFg, *kcbtnFooterBg; 0099 QCheckBox *cbFooterEnableBgColor; 0100 }; 0101 0102 // END Header/Footer 0103 0104 // BEGIN Layout 0105 /* 0106 * Layout page: 0107 * - Color scheme 0108 * - Use Box 0109 * - Box properties 0110 * o Width 0111 * o Margin 0112 * o Color 0113 */ 0114 class KatePrintLayout : public QWidget 0115 { 0116 Q_OBJECT 0117 public: 0118 explicit KatePrintLayout(QWidget *parent = nullptr); 0119 ~KatePrintLayout() override; 0120 0121 QString colorScheme(); 0122 QFont textFont(); 0123 bool useBackground(); 0124 bool useBox(); 0125 int boxWidth(); 0126 int boxMargin(); 0127 QColor boxColor(); 0128 0129 private: 0130 void readSettings(); 0131 void writeSettings(); 0132 0133 QComboBox *cmbSchema; 0134 KFontRequester *lFontPreview; 0135 QCheckBox *cbEnableBox; 0136 QCheckBox *cbDrawBackground; 0137 QGroupBox *gbBoxProps; 0138 QSpinBox *sbBoxWidth; 0139 QSpinBox *sbBoxMargin; 0140 KColorButton *kcbtnBoxColor; 0141 }; 0142 // END Layout 0143 0144 } 0145 0146 #endif