#region License Information /* HeuristicLab * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL) * * This file is part of HeuristicLab. * * HeuristicLab is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * HeuristicLab 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. * * You should have received a copy of the GNU General Public License * along with HeuristicLab. If not, see . */ #endregion using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Text; using System.Xml; using System.Windows.Forms; namespace HeuristicLab.MainForm.WindowsForms { public partial class ViewBase : UserControl, IView { private bool initialized; public ViewBase() { InitializeComponent(); this.initialized = false; this.closeReason = CloseReason.None; } private string myCaption; public string Caption { get { return myCaption; } set { if (InvokeRequired) { Action action = delegate(string s) { this.Caption = s; }; Invoke(action, value); } else { if (value != myCaption) { myCaption = value; OnCaptionChanged(); } } } } public event EventHandler CaptionChanged; protected virtual void OnCaptionChanged() { if (CaptionChanged != null) CaptionChanged(this, new EventArgs()); } public event EventHandler Changed; protected virtual void OnChanged() { if (InvokeRequired) Invoke((MethodInvoker)OnChanged); else if (Changed != null) Changed(this, new EventArgs()); } public virtual void OnClosing(object sender, CancelEventArgs e) { } internal CloseReason closeReason; internal void OnClosingHelper(object sender, FormClosingEventArgs e) { if (this.closeReason != CloseReason.None) this.OnClosing(sender, new FormClosingEventArgs(this.closeReason, e.Cancel)); else this.OnClosing(sender, e); this.closeReason = CloseReason.None; } public virtual void OnClosing(object sender, FormClosingEventArgs e) { } public virtual void OnClosed(object sender, EventArgs e) { } public event EventHandler Initialized; private void ViewBase_Load(object sender, EventArgs e) { if (!this.initialized && !this.DesignMode) { if (this.Initialized != null) this.Initialized(this, new EventArgs()); this.initialized = true; } } } }