Added messages headers display in main window
This commit is contained in:
parent
3a8716453e
commit
ad0b406bca
47
src/mailer.c
47
src/mailer.c
@ -44,10 +44,12 @@ static struct _menubar _mailer_menubar[] =
|
|||||||
|
|
||||||
|
|
||||||
/* Mailer */
|
/* Mailer */
|
||||||
|
static GtkWidget * _new_headers(Mailer * mailer);
|
||||||
Mailer * mailer_new(void)
|
Mailer * mailer_new(void)
|
||||||
{
|
{
|
||||||
Mailer * mailer;
|
Mailer * mailer;
|
||||||
GtkWidget * vbox;
|
GtkWidget * vbox;
|
||||||
|
GtkWidget * vbox2;
|
||||||
GtkWidget * toolbar;
|
GtkWidget * toolbar;
|
||||||
GtkToolItem * toolitem;
|
GtkToolItem * toolitem;
|
||||||
GtkWidget * hpaned;
|
GtkWidget * hpaned;
|
||||||
@ -62,8 +64,10 @@ Mailer * mailer_new(void)
|
|||||||
g_signal_connect(G_OBJECT(mailer->window), "delete_event", G_CALLBACK(
|
g_signal_connect(G_OBJECT(mailer->window), "delete_event", G_CALLBACK(
|
||||||
on_closex), NULL);
|
on_closex), NULL);
|
||||||
vbox = gtk_vbox_new(FALSE, 0);
|
vbox = gtk_vbox_new(FALSE, 0);
|
||||||
|
/* menubar */
|
||||||
widget = common_new_menubar(_mailer_menubar, mailer);
|
widget = common_new_menubar(_mailer_menubar, mailer);
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), widget, FALSE, FALSE, 0);
|
gtk_box_pack_start(GTK_BOX(vbox), widget, FALSE, FALSE, 0);
|
||||||
|
/* toolbar */
|
||||||
toolbar = gtk_toolbar_new();
|
toolbar = gtk_toolbar_new();
|
||||||
toolitem = gtk_tool_button_new_from_stock(GTK_STOCK_STOP);
|
toolitem = gtk_tool_button_new_from_stock(GTK_STOCK_STOP);
|
||||||
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);
|
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), toolitem, -1);
|
||||||
@ -76,12 +80,16 @@ Mailer * mailer_new(void)
|
|||||||
gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, TRUE, 0);
|
||||||
hpaned = gtk_hpaned_new();
|
hpaned = gtk_hpaned_new();
|
||||||
gtk_paned_set_position(GTK_PANED(hpaned), 160);
|
gtk_paned_set_position(GTK_PANED(hpaned), 160);
|
||||||
|
/* folders */
|
||||||
widget = gtk_tree_view_new();
|
widget = gtk_tree_view_new();
|
||||||
gtk_paned_add1(GTK_PANED(hpaned), widget);
|
gtk_paned_add1(GTK_PANED(hpaned), widget);
|
||||||
vpaned = gtk_vpaned_new();
|
vpaned = gtk_vpaned_new();
|
||||||
gtk_paned_set_position(GTK_PANED(vpaned), 160);
|
gtk_paned_set_position(GTK_PANED(vpaned), 160);
|
||||||
|
/* messages list */
|
||||||
widget = gtk_tree_view_new();
|
widget = gtk_tree_view_new();
|
||||||
gtk_paned_add1(GTK_PANED(vpaned), widget);
|
gtk_paned_add1(GTK_PANED(vpaned), widget);
|
||||||
|
/* messages body */
|
||||||
|
vbox2 = _new_headers(mailer);
|
||||||
mailer->view_body = gtk_text_view_new();
|
mailer->view_body = gtk_text_view_new();
|
||||||
gtk_text_view_set_editable(GTK_TEXT_VIEW(mailer->view_body), FALSE);
|
gtk_text_view_set_editable(GTK_TEXT_VIEW(mailer->view_body), FALSE);
|
||||||
widget = gtk_scrolled_window_new(NULL, NULL);
|
widget = gtk_scrolled_window_new(NULL, NULL);
|
||||||
@ -90,7 +98,8 @@ Mailer * mailer_new(void)
|
|||||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(widget),
|
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(widget),
|
||||||
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
||||||
gtk_container_add(GTK_CONTAINER(widget), mailer->view_body);
|
gtk_container_add(GTK_CONTAINER(widget), mailer->view_body);
|
||||||
gtk_paned_add2(GTK_PANED(vpaned), widget);
|
gtk_box_pack_start(GTK_BOX(vbox2), widget, TRUE, TRUE, 0);
|
||||||
|
gtk_paned_add2(GTK_PANED(vpaned), vbox2);
|
||||||
gtk_paned_add2(GTK_PANED(hpaned), vpaned);
|
gtk_paned_add2(GTK_PANED(hpaned), vpaned);
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), hpaned, TRUE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(vbox), hpaned, TRUE, TRUE, 0);
|
||||||
mailer->statusbar = gtk_statusbar_new();
|
mailer->statusbar = gtk_statusbar_new();
|
||||||
@ -101,6 +110,42 @@ Mailer * mailer_new(void)
|
|||||||
return mailer;
|
return mailer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static GtkWidget * _new_headers(Mailer * mailer)
|
||||||
|
{
|
||||||
|
struct {
|
||||||
|
char * hdr;
|
||||||
|
GtkWidget ** widget;
|
||||||
|
} widgets[] =
|
||||||
|
{
|
||||||
|
{ " From: ", &mailer->from },
|
||||||
|
{ " To: ", &mailer->to },
|
||||||
|
{ " Subject: ", &mailer->subject },
|
||||||
|
{ " Date: ", &mailer->date },
|
||||||
|
{ NULL, NULL }
|
||||||
|
};
|
||||||
|
int i;
|
||||||
|
GtkWidget * vbox;
|
||||||
|
GtkWidget * hbox;
|
||||||
|
GtkWidget * widget;
|
||||||
|
GtkSizeGroup * group;
|
||||||
|
|
||||||
|
vbox = gtk_vbox_new(FALSE, 0);
|
||||||
|
group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
|
||||||
|
for(i = 0; widgets[i].hdr != NULL; i++)
|
||||||
|
{
|
||||||
|
hbox = gtk_hbox_new(FALSE, 0);
|
||||||
|
widget = gtk_label_new(widgets[i].hdr);
|
||||||
|
gtk_misc_set_alignment(GTK_MISC(widget), 1.0, 0.0);
|
||||||
|
gtk_size_group_add_widget(GTK_SIZE_GROUP(group), widget);
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
|
||||||
|
*(widgets[i].widget) = gtk_label_new("");
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), *(widgets[i].widget), TRUE,
|
||||||
|
TRUE, 0);
|
||||||
|
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
|
||||||
|
}
|
||||||
|
return vbox;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void mailer_delete(Mailer * mailer)
|
void mailer_delete(Mailer * mailer)
|
||||||
{
|
{
|
||||||
|
@ -14,6 +14,10 @@ typedef struct _Mailer
|
|||||||
{
|
{
|
||||||
/* widgets */
|
/* widgets */
|
||||||
GtkWidget * window;
|
GtkWidget * window;
|
||||||
|
GtkWidget * from;
|
||||||
|
GtkWidget * to;
|
||||||
|
GtkWidget * subject;
|
||||||
|
GtkWidget * date;
|
||||||
GtkWidget * view_body;
|
GtkWidget * view_body;
|
||||||
GtkWidget * statusbar;
|
GtkWidget * statusbar;
|
||||||
gint statusbar_id;
|
gint statusbar_id;
|
||||||
|
Loading…
Reference in New Issue
Block a user