Guitar
AbstractCharacterBasedApplication.h
Go to the documentation of this file.
1 #ifndef ABSTRACTCHARACTERBASEDAPPLICATION_H
2 #define ABSTRACTCHARACTERBASEDAPPLICATION_H
3 
4 #include <QList>
5 #include <QRect>
6 #include <QString>
7 #include <QByteArray>
8 #include <memory>
9 #include <vector>
10 #include <functional>
11 #include <QKeyEvent>
12 #include <QColor>
13 #include <QTextCodec>
14 
15 namespace EscapeCode {
16 enum EscapeCode {
17  Up = 0x1b5b4100,
18  Down = 0x1b5b4200,
19  Right = 0x1b5b4300,
20  Left = 0x1b5b4400,
21  Home = 0x1b4f4800,
22  End = 0x1b4f4600,
23  Insert = 0x1b5b327e,
24  Delete = 0x1b5b337e,
25  PageUp = 0x1b5b357e,
26  PageDown = 0x1b5b367e,
27 };
28 }
29 
30 class Document {
31 public:
32  struct CharAttr_ {
33  size_t offset = 0;
34  int color = -1;
35  };
36  struct Line {
37  enum Type {
40  Add,
41  Del,
42  };
44  int hunk_number = -1;
45  int line_number = 0;
46  size_t byte_offset = 0;
47  QByteArray text;
48 
49  Line() = default;
50 
51  explicit Line(QByteArray const &ba)
52  : type(Normal)
53  , text(ba)
54  {
55  }
56 
57  explicit Line(std::string const &str, Type type = Normal)
58  : type(type)
59  {
60  text.append(str.c_str(), (int)str.size());
61  }
62 
63  bool endsWithNewLine() const
64  {
65  int c = text.isEmpty() ? 0 : text.at(text.size() - 1);
66  return c == '\n' || c == '\r';
67 
68  }
69  };
70 
71  QList<Line> lines;
72  void retrieveLastText(std::vector<char> *out, int maxlen) const;
73 };
74 
76 public:
79  {
80  document.lines.push_back(Document::Line(QByteArray()));
81  }
82 };
83 
85  enum Enabled {
88  };
89 
91  int row = 0;
92  int col = 0;
93  int compare(SelectionAnchor const &a) const
94  {
95  if (enabled && a.enabled) {
96  if (row < a.row) return -1;
97  if (row > a.row) return 1;
98  if (col < a.col) return -1;
99  if (col > a.col) return 1;
100  } else {
101  if (a.enabled) return -1;
102  if (enabled) return 1;
103  }
104  return 0;
105  }
106  bool operator == (SelectionAnchor const &a) const
107  {
108  return compare(a) == 0;
109  }
110  bool operator != (SelectionAnchor const &a) const
111  {
112  return compare(a) != 0;
113  }
114  bool operator < (SelectionAnchor const &a) const
115  {
116  return compare(a) < 0;
117  }
118  bool operator > (SelectionAnchor const &a) const
119  {
120  return compare(a) > 0;
121  }
122  bool operator <= (SelectionAnchor const &a) const
123  {
124  return compare(a) <= 0;
125  }
126  bool operator >= (SelectionAnchor const &a) const
127  {
128  return compare(a) >= 0;
129  }
130 };
131 
132 using TextEditorEnginePtr = std::shared_ptr<TextEditorEngine>;
133 
135  QRect cursor_rect;
136  bool single_line = false;
137  int current_row = 0;
138  int current_col = 0; // 桁位置
140  int current_col_pixel_x = 0; // 桁ピクセル座標
141  int current_row_pixel_y = 0; // 行ピクセル座標
142  int saved_row = 0;
143  int saved_col = 0;
144  int saved_col_hint = 0;
146  int scroll_row_pos = 0;
147  int scroll_col_pos = 0;
148  int viewport_org_x = 0;
149  int viewport_org_y = 1;
150  int viewport_width = 80;
151  int viewport_height = 23;
152  int tab_span = 4;
153  int bottom_line_y = -1;
155 };
156 
157 struct RowCol {
158  int row = 0;
159  int col = 0;
160  RowCol(int row = 0, int col = 0)
161  : row(row)
162  , col(col)
163  {
164  }
165 };
166 
167 using DialogHandler = std::function<void (bool, QString const &)>;
168 
170 public:
171 // enum RenderingMode {
172 // CharacterMode,
173 // GraphicMode,
174 // };
175 
176  static const int LEFT_MARGIN = 8;
177  static const int RIGHT_MARGIN = 10;
178 
179  enum class WriteMode {
180  Insert,
181  Overwrite,
182  };
183 
184  enum class State {
185  Normal,
186  Exit,
187  };
188 
189  struct CharAttr {
190  uint16_t index;
191  uint16_t flags = 0;
192  QColor color;
194  : index(index)
195  {
196  }
197  bool operator == (CharAttr const &r) const
198  {
199  return index == r.index && color == r.color;
200  }
201  bool operator != (CharAttr const &r) const
202  {
203  return !operator == (r);
204  }
205  enum Index {
209  };
210  enum Flag {
211  Selected = 0x0001,
212  CurrentLine = 0x0002,
213  Underline1 = 0x0004,
214  Underline2 = 0x0008,
215  };
216  };
217 
218  struct Option {
220  QRect clip;
221  };
222 
223  struct Character {
224  uint16_t c = 0;
226  };
227 
228  struct Char {
229  int left_x = 0;
230  int right_x = 0;
231  uint32_t unicode = 0;
233  Char() = default;
234  Char(uint32_t unicode)
235  : unicode(unicode)
236  {
237 
238  }
239  operator uint32_t () const
240  {
241  return unicode;
242  }
243 // operator unsigned int () const = delete;
244  };
245 
246  enum LineFlag {
248  };
249 
250  static int charWidth(uint32_t c);
251 
253  public:
254  QString text;
255  enum Attr {
256  StyleID = 0x00ffffff,
257  Selected = 0x01000000,
258  };
259  uint32_t atts;
260  FormattedLine2(QString const &text, int atts)
261  : text(text)
262  , atts(atts)
263  {
264  }
265  bool isSelected() const
266  {
267  return atts & Selected;
268  }
269  };
270 
271  QList<FormattedLine2> formatLine_(const Document::Line &line, int tab_span, int anchor_a = -1, int anchor_b = -1) const;
272  QList<FormattedLine2> formatLine2_(int row_index) const;
273 
274 private:
275  struct Private;
276  Private *m;
277 protected:
280  const int reference_char_width_ = 1; // TODO: remove
281 protected:
282 
283  int char_screen_w() const;
284  int char_screen_h() const;
285  std::vector<Character> *char_screen();
286  std::vector<Character> const *char_screen() const;
287  std::vector<uint8_t> *line_flags();
288 
289  void initEditor();
290 
291  void fetchCurrentLine() const;
292  QByteArray fetchLine(int row) const;
293  void clearParsedLine();
294 
295  int currentColX() const;
296  void setCurrentRow(int row);
297  void setCurrentCol(int col);
298 
299  int cursorCol() const;
300  int cursorRow() const;
301 
302  int editorViewportWidth() const;
303  int editorViewportHeight() const;
304 
305  virtual int print(int x, int y, QString const &text, Option const &opt);
306 
307  std::shared_ptr<TextEditorContext> editor_cx;
308  std::shared_ptr<TextEditorContext> dialog_cx;
309 
311  TextEditorContext const *cx() const;
312 
313  Document *document();
314  int documentLines() const;
315 
316  bool isSingleLineMode() const;
317 
319  int decideColumnScrollPos() const;
320 
321  int calcVisualWidth(Document::Line const &line) const;
322 
323  int leftMargin_() const;
324 
325  void makeBuffer();
326  int printArea(const TextEditorContext *cx, SelectionAnchor const *sel_a = nullptr, SelectionAnchor const *sel_b = nullptr);
327 
328  virtual void updateVisibility(bool ensure_current_line_visible, bool change_col, bool auto_scroll) = 0;
329  void commitLine(const std::vector<Char> &vec);
330 
331  void doDelete();
332  void doBackspace();
333 
334  bool isDialogMode();
335  void setDialogMode(bool f);
336  void closeDialog(bool result);
337  void setDialogOption(QString const &title, QString const &value, const DialogHandler &handler);
338  void execDialog(QString const &dialog_title, const QString &dialog_value, const DialogHandler &handler);
339 private:
340  int internalParseLine(const QByteArray &parsed_line, int current_col, std::vector<Char> *vec, int increase_hint) const;
341  void internalWrite(const ushort *begin, const ushort *end);
342  void pressLetterWithControl(int c);
344  void onQuit();
345  void onOpenFile();
346  void onSaveFile();
347  void printInvertedBar(int x, int y, char const *text, int padchar);
349  enum class EditOperation {
350  Cut,
351  Copy,
352  };
353  void editSelected(EditOperation op, std::vector<Char> *cutbuffer);
354  int calcColumnToIndex(int column);
355  void edit_(EditOperation op);
356  bool isCurrentLineWritable() const;
357  void initEngine(const std::shared_ptr<TextEditorContext>& cx);
358  void writeCR();
359  bool deleteIfSelected();
360  static int findSyntax(const QList<Document::CharAttr_> *list, size_t offset);
361  static void insertSyntax(QList<Document::CharAttr_> *list, size_t offset, const Document::CharAttr_ &a);
362  void setCursorCol_(int col, bool auto_scroll = true, bool by_mouse = false);
363 protected:
364  void deselect();
365  std::vector<Char> *parseCurrentLine(std::vector<Char> *vec, int increase_hint, bool force);
366  void parseLine(int row, std::vector<Char> *vec) const;
367 
368  virtual void setCursorRow(int row, bool auto_scroll = true, bool by_mouse = false);
369  virtual void setCursorCol(int col)
370  {
371  setCursorCol_(col, true, false);
372  }
373  void setCursorPosByMouse(RowCol pos, QPoint pt)
374  {
375  setCursorRow(pos.row, false, true);
376  setCursorCol_(pos.col, false, true);
377  cx()->current_col_pixel_x = pt.x();
378  }
379  void setCursorPos(int row, int col)
380  {
381  setCursorRow(row, false);
382  setCursorCol_(col, false, false);
383  }
384  int nextTabStop(int x) const;
385  int scrollBottomLimit() const;
386  int scrollBottomLimit2() const;
387  bool isPaintingSuppressed() const;
388  void setPaintingSuppressed(bool f);
389 
390  void addNewLineToBottom();
391  void appendNewLine(std::vector<Char> *vec);
392  void writeNewLine();
393  void updateCursorPos(bool auto_scroll);
394 
395  QString statusLine() const;
396 
397  void preparePaintScreen();
398  void setRecentlyUsedPath(QString const &path);
399  QString recentlyUsedPath();
400  void clearRect(int x, int y, int w, int h);
401  void paintLineNumbers(std::function<void(int, QString const &, Document::Line const *)> const &draw);
402  bool isAutoLayout() const;
403  void invalidateArea(int top_y = 0);
404  void savePos();
405  void restorePos();
406 public:
407 // RenderingMode rendering_mode_ = CharacterMode;
408 
409 // void set_rendering_mode(RenderingMode m)
410 // {
411 // rendering_mode_ = m;
412 // }
413 // RenderingMode renderingMode() const
414 // {
415 // return rendering_mode_;
416 // }
417 
418  int currentRow() const;
419  int currentCol() const;
420 
421  virtual void layoutEditor();
422  void scrollUp();
423  void scrollDown();
424  void moveCursorOut();
425  void moveCursorHome();
426  void moveCursorEnd();
427  void moveCursorUp();
428  virtual void moveCursorDown();
429  void moveCursorLeft();
430  void moveCursorRight();
431  void movePageUp();
432  void movePageDown();
433  void scrollToTop();
434 
437  TextEditorEnginePtr engine() const;
438  int screenWidth() const;
439  int screenHeight() const;
440  void setScreenSize(int w, int h, bool update_layout);
442  void openFile(QString const &path);
443  void saveFile(QString const &path);
444  void loadExampleFile();
445  void pressEnter();
446  void pressEscape();
447  State state() const;
448  bool isLineNumberVisible() const;
449  void showLineNumber(bool show, int left_margin = LEFT_MARGIN);
450  void showHeader(bool f);
451  void showFooter(bool f);
452  void setAutoLayout(bool f);
453  void setDocument(const QList<Document::Line> *source);
454  void setSelectionAnchor(SelectionAnchor::Enabled enabled, bool update_anchor, bool auto_scroll);
455  void setNormalTextEditorMode(bool f);
456  void setToggleSelectionAnchorEnabled(bool f);
457  void setReadOnly(bool f);
458  bool isReadOnly() const;
459  void editPaste();
460  void editCopy();
461  void editCut();
462  void setWriteMode(WriteMode wm);
463  bool isInsertMode() const;
464  bool isOverwriteMode() const;
465  void setTerminalMode(bool f);
466  bool isTerminalMode() const;
467  void moveToTop();
468  void moveToBottom();
469  bool isBottom() const;
470  void setLineMargin(int n);
471  void write(uint32_t c, bool by_keyboard);
472  void write(char const *ptr, int len, bool by_keyboard);
473  void write(std::string const &text);
474  void write(QKeyEvent *e);
475  void setTextCodec(QTextCodec *codec);
476  void setCursorVisible(bool show);
477  bool isCursorVisible();
478  void setModifierKeys(Qt::KeyboardModifiers keymod);
479  bool isControlModifierPressed() const;
480  bool isShiftModifierPressed() const;
481  void clearShiftModifier();
482  void retrieveLastText(std::vector<char> *out, int maxlen) const;
483  bool isChanged() const;
484  void setChanged(bool f);
485  void logicalMoveToBottom();
486  void logicalMoveToBottom2();
487  void appendBulk(const char *ptr, int len);
488  void clear();
489 protected:
490  void write_(char const *ptr, bool by_keyboard);
491  void write_(QString const &text, bool by_keyboard);
492  void makeColumnPosList(std::vector<int> *out);
493  bool isValidRowIndex(int row_index) const;
494  bool hasSelection() const;
495  void updateSelectionAnchor1(bool auto_scroll);
496  void updateSelectionAnchor2(bool auto_scroll);
497 };
498 
500 
501 };
502 
503 
504 #endif // ABSTRACTCHARACTERBASEDAPPLICATION_H
AbstractCharacterBasedApplication::selection_end
SelectionAnchor selection_end
Definition: AbstractCharacterBasedApplication.h:279
AbstractCharacterBasedApplication::calcColumnToIndex
int calcColumnToIndex(int column)
Definition: AbstractCharacterBasedApplication.cpp:1345
AbstractCharacterBasedApplication::moveToBottom
void moveToBottom()
Definition: AbstractCharacterBasedApplication.cpp:2217
AbstractCharacterBasedApplication::commitLine
void commitLine(const std::vector< Char > &vec)
Definition: AbstractCharacterBasedApplication.cpp:520
SelectionAnchor::operator<=
bool operator<=(SelectionAnchor const &a) const
Definition: AbstractCharacterBasedApplication.h:122
AbstractCharacterBasedApplication::Private::is_toggle_selection_anchor_enabled
bool is_toggle_selection_anchor_enabled
Definition: AbstractCharacterBasedApplication.cpp:74
AbstractCharacterBasedApplication::WriteMode
WriteMode
Definition: AbstractCharacterBasedApplication.h:179
RowCol::RowCol
RowCol(int row=0, int col=0)
Definition: AbstractCharacterBasedApplication.h:160
TextEditorContext::tab_span
int tab_span
Definition: AbstractCharacterBasedApplication.h:152
AbstractCharacterBasedApplication::line_flags
std::vector< uint8_t > * line_flags()
Definition: AbstractCharacterBasedApplication.cpp:236
utf16
Definition: unicode.h:124
AbstractCharacterBasedApplication::Private::is_painting_suppressed
bool is_painting_suppressed
Definition: AbstractCharacterBasedApplication.cpp:99
AbstractCharacterBasedApplication::Private::is_quit_enabled
bool is_quit_enabled
Definition: AbstractCharacterBasedApplication.cpp:71
EscapeCode::Down
@ Down
Definition: AbstractCharacterBasedApplication.h:18
Document::CharAttr_::color
int color
Definition: AbstractCharacterBasedApplication.h:34
AbstractCharacterBasedApplication::printInvertedBar
void printInvertedBar(int x, int y, char const *text, int padchar)
Definition: AbstractCharacterBasedApplication.cpp:1784
AbstractCharacterBasedApplication::Private::ctrl_modifier
bool ctrl_modifier
Definition: AbstractCharacterBasedApplication.cpp:105
AbstractCharacterBasedApplication::movePageUp
void movePageUp()
Definition: AbstractCharacterBasedApplication.cpp:1605
AbstractCharacterBasedApplication::isCurrentLineWritable
bool isCurrentLineWritable() const
Definition: AbstractCharacterBasedApplication.cpp:643
Document::Line::byte_offset
size_t byte_offset
Definition: AbstractCharacterBasedApplication.h:46
Document::Line::Normal
@ Normal
Definition: AbstractCharacterBasedApplication.h:39
AbstractCharacterBasedApplication::isLineNumberVisible
bool isLineNumberVisible() const
Definition: AbstractCharacterBasedApplication.cpp:266
AbstractCharacterBasedApplication::CharAttr::CurrentLine
@ CurrentLine
Definition: AbstractCharacterBasedApplication.h:212
AbstractCharacterBasedApplication::formatLine_
QList< FormattedLine2 > formatLine_(const Document::Line &line, int tab_span, int anchor_a=-1, int anchor_b=-1) const
Definition: AbstractCharacterBasedApplication.cpp:276
AbstractCharacterBasedApplication::Private::keyboard_modifiers
Qt::KeyboardModifiers keyboard_modifiers
Definition: AbstractCharacterBasedApplication.cpp:104
AbstractCharacterBasedApplication::FormattedLine2::FormattedLine2
FormattedLine2(QString const &text, int atts)
Definition: AbstractCharacterBasedApplication.h:260
TextEditorContext::single_line
bool single_line
Definition: AbstractCharacterBasedApplication.h:136
AbstractCharacterBasedApplication::clearShiftModifier
void clearShiftModifier()
Definition: AbstractCharacterBasedApplication.cpp:129
AbstractCharacterBasedApplication::LEFT_MARGIN
static const int LEFT_MARGIN
Definition: AbstractCharacterBasedApplication.h:176
AbstractCharacterBasedApplication::charWidth
static int charWidth(uint32_t c)
Definition: AbstractCharacterBasedApplication.cpp:271
TextEditorContext::current_char_span
int current_char_span
Definition: AbstractCharacterBasedApplication.h:145
AbstractCharacterBasedApplication::clearParsedLine
void clearParsedLine()
Definition: AbstractCharacterBasedApplication.cpp:474
AbstractCharacterBasedApplication::deselect
void deselect()
Definition: AbstractCharacterBasedApplication.cpp:974
AbstractCharacterBasedApplication::pressEnter
void pressEnter()
Definition: AbstractCharacterBasedApplication.cpp:827
AbstractCharacterBasedApplication::Private::recently_used_path
QString recently_used_path
Definition: AbstractCharacterBasedApplication.cpp:84
SelectionAnchor::enabled
Enabled enabled
Definition: AbstractCharacterBasedApplication.h:90
AbstractCharacterBasedApplication::setCursorPos
void setCursorPos(int row, int col)
Definition: AbstractCharacterBasedApplication.h:379
SelectionAnchor
Definition: AbstractCharacterBasedApplication.h:84
SelectionAnchor::compare
int compare(SelectionAnchor const &a) const
Definition: AbstractCharacterBasedApplication.h:93
AbstractCharacterBasedApplication::updateSelectionAnchor2
void updateSelectionAnchor2(bool auto_scroll)
Definition: AbstractCharacterBasedApplication.cpp:998
TextEditorEngine
Definition: AbstractCharacterBasedApplication.h:75
AbstractCharacterBasedApplication::setRecentlyUsedPath
void setRecentlyUsedPath(QString const &path)
Definition: AbstractCharacterBasedApplication.cpp:206
AbstractCharacterBasedApplication::moveToTop
void moveToTop()
Definition: AbstractCharacterBasedApplication.cpp:2167
AbstractCharacterBasedApplication::decideColumnScrollPos
int decideColumnScrollPos() const
Definition: AbstractCharacterBasedApplication.cpp:894
AbstractCharacterBasedApplication::LineChanged
@ LineChanged
Definition: AbstractCharacterBasedApplication.h:247
AbstractCharacterBasedApplication::Private::screen
std::vector< Character > screen
Definition: AbstractCharacterBasedApplication.cpp:89
AbstractCharacterBasedApplication::Private::parsed_row_index
int parsed_row_index
Definition: AbstractCharacterBasedApplication.cpp:91
AbstractCharacterBasedApplication::FormattedLine2::Attr
Attr
Definition: AbstractCharacterBasedApplication.h:255
AbstractCharacterBasedApplication::Private::screen_width
int screen_width
Definition: AbstractCharacterBasedApplication.cpp:81
TextEditorEngine::document
Document document
Definition: AbstractCharacterBasedApplication.h:77
AbstractCharacterBasedApplication::isReadOnly
bool isReadOnly() const
Definition: AbstractCharacterBasedApplication.cpp:2078
EscapeCode::Delete
@ Delete
Definition: AbstractCharacterBasedApplication.h:24
AbstractCharacterBasedApplication::moveCursorEnd
void moveCursorEnd()
Definition: AbstractCharacterBasedApplication.cpp:1458
AbstractCharacterBasedApplication::CharAttr::Index
Index
Definition: AbstractCharacterBasedApplication.h:205
EscapeCode::Up
@ Up
Definition: AbstractCharacterBasedApplication.h:17
AbstractCharacterBasedApplication::Option::clip
QRect clip
Definition: AbstractCharacterBasedApplication.h:220
AbstractCharacterBasedApplication::Private::show_line_number
bool show_line_number
Definition: AbstractCharacterBasedApplication.cpp:85
TextEditorContext::viewport_org_x
int viewport_org_x
Definition: AbstractCharacterBasedApplication.h:148
Document::Line::type
Type type
Definition: AbstractCharacterBasedApplication.h:43
AbstractCharacterBasedApplication::Private::is_save_enabled
bool is_save_enabled
Definition: AbstractCharacterBasedApplication.cpp:73
AbstractCharacterBasedApplication::moveCursorLeft
void moveCursorLeft()
Definition: AbstractCharacterBasedApplication.cpp:1523
AbstractCharacterBasedApplication::writeNewLine
void writeNewLine()
Definition: AbstractCharacterBasedApplication.cpp:1666
TextEditorContext::viewport_height
int viewport_height
Definition: AbstractCharacterBasedApplication.h:151
TextEditorContext::viewport_org_y
int viewport_org_y
Definition: AbstractCharacterBasedApplication.h:149
DialogHandler
std::function< void(bool, QString const &)> DialogHandler
Definition: AbstractCharacterBasedApplication.h:167
UnicodeWidth::type
static Type type(uint32_t c)
Definition: UnicodeWidth.cpp:6
AbstractCharacterBasedApplication::scrollBottomLimit2
int scrollBottomLimit2() const
Definition: AbstractCharacterBasedApplication.cpp:1410
SelectionAnchor::Enabled
Enabled
Definition: AbstractCharacterBasedApplication.h:85
AbstractCharacterBasedApplication::Private::valid_line_index
int valid_line_index
Definition: AbstractCharacterBasedApplication.cpp:100
TextEditorContext::scroll_row_pos
int scroll_row_pos
Definition: AbstractCharacterBasedApplication.h:146
AbstractCharacterBasedApplication::isAutoLayout
bool isAutoLayout() const
Definition: AbstractCharacterBasedApplication.cpp:1957
TextEditorContext::current_row_pixel_y
int current_row_pixel_y
Definition: AbstractCharacterBasedApplication.h:141
AbstractCharacterBasedApplication::leftMargin_
int leftMargin_() const
Definition: AbstractCharacterBasedApplication.cpp:201
Document::Line::line_number
int line_number
Definition: AbstractCharacterBasedApplication.h:45
Document::Line::Del
@ Del
Definition: AbstractCharacterBasedApplication.h:41
AbstractCharacterBasedApplication::setTextEditorEngine
void setTextEditorEngine(const TextEditorEnginePtr &e)
Definition: AbstractCharacterBasedApplication.cpp:759
AbstractCharacterBasedApplication::char_screen
std::vector< Character > * char_screen()
Definition: AbstractCharacterBasedApplication.cpp:216
AbstractCharacterBasedApplication::setWriteMode
void setWriteMode(WriteMode wm)
Definition: AbstractCharacterBasedApplication.cpp:2123
TextEditorEnginePtr
std::shared_ptr< TextEditorEngine > TextEditorEnginePtr
Definition: AbstractCharacterBasedApplication.h:132
AbstractCharacterBasedApplication::onQuit
void onQuit()
Definition: AbstractCharacterBasedApplication.cpp:2015
AbstractCharacterBasedApplication::Private::syntax_table
QList< Document::CharAttr_ > syntax_table
Definition: AbstractCharacterBasedApplication.cpp:96
AbstractCharacterBasedApplication::Character::c
uint16_t c
Definition: AbstractCharacterBasedApplication.h:224
AbstractCharacterBasedApplication::CharAttr
Definition: AbstractCharacterBasedApplication.h:189
AbstractCharacterBasedApplication::deleteIfSelected
bool deleteIfSelected()
Definition: AbstractCharacterBasedApplication.cpp:1194
EsccapeSequence::isActive
bool isActive() const
Definition: AbstractCharacterBasedApplication.cpp:22
EsccapeSequence::color_fg
int color_fg
Definition: AbstractCharacterBasedApplication.cpp:19
AbstractCharacterBasedApplication::setChanged
void setChanged(bool f)
Definition: AbstractCharacterBasedApplication.cpp:196
TextEditorContext::current_col_pixel_x
int current_col_pixel_x
Definition: AbstractCharacterBasedApplication.h:140
AbstractCharacterBasedApplication::CharAttr::operator==
bool operator==(CharAttr const &r) const
Definition: AbstractCharacterBasedApplication.h:197
TextEditorEngine::TextEditorEngine
TextEditorEngine()
Definition: AbstractCharacterBasedApplication.h:78
AbstractCharacterBasedApplication::setCursorCol_
void setCursorCol_(int col, bool auto_scroll=true, bool by_mouse=false)
Definition: AbstractCharacterBasedApplication.cpp:1019
AbstractCharacterBasedApplication::CharAttr::operator!=
bool operator!=(CharAttr const &r) const
Definition: AbstractCharacterBasedApplication.h:201
AbstractCharacterBasedApplication
Definition: AbstractCharacterBasedApplication.h:169
TextEditorContext::current_col_hint
int current_col_hint
Definition: AbstractCharacterBasedApplication.h:139
AbstractCharacterBasedApplication::CharAttr::Underline2
@ Underline2
wip
Definition: AbstractCharacterBasedApplication.h:214
AbstractCharacterBasedApplication::Private::shift_modifier
bool shift_modifier
Definition: AbstractCharacterBasedApplication.cpp:106
AbstractCharacterBasedApplication::FormattedLine2
Definition: AbstractCharacterBasedApplication.h:252
AbstractCharacterBasedApplication::scrollBottomLimit
int scrollBottomLimit() const
Definition: AbstractCharacterBasedApplication.cpp:1405
utf8
Definition: unicode.h:137
EsccapeSequence::write
void write(char c)
Definition: AbstractCharacterBasedApplication.cpp:26
SelectionAnchor::False
@ False
Definition: AbstractCharacterBasedApplication.h:86
AbstractCharacterBasedApplication::RIGHT_MARGIN
static const int RIGHT_MARGIN
Definition: AbstractCharacterBasedApplication.h:177
AbstractCharacterBasedApplication::setCursorCol
virtual void setCursorCol(int col)
Definition: AbstractCharacterBasedApplication.h:369
SelectionAnchor::operator==
bool operator==(SelectionAnchor const &a) const
Definition: AbstractCharacterBasedApplication.h:106
Document::Line::Line
Line()=default
Document
Definition: AbstractCharacterBasedApplication.h:30
AbstractCharacterBasedApplication::internalWrite
void internalWrite(const ushort *begin, const ushort *end)
Definition: AbstractCharacterBasedApplication.cpp:2279
AbstractCharacterBasedApplication::internalParseLine
int internalParseLine(const QByteArray &parsed_line, int current_col, std::vector< Char > *vec, int increase_hint) const
桁位置を求める
Definition: AbstractCharacterBasedApplication.cpp:597
abstract_unicode_reader::to_utf8
void to_utf8(std::function< bool(char, int)> const &fn)
Definition: unicode.h:82
utf8::offset
size_t offset() const
Definition: unicode.h:145
AbstractCharacterBasedApplication::setTerminalMode
void setTerminalMode(bool f)
Definition: AbstractCharacterBasedApplication.cpp:2138
SelectionAnchor::operator>=
bool operator>=(SelectionAnchor const &a) const
Definition: AbstractCharacterBasedApplication.h:126
AbstractCharacterBasedApplication::Private::is_changed
bool is_changed
Definition: AbstractCharacterBasedApplication.cpp:70
AbstractCharacterBasedApplication::state
State state() const
Definition: AbstractCharacterBasedApplication.cpp:854
Document::retrieveLastText
void retrieveLastText(std::vector< char > *out, int maxlen) const
Definition: AbstractCharacterBasedApplication.cpp:2645
RowCol::col
int col
Definition: AbstractCharacterBasedApplication.h:159
AbstractCharacterBasedApplication::CharAttr::Flag
Flag
Definition: AbstractCharacterBasedApplication.h:210
TextEditorContext::engine
TextEditorEnginePtr engine
Definition: AbstractCharacterBasedApplication.h:154
AbstractCharacterBasedApplication::dialog_cx
std::shared_ptr< TextEditorContext > dialog_cx
Definition: AbstractCharacterBasedApplication.h:308
AbstractCharacterBasedApplication::setNormalTextEditorMode
void setNormalTextEditorMode(bool f)
Definition: AbstractCharacterBasedApplication.cpp:2051
AbstractCharacterBasedApplication::findSyntax
static int findSyntax(const QList< Document::CharAttr_ > *list, size_t offset)
Definition: AbstractCharacterBasedApplication.cpp:2228
AbstractCharacterBasedApplication::Private::left_margin
int left_margin
Definition: AbstractCharacterBasedApplication.cpp:86
AbstractCharacterBasedApplication::setScreenSize
void setScreenSize(int w, int h, bool update_layout)
Definition: AbstractCharacterBasedApplication.cpp:501
AbstractCharacterBasedApplication::document
Document * document()
Definition: AbstractCharacterBasedApplication.cpp:859
SelectionAnchor::operator!=
bool operator!=(SelectionAnchor const &a) const
Definition: AbstractCharacterBasedApplication.h:110
AbstractCharacterBasedApplication::Private::write_mode
WriteMode write_mode
Definition: AbstractCharacterBasedApplication.cpp:102
AbstractCharacterBasedApplication::showLineNumber
void showLineNumber(bool show, int left_margin=LEFT_MARGIN)
Definition: AbstractCharacterBasedApplication.cpp:170
AbstractCharacterBasedApplication::isCursorVisible
bool isCursorVisible()
Definition: AbstractCharacterBasedApplication.cpp:181
EsccapeSequence::data
unsigned char data[100]
Definition: AbstractCharacterBasedApplication.cpp:18
AbstractCharacterBasedApplication::scrollToTop
void scrollToTop()
Definition: AbstractCharacterBasedApplication.cpp:1511
AbstractCharacterBasedApplication::makeColumnPosList
void makeColumnPosList(std::vector< int > *out)
現在行の桁座標リストを作成する
Definition: AbstractCharacterBasedApplication.cpp:1707
AbstractCharacterBasedApplication::moveCursorOut
void moveCursorOut()
Definition: AbstractCharacterBasedApplication.cpp:1424
AbstractCharacterBasedApplication::editor_cx
std::shared_ptr< TextEditorContext > editor_cx
Definition: AbstractCharacterBasedApplication.h:307
AbstractCharacterBasedApplication::Private::escape_sequence
EsccapeSequence escape_sequence
Definition: AbstractCharacterBasedApplication.cpp:107
AbstractCharacterBasedApplication::execDialog
void execDialog(QString const &dialog_title, const QString &dialog_value, const DialogHandler &handler)
Definition: AbstractCharacterBasedApplication.cpp:1322
EscapeCode::End
@ End
Definition: AbstractCharacterBasedApplication.h:22
AbstractCharacterBasedApplication::setDocument
void setDocument(const QList< Document::Line > *source)
Definition: AbstractCharacterBasedApplication.cpp:769
AbstractCharacterBasedApplication::CharAttr::Normal
@ Normal
Definition: AbstractCharacterBasedApplication.h:206
EsccapeSequence::color_bg
int color_bg
Definition: AbstractCharacterBasedApplication.cpp:20
AbstractCharacterBasedApplication::char_screen_w
int char_screen_w() const
Definition: AbstractCharacterBasedApplication.cpp:221
AbstractCharacterBasedApplication::appendBulk
void appendBulk(const char *ptr, int len)
Definition: AbstractCharacterBasedApplication.cpp:2476
AbstractCharacterBasedApplication::setDialogMode
void setDialogMode(bool f)
Definition: AbstractCharacterBasedApplication.cpp:1295
EscapeCode::PageDown
@ PageDown
Definition: AbstractCharacterBasedApplication.h:26
AbstractCharacterBasedApplication::editCopy
void editCopy()
Definition: AbstractCharacterBasedApplication.cpp:2111
Document::Line::Line
Line(std::string const &str, Type type=Normal)
Definition: AbstractCharacterBasedApplication.h:57
AbstractCharacterBasedApplication::showFooter
void showFooter(bool f)
Definition: AbstractCharacterBasedApplication.cpp:164
AbstractCharacterBasedApplication::State
State
Definition: AbstractCharacterBasedApplication.h:184
AbstractCharacterBasedApplication::editSelected
void editSelected(EditOperation op, std::vector< Char > *cutbuffer)
Definition: AbstractCharacterBasedApplication.cpp:1043
AbstractCharacterBasedApplication::Private::dialog_handler
DialogHandler dialog_handler
Definition: AbstractCharacterBasedApplication.cpp:98
Document::Line::Type
Type
Definition: AbstractCharacterBasedApplication.h:37
AbstractCharacterBasedApplication::WriteMode::Insert
@ Insert
AbstractCharacterBasedApplication::State::Normal
@ Normal
AbstractCharacterBasedApplication::currentColX
int currentColX() const
Definition: AbstractCharacterBasedApplication.cpp:452
AbstractCharacterBasedApplication::Character
Definition: AbstractCharacterBasedApplication.h:223
AbstractCharacterBasedApplication::CharAttr::Invert
@ Invert
Definition: AbstractCharacterBasedApplication.h:207
AbstractCharacterBasedApplication::Character::a
CharAttr a
Definition: AbstractCharacterBasedApplication.h:225
UnicodeWidth::width
static int width(Type t)
Definition: UnicodeWidth.h:29
AbstractCharacterBasedApplication::showHeader
void showHeader(bool f)
Definition: AbstractCharacterBasedApplication.cpp:158
AbstractCharacterBasedApplication::CharAttr::flags
uint16_t flags
Definition: AbstractCharacterBasedApplication.h:191
AbstractCharacterBasedApplication::WriteMode::Overwrite
@ Overwrite
AbstractCharacterBasedApplication::isShiftModifierPressed
bool isShiftModifierPressed() const
Definition: AbstractCharacterBasedApplication.cpp:139
AbstractCharacterBasedApplication::Private::is_cursor_visible
bool is_cursor_visible
Definition: AbstractCharacterBasedApplication.cpp:77
AbstractCharacterBasedApplication::Private::state
State state
Definition: AbstractCharacterBasedApplication.cpp:78
AbstractCharacterBasedApplication::Char::Char
Char()=default
EscapeCode::Right
@ Right
Definition: AbstractCharacterBasedApplication.h:19
Document::Line::endsWithNewLine
bool endsWithNewLine() const
Definition: AbstractCharacterBasedApplication.h:63
AbstractCharacterBasedApplication::reference_char_width_
const int reference_char_width_
Definition: AbstractCharacterBasedApplication.h:280
AbstractCharacterBasedApplication::Char::left_x
int left_x
Definition: AbstractCharacterBasedApplication.h:229
abstract_unicode_reader::to_utf32
void to_utf32(std::function< bool(uint32_t)> const &fn)
Definition: unicode.h:101
AbstractCharacterBasedApplication::setModifierKeys
void setModifierKeys(Qt::KeyboardModifiers keymod)
Definition: AbstractCharacterBasedApplication.cpp:122
EsccapeSequence::fg_color_code
int fg_color_code() const
Definition: AbstractCharacterBasedApplication.cpp:59
SelectionAnchor::True
@ True
Definition: AbstractCharacterBasedApplication.h:87
AbstractCharacterBasedApplication::Char::Char
Char(uint32_t unicode)
Definition: AbstractCharacterBasedApplication.h:234
AbstractCharacterBasedApplication::Private::is_read_only
bool is_read_only
Definition: AbstractCharacterBasedApplication.cpp:75
AbstractTextEditorApplication
Definition: AbstractCharacterBasedApplication.h:499
AbstractCharacterBasedApplication::CharAttr::Selected
@ Selected
Definition: AbstractCharacterBasedApplication.h:211
AbstractCharacterBasedApplication::Private::dialog_value
QString dialog_value
Definition: AbstractCharacterBasedApplication.cpp:88
AbstractCharacterBasedApplication::char_screen_h
int char_screen_h() const
Definition: AbstractCharacterBasedApplication.cpp:226
AbstractCharacterBasedApplication::ensureCurrentLineVisible
void ensureCurrentLineVisible()
Definition: AbstractCharacterBasedApplication.cpp:879
utf8::next
uint32_t next() override
Definition: unicode.cpp:361
AbstractCharacterBasedApplication::Private::is_terminal_mode
bool is_terminal_mode
Definition: AbstractCharacterBasedApplication.cpp:76
AbstractCharacterBasedApplication::setReadOnly
void setReadOnly(bool f)
Definition: AbstractCharacterBasedApplication.cpp:2073
AbstractCharacterBasedApplication::EditOperation
EditOperation
Definition: AbstractCharacterBasedApplication.h:349
AbstractCharacterBasedApplication::updateCursorPos
void updateCursorPos(bool auto_scroll)
Definition: AbstractCharacterBasedApplication.cpp:1735
TextEditorContext::saved_col
int saved_col
Definition: AbstractCharacterBasedApplication.h:143
AbstractCharacterBasedApplication::setCurrentCol
void setCurrentCol(int col)
Definition: AbstractCharacterBasedApplication.cpp:462
AbstractCharacterBasedApplication::editCut
void editCut()
Definition: AbstractCharacterBasedApplication.cpp:2116
AbstractCharacterBasedApplication::m
Private * m
Definition: AbstractCharacterBasedApplication.h:275
AbstractCharacterBasedApplication::closeDialog
void closeDialog(bool result)
Definition: AbstractCharacterBasedApplication.cpp:1328
AbstractCharacterBasedApplication::editPaste
void editPaste()
Definition: AbstractCharacterBasedApplication.cpp:2094
AbstractCharacterBasedApplication::isValidRowIndex
bool isValidRowIndex(int row_index) const
Definition: AbstractCharacterBasedApplication.cpp:412
utf32
Definition: unicode.h:111
AbstractCharacterBasedApplication::Private::line_margin
int line_margin
Definition: AbstractCharacterBasedApplication.cpp:101
AbstractCharacterBasedApplication::documentLines
int documentLines() const
Definition: AbstractCharacterBasedApplication.cpp:864
AbstractCharacterBasedApplication::Char
Definition: AbstractCharacterBasedApplication.h:228
SelectionAnchor::col
int col
Definition: AbstractCharacterBasedApplication.h:92
AbstractCharacterBasedApplication::isDialogMode
bool isDialogMode()
Definition: AbstractCharacterBasedApplication.cpp:1283
AbstractCharacterBasedApplication::saveFile
void saveFile(QString const &path)
Definition: AbstractCharacterBasedApplication.cpp:817
AbstractCharacterBasedApplication::Char::right_x
int right_x
Definition: AbstractCharacterBasedApplication.h:230
AbstractCharacterBasedApplication::CharAttr::Hilite
@ Hilite
Definition: AbstractCharacterBasedApplication.h:208
AbstractCharacterBasedApplication::initEngine
void initEngine(const std::shared_ptr< TextEditorContext > &cx)
Definition: AbstractCharacterBasedApplication.cpp:729
AbstractCharacterBasedApplication::layoutEditor
virtual void layoutEditor()
Definition: AbstractCharacterBasedApplication.cpp:251
AbstractCharacterBasedApplication::selection_start
SelectionAnchor selection_start
Definition: AbstractCharacterBasedApplication.h:278
AbstractCharacterBasedApplication.h
AbstractCharacterBasedApplication::onOpenFile
void onOpenFile()
Definition: AbstractCharacterBasedApplication.cpp:2024
AbstractCharacterBasedApplication::printArea
int printArea(const TextEditorContext *cx, SelectionAnchor const *sel_a=nullptr, SelectionAnchor const *sel_b=nullptr)
Definition: AbstractCharacterBasedApplication.cpp:1811
AbstractCharacterBasedApplication::scrollDown
void scrollDown()
Definition: AbstractCharacterBasedApplication.cpp:1478
AbstractCharacterBasedApplication::moveCursorRight
void moveCursorRight()
Definition: AbstractCharacterBasedApplication.cpp:1553
AbstractCharacterBasedApplication::FormattedLine2::text
QString text
Definition: AbstractCharacterBasedApplication.h:254
AbstractCharacterBasedApplication::formatLine2_
QList< FormattedLine2 > formatLine2_(int row_index) const
Definition: AbstractCharacterBasedApplication.cpp:417
AbstractCharacterBasedApplication::statusLine
QString statusLine() const
Definition: AbstractCharacterBasedApplication.cpp:1804
AbstractCharacterBasedApplication::isTerminalMode
bool isTerminalMode() const
Definition: AbstractCharacterBasedApplication.cpp:2152
AbstractCharacterBasedApplication::isInsertMode
bool isInsertMode() const
Definition: AbstractCharacterBasedApplication.cpp:2128
AbstractCharacterBasedApplication::fetchLine
QByteArray fetchLine(int row) const
現在行を取得
Definition: AbstractCharacterBasedApplication.cpp:432
EscapeCode::Left
@ Left
Definition: AbstractCharacterBasedApplication.h:20
AbstractCharacterBasedApplication::Option::char_attr
CharAttr char_attr
Definition: AbstractCharacterBasedApplication.h:219
AbstractCharacterBasedApplication::editorViewportHeight
int editorViewportHeight() const
Definition: AbstractCharacterBasedApplication.cpp:661
RowCol
Definition: AbstractCharacterBasedApplication.h:157
AbstractCharacterBasedApplication::cursorCol
int cursorCol() const
Definition: AbstractCharacterBasedApplication.cpp:481
AbstractCharacterBasedApplication::invalidateArea
void invalidateArea(int top_y=0)
Definition: AbstractCharacterBasedApplication.cpp:1378
AbstractCharacterBasedApplication::~AbstractCharacterBasedApplication
virtual ~AbstractCharacterBasedApplication()
Definition: AbstractCharacterBasedApplication.cpp:117
AbstractCharacterBasedApplication::moveCursorHome
void moveCursorHome()
Definition: AbstractCharacterBasedApplication.cpp:1429
Document::Line::Line
Line(QByteArray const &ba)
Definition: AbstractCharacterBasedApplication.h:51
AbstractCharacterBasedApplication::Private::is_open_enabled
bool is_open_enabled
Definition: AbstractCharacterBasedApplication.cpp:72
AbstractCharacterBasedApplication::Private::footer_line
int footer_line
Definition: AbstractCharacterBasedApplication.cpp:80
abstract_unicode_reader::to_utf16
void to_utf16(std::function< bool(uint16_t)> const &fn)
Definition: unicode.h:92
TextEditorContext::bottom_line_y
int bottom_line_y
Definition: AbstractCharacterBasedApplication.h:153
AbstractCharacterBasedApplication::recentlyUsedPath
QString recentlyUsedPath()
Definition: AbstractCharacterBasedApplication.cpp:211
AbstractCharacterBasedApplication::clearRect
void clearRect(int x, int y, int w, int h)
Definition: AbstractCharacterBasedApplication.cpp:934
AbstractCharacterBasedApplication::moveCursorUp
void moveCursorUp()
Definition: AbstractCharacterBasedApplication.cpp:1489
AbstractCharacterBasedApplication::calcVisualWidth
int calcVisualWidth(Document::Line const &line) const
Definition: AbstractCharacterBasedApplication.cpp:902
AbstractCharacterBasedApplication::scrollUp
void scrollUp()
Definition: AbstractCharacterBasedApplication.cpp:1468
AbstractCharacterBasedApplication::initEditor
void initEditor()
Definition: AbstractCharacterBasedApplication.cpp:260
AbstractCharacterBasedApplication::addNewLineToBottom
void addNewLineToBottom()
Definition: AbstractCharacterBasedApplication.cpp:1649
AbstractCharacterBasedApplication::setTextCodec
void setTextCodec(QTextCodec *codec)
Definition: AbstractCharacterBasedApplication.cpp:144
AbstractCharacterBasedApplication::cx
TextEditorContext * cx()
Definition: AbstractCharacterBasedApplication.cpp:734
AbstractCharacterBasedApplication::Char::unicode
uint32_t unicode
Definition: AbstractCharacterBasedApplication.h:231
AbstractCharacterBasedApplication::pressEscape
void pressEscape()
Definition: AbstractCharacterBasedApplication.cpp:838
AbstractCharacterBasedApplication::screenHeight
int screenHeight() const
Definition: AbstractCharacterBasedApplication.cpp:496
AbstractCharacterBasedApplication::isSingleLineMode
bool isSingleLineMode() const
Definition: AbstractCharacterBasedApplication.cpp:869
TextEditorContext::current_col
int current_col
Definition: AbstractCharacterBasedApplication.h:138
AbstractCharacterBasedApplication::pressLetterWithControl
void pressLetterWithControl(int c)
Definition: AbstractCharacterBasedApplication.cpp:2349
AbstractCharacterBasedApplication::Char::attr
CharAttr attr
Definition: AbstractCharacterBasedApplication.h:232
AbstractCharacterBasedApplication::parseCurrentLine
std::vector< Char > * parseCurrentLine(std::vector< Char > *vec, int increase_hint, bool force)
行のレイアウトを解析
Definition: AbstractCharacterBasedApplication.cpp:566
AbstractCharacterBasedApplication::currentCol
int currentCol() const
Definition: AbstractCharacterBasedApplication.cpp:447
AbstractCharacterBasedApplication::EditOperation::Cut
@ Cut
TextEditorContext
Definition: AbstractCharacterBasedApplication.h:134
UnicodeWidth.h
AbstractCharacterBasedApplication::print
virtual int print(int x, int y, QString const &text, Option const &opt)
Definition: AbstractCharacterBasedApplication.cpp:666
AbstractCharacterBasedApplication::Private
Definition: AbstractCharacterBasedApplication.cpp:69
Document::CharAttr_::offset
size_t offset
Definition: AbstractCharacterBasedApplication.h:33
AbstractCharacterBasedApplication::setLineMargin
void setLineMargin(int n)
Definition: AbstractCharacterBasedApplication.cpp:874
AbstractCharacterBasedApplication::hasSelection
bool hasSelection() const
Definition: AbstractCharacterBasedApplication.cpp:980
AbstractCharacterBasedApplication::Private::text_codec
QTextCodec * text_codec
Definition: AbstractCharacterBasedApplication.cpp:103
AbstractCharacterBasedApplication::write
void write(uint32_t c, bool by_keyboard)
Definition: AbstractCharacterBasedApplication.cpp:2380
AbstractCharacterBasedApplication::paintLineNumbers
void paintLineNumbers(std::function< void(int, QString const &, Document::Line const *)> const &draw)
Definition: AbstractCharacterBasedApplication.cpp:1885
AbstractCharacterBasedApplication::Private::parsed_for_edit
bool parsed_for_edit
Definition: AbstractCharacterBasedApplication.cpp:93
AbstractCharacterBasedApplication::Private::current_line_data
QByteArray current_line_data
Definition: AbstractCharacterBasedApplication.cpp:94
AbstractCharacterBasedApplication::FormattedLine2::StyleID
@ StyleID
Definition: AbstractCharacterBasedApplication.h:256
AbstractCharacterBasedApplication::screenWidth
int screenWidth() const
Definition: AbstractCharacterBasedApplication.cpp:491
EscapeCode
Definition: AbstractCharacterBasedApplication.h:15
AbstractCharacterBasedApplication::openFile
void openFile(QString const &path)
Definition: AbstractCharacterBasedApplication.cpp:778
AbstractCharacterBasedApplication::cursorRow
int cursorRow() const
Definition: AbstractCharacterBasedApplication.cpp:486
EscapeCode::PageUp
@ PageUp
Definition: AbstractCharacterBasedApplication.h:25
AbstractCharacterBasedApplication::logicalMoveToBottom
void logicalMoveToBottom()
Definition: AbstractCharacterBasedApplication.cpp:2183
AbstractCharacterBasedApplication::parseLine
void parseLine(int row, std::vector< Char > *vec) const
行の桁位置を求める
Definition: AbstractCharacterBasedApplication.cpp:637
Document::Line::Unknown
@ Unknown
Definition: AbstractCharacterBasedApplication.h:38
AbstractCharacterBasedApplication::setToggleSelectionAnchorEnabled
void setToggleSelectionAnchorEnabled(bool f)
Definition: AbstractCharacterBasedApplication.cpp:2068
AbstractCharacterBasedApplication::retrieveLastText
void retrieveLastText(std::vector< char > *out, int maxlen) const
Definition: AbstractCharacterBasedApplication.cpp:186
AbstractCharacterBasedApplication::invalidateAreaBelowTheCurrentLine
void invalidateAreaBelowTheCurrentLine()
Definition: AbstractCharacterBasedApplication.cpp:1392
AbstractCharacterBasedApplication::fetchCurrentLine
void fetchCurrentLine() const
Definition: AbstractCharacterBasedApplication.cpp:467
AbstractCharacterBasedApplication::Private::parsed_col_index
int parsed_col_index
Definition: AbstractCharacterBasedApplication.cpp:92
AbstractCharacterBasedApplication::preparePaintScreen
void preparePaintScreen()
Definition: AbstractCharacterBasedApplication.cpp:1962
AbstractCharacterBasedApplication::FormattedLine2::isSelected
bool isSelected() const
Definition: AbstractCharacterBasedApplication.h:265
TextEditorContext::viewport_width
int viewport_width
Definition: AbstractCharacterBasedApplication.h:150
AbstractCharacterBasedApplication::CharAttr::Underline1
@ Underline1
Definition: AbstractCharacterBasedApplication.h:213
AbstractCharacterBasedApplication::Private::auto_layout
bool auto_layout
Definition: AbstractCharacterBasedApplication.cpp:83
AbstractCharacterBasedApplication::AbstractCharacterBasedApplication
AbstractCharacterBasedApplication()
Definition: AbstractCharacterBasedApplication.cpp:112
AbstractCharacterBasedApplication::CharAttr::color
QColor color
Definition: AbstractCharacterBasedApplication.h:192
AbstractCharacterBasedApplication::insertSyntax
static void insertSyntax(QList< Document::CharAttr_ > *list, size_t offset, const Document::CharAttr_ &a)
Definition: AbstractCharacterBasedApplication.cpp:2247
EsccapeSequence::bg_color_code
int bg_color_code() const
Definition: AbstractCharacterBasedApplication.cpp:63
AbstractCharacterBasedApplication::editorViewportWidth
int editorViewportWidth() const
Definition: AbstractCharacterBasedApplication.cpp:656
AbstractCharacterBasedApplication::setPaintingSuppressed
void setPaintingSuppressed(bool f)
Definition: AbstractCharacterBasedApplication.cpp:515
AbstractCharacterBasedApplication::Option
Definition: AbstractCharacterBasedApplication.h:218
unicode.h
TextEditorContext::cursor_rect
QRect cursor_rect
Definition: AbstractCharacterBasedApplication.h:135
AbstractCharacterBasedApplication::doDelete
void doDelete()
Definition: AbstractCharacterBasedApplication.cpp:1205
AbstractCharacterBasedApplication::isControlModifierPressed
bool isControlModifierPressed() const
Definition: AbstractCharacterBasedApplication.cpp:134
AbstractCharacterBasedApplication::savePos
void savePos()
Definition: AbstractCharacterBasedApplication.cpp:954
RowCol::row
int row
Definition: AbstractCharacterBasedApplication.h:158
AbstractCharacterBasedApplication::loadExampleFile
void loadExampleFile()
Definition: TextEditorView.cpp:188
AbstractCharacterBasedApplication::movePageDown
void movePageDown()
Definition: AbstractCharacterBasedApplication.cpp:1623
AbstractCharacterBasedApplication::isBottom
bool isBottom() const
Definition: AbstractCharacterBasedApplication.cpp:2157
AbstractCharacterBasedApplication::Private::line_flags
std::vector< uint8_t > line_flags
Definition: AbstractCharacterBasedApplication.cpp:90
EscapeCode::Home
@ Home
Definition: AbstractCharacterBasedApplication.h:21
Document::Line::text
QByteArray text
Definition: AbstractCharacterBasedApplication.h:47
AbstractCharacterBasedApplication::CharAttr::CharAttr
CharAttr(int index=Normal)
Definition: AbstractCharacterBasedApplication.h:193
SelectionAnchor::operator<
bool operator<(SelectionAnchor const &a) const
Definition: AbstractCharacterBasedApplication.h:114
AbstractCharacterBasedApplication::moveCursorDown
virtual void moveCursorDown()
Definition: AbstractCharacterBasedApplication.cpp:1500
AbstractCharacterBasedApplication::LineFlag
LineFlag
Definition: AbstractCharacterBasedApplication.h:246
AbstractCharacterBasedApplication::updateVisibility
virtual void updateVisibility(bool ensure_current_line_visible, bool change_col, bool auto_scroll)=0
AbstractCharacterBasedApplication::setCursorPosByMouse
void setCursorPosByMouse(RowCol pos, QPoint pt)
Definition: AbstractCharacterBasedApplication.h:373
Document::Line::hunk_number
int hunk_number
Definition: AbstractCharacterBasedApplication.h:44
AbstractCharacterBasedApplication::logicalMoveToBottom2
void logicalMoveToBottom2()
Definition: AbstractCharacterBasedApplication.cpp:2200
EscapeCode::Insert
@ Insert
Definition: AbstractCharacterBasedApplication.h:23
TextEditorContext::saved_row
int saved_row
Definition: AbstractCharacterBasedApplication.h:142
AbstractCharacterBasedApplication::isPaintingSuppressed
bool isPaintingSuppressed() const
Definition: AbstractCharacterBasedApplication.cpp:510
AbstractCharacterBasedApplication::isOverwriteMode
bool isOverwriteMode() const
Definition: AbstractCharacterBasedApplication.cpp:2133
AbstractCharacterBasedApplication::currentRow
int currentRow() const
Definition: AbstractCharacterBasedApplication.cpp:442
AbstractCharacterBasedApplication::appendNewLine
void appendNewLine(std::vector< Char > *vec)
Definition: AbstractCharacterBasedApplication.cpp:1658
TextEditorContext::current_row
int current_row
Definition: AbstractCharacterBasedApplication.h:137
Document::Line
Definition: AbstractCharacterBasedApplication.h:36
EsccapeSequence
Definition: AbstractCharacterBasedApplication.cpp:15
AbstractCharacterBasedApplication::doBackspace
void doBackspace()
Definition: AbstractCharacterBasedApplication.cpp:1265
Document::lines
QList< Line > lines
Definition: AbstractCharacterBasedApplication.h:71
AbstractCharacterBasedApplication::setAutoLayout
void setAutoLayout(bool f)
Definition: AbstractCharacterBasedApplication.cpp:152
AbstractCharacterBasedApplication::CharAttr::index
uint16_t index
Definition: AbstractCharacterBasedApplication.h:190
AbstractCharacterBasedApplication::clear
void clear()
Definition: AbstractCharacterBasedApplication.cpp:764
AbstractCharacterBasedApplication::setCursorRow
virtual void setCursorRow(int row, bool auto_scroll=true, bool by_mouse=false)
Definition: AbstractCharacterBasedApplication.cpp:1006
Document::Line::Add
@ Add
Definition: AbstractCharacterBasedApplication.h:40
AbstractCharacterBasedApplication::setCurrentRow
void setCurrentRow(int row)
Definition: AbstractCharacterBasedApplication.cpp:457
AbstractCharacterBasedApplication::nextTabStop
int nextTabStop(int x) const
Definition: AbstractCharacterBasedApplication.cpp:1036
AbstractCharacterBasedApplication::Private::cursor_moved_by_mouse
bool cursor_moved_by_mouse
Definition: AbstractCharacterBasedApplication.cpp:109
AbstractCharacterBasedApplication::makeBuffer
void makeBuffer()
Definition: AbstractCharacterBasedApplication.cpp:241
AbstractCharacterBasedApplication::edit_
void edit_(EditOperation op)
Definition: AbstractCharacterBasedApplication.cpp:1170
AbstractCharacterBasedApplication::setSelectionAnchor
void setSelectionAnchor(SelectionAnchor::Enabled enabled, bool update_anchor, bool auto_scroll)
Definition: AbstractCharacterBasedApplication.cpp:2083
AbstractCharacterBasedApplication::Private::parsed_current_line
std::vector< AbstractCharacterBasedApplication::Char > parsed_current_line
Definition: AbstractCharacterBasedApplication.cpp:95
AbstractCharacterBasedApplication::write_
void write_(char const *ptr, bool by_keyboard)
Definition: AbstractCharacterBasedApplication.cpp:2534
AbstractCharacterBasedApplication::State::Exit
@ Exit
AbstractCharacterBasedApplication::restorePos
void restorePos()
Definition: AbstractCharacterBasedApplication.cpp:964
AbstractCharacterBasedApplication::EditOperation::Copy
@ Copy
AbstractCharacterBasedApplication::isChanged
bool isChanged() const
Definition: AbstractCharacterBasedApplication.cpp:191
AbstractCharacterBasedApplication::Private::dialog_mode
bool dialog_mode
Definition: AbstractCharacterBasedApplication.cpp:97
SelectionAnchor::operator>
bool operator>(SelectionAnchor const &a) const
Definition: AbstractCharacterBasedApplication.h:118
AbstractCharacterBasedApplication::Private::screen_height
int screen_height
Definition: AbstractCharacterBasedApplication.cpp:82
AbstractCharacterBasedApplication::engine
TextEditorEnginePtr engine() const
Definition: AbstractCharacterBasedApplication.cpp:753
AbstractCharacterBasedApplication::FormattedLine2::Selected
@ Selected
Definition: AbstractCharacterBasedApplication.h:257
Document::CharAttr_
Definition: AbstractCharacterBasedApplication.h:32
AbstractCharacterBasedApplication::writeCR
void writeCR()
Definition: AbstractCharacterBasedApplication.cpp:1415
AbstractCharacterBasedApplication::currentAnchor
SelectionAnchor currentAnchor(SelectionAnchor::Enabled enabled)
Definition: AbstractCharacterBasedApplication.cpp:2059
AbstractCharacterBasedApplication::updateSelectionAnchor1
void updateSelectionAnchor1(bool auto_scroll)
Definition: AbstractCharacterBasedApplication.cpp:985
EsccapeSequence::offset
int offset
Definition: AbstractCharacterBasedApplication.cpp:17
SelectionAnchor::row
int row
Definition: AbstractCharacterBasedApplication.h:91
AbstractCharacterBasedApplication::onSaveFile
void onSaveFile()
Definition: AbstractCharacterBasedApplication.cpp:2038
TextEditorContext::saved_col_hint
int saved_col_hint
Definition: AbstractCharacterBasedApplication.h:144
AbstractCharacterBasedApplication::setCursorVisible
void setCursorVisible(bool show)
Definition: AbstractCharacterBasedApplication.cpp:176
AbstractCharacterBasedApplication::setDialogOption
void setDialogOption(QString const &title, QString const &value, const DialogHandler &handler)
Definition: AbstractCharacterBasedApplication.cpp:1288
AbstractCharacterBasedApplication::Private::header_line
int header_line
Definition: AbstractCharacterBasedApplication.cpp:79
TextEditorContext::scroll_col_pos
int scroll_col_pos
Definition: AbstractCharacterBasedApplication.h:147
AbstractCharacterBasedApplication::Private::dialog_title
QString dialog_title
Definition: AbstractCharacterBasedApplication.cpp:87
AbstractCharacterBasedApplication::FormattedLine2::atts
uint32_t atts
Definition: AbstractCharacterBasedApplication.h:259