diff options
author | Gonzalo Paniagua Javier <gonzalo.mono@gmail.com> | 2005-06-07 08:39:05 +0400 |
---|---|---|
committer | Gonzalo Paniagua Javier <gonzalo.mono@gmail.com> | 2005-06-07 08:39:05 +0400 |
commit | d2514f4a0fa56aad7483d75410c15c58e9c1d630 (patch) | |
tree | ea74ab4ae2016845624a65cdea3419d72c0c741c /gnunit | |
parent | fc2bbdb2ee428e72aa22386520c4594a2603a698 (diff) |
2005-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* src/nunit-gtk.schema:
* src/main.cs:
* src/nunit-gtk.glade:
* src/AssemblyStore.cs:
* src/Settings.cs: added support for categories, display the number of
assertions made, workaround 'Stop' as thread.Abort wasn't doing very
well.
svn path=/trunk/mono-tools/; revision=45560
Diffstat (limited to 'gnunit')
-rw-r--r-- | gnunit/ChangeLog | 16 | ||||
-rw-r--r-- | gnunit/src/AssemblyStore.cs | 61 | ||||
-rw-r--r-- | gnunit/src/Settings.cs | 26 | ||||
-rw-r--r-- | gnunit/src/main.cs | 259 | ||||
-rw-r--r-- | gnunit/src/nunit-gtk.glade | 194 | ||||
-rw-r--r-- | gnunit/src/nunit-gtk.schema | 8 |
6 files changed, 497 insertions, 67 deletions
diff --git a/gnunit/ChangeLog b/gnunit/ChangeLog index b0197cac..bd058376 100644 --- a/gnunit/ChangeLog +++ b/gnunit/ChangeLog @@ -1,9 +1,19 @@ +2005-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * src/nunit-gtk.schema: + * src/main.cs: + * src/nunit-gtk.glade: + * src/AssemblyStore.cs: + * src/Settings.cs: added support for categories, display the number of + assertions made, workaround 'Stop' as thread.Abort wasn't doing very + well. + 2005-05-08 Ben Maurer <bmaurer@ximian.com> * src/Makefile.am, script*.in: use @RUNTIME@ rather than - @bin_dir@/mono. This is a problem for people who have mono-tools - and mono in a different prefix (say you install mono from rpm but - want to hack on monodoc). + @bin_dir@/mono. This is a problem for people who have mono-tools + and mono in a different prefix (say you install mono from rpm but + want to hack on monodoc). 2005-04-23 Mike Kestner <mkestner@novell.com> diff --git a/gnunit/src/AssemblyStore.cs b/gnunit/src/AssemblyStore.cs index afdfdd30..94e67462 100644 --- a/gnunit/src/AssemblyStore.cs +++ b/gnunit/src/AssemblyStore.cs @@ -155,7 +155,20 @@ namespace Mono.NUnit.GUI get { return message; } } } - + + class CategoriesEventArgs : EventArgs { + ICollection categories; + + public CategoriesEventArgs (ICollection categories) + { + this.categories = categories; + } + + public ICollection Categories { + get { return categories; } + } + } + class AssemblyStore : TreeStore, EventListener { string assemblyName; @@ -173,6 +186,7 @@ namespace Mono.NUnit.GUI Queue pending; System.Threading.Thread th; string location; + IFilter filter; Exception exception; static GLib.GType gtype = GLib.GType.Invalid; @@ -205,6 +219,12 @@ namespace Mono.NUnit.GUI return gtype; } } + + public IFilter Filter { + get { return filter; } + set { filter = value; } + } + public string Location { get { return location; } } @@ -213,12 +233,18 @@ namespace Mono.NUnit.GUI get { return runningTest; } } - public bool CancelRequest { - set { - if (runningTest) { - th.Abort (); - } + public bool CancelRequest () + { + if (runningTest) { + // TODO: why the heck does this wreak havoc in the runtime? + // by now, we use the filter to stop running tests, which, + // btw, works perfectly well. + // th.Abort (); + cancelled = true; + return true; } + + return false; } public bool Cancelled { @@ -241,7 +267,6 @@ namespace Mono.NUnit.GUI a = Assembly.Load (assemblyName); location = a.Location; } catch (Exception e) { - Console.WriteLine (e); try { a = Assembly.LoadFrom (assemblyName); location = a.Location; @@ -299,7 +324,7 @@ namespace Mono.NUnit.GUI if (test == null) return; - ntests = test.CountTestCases (); + ntests = test.CountTestCases (filter); runningTest = true; this.listener = listener; th = new System.Threading.Thread (new ThreadStart (InternalRunTest)); @@ -351,7 +376,7 @@ namespace Mono.NUnit.GUI { lastResult = null; try { - lastResult = test.Run (this); + lastResult = test.Run (this, filter); } catch (ThreadAbortException) { Thread.ResetAbort (); cancelled = true; @@ -408,14 +433,18 @@ namespace Mono.NUnit.GUI return parent; } - void AddSuite (TreeIter parent, TestSuite suite) + void AddSuite (TreeIter parent, TestSuite suite, int n) { TreeIter next; foreach (Test t in suite.Tests) { next = AddFixture (parent, t.FullName); - while (GLib.MainContext.Iteration ()); + if ((n % 5) == 0) { + while (GLib.MainContext.Iteration ()); + } + + n++; if (t.IsSuite) - AddSuite (next, (TestSuite) t); + AddSuite (next, (TestSuite) t, n); else if (FixtureAdded != null) FixtureAdded (this, new FixtureAddedEventArgs (++currentTest, totalTests)); @@ -448,16 +477,16 @@ namespace Mono.NUnit.GUI currentTest = 0; totalTests = rootTS.CountTestCases (); - AddSuite (first, rootTS); - OnFinishedLoad (); + AddSuite (first, rootTS, 0); + OnFinishedLoad (CategoryManager.Categories); return false; } - void OnFinishedLoad () + void OnFinishedLoad (ICollection categories) { if (FinishedLoad != null) - FinishedLoad (this, EventArgs.Empty); + FinishedLoad (this, new CategoriesEventArgs (categories)); } void OnFinishedRunning () diff --git a/gnunit/src/Settings.cs b/gnunit/src/Settings.cs index 2b5c1b28..ab6e0053 100644 --- a/gnunit/src/Settings.cs +++ b/gnunit/src/Settings.cs @@ -65,6 +65,26 @@ namespace Mono.NUnit.GUI } } + public static string KnownCategories + { + get { + return (string) client.Get ("/apps/nunitgtk/knowncategories"); + } + set { + client.Set ("/apps/nunitgtk/knowncategories", value); + } + } + + public static event GConf.NotifyEventHandler KnownCategoriesChanged + { + add { + client.AddNotify ("/apps/nunitgtk/knowncategories", value); + } + remove{ + client.RemoveNotify ("/apps/nunitgtk/knowncategories", value); + } + } + public static int Width { get { @@ -120,6 +140,12 @@ namespace Mono.NUnit.GUI return "/apps/nunitgtk/recentassemblies"; } } + public static string KnownCategories + { + get { + return "/apps/nunitgtk/knowncategories"; + } + } public static string Width { get { diff --git a/gnunit/src/main.cs b/gnunit/src/main.cs index 58df3738..ead378d7 100644 --- a/gnunit/src/main.cs +++ b/gnunit/src/main.cs @@ -1,10 +1,11 @@ // -// main.cs: nunit-gtk.exe - a frontend for running NUnit2 test cases. +// main.cs: gnunit.exe - a frontend for running NUnit2 test cases. // // Authors: // Gonzalo Paniagua Javier (gonzalo@ximian.com) // // (C) 2003 Ximian, Inc (http://www.ximian.com) +// Copyright (c) 2005 Novell, Inc (http://www.novell.com) // using System; using System.Collections; @@ -17,12 +18,13 @@ using Gnome; using Gtk; using NUnit.Core; using NUnit.Util; +using Dialog = Gtk.Dialog; namespace Mono.NUnit.GUI { class OverWriteDialog { - [Glade.Widget] Gtk.Dialog overwriteDialog; + [Glade.Widget] Dialog overwriteDialog; [Glade.Widget] Label header; [Glade.Widget] Label message; bool yes; @@ -60,7 +62,7 @@ namespace Mono.NUnit.GUI class ErrorDialog { - [Glade.Widget] Gtk.Dialog errorDialog; + [Glade.Widget] Dialog errorDialog; [Glade.Widget] Label message; [Glade.Widget] HBox detailBox; [Glade.Widget] Button btnDetails; @@ -123,7 +125,172 @@ namespace Mono.NUnit.GUI } } - public class NUnitGUI : Program, EventListener + class CategoryMaster : IFilter { + static Hashtable known_categories; + string [] categories; + bool [] states; + object [] menues; + EventHandler cb; + string [] exclude; + bool uncategorized; + bool all; + IFilter inner_filter; + + static CategoryMaster () + { + known_categories = new Hashtable (CaseInsensitiveHashCodeProvider.DefaultInvariant, + CaseInsensitiveComparer.DefaultInvariant); + + RetrieveKnownCategories (null, null); + Settings.KnownCategoriesChanged += new GConf.NotifyEventHandler (RetrieveKnownCategories); + } + + static void RetrieveKnownCategories (object sender, GConf.NotifyEventArgs args) + { + lock (known_categories) { + string [] known; + try { + known = Settings.KnownCategories.Split (':'); + } catch { + known_categories.Clear (); + return; + } + + foreach (string k in known) { + int n = k.IndexOf ('='); + if (n == -1) + continue; + + known_categories [k.Substring (n)] = (k [n + 1] == '1'); + } + } + } + + public CategoryMaster () + { + cb = new EventHandler (ToggleState); + } + + public CategoryMaster (ICollection categories) : this () + { + SetCategories (categories); + } + + public void SetMenuItemForIndex (MenuItem item, int idx) + { + menues [idx] = item; + } + + public void SetCategories (ICollection categories) + { + Cancel = false; + int n = (categories != null) ? categories.Count + 1 : 1; + this.categories = new string [n]; + states = new bool [n]; + menues = new object [n]; + int idx = 0; + if (n > 1) { + foreach (string s in categories) { + this.categories [idx] = s; + states [idx] = true; //TODO: Default from known_categories + idx++; + } + } + + this.categories [idx] = _("Uncategorized"); + states [idx] = true; + exclude = null; + uncategorized = false; + all = false; + } + + public string [] Categories { + get { return categories; } + } + + public bool [] States { + get { return states; } + } + + public EventHandler Callback { + get { return cb; } + } + + void ToggleState (object sender, EventArgs args) + { + CheckMenuItem item = (CheckMenuItem) sender; + int idx = Array.IndexOf (menues, sender); + if (idx == -1) { + return; + } + + states [idx] = item.Active; + } + + public void PrepareFilters () + { + int length = states.Length; + uncategorized = states [length - 1]; + int nexcludes = 0; + for (int i = 0; i < length - 1; i++) { + if ((uncategorized && !states [i]) || (!uncategorized && states [i])) + nexcludes++; + } + + if (uncategorized && nexcludes == 0) { + all = true; + exclude = null; + return; + } + + if (nexcludes > 0) { + exclude = new string [nexcludes]; + int idx = 0; + for (int i = 0; i < length - 1; i++) { + if (uncategorized && !states [i]) { + exclude [idx] = categories [i]; + idx++; + } else if (!uncategorized && states [i]) { + exclude [idx] = categories [i]; + idx++; + } + } + inner_filter = new CategoryFilter (exclude, uncategorized); + } else { + inner_filter = new CategoryFilter (categories, uncategorized); + } + } + + public bool Cancel; + bool IFilter.Pass (TestSuite suite) + { + if (Cancel) + return false; + + if (all) + return true; + + return inner_filter.Pass (suite); + } + + bool IFilter.Pass (TestCase test) + { + if (Cancel) + return false; + + if (all) + return true; + + return inner_filter.Pass (test); + } + + static string _ (string key) + { + return Catalog.GetString (key); + } + } + + class NUnitGUI : Program, EventListener { static string version; static string title; @@ -143,11 +310,12 @@ namespace Mono.NUnit.GUI [Glade.Widget] ImageMenuItem menuRecent; [Glade.Widget] MenuBar menubar; [Glade.Widget] MenuItem menuSaveAs; - [Glade.Widget] Button btnOpen; - [Glade.Widget] Button btnSaveAs; - [Glade.Widget] Button btnRun; - [Glade.Widget] Button btnExit; - [Glade.Widget] Button btnStop; + [Glade.Widget] ToolButton btnOpen; + [Glade.Widget] ToolButton btnSaveAs; + [Glade.Widget] ToolButton btnRun; + [Glade.Widget] ToolButton btnExit; + [Glade.Widget] ToolButton btnStop; + [Glade.Widget] MenuItem categories_menu; // Notebook [Glade.Widget] TreeView failures; @@ -176,6 +344,7 @@ namespace Mono.NUnit.GUI int finishedTests; int ignoredTests; int errorTests; + int assertions; TextWriter origStdout = Console.Out; TextWriter origStderr = Console.Error; StringWriter stdout = new StringWriter (); @@ -184,9 +353,10 @@ namespace Mono.NUnit.GUI TreeViewColumn nameCol; CellRendererPixbuf pr; CellRendererText tr; - Gtk.Dialog about; + Dialog about; bool quitting; long startTime; + CategoryMaster catman = new CategoryMaster (); static string _ (string key) { @@ -278,12 +448,16 @@ namespace Mono.NUnit.GUI store.Dispose (); } + if (catman != null) + catman.SetCategories (null); + stdoutTV.Buffer.Clear (); stderrTV.Buffer.Clear (); foreach (Label l in nbLabels) SetColorLabel (l, false); store = new AssemblyStore (name); + store.Filter = catman; ntests = 0; store.FixtureLoadError += new FixtureLoadErrorHandler (OnFixtureLoadError); store.FixtureAdded += new FixtureAddedEventHandler (OnFixtureAdded); @@ -392,7 +566,7 @@ namespace Mono.NUnit.GUI void OnQuitActivate (object sender, EventArgs args) { if (store != null) - store.CancelRequest = true; + store.CancelRequest (); quitting = true; Settings.Width = window.Allocation.Width; @@ -469,8 +643,10 @@ namespace Mono.NUnit.GUI void OnStopActivate (object sender, EventArgs args) { - if (store != null && store.Running) - store.CancelRequest = true; + if (store != null) { + store.CancelRequest (); + catman.Cancel = true; + } } void OnSaveAs (object sender, EventArgs args) @@ -564,6 +740,7 @@ namespace Mono.NUnit.GUI frameProgress.Fraction = ++finishedTests / (double) ntests; frameProgress.Text = String.Format ("{0}/{1}", finishedTests, ntests); + assertions += result.AssertCount; if (result.Executed == false) { AddIgnored (result.Test.FullName, result.Test.IgnoreReason); } else if (result.IsFailure) { @@ -589,8 +766,8 @@ namespace Mono.NUnit.GUI void UpdateRunStatus () { - runStatus.Markup = String.Format (_("Tests: {0} Ignored: {1} Failures: {2}"), - finishedTests, ignoredTests, errorTests); + runStatus.Markup = String.Format (_("Tests (assertions): {0} ({3}) Ignored: {1} Failures: {2}"), + finishedTests, ignoredTests, errorTests, assertions); } void AddIgnored (string name, string reason) @@ -758,6 +935,7 @@ namespace Mono.NUnit.GUI errorTests = 0; ignoredTests = 0; + assertions = 0; ntests = -1; finishedTests = 0; @@ -765,6 +943,7 @@ namespace Mono.NUnit.GUI appbar.SetStatus (_("Running tests...")); SetStringWriters (); + catman.PrepareFilters (); ToggleMenues (false); startTime = DateTime.Now.Ticks; ClockUpdater (this, EventArgs.Empty); @@ -796,18 +975,43 @@ namespace Mono.NUnit.GUI if (quitting) return; + catman.Cancel = false; + ClockUpdater (this, EventArgs.Empty); ToggleMenues (store.LastResult != null); SetOriginalWriters (); - if (!store.Cancelled) { + UpdateRunStatus (); + frameProgress.Fraction = 1.0; + frameProgress.Text = String.Format ("{0}/{0}", finishedTests); + finishedTests = ntests; + if (store.Cancelled) { + appbar.SetStatus (_("Cancelled on user request.")); + frameLabel.Markup = String.Format ("<span foreground=\"red\">Cancelled: {0}</span>", + frameLabel.Text); + } else { appbar.SetStatus (""); - stdout.GetStringBuilder ().Length = 0; - stderr.GetStringBuilder ().Length = 0; - return; + } + stdout.GetStringBuilder ().Length = 0; + stderr.GetStringBuilder ().Length = 0; + } + + void BuildCategoriesMenu () + { + string [] categories = catman.Categories; + bool [] states = catman.States; + Menu menu = new Menu (); + CheckMenuItem item; + int idx = 0; + foreach (string s in categories) { + item = new CheckMenuItem (s); + catman.SetMenuItemForIndex (item, idx); + item.Toggled += catman.Callback; + item.Active = states [idx]; + menu.Append (item); + idx++; } - appbar.SetStatus (_("Cancelled on user request.")); - frameLabel.Markup = String.Format ("<span foreground=\"red\">Cancelled: {0}</span>", - frameLabel.Text); + menu.ShowAll (); + categories_menu.Submenu = menu; } void OnFinishedLoad (object sender, EventArgs args) @@ -815,6 +1019,8 @@ namespace Mono.NUnit.GUI if (store.Cancelled) // Application finished while loading return; + catman.SetCategories (((CategoriesEventArgs) args).Categories); + BuildCategoriesMenu (); appbar.Progress.Fraction = 0.0; appbar.SetStatus (String.Format (_("{0} tests loaded."), ntests)); btnOpen.Sensitive = true; @@ -841,11 +1047,11 @@ namespace Mono.NUnit.GUI public void UnhandledException (object sender, UnhandledExceptionEventArgs args) { if (store != null) - store.CancelRequest = true; + store.CancelRequest (); try { - Error (_("Unhandled Exception"), _("There has been an unhandled exception.\n") + - _("The program will terminate now."), args.ExceptionObject.ToString (), true); + Error (_("Unhandled Exception"), _("There has been an unhandled exception.\n") + + _("The program will terminate now."), args.ExceptionObject.ToString (), true); } catch (Exception e) { Console.WriteLine (e); } @@ -857,9 +1063,6 @@ namespace Mono.NUnit.GUI static void Main (string [] args) { Catalog.InitCatalog (); -// LogFunc logFunc = new LogFunc (Log.PrintTraceLogFunction); -// Log.SetLogHandler ("GLib-GObject", LogLevelFlags.All, logFunc); -// Log.SetLogHandler ("Gtk", LogLevelFlags.All, logFunc); NUnitGUI gui = new NUnitGUI (args); AppDomain current = AppDomain.CurrentDomain; current.UnhandledException += new UnhandledExceptionEventHandler (gui.UnhandledException); diff --git a/gnunit/src/nunit-gtk.glade b/gnunit/src/nunit-gtk.glade index 043a23d2..69122b59 100644 --- a/gnunit/src/nunit-gtk.glade +++ b/gnunit/src/nunit-gtk.glade @@ -13,6 +13,12 @@ <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> + <property name="decorated">True</property> + <property name="skip_taskbar_hint">False</property> + <property name="skip_pager_hint">False</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> + <property name="focus_on_map">True</property> <property name="enable_layout_config">True</property> <signal name="delete_event" handler="OnWindowDelete" last_modification_time="Mon, 31 Mar 2003 03:33:15 GMT"/> @@ -55,7 +61,7 @@ </child> <child> - <widget class="GtkMenuItem" id="separator1"> + <widget class="GtkSeparatorMenuItem" id="separator1"> <property name="visible">True</property> </widget> </child> @@ -67,7 +73,7 @@ <property name="use_underline">True</property> <child internal-child="image"> - <widget class="GtkImage" id="image3"> + <widget class="GtkImage" id="image10"> <property name="visible">True</property> <property name="stock">gnome-stock-text-bulleted-list</property> <property name="icon_size">1</property> @@ -88,7 +94,7 @@ <signal name="activate" handler="OnClearRecent" last_modification_time="Wed, 02 Apr 2003 01:49:22 GMT"/> <child internal-child="image"> - <widget class="GtkImage" id="image4"> + <widget class="GtkImage" id="image11"> <property name="visible">True</property> <property name="stock">gtk-remove</property> <property name="icon_size">1</property> @@ -102,7 +108,7 @@ </child> <child> - <widget class="GtkMenuItem" id="separator4"> + <widget class="GtkSeparatorMenuItem" id="separator4"> <property name="visible">True</property> </widget> </child> @@ -136,7 +142,7 @@ </child> <child> - <widget class="GtkMenuItem" id="separator3"> + <widget class="GtkSeparatorMenuItem" id="separator3"> <property name="visible">True</property> </widget> </child> @@ -154,6 +160,15 @@ </child> <child> + <widget class="GtkMenuItem" id="categories_menu"> + <property name="visible">True</property> + <property name="tooltip" translatable="yes">Enable/disable by category</property> + <property name="label" translatable="yes">_Categories</property> + <property name="use_underline">True</property> + </widget> + </child> + + <child> <widget class="GtkMenuItem" id="help1"> <property name="visible">True</property> <property name="stock_item">GNOMEUIINFO_MENU_HELP_TREE</property> @@ -196,67 +211,121 @@ <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property> <property name="toolbar_style">GTK_TOOLBAR_BOTH</property> <property name="tooltips">True</property> + <property name="show_arrow">True</property> <child> - <widget class="button" id="btnOpen"> + <widget class="GtkToolButton" id="btnOpen"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Open assembly</property> <property name="label" translatable="yes">Open</property> <property name="use_underline">True</property> - <property name="stock_pixmap">gtk-open</property> + <property name="stock_id">gtk-open</property> + <property name="visible_horizontal">True</property> + <property name="visible_vertical">True</property> + <property name="is_important">False</property> <signal name="clicked" handler="OnOpenActivate" last_modification_time="Mon, 31 Mar 2003 04:08:27 GMT"/> </widget> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> </child> <child> - <widget class="button" id="btnSaveAs"> + <widget class="GtkToolButton" id="btnSaveAs"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Save results to a XML file</property> <property name="label" translatable="yes">Save As</property> <property name="use_underline">True</property> - <property name="stock_pixmap">gtk-save-as</property> + <property name="stock_id">gtk-save-as</property> + <property name="visible_horizontal">True</property> + <property name="visible_vertical">True</property> + <property name="is_important">False</property> <signal name="clicked" handler="OnSaveAs" last_modification_time="Tue, 15 Apr 2003 14:59:35 GMT"/> </widget> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> </child> <child> - <widget class="button" id="btnRun"> + <widget class="GtkSeparatorToolItem" id="separatortoolitem1"> + <property name="visible">True</property> + <property name="draw">True</property> + <property name="visible_horizontal">True</property> + <property name="visible_vertical">True</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="homogeneous">False</property> + </packing> + </child> + + <child> + <widget class="GtkToolButton" id="btnRun"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Run selected test fixture(s)</property> <property name="label" translatable="yes">Run</property> <property name="use_underline">True</property> - <property name="stock_pixmap">gtk-execute</property> - <property name="new_group">True</property> + <property name="stock_id">gtk-execute</property> + <property name="visible_horizontal">True</property> + <property name="visible_vertical">True</property> + <property name="is_important">False</property> <signal name="clicked" handler="OnRunActivate" last_modification_time="Mon, 31 Mar 2003 04:08:40 GMT"/> </widget> <packing> - <property name="new_group">True</property> + <property name="expand">False</property> + <property name="homogeneous">True</property> </packing> </child> <child> - <widget class="button" id="btnStop"> + <widget class="GtkToolButton" id="btnStop"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Cancel</property> <property name="label" translatable="yes">Stop</property> <property name="use_underline">True</property> - <property name="stock_pixmap">gtk-stop</property> + <property name="stock_id">gtk-stop</property> + <property name="visible_horizontal">True</property> + <property name="visible_vertical">True</property> + <property name="is_important">False</property> <signal name="clicked" handler="OnStopActivate" last_modification_time="Thu, 03 Apr 2003 03:38:43 GMT"/> </widget> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> </child> <child> - <widget class="button" id="btnExit"> + <widget class="GtkSeparatorToolItem" id="separatortoolitem2"> + <property name="visible">True</property> + <property name="draw">True</property> + <property name="visible_horizontal">True</property> + <property name="visible_vertical">True</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="homogeneous">False</property> + </packing> + </child> + + <child> + <widget class="GtkToolButton" id="btnExit"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Exit program</property> <property name="label" translatable="yes">Quit</property> <property name="use_underline">True</property> - <property name="stock_pixmap">gtk-quit</property> - <property name="new_group">True</property> + <property name="stock_id">gtk-quit</property> + <property name="visible_horizontal">True</property> + <property name="visible_vertical">True</property> + <property name="is_important">False</property> <signal name="clicked" handler="OnExitActivate" last_modification_time="Mon, 31 Mar 2003 04:08:49 GMT"/> </widget> <packing> - <property name="new_group">True</property> + <property name="expand">False</property> + <property name="homogeneous">True</property> </packing> </child> </widget> @@ -305,6 +374,9 @@ <property name="rules_hint">False</property> <property name="reorderable">False</property> <property name="enable_search">True</property> + <property name="fixed_height_mode">False</property> + <property name="hover_selection">False</property> + <property name="hover_expand">False</property> <signal name="row_activated" handler="OnTestActivated" last_modification_time="Sun, 13 Apr 2003 13:31:45 GMT"/> </widget> <packing> @@ -364,6 +436,10 @@ <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> @@ -385,6 +461,10 @@ <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> @@ -406,8 +486,9 @@ <property name="visible">True</property> <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property> <property name="fraction">0</property> - <property name="pulse_step">0.1</property> + <property name="pulse_step">0.10000000149</property> <property name="text" translatable="yes"></property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> </widget> <packing> <property name="padding">0</property> @@ -429,6 +510,10 @@ <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> @@ -450,6 +535,10 @@ <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> @@ -473,6 +562,10 @@ <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="type">label_item</property> @@ -515,6 +608,9 @@ <property name="rules_hint">False</property> <property name="reorderable">False</property> <property name="enable_search">True</property> + <property name="fixed_height_mode">False</property> + <property name="hover_selection">False</property> + <property name="hover_expand">False</property> <signal name="row_activated" handler="OnRowActivated" last_modification_time="Tue, 01 Apr 2003 05:50:26 GMT"/> </widget> </child> @@ -538,6 +634,10 @@ <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> @@ -561,6 +661,9 @@ <property name="rules_hint">False</property> <property name="reorderable">False</property> <property name="enable_search">True</property> + <property name="fixed_height_mode">False</property> + <property name="hover_selection">False</property> + <property name="hover_expand">False</property> <signal name="row_activated" handler="OnRowActivated" last_modification_time="Tue, 01 Apr 2003 05:50:47 GMT"/> </widget> </child> @@ -584,6 +687,10 @@ <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> @@ -604,6 +711,8 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">False</property> + <property name="overwrite">False</property> + <property name="accepts_tab">True</property> <property name="justification">GTK_JUSTIFY_LEFT</property> <property name="wrap_mode">GTK_WRAP_NONE</property> <property name="cursor_visible">False</property> @@ -636,6 +745,10 @@ <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> @@ -656,6 +769,8 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">False</property> + <property name="overwrite">False</property> + <property name="accepts_tab">True</property> <property name="justification">GTK_JUSTIFY_LEFT</property> <property name="wrap_mode">GTK_WRAP_NONE</property> <property name="cursor_visible">False</property> @@ -688,6 +803,10 @@ <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="type">tab</property> @@ -738,6 +857,12 @@ <property name="modal">True</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> + <property name="decorated">True</property> + <property name="skip_taskbar_hint">False</property> + <property name="skip_pager_hint">False</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> + <property name="focus_on_map">True</property> <property name="has_separator">True</property> <child internal-child="vbox"> @@ -759,6 +884,7 @@ <property name="label">gtk-ok</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> <property name="response_id">-5</property> </widget> </child> @@ -771,6 +897,7 @@ <property name="label">gtk-quit</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> <property name="response_id">0</property> </widget> </child> @@ -825,6 +952,10 @@ <property name="yalign">0.5</property> <property name="xpad">10</property> <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> @@ -846,6 +977,7 @@ <property name="label" translatable="yes">Show details >></property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> <signal name="clicked" handler="OnDetailsClicked" last_modification_time="Thu, 03 Apr 2003 17:08:29 GMT"/> </widget> <packing> @@ -896,6 +1028,8 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">False</property> + <property name="overwrite">False</property> + <property name="accepts_tab">True</property> <property name="justification">GTK_JUSTIFY_LEFT</property> <property name="wrap_mode">GTK_WRAP_NONE</property> <property name="cursor_visible">False</property> @@ -924,6 +1058,10 @@ <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="type">label_item</property> @@ -963,6 +1101,12 @@ <property name="modal">True</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> + <property name="decorated">True</property> + <property name="skip_taskbar_hint">False</property> + <property name="skip_pager_hint">False</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> + <property name="focus_on_map">True</property> <property name="has_separator">True</property> <child internal-child="vbox"> @@ -986,6 +1130,7 @@ <property name="label">gtk-no</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> <property name="response_id">-9</property> </widget> </child> @@ -999,6 +1144,7 @@ <property name="label">gtk-yes</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> <property name="response_id">-8</property> </widget> </child> @@ -1053,6 +1199,10 @@ <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> @@ -1074,6 +1224,10 @@ <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> <packing> <property name="padding">0</property> diff --git a/gnunit/src/nunit-gtk.schema b/gnunit/src/nunit-gtk.schema index 2633fe27..20dd02fb 100644 --- a/gnunit/src/nunit-gtk.schema +++ b/gnunit/src/nunit-gtk.schema @@ -32,5 +32,13 @@ <locale name="C"></locale> <default/> </schema> + <schema> + <key>/schemas/apps/nunitgtk/knowncategories</key> + <applyto>/apps/nunitgtk/knowncategories</applyto> + <owner>nunitgtk</owner> + <type>string</type> + <locale name="C"></locale> + <default/> + </schema> </schemalist> </gconfschemafile> |