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 <qobject.h>
00023 #include <qbitarray.h>
00024
00025 class KateView;
00026 class KateDocument;
00027 class KateRenderer;
00028 class FontStruct;
00029
00030 class KConfig;
00031
00032 class QColor;
00033 class QFont;
00034 class QTextCodec;
00035 class KateFontMetrics;
00036
00037 class KateConfig
00038 {
00039 public:
00040 KateConfig ();
00041 virtual ~KateConfig ();
00042
00043 public:
00044 void configStart ();
00045 void configEnd ();
00046
00047 protected:
00048 virtual void updateConfig () = 0;
00049
00050 private:
00051 uint configSessionNumber;
00052 bool configIsRunning;
00053 };
00054
00055 class KateDocumentConfig : public KateConfig
00056 {
00057 private:
00058 friend class KateFactory;
00059
00063 KateDocumentConfig ();
00064
00065 public:
00069 KateDocumentConfig (KateDocument *doc);
00070
00074 ~KateDocumentConfig ();
00075
00076 inline static KateDocumentConfig *global () { return s_global; }
00077
00078 inline bool isGlobal () const { return (this == global()); }
00079
00080 public:
00084 void readConfig (KConfig *config);
00085
00089 void writeConfig (KConfig *config);
00090
00091 protected:
00092 void updateConfig ();
00093
00094 public:
00095 int tabWidth () const;
00096 void setTabWidth (int tabWidth);
00097
00098 int indentationWidth () const;
00099 void setIndentationWidth (int indentationWidth);
00100
00101 enum IndentationMode
00102 {
00103 imNormal = 0,
00104 imCStyle = 1,
00105 imPythonStyle = 2
00106 };
00107
00108 uint indentationMode () const;
00109 void setIndentationMode (uint identationMode);
00110
00111 bool wordWrap () const;
00112 void setWordWrap (bool on);
00113
00114 unsigned int wordWrapAt () const;
00115 void setWordWrapAt (unsigned int col);
00116
00117 uint undoSteps () const;
00118 void setUndoSteps ( uint undoSteps );
00119
00120 bool pageUpDownMovesCursor () const;
00121 void setPageUpDownMovesCursor (bool on);
00122
00123 enum ConfigFlags
00124 {
00125 cfAutoIndent= 0x1,
00126 cfBackspaceIndents= 0x2,
00127 cfWordWrap= 0x4,
00128 cfReplaceTabs= 0x8,
00129 cfRemoveSpaces = 0x10,
00130 cfWrapCursor= 0x20,
00131 cfAutoBrackets= 0x40,
00132 cfPersistent= 0x80,
00133 cfKeepSelection= 0x100,
00134 cfTabIndentsMode = 0x200,
00135 cfDelOnInput= 0x400,
00136 cfXorSelect= 0x800,
00137 cfOvr= 0x1000,
00138 cfMark= 0x2000,
00139 cfKeepIndentProfile= 0x8000,
00140 cfKeepExtraSpaces= 0x10000,
00141 cfTabIndents= 0x80000,
00142 cfShowTabs= 0x200000,
00143 cfSpaceIndent= 0x400000,
00144 cfSmartHome = 0x800000,
00145 cfTabInsertsTab = 0x1000000
00146 };
00147
00148 uint configFlags () const;
00149 void setConfigFlags (KateDocumentConfig::ConfigFlags flag, bool enable);
00150 void setConfigFlags (uint fullFlags);
00151
00152 const QString &encoding () const;
00153 QTextCodec *codec ();
00154
00155 void setEncoding (const QString &encoding);
00156
00157 enum Eol
00158 {
00159 eolUnix = 0,
00160 eolDos = 1,
00161 eolMac = 2
00162 };
00163
00164 int eol () const;
00165 QString eolString ();
00166
00167 void setEol (int mode);
00168
00169 enum BackupFlags
00170 {
00171 LocalFiles=1,
00172 RemoteFiles=2
00173 };
00174
00175 uint backupFlags () const;
00176 void setBackupFlags (uint flags);
00177
00178 const QString &backupSuffix () const;
00179 void setBackupSuffix (const QString &suffix);
00180
00181 bool plugin (uint index) const;
00182 void setPlugin (uint index, bool load);
00183
00184 private:
00185 int m_tabWidth;
00186 int m_indentationWidth;
00187 uint m_indentationMode;
00188 bool m_wordWrap;
00189 int m_wordWrapAt;
00190 uint m_undoSteps;
00191 bool m_pageUpDownMovesCursor;
00192 uint m_configFlags;
00193 QString m_encoding;
00194 int m_eol;
00195 uint m_backupFlags;
00196 QString m_backupSuffix;
00197 QBitArray m_plugins;
00198
00199 bool m_tabWidthSet : 1;
00200 bool m_indentationWidthSet : 1;
00201 bool m_indentationModeSet : 1;
00202 bool m_wordWrapSet : 1;
00203 bool m_wordWrapAtSet : 1;
00204 bool m_pageUpDownMovesCursorSet : 1;
00205 bool m_undoStepsSet : 1;
00206 uint m_configFlagsSet;
00207 bool m_encodingSet : 1;
00208 bool m_eolSet : 1;
00209 bool m_backupFlagsSet : 1;
00210 bool m_backupSuffixSet : 1;
00211 bool m_pluginsSet : 1;
00212
00213 private:
00214 static KateDocumentConfig *s_global;
00215 KateDocument *m_doc;
00216 };
00217
00218 class KateViewConfig : public KateConfig
00219 {
00220 private:
00221 friend class KateFactory;
00222
00226 KateViewConfig ();
00227
00228 public:
00232 KateViewConfig (KateView *view);
00233
00237 ~KateViewConfig ();
00238
00239 inline static KateViewConfig *global () { return s_global; }
00240
00241 inline bool isGlobal () const { return (this == global()); }
00242
00243 public:
00247 void readConfig (KConfig *config);
00248
00252 void writeConfig (KConfig *config);
00253
00254 protected:
00255 void updateConfig ();
00256
00257 public:
00258 bool dynWordWrap () const;
00259 void setDynWordWrap (bool wrap);
00260
00261 int dynWordWrapIndicators () const;
00262 void setDynWordWrapIndicators (int mode);
00263
00264 int dynWordWrapAlignIndent () const;
00265 void setDynWordWrapAlignIndent (int indent);
00266
00267 bool lineNumbers () const;
00268 void setLineNumbers (bool on);
00269
00270 bool iconBar () const;
00271 void setIconBar (bool on);
00272
00273 bool foldingBar () const;
00274 void setFoldingBar (bool on);
00275
00276 int bookmarkSort () const;
00277 void setBookmarkSort (int mode);
00278
00279 int autoCenterLines() const;
00280 void setAutoCenterLines (int lines);
00281
00282 long searchFlags () const;
00283 void setSearchFlags (long flags);
00284
00285 bool cmdLine () const;
00286 void setCmdLine (bool on);
00287
00288 uint defaultMarkType () const;
00289 void setDefaultMarkType (uint type);
00290
00291 enum TextToSearch
00292 {
00293 Nowhere = 0,
00294 SelectionOnly = 1,
00295 SelectionWord = 2,
00296 WordOnly = 3,
00297 WordSelection = 4
00298 };
00299
00300 int textToSearchMode () const;
00301 void setTextToSearchMode (int mode);
00302
00303 private:
00304 bool m_dynWordWrap;
00305 int m_dynWordWrapIndicators;
00306 int m_dynWordWrapAlignIndent;
00307 bool m_lineNumbers;
00308 bool m_iconBar;
00309 bool m_foldingBar;
00310 int m_bookmarkSort;
00311 int m_autoCenterLines;
00312 long m_searchFlags;
00313 bool m_cmdLine;
00314 uint m_defaultMarkType;
00315 int m_textToSearchMode;
00316
00317 bool m_dynWordWrapSet : 1;
00318 bool m_dynWordWrapIndicatorsSet : 1;
00319 bool m_dynWordWrapAlignIndentSet : 1;
00320 bool m_lineNumbersSet : 1;
00321 bool m_iconBarSet : 1;
00322 bool m_foldingBarSet : 1;
00323 bool m_bookmarkSortSet : 1;
00324 bool m_autoCenterLinesSet : 1;
00325 bool m_searchFlagsSet : 1;
00326 bool m_cmdLineSet : 1;
00327 bool m_defaultMarkTypeSet : 1;
00328 bool m_textToSearchModeSet : 1;
00329
00330 private:
00331 static KateViewConfig *s_global;
00332 KateView *m_view;
00333 };
00334
00335 class KateRendererConfig : public KateConfig
00336 {
00337 private:
00338 friend class KateFactory;
00339
00343 KateRendererConfig ();
00344
00345 public:
00349 KateRendererConfig (KateRenderer *renderer);
00350
00354 ~KateRendererConfig ();
00355
00356 inline static KateRendererConfig *global () { return s_global; }
00357
00358 inline bool isGlobal () const { return (this == global()); }
00359
00360 public:
00364 void readConfig (KConfig *config);
00365
00369 void writeConfig (KConfig *config);
00370
00371 protected:
00372 void updateConfig ();
00373
00374 public:
00375 uint schema () const;
00376 void setSchema (uint schema);
00377
00378 FontStruct *fontStruct ();
00379 QFont *font();
00380 KateFontMetrics *fontMetrics();
00381
00382 void setFont(const QFont &font);
00383
00384 bool wordWrapMarker () const;
00385 void setWordWrapMarker (bool on);
00386
00387 const QColor *backgroundColor() const;
00388 void setBackgroundColor (const QColor &col);
00389
00390 const QColor *selectionColor() const;
00391 void setSelectionColor (const QColor &col);
00392
00393 const QColor *highlightedLineColor() const;
00394 void setHighlightedLineColor (const QColor &col);
00395
00396 const QColor *highlightedBracketColor() const;
00397 void setHighlightedBracketColor (const QColor &col);
00398
00399 const QColor *wordWrapMarkerColor() const;
00400 void setWordWrapMarkerColor (const QColor &col);
00401
00402 const QColor *tabMarkerColor() const;
00403 void setTabMarkerColor (const QColor &col);
00404
00405 const QColor *iconBarColor() const;
00406 void setIconBarColor (const QColor &col);
00407
00408 private:
00409 uint m_schema;
00410 FontStruct* m_font;
00411 bool m_wordWrapMarker;
00412 QColor *m_backgroundColor;
00413 QColor *m_selectionColor;
00414 QColor *m_highlightedLineColor;
00415 QColor *m_highlightedBracketColor;
00416 QColor *m_wordWrapMarkerColor;
00417 QColor *m_tabMarkerColor;
00418 QColor *m_iconBarColor;
00419
00420 bool m_schemaSet : 1;
00421 bool m_fontSet : 1;
00422 bool m_wordWrapMarkerSet : 1;
00423 bool m_backgroundColorSet : 1;
00424 bool m_selectionColorSet : 1;
00425 bool m_highlightedLineColorSet : 1;
00426 bool m_highlightedBracketColorSet : 1;
00427 bool m_wordWrapMarkerColorSet : 1;
00428 bool m_tabMarkerColorSet : 1;
00429 bool m_iconBarColorSet : 1;
00430
00431 private:
00432 static KateRendererConfig *s_global;
00433 KateRenderer *m_renderer;
00434 };
00435
00436 #endif
This file is part of the documentation for kate Library Version 3.2.0.