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