2025-04-30 15:58:47 -07:00
using Adw ;
using Gtk ;
2025-04-30 19:12:00 -07:00
using Gee ;
2025-04-30 15:58:47 -07:00
public class MessageListView : Adw . Bin
{
private Adw . ToolbarView container ;
private MessageDrawingArea message_drawing_area = new MessageDrawingArea ( ) ;
private ScrolledWindow scrolled_window = new ScrolledWindow ( ) ;
public MessageListView ( MessageListModel 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:12:00 -07:00
// 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 " ) ) ;
2025-04-30 15:58:47 -07:00
2025-04-30 19:12:00 -07:00
message_drawing_area . set_messages ( messages ) ;
2025-04-30 15:58:47 -07:00
}
}