Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono-tools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/gnunit
diff options
context:
space:
mode:
authorGonzalo Paniagua Javier <gonzalo.mono@gmail.com>2005-06-07 08:39:05 +0400
committerGonzalo Paniagua Javier <gonzalo.mono@gmail.com>2005-06-07 08:39:05 +0400
commitd2514f4a0fa56aad7483d75410c15c58e9c1d630 (patch)
treeea74ab4ae2016845624a65cdea3419d72c0c741c /gnunit
parentfc2bbdb2ee428e72aa22386520c4594a2603a698 (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/ChangeLog16
-rw-r--r--gnunit/src/AssemblyStore.cs61
-rw-r--r--gnunit/src/Settings.cs26
-rw-r--r--gnunit/src/main.cs259
-rw-r--r--gnunit/src/nunit-gtk.glade194
-rw-r--r--gnunit/src/nunit-gtk.schema8
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 &gt;&gt;</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>