Objects

date

2021-02-20

SrnFlow

Props:

name

Methods:

GtkWidget *launch();

Signals:

"busy" [GtkWidget* | Text]
"next" GtkWidget*
"abort" GtkWidget*

Entity

SrnEntity

An object that you can talk to.

GInterface parent;
gchar* identity;
gchar* name;
gchar* summary;
gchar* description;
GdkPixbuf *avatar;
GVariantDict *fields;

GMenu *operations; // Add contact, Block and etc
GtkWidget *custom_widgets[];

SrnUser

SrnEntity parent;

SrnGroup

SrnEntity parent;
GListModel *member_list;

SrnMember

SrnBuffer *context;
SrnEntity* entity;

GMenu *operations; // Mute, Kick, and etc
GtkWidget *custom_widgets[];

Top Level

SrnApplication

SrnWindow

SrnWorkSpace

Buffer

SrnBuffer

Memeber:

SrnEntity* target;
GtkListView* message_list;
GtkListView* message_list;

SrnChannelBuffer

GtkListView* member_list

SrnDialogBuffer

SrnMember* member[2];

Message

SrnMessageView

SrnTextMessageView

set_model(SrnTextMessage*);
SrnTextMessage* get_model();

SrnRichMessageView

SrnImageMessageView
SrnAudioMessageView
SrnVideoMessageView
SrnWebviewMessageView

Sure??

SrnCustomMessageView

SrnMessage

Member:

SrnMember *original
SrnBuffer *target
GDateTime *recv_time;
GDateTime *send_time;
GList *tags

Method:

gboolean has_tags(const gchar *tag);

SrnTextMessage

Member:

gchar *content;

SrnMediaMessage

Member:

gchar* mime_type;
GFile* content;

SrnCustomMessage

Memeber:

GtkWidget *widget;

SrnMessageFilter

SrnMessageRenderer

User

SrnUser

Member:

SrnEntity
GList *members;

SrnMember

Member & User Panel

Member:

SrnUser *user;
SrnBuffer *buffer;

SrnMemberList

Messenger

SrnMessenger

Method:

SrnFlow *login;
SrnFlow *contact;
SrnFlow* setting;
GtkWidget* setting;

SrnMessenger *srn_messenger_new(SrnApplication *app);
GtkWidget* connection_panel();
GtkWidget* about_panel();
GtkWidget* user_panel(SrnUser *user);
GtkWidget* memeber_panel(SrnMember *member);