Ejemplo n.º 1
0
 public SendKeyEventArgs(IKeyboardHost target, bool sendDown, bool sendUp, KeyName keyName)
     : base(target)
 {
     SendDown = sendDown;
     SendUp   = sendUp;
     KeyName  = keyName;
 }
        internal override void AssertValid(IKeyboardHost host)
        {
            base.AssertValid(host);

            KeyboardValidationException.Assert(Action != null, "Action must be specified");
            KeyboardValidationException.Assert(host.GetAction(Action) != null, "Action must be a valid action name: {0}", Action);
        }
 internal CanvasLayoutContext(IKeyboardHost host, Canvas canvas, KeyboardLayout layout, double totalWidth, double totalHeight, double keySize, double fontSizeMultiplier)
     : base(layout, totalWidth, totalHeight, keySize)
 {
     _host               = host;
     _canvas             = canvas;
     _fontSizeMultiplier = fontSizeMultiplier;
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Load new layout.
        /// </summary>
        /// <param name="layout"></param>
        /// <param name="host"></param>
        public void LoadLayout(KeyboardLayout layout, IKeyboardHost host)
        {
            this.layout = layout;
            this.host   = host;

            RenderedKeyboard_SizeChanged(this, null);
        }
Ejemplo n.º 5
0
 public SendTextEventArgs(IKeyboardHost target, bool isShift, bool isCtrl, bool isAlt, bool isWindows, string text)
     : base(target)
 {
     IsShift   = isShift;
     IsCtrl    = isAlt;
     IsAlt     = isAlt;
     IsWindows = isWindows;
     Text      = text;
 }
        internal void AssertValid(IKeyboardHost host)
        {
            KeyboardValidationException.Assert(Keys != null, "Keys must be specified");
            KeyboardValidationException.Assert(Keys.Length != 0, "Keys must not be empty");

            foreach (var key in Keys)
            {
                key.AssertValid(host);
            }
        }
 static void AssertAllKeyboardsValid(IKeyboardHost host, params string[] layoutXmls)
 {
     try
     {
         foreach (var layoutXml in layoutXmls)
         {
             var layout = KeyboardLayout.Load(layoutXml);
             layout.AssertValid(host);
         }
     }
     catch (Exception ex)
     {
         Debug.Fail(ex.Message);
     }
 }
        /// <summary>
        /// Validate the layout.
        /// </summary>
        public void AssertValid(IKeyboardHost host)
        {
            KeyboardValidationException.Assert(Rows != null, "Rows must be specified");
            KeyboardValidationException.Assert(Rows.Length != 0, "One or more rows");

            Rows[0].AssertValid(host);
            var row0Width = Rows[0].CalculateWidth();

            for (var rowIndex = 1; rowIndex < Rows.Length; rowIndex++)
            {
                var row = Rows[rowIndex];
                row.AssertValid(host);
                var rowWidth = row.CalculateWidth();

                KeyboardValidationException.Assert(row0Width == rowWidth, "All rows must be same length");
            }
        }
        internal override void AssertValid(IKeyboardHost host)
        {
            base.AssertValid(host);

            KeyboardValidationException.Assert(Conditionals != null, "Conditionals must be specified");
            KeyboardValidationException.Assert(Conditionals.Length != 0, "Conditionals cannot be empty");

            var isFirst    = true;
            var hasDefault = false;
            var width      = Conditionals[0].CalculateWidth();

            var names = new HashSet <string>();

            foreach (var conditional in Conditionals)
            {
                conditional.AssertValid(host);

                if (isFirst)
                {
                    isFirst = false;
                }
                else
                {
                    var otherWidth = conditional.CalculateWidth();
                    KeyboardValidationException.Assert(width == otherWidth, "All Conditionals must have same width");
                }

                if (conditional.Name == null)
                {
                    KeyboardValidationException.Assert(!hasDefault, "Can only have one default conditional");
                    hasDefault = true;
                }
                else
                {
                    KeyboardValidationException.Assert(!names.Contains(conditional.Name), "Names must be unique");
                    names.Add(conditional.Name);
                }
            }

            KeyboardValidationException.Assert(hasDefault, "Must have an unnamed default conditional");
        }
        static KeyboardLayout GetKeyboardLayout(IKeyboardHost host, KeyboardLayoutName name)
        {
            var layoutXml = GetKeyboardLayoutXml(name);

            if (layoutXml == null)
            {
                try
                {
                    var myDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
                    var fileName    = "KeyboardLayout.xml";
                    var path        = Path.Combine(myDocuments, fileName);

                    layoutXml = File.ReadAllText(path);
                }
                catch (Exception ex)
                {
                    host.ShowException("Error loading custom keyboard", ex);

                    layoutXml = GetKeyboardLayoutXml(KeyboardLayoutName.Default);
                }
            }

            KeyboardLayout layout;

            try
            {
                layout = KeyboardLayout.Load(layoutXml);
            }
            catch (Exception ex)
            {
                host.ShowException("Error parsing custom keyboard", ex);

                layoutXml = GetKeyboardLayoutXml(KeyboardLayoutName.Default);
                layout    = KeyboardLayout.Load(layoutXml);
            }

            return(layout);
        }
Ejemplo n.º 11
0
        internal override void AssertValid(IKeyboardHost host)
        {
            base.AssertValid(host);

            KeyboardValidationException.Assert(StateName != null, "StateName must be specified");
        }
Ejemplo n.º 12
0
 public SendEventArgs(IKeyboardHost target)
 {
     _target = target;
 }
Ejemplo n.º 13
0
 internal virtual void AssertValid(IKeyboardHost host)
 {
 }