BufferView: cursor_move() takes a character argument

This commit is contained in:
josh committed 2017-11-15 20:32:01 -05:00
1 parent 739edfd6f7
commit 2d559db7d0
6 files changed
+91 -91

No files matched your search

+1 -1
View File
@@ -101,7 +101,7 @@ void BufferView::update()
}
}
bool BufferView::cursor_move(CursorMovement which, bool allow_eol)
bool BufferView::cursor_move(CursorMovement which, uint32_t c, bool allow_eol)
{
bool moved = false;
+1 -1
View File
@@ -76,7 +76,7 @@ public:
{
return BufferLineWalker(m_buffer, start_of_line, m_width, m_character_width_determiner);
}
bool cursor_move(CursorMovement which, bool allow_eol);
bool cursor_move(CursorMovement which, uint32_t c, bool allow_eol);
int cursor_screen_row() const { return m_cursor_screen_row; }
int cursor_screen_column() const { return m_cursor_screen_column; }
int cursor_virtual_column() const { return m_cursor_virtual_column; }
+3 -3
View File
@@ -356,9 +356,9 @@ size_t BufferPane::display_column() const
return m_buffer_view->cursor_virtual_column() + 1u;
}
void BufferPane::cursor_move(BufferPane::CursorMovement which)
void BufferPane::cursor_move(BufferPane::CursorMovement which, uint32_t c)
{
bool moved = m_buffer_view->cursor_move(which, insert_mode());
bool moved = m_buffer_view->cursor_move(which, c, insert_mode());
if (moved)
{
m_buffer_view->update();
@@ -396,7 +396,7 @@ void BufferPane::enter_insert_mode(Window::EnterInsertModeMode which)
m_buffer->enter_insert_mode();
m_buffer->insert_code_point(*m_iterator, '\n');
m_buffer->exit_insert_mode();
cursor_move(CursorMovement::UP);
cursor_move(CursorMovement::UP, 0u);
enter_insert_mode(Window::EnterInsertModeMode::START_OF_CHAR);
break;
case Window::EnterInsertModeMode::NEW_LINE_AFTER:
+1 -1
View File
@@ -31,7 +31,7 @@ public:
BufferPane(Window * window, std::shared_ptr<Buffer> buffer);
void resize(int width, int height) override;
void draw();
void cursor_move(CursorMovement which);
void cursor_move(CursorMovement which, uint32_t c);
void enter_insert_mode(Window::EnterInsertModeMode which);
void insert_code_point(uint32_t code_point);
void exit_insert_mode();
+14 -14
View File
@@ -255,22 +255,22 @@ void Window::handle_keypress(uint32_t keyval)
switch (ctrl_keyval)
{
case JES_KEY_HOME:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::SOL);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::SOL, 0u);
break;
case JES_KEY_END:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::EOL);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::EOL, 0u);
break;
case JES_KEY_RIGHT:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::RIGHT);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::RIGHT, 0u);
break;
case JES_KEY_LEFT:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::LEFT);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::LEFT, 0u);
break;
case JES_KEY_DOWN:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::DOWN);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::DOWN, 0u);
break;
case JES_KEY_UP:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::UP);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::UP, 0u);
break;
case JES_KEY_PAGE_UP:
m_focused_buffer_pane->scroll_window_up(ScrollMode::WHOLE_SCREEN);
@@ -381,28 +381,28 @@ void Window::execute_command(const Command & command)
case Command::CHANGE_CHAR:
break;
case Command::GO_TO_LINE:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::FIRST_LINE);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::FIRST_LINE, 0u);
break;
case Command::GO_TO_LAST_LINE:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::LAST_LINE);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::LAST_LINE, 0u);
break;
case Command::GO_LEFT:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::LEFT);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::LEFT, 0u);
break;
case Command::GO_DOWN:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::DOWN);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::DOWN, 0u);
break;
case Command::GO_UP:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::UP);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::UP, 0u);
break;
case Command::GO_RIGHT:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::RIGHT);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::RIGHT, 0u);
break;
case Command::GO_START_OF_LINE:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::SOL);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::SOL, 0u);
break;
case Command::GO_END_OF_LINE:
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::EOL);
m_focused_buffer_pane->cursor_move(BufferPane::CursorMovement::EOL, 0u);
break;
case Command::NEXT:
break;