コード例 #1
0
 public override void OnKeyUp(DKey key, DModifiers modifiers)
 {
     foreach (Component component in subComponents)
     {
         if (component.focused)
         {
             component.OnKeyUp(key, modifiers);
         }
     }
 }
コード例 #2
0
        internal static void DWindowOnKeyDown(object sender, KeyboardKeyEventArgs e)
        {
            DKey       key       = (DKey)e.Key;
            DModifiers modifiers = new DModifiers(e.Shift, e.Control, e.Alt);

            if (!e.IsRepeat)
            {
                rootCanvas.OnKeyPressed(key, modifiers);
                OnKeyPress?.Invoke(key, modifiers);
            }
            rootCanvas.OnKeyDown(key, modifiers);

            OnKeyDown?.Invoke(key, modifiers);
        }
コード例 #3
0
        /// <summary>
        /// 字典参数转泛型列表
        /// </summary>
        /// <param name="InputDict">字典参数列表</param>
        /// <param name="Key">关键字段</param>
        public static List <T> Dictionary2ListT(Dictionary <string, string> InputDict, string Key = "ID")
        {
            List <T>      reVal              = new List <T>();
            T             ModelT             = new T();
            Type          type               = typeof(T);
            List <string> PropertyNameString = type.GetPropertyNameList();
            List <string> KeyList            = new List <string>();

            #region 分拆关键字段
            if (InputDict.ContainsKey(Key))
            {
                foreach (string DKey in InputDict.Keys)
                {
                    if (DKey.RemoveStartChar("@") == Key)
                    {
                        KeyList = InputDict[DKey].SplitString(",").ToList();
                    }
                }
            }
            else
            {
                foreach (string DKey in InputDict.Keys)
                {
                    if (!InputDict[DKey].IsNullOrEmpty())
                    {
                        KeyList = InputDict[DKey].SplitString(",").ToList();
                    }
                }
            }
            #endregion 分拆关键字段

            #region 如果是ID则特殊处理
            if (Key == "ID")
            {
                List <string> TKeyList = new List <string>();
                foreach (string TKey in KeyList)
                {
                    if (TKey.Length != 36)
                    {
                        TKeyList.Add(BaseTool.NewID);
                    }
                    else
                    {
                        TKeyList.Add(TKey);
                    }
                }
                KeyList = TKeyList;
            }
            #endregion 如果是ID 则特殊处理

            #region 创建泛型对象
            if (KeyList.Count > 0)
            {
                Dictionary <string, List <string> > TDict = new Dictionary <string, List <string> >();
                TDict.Add(Key, KeyList);
                #region 解析出各种属性的列表
                foreach (string DKey in InputDict.Keys)
                {
                    if (DKey.RemoveStartChar("@").In(PropertyNameString) && DKey.RemoveStartChar("@") != Key)
                    {
                        List <string> DataList = InputDict[DKey].SplitString(",").ToList();
                        if (DataList.Count < KeyList.Count)
                        {
                            for (int i = DataList.Count; i < KeyList.Count; i++)
                            {
                                DataList.Add("");
                            }
                        }
                        TDict.Add(DKey.RemoveStartChar("@"), DataList);
                    }
                }
                #endregion 解析出各种属性的列表

                #region 由属性创建对象并推入列表
                for (int Count = 0; Count < KeyList.Count; Count++)
                {
                    ModelT = new T();
                    foreach (string DTKey in TDict.Keys)
                    {
                        ModelT.SetObjectPropertyValue(DTKey, TDict[DTKey][Count]);
                    }
                    reVal.Add(ModelT);
                }
                #endregion 由属性创建对象并推入列表
            }
            #endregion 创建泛型对象

            return(reVal);
        }
コード例 #4
0
ファイル: DViewer.cs プロジェクト: djpnewton/ddraw
 protected void DoKeyUp(DKey k)
 {
     if (KeyUp != null)
         KeyUp(this, k);
 }
コード例 #5
0
ファイル: DViewer.cs プロジェクト: djpnewton/ddraw
 protected void DoKeyDown(DKey k)
 {
     if (KeyDown != null)
         KeyDown(this, k);
 }
コード例 #6
0
 public virtual void OnKeyPressed(DKey key, DModifiers modifiers)
 {
 }
コード例 #7
0
 public virtual void OnKeyUp(DKey key, DModifiers modifiers)
 {
 }
コード例 #8
0
ファイル: DHsm.cs プロジェクト: djpnewton/ddraw
 public QKeyEvent(int qSignal, DTkViewer dv, DKey key)
     : base(qSignal, dv)
 {
     this.key = key;
 }
コード例 #9
0
ファイル: DHsm.cs プロジェクト: djpnewton/ddraw
 void dv_KeyUp(DTkViewer dv, DKey k)
 {
     Dispatch(new QKeyEvent((int)DHsmSignals.KeyUp, dv, k));
 }
コード例 #10
0
ファイル: DHsm.cs プロジェクト: djpnewton/ddraw
 void DoTextEditKeyUp(DTkViewer dv, DKey k)
 {
     textEditKey = k;
 }
コード例 #11
0
ファイル: DHsm.cs プロジェクト: djpnewton/ddraw
 void DoTextEditKeyDown(DTkViewer dv, DKey k)
 {
     textEditKey = k;
 }
コード例 #12
0
ファイル: DHsm.cs プロジェクト: djpnewton/ddraw
 QState DoTextEdit(IQEvent qevent)
 {
     switch (qevent.QSignal)
     {
         case (int)QSignals.Entry:
             // unmouseover figure
             currentFigure.MouseOver = false;
             // reset textEditKey
             textEditKey = new DKey();
             // reset textEditMouseDown
             textEditMouseDown = false;
             // start undo record
             if (!undoRedoArea.IsCommandStarted) // can be started from other means
                 undoRedoArea.Start(textEditName);
             // add TextEditFigure
             Figure tf = currentFigure;
             currentFigure = new TextEditFigure(tf, (ITextable)tf);
             figureHandler.Insert(currentFigure, tf);
             figureHandler.Remove(tf);
             // update view
             figureHandler.ClearSelected();
             viewerHandler.Update();
             return null;
         case (int)QSignals.Exit:
             // replace text edit figure with the textfigure
             if (currentFigure is TextEditFigure)
             {
                 TextEditFigure tef = (TextEditFigure)currentFigure;
                 if (tef.HasText || !(tef.Figure is TextFigure))
                     figureHandler.Insert(tef.Figure, currentFigure);
                 figureHandler.Remove(currentFigure);
                 // nullify currentfigure
                 currentFigure = null;
             }
             // record text edit to undo manager
             undoRedoArea.Commit();
             return null;
         case (int)DHsmSignals.MouseDown:
             DoTextEditMouseDown(((QMouseEvent)qevent).Dv, ((QMouseEvent)qevent).Button, ((QMouseEvent)qevent).Pt);
             return null;
         case (int)DHsmSignals.MouseMove:
             DoTextEditMouseMove(((QMouseEvent)qevent).Dv, ((QMouseEvent)qevent).Pt);
             return null;
         case (int)DHsmSignals.MouseUp:
             DoTextEditMouseUp(((QMouseEvent)qevent).Dv, ((QMouseEvent)qevent).Button, ((QMouseEvent)qevent).Pt);
             return null;
         case (int)DHsmSignals.DoubleClick:
             DoTextEditDoubleClick(((QMouseEvent)qevent).Dv, ((QMouseEvent)qevent).Button, ((QMouseEvent)qevent).Pt);
             return null;
         case (int)DHsmSignals.KeyDown:
             DoTextEditKeyDown(((QKeyEvent)qevent).Dv, ((QKeyEvent)qevent).Key);
             return null;
         case (int)DHsmSignals.KeyPress:
             DoTextEditKeyPress(((QKeyPressEvent)qevent).Dv, ((QKeyPressEvent)qevent).Key);
             return null;
         case (int)DHsmSignals.KeyUp:
             DoTextEditKeyUp(((QKeyEvent)qevent).Dv, ((QKeyEvent)qevent).Key);
             return null;
         case (int)DHsmSignals.GCutText:
             string text = ((TextEditFigure)currentFigure).Cut();
             if (TextCut != null)
                 TextCut(null, text);
             return null;
         case (int)DHsmSignals.GCopyText:
             string text2 = ((TextEditFigure)currentFigure).Copy();
             if (TextCopy != null)
                 TextCopy(null, text2);
             return null;
         case (int)DHsmSignals.GPasteText:
             ((TextEditFigure)currentFigure).Paste(((QGPasteTextEvent)qevent).Text);
             return null;
         case (int)DHsmSignals.GCheckState:
             TransitionTo(Select);
             return null;
     }
     return this.Main;
 }
コード例 #13
0
ファイル: DHandlers.cs プロジェクト: djpnewton/ddraw
 void dv_KeyUp(DTkViewer dv, DKey k)
 {
     if (KeyUp != null)
         KeyUp(dv, k);
 }
コード例 #14
0
ファイル: DHandlers.cs プロジェクト: djpnewton/ddraw
 void dv_KeyDown(DTkViewer dv, DKey k)
 {
     if (KeyDown != null)
         KeyDown(dv, k);
 }