katedialogs.h
00001 /* This file is part of the KDE libraries 00002 Copyright (C) 2002, 2003 Anders Lund <anders.lund@lund.tdcadsl.dk> 00003 Copyright (C) 2003 Christoph Cullmann <cullmann@kde.org> 00004 Copyright (C) 2001 Joseph Wenninger <jowenn@kde.org> 00005 00006 Based on work of: 00007 Copyright (C) 1999 Jochen Wilhelmy <digisnap@cs.tu-berlin.de> 00008 00009 This library is free software; you can redistribute it and/or 00010 modify it under the terms of the GNU Library General Public 00011 License version 2 as published by the Free Software Foundation. 00012 00013 This library is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 Library General Public License for more details. 00017 00018 You should have received a copy of the GNU Library General Public License 00019 along with this library; see the file COPYING.LIB. If not, write to 00020 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00021 Boston, MA 02110-1301, USA. 00022 */ 00023 00024 #ifndef __KATE_DIALOGS_H__ 00025 #define __KATE_DIALOGS_H__ 00026 00027 #include "katehighlight.h" 00028 #include "kateattribute.h" 00029 00030 #include "../interfaces/document.h" 00031 00032 #include <klistview.h> 00033 #include <kdialogbase.h> 00034 #include <kmimetype.h> 00035 00036 #include <tqstringlist.h> 00037 #include <tqcolor.h> 00038 #include <tqintdict.h> 00039 #include <tqvbox.h> 00040 #include <tqtabwidget.h> 00041 00042 class KatePartPluginListItem; 00043 00044 struct syntaxContextData; 00045 00046 class KateDocument; 00047 class KateView; 00048 00049 namespace KIO 00050 { 00051 class Job; 00052 class TransferJob; 00053 } 00054 00055 class KAccel; 00056 class KColorButton; 00057 class KComboBox; 00058 class KIntNumInput; 00059 class KKeyButton; 00060 class KKeyChooser; 00061 class KMainWindow; 00062 class KPushButton; 00063 class KRegExpDialog; 00064 class KIntNumInput; 00065 00066 class TQButtonGroup; 00067 class TQCheckBox; 00068 class TQHBoxLayout; 00069 class TQLabel; 00070 class TQLineEdit; 00071 class TQPushButton; 00072 class TQRadioButton; 00073 class TQSpinBox; 00074 class TQListBoxItem; 00075 class TQWidgetStack; 00076 class TQVBox; 00077 class TQListViewItem; 00078 class TQCheckBox; 00079 00080 class KateConfigPage : public Kate::ConfigPage 00081 { 00082 Q_OBJECT 00083 00084 public: 00085 KateConfigPage ( TQWidget *parent=0, const char *name=0 ); 00086 virtual ~KateConfigPage (); 00087 00088 public: 00089 bool changed () { return m_changed; } 00090 00091 private slots: 00092 void somethingHasChanged (); 00093 00094 protected: 00095 bool m_changed; 00096 }; 00097 00098 class KateGotoLineDialog : public KDialogBase 00099 { 00100 Q_OBJECT 00101 00102 public: 00103 00104 KateGotoLineDialog(TQWidget *parent, int line, int max); 00105 int getLine(); 00106 00107 protected: 00108 00109 KIntNumInput *e1; 00110 TQPushButton *btnOK; 00111 }; 00112 00113 class KateIndentConfigTab : public KateConfigPage 00114 { 00115 Q_OBJECT 00116 00117 public: 00118 KateIndentConfigTab(TQWidget *parent); 00119 00120 protected slots: 00121 void somethingToggled(); 00122 void indenterSelected (int); 00123 00124 protected: 00125 enum { numFlags = 8 }; 00126 static const int flags[numFlags]; 00127 TQCheckBox *opt[numFlags]; 00128 KIntNumInput *indentationWidth; 00129 TQButtonGroup *m_tabs; 00130 KComboBox *m_indentMode; 00131 TQPushButton *m_configPage; 00132 00133 public slots: 00134 void configPage(); 00135 00136 void apply (); 00137 void reload (); 00138 void reset () {}; 00139 void defaults () {}; 00140 }; 00141 00142 class KateSelectConfigTab : public KateConfigPage 00143 { 00144 Q_OBJECT 00145 00146 public: 00147 KateSelectConfigTab(TQWidget *parent); 00148 00149 protected: 00150 enum { numFlags = 2 }; 00151 static const int flags[numFlags]; 00152 TQCheckBox *opt[numFlags]; 00153 00154 TQButtonGroup *m_tabs; 00155 KIntNumInput *e4; 00156 TQCheckBox *e6; 00157 00158 public slots: 00159 void apply (); 00160 void reload (); 00161 void reset () {}; 00162 void defaults () {}; 00163 }; 00164 00165 class KateEditConfigTab : public KateConfigPage 00166 { 00167 Q_OBJECT 00168 00169 public: 00170 KateEditConfigTab(TQWidget *parent); 00171 00172 protected: 00173 enum { numFlags = 5 }; 00174 static const int flags[numFlags]; 00175 TQCheckBox *opt[numFlags]; 00176 00177 KIntNumInput *e1; 00178 KIntNumInput *e2; 00179 KIntNumInput *e3; 00180 KComboBox *e5; 00181 TQCheckBox *m_wwmarker; 00182 00183 public slots: 00184 void apply (); 00185 void reload (); 00186 void reset () {}; 00187 void defaults () {}; 00188 }; 00189 00190 class KateViewDefaultsConfig : public KateConfigPage 00191 { 00192 Q_OBJECT 00193 00194 public: 00195 KateViewDefaultsConfig( TQWidget *parent ); 00196 ~KateViewDefaultsConfig(); 00197 00198 private: 00199 TQCheckBox *m_line; 00200 TQCheckBox *m_folding; 00201 TQCheckBox *m_collapseTopLevel; 00202 TQCheckBox *m_icons; 00203 TQCheckBox *m_scrollBarMarks; 00204 TQCheckBox *m_dynwrap; 00205 TQCheckBox *m_showIndentLines; 00206 KIntNumInput *m_dynwrapAlignLevel; 00207 TQLabel *m_dynwrapIndicatorsLabel; 00208 KComboBox *m_dynwrapIndicatorsCombo; 00209 TQButtonGroup *m_bmSort; 00210 00211 public slots: 00212 void apply (); 00213 void reload (); 00214 void reset (); 00215 void defaults (); 00216 }; 00217 00218 class KateEditKeyConfiguration: public KateConfigPage 00219 { 00220 Q_OBJECT 00221 00222 public: 00223 KateEditKeyConfiguration( TQWidget* parent, KateDocument* doc ); 00224 00225 public slots: 00226 void apply(); 00227 void reload() {}; 00228 void reset() {}; 00229 void defaults() {}; 00230 00231 protected: 00232 void showEvent ( TQShowEvent * ); 00233 00234 private: 00235 bool m_ready; 00236 class KateDocument *m_doc; 00237 KKeyChooser* m_keyChooser; 00238 class KActionCollection *m_ac; 00239 }; 00240 00241 class KateSaveConfigTab : public KateConfigPage 00242 { 00243 Q_OBJECT 00244 public: 00245 KateSaveConfigTab( TQWidget *parent ); 00246 00247 public slots: 00248 void apply(); 00249 void reload(); 00250 void reset(); 00251 void defaults(); 00252 00253 protected: 00254 KComboBox *m_encoding, *m_eol; 00255 TQCheckBox *cbLocalFiles, *cbRemoteFiles; 00256 TQCheckBox *replaceTabs, *removeSpaces, *allowEolDetection; 00257 TQLineEdit *leBuPrefix; 00258 TQLineEdit *leBuSuffix; 00259 KIntNumInput *dirSearchDepth; 00260 class TQSpinBox *blockCount; 00261 class TQLabel *blockCountLabel; 00262 }; 00263 00264 class KatePartPluginListItem; 00265 00266 class KatePartPluginListView : public KListView 00267 { 00268 Q_OBJECT 00269 00270 friend class KatePartPluginListItem; 00271 00272 public: 00273 KatePartPluginListView (TQWidget *parent = 0, const char *name = 0); 00274 00275 signals: 00276 void stateChange(KatePartPluginListItem *, bool); 00277 00278 private: 00279 void stateChanged(KatePartPluginListItem *, bool); 00280 }; 00281 00282 class TQListViewItem; 00283 class KatePartPluginConfigPage : public KateConfigPage 00284 { 00285 Q_OBJECT 00286 00287 public: 00288 KatePartPluginConfigPage (TQWidget *parent); 00289 ~KatePartPluginConfigPage (); 00290 00291 public slots: 00292 void apply (); 00293 void reload () {}; 00294 void reset () {}; 00295 void defaults () {}; 00296 00297 private slots: 00298 void slotCurrentChanged( TQListViewItem * ); 00299 void slotConfigure(); 00300 void slotStateChanged( KatePartPluginListItem *, bool ); 00301 00302 private: 00303 KatePartPluginListView *listView; 00304 TQPtrList<KatePartPluginListItem> m_items; 00305 class TQPushButton *btnConfigure; 00306 }; 00307 00308 class KateHlConfigPage : public KateConfigPage 00309 { 00310 Q_OBJECT 00311 00312 public: 00313 KateHlConfigPage (TQWidget *parent, KateDocument *doc); 00314 ~KateHlConfigPage (); 00315 00316 public slots: 00317 void apply (); 00318 void reload (); 00319 void reset () {}; 00320 void defaults () {}; 00321 00322 protected slots: 00323 void hlChanged(int); 00324 void hlDownload(); 00325 void showMTDlg(); 00326 00327 private: 00328 void writeback (); 00329 00330 TQComboBox *hlCombo; 00331 TQLineEdit *wildcards; 00332 TQLineEdit *mimetypes; 00333 class KIntNumInput *priority; 00334 class TQLabel *author, *license; 00335 00336 TQIntDict<KateHlData> hlDataDict; 00337 KateHlData *hlData; 00338 00339 KateDocument *m_doc; 00340 }; 00341 00342 class KateHlDownloadDialog: public KDialogBase 00343 { 00344 Q_OBJECT 00345 00346 public: 00347 KateHlDownloadDialog(TQWidget *parent, const char *name, bool modal); 00348 ~KateHlDownloadDialog(); 00349 00350 private: 00351 class TQListView *list; 00352 class TQString listData; 00353 KIO::TransferJob *transferJob; 00354 00355 private slots: 00356 void listDataReceived(KIO::Job *, const TQByteArray &data); 00357 00358 public slots: 00359 void slotUser1(); 00360 }; 00361 00362 class KProcIO; 00363 class KProcess; 00370 class KateModOnHdPrompt : public KDialogBase 00371 { 00372 Q_OBJECT 00373 public: 00374 enum Status { 00375 Reload=1, // 0 is KDialogBase::Cancel 00376 Save, 00377 Overwrite, 00378 Ignore 00379 }; 00380 KateModOnHdPrompt( KateDocument *doc, int modtype, const TQString &reason, TQWidget *parent ); 00381 ~KateModOnHdPrompt(); 00382 00383 public slots: 00389 void slotDiff(); 00390 00391 void slotOk(); 00392 void slotApply(); 00393 void slotUser1(); 00394 00395 private slots: 00396 void slotPRead(KProcIO*); 00397 void slotPDone(KProcess*); 00398 00399 private: 00400 KateDocument *m_doc; 00401 int m_modtype; 00402 class KTempFile *m_tmpfile; 00403 00404 }; 00405 00406 #endif