kateconfig.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __KATE_CONFIG_H__
00020 #define __KATE_CONFIG_H__
00021
00022 #include <ktexteditor/markinterface.h>
00023
00024 #include <qbitarray.h>
00025 #include <qcolor.h>
00026 #include <qobject.h>
00027 #include <qvaluevector.h>
00028
00029 class KateView;
00030 class KateDocument;
00031 class KateRenderer;
00032 class KateFontStruct;
00033 class KateFontMetrics;
00034
00035 class KConfig;
00036
00037 class QFont;
00038 class QTextCodec;
00039
00043 class KateConfig
00044 {
00045 public:
00049 KateConfig ();
00050
00054 virtual ~KateConfig ();
00055
00056 public:
00063 void configStart ();
00064
00069 void configEnd ();
00070
00071 protected:
00075 virtual void updateConfig () = 0;
00076
00077 private:
00081 uint configSessionNumber;
00082
00086 bool configIsRunning;
00087 };
00088
00089 class KateDocumentConfig : public KateConfig
00090 {
00091 private:
00092 friend class KateFactory;
00093
00097 KateDocumentConfig ();
00098
00099 public:
00103 KateDocumentConfig (KateDocument *doc);
00104
00108 ~KateDocumentConfig ();
00109
00110 inline static KateDocumentConfig *global () { return s_global; }
00111
00112 inline bool isGlobal () const { return (this == global()); }
00113
00114 public:
00118 void readConfig (KConfig *config);
00119
00123 void writeConfig (KConfig *config);
00124
00125 protected:
00126 void updateConfig ();
00127
00128 public:
00129 int tabWidth () const;
00130 void setTabWidth (int tabWidth);
00131
00132 int indentationWidth () const;
00133 void setIndentationWidth (int indentationWidth);
00134
00135 enum IndentationMode
00136 {
00137 imNormal = 0,
00138 imCStyle = 1,
00139 imPythonStyle = 2
00140 };
00141
00142 uint indentationMode () const;
00143 void setIndentationMode (uint identationMode);
00144
00145 bool wordWrap () const;
00146 void setWordWrap (bool on);
00147
00148 unsigned int wordWrapAt () const;
00149 void setWordWrapAt (unsigned int col);
00150
00151 uint undoSteps () const;
00152 void setUndoSteps ( uint undoSteps );
00153
00154 bool pageUpDownMovesCursor () const;
00155 void setPageUpDownMovesCursor (bool on);
00156
00157 enum ConfigFlags
00158 {
00159 cfAutoIndent= 0x1,
00160 cfBackspaceIndents= 0x2,
00161 cfWordWrap= 0x4,
00162 cfReplaceTabs= 0x8,
00163 cfRemoveSpaces = 0x10,
00164 cfWrapCursor= 0x20,
00165 cfAutoBrackets= 0x40,
00166 cfPersistent= 0x80,
00167 cfKeepSelection= 0x100,
00168 cfTabIndentsMode = 0x200,
00169 cfDelOnInput= 0x400,
00170 cfXorSelect= 0x800,
00171 cfOvr= 0x1000,
00172 cfMark= 0x2000,
00173 cfKeepIndentProfile= 0x8000,
00174 cfKeepExtraSpaces= 0x10000,
00175 cfTabIndents= 0x80000,
00176 cfShowTabs= 0x200000,
00177 cfSpaceIndent= 0x400000,
00178 cfSmartHome = 0x800000,
00179 cfTabInsertsTab = 0x1000000,
00180 cfReplaceTabsDyn= 0x2000000,
00181 cfRemoveTrailingDyn=0x4000000,
00182 cfDoxygenAutoTyping=0x8000000
00183 };
00184
00185 uint configFlags () const;
00186 void setConfigFlags (KateDocumentConfig::ConfigFlags flag, bool enable);
00187 void setConfigFlags (uint fullFlags);
00188
00189 const QString &encoding () const;
00190 QTextCodec *codec ();
00191
00192 void setEncoding (const QString &encoding);
00193
00194 enum Eol
00195 {
00196 eolUnix = 0,
00197 eolDos = 1,
00198 eolMac = 2
00199 };
00200
00201 int eol () const;
00202 QString eolString ();
00203
00204 void setEol (int mode);
00205
00206 enum BackupFlags
00207 {
00208 LocalFiles=1,
00209 RemoteFiles=2
00210 };
00211
00212 uint backupFlags () const;
00213 void setBackupFlags (uint flags);
00214
00215 const QString &backupPrefix () const;
00216 void setBackupPrefix (const QString &prefix);
00217
00218 const QString &backupSuffix () const;
00219 void setBackupSuffix (const QString &suffix);
00220
00221 bool plugin (uint index) const;
00222 void setPlugin (uint index, bool load);
00223
00224 private:
00225 int m_tabWidth;
00226 int m_indentationWidth;
00227 uint m_indentationMode;
00228 bool m_wordWrap;
00229 int m_wordWrapAt;
00230 uint m_undoSteps;
00231 bool m_pageUpDownMovesCursor;
00232 uint m_configFlags;
00233 QString m_encoding;
00234 int m_eol;
00235 uint m_backupFlags;
00236 QString m_backupPrefix;
00237 QString m_backupSuffix;
00238 QBitArray m_plugins;
00239
00240 bool m_tabWidthSet : 1;
00241 bool m_indentationWidthSet : 1;
00242 bool m_indentationModeSet : 1;
00243 bool m_wordWrapSet : 1;
00244 bool m_wordWrapAtSet : 1;
00245 bool m_pageUpDownMovesCursorSet : 1;
00246 bool m_undoStepsSet : 1;
00247 uint m_configFlagsSet;
00248 bool m_encodingSet : 1;
00249 bool m_eolSet : 1;
00250 bool m_backupFlagsSet : 1;
00251 bool m_backupPrefixSet : 1;
00252 bool m_backupSuffixSet : 1;
00253 QBitArray m_pluginsSet;
00254
00255 private:
00256 static KateDocumentConfig *s_global;
00257 KateDocument *m_doc;
00258 };
00259
00260 class KateViewConfig : public KateConfig
00261 {
00262 private:
00263 friend class KateFactory;
00264
00268 KateViewConfig ();
00269
00270 public:
00274 KateViewConfig (KateView *view);
00275
00279 ~KateViewConfig ();
00280
00281 inline static KateViewConfig *global () { return s_global; }
00282
00283 inline bool isGlobal () const { return (this == global()); }
00284
00285 public:
00289 void readConfig (KConfig *config);
00290
00294 void writeConfig (KConfig *config);
00295
00296 protected:
00297 void updateConfig ();
00298
00299 public:
00300 bool dynWordWrap () const;
00301 void setDynWordWrap (bool wrap);
00302
00303 int dynWordWrapIndicators () const;
00304 void setDynWordWrapIndicators (int mode);
00305
00306 int dynWordWrapAlignIndent () const;
00307 void setDynWordWrapAlignIndent (int indent);
00308
00309 bool lineNumbers () const;
00310 void setLineNumbers (bool on);
00311
00312 bool scrollBarMarks () const;
00313 void setScrollBarMarks (bool on);
00314
00315 bool iconBar () const;
00316 void setIconBar (bool on);
00317
00318 bool foldingBar () const;
00319 void setFoldingBar (bool on);
00320
00321 int bookmarkSort () const;
00322 void setBookmarkSort (int mode);
00323
00324 int autoCenterLines() const;
00325 void setAutoCenterLines (int lines);
00326
00327 long searchFlags () const;
00328 void setSearchFlags (long flags);
00329
00330 bool cmdLine () const;
00331 void setCmdLine (bool on);
00332
00333 uint defaultMarkType () const;
00334 void setDefaultMarkType (uint type);
00335
00336 enum TextToSearch
00337 {
00338 Nowhere = 0,
00339 SelectionOnly = 1,
00340 SelectionWord = 2,
00341 WordOnly = 3,
00342 WordSelection = 4
00343 };
00344
00345 int textToSearchMode () const;
00346 void setTextToSearchMode (int mode);
00347
00348 private:
00349 bool m_dynWordWrap;
00350 int m_dynWordWrapIndicators;
00351 int m_dynWordWrapAlignIndent;
00352 bool m_lineNumbers;
00353 bool m_scrollBarMarks;
00354 bool m_iconBar;
00355 bool m_foldingBar;
00356 int m_bookmarkSort;
00357 int m_autoCenterLines;
00358 long m_searchFlags;
00359 bool m_cmdLine;
00360 uint m_defaultMarkType;
00361 int m_textToSearchMode;
00362
00363 bool m_dynWordWrapSet : 1;
00364 bool m_dynWordWrapIndicatorsSet : 1;
00365 bool m_dynWordWrapAlignIndentSet : 1;
00366 bool m_lineNumbersSet : 1;
00367 bool m_scrollBarMarksSet : 1;
00368 bool m_iconBarSet : 1;
00369 bool m_foldingBarSet : 1;
00370 bool m_bookmarkSortSet : 1;
00371 bool m_autoCenterLinesSet : 1;
00372 bool m_searchFlagsSet : 1;
00373 bool m_cmdLineSet : 1;
00374 bool m_defaultMarkTypeSet : 1;
00375 bool m_textToSearchModeSet : 1;
00376
00377 private:
00378 static KateViewConfig *s_global;
00379 KateView *m_view;
00380 };
00381
00382 class KateRendererConfig : public KateConfig
00383 {
00384 private:
00385 friend class KateFactory;
00386
00390 KateRendererConfig ();
00391
00392 public:
00396 KateRendererConfig (KateRenderer *renderer);
00397
00401 ~KateRendererConfig ();
00402
00403 inline static KateRendererConfig *global () { return s_global; }
00404
00405 inline bool isGlobal () const { return (this == global()); }
00406
00407 public:
00411 void readConfig (KConfig *config);
00412
00416 void writeConfig (KConfig *config);
00417
00418 protected:
00419 void updateConfig ();
00420
00421 public:
00422 uint schema () const;
00423 void setSchema (uint schema);
00424
00425 KateFontStruct *fontStruct ();
00426 QFont *font();
00427 KateFontMetrics *fontMetrics();
00428
00429 void setFont(const QFont &font);
00430
00431 bool wordWrapMarker () const;
00432 void setWordWrapMarker (bool on);
00433
00434 const QColor& backgroundColor() const;
00435 void setBackgroundColor (const QColor &col);
00436
00437 const QColor& selectionColor() const;
00438 void setSelectionColor (const QColor &col);
00439
00440 const QColor& highlightedLineColor() const;
00441 void setHighlightedLineColor (const QColor &col);
00442
00443 const QColor& lineMarkerColor(KTextEditor::MarkInterface::MarkTypes type = KTextEditor::MarkInterface::markType01) const;
00444 void setLineMarkerColor (const QColor &col, KTextEditor::MarkInterface::MarkTypes type = KTextEditor::MarkInterface::markType01);
00445
00446 const QColor& highlightedBracketColor() const;
00447 void setHighlightedBracketColor (const QColor &col);
00448
00449 const QColor& wordWrapMarkerColor() const;
00450 void setWordWrapMarkerColor (const QColor &col);
00451
00452 const QColor& tabMarkerColor() const;
00453 void setTabMarkerColor (const QColor &col);
00454
00455 const QColor& iconBarColor() const;
00456 void setIconBarColor (const QColor &col);
00457
00458
00459
00460 const QColor& lineNumberColor() const;
00461 void setLineNumberColor (const QColor &col);
00462
00463 private:
00464 uint m_schema;
00465 KateFontStruct *m_font;
00466 bool m_wordWrapMarker;
00467 QColor m_backgroundColor;
00468 QColor m_selectionColor;
00469 QColor m_highlightedLineColor;
00470 QColor m_highlightedBracketColor;
00471 QColor m_wordWrapMarkerColor;
00472 QColor m_tabMarkerColor;
00473 QColor m_iconBarColor;
00474 QColor m_lineNumberColor;
00475 QValueVector<QColor> m_lineMarkerColor;
00476
00477 bool m_schemaSet : 1;
00478 bool m_fontSet : 1;
00479 bool m_wordWrapMarkerSet : 1;
00480 bool m_backgroundColorSet : 1;
00481 bool m_selectionColorSet : 1;
00482 bool m_highlightedLineColorSet : 1;
00483 bool m_highlightedBracketColorSet : 1;
00484 bool m_wordWrapMarkerColorSet : 1;
00485 bool m_tabMarkerColorSet : 1;
00486 bool m_iconBarColorSet : 1;
00487 bool m_lineNumberColorSet : 1;
00488 QBitArray m_lineMarkerColorSet;
00489
00490 private:
00491 static KateRendererConfig *s_global;
00492 KateRenderer *m_renderer;
00493 };
00494
00495 #endif
00496
00497
This file is part of the documentation for kate Library Version 3.3.0.