예제 #1
0
        public SEBAdditionalResourcesToolStripButton(DictObj l0Resource)
        {
            this.L0Resource = l0Resource;

            _fileCompressor            = new FileCompressor();
            _additionalResourceHandler = new AdditionalResourceHandler();

            InitializeComponent();

            _menu = new ContextMenuStrip();
            if ((bool)SEBSettings.settingsCurrent[SEBSettings.KeyTouchOptimized])
            {
                _menu.Font             = new Font("Segoe UI", 36F);
                _menu.ShowImageMargin  = true;
                _menu.ImageScalingSize = new Size(48, 48);
            }

            LoadItems();
        }
        private static void OnClientMessage(string message)
        {
            Console.WriteLine("RECV: " + message);
            Logger.AddInformation("WebSocket: Received message: " + message);

            try
            {
                var sebxulMessage = JsonConvert.DeserializeObject <SEBXULMessage>(message);
                switch (sebxulMessage.Handler)
                {
                case SEBXULMessage.SEBXULHandler.AdditionalRessourceTriggered:
                    lock (AdditionalResourceHandlerLock)
                    {
                        if (additionalResourceHandler == null)
                        {
                            additionalResourceHandler = new AdditionalResourceHandler();
                        }
                    }
                    additionalResourceHandler.OpenAdditionalResourceById(sebxulMessage.Opts["Id"].ToString());
                    break;

                case SEBXULMessage.SEBXULHandler.FullScreenChanged:
                    if (OnXulRunnerFullscreenchanged != null)
                    {
                        OnXulRunnerFullscreenchanged(sebxulMessage.Opts);
                    }
                    break;

                case SEBXULMessage.SEBXULHandler.ReconfigureSuccess:
                    SEBClientInfo.SebWindowsClientForm.ClosePreviousMainWindow();
                    break;

                case SEBXULMessage.SEBXULHandler.ClearClipboard:
                    OnXulRunnerClearClipboard?.Invoke(null, EventArgs.Empty);
                    break;
                }
            }
            //Fallback to old message format
            catch (Exception)
            {
                switch (message)
                {
                case "seb.beforeclose.manual":
                    if (OnXulRunnerCloseRequested != null)
                    {
                        OnXulRunnerCloseRequested(null, EventArgs.Empty);
                    }
                    break;

                case "seb.beforeclose.quiturl":
                    if (OnXulRunnerQuitLinkClicked != null)
                    {
                        OnXulRunnerQuitLinkClicked(null, EventArgs.Empty);
                    }
                    break;

                case "seb.input.focus":
                    if (OnXulRunnerTextFocus != null)
                    {
                        OnXulRunnerTextFocus(null, EventArgs.Empty);
                    }
                    break;

                case "seb.input.blur":
                    if (OnXulRunnerTextBlur != null)
                    {
                        OnXulRunnerTextBlur(null, EventArgs.Empty);
                    }
                    break;
                }
            }
        }