mirror of https://github.com/djcb/mu.git
* mug/mug-msg-view.c: refactoring
This commit is contained in:
parent
6186c659f8
commit
7fcd28cef9
|
@ -70,6 +70,7 @@ static const HeaderInfo HEADER_INFO_EXPANDER[] = {
|
|||
typedef struct _MugMsgViewPrivate MugMsgViewPrivate;
|
||||
struct _MugMsgViewPrivate {
|
||||
|
||||
GtkWidget *_headers_area;
|
||||
GtkWidget *_tablemain, *_tableexpander;
|
||||
GtkWidget *_headervals [HEADER_ROW_NUM];
|
||||
|
||||
|
@ -151,6 +152,30 @@ create_table (MugMsgViewPrivate *priv, const HeaderInfo *hinfo, guint num)
|
|||
return table;
|
||||
}
|
||||
|
||||
static GtkWidget*
|
||||
headers_area (MugMsgViewPrivate *priv)
|
||||
{
|
||||
GtkWidget *scrolled, *vbox;
|
||||
|
||||
priv->_tablemain = create_table (priv, HEADER_INFO,
|
||||
G_N_ELEMENTS(HEADER_INFO));
|
||||
priv->_tableexpander = create_table (priv, HEADER_INFO_EXPANDER,
|
||||
G_N_ELEMENTS(HEADER_INFO_EXPANDER));
|
||||
priv->_expander = gtk_expander_new ("Details");
|
||||
gtk_container_add (GTK_CONTAINER(priv->_expander),
|
||||
priv->_tableexpander);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, FALSE);
|
||||
gtk_box_pack_start (GTK_BOX(vbox), priv->_tablemain, FALSE, FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX(vbox), priv->_expander, FALSE, FALSE, 0);
|
||||
|
||||
scrolled = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(scrolled),
|
||||
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
||||
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW(scrolled), vbox);
|
||||
|
||||
return priv->_headers_area = scrolled;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
|
@ -161,14 +186,6 @@ mug_msg_view_init (MugMsgView *obj)
|
|||
|
||||
priv = MUG_MSG_VIEW_GET_PRIVATE(obj);
|
||||
|
||||
priv->_tablemain = create_table (priv, HEADER_INFO,
|
||||
G_N_ELEMENTS(HEADER_INFO));
|
||||
priv->_tableexpander = create_table (priv, HEADER_INFO_EXPANDER,
|
||||
G_N_ELEMENTS(HEADER_INFO_EXPANDER));
|
||||
|
||||
priv->_expander = gtk_expander_new ("Details");
|
||||
gtk_container_add (GTK_CONTAINER(priv->_expander), priv->_tableexpander);
|
||||
|
||||
priv->_view = gtk_text_view_new ();
|
||||
gtk_text_view_set_editable (GTK_TEXT_VIEW(priv->_view), FALSE);
|
||||
gtk_text_view_set_left_margin (GTK_TEXT_VIEW(priv->_view), 10);
|
||||
|
@ -179,16 +196,10 @@ mug_msg_view_init (MugMsgView *obj)
|
|||
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
||||
gtk_container_add (GTK_CONTAINER (scrolled), priv->_view);
|
||||
|
||||
/* gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW(scrolled), */
|
||||
/* priv->_view); */
|
||||
|
||||
gtk_box_pack_start (GTK_BOX(obj), priv->_tablemain, FALSE, FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX(obj), priv->_expander, FALSE, FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX(obj), headers_area(priv), FALSE, FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX(obj), scrolled, TRUE, TRUE, 0);
|
||||
|
||||
gtk_widget_hide (priv->_tablemain);
|
||||
gtk_widget_hide (priv->_expander);
|
||||
|
||||
gtk_widget_hide (priv->_headers_area);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -269,8 +280,7 @@ mug_msg_view_set_msg (MugMsgView *self, const char* msgpath)
|
|||
|
||||
if (!msgpath) {
|
||||
mug_msg_view_set_text (self, "");
|
||||
gtk_widget_hide (priv->_tablemain);
|
||||
gtk_widget_hide (priv->_expander);
|
||||
gtk_widget_hide (priv->_headers_area);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -280,6 +290,7 @@ mug_msg_view_set_msg (MugMsgView *self, const char* msgpath)
|
|||
|
||||
rv = mug_msg_view_set_text (self, mu_msg_get_body_text(msg));
|
||||
fill_header (priv, msg);
|
||||
gtk_widget_show (priv->_headers_area);
|
||||
|
||||
mu_msg_destroy (msg);
|
||||
|
||||
|
|
Loading…
Reference in New Issue