[Frugalware-git] frugal-tweak: *added cache pacman-g2 clear/install pkg from cache *added some icons to buttons

bouleetbil bouleetbil at frogdev.info
Mon Sep 20 22:20:37 CEST 2010


Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=frugal-tweak.git;a=commitdiff;h=a9ff702c68f88016eefcb75d9d1a0f28fb82c41e

commit a9ff702c68f88016eefcb75d9d1a0f28fb82c41e
Author: bouleetbil <bouleetbil at frogdev.info>
Date:   Mon Sep 20 22:19:12 2010 +0200

*added cache pacman-g2 clear/install pkg from cache
*added some icons to buttons

diff --git a/frugal-mono-tools/Fen_Menu.cs b/frugal-mono-tools/Fen_Menu.cs
index 16feb89..96fb883 100644
--- a/frugal-mono-tools/Fen_Menu.cs
+++ b/frugal-mono-tools/Fen_Menu.cs
@@ -52,8 +52,6 @@ namespace frugalmonotools
WID_Config fen_config ;
WID_Hardware fen_hardware ;
WID_LoginManager fen_loginManager;
-
-		string CurrentWidget="";

protected Gtk.TreeIter iter;
public Fen_Menu () : base(Gtk.WindowType.Toplevel)
@@ -137,7 +135,6 @@ namespace frugalmonotools
private void SelectModule(string module)
{

-					CurrentWidget=module;
this.HBOX_Details.Destroy();
this.HBOX_Details = new global::Gtk.HBox ();
this.HBOX_Details.SetSizeRequest(680,500);
diff --git a/frugal-mono-tools/OUTILS/Outils.cs b/frugal-mono-tools/OUTILS/Outils.cs
index bf28bd7..0952215 100644
--- a/frugal-mono-tools/OUTILS/Outils.cs
+++ b/frugal-mono-tools/OUTILS/Outils.cs
@@ -53,7 +53,7 @@ namespace frugalmonotools
foreach (System.IO.FileInfo fi in files)
{

-	                Console.WriteLine(fi.FullName);
+	               if (Debug.ModeDebug) Console.WriteLine(fi.FullName);
strFiles.Add(fi.FullName);
}

diff --git a/frugal-mono-tools/WID_Update.cs b/frugal-mono-tools/WID_Update.cs
index fd3658c..d00c92d 100644
--- a/frugal-mono-tools/WID_Update.cs
+++ b/frugal-mono-tools/WID_Update.cs
@@ -16,15 +16,23 @@
//  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//  */
using System;
-using Gtk;
+using System.Collections.Generic;
+using Gtk;
+
namespace frugalmonotools
{
[System.ComponentModel.ToolboxItem(true)]
public partial class WID_Update : Gtk.Bin
{
+		//update
ListStore UpdateListStore = new Gtk.ListStore (typeof (string));
private Gtk.TreeIter iter;
private string UpdateSelected="";
+
+		//cache
+		ListStore listStore = new Gtk.ListStore (typeof (string));
+		private string pkgSelected="";
+		private string dirCache="/var/cache/pacman-g2";

public WID_Update ()
{
@@ -41,6 +49,19 @@ namespace frugalmonotools
// Event on treeview
TREE_UpdatePkg.Selection.Changed += OnSelectionEntryUpdate;
TREE_UpdatePkg.Model=UpdateListStore;
+
+
+			//cache
+			Gtk.TreeViewColumn column = new Gtk.TreeViewColumn ();
+			column.Title = "Package";
+			Gtk.CellRendererText nameCell = new Gtk.CellRendererText ();
+			// Add the cell to the column
+			column.PackStart (nameCell, true);
+			TREE_Cache.AppendColumn (column);
+			column.AddAttribute (nameCell, "text", 0);
+			// Event on treeview
+			TREE_Cache.Selection.Changed += OnSelectionEntryCache;
+			TREE_Cache.Model=listStore;
}
public  void InitUpdate()
{
@@ -54,7 +75,22 @@ namespace frugalmonotools
//update
UpdateToTreeview();
IgnorepkgToSAI();
-
+		_initCache();
+		}
+		private void _initCache()
+		{
+			if(!MainClass.boRoot) BTN_ClearCache.Visible=false;
+			//cache
+			List<string>  fpms = new List<string>();
+			listStore.Clear();
+
+			string pattern ="*.fpm";
+			System.IO.DirectoryInfo rootDir = new System.IO.DirectoryInfo(dirCache);
+	        fpms = Outils.WalkDirectoryTree(rootDir,pattern);
+	        foreach (string file in fpms)
+	        {
+				listStore.AppendValues(file);
+			}
}
private void IgnorepkgToSAI()
{
@@ -111,8 +147,22 @@ namespace frugalmonotools
}
catch{}
}
-
-		protected virtual void OnBTNUpdateDatabaseClicked (object sender, System.EventArgs e)
+
+	protected void OnSelectionEntryCache(object o, EventArgs args)
+	    {
+	   		try
+			{
+			 	TreeModel model;
+				 if (((TreeSelection)o).GetSelected(out model, out iter))
+		        {
+		            string T =(string)model.GetValue (iter, 0);
+					pkgSelected=T;
+				}
+			}
+			catch{}
+		}
+
+	protected virtual void OnBTNUpdateDatabaseClicked (object sender, System.EventArgs e)
{
Outils.Excecute("python","/usr/bin/PyFrugalVTE pacman-g2 -Sy ",false);
}
@@ -141,6 +191,23 @@ namespace frugalmonotools
else
Outils.ExcecuteAsRoot("python /usr/bin/PyFrugalVTE pacman-g2 -Syu",false);
}
+		protected virtual void OnBTNClearCacheClicked (object sender, System.EventArgs e)
+		{
+			if(MainClass.boRoot)	System.IO.File.Delete(dirCache+"/*.fpm");
+			_initCache();
+		}
+
+		protected virtual void OnBTNInstallClicked (object sender, System.EventArgs e)
+		{
+			if (pkgSelected=="") return;
+			if(MainClass.boRoot)
+				Outils.Excecute("python","/usr/bin/PyFrugalVTE pacman-g2 -U "+pkgSelected,false);
+			else
+				Outils.ExcecuteAsRoot("python /usr/bin/PyFrugalVTE pacman-g2 -U "+pkgSelected,false);
+		}
+
+
+
}
}

diff --git a/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Config.cs b/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Config.cs
index 37b70db..5861bd3 100644
--- a/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Config.cs
+++ b/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Config.cs
@@ -87,17 +87,32 @@ namespace frugalmonotools
this.BTN_SaveConf.CanFocus = true;
this.BTN_SaveConf.Name = "BTN_SaveConf";
this.BTN_SaveConf.UseUnderline = true;
-			this.BTN_SaveConf.Label = global::Mono.Unix.Catalog.GetString ("Apply");
+			// Container child BTN_SaveConf.Gtk.Container+ContainerChild
+			global::Gtk.Alignment w5 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f);
+			// Container child GtkAlignment.Gtk.Container+ContainerChild
+			global::Gtk.HBox w6 = new global::Gtk.HBox ();
+			w6.Spacing = 2;
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Image w7 = new global::Gtk.Image ();
+			w7.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-apply", global::Gtk.IconSize.Menu);
+			w6.Add (w7);
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Label w9 = new global::Gtk.Label ();
+			w9.LabelProp = global::Mono.Unix.Catalog.GetString ("Apply");
+			w9.UseUnderline = true;
+			w6.Add (w9);
+			w5.Add (w6);
+			this.BTN_SaveConf.Add (w5);
this.hbox21.Add (this.BTN_SaveConf);
-			global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox21[this.BTN_SaveConf]));
-			w5.Position = 2;
-			w5.Expand = false;
-			w5.Fill = false;
+			global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.hbox21[this.BTN_SaveConf]));
+			w13.Position = 2;
+			w13.Expand = false;
+			w13.Fill = false;
this.vbox8.Add (this.hbox21);
-			global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox8[this.hbox21]));
-			w6.Position = 5;
-			w6.Expand = false;
-			w6.Fill = false;
+			global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox8[this.hbox21]));
+			w14.Position = 5;
+			w14.Expand = false;
+			w14.Fill = false;
this.Add (this.vbox8);
if ((this.Child != null)) {
this.Child.ShowAll ();
diff --git a/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Hardware.cs b/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Hardware.cs
index 452adf0..3baef06 100644
--- a/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Hardware.cs
+++ b/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Hardware.cs
@@ -49,27 +49,42 @@ namespace frugalmonotools
this.BTN_Printer.CanFocus = true;
this.BTN_Printer.Name = "BTN_Printer";
this.BTN_Printer.UseUnderline = true;
-			this.BTN_Printer.Label = global::Mono.Unix.Catalog.GetString ("System Configuration Printer");
+			// Container child BTN_Printer.Gtk.Container+ContainerChild
+			global::Gtk.Alignment w1 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f);
+			// Container child GtkAlignment.Gtk.Container+ContainerChild
+			global::Gtk.HBox w2 = new global::Gtk.HBox ();
+			w2.Spacing = 2;
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Image w3 = new global::Gtk.Image ();
+			w3.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-print", global::Gtk.IconSize.Menu);
+			w2.Add (w3);
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Label w5 = new global::Gtk.Label ();
+			w5.LabelProp = global::Mono.Unix.Catalog.GetString ("System Configuration Printer");
+			w5.UseUnderline = true;
+			w2.Add (w5);
+			w1.Add (w2);
+			this.BTN_Printer.Add (w1);
this.hbox15.Add (this.BTN_Printer);
-			global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.hbox15[this.BTN_Printer]));
-			w1.Position = 0;
-			w1.Expand = false;
-			w1.Fill = false;
+			global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox15[this.BTN_Printer]));
+			w9.Position = 0;
+			w9.Expand = false;
+			w9.Fill = false;
// Container child hbox15.Gtk.Box+BoxChild
this.LAB_Printer = new global::Gtk.Label ();
this.LAB_Printer.Name = "LAB_Printer";
this.LAB_Printer.LabelProp = global::Mono.Unix.Catalog.GetString ("You should install \"system-config-printer\"");
this.hbox15.Add (this.LAB_Printer);
-			global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox15[this.LAB_Printer]));
-			w2.PackType = ((global::Gtk.PackType)(1));
-			w2.Position = 1;
-			w2.Expand = false;
-			w2.Fill = false;
+			global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.hbox15[this.LAB_Printer]));
+			w10.PackType = ((global::Gtk.PackType)(1));
+			w10.Position = 1;
+			w10.Expand = false;
+			w10.Fill = false;
this.vbox2.Add (this.hbox15);
-			global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox15]));
-			w3.Position = 0;
-			w3.Expand = false;
-			w3.Fill = false;
+			global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox15]));
+			w11.Position = 0;
+			w11.Expand = false;
+			w11.Fill = false;
// Container child vbox2.Gtk.Box+BoxChild
this.hbox17 = new global::Gtk.HBox ();
this.hbox17.Name = "hbox17";
@@ -81,25 +96,25 @@ namespace frugalmonotools
this.BTN_Setup.UseUnderline = true;
this.BTN_Setup.Label = global::Mono.Unix.Catalog.GetString ("Frugalware System configuration");
this.hbox17.Add (this.BTN_Setup);
-			global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.hbox17[this.BTN_Setup]));
-			w4.Position = 0;
-			w4.Expand = false;
-			w4.Fill = false;
+			global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.hbox17[this.BTN_Setup]));
+			w12.Position = 0;
+			w12.Expand = false;
+			w12.Fill = false;
// Container child hbox17.Gtk.Box+BoxChild
this.LIB_Setup = new global::Gtk.Label ();
this.LIB_Setup.Name = "LIB_Setup";
this.LIB_Setup.LabelProp = global::Mono.Unix.Catalog.GetString ("You should install frugalwareutils");
this.hbox17.Add (this.LIB_Setup);
-			global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox17[this.LIB_Setup]));
-			w5.PackType = ((global::Gtk.PackType)(1));
-			w5.Position = 1;
-			w5.Expand = false;
-			w5.Fill = false;
+			global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.hbox17[this.LIB_Setup]));
+			w13.PackType = ((global::Gtk.PackType)(1));
+			w13.Position = 1;
+			w13.Expand = false;
+			w13.Fill = false;
this.vbox2.Add (this.hbox17);
-			global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox17]));
-			w6.Position = 1;
-			w6.Expand = false;
-			w6.Fill = false;
+			global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox17]));
+			w14.Position = 1;
+			w14.Expand = false;
+			w14.Fill = false;
// Container child vbox2.Gtk.Box+BoxChild
this.hbox18 = new global::Gtk.HBox ();
this.hbox18.Name = "hbox18";
@@ -109,16 +124,16 @@ namespace frugalmonotools
this.LIB_Lirc.Name = "LIB_Lirc";
this.LIB_Lirc.LabelProp = global::Mono.Unix.Catalog.GetString ("You should install lirc");
this.hbox18.Add (this.LIB_Lirc);
-			global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox18[this.LIB_Lirc]));
-			w7.PackType = ((global::Gtk.PackType)(1));
-			w7.Position = 1;
-			w7.Expand = false;
-			w7.Fill = false;
+			global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.hbox18[this.LIB_Lirc]));
+			w15.PackType = ((global::Gtk.PackType)(1));
+			w15.Position = 1;
+			w15.Expand = false;
+			w15.Fill = false;
this.vbox2.Add (this.hbox18);
-			global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox18]));
-			w8.Position = 2;
-			w8.Expand = false;
-			w8.Fill = false;
+			global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox18]));
+			w16.Position = 2;
+			w16.Expand = false;
+			w16.Fill = false;
// Container child vbox2.Gtk.Box+BoxChild
this.hbox19 = new global::Gtk.HBox ();
this.hbox19.Name = "hbox19";
@@ -128,16 +143,16 @@ namespace frugalmonotools
this.LIB_Bluez.Name = "LIB_Bluez";
this.LIB_Bluez.LabelProp = global::Mono.Unix.Catalog.GetString ("You should install bluez");
this.hbox19.Add (this.LIB_Bluez);
-			global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox19[this.LIB_Bluez]));
-			w9.PackType = ((global::Gtk.PackType)(1));
-			w9.Position = 1;
-			w9.Expand = false;
-			w9.Fill = false;
+			global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.hbox19[this.LIB_Bluez]));
+			w17.PackType = ((global::Gtk.PackType)(1));
+			w17.Position = 1;
+			w17.Expand = false;
+			w17.Fill = false;
this.vbox2.Add (this.hbox19);
-			global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox19]));
-			w10.Position = 3;
-			w10.Expand = false;
-			w10.Fill = false;
+			global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.hbox19]));
+			w18.Position = 3;
+			w18.Expand = false;
+			w18.Fill = false;
// Container child vbox2.Gtk.Box+BoxChild
this.GtkScrolledWindow3 = new global::Gtk.ScrolledWindow ();
this.GtkScrolledWindow3.Name = "GtkScrolledWindow3";
@@ -148,8 +163,8 @@ namespace frugalmonotools
this.TXT_Lspci.Name = "TXT_Lspci";
this.GtkScrolledWindow3.Add (this.TXT_Lspci);
this.vbox2.Add (this.GtkScrolledWindow3);
-			global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.GtkScrolledWindow3]));
-			w12.Position = 4;
+			global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.GtkScrolledWindow3]));
+			w20.Position = 4;
this.Add (this.vbox2);
if ((this.Child != null)) {
this.Child.ShowAll ();
diff --git a/frugal-mono-tools/gtk-gui/frugalmonotools.WID_LoginManager.cs b/frugal-mono-tools/gtk-gui/frugalmonotools.WID_LoginManager.cs
index a640666..687c02a 100644
--- a/frugal-mono-tools/gtk-gui/frugalmonotools.WID_LoginManager.cs
+++ b/frugal-mono-tools/gtk-gui/frugalmonotools.WID_LoginManager.cs
@@ -254,18 +254,33 @@ namespace frugalmonotools
this.BTN_LoginManager.CanFocus = true;
this.BTN_LoginManager.Name = "BTN_LoginManager";
this.BTN_LoginManager.UseUnderline = true;
-			this.BTN_LoginManager.Label = global::Mono.Unix.Catalog.GetString ("Apply");
+			// Container child BTN_LoginManager.Gtk.Container+ContainerChild
+			global::Gtk.Alignment w21 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f);
+			// Container child GtkAlignment.Gtk.Container+ContainerChild
+			global::Gtk.HBox w22 = new global::Gtk.HBox ();
+			w22.Spacing = 2;
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Image w23 = new global::Gtk.Image ();
+			w23.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-apply", global::Gtk.IconSize.Menu);
+			w22.Add (w23);
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Label w25 = new global::Gtk.Label ();
+			w25.LabelProp = global::Mono.Unix.Catalog.GetString ("Apply");
+			w25.UseUnderline = true;
+			w22.Add (w25);
+			w21.Add (w22);
+			this.BTN_LoginManager.Add (w21);
this.hbox8.Add (this.BTN_LoginManager);
-			global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.hbox8[this.BTN_LoginManager]));
-			w21.Position = 2;
-			w21.Expand = false;
-			w21.Fill = false;
+			global::Gtk.Box.BoxChild w29 = ((global::Gtk.Box.BoxChild)(this.hbox8[this.BTN_LoginManager]));
+			w29.Position = 2;
+			w29.Expand = false;
+			w29.Fill = false;
this.vbox3.Add (this.hbox8);
-			global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.hbox8]));
-			w22.PackType = ((global::Gtk.PackType)(1));
-			w22.Position = 5;
-			w22.Expand = false;
-			w22.Fill = false;
+			global::Gtk.Box.BoxChild w30 = ((global::Gtk.Box.BoxChild)(this.vbox3[this.hbox8]));
+			w30.PackType = ((global::Gtk.PackType)(1));
+			w30.Position = 5;
+			w30.Expand = false;
+			w30.Fill = false;
this.Add (this.vbox3);
if ((this.Child != null)) {
this.Child.ShowAll ();
diff --git a/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Network.cs b/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Network.cs
index 3fc6e30..f411e51 100644
--- a/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Network.cs
+++ b/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Network.cs
@@ -153,18 +153,33 @@ namespace frugalmonotools
this.BTN_Network.CanFocus = true;
this.BTN_Network.Name = "BTN_Network";
this.BTN_Network.UseUnderline = true;
-			this.BTN_Network.Label = global::Mono.Unix.Catalog.GetString ("Apply");
+			// Container child BTN_Network.Gtk.Container+ContainerChild
+			global::Gtk.Alignment w12 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f);
+			// Container child GtkAlignment.Gtk.Container+ContainerChild
+			global::Gtk.HBox w13 = new global::Gtk.HBox ();
+			w13.Spacing = 2;
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Image w14 = new global::Gtk.Image ();
+			w14.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-apply", global::Gtk.IconSize.Menu);
+			w13.Add (w14);
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Label w16 = new global::Gtk.Label ();
+			w16.LabelProp = global::Mono.Unix.Catalog.GetString ("Apply");
+			w16.UseUnderline = true;
+			w13.Add (w16);
+			w12.Add (w13);
+			this.BTN_Network.Add (w12);
this.hbox4.Add (this.BTN_Network);
-			global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.BTN_Network]));
-			w12.Position = 2;
-			w12.Expand = false;
-			w12.Fill = false;
+			global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.BTN_Network]));
+			w20.Position = 2;
+			w20.Expand = false;
+			w20.Fill = false;
this.vbox1.Add (this.hbox4);
-			global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox4]));
-			w13.PackType = ((global::Gtk.PackType)(1));
-			w13.Position = 3;
-			w13.Expand = false;
-			w13.Fill = false;
+			global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox4]));
+			w21.PackType = ((global::Gtk.PackType)(1));
+			w21.Position = 3;
+			w21.Expand = false;
+			w21.Fill = false;
this.Add (this.vbox1);
if ((this.Child != null)) {
this.Child.ShowAll ();
diff --git a/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Pkg.cs b/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Pkg.cs
index 7943aff..8f04491 100644
--- a/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Pkg.cs
+++ b/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Pkg.cs
@@ -93,28 +93,58 @@ namespace frugalmonotools
this.BTN_Uninstall.CanFocus = true;
this.BTN_Uninstall.Name = "BTN_Uninstall";
this.BTN_Uninstall.UseUnderline = true;
-			this.BTN_Uninstall.Label = global::Mono.Unix.Catalog.GetString ("Uninstall");
+			// Container child BTN_Uninstall.Gtk.Container+ContainerChild
+			global::Gtk.Alignment w7 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f);
+			// Container child GtkAlignment.Gtk.Container+ContainerChild
+			global::Gtk.HBox w8 = new global::Gtk.HBox ();
+			w8.Spacing = 2;
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Image w9 = new global::Gtk.Image ();
+			w9.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-remove", global::Gtk.IconSize.Menu);
+			w8.Add (w9);
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Label w11 = new global::Gtk.Label ();
+			w11.LabelProp = global::Mono.Unix.Catalog.GetString ("Uninstall");
+			w11.UseUnderline = true;
+			w8.Add (w11);
+			w7.Add (w8);
+			this.BTN_Uninstall.Add (w7);
this.hbox12.Add (this.BTN_Uninstall);
-			global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox12[this.BTN_Uninstall]));
-			w7.Position = 1;
-			w7.Expand = false;
-			w7.Fill = false;
+			global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.hbox12[this.BTN_Uninstall]));
+			w15.Position = 1;
+			w15.Expand = false;
+			w15.Fill = false;
// Container child hbox12.Gtk.Box+BoxChild
this.BTN_Install = new global::Gtk.Button ();
this.BTN_Install.CanFocus = true;
this.BTN_Install.Name = "BTN_Install";
this.BTN_Install.UseUnderline = true;
-			this.BTN_Install.Label = global::Mono.Unix.Catalog.GetString ("Install");
+			// Container child BTN_Install.Gtk.Container+ContainerChild
+			global::Gtk.Alignment w16 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f);
+			// Container child GtkAlignment.Gtk.Container+ContainerChild
+			global::Gtk.HBox w17 = new global::Gtk.HBox ();
+			w17.Spacing = 2;
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Image w18 = new global::Gtk.Image ();
+			w18.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("frugalmonotools.Pictures.icons.update.png");
+			w17.Add (w18);
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Label w20 = new global::Gtk.Label ();
+			w20.LabelProp = global::Mono.Unix.Catalog.GetString ("_Install");
+			w20.UseUnderline = true;
+			w17.Add (w20);
+			w16.Add (w17);
+			this.BTN_Install.Add (w16);
this.hbox12.Add (this.BTN_Install);
-			global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox12[this.BTN_Install]));
-			w8.Position = 2;
-			w8.Expand = false;
-			w8.Fill = false;
+			global::Gtk.Box.BoxChild w24 = ((global::Gtk.Box.BoxChild)(this.hbox12[this.BTN_Install]));
+			w24.Position = 2;
+			w24.Expand = false;
+			w24.Fill = false;
this.vbox4.Add (this.hbox12);
-			global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.vbox4[this.hbox12]));
-			w9.Position = 3;
-			w9.Expand = false;
-			w9.Fill = false;
+			global::Gtk.Box.BoxChild w25 = ((global::Gtk.Box.BoxChild)(this.vbox4[this.hbox12]));
+			w25.Position = 3;
+			w25.Expand = false;
+			w25.Fill = false;
this.Add (this.vbox4);
if ((this.Child != null)) {
this.Child.ShowAll ();
diff --git a/frugal-mono-tools/gtk-gui/frugalmonotools.WID_System.cs b/frugal-mono-tools/gtk-gui/frugalmonotools.WID_System.cs
index 37a3603..5034a11 100644
--- a/frugal-mono-tools/gtk-gui/frugalmonotools.WID_System.cs
+++ b/frugal-mono-tools/gtk-gui/frugalmonotools.WID_System.cs
@@ -294,17 +294,32 @@ namespace frugalmonotools
this.BTN_System.CanFocus = true;
this.BTN_System.Name = "BTN_System";
this.BTN_System.UseUnderline = true;
-			this.BTN_System.Label = global::Mono.Unix.Catalog.GetString ("Apply");
+			// Container child BTN_System.Gtk.Container+ContainerChild
+			global::Gtk.Alignment w25 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f);
+			// Container child GtkAlignment.Gtk.Container+ContainerChild
+			global::Gtk.HBox w26 = new global::Gtk.HBox ();
+			w26.Spacing = 2;
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Image w27 = new global::Gtk.Image ();
+			w27.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-apply", global::Gtk.IconSize.Menu);
+			w26.Add (w27);
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Label w29 = new global::Gtk.Label ();
+			w29.LabelProp = global::Mono.Unix.Catalog.GetString ("Apply");
+			w29.UseUnderline = true;
+			w26.Add (w29);
+			w25.Add (w26);
+			this.BTN_System.Add (w25);
this.hbox29.Add (this.BTN_System);
-			global::Gtk.Box.BoxChild w25 = ((global::Gtk.Box.BoxChild)(this.hbox29[this.BTN_System]));
-			w25.Position = 2;
-			w25.Expand = false;
-			w25.Fill = false;
+			global::Gtk.Box.BoxChild w33 = ((global::Gtk.Box.BoxChild)(this.hbox29[this.BTN_System]));
+			w33.Position = 2;
+			w33.Expand = false;
+			w33.Fill = false;
this.vbox11.Add (this.hbox29);
-			global::Gtk.Box.BoxChild w26 = ((global::Gtk.Box.BoxChild)(this.vbox11[this.hbox29]));
-			w26.Position = 8;
-			w26.Expand = false;
-			w26.Fill = false;
+			global::Gtk.Box.BoxChild w34 = ((global::Gtk.Box.BoxChild)(this.vbox11[this.hbox29]));
+			w34.Position = 8;
+			w34.Expand = false;
+			w34.Fill = false;
this.Add (this.vbox11);
if ((this.Child != null)) {
this.Child.ShowAll ();
diff --git a/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Update.cs b/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Update.cs
index 94320c9..304c6c3 100644
--- a/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Update.cs
+++ b/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Update.cs
@@ -4,6 +4,8 @@ namespace frugalmonotools
{
public partial class WID_Update
{
+		private global::Gtk.Notebook notebook1;
+
private global::Gtk.VBox vbox10;

private global::Gtk.ScrolledWindow GtkScrolledWindow4;
@@ -28,6 +30,22 @@ namespace frugalmonotools

private global::Gtk.Button BTN_Update;

+		private global::Gtk.Label label1;
+
+		private global::Gtk.VBox vbox1;
+
+		private global::Gtk.ScrolledWindow GtkScrolledWindow;
+
+		private global::Gtk.TreeView TREE_Cache;
+
+		private global::Gtk.HBox hbox1;
+
+		private global::Gtk.Button BTN_ClearCache;
+
+		private global::Gtk.Button BTN_Install;
+
+		private global::Gtk.Label label2;
+
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
@@ -35,6 +53,11 @@ namespace frugalmonotools
global::Stetic.BinContainer.Attach (this);
this.Name = "frugalmonotools.WID_Update";
// Container child frugalmonotools.WID_Update.Gtk.Container+ContainerChild
+			this.notebook1 = new global::Gtk.Notebook ();
+			this.notebook1.CanFocus = true;
+			this.notebook1.Name = "notebook1";
+			this.notebook1.CurrentPage = 0;
+			// Container child notebook1.Gtk.Notebook+NotebookChild
this.vbox10 = new global::Gtk.VBox ();
this.vbox10.Name = "vbox10";
this.vbox10.Spacing = 6;
@@ -97,51 +120,204 @@ namespace frugalmonotools
this.BTN_Hide.CanFocus = true;
this.BTN_Hide.Name = "BTN_Hide";
this.BTN_Hide.UseUnderline = true;
-			this.BTN_Hide.Label = global::Mono.Unix.Catalog.GetString ("Hide this package");
+			// Container child BTN_Hide.Gtk.Container+ContainerChild
+			global::Gtk.Alignment w7 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f);
+			// Container child GtkAlignment.Gtk.Container+ContainerChild
+			global::Gtk.HBox w8 = new global::Gtk.HBox ();
+			w8.Spacing = 2;
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Image w9 = new global::Gtk.Image ();
+			w9.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-delete", global::Gtk.IconSize.Menu);
+			w8.Add (w9);
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Label w11 = new global::Gtk.Label ();
+			w11.LabelProp = global::Mono.Unix.Catalog.GetString ("Hide this package");
+			w11.UseUnderline = true;
+			w8.Add (w11);
+			w7.Add (w8);
+			this.BTN_Hide.Add (w7);
this.hbox22.Add (this.BTN_Hide);
-			global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox22[this.BTN_Hide]));
-			w7.Position = 0;
-			w7.Expand = false;
-			w7.Fill = false;
+			global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.hbox22[this.BTN_Hide]));
+			w15.Position = 0;
+			w15.Expand = false;
+			w15.Fill = false;
// Container child hbox22.Gtk.Box+BoxChild
this.BTN_UpdateDatabase = new global::Gtk.Button ();
this.BTN_UpdateDatabase.CanFocus = true;
this.BTN_UpdateDatabase.Name = "BTN_UpdateDatabase";
this.BTN_UpdateDatabase.UseUnderline = true;
-			this.BTN_UpdateDatabase.Label = global::Mono.Unix.Catalog.GetString ("Update database");
+			// Container child BTN_UpdateDatabase.Gtk.Container+ContainerChild
+			global::Gtk.Alignment w16 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f);
+			// Container child GtkAlignment.Gtk.Container+ContainerChild
+			global::Gtk.HBox w17 = new global::Gtk.HBox ();
+			w17.Spacing = 2;
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Image w18 = new global::Gtk.Image ();
+			w18.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-refresh", global::Gtk.IconSize.Menu);
+			w17.Add (w18);
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Label w20 = new global::Gtk.Label ();
+			w20.LabelProp = global::Mono.Unix.Catalog.GetString ("Update database");
+			w20.UseUnderline = true;
+			w17.Add (w20);
+			w16.Add (w17);
+			this.BTN_UpdateDatabase.Add (w16);
this.hbox22.Add (this.BTN_UpdateDatabase);
-			global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox22[this.BTN_UpdateDatabase]));
-			w8.Position = 1;
-			w8.Expand = false;
-			w8.Fill = false;
+			global::Gtk.Box.BoxChild w24 = ((global::Gtk.Box.BoxChild)(this.hbox22[this.BTN_UpdateDatabase]));
+			w24.Position = 1;
+			w24.Expand = false;
+			w24.Fill = false;
// Container child hbox22.Gtk.Box+BoxChild
this.BTN_Refresh = new global::Gtk.Button ();
this.BTN_Refresh.CanFocus = true;
this.BTN_Refresh.Name = "BTN_Refresh";
this.BTN_Refresh.UseUnderline = true;
-			this.BTN_Refresh.Label = global::Mono.Unix.Catalog.GetString ("Refresh list");
+			// Container child BTN_Refresh.Gtk.Container+ContainerChild
+			global::Gtk.Alignment w25 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f);
+			// Container child GtkAlignment.Gtk.Container+ContainerChild
+			global::Gtk.HBox w26 = new global::Gtk.HBox ();
+			w26.Spacing = 2;
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Image w27 = new global::Gtk.Image ();
+			w27.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-refresh", global::Gtk.IconSize.Menu);
+			w26.Add (w27);
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Label w29 = new global::Gtk.Label ();
+			w29.LabelProp = global::Mono.Unix.Catalog.GetString ("Refresh list");
+			w29.UseUnderline = true;
+			w26.Add (w29);
+			w25.Add (w26);
+			this.BTN_Refresh.Add (w25);
this.hbox22.Add (this.BTN_Refresh);
-			global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox22[this.BTN_Refresh]));
-			w9.Position = 2;
-			w9.Expand = false;
-			w9.Fill = false;
+			global::Gtk.Box.BoxChild w33 = ((global::Gtk.Box.BoxChild)(this.hbox22[this.BTN_Refresh]));
+			w33.Position = 2;
+			w33.Expand = false;
+			w33.Fill = false;
// Container child hbox22.Gtk.Box+BoxChild
this.BTN_Update = new global::Gtk.Button ();
this.BTN_Update.CanFocus = true;
this.BTN_Update.Name = "BTN_Update";
this.BTN_Update.UseUnderline = true;
-			this.BTN_Update.Label = global::Mono.Unix.Catalog.GetString ("Update system");
+			// Container child BTN_Update.Gtk.Container+ContainerChild
+			global::Gtk.Alignment w34 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f);
+			// Container child GtkAlignment.Gtk.Container+ContainerChild
+			global::Gtk.HBox w35 = new global::Gtk.HBox ();
+			w35.Spacing = 2;
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Image w36 = new global::Gtk.Image ();
+			w36.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-ok", global::Gtk.IconSize.Menu);
+			w35.Add (w36);
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Label w38 = new global::Gtk.Label ();
+			w38.LabelProp = global::Mono.Unix.Catalog.GetString ("Update system");
+			w38.UseUnderline = true;
+			w35.Add (w38);
+			w34.Add (w35);
+			this.BTN_Update.Add (w34);
this.hbox22.Add (this.BTN_Update);
-			global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.hbox22[this.BTN_Update]));
-			w10.Position = 3;
-			w10.Expand = false;
-			w10.Fill = false;
+			global::Gtk.Box.BoxChild w42 = ((global::Gtk.Box.BoxChild)(this.hbox22[this.BTN_Update]));
+			w42.Position = 3;
+			w42.Expand = false;
+			w42.Fill = false;
this.vbox10.Add (this.hbox22);
-			global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox10[this.hbox22]));
-			w11.Position = 2;
-			w11.Expand = false;
-			w11.Fill = false;
-			this.Add (this.vbox10);
+			global::Gtk.Box.BoxChild w43 = ((global::Gtk.Box.BoxChild)(this.vbox10[this.hbox22]));
+			w43.Position = 2;
+			w43.Expand = false;
+			w43.Fill = false;
+			this.notebook1.Add (this.vbox10);
+			// Notebook tab
+			this.label1 = new global::Gtk.Label ();
+			this.label1.Name = "label1";
+			this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("Update");
+			this.notebook1.SetTabLabel (this.vbox10, this.label1);
+			this.label1.ShowAll ();
+			// Container child notebook1.Gtk.Notebook+NotebookChild
+			this.vbox1 = new global::Gtk.VBox ();
+			this.vbox1.Name = "vbox1";
+			this.vbox1.Spacing = 6;
+			// Container child vbox1.Gtk.Box+BoxChild
+			this.GtkScrolledWindow = new global::Gtk.ScrolledWindow ();
+			this.GtkScrolledWindow.Name = "GtkScrolledWindow";
+			this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1));
+			// Container child GtkScrolledWindow.Gtk.Container+ContainerChild
+			this.TREE_Cache = new global::Gtk.TreeView ();
+			this.TREE_Cache.CanFocus = true;
+			this.TREE_Cache.Name = "TREE_Cache";
+			this.GtkScrolledWindow.Add (this.TREE_Cache);
+			this.vbox1.Add (this.GtkScrolledWindow);
+			global::Gtk.Box.BoxChild w46 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.GtkScrolledWindow]));
+			w46.Position = 0;
+			// Container child vbox1.Gtk.Box+BoxChild
+			this.hbox1 = new global::Gtk.HBox ();
+			this.hbox1.Name = "hbox1";
+			this.hbox1.Spacing = 6;
+			// Container child hbox1.Gtk.Box+BoxChild
+			this.BTN_ClearCache = new global::Gtk.Button ();
+			this.BTN_ClearCache.CanFocus = true;
+			this.BTN_ClearCache.Name = "BTN_ClearCache";
+			this.BTN_ClearCache.UseUnderline = true;
+			// Container child BTN_ClearCache.Gtk.Container+ContainerChild
+			global::Gtk.Alignment w47 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f);
+			// Container child GtkAlignment.Gtk.Container+ContainerChild
+			global::Gtk.HBox w48 = new global::Gtk.HBox ();
+			w48.Spacing = 2;
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Image w49 = new global::Gtk.Image ();
+			w49.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-delete", global::Gtk.IconSize.Menu);
+			w48.Add (w49);
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Label w51 = new global::Gtk.Label ();
+			w51.LabelProp = global::Mono.Unix.Catalog.GetString ("Clear cache");
+			w51.UseUnderline = true;
+			w48.Add (w51);
+			w47.Add (w48);
+			this.BTN_ClearCache.Add (w47);
+			this.hbox1.Add (this.BTN_ClearCache);
+			global::Gtk.Box.BoxChild w55 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.BTN_ClearCache]));
+			w55.Position = 0;
+			w55.Expand = false;
+			w55.Fill = false;
+			// Container child hbox1.Gtk.Box+BoxChild
+			this.BTN_Install = new global::Gtk.Button ();
+			this.BTN_Install.CanFocus = true;
+			this.BTN_Install.Name = "BTN_Install";
+			this.BTN_Install.UseUnderline = true;
+			// Container child BTN_Install.Gtk.Container+ContainerChild
+			global::Gtk.Alignment w56 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f);
+			// Container child GtkAlignment.Gtk.Container+ContainerChild
+			global::Gtk.HBox w57 = new global::Gtk.HBox ();
+			w57.Spacing = 2;
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Image w58 = new global::Gtk.Image ();
+			w58.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("frugalmonotools.Pictures.icons.update.png");
+			w57.Add (w58);
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Label w60 = new global::Gtk.Label ();
+			w60.LabelProp = global::Mono.Unix.Catalog.GetString ("Install");
+			w60.UseUnderline = true;
+			w57.Add (w60);
+			w56.Add (w57);
+			this.BTN_Install.Add (w56);
+			this.hbox1.Add (this.BTN_Install);
+			global::Gtk.Box.BoxChild w64 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.BTN_Install]));
+			w64.Position = 1;
+			w64.Expand = false;
+			w64.Fill = false;
+			this.vbox1.Add (this.hbox1);
+			global::Gtk.Box.BoxChild w65 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox1]));
+			w65.Position = 1;
+			w65.Expand = false;
+			w65.Fill = false;
+			this.notebook1.Add (this.vbox1);
+			global::Gtk.Notebook.NotebookChild w66 = ((global::Gtk.Notebook.NotebookChild)(this.notebook1[this.vbox1]));
+			w66.Position = 1;
+			// Notebook tab
+			this.label2 = new global::Gtk.Label ();
+			this.label2.Name = "label2";
+			this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("Cache");
+			this.notebook1.SetTabLabel (this.vbox1, this.label2);
+			this.label2.ShowAll ();
+			this.Add (this.notebook1);
if ((this.Child != null)) {
this.Child.ShowAll ();
}
@@ -152,6 +328,8 @@ namespace frugalmonotools
this.BTN_UpdateDatabase.Clicked += new global::System.EventHandler (this.OnBTNUpdateDatabaseClicked);
this.BTN_Refresh.Clicked += new global::System.EventHandler (this.OnBTNRefreshClicked);
this.BTN_Update.Clicked += new global::System.EventHandler (this.OnBTNUpdateClicked);
+			this.BTN_ClearCache.Clicked += new global::System.EventHandler (this.OnBTNClearCacheClicked);
+			this.BTN_Install.Clicked += new global::System.EventHandler (this.OnBTNInstallClicked);
}
}
}
diff --git a/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Xorg.cs b/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Xorg.cs
index 1685a1d..900b475 100644
--- a/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Xorg.cs
+++ b/frugal-mono-tools/gtk-gui/frugalmonotools.WID_Xorg.cs
@@ -125,17 +125,32 @@ namespace frugalmonotools
this.BTN_Xorg.CanFocus = true;
this.BTN_Xorg.Name = "BTN_Xorg";
this.BTN_Xorg.UseUnderline = true;
-			this.BTN_Xorg.Label = global::Mono.Unix.Catalog.GetString ("Apply");
+			// Container child BTN_Xorg.Gtk.Container+ContainerChild
+			global::Gtk.Alignment w9 = new global::Gtk.Alignment (0.5f, 0.5f, 0f, 0f);
+			// Container child GtkAlignment.Gtk.Container+ContainerChild
+			global::Gtk.HBox w10 = new global::Gtk.HBox ();
+			w10.Spacing = 2;
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Image w11 = new global::Gtk.Image ();
+			w11.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-apply", global::Gtk.IconSize.Menu);
+			w10.Add (w11);
+			// Container child GtkHBox.Gtk.Container+ContainerChild
+			global::Gtk.Label w13 = new global::Gtk.Label ();
+			w13.LabelProp = global::Mono.Unix.Catalog.GetString ("Apply");
+			w13.UseUnderline = true;
+			w10.Add (w13);
+			w9.Add (w10);
+			this.BTN_Xorg.Add (w9);
this.hbox14.Add (this.BTN_Xorg);
-			global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox14[this.BTN_Xorg]));
-			w9.Position = 2;
-			w9.Expand = false;
-			w9.Fill = false;
+			global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.hbox14[this.BTN_Xorg]));
+			w17.Position = 2;
+			w17.Expand = false;
+			w17.Fill = false;
this.vbox6.Add (this.hbox14);
-			global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.vbox6[this.hbox14]));
-			w10.Position = 6;
-			w10.Expand = false;
-			w10.Fill = false;
+			global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.vbox6[this.hbox14]));
+			w18.Position = 6;
+			w18.Expand = false;
+			w18.Fill = false;
this.Add (this.vbox6);
if ((this.Child != null)) {
this.Child.ShowAll ();
diff --git a/frugal-mono-tools/gtk-gui/generated.cs b/frugal-mono-tools/gtk-gui/generated.cs
index 7b2c513..a29bd92 100644
--- a/frugal-mono-tools/gtk-gui/generated.cs
+++ b/frugal-mono-tools/gtk-gui/generated.cs
@@ -71,6 +71,40 @@ namespace Stetic
}
}

+	internal class IconLoader
+	{
+		public static Gdk.Pixbuf LoadIcon (Gtk.Widget widget, string name, Gtk.IconSize size)
+		{
+			Gdk.Pixbuf res = widget.RenderIcon (name, size, null);
+			if ((res != null)) {
+				return res;
+			} else {
+				int sz;
+				int sy;
+				global::Gtk.Icon.SizeLookup (size, out sz, out sy);
+				try {
+					return Gtk.IconTheme.Default.LoadIcon (name, sz, 0);
+				} catch (System.Exception) {
+					if ((name != "gtk-missing-image")) {
+						return Stetic.IconLoader.LoadIcon (widget, "gtk-missing-image", size);
+					} else {
+						Gdk.Pixmap pmap = new Gdk.Pixmap (Gdk.Screen.Default.RootWindow, sz, sz);
+						Gdk.GC gc = new Gdk.GC (pmap);
+						gc.RgbFgColor = new Gdk.Color (255, 255, 255);
+						pmap.DrawRectangle (gc, true, 0, 0, sz, sz);
+						gc.RgbFgColor = new Gdk.Color (0, 0, 0);
+						pmap.DrawRectangle (gc, false, 0, 0, (sz - 1), (sz - 1));
+						gc.SetLineAttributes (3, Gdk.LineStyle.Solid, Gdk.CapStyle.Round, Gdk.JoinStyle.Round);
+						gc.RgbFgColor = new Gdk.Color (255, 0, 0);
+						pmap.DrawLine (gc, (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)), ((sz - 1) - (sz / 4)));
+						pmap.DrawLine (gc, ((sz - 1) - (sz / 4)), (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)));
+						return Gdk.Pixbuf.FromDrawable (pmap, pmap.Colormap, 0, 0, 0, 0, sz, sz);
+					}
+				}
+			}
+		}
+	}
+
internal class ActionGroups
{
public static Gtk.ActionGroup GetActionGroup (System.Type type)
diff --git a/frugal-mono-tools/gtk-gui/gui.stetic b/frugal-mono-tools/gtk-gui/gui.stetic
index dc99c22..7de5137 100644
--- a/frugal-mono-tools/gtk-gui/gui.stetic
+++ b/frugal-mono-tools/gtk-gui/gui.stetic
@@ -8,7 +8,7 @@
<widget-library name="glade-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<widget-library name="webkit-sharp, Version=1.1.15.0, Culture=neutral, PublicKeyToken=eaa1d335d2e19745" />
<widget-library name="notify-sharp, Version=0.4.0.0, Culture=neutral, PublicKeyToken=2df29c54e245917a" />
-    <widget-library name="../bin/Release/frugal-mono-tools.exe" internal="true" />
+    <widget-library name="../bin/Debug/frugal-mono-tools.exe" internal="true" />
</import>
<icon-factory>
<icon-set id="iconeFwCC">
@@ -268,7 +268,8 @@
<widget class="Gtk.Button" id="BTN_Uninstall">
<property name="MemberName" />
<property name="CanFocus">True</property>
-                <property name="Type">TextOnly</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-remove Menu</property>
<property name="Label" translatable="yes">Uninstall</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBTNUninstallClicked" />
@@ -284,8 +285,9 @@
<widget class="Gtk.Button" id="BTN_Install">
<property name="MemberName" />
<property name="CanFocus">True</property>
-                <property name="Type">TextOnly</property>
-                <property name="Label" translatable="yes">Install</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">resource:frugalmonotools.Pictures.icons.update.png</property>
+                <property name="Label" translatable="yes">_Install</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBTNInstallClicked" />
</widget>
@@ -443,7 +445,8 @@
<widget class="Gtk.Button" id="BTN_Xorg">
<property name="MemberName" />
<property name="CanFocus">True</property>
-                <property name="Type">TextOnly</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-apply Menu</property>
<property name="Label" translatable="yes">Apply</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBTNXorgClicked" />
@@ -470,62 +473,156 @@
<property name="MemberName" />
<property name="Visible">False</property>
<child>
-      <widget class="Gtk.VBox" id="vbox10">
+      <widget class="Gtk.Notebook" id="notebook1">
<property name="MemberName" />
-        <property name="Spacing">6</property>
-        <child>
-          <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow4">
-            <property name="MemberName" />
-            <property name="ShadowType">In</property>
-            <child>
-              <widget class="Gtk.TreeView" id="TREE_UpdatePkg">
-                <property name="MemberName" />
-                <property name="CanFocus">True</property>
-                <property name="ShowScrollbars">True</property>
-              </widget>
-            </child>
-          </widget>
-          <packing>
-            <property name="Position">0</property>
-            <property name="AutoSize">True</property>
-          </packing>
-        </child>
+        <property name="CanFocus">True</property>
+        <property name="CurrentPage">0</property>
<child>
-          <widget class="Gtk.HBox" id="hbox31">
+          <widget class="Gtk.VBox" id="vbox10">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
-              <widget class="Gtk.Label" id="label17">
+              <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow4">
<property name="MemberName" />
-                <property name="LabelProp" translatable="yes">Package ignored when system is updated</property>
+                <property name="ShadowType">In</property>
+                <child>
+                  <widget class="Gtk.TreeView" id="TREE_UpdatePkg">
+                    <property name="MemberName" />
+                    <property name="CanFocus">True</property>
+                    <property name="ShowScrollbars">True</property>
+                  </widget>
+                </child>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
-                <property name="Expand">False</property>
-                <property name="Fill">False</property>
</packing>
</child>
<child>
-              <widget class="Gtk.Entry" id="SAI_ignorePkg">
+              <widget class="Gtk.HBox" id="hbox31">
<property name="MemberName" />
-                <property name="CanFocus">True</property>
-                <property name="IsEditable">True</property>
-                <property name="InvisibleChar">•</property>
+                <property name="Spacing">6</property>
+                <child>
+                  <widget class="Gtk.Label" id="label17">
+                    <property name="MemberName" />
+                    <property name="LabelProp" translatable="yes">Package ignored when system is updated</property>
+                  </widget>
+                  <packing>
+                    <property name="Position">0</property>
+                    <property name="AutoSize">True</property>
+                    <property name="Expand">False</property>
+                    <property name="Fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="Gtk.Entry" id="SAI_ignorePkg">
+                    <property name="MemberName" />
+                    <property name="CanFocus">True</property>
+                    <property name="IsEditable">True</property>
+                    <property name="InvisibleChar">•</property>
+                  </widget>
+                  <packing>
+                    <property name="Position">1</property>
+                    <property name="AutoSize">True</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="Gtk.Button" id="BTN_ApplyIgnorePkg">
+                    <property name="MemberName" />
+                    <property name="CanFocus">True</property>
+                    <property name="Type">TextOnly</property>
+                    <property name="Label" translatable="yes">Apply</property>
+                    <property name="UseUnderline">True</property>
+                    <signal name="Clicked" handler="OnBTNApplyIgnorePkgClicked" />
+                  </widget>
+                  <packing>
+                    <property name="Position">2</property>
+                    <property name="AutoSize">True</property>
+                    <property name="Expand">False</property>
+                    <property name="Fill">False</property>
+                  </packing>
+                </child>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
+                <property name="Expand">False</property>
+                <property name="Fill">False</property>
</packing>
</child>
<child>
-              <widget class="Gtk.Button" id="BTN_ApplyIgnorePkg">
+              <widget class="Gtk.HBox" id="hbox22">
<property name="MemberName" />
-                <property name="CanFocus">True</property>
-                <property name="Type">TextOnly</property>
-                <property name="Label" translatable="yes">Apply</property>
-                <property name="UseUnderline">True</property>
-                <signal name="Clicked" handler="OnBTNApplyIgnorePkgClicked" />
+                <property name="Spacing">6</property>
+                <child>
+                  <widget class="Gtk.Button" id="BTN_Hide">
+                    <property name="MemberName" />
+                    <property name="Visible">False</property>
+                    <property name="CanFocus">True</property>
+                    <property name="Type">TextAndIcon</property>
+                    <property name="Icon">stock:gtk-delete Menu</property>
+                    <property name="Label" translatable="yes">Hide this package</property>
+                    <property name="UseUnderline">True</property>
+                    <signal name="Clicked" handler="OnBTNHideClicked" />
+                  </widget>
+                  <packing>
+                    <property name="Position">0</property>
+                    <property name="AutoSize">True</property>
+                    <property name="Expand">False</property>
+                    <property name="Fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="Gtk.Button" id="BTN_UpdateDatabase">
+                    <property name="MemberName" />
+                    <property name="CanFocus">True</property>
+                    <property name="Type">TextAndIcon</property>
+                    <property name="Icon">stock:gtk-refresh Menu</property>
+                    <property name="Label" translatable="yes">Update database</property>
+                    <property name="UseUnderline">True</property>
+                    <signal name="Clicked" handler="OnBTNUpdateDatabaseClicked" />
+                  </widget>
+                  <packing>
+                    <property name="Position">1</property>
+                    <property name="AutoSize">True</property>
+                    <property name="Expand">False</property>
+                    <property name="Fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="Gtk.Button" id="BTN_Refresh">
+                    <property name="MemberName" />
+                    <property name="CanFocus">True</property>
+                    <property name="Type">TextAndIcon</property>
+                    <property name="Icon">stock:gtk-refresh Menu</property>
+                    <property name="Label" translatable="yes">Refresh list</property>
+                    <property name="UseUnderline">True</property>
+                    <signal name="Clicked" handler="OnBTNRefreshClicked" />
+                  </widget>
+                  <packing>
+                    <property name="Position">2</property>
+                    <property name="AutoSize">True</property>
+                    <property name="Expand">False</property>
+                    <property name="Fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="Gtk.Button" id="BTN_Update">
+                    <property name="MemberName" />
+                    <property name="CanFocus">True</property>
+                    <property name="Type">TextAndIcon</property>
+                    <property name="Icon">stock:gtk-ok Menu</property>
+                    <property name="Label" translatable="yes">Update system</property>
+                    <property name="UseUnderline">True</property>
+                    <signal name="Clicked" handler="OnBTNUpdateClicked" />
+                  </widget>
+                  <packing>
+                    <property name="Position">3</property>
+                    <property name="AutoSize">True</property>
+                    <property name="Expand">False</property>
+                    <property name="Fill">False</property>
+                  </packing>
+                </child>
</widget>
<packing>
<property name="Position">2</property>
@@ -535,42 +632,75 @@
</packing>
</child>
</widget>
+        </child>
+        <child>
+          <widget class="Gtk.Label" id="label1">
+            <property name="MemberName" />
+            <property name="LabelProp" translatable="yes">Update</property>
+          </widget>
<packing>
-            <property name="Position">1</property>
-            <property name="AutoSize">True</property>
-            <property name="Expand">False</property>
-            <property name="Fill">False</property>
+            <property name="type">tab</property>
</packing>
</child>
<child>
-          <widget class="Gtk.HBox" id="hbox22">
+          <widget class="Gtk.VBox" id="vbox1">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
-              <widget class="Gtk.Button" id="BTN_Hide">
+              <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
<property name="MemberName" />
-                <property name="Visible">False</property>
-                <property name="CanFocus">True</property>
-                <property name="Type">TextOnly</property>
-                <property name="Label" translatable="yes">Hide this package</property>
-                <property name="UseUnderline">True</property>
-                <signal name="Clicked" handler="OnBTNHideClicked" />
+                <property name="ShadowType">In</property>
+                <child>
+                  <widget class="Gtk.TreeView" id="TREE_Cache">
+                    <property name="MemberName" />
+                    <property name="CanFocus">True</property>
+                    <property name="ShowScrollbars">True</property>
+                  </widget>
+                </child>
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
-                <property name="Expand">False</property>
-                <property name="Fill">False</property>
</packing>
</child>
<child>
-              <widget class="Gtk.Button" id="BTN_UpdateDatabase">
+              <widget class="Gtk.HBox" id="hbox1">
<property name="MemberName" />
-                <property name="CanFocus">True</property>
-                <property name="Type">TextOnly</property>
-                <property name="Label" translatable="yes">Update database</property>
-                <property name="UseUnderline">True</property>
-                <signal name="Clicked" handler="OnBTNUpdateDatabaseClicked" />
+                <property name="Spacing">6</property>
+                <child>
+                  <widget class="Gtk.Button" id="BTN_ClearCache">
+                    <property name="MemberName" />
+                    <property name="CanFocus">True</property>
+                    <property name="Type">TextAndIcon</property>
+                    <property name="Icon">stock:gtk-delete Menu</property>
+                    <property name="Label" translatable="yes">Clear cache</property>
+                    <property name="UseUnderline">True</property>
+                    <signal name="Clicked" handler="OnBTNClearCacheClicked" />
+                  </widget>
+                  <packing>
+                    <property name="Position">0</property>
+                    <property name="AutoSize">True</property>
+                    <property name="Expand">False</property>
+                    <property name="Fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="Gtk.Button" id="BTN_Install">
+                    <property name="MemberName" />
+                    <property name="CanFocus">True</property>
+                    <property name="Type">TextAndIcon</property>
+                    <property name="Icon">resource:frugalmonotools.Pictures.icons.update.png</property>
+                    <property name="Label" translatable="yes">Install</property>
+                    <property name="UseUnderline">True</property>
+                    <signal name="Clicked" handler="OnBTNInstallClicked" />
+                  </widget>
+                  <packing>
+                    <property name="Position">1</property>
+                    <property name="AutoSize">True</property>
+                    <property name="Expand">False</property>
+                    <property name="Fill">False</property>
+                  </packing>
+                </child>
</widget>
<packing>
<property name="Position">1</property>
@@ -579,44 +709,18 @@
<property name="Fill">False</property>
</packing>
</child>
-            <child>
-              <widget class="Gtk.Button" id="BTN_Refresh">
-                <property name="MemberName" />
-                <property name="CanFocus">True</property>
-                <property name="Type">TextOnly</property>
-                <property name="Label" translatable="yes">Refresh list</property>
-                <property name="UseUnderline">True</property>
-                <signal name="Clicked" handler="OnBTNRefreshClicked" />
-              </widget>
-              <packing>
-                <property name="Position">2</property>
-                <property name="AutoSize">True</property>
-                <property name="Expand">False</property>
-                <property name="Fill">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="Gtk.Button" id="BTN_Update">
-                <property name="MemberName" />
-                <property name="CanFocus">True</property>
-                <property name="Type">TextOnly</property>
-                <property name="Label" translatable="yes">Update system</property>
-                <property name="UseUnderline">True</property>
-                <signal name="Clicked" handler="OnBTNUpdateClicked" />
-              </widget>
-              <packing>
-                <property name="Position">3</property>
-                <property name="AutoSize">True</property>
-                <property name="Expand">False</property>
-                <property name="Fill">False</property>
-              </packing>
-            </child>
</widget>
<packing>
-            <property name="Position">2</property>
-            <property name="AutoSize">True</property>
-            <property name="Expand">False</property>
-            <property name="Fill">False</property>
+            <property name="Position">1</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="Gtk.Label" id="label2">
+            <property name="MemberName" />
+            <property name="LabelProp" translatable="yes">Cache</property>
+          </widget>
+          <packing>
+            <property name="type">tab</property>
</packing>
</child>
</widget>
@@ -956,7 +1060,8 @@
<widget class="Gtk.Button" id="BTN_System">
<property name="MemberName" />
<property name="CanFocus">True</property>
-                <property name="Type">TextOnly</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-apply Menu</property>
<property name="Label" translatable="yes">Apply</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBTNSystemClicked" />
@@ -994,7 +1099,8 @@
<widget class="Gtk.Button" id="BTN_Printer">
<property name="MemberName" />
<property name="CanFocus">True</property>
-                <property name="Type">TextOnly</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-print Menu</property>
<property name="Label" translatable="yes">System Configuration Printer</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBTNPrinterClicked" />
@@ -1418,7 +1524,8 @@
<widget class="Gtk.Button" id="BTN_Network">
<property name="MemberName" />
<property name="CanFocus">True</property>
-                <property name="Type">TextOnly</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-apply Menu</property>
<property name="Label" translatable="yes">Apply</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBTNNetworkClicked" />
@@ -1718,7 +1825,8 @@
<widget class="Gtk.Button" id="BTN_LoginManager">
<property name="MemberName" />
<property name="CanFocus">True</property>
-                <property name="Type">TextOnly</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-apply Menu</property>
<property name="Label" translatable="yes">Apply</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBTNLoginManagerClicked" />
@@ -2069,7 +2177,8 @@ irc : irc.freenode.net channel #frugalware</property>
<widget class="Gtk.Button" id="BTN_SaveConf">
<property name="MemberName" />
<property name="CanFocus">True</property>
-                <property name="Type">TextOnly</property>
+                <property name="Type">TextAndIcon</property>
+                <property name="Icon">stock:gtk-apply Menu</property>
<property name="Label" translatable="yes">Apply</property>
<property name="UseUnderline">True</property>
<signal name="Clicked" handler="OnBTNSaveConfClicked" />


More information about the Frugalware-git mailing list