Guitar
TextEditorView.h
Go to the documentation of this file.
1 #ifndef TEXTEDITORVIEW_H
2 #define TEXTEDITORVIEW_H
3 
5 #include "TextEditorTheme.h"
6 #include <QTextFormat>
7 #include <QWidget>
8 #include <cstdint>
9 #include <memory>
10 #include <vector>
11 #include <functional>
12 
13 class QScrollBar;
14 
15 struct PreEditText {
16  struct Format {
17  int start;
18  int length;
19  QTextFormat format;
20  Format(int start, int length, QTextFormat const &f)
21  : start(start)
22  , length(length)
23  , format(f)
24  {
25  }
26  };
27 
28  QString text;
29  std::vector<Format> format;
30 };
31 
32 class TextEditorView : public QWidget, public AbstractTextEditorApplication {
33  Q_OBJECT
34 public:
35  class FormattedLine {
36  public:
37  std::shared_ptr<std::vector<Char>> sp;
39  : sp(std::make_shared<std::vector<Char>>())
40  {
41  }
42  };
44  public:
45  std::vector<TextEditorView::FormattedLine> lines;
46  void clear()
47  {
48  lines.clear();
49  }
50  std::vector<Char> *append()
51  {
52  lines.emplace_back();
53  return lines.back().sp.get();
54  }
55  size_t size() const
56  {
57  return lines.size();
58  }
60  {
61  return lines[i];
62  }
63  FormattedLine const &operator [] (size_t i) const
64  {
65  return lines[i];
66  }
67  std::vector<Char> *chars(size_t i)
68  {
69  return lines[i].sp.get();
70  }
71  std::vector<Char> const *chars(size_t i) const
72  {
73  return lines[i].sp.get();
74  }
75  };
76 private:
77  struct Private;
78  Private *m;
79 
80  void paintScreen(QPainter *painter);
81  void drawCursor(int row, int col, QPainter *pr, QColor const &color);
82  void drawCursor(QPainter *pr);
83  void drawFocusFrame(QPainter *pr);
84  void updateCursorRect(bool auto_scroll);
85  QColor defaultForegroundColor();
86  QColor defaultBackgroundColor();
87  QColor colorForIndex(CharAttr const &attr, bool foreground);
88  void internalUpdateVisibility(bool ensure_current_line_visible, bool change_col, bool auto_scroll);
89 public://@
91 private:
92  void moveCursorByMouse();
93  int calcPixelPosX(int row, int col, bool adjust_scroll, std::vector<Char> *chars) const;
94  void parse(int row, std::vector<Char> *chars) const;
95  int scrollPosX() const;
96  void calcPixelPosX(std::vector<Char> *chars, const QFontMetrics &fm) const;
97  int view_y_from_row(int row) const;
98 public:
100  int basisCharWidth() const;
101 protected:
102  void paintEvent(QPaintEvent *) override;
103  void mousePressEvent(QMouseEvent *event) override;
104  void mouseReleaseEvent(QMouseEvent *event) override;
105  void mouseMoveEvent(QMouseEvent *event) override;
106  void wheelEvent(QWheelEvent *event) override;
107  void resizeEvent(QResizeEvent *event) override;
108  void contextMenuEvent(QContextMenuEvent *event) override;
109  QFont textFont() const;
110  void drawText(QPainter *painter, int px, int py, QString const &str);
111 protected:
112  void timerEvent(QTimerEvent *) override;
113  void setCursorCol(int col) override;
114  void setCursorRow(int row, bool auto_scroll, bool by_mouse) override;
115 public:
116  explicit TextEditorView(QWidget *parent = nullptr);
117  ~TextEditorView() override;
118 
119  void setTheme(const TextEditorThemePtr &theme);
120  TextEditorTheme const *theme() const;
121 
122  int lineHeight() const;
123 
124  void updateVisibility(bool ensure_current_line_visible, bool change_col, bool auto_scroll) override;
125 
126  bool event(QEvent *event) override;
127 
128  void bindScrollBar(QScrollBar *vsb, QScrollBar *hsb);
130 
131  RowCol mapFromPixel(const QPoint &pt);
132 
133  QVariant inputMethodQuery(Qt::InputMethodQuery q) const override;
134  void inputMethodEvent(QInputMethodEvent *e) override;
135  void refrectScrollBar();
136 
137 // void setRenderingMode(RenderingMode mode);
138 
139  void move(int cur_row, int cur_col, int scr_row, int scr_col, bool auto_scroll);
140  void layoutEditor() override;
141  void setFocusFrameVisible(bool f);
142  enum ScrollUnit {
144  };
146  void setScrollUnit(int n);
147  int scrollUnit() const;
148 
149  void setTextFont(const QFont &font);
150  void updateLayout();
151 
152  struct PointInView {
153  int x = 0;
154  int y = 0;
155  int height = 0;
156  };
157  PointInView pointInView(int row, int col) const;
158 
159  // TODO:
160  bool something_bad_flag = false;
161  void setSomethingBadFlag(bool f)
162  {
163  something_bad_flag = f;
164  }
165 
166 signals:
167  void moved(int cur_row, int cur_col, int scr_row, int scr_col);
168  void updateScrollBar();
169  void idle();
170 };
171 
172 
173 
174 
175 #endif // TEXTEDITORVIEW_H
AbstractCharacterBasedApplication::selection_end
SelectionAnchor selection_end
Definition: AbstractCharacterBasedApplication.h:279
misc::drawFrame
static void drawFrame(QPainter *pr, int x, int y, int w, int h, QColor color_topleft, QColor color_bottomright=QColor())
矩形のフレームを描画する。
Definition: misc.cpp:303
TextEditorView::setCursorRow
void setCursorRow(int row, bool auto_scroll, bool by_mouse) override
行位置を変更する
Definition: TextEditorView.cpp:375
TextEditorView::ScrollByCharacter
@ ScrollByCharacter
Definition: TextEditorView.h:143
TextEditorView::FormattedLine::sp
std::shared_ptr< std::vector< Char > > sp
Definition: TextEditorView.h:37
TextEditorView::moveCursorByMouse
void moveCursorByMouse()
Definition: TextEditorView.cpp:1013
TextEditorView::Private::ascent
int ascent
Definition: TextEditorView.cpp:29
TextEditorView::mapFromPixel
RowCol mapFromPixel(const QPoint &pt)
ビューのピクセル座標から行と桁を求める
Definition: TextEditorView.cpp:324
TextEditorTheme
Definition: TextEditorTheme.h:11
TextEditorView::FormattedLines::chars
const std::vector< Char > * chars(size_t i) const
Definition: TextEditorView.h:71
TextEditorView::PointInView
Definition: TextEditorView.h:152
TextEditorView::drawText
void drawText(QPainter *painter, int px, int py, QString const &str)
Definition: TextEditorView.cpp:506
TextEditorView::resizeEvent
void resizeEvent(QResizeEvent *event) override
Definition: TextEditorView.cpp:1149
TextEditorView::setFocusFrameVisible
void setFocusFrameVisible(bool f)
Definition: TextEditorView.cpp:1174
Document::Line::Normal
@ Normal
Definition: AbstractCharacterBasedApplication.h:39
TextEditorView::inputMethodEvent
void inputMethodEvent(QInputMethodEvent *e) override
Definition: TextEditorView.cpp:1102
TextEditorView::Private::wheel_delta
int wheel_delta
Definition: TextEditorView.cpp:40
TextEditorView::Private::scroll_bar_h
QScrollBar * scroll_bar_h
Definition: TextEditorView.cpp:34
TextEditorView::event
bool event(QEvent *event) override
Definition: TextEditorView.cpp:200
AbstractCharacterBasedApplication::charWidth
static int charWidth(uint32_t c)
Definition: AbstractCharacterBasedApplication.cpp:271
TextEditorView::Private::preedit
PreEditText preedit
Definition: TextEditorView.cpp:23
TextEditorView::basisCharWidth
int basisCharWidth() const
基準文字幅
Definition: TextEditorView.cpp:223
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
TextEditorView::theme
const TextEditorTheme * theme() const
Definition: TextEditorView.cpp:107
SelectionAnchor::enabled
Enabled enabled
Definition: AbstractCharacterBasedApplication.h:90
TextEditorView::FormattedLine::FormattedLine
FormattedLine()
Definition: TextEditorView.h:38
AbstractCharacterBasedApplication::updateSelectionAnchor2
void updateSelectionAnchor2(bool auto_scroll)
Definition: AbstractCharacterBasedApplication.cpp:998
TextEditorView::layoutEditor
void layoutEditor() override
Definition: TextEditorView.cpp:1139
TextEditorView::PointInView::y
int y
Definition: TextEditorView.h:154
TextEditorView::defaultBackgroundColor
QColor defaultBackgroundColor()
Definition: TextEditorView.cpp:519
AbstractCharacterBasedApplication::isReadOnly
bool isReadOnly() const
Definition: AbstractCharacterBasedApplication.cpp:2078
PreEditText::Format::format
QTextFormat format
Definition: TextEditorView.h:19
TextEditorContext::viewport_org_x
int viewport_org_x
Definition: AbstractCharacterBasedApplication.h:148
TextEditorView::defaultForegroundColor
QColor defaultForegroundColor()
Definition: TextEditorView.cpp:511
Document::Line::type
Type type
Definition: AbstractCharacterBasedApplication.h:43
TextEditorView::Private::idle_count
unsigned int idle_count
Definition: TextEditorView.cpp:44
TextEditorView::internalUpdateVisibility
void internalUpdateVisibility(bool ensure_current_line_visible, bool change_col, bool auto_scroll)
Definition: TextEditorView.cpp:461
TextEditorView::TextEditorView
TextEditorView(QWidget *parent=nullptr)
Definition: TextEditorView.cpp:49
TextEditorView::FormattedLine
Definition: TextEditorView.h:35
TextEditorView::Private::theme
TextEditorThemePtr theme
Definition: TextEditorView.cpp:38
TextEditorContext::viewport_org_y
int viewport_org_y
Definition: AbstractCharacterBasedApplication.h:149
TextEditorView::drawCursor
void drawCursor(int row, int col, QPainter *pr, QColor const &color)
カーソルを描画
Definition: TextEditorView.cpp:683
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
TextEditorView::contextMenuEvent
void contextMenuEvent(QContextMenuEvent *event) override
Definition: TextEditorView.cpp:1190
Document::Line::Del
@ Del
Definition: AbstractCharacterBasedApplication.h:41
AbstractCharacterBasedApplication::char_screen
std::vector< Character > * char_screen()
Definition: AbstractCharacterBasedApplication.cpp:216
TextEditorView::Private
Definition: TextEditorView.cpp:20
TextEditorView::Private::is_focus_frame_visible
bool is_focus_frame_visible
Definition: TextEditorView.cpp:42
AbstractCharacterBasedApplication::Character::c
uint16_t c
Definition: AbstractCharacterBasedApplication.h:224
AbstractCharacterBasedApplication::CharAttr
Definition: AbstractCharacterBasedApplication.h:189
TextEditorView::Private::descent
int descent
Definition: TextEditorView.cpp:30
TextEditorContext::current_col_pixel_x
int current_col_pixel_x
Definition: AbstractCharacterBasedApplication.h:140
TextEditorView::view_y_from_row
int view_y_from_row(int row) const
Definition: TextEditorView.cpp:654
TextEditorContext::current_col_hint
int current_col_hint
Definition: AbstractCharacterBasedApplication.h:139
AbstractCharacterBasedApplication::CharAttr::Underline2
@ Underline2
wip
Definition: AbstractCharacterBasedApplication.h:214
TextEditorView::idle
void idle()
TextEditorView::Private::top_margin
int top_margin
Definition: TextEditorView.cpp:26
SelectionAnchor::False
@ False
Definition: AbstractCharacterBasedApplication.h:86
AbstractCharacterBasedApplication::setCursorCol
virtual void setCursorCol(int col)
Definition: AbstractCharacterBasedApplication.h:369
TextEditorView::internalUpdateScrollBar
void internalUpdateScrollBar()
Definition: TextEditorView.cpp:435
Document
Definition: AbstractCharacterBasedApplication.h:30
AbstractCharacterBasedApplication::setTerminalMode
void setTerminalMode(bool f)
Definition: AbstractCharacterBasedApplication.cpp:2138
TextEditorView::ScrollUnit
ScrollUnit
Definition: TextEditorView.h:142
PreEditText::Format::Format
Format(int start, int length, QTextFormat const &f)
Definition: TextEditorView.h:20
TextEditorView
Definition: TextEditorView.h:32
RowCol::col
int col
Definition: AbstractCharacterBasedApplication.h:159
TextEditorContext::engine
TextEditorEnginePtr engine
Definition: AbstractCharacterBasedApplication.h:154
PreEditText::format
std::vector< Format > format
Definition: TextEditorView.h:29
AbstractCharacterBasedApplication::setScreenSize
void setScreenSize(int w, int h, bool update_layout)
Definition: AbstractCharacterBasedApplication.cpp:501
TextEditorView::FormattedLines::lines
std::vector< TextEditorView::FormattedLine > lines
Definition: TextEditorView.h:45
AbstractCharacterBasedApplication::document
Document * document()
Definition: AbstractCharacterBasedApplication.cpp:859
PreEditText::text
QString text
Definition: TextEditorView.h:28
TextEditorView::updateVisibility
void updateVisibility(bool ensure_current_line_visible, bool change_col, bool auto_scroll) override
Definition: TextEditorView.cpp:482
AbstractCharacterBasedApplication::showLineNumber
void showLineNumber(bool show, int left_margin=LEFT_MARGIN)
Definition: AbstractCharacterBasedApplication.cpp:170
AbstractCharacterBasedApplication::isCursorVisible
bool isCursorVisible()
Definition: AbstractCharacterBasedApplication.cpp:181
AbstractCharacterBasedApplication::editor_cx
std::shared_ptr< TextEditorContext > editor_cx
Definition: AbstractCharacterBasedApplication.h:307
TextEditorView::scrollUnit
int scrollUnit() const
Definition: TextEditorView.cpp:637
TextEditorView::parse
void parse(int row, std::vector< Char > *chars) const
Definition: TextEditorView.cpp:314
TextEditorTheme::bgDiffLineDel
QColor bgDiffLineDel() const
Definition: TextEditorTheme.h:60
TextEditorView::FormattedLines
Definition: TextEditorView.h:43
AbstractCharacterBasedApplication::editCopy
void editCopy()
Definition: AbstractCharacterBasedApplication.cpp:2111
TextEditorView::Private::text_font
QFont text_font
Definition: TextEditorView.cpp:24
TextEditorView::mousePressEvent
void mousePressEvent(QMouseEvent *event) override
Definition: TextEditorView.cpp:1036
TextEditorTheme::Light
static TextEditorThemePtr Light()
Definition: TextEditorTheme.cpp:7
Document::Line::Type
Type
Definition: AbstractCharacterBasedApplication.h:37
TextEditorView::setCursorCol
void setCursorCol(int col) override
桁位置を変更する
Definition: TextEditorView.cpp:396
PreEditText::Format::length
int length
Definition: TextEditorView.h:18
AbstractCharacterBasedApplication::Character
Definition: AbstractCharacterBasedApplication.h:223
AbstractCharacterBasedApplication::CharAttr::Invert
@ Invert
Definition: AbstractCharacterBasedApplication.h:207
AbstractCharacterBasedApplication::Character::a
CharAttr a
Definition: AbstractCharacterBasedApplication.h:225
TextEditorView::Private::reference_pixmap
QPixmap reference_pixmap
Definition: TextEditorView.cpp:21
AbstractCharacterBasedApplication::CharAttr::flags
uint16_t flags
Definition: AbstractCharacterBasedApplication.h:191
TextEditorView::setSomethingBadFlag
void setSomethingBadFlag(bool f)
Definition: TextEditorView.h:161
TextEditorView::FormattedLines::clear
void clear()
Definition: TextEditorView.h:46
TextEditorView::something_bad_flag
bool something_bad_flag
Definition: TextEditorView.h:160
TextEditorView::move
void move(int cur_row, int cur_col, int scr_row, int scr_col, bool auto_scroll)
Definition: TextEditorView.cpp:490
misc.h
TextEditorTheme.h
AbstractCharacterBasedApplication::reference_char_width_
const int reference_char_width_
Definition: AbstractCharacterBasedApplication.h:280
TextEditorView::colorForIndex
QColor colorForIndex(CharAttr const &attr, bool foreground)
Definition: TextEditorView.cpp:527
TextEditorView.h
TextEditorView::Private::formatted_lines
TextEditorView::FormattedLines formatted_lines
Definition: TextEditorView.cpp:36
TextEditorView::inputMethodQuery
QVariant inputMethodQuery(Qt::InputMethodQuery q) const override
Definition: TextEditorView.cpp:1093
TextEditorView::PointInView::height
int height
Definition: TextEditorView.h:155
misc::contextMenuPos
static QPoint contextMenuPos(QWidget *w, QContextMenuEvent *e)
Definition: misc.cpp:461
SelectionAnchor::True
@ True
Definition: AbstractCharacterBasedApplication.h:87
TextEditorView::updateScrollBar
void updateScrollBar()
AbstractTextEditorApplication
Definition: AbstractCharacterBasedApplication.h:499
AbstractCharacterBasedApplication::ensureCurrentLineVisible
void ensureCurrentLineVisible()
Definition: AbstractCharacterBasedApplication.cpp:879
TextEditorView::FormattedLines::chars
std::vector< Char > * chars(size_t i)
Definition: TextEditorView.h:67
AbstractCharacterBasedApplication::updateCursorPos
void updateCursorPos(bool auto_scroll)
Definition: AbstractCharacterBasedApplication.cpp:1735
InputMethodPopup
Definition: InputMethodPopup.h:8
AbstractCharacterBasedApplication::setCurrentCol
void setCurrentCol(int col)
Definition: AbstractCharacterBasedApplication.cpp:462
TextEditorThemePtr
std::shared_ptr< TextEditorTheme > TextEditorThemePtr
Definition: TextEditorTheme.h:9
AbstractCharacterBasedApplication::editCut
void editCut()
Definition: AbstractCharacterBasedApplication.cpp:2116
AbstractCharacterBasedApplication::editPaste
void editPaste()
Definition: AbstractCharacterBasedApplication.cpp:2094
TextEditorView::FormattedLines::size
size_t size() const
Definition: TextEditorView.h:55
TextEditorView::lineHeight
int lineHeight() const
行の高さ
Definition: TextEditorView.cpp:213
TextEditorView::fetchLines
FormattedLines * fetchLines()
ビューに表示されている範囲のテキストを取得
Definition: TextEditorView.cpp:705
AbstractCharacterBasedApplication::documentLines
int documentLines() const
Definition: AbstractCharacterBasedApplication.cpp:864
AbstractCharacterBasedApplication::Char
Definition: AbstractCharacterBasedApplication.h:228
SelectionAnchor::col
int col
Definition: AbstractCharacterBasedApplication.h:92
TextEditorView::setTextFont
void setTextFont(const QFont &font)
Definition: TextEditorView.cpp:115
TextEditorView::bindScrollBar
void bindScrollBar(QScrollBar *vsb, QScrollBar *hsb)
Definition: TextEditorView.cpp:405
AbstractCharacterBasedApplication::layoutEditor
virtual void layoutEditor()
Definition: AbstractCharacterBasedApplication.cpp:251
AbstractCharacterBasedApplication::selection_start
SelectionAnchor selection_start
Definition: AbstractCharacterBasedApplication.h:278
AbstractCharacterBasedApplication.h
TextEditorView::pointInView
PointInView pointInView(int row, int col) const
行と桁からビュー座標を求める
Definition: TextEditorView.cpp:667
AbstractCharacterBasedApplication::isTerminalMode
bool isTerminalMode() const
Definition: AbstractCharacterBasedApplication.cpp:2152
TextEditorView::FormattedLines::operator[]
FormattedLine & operator[](size_t i)
Definition: TextEditorView.h:59
AbstractCharacterBasedApplication::editorViewportHeight
int editorViewportHeight() const
Definition: AbstractCharacterBasedApplication.cpp:661
TextEditorView::Private::scroll_bar_v
QScrollBar * scroll_bar_v
Definition: TextEditorView.cpp:33
TextEditorTheme::bgDiffUnknown
QColor bgDiffUnknown() const
Definition: TextEditorTheme.h:56
RowCol
Definition: AbstractCharacterBasedApplication.h:157
AbstractCharacterBasedApplication::cursorCol
int cursorCol() const
Definition: AbstractCharacterBasedApplication.cpp:481
TextEditorView::refrectScrollBar
void refrectScrollBar()
Definition: TextEditorView.cpp:1132
PreEditText::Format
Definition: TextEditorView.h:16
PreEditText::Format::start
int start
Definition: TextEditorView.h:17
TextEditorTheme::bgDiffLineAdd
QColor bgDiffLineAdd() const
Definition: TextEditorTheme.h:64
TextEditorView::Private::custom_context_menu_requested
std::function< void(void)> custom_context_menu_requested
Definition: TextEditorView.cpp:46
TextEditorView::calcPixelPosX
int calcPixelPosX(int row, int col, bool adjust_scroll, std::vector< Char > *chars) const
行と桁位置からピクセルX座標を求める
Definition: TextEditorView.cpp:287
AbstractCharacterBasedApplication::initEditor
void initEditor()
Definition: AbstractCharacterBasedApplication.cpp:260
TextEditorView::scroll_unit_
int scroll_unit_
Definition: TextEditorView.h:145
AbstractCharacterBasedApplication::cx
TextEditorContext * cx()
Definition: AbstractCharacterBasedApplication.cpp:734
AbstractCharacterBasedApplication::Char::unicode
uint32_t unicode
Definition: AbstractCharacterBasedApplication.h:231
AbstractCharacterBasedApplication::screenHeight
int screenHeight() const
Definition: AbstractCharacterBasedApplication.cpp:496
AbstractCharacterBasedApplication::isSingleLineMode
bool isSingleLineMode() const
Definition: AbstractCharacterBasedApplication.cpp:869
TextEditorView::Private::bottom_margin
int bottom_margin
Definition: TextEditorView.cpp:27
AbstractCharacterBasedApplication::Char::attr
CharAttr attr
Definition: AbstractCharacterBasedApplication.h:232
TextEditorView::PointInView::x
int x
Definition: TextEditorView.h:153
AbstractCharacterBasedApplication::parseCurrentLine
std::vector< Char > * parseCurrentLine(std::vector< Char > *vec, int increase_hint, bool force)
行のレイアウトを解析
Definition: AbstractCharacterBasedApplication.cpp:566
TextEditorView::mouseMoveEvent
void mouseMoveEvent(QMouseEvent *event) override
Definition: TextEditorView.cpp:1079
AbstractCharacterBasedApplication::currentCol
int currentCol() const
Definition: AbstractCharacterBasedApplication.cpp:447
AbstractCharacterBasedApplication::hasSelection
bool hasSelection() const
Definition: AbstractCharacterBasedApplication.cpp:980
AbstractCharacterBasedApplication::paintLineNumbers
void paintLineNumbers(std::function< void(int, QString const &, Document::Line const *)> const &draw)
Definition: AbstractCharacterBasedApplication.cpp:1885
AbstractCharacterBasedApplication::screenWidth
int screenWidth() const
Definition: AbstractCharacterBasedApplication.cpp:491
AbstractCharacterBasedApplication::openFile
void openFile(QString const &path)
Definition: AbstractCharacterBasedApplication.cpp:778
TextEditorView::mouseReleaseEvent
void mouseReleaseEvent(QMouseEvent *event) override
Definition: TextEditorView.cpp:1066
AbstractCharacterBasedApplication::cursorRow
int cursorRow() const
Definition: AbstractCharacterBasedApplication.cpp:486
AbstractCharacterBasedApplication::parseLine
void parseLine(int row, std::vector< Char > *vec) const
行の桁位置を求める
Definition: AbstractCharacterBasedApplication.cpp:637
Document::Line::Unknown
@ Unknown
Definition: AbstractCharacterBasedApplication.h:38
TextEditorView::timerEvent
void timerEvent(QTimerEvent *) override
Definition: TextEditorView.cpp:1179
AbstractCharacterBasedApplication::preparePaintScreen
void preparePaintScreen()
Definition: AbstractCharacterBasedApplication.cpp:1962
AbstractCharacterBasedApplication::CharAttr::Underline1
@ Underline1
Definition: AbstractCharacterBasedApplication.h:213
TextEditorView::setTheme
void setTheme(const TextEditorThemePtr &theme)
Definition: TextEditorView.cpp:102
AbstractCharacterBasedApplication::CharAttr::color
QColor color
Definition: AbstractCharacterBasedApplication.h:192
InputMethodPopup.h
AbstractCharacterBasedApplication::editorViewportWidth
int editorViewportWidth() const
Definition: AbstractCharacterBasedApplication.cpp:656
unicode.h
TextEditorView::paintEvent
void paintEvent(QPaintEvent *) override
描画
Definition: TextEditorView.cpp:721
PreEditText
Definition: TextEditorView.h:15
TextEditorContext::cursor_rect
QRect cursor_rect
Definition: AbstractCharacterBasedApplication.h:135
TextEditorView::m
Private * m
Definition: TextEditorView.h:77
TextEditorTheme::fgDefault
QColor fgDefault() const
Definition: TextEditorTheme.h:28
AbstractCharacterBasedApplication::savePos
void savePos()
Definition: AbstractCharacterBasedApplication.cpp:954
TextEditorView::Private::ime_popup
InputMethodPopup * ime_popup
Definition: TextEditorView.cpp:25
RowCol::row
int row
Definition: AbstractCharacterBasedApplication.h:158
AbstractCharacterBasedApplication::loadExampleFile
void loadExampleFile()
Definition: TextEditorView.cpp:188
TextEditorView::textFont
QFont textFont() const
Definition: TextEditorView.cpp:501
TextEditorView::~TextEditorView
~TextEditorView() override
Definition: TextEditorView.cpp:97
Document::Line::text
QByteArray text
Definition: AbstractCharacterBasedApplication.h:47
AbstractCharacterBasedApplication::setCursorPosByMouse
void setCursorPosByMouse(RowCol pos, QPoint pt)
Definition: AbstractCharacterBasedApplication.h:373
AbstractCharacterBasedApplication::isPaintingSuppressed
bool isPaintingSuppressed() const
Definition: AbstractCharacterBasedApplication.cpp:510
AbstractCharacterBasedApplication::currentRow
int currentRow() const
Definition: AbstractCharacterBasedApplication.cpp:442
TextEditorView::paintScreen
void paintScreen(QPainter *painter)
描画(CharacterMode用)
Definition: TextEditorView.cpp:543
TextEditorView::Private::basic_character_size
QSize basic_character_size
Definition: TextEditorView.cpp:28
appendUnicode
static QString appendUnicode(QString const &s, uint32_t u)
Definition: TextEditorView.cpp:229
Document::Line
Definition: AbstractCharacterBasedApplication.h:36
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
TextEditorView::Private::status_line
QString status_line
Definition: TextEditorView.cpp:32
AbstractCharacterBasedApplication::setCursorRow
virtual void setCursorRow(int row, bool auto_scroll=true, bool by_mouse=false)
Definition: AbstractCharacterBasedApplication.cpp:1006
TextEditorView::moved
void moved(int cur_row, int cur_col, int scr_row, int scr_col)
Document::Line::Add
@ Add
Definition: AbstractCharacterBasedApplication.h:40
TextEditorView::setupForLogWidget
void setupForLogWidget(const TextEditorThemePtr &theme)
Definition: TextEditorView.cpp:411
AbstractCharacterBasedApplication::setCurrentRow
void setCurrentRow(int row)
Definition: AbstractCharacterBasedApplication.cpp:457
TextEditorView::wheelEvent
void wheelEvent(QWheelEvent *event) override
Definition: TextEditorView.cpp:1157
TextEditorTheme::fgCursor
QColor fgCursor() const
Definition: TextEditorTheme.h:44
TextEditorView::setScrollUnit
void setScrollUnit(int n)
Definition: TextEditorView.cpp:632
TextEditorView::scrollPosX
int scrollPosX() const
水平スクロール位置のピクセル値を取得
Definition: TextEditorView.cpp:646
AbstractCharacterBasedApplication::setSelectionAnchor
void setSelectionAnchor(SelectionAnchor::Enabled enabled, bool update_anchor, bool auto_scroll)
Definition: AbstractCharacterBasedApplication.cpp:2083
AbstractCharacterBasedApplication::write_
void write_(char const *ptr, bool by_keyboard)
Definition: AbstractCharacterBasedApplication.cpp:2534
AbstractCharacterBasedApplication::restorePos
void restorePos()
Definition: AbstractCharacterBasedApplication.cpp:964
TextEditorView::updateLayout
void updateLayout()
Definition: TextEditorView.cpp:127
AbstractCharacterBasedApplication::isChanged
bool isChanged() const
Definition: AbstractCharacterBasedApplication.cpp:191
TextEditorTheme::bgDefault
QColor bgDefault() const
Definition: TextEditorTheme.h:32
TextEditorView::drawFocusFrame
void drawFocusFrame(QPainter *pr)
Definition: TextEditorView.cpp:626
SelectionAnchor::row
int row
Definition: AbstractCharacterBasedApplication.h:91
TextEditorView::FormattedLines::append
std::vector< Char > * append()
Definition: TextEditorView.h:50
TextEditorView::updateCursorRect
void updateCursorRect(bool auto_scroll)
Definition: TextEditorView.cpp:419
TextEditorContext::scroll_col_pos
int scroll_col_pos
Definition: AbstractCharacterBasedApplication.h:147