public IbusKeyboardSwitchingAdaptor(IIbusCommunicator ibusCommunicator)
        {
            _ibusComm = ibusCommunicator;

            if (KeyboardController.Instance != null)
            {
                KeyboardController.Instance.ControlAdded    += OnControlRegistered;
                KeyboardController.Instance.ControlRemoving += OnControlRemoving;
            }

            // Don't turn on any Ibus IME keyboard until requested explicitly.
            // If we do nothing, the first Ibus IME keyboard is automatically activated.
            _ibusComm.FocusIn();
            if (GlobalCachedInputContext.InputContext != null)
            {
                try
                {
                    var context = GlobalCachedInputContext.InputContext;
                    context.Reset();
                    GlobalCachedInputContext.Keyboard = null;
                    context.SetEngine("");
                    context.Disable();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }
            _ibusComm.FocusOut();
        }
		public IbusKeyboardSwitchingAdaptor(IIbusCommunicator ibusCommunicator)
		{
			IBusCommunicator = ibusCommunicator;

			if (KeyboardController.EventProvider != null)
			{
				KeyboardController.EventProvider.ControlAdded += OnControlRegistered;
				KeyboardController.EventProvider.ControlRemoving += OnControlRemoving;
			}

			// Don't turn on any Ibus IME keyboard until requested explicitly.
			// If we do nothing, the first Ibus IME keyboard is automatically activated.
			IBusCommunicator.FocusIn();
			if (GlobalCachedInputContext.InputContext != null)
			{
				try
				{
					var context = GlobalCachedInputContext.InputContext;
					context.Reset();
					GlobalCachedInputContext.Keyboard = null;
					context.SetEngine("");
					context.Disable();
				}
				catch (Exception e)
				{
					Console.WriteLine(e);
				}
			}
			IBusCommunicator.FocusOut();
		}
Exemplo n.º 3
0
 public override void Close()
 {
     if (m_ibuscom != null)
     {
         m_ibuscom.Dispose();
         m_ibuscom = null;
     }
 }
        /// <summary>
        /// Used in unit tests
        /// </summary>
        public IbusKeyboardAdaptor(IIbusCommunicator ibusCommunicator)
        {
            IBusCommunicator = ibusCommunicator;

            if (!IBusCommunicator.Connected)
                return;

            if (KeyboardController.EventProvider != null)
            {
                KeyboardController.EventProvider.ControlAdded += OnControlRegistered;
                KeyboardController.EventProvider.ControlRemoving += OnControlRemoving;
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Used in unit tests
        /// </summary>
        public IbusKeyboardAdaptor(IIbusCommunicator ibusCommunicator)
        {
            IBusCommunicator = ibusCommunicator;

            if (!IBusCommunicator.Connected)
            {
                return;
            }

            if (KeyboardController.EventProvider != null)
            {
                KeyboardController.EventProvider.ControlAdded    += OnControlRegistered;
                KeyboardController.EventProvider.ControlRemoving += OnControlRemoving;
            }
        }
Exemplo n.º 6
0
        public override bool ActivateKeyboard(IKeyboardDefinition keyboard)
        {
            Debug.Assert(keyboard is KeyboardDescription);
            Debug.Assert(((KeyboardDescription)keyboard).Engine == this);
            //Console.WriteLine("DEBUG CinnamonIbusAdaptor.ActivateKeyboard({0})", keyboard);
            if (keyboard is IbusKeyboardDescription)
            {
                var ibusKeyboard = keyboard as IbusKeyboardDescription;
                try
                {
                    if (m_ibuscom == null)
                    {
                        m_ibuscom = new IbusCommunicator();
                    }
                    m_ibuscom.FocusIn();
                    var ibusAdaptor = GetAdaptor <IbusKeyboardAdaptor>();
                    if (!ibusAdaptor.CanSetIbusKeyboard())
                    {
                        return(false);
                    }
                    if (ibusAdaptor.IBusKeyboardAlreadySet(ibusKeyboard))
                    {
                        return(true);
                    }

                    // Set the associated XKB layout
                    SetLayout(ibusKeyboard);

                    // Then set the IBus keyboard (may be an XKB keyboard in actuality)
                    var context = GlobalCachedInputContext.InputContext;
                    //Console.WriteLine ("DEBUG calling context.SetEngine({0})", ibusKeyboard.IBusKeyboardEngine.LongName);
                    context.SetEngine(ibusKeyboard.IBusKeyboardEngine.LongName);
                    GlobalCachedInputContext.Keyboard = ibusKeyboard;
                }
                catch (Exception e)
                {
                    Debug.WriteLine(string.Format("Changing keyboard failed, is kfml/ibus running? {0}", e));
                    return(false);
                }
            }
            else
            {
                throw new ArgumentException();
            }
            return(true);
        }
Exemplo n.º 7
0
 public IbusKeyboardAdaptorDouble(IIbusCommunicator ibusCommunicator) : base(ibusCommunicator)
 {
 }
 public IbusKeyboardRetrievingAdaptorDouble(IIbusCommunicator ibusCommunicator) : base(ibusCommunicator)
 {
 }
 /// <summary>
 /// Used in unit tests
 /// </summary>
 public IbusKeyboardRetrievingAdaptor(IIbusCommunicator ibusCommunicator)
 {
     _ibusComm = ibusCommunicator;
 }
		public UnityIbusKeyboardSwitchingAdaptor(IIbusCommunicator ibusCommunicator) :
			base(ibusCommunicator)
		{
		}
		/// <summary>
		/// Initializes a new instance of the
		/// <see cref="SIL.Windows.Forms.Keyboarding.Linux.CombinedIbusKeyboardRetrievingAdaptor"/> class.
		/// Used in unit tests
		/// </summary>
		/// <param name="ibusCommunicator">Ibus communicator.</param>
		public CombinedIbusKeyboardRetrievingAdaptor(IIbusCommunicator ibusCommunicator): base(ibusCommunicator)
		{
		}
 public CombinedIbusKeyboardSwitchingAdaptor(IIbusCommunicator ibusCommunicator) : base(ibusCommunicator)
 {
 }
Exemplo n.º 13
0
 /// <summary>
 /// Initializes a new instance of the
 /// <see cref="SIL.Windows.Forms.Keyboarding.Linux.CombinedIbusKeyboardRetrievingAdaptor"/> class.
 /// Used in unit tests
 /// </summary>
 /// <param name="ibusCommunicator">Ibus communicator.</param>
 public CombinedIbusKeyboardRetrievingAdaptor(IIbusCommunicator ibusCommunicator) : base(ibusCommunicator)
 {
 }
 public UnityIbusKeyboardSwitchingAdaptor(IIbusCommunicator ibusCommunicator) :
     base(ibusCommunicator)
 {
 }
Exemplo n.º 15
0
			public IbusKeyboardRetrievingAdaptorDouble(IIbusCommunicator ibusCommunicator): base(ibusCommunicator)
			{
			}
Exemplo n.º 16
0
 /// <summary>
 /// Initializes a new instance of the
 /// <see cref="SIL.Windows.Forms.Keyboarding.Linux.GnomeShellIbusKeyboardRetrievingAdaptor"/> class.
 /// </summary>
 /// <param name="ibusCommunicator">Ibus communicator.</param>
 /// <remarks>This overload is used in unit tests</remarks>
 protected GnomeShellIbusKeyboardRetrievingAdaptor(IIbusCommunicator ibusCommunicator) : base(ibusCommunicator)
 {
 }
Exemplo n.º 17
0
 public override void Close()
 {
     if (m_ibuscom != null)
     {
         m_ibuscom.Dispose();
         m_ibuscom = null;
     }
 }
Exemplo n.º 18
0
        public override bool ActivateKeyboard(IKeyboardDefinition keyboard)
        {
            Debug.Assert(keyboard is KeyboardDescription);
            Debug.Assert(((KeyboardDescription)keyboard).Engine == this);
            //Console.WriteLine("DEBUG CinnamonIbusAdaptor.ActivateKeyboard({0})", keyboard);
            if (keyboard is IbusKeyboardDescription)
            {
                var ibusKeyboard = keyboard as IbusKeyboardDescription;
                try
                {
                    if (m_ibuscom == null)
                        m_ibuscom = new IbusCommunicator();
                    m_ibuscom.FocusIn();
                    var ibusAdaptor = GetAdaptor<IbusKeyboardAdaptor>();
                    if (!ibusAdaptor.CanSetIbusKeyboard())
                        return false;
                    if (ibusAdaptor.IBusKeyboardAlreadySet(ibusKeyboard))
                        return true;

                    // Set the associated XKB layout
                    SetLayout(ibusKeyboard);

                    // Then set the IBus keyboard (may be an XKB keyboard in actuality)
                    var context = GlobalCachedInputContext.InputContext;
                    //Console.WriteLine ("DEBUG calling context.SetEngine({0})", ibusKeyboard.IBusKeyboardEngine.LongName);
                    context.SetEngine(ibusKeyboard.IBusKeyboardEngine.LongName);
                    GlobalCachedInputContext.Keyboard = ibusKeyboard;
                }
                catch (Exception e)
                {
                    Debug.WriteLine(string.Format("Changing keyboard failed, is kfml/ibus running? {0}", e));
                    return false;
                }
            }
            else
            {
                throw new ArgumentException();
            }
            return true;
        }
Exemplo n.º 19
0
 public GnomeShellIbusKeyboardSwitchingAdaptor(IIbusCommunicator ibusCommunicator)
     : base(ibusCommunicator)
 {
 }
		/// <summary>
		/// Used in unit tests
		/// </summary>
		public IbusKeyboardRetrievingAdaptor(IIbusCommunicator ibusCommunicator)
		{
			_IBusCommunicator = ibusCommunicator;
		}
Exemplo n.º 21
0
 /// <summary>
 /// Used in unit tests
 /// </summary>
 protected IbusKeyboardRetrievingAdaptor(IIbusCommunicator ibusCommunicator)
 {
     _ibusComm = ibusCommunicator;
 }
		public IbusKeyboardAdaptorDouble(IIbusCommunicator ibusCommunicator): base(ibusCommunicator)
		{
		}
		public CombinedIbusKeyboardSwitchingAdaptor(IIbusCommunicator ibusCommunicator) : base(ibusCommunicator)
		{
		}