Initial work on last-read-position feature

Print dashes on the position we last left off in a chat window.
So far the number of dashes is hardcoded, and the feature only works in
chat windows.

Regards https://github.com/profanity-im/profanity/issues/1238
This commit is contained in:
Michael Vetter
2019-12-13 12:05:24 +01:00
parent 9bb2d7f95e
commit 14f25992c3
6 changed files with 59 additions and 0 deletions

View File

@@ -1354,6 +1354,13 @@ win_update_entry_message(ProfWin *window, const char *const id, const char *cons
}
}
void
win_remove_entry_message(ProfWin *window, const char *const id)
{
buffer_remove_entry_by_id(window->layout->buffer, id);
win_redraw(window);
}
void
win_newline(ProfWin *window)
{
@@ -1809,3 +1816,29 @@ win_handle_command_exec_result_note(ProfWin *window, const char *const type, con
assert(window != NULL);
win_println(window, THEME_DEFAULT, '!', value);
}
void
win_print_separator(ProfWin *window)
{
int cols = getmaxx(window->layout->win);
int i;
for (i=1; i<cols; i++) {
wprintw(window->layout->win, "-");
}
}
void
win_insert_last_read_position_marker(ProfWin *window, char* id)
{
GDateTime *time = g_date_time_new_now_local();
buffer_append(window->layout->buffer, ' ', 0, time, 0, THEME_TEXT, NULL, "-----", NULL, id);
// can we leave this? TODO
// win_print_separator(window);
//_win_print(window, '-', 0, time, 0, THEME_TEXT, NULL, "---", NULL);
win_redraw(window);
g_date_time_unref(time);
}