~debian-bazaar/+junk/anjuta-bzr-debian

« back to all changes in this revision

Viewing changes to src/bazaar-message-entry.c

  • Committer: Jelmer Vernooij
  • Date: 2008-11-10 19:13:03 UTC
  • mfrom: (60.1.117 trunk)
  • Revision ID: jelmer@samba.org-20081110191303-gh3te5q0bq9owqbm
Merge new upstream snapshot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
2
 
/*
3
 
 * Anjuta
4
 
 * Copyright (C) William Fagan 2008 
5
 
 *
6
 
 * Portions based on the Subversion plugin
7
 
 * Copyright (C) James Liggett 2007
8
 
 * Copyright (C) Johannes Schmid 2005
9
 
 *
10
 
 * Anjuta is free software.
11
 
 * 
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)
15
 
 * any later version.
16
 
 * 
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.
21
 
 * 
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.
27
 
 */
28
 
 
29
 
 
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>
35
 
 
36
 
struct _BazaarMessageEntryPriv
37
 
{
38
 
        GtkImage* img;
39
 
        GtkLabel* summary_msg;
40
 
        GtkLabel* descrip_msg;
41
 
        GtkVBox* msg_vbox;
42
 
};
43
 
 
44
 
G_DEFINE_TYPE (BazaarMessageEntry, bazaar_message_entry, GTK_TYPE_HBOX);
45
 
 
46
 
static void
47
 
bazaar_message_entry_init (BazaarMessageEntry *self)
48
 
{
49
 
        self->priv = g_new0 (BazaarMessageEntryPriv, 1);
50
 
}
51
 
 
52
 
BazaarMessageEntry*
53
 
bazaar_message_entry_new (const gchar* stock_id, const gchar* summary_msg, const gchar* descrip_msg)
54
 
{
55
 
        BazaarMessageEntry *entry = g_object_new (BAZAAR_TYPE_MESSAGE_ENTRY, NULL);     
56
 
        gchar* markup = g_strdup_printf("<i>%s</i>", descrip_msg);
57
 
        
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));
63
 
        
64
 
        /* Setting up messages alignment and markup */
65
 
        gtk_label_set_markup(entry->priv->descrip_msg, markup);
66
 
        
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);
69
 
        
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));
75
 
        
76
 
        /* Adding messages to the VBox */
77
 
        gtk_box_pack_start(GTK_BOX(entry->priv->msg_vbox), 
78
 
                           GTK_WIDGET(entry->priv->summary_msg), 
79
 
                           FALSE,
80
 
                           TRUE,
81
 
                           0);
82
 
        
83
 
        gtk_box_pack_start(GTK_BOX(entry->priv->msg_vbox), 
84
 
                           GTK_WIDGET(entry->priv->descrip_msg), 
85
 
                           FALSE,
86
 
                           TRUE,
87
 
                           0);
88
 
                           
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);
92
 
        
93
 
        g_free(markup);
94
 
        
95
 
        return entry;
96
 
}
97
 
 
98
 
static void
99
 
bazaar_message_entry_finalize (GObject *object)
100
 
{
101
 
        BazaarMessageEntry *message_entry;
102
 
        
103
 
        message_entry = BAZAAR_MESSAGE_ENTRY (object);
104
 
        
105
 
        g_free (message_entry->priv);
106
 
 
107
 
        G_OBJECT_CLASS (bazaar_message_entry_parent_class)->finalize (object);
108
 
}
109
 
 
110
 
static void
111
 
bazaar_message_entry_class_init (BazaarMessageEntryClass *klass)
112
 
{
113
 
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
114
 
 
115
 
        object_class->finalize = bazaar_message_entry_finalize;
116
 
}
117
 
 
118
 
void
119
 
bazaar_message_entry_destroy (BazaarMessageEntry *self)
120
 
{
121
 
        g_object_unref (self);
122
 
}
123