1
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
4
* Copyright (C) William Fagan 2008
6
* Portions based on the Subversion plugin
7
* Copyright (C) James Liggett 2007
8
* Copyright (C) Johannes Schmid 2005
10
* Anjuta is free software.
12
* You may redistribute it and/or modify it under the terms of the
13
* GNU General Public License, as published by the Free Software
14
* Foundation; either version 2 of the License, or (at your option)
17
* Anjuta is distributed in the hope that it will be useful,
18
* but WITHOUT ANY WARRANTY; without even the implied warranty of
19
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20
* See the GNU General Public License for more details.
22
* You should have received a copy of the GNU General Public License
23
* along with Anjuta. If not, write to:
24
* The Free Software Foundation, Inc.,
25
* 51 Franklin Street, Fifth Floor
26
* Boston, MA 02110-1301, USA.
30
#include "bazaar-message-entry.h"
31
#include <gtk/gtkvbox.h>
32
#include <gtk/gtkimage.h>
33
#include <gtk/gtklabel.h>
34
#include <gtk/gtkstock.h>
36
struct _BazaarMessageEntryPriv
39
GtkLabel* summary_msg;
40
GtkLabel* descrip_msg;
44
G_DEFINE_TYPE (BazaarMessageEntry, bazaar_message_entry, GTK_TYPE_HBOX);
47
bazaar_message_entry_init (BazaarMessageEntry *self)
49
self->priv = g_new0 (BazaarMessageEntryPriv, 1);
53
bazaar_message_entry_new (const gchar* stock_id, const gchar* summary_msg, const gchar* descrip_msg)
55
BazaarMessageEntry *entry = g_object_new (BAZAAR_TYPE_MESSAGE_ENTRY, NULL);
56
gchar* markup = g_strdup_printf("<i>%s</i>", descrip_msg);
58
/* Getting all of the needed widgets */
59
entry->priv->img = GTK_IMAGE(gtk_image_new_from_stock(stock_id, 4));
60
entry->priv->summary_msg = GTK_LABEL(gtk_label_new(summary_msg));
61
entry->priv->descrip_msg = GTK_LABEL(gtk_label_new(NULL));
62
entry->priv->msg_vbox = GTK_VBOX(gtk_vbox_new(FALSE, 0));
64
/* Setting up messages alignment and markup */
65
gtk_label_set_markup(entry->priv->descrip_msg, markup);
67
gtk_misc_set_alignment(GTK_MISC(entry->priv->summary_msg), 0.0f, 0.5f);
68
gtk_misc_set_alignment(GTK_MISC(entry->priv->descrip_msg), 0.0f, 0.5f);
70
/* Making everything visible */
71
gtk_widget_show(GTK_WIDGET(entry->priv->img));
72
gtk_widget_show(GTK_WIDGET(entry->priv->summary_msg));
73
gtk_widget_show(GTK_WIDGET(entry->priv->descrip_msg));
74
gtk_widget_show(GTK_WIDGET(entry->priv->msg_vbox));
76
/* Adding messages to the VBox */
77
gtk_box_pack_start(GTK_BOX(entry->priv->msg_vbox),
78
GTK_WIDGET(entry->priv->summary_msg),
83
gtk_box_pack_start(GTK_BOX(entry->priv->msg_vbox),
84
GTK_WIDGET(entry->priv->descrip_msg),
89
/* Adding the image and message VBox to the main HBox */
90
gtk_box_pack_start(GTK_BOX(entry), GTK_WIDGET(entry->priv->img), FALSE, TRUE, 20);
91
gtk_box_pack_start(GTK_BOX(entry), GTK_WIDGET(entry->priv->msg_vbox), FALSE, TRUE, 10);
99
bazaar_message_entry_finalize (GObject *object)
101
BazaarMessageEntry *message_entry;
103
message_entry = BAZAAR_MESSAGE_ENTRY (object);
105
g_free (message_entry->priv);
107
G_OBJECT_CLASS (bazaar_message_entry_parent_class)->finalize (object);
111
bazaar_message_entry_class_init (BazaarMessageEntryClass *klass)
113
GObjectClass *object_class = G_OBJECT_CLASS (klass);
115
object_class->finalize = bazaar_message_entry_finalize;
119
bazaar_message_entry_destroy (BazaarMessageEntry *self)
121
g_object_unref (self);