]> cgit.babelmonkeys.de Git - jubjub.git/blob - src/gui/gtk/JubGtkChatUI.h
Handle closing chat windows, fix a race and a retain cycle in the process
[jubjub.git] / src / gui / gtk / JubGtkChatUI.h
1 #import <ObjFW/ObjFW.h>
2 #import <ObjXMPP/ObjXMPP.h>
3 #include <gtk/gtk.h>
4
5 typedef void (^jub_send_block_t)(OFString *);
6 typedef void (^jub_close_block_t)(void);
7
8 @interface JubGtkChatUI: OFObject
9 {
10         GtkWidget *chat_window;
11         GtkTextBuffer *chat_buffer;
12         jub_send_block_t sendBlock;
13         jub_close_block_t closeBlock;
14         BOOL bufferEmpty;
15 }
16 @property (assign) GtkWidget *chat_window;
17 @property (assign) GtkTextBuffer * chat_buffer;
18 @property (readonly) jub_send_block_t sendBlock;
19 @property (readonly) jub_close_block_t closeBlock;
20
21 - initWithTitle: (OFString*)title
22      closeBlock: (jub_close_block_t)closeBlock
23       sendBlock: (jub_send_block_t)sendBlock;
24
25 - (void)addMessage: (OFString*)text
26             sender: (OFString*)sender;
27 @end