reorg: message-list-view -> transcript-view
This commit is contained in:
57
src/transcript/transcript-view.vala
Normal file
57
src/transcript/transcript-view.vala
Normal file
@@ -0,0 +1,57 @@
|
||||
using Adw;
|
||||
using Gtk;
|
||||
using Gee;
|
||||
|
||||
public class TranscriptView : Adw.Bin
|
||||
{
|
||||
public MessageListModel? model {
|
||||
get {
|
||||
return _model;
|
||||
}
|
||||
set {
|
||||
_model = value;
|
||||
|
||||
if (model != null) {
|
||||
// Reset scroll position
|
||||
scrolled_window.vadjustment = new Gtk.Adjustment(0, 0, 0, 0, 0, 0);
|
||||
|
||||
model.messages_changed.connect(reload_messages);
|
||||
model.load_messages();
|
||||
} else {
|
||||
transcript_drawing_area.set_messages(new TreeSet<Message>());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string title {
|
||||
get { return title_label.label; }
|
||||
set { title_label.label = value; }
|
||||
}
|
||||
|
||||
private MessageListModel? _model = null;
|
||||
private Adw.ToolbarView container;
|
||||
private Label title_label = new Label("Messages");
|
||||
|
||||
private TranscriptDrawingArea transcript_drawing_area = new TranscriptDrawingArea();
|
||||
private ScrolledWindow scrolled_window = new ScrolledWindow();
|
||||
|
||||
public TranscriptView(MessageListModel? model = null) {
|
||||
this.model = model;
|
||||
|
||||
container = new Adw.ToolbarView();
|
||||
set_child(container);
|
||||
|
||||
scrolled_window.set_child(transcript_drawing_area);
|
||||
scrolled_window.add_css_class("message-list-scroller");
|
||||
container.set_content(scrolled_window);
|
||||
|
||||
var header_bar = new Adw.HeaderBar();
|
||||
header_bar.set_title_widget(title_label);
|
||||
container.add_top_bar(header_bar);
|
||||
}
|
||||
|
||||
private void reload_messages() {
|
||||
transcript_drawing_area.show_sender = _model.is_group_chat;
|
||||
transcript_drawing_area.set_messages(_model.messages);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user