Private
Public Access
1
0
Files
Kordophone/src/message-list/message-list-view.vala

48 lines
1.3 KiB
Vala
Raw Normal View History

using Adw;
using Gtk;
2025-04-30 19:12:00 -07:00
using Gee;
public class MessageListView : Adw.Bin
{
2025-04-30 19:50:36 -07:00
public MessageListModel? model {
get {
return _model;
}
set {
_model = value;
if (model != null) {
model.messages_changed.connect(reload_messages);
model.load_messages();
} else {
message_drawing_area.set_messages(new TreeSet<Message>());
}
}
}
private MessageListModel? _model = null;
private Adw.ToolbarView container;
private MessageDrawingArea message_drawing_area = new MessageDrawingArea();
private ScrolledWindow scrolled_window = new ScrolledWindow();
2025-04-30 19:50:36 -07:00
public MessageListView(MessageListModel? model = null) {
this.model = model;
container = new Adw.ToolbarView();
set_child(container);
scrolled_window.set_child(message_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(new Label("Messages"));
container.add_top_bar(header_bar);
2025-04-30 19:50:36 -07:00
}
2025-04-30 19:50:36 -07:00
private void reload_messages() {
message_drawing_area.set_messages(_model.messages);
}
}