#region ================== Copyright (c) 2007 Pascal vd Heiden /* * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com * This program is released under GNU General Public License * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * */ #endregion #region ================== Namespaces using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Text; using System.Windows.Forms; #endregion namespace CodeImp.DoomBuilder.Editing { /// /// This registers an EditMode derived class as a known editing mode within Doom Builder. /// Allows automatic binding with an action and a button on the toolbar/menu. /// [AttributeUsage(AttributeTargets.Class, Inherited = true, AllowMultiple = true)] public class EditModeAttribute : Attribute { #region ================== Variables // Properties private string switchaction; private string buttonimage; private string buttondesc; private int buttonorder; private bool configspecific; private bool isvolatile; private string displayname; #endregion #region ================== Properties /// /// Sets the action name (as defined in the Actions.cfg resource) to /// switch to this mode by using a shortcut key, toolbar button or menu item. /// public string SwitchAction { get { return switchaction; } set { switchaction = value; } } /// /// Image resource name of the embedded resource that will be used for the /// toolbar button and menu item. Leave this property out or set to null to /// display no button for this mode. /// public string ButtonImage { get { return buttonimage; } set { buttonimage = value; } } /// /// Toolbar button and menu item description of this mode. /// public string ButtonDesc { get { return buttondesc; } set { buttondesc = value; } } /// /// Sorting number for the order of buttons on the toolbar. Buttons with /// lower values will be more to the left than buttons with higher values. /// public int ButtonOrder { get { return buttonorder; } set { buttonorder = value; } } /// /// When set to true, this mode is only accessible from /// the toolbar/menu when the game configuration specifies this mode by /// class name in the "additionalmodes" structure. /// public bool ConfigSpecific { get { return configspecific; } set { configspecific = value; } } /// /// When set to true, this mode is cancelled when core actions like /// undo and save are performed. The editing mode should then return to /// a non-volatile mode. /// public bool Volatile { get { return isvolatile; } set { isvolatile = value; } } /// /// Name to display on the button information bar when no specific element information is displayed. /// public string DisplayName { get { return displayname; } set { displayname = value; } } #endregion #region ================== Constructor / Disposer /// /// This registers an EditMode derived class as a known editing mode within Doom Builder. /// Allows automatic binding with an action and a button on the toolbar/menu. /// public EditModeAttribute() { // Initialize } #endregion #region ================== Methods #endregion } }