示例#1
0
文件: ScreenPanel.cs 项目: mryp/kkde
        public void WriteXml(XmlTextWriter xw)
        {
            //背景を描き出す
            writeXmlBackground(xw);

            for (int i = 0; i < m_controlList.Count; i++)               //先頭(一番後ろにあるモノ)から順番に
            {
                ScreenControl sc = m_controlList[i];
                sc.WriteXml(xw);
            }
        }
示例#2
0
        /// <summary>
        /// スクリーンコントロールを新しく作成する
        /// </summary>
        /// <param name="param">パラメーター</param>
        /// <returns>コントロール</returns>
        private ScreenControl createScreenControl(BaseType param)
        {
            Point controlPos = m_bgPanel.PointToClient(Cursor.Position);

            param.Location = controlPos;

            ScreenControl control = new ScreenControl(m_bgPanel);

            control.Param    = param;
            control.Image    = global::kkde.Properties.Resources.ImgViewBG;
            control.Location = param.Location;
            control.Size     = control.Image.Size;

            return(control);
        }
示例#3
0
文件: ScreenPanel.cs 项目: mryp/kkde
        /// <summary>
        /// 指定した位置にあるコントロールを取得する
        /// </summary>
        /// <param name="p"></param>
        /// <returns></returns>
        private ScreenControl getControlFormPos(Point p)
        {
            //一番上(最後に追加したモノ)が先に見つかるように後ろから検索を行う
            for (int i = m_controlList.Count - 1; i >= 0; i--)
            {
                ScreenControl sc  = m_controlList[i];
                Rectangle     rec = new Rectangle(sc.Location, sc.Size);
                if (rec.Contains(p))
                {
                    return(sc);
                }
            }

            return(null);
        }
示例#4
0
        /// <summary>
        /// ドロップしたとき
        /// </summary>
        private void bgPanel_DragDrop(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(typeof(string)))
            {
                string classText = (string)e.Data.GetData(typeof(string));
                if (classText.StartsWith("kkde") == false)
                {
                    //コントロールクラスではないので何もしない
                    return;
                }

                Debug.WriteLine("drop classText=" + classText);
                Type     type     = Type.GetType(classText);
                BaseType instance = (BaseType)Activator.CreateInstance(type);

                ScreenControl control = createScreenControl(instance);
                m_bgPanel.AddControl(control);
            }
        }
示例#5
0
文件: ScreenPanel.cs 项目: mryp/kkde
 /// <summary>
 /// コントロールにフォーカスを設定する
 /// </summary>
 /// <param name="control">フォーカスを設定するコントロール</param>
 private void setForcusToControl(ScreenControl control)
 {
     foreach (ScreenControl sc in m_controlList)
     {
         //全コントロールをフォーカス無しにする
         sc.IsFocus = false;
     }
     if (control != null)
     {
         Debug.WriteLine("set focus!");
         m_activeControl         = (ScreenControl)control;
         m_activeControl.IsFocus = true;
     }
     else
     {
         m_activeControl = null;
         GlobalStatus.FormManager.ScreenProperty.SetProperty(this);
     }
 }
示例#6
0
文件: ScreenPanel.cs 项目: mryp/kkde
 /// <summary>
 /// マウスボタンを押したとき
 /// </summary>
 private void ScreenPanel_MouseDown(object sender, MouseEventArgs e)
 {
     Debug.WriteLine("ScreenPanel_MouseDown");
     if (e.Button == MouseButtons.Left)
     {
         //ボタンを押した位置のノードを選択状態にする
         ScreenControl sc = getControlFormPos(e.Location);
         if (sc == null)
         {
             m_moveControlPoint = Point.Empty;
         }
         else
         {
             m_moveControlPoint = new Point(e.Location.X - sc.Location.X, e.Location.Y - sc.Location.Y);
         }
         setForcusToControl(sc);
     }
     else
     {
         m_moveControlPoint = Point.Empty;
     }
 }
示例#7
0
文件: ScreenPanel.cs 项目: mryp/kkde
 /// <summary>
 /// コントロールを削除する
 /// </summary>
 /// <param name="control"></param>
 public void RemoveControl(ScreenControl control)
 {
     m_controlList.Remove(control);
 }
示例#8
0
文件: ScreenPanel.cs 项目: mryp/kkde
 /// <summary>
 /// コントロールを追加する
 /// </summary>
 /// <param name="control"></param>
 public void AddControl(ScreenControl control)
 {
     m_controlList.Add(control);
     setForcusToControl(control);
     this.Invalidate();
 }