File indexing completed on 2024-04-28 07:46:27
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