# HG changeset patch # User IBBoard # Date 1317484175 -3600 # Node ID 786a3afb92404ac8e91f53c0f0ef0821e8b36fbf # Parent d4e6bfeb1c61f5ca525589ae54510605793830b2 Re #361: Add XML export UI to GTK# * Add missing widget diff -r d4e6bfeb1c61 -r 786a3afb9240 Widgets/TransformXmlWidget.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Widgets/TransformXmlWidget.cs Sat Oct 01 16:49:35 2011 +0100 @@ -0,0 +1,66 @@ +// This file (TransformXmlWidget.cs) is a part of the IBBoard.WarFoundry.GUI.GTK project and is copyright 2011 IBBoard +// +// The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license. +using System; +using System.IO; +using System.Collections.Generic; +using IBBoard.GtkSharp; + +namespace IBBoard.WarFoundry.GUI.GTK +{ + [System.ComponentModel.ToolboxItem(true)] + public partial class TransformXmlWidget : Gtk.Bin + { + public event EventHandler TransformChanged; + + public TransformXmlWidget() + { + this.Build(); + FillXsltList(); + } + + private void FillXsltList() + { + DirectoryInfo dir = new DirectoryInfo(System.IO.Path.Combine(Constants.ExecutablePath, "xsl")); + List files = new List(dir.GetFiles("*.xsl")); + ComboBoxUtils.FillCombo(transformList, files, delegate(FileInfo file) { return file.Name; }); + } + + public bool IsValid + { + get { return !doTransformWidget.Active || ComboBoxUtils.GetSelectedItem(transformList) != null; } + } + + public bool TransformEnabled + { + get { return doTransformWidget.Active; } + } + + public string GetXsltPath() + { + return ComboBoxUtils.GetSelectedItem(transformList).FullName; + } + + protected void OnDoTransformWidgetToggled(object sender, System.EventArgs e) + { + bool enabled = doTransformWidget.Active; + lblTransform.Sensitive = enabled; + transformList.Sensitive = enabled; + FireTransformChanged(); + } + + protected void OnTransformListChanged(object sender, System.EventArgs e) + { + FireTransformChanged(); + } + + private void FireTransformChanged() + { + if (TransformChanged!= null) + { + TransformChanged(this, EventArgs.Empty); + } + } + } +} +