Private
Public Access
1
0

wire up message loading

This commit is contained in:
2025-04-30 19:50:36 -07:00
parent 4c7c31ab8d
commit a7e88bd3c3
8 changed files with 69 additions and 21 deletions

View File

@@ -4,12 +4,31 @@ using Gee;
public class MessageListView : Adw.Bin
{
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();
public MessageListView(MessageListModel model) {
public MessageListView(MessageListModel? model = null) {
this.model = model;
container = new Adw.ToolbarView();
set_child(container);
@@ -20,14 +39,9 @@ public class MessageListView : Adw.Bin
var header_bar = new Adw.HeaderBar();
header_bar.set_title_widget(new Label("Messages"));
container.add_top_bar(header_bar);
}
// Create test message set
var messages = new TreeSet<Message>();
messages.add(new Message("Hello, world!", 1, "user"));
messages.add(new Message("How, are you?", 2, null));
messages.add(new Message("I'm fine, thank you!", 3, "user"));
messages.add(new Message("GTK also supports color expressions, which allow colors to be transformed to new ones and can be nested, providing a rich language to define colors. Color expressions resemble functions, taking 1 or more colors and in some cases a number as arguments.", 4, "user"));
message_drawing_area.set_messages(messages);
private void reload_messages() {
message_drawing_area.set_messages(_model.messages);
}
}