using System; using System.Windows.Forms; using CodeImp.DoomBuilder.Actions; namespace CodeImp.DoomBuilder.BuilderModes { public partial class DrawGridOptionsPanel : UserControl { public event EventHandler OnValueChanged; public event EventHandler OnGridLockChanged; private bool blockEvents; private readonly string help; private readonly string gridlockhelp; public bool Triangulate { get { return triangulate.Checked; } set { blockEvents = true; triangulate.Checked = value; blockEvents = false; } } public bool LockToGrid { get { return gridlock.Checked; } set { blockEvents = true; gridlock.Checked = value; blockEvents = false; } } public int HorizontalSlices { get { return (int)slicesH.Value; } set { blockEvents = true; slicesH.Value = value; blockEvents = false; } } public int VerticalSlices { get { return (int)slicesV.Value; } set { blockEvents = true; slicesV.Value = value; blockEvents = false; } } public DrawGridOptionsPanel() { InitializeComponent(); //set hints help = HintsManager.GetRtfString("Use " + Actions.Action.GetShortcutKeyDesc("buildermodes_increasebevel") + " and " + Actions.Action.GetShortcutKeyDesc("buildermodes_decreasebevel") + " to change the number of horizontal slices
" + "Use " + Actions.Action.GetShortcutKeyDesc("buildermodes_increasesubdivlevel") + " and " + Actions.Action.GetShortcutKeyDesc("buildermodes_decreasesubdivlevel") + " to change the number of vertical slices"); gridlockhelp = HintsManager.GetRtfString("Use " + Actions.Action.GetShortcutKeyDesc("builder_griddec") + " and " + Actions.Action.GetShortcutKeyDesc("builder_gridinc") + " to change grid size."); hints.SelectedRtf = help; } private void ValueChanged(object sender, EventArgs e) { if(blockEvents) return; if(OnValueChanged != null) OnValueChanged(this, EventArgs.Empty); } private void gridlock_CheckedChanged(object sender, EventArgs e) { slicesH.Enabled = !gridlock.Checked; slicesV.Enabled = !gridlock.Checked; hints.Clear(); hints.SelectedRtf = (gridlock.Checked ? gridlockhelp : help); if(blockEvents) return; if(OnGridLockChanged != null) OnGridLockChanged(this, EventArgs.Empty); } } }