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 imNone = 0,
00138 imNormal = 1,
00139 imCStyle = 2,
00140 imPythonStyle = 3,
00141 imXmlStyle = 4,
00142 imCSAndS = 5,
00143 imVarIndent = 6
00144 };
00145
00146 uint indentationMode () const;
00147 void setIndentationMode (uint identationMode);
00148
00149 bool wordWrap () const;
00150 void setWordWrap (bool on);
00151
00152 unsigned int wordWrapAt () const;
00153 void setWordWrapAt (unsigned int col);
00154
00155 uint undoSteps () const;
00156 void setUndoSteps ( uint undoSteps );
00157
00158 bool pageUpDownMovesCursor () const;
00159 void setPageUpDownMovesCursor (bool on);
00160
00161 enum ConfigFlags
00162 {
00163 cfBackspaceIndents= 0x2,
00164 cfWordWrap= 0x4,
00165 cfReplaceTabs= 0x8,
00166 cfRemoveSpaces = 0x10,
00167 cfWrapCursor= 0x20,
00168 cfAutoBrackets= 0x40,
00169 cfPersistent= 0x80,
00170 cfKeepSelection= 0x100,
00171 cfTabIndentsMode = 0x200,
00172 cfDelOnInput= 0x400,
00173 cfXorSelect= 0x800,
00174 cfOvr= 0x1000,
00175 cfMark= 0x2000,
00176 cfKeepIndentProfile= 0x8000,
00177 cfKeepExtraSpaces= 0x10000,
00178 cfTabIndents= 0x80000,
00179 cfShowTabs= 0x200000,
00180 cfSpaceIndent= 0x400000,
00181 cfSmartHome = 0x800000,
00182 cfTabInsertsTab = 0x1000000,
00183 cfReplaceTabsDyn= 0x2000000,
00184 cfRemoveTrailingDyn=0x4000000,
00185 cfDoxygenAutoTyping=0x8000000 ,
00186 cfMixedIndent = 0x10000000
00187 };
00188
00189 uint configFlags () const;
00190 void setConfigFlags (KateDocumentConfig::ConfigFlags flag, bool enable);
00191 void setConfigFlags (uint fullFlags);
00192
00193 const QString &encoding () const;
00194 QTextCodec *codec ();
00195
00196 void setEncoding (const QString &encoding);
00197
00198 bool isSetEncoding () const;
00199
00200 enum Eol
00201 {
00202 eolUnix = 0,
00203 eolDos = 1,
00204 eolMac = 2
00205 };
00206
00207 int eol () const;
00208 QString eolString ();
00209
00210 void setEol (int mode);
00211
00212 enum BackupFlags
00213 {
00214 LocalFiles=1,
00215 RemoteFiles=2
00216 };
00217
00218 uint backupFlags () const;
00219 void setBackupFlags (uint flags);
00220
00221 const QString &backupPrefix () const;
00222 void setBackupPrefix (const QString &prefix);
00223
00224 const QString &backupSuffix () const;
00225 void setBackupSuffix (const QString &suffix);
00226
00227 bool plugin (uint index) const;
00228 void setPlugin (uint index, bool load);
00229
00235 int searchDirConfigDepth () const;
00236
00237 void setSearchDirConfigDepth (int depth);
00238
00239 private:
00240 int m_tabWidth;
00241 int m_indentationWidth;
00242 uint m_indentationMode;
00243 bool m_wordWrap;
00244 int m_wordWrapAt;
00245 uint m_undoSteps;
00246 bool m_pageUpDownMovesCursor;
00247 uint m_configFlags;
00248 QString m_encoding;
00249 int m_eol;
00250 uint m_backupFlags;
00251 int m_searchDirConfigDepth;
00252 QString m_backupPrefix;
00253 QString m_backupSuffix;
00254 QBitArray m_plugins;
00255
00256 bool m_tabWidthSet : 1;
00257 bool m_indentationWidthSet : 1;
00258 bool m_indentationModeSet : 1;
00259 bool m_wordWrapSet : 1;
00260 bool m_wordWrapAtSet : 1;
00261 bool m_pageUpDownMovesCursorSet : 1;
00262 bool m_undoStepsSet : 1;
00263 uint m_configFlagsSet;
00264 bool m_encodingSet : 1;
00265 bool m_eolSet : 1;
00266 bool m_backupFlagsSet : 1;
00267 bool m_searchDirConfigDepthSet : 1;
00268 bool m_backupPrefixSet : 1;
00269 bool m_backupSuffixSet : 1;
00270 QBitArray m_pluginsSet;
00271
00272 private:
00273 static KateDocumentConfig *s_global;
00274 KateDocument *m_doc;
00275 };
00276
00277 class KateViewConfig : public KateConfig
00278 {
00279 private:
00280 friend class KateFactory;
00281
00285 KateViewConfig ();
00286
00287 public:
00291 KateViewConfig (KateView *view);
00292
00296 ~KateViewConfig ();
00297
00298 inline static KateViewConfig *global () { return s_global; }
00299
00300 inline bool isGlobal () const { return (this == global()); }
00301
00302 public:
00306 void readConfig (KConfig *config);
00307
00311 void writeConfig (KConfig *config);
00312
00313 protected:
00314 void updateConfig ();
00315
00316 public:
00317 bool dynWordWrap () const;
00318 void setDynWordWrap (bool wrap);
00319
00320 int dynWordWrapIndicators () const;
00321 void setDynWordWrapIndicators (int mode);
00322
00323 int dynWordWrapAlignIndent () const;
00324 void setDynWordWrapAlignIndent (int indent);
00325
00326 bool lineNumbers () const;
00327 void setLineNumbers (bool on);
00328
00329 bool scrollBarMarks () const;
00330 void setScrollBarMarks (bool on);
00331
00332 bool iconBar () const;
00333 void setIconBar (bool on);
00334
00335 bool foldingBar () const;
00336 void setFoldingBar (bool on);
00337
00338 int bookmarkSort () const;
00339 void setBookmarkSort (int mode);
00340
00341 int autoCenterLines() const;
00342 void setAutoCenterLines (int lines);
00343
00344 long searchFlags () const;
00345 void setSearchFlags (long flags);
00346
00347 bool cmdLine () const;
00348 void setCmdLine (bool on);
00349
00350 uint defaultMarkType () const;
00351 void setDefaultMarkType (uint type);
00352
00353 enum TextToSearch
00354 {
00355 Nowhere = 0,
00356 SelectionOnly = 1,
00357 SelectionWord = 2,
00358 WordOnly = 3,
00359 WordSelection = 4
00360 };
00361
00362 int textToSearchMode () const;
00363 void setTextToSearchMode (int mode);
00364
00365 private:
00366 bool m_dynWordWrap;
00367 int m_dynWordWrapIndicators;
00368 int m_dynWordWrapAlignIndent;
00369 bool m_lineNumbers;
00370 bool m_scrollBarMarks;
00371 bool m_iconBar;
00372 bool m_foldingBar;
00373 int m_bookmarkSort;
00374 int m_autoCenterLines;
00375 long m_searchFlags;
00376 bool m_cmdLine;
00377 uint m_defaultMarkType;
00378 int m_textToSearchMode;
00379
00380 bool m_dynWordWrapSet : 1;
00381 bool m_dynWordWrapIndicatorsSet : 1;
00382 bool m_dynWordWrapAlignIndentSet : 1;
00383 bool m_lineNumbersSet : 1;
00384 bool m_scrollBarMarksSet : 1;
00385 bool m_iconBarSet : 1;
00386 bool m_foldingBarSet : 1;
00387 bool m_bookmarkSortSet : 1;
00388 bool m_autoCenterLinesSet : 1;
00389 bool m_searchFlagsSet : 1;
00390 bool m_cmdLineSet : 1;
00391 bool m_defaultMarkTypeSet : 1;
00392 bool m_textToSearchModeSet : 1;
00393
00394 private:
00395 static KateViewConfig *s_global;
00396 KateView *m_view;
00397 };
00398
00399 class KateRendererConfig : public KateConfig
00400 {
00401 private:
00402 friend class KateFactory;
00403
00407 KateRendererConfig ();
00408
00409
00410 public:
00414 KateRendererConfig (KateRenderer *renderer);
00415
00419 ~KateRendererConfig ();
00420
00421 inline static KateRendererConfig *global () { return s_global; }
00422
00423 inline bool isGlobal () const { return (this == global()); }
00424
00425 public:
00429 void readConfig (KConfig *config);
00430
00434 void writeConfig (KConfig *config);
00435
00436 protected:
00437 void updateConfig ();
00438
00439 public:
00440 uint schema () const;
00441 void setSchema (uint schema);
00447 void reloadSchema();
00448
00449 KateFontStruct *fontStruct ();
00450 QFont *font();
00451 KateFontMetrics *fontMetrics();
00452
00453 void setFont(const QFont &font);
00454
00455 bool wordWrapMarker () const;
00456 void setWordWrapMarker (bool on);
00457
00458 const QColor& backgroundColor() const;
00459 void setBackgroundColor (const QColor &col);
00460
00461 const QColor& selectionColor() const;
00462 void setSelectionColor (const QColor &col);
00463
00464 const QColor& highlightedLineColor() const;
00465 void setHighlightedLineColor (const QColor &col);
00466
00467 const QColor& lineMarkerColor(KTextEditor::MarkInterface::MarkTypes type = KTextEditor::MarkInterface::markType01) const;
00468 void setLineMarkerColor (const QColor &col, KTextEditor::MarkInterface::MarkTypes type = KTextEditor::MarkInterface::markType01);
00469
00470 const QColor& highlightedBracketColor() const;
00471 void setHighlightedBracketColor (const QColor &col);
00472
00473 const QColor& wordWrapMarkerColor() const;
00474 void setWordWrapMarkerColor (const QColor &col);
00475
00476 const QColor& tabMarkerColor() const;
00477 void setTabMarkerColor (const QColor &col);
00478
00479 const QColor& iconBarColor() const;
00480 void setIconBarColor (const QColor &col);
00481
00482
00483
00484 const QColor& lineNumberColor() const;
00485 void setLineNumberColor (const QColor &col);
00486
00487 private:
00491 void setSchemaInternal(int schema);
00492
00493 uint m_schema;
00494 KateFontStruct *m_font;
00495 bool m_wordWrapMarker;
00496 QColor m_backgroundColor;
00497 QColor m_selectionColor;
00498 QColor m_highlightedLineColor;
00499 QColor m_highlightedBracketColor;
00500 QColor m_wordWrapMarkerColor;
00501 QColor m_tabMarkerColor;
00502 QColor m_iconBarColor;
00503 QColor m_lineNumberColor;
00504 QValueVector<QColor> m_lineMarkerColor;
00505
00506 bool m_schemaSet : 1;
00507 bool m_fontSet : 1;
00508 bool m_wordWrapMarkerSet : 1;
00509 bool m_backgroundColorSet : 1;
00510 bool m_selectionColorSet : 1;
00511 bool m_highlightedLineColorSet : 1;
00512 bool m_highlightedBracketColorSet : 1;
00513 bool m_wordWrapMarkerColorSet : 1;
00514 bool m_tabMarkerColorSet : 1;
00515 bool m_iconBarColorSet : 1;
00516 bool m_lineNumberColorSet : 1;
00517 QBitArray m_lineMarkerColorSet;
00518
00519 private:
00520 static KateRendererConfig *s_global;
00521 KateRenderer *m_renderer;
00522 };
00523
00524 #endif
00525
00526
This file is part of the documentation for kate Library Version 3.4.2.