Example #1
0
        static void Main()
        {
            // Do this before Composer.Init() because of the Disabled setting
            Settings.LoadConfig();

            Composer.Init();
            Settings.LoadSequences();
            KeyboardHook.Init();
            Updater.Init();

            Settings.StartWatchConfigFile();

            try
            {
                WinForms.Application.EnableVisualStyles();
                WinForms.Application.SetCompatibleTextRenderingDefault(false);

                m_control = new RemoteControl();
                m_control.DisableEvent += OnDisableEvent;
                m_control.DisableEvent += SysTrayUpdateCallback;
                m_control.ExitEvent    += OnExitEvent;
                m_control.TriggerDisableEvent();

                m_tray_icon = new WinForms.NotifyIcon
                {
                    Visible     = true,
                    ContextMenu = new WinForms.ContextMenu(new[]
                    {
                        new CustomMenuItem
                        {
                            Enabled  = false,
                            Text     = "WinCompose",
                            Scale    = 1.05f,
                            Bold     = true,
                            Gradient = true,
                            MenuIcon = GetIcon(0),
                        },
                        new WinForms.MenuItem("-"),
                        new WinForms.MenuItem(i18n.Text.ShowSequences, ShowSequencesClicked),
                        new WinForms.MenuItem(i18n.Text.ShowOptions, ShowOptionsClicked),
                        m_help_item = /* Keep a reference on this entry */
                                      new CustomMenuItem()
                        {
                            Text = i18n.Text.Help
                        },
                        new WinForms.MenuItem("-"),
                        m_disable_item = /* Keep a reference on this entry */
                                         new WinForms.MenuItem(i18n.Text.Disable, DisableClicked),
                        new WinForms.MenuItem(i18n.Text.Restart, RestartClicked),
                        new WinForms.MenuItem(i18n.Text.Exit, OnExitEvent),
                    })
                };
                m_tray_icon.DoubleClick += NotifyiconDoubleclicked;

                m_help_item.MenuItems.AddRange(new[]
                {
                    new WinForms.MenuItem(i18n.Text.About, AboutClicked),
                    new WinForms.MenuItem(i18n.Text.VisitWebsite, delegate(object o, EventArgs e) { System.Diagnostics.Process.Start("http://wincompose.info/"); }),
                    m_download_item = /* Keep a reference on this entry */
                                      new WinForms.MenuItem("", DownloadClicked)
                    {
                        Visible = false
                    },
                });

                SysTray.AlwaysShow("wincompose[.]exe");

                Composer.Changed += SysTrayUpdateCallback;
                Updater.Changed  += SysTrayUpdateCallback;
                SysTrayUpdateCallback(null, new EventArgs());

                Updater.Changed += UpdaterStateChanged;
                UpdaterStateChanged(null, new EventArgs());

                WinForms.Application.Run();
                m_tray_icon.Dispose();
            }
            finally
            {
                Composer.Changed       -= SysTrayUpdateCallback;
                Updater.Changed        -= SysTrayUpdateCallback;
                Updater.Changed        -= UpdaterStateChanged;
                m_control.DisableEvent -= OnDisableEvent;
                m_control.ExitEvent    -= OnExitEvent;

                Settings.StopWatchConfigFile();
                Updater.Fini();
                KeyboardHook.Fini();
                Settings.SaveConfig();
                Composer.Fini();
                Updater.Fini();
            }
        }
Example #2
0
 public static void Init()
 {
     m_thread = new Thread(() => { Updater.Run(); });
     m_thread.Start();
 }
Example #3
0
 private static System.Drawing.Icon GetCurrentIcon()
 {
     return(GetIcon((Composer.IsDisabled() ?     0x1 : 0x0) |
                    (Composer.IsComposing() ?    0x2 : 0x0) |
                    (Updater.HasNewerVersion() ? 0x4 : 0x0)));
 }