예제 #1
0
		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Get the possible message targets, i.e. the view(s) we are showing
		/// </summary>
		/// <returns>Message targets</returns>
		/// ------------------------------------------------------------------------------------
		public IxCoreColleague[] GetMessageTargets()
		{
			CheckDisposed();

			// return list of view windows with focused window being the first one
			List<IxCoreColleague> targets = new List<IxCoreColleague>();
			foreach (Control control in m_rgClientViews.Values)
			{
				IxCoreColleague view = control as IxCoreColleague;
				if (view != null && control != null)
				{
					if (control.Focused || control == ActiveView)
						targets.InsertRange(0, view.GetMessageTargets());
					else if (control.Visible || control.ContainsFocus)
						targets.AddRange(view.GetMessageTargets());
				}
			}
			targets.Add(this);
			return targets.ToArray();
		}