Git-Url:
http://git.frugalware.org/gitweb/gitweb.cgi?p=fun.git;a=commitdiff;h=4265e0bd4387449a5a7923bb40271be57b312f84
commit 4265e0bd4387449a5a7923bb40271be57b312f84
Author: Priyank <[EMAIL PROTECTED]>
Date: Sun Nov 18 18:10:37 2007 +0530
fun-ui.c: setup fun main window
* system tray icon, on left click, should open the fun main window
* new function gfpm_main_window_init() to initialize the main window
* setup the initial updates treeview where all the available updates would be
displayed
diff --git a/src/fun-ui.c b/src/fun-ui.c
index ea2e903..73a2102 100644
--- a/src/fun-ui.c
+++ b/src/fun-ui.c
@@ -34,16 +34,22 @@
static void fun_about_show (void);
static void fun_about_hide (void);
+static void fun_main_window_init (void);
+static void fun_main_window_hide (void);
#define FUN_ICON "fun.png"
#define FUN_TOOLTIP_ICON "fun.png"
+extern GladeXML *xml;
+
EggTrayIcon *icon = NULL;
FunTooltip *tooltip = NULL;
GtkWidget *stooltip;
static GtkStatusIcon *fun_icon = NULL;
static GtkWidget *fun_about_dlg = NULL;
+static GtkWidget *fun_main_window = NULL;
+static GtkWidget *fun_updates_tvw = NULL;
static GdkPixbuf *fun_about_pixbuf = NULL;
static GtkWidget *fun_config_dlg = NULL;
static GtkAdjustment *fun_config_upd_int_adj = NULL;
@@ -182,6 +188,13 @@ cb_fun_systray_leave_notify (GtkWidget *widget,
GdkEventCrossing *event, gpointe
static gboolean
cb_fun_systray_icon_clicked (GtkWidget *widget, GdkEventButton *event, gpointer
data)
{
+ /* Left Click */
+ if (event->button == 1)
+ {
+ gtk_widget_show (GTK_WIDGET(fun_main_window));
+ return TRUE;
+ }
+ /* Right Click */
if (event->button == 3)
{
GtkWidget *menu = NULL;
@@ -367,6 +380,75 @@ fun_config_dialog_init (void)
return;
}
+static void
+fun_main_window_init (void)
+{
+ GtkListStore *store = NULL;
+ GtkCellRenderer *renderer = NULL;
+ GtkTreeViewColumn *column = NULL;
+
+ fun_main_window = glade_xml_get_widget (xml, "fun_mainwindow");
+ fun_updates_tvw = glade_xml_get_widget (xml, "update_list_tvw");
+ store = gtk_list_store_new (4,
+ GDK_TYPE_PIXBUF, /* Status icon */
+ G_TYPE_STRING, /* Package name */
+ G_TYPE_STRING, /* Latest version */
+ G_TYPE_STRING); /* Package Description
*/
+ renderer = gtk_cell_renderer_pixbuf_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("S"),
+ renderer,
+ "pixbuf", 0,
+ NULL);
+ gtk_tree_view_column_set_resizable (column, FALSE);
+ gtk_tree_view_append_column (GTK_TREE_VIEW(fun_updates_tvw), column);
+
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("Package Name"),
+ renderer,
+ "text", 1,
+ NULL);
+ gtk_tree_view_column_set_resizable (column, FALSE);
+ gtk_tree_view_column_set_expand (column, FALSE);
+ gtk_tree_view_column_set_min_width (column, 80);
+ gtk_tree_view_append_column (GTK_TREE_VIEW(fun_updates_tvw), column);
+
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("Latest Version"),
+ renderer,
+ "text", 2,
+ NULL);
+ gtk_tree_view_column_set_resizable (column, FALSE);
+ gtk_tree_view_append_column (GTK_TREE_VIEW(fun_updates_tvw), column);
+
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("Description"),
+ renderer,
+ "text", 3,
+ NULL);
+ gtk_tree_view_column_set_min_width (column, 140);
+ gtk_tree_view_column_set_expand (column, TRUE);
+ gtk_tree_view_column_set_resizable (column, FALSE);
+ gtk_tree_view_append_column (GTK_TREE_VIEW(fun_updates_tvw), column);
+
+ gtk_tree_view_set_model (GTK_TREE_VIEW(fun_updates_tvw),
GTK_TREE_MODEL(store));
+
+ /* connect some important signals */
+ g_signal_connect (G_OBJECT(glade_xml_get_widget(xml,"button_about")),
+ "clicked",
+ G_CALLBACK(fun_about_show),
+ NULL);
+ g_signal_connect (G_OBJECT(glade_xml_get_widget(xml,"button_prefs")),
+ "clicked",
+
G_CALLBACK(fun_config_dialog_show),
+ NULL);
+ g_signal_connect (G_OBJECT(glade_xml_get_widget(xml,"button_close")),
+ "clicked",
+
G_CALLBACK(fun_main_window_hide),
+ NULL);
+
+ return;
+}
+
void
fun_ui_init (void)
{
@@ -374,6 +456,7 @@ fun_ui_init (void)
gulong seconds = 0;
fun_systray_create ();
+ fun_main_window_init ();
fun_config_dialog_init ();
if (fun_dbus_perform_service (TEST_SERVICE, NULL) == FALSE)
@@ -483,4 +566,11 @@ fun_about_hide (void)
return;
}
+static void
+fun_main_window_hide (void)
+{
+ gtk_widget_hide (fun_main_window);
+
+ return;
+}
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git