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