Esempio n. 1
0
        //重载鼠标松开的事件
        protected override void OnMouseUp(MouseEventArgs mevent)
        {
            if (mDownPiont != PointToScreen(new Point(mevent.X, mevent.Y)))
            {
                m_bMouseDown = false;
                //this.Invalidate();
                return;
            }

            MainForm.Date_Added = this.Date_Added;
            Point p = new Point(this.Location.X, this.Location.Y + this.Bottom);

            if (mevent.Button != MouseButtons.Left)
            {
                //增加右键菜单功能
                IsSelect = true;
                //判断是否弹出子菜单
                if (this.Type == "FaviFolder")
                {
                    MainForm.Instance.Invoke(new Action(() =>
                    {
                        MainForm.Instance.CopyFavriBtURL.Visible    = false;
                        MainForm.Instance.OpenRULInNewTab.Visible   = false;
                        MainForm.Instance.DelCurrentFavriBT.Visible = true;
                        MainForm.Instance.Favi_3_Line.Visible       = true;
                        MainForm.Instance.Favi_Modif_Item.Visible   = true;
                        MainForm.Instance.Favri_BarMenu.Show(MousePosition);
                    }
                                                        ));
                }
                else
                {
                    MainForm.Instance.Invoke(new Action(() =>
                    {
                        MainForm.Instance.CopyFavriBtURL.Visible    = true;
                        MainForm.Instance.DelCurrentFavriBT.Visible = true;
                        MainForm.Instance.OpenRULInNewTab.Visible   = true;
                        MainForm.Instance.Favi_3_Line.Visible       = true;
                        MainForm.Instance.Favi_Modif_Item.Visible   = true;
                        MainForm.Instance.Favri_BarMenu.Show(MousePosition);
                    }
                                                        ));
                }
            }
            else
            {
                //判断是否弹出子菜单
                if (this.Type == "FaviFolder")
                {
                    IsSelect = false;
                    MainForm.Instance.CopyFavriBtURL.Visible    = false;
                    MainForm.Instance.DelCurrentFavriBT.Visible = false;
                    MainForm.Instance.OpenRULInNewTab.Visible   = false;
                    MainForm.Instance.Favi_3_Line.Visible       = false;
                    MainForm.Instance.Favi_Modif_Item.Visible   = false;
                    MainForm.Instance.Invoke(new Action(() =>
                    {
                        MainForm.Instance.fMenuStrip1.Items.Clear();
                        //MainForm.Instance.fMenuStrip1.Width = 266;
                        string jsonStr = File.ReadAllText(PublicClass.currDirectiory + @"\UserData\Bookmarks");
                        try
                        {
                            var jobInfoList = JsonConvert.DeserializeObject <List <FavireBT> >(jsonStr);
                            if (jobInfoList.Count > 0)
                            {
                                favireBTs          = jobInfoList;
                                int countfMenuItem = 0;
                                int fWidth         = 0;
                                foreach (FavireBT jobInfo in favireBTs)
                                {
                                    if (jobInfo.FatherID == this.ID)
                                    {
                                        countfMenuItem++;
                                        FMenuItem fMenuItem = new FMenuItem();
                                        fMenuItem.Width     = CefConstHelper.FmenuItem_TextRect_Width;
                                        fMenuItem.Height    = CefConstHelper.FMenuItem_Height;
                                        fMenuItem.Title     = jobInfo.Title;
                                        if (GetPixelByStr(fMenuItem.Title) < fMenuItem.Width)
                                        {
                                            fMenuItem.Width = CefConstHelper.FmenuItem_TextRect_Width; // GetPixelByStr(fMenuItem.Title);
                                            if (fMenuItem.Width > fWidth)
                                            {
                                                fWidth = fMenuItem.Width;
                                            }
                                        }
                                        else
                                        {
                                            fMenuItem.Width = GetPixelByStr(fMenuItem.Title);
                                            if (fMenuItem.Width > CefConstHelper.FmenuItem_TextRect_Width * 1.4)
                                            {
                                                fMenuItem.Width = (int)(CefConstHelper.FmenuItem_TextRect_Width * 1.4);
                                            }
                                            if (fMenuItem.Width > fWidth)
                                            {
                                                fWidth = fMenuItem.Width;
                                            }
                                        }

                                        fMenuItem.URL      = jobInfo.URL;
                                        fMenuItem.ItemIcon = PublicClass.Base64ToImage(jobInfo.IconBase64str);
                                        // fMenuItem.Image = fMenuItem.ItemIcon; //这里如果给值就导致图标变大成24*24的
                                        //fMenuItem.Text = fMenuItem.Title;
                                        fMenuItem.ToolTipText = jobInfo.Title;
                                        fMenuItem.Invalidate();
                                        MainForm.Instance.fMenuStrip1.Items.Add(fMenuItem);
                                    }
                                }
                                MainForm.Instance.fMenuStrip1.Width = fWidth;
                                //先不处理吧,还没想好?umm...:)
                                // if(countfMenuItem * CefConstHelper.FMenuItem_Height + 4 > MainForm.Instance.Height - MainForm.Instance.ToolsPanel.Height )
                                //自动调整个快捷菜单的高度
                                MainForm.Instance.fMenuStrip1.Height = countfMenuItem * CefConstHelper.FMenuItem_Height + 6;
                                for (int i = 0; i < MainForm.Instance.fMenuStrip1.Items.Count; i++)
                                {
                                    MainForm.Instance.fMenuStrip1.Items[i].Width = fWidth;
                                }
                            }
                            MainForm.Instance.fMenuStrip1.Show(MainForm.Instance.FavPanel.PointToScreen(p));
                        }
                        catch (Exception e)
                        {
                            MessageBox.Show(e.Message);
                        }
                    }
                                                        ));
                }
                else if (MainForm.Instance.faTabStrip1.SelectedItem.splic.Panel1.Controls.Count > 0)
                {
                    MainForm.Instance.Invoke(new Action(() =>
                    {
                        PublicClass.BrowserLoadingInfo(MainForm.Instance.faTabStrip1.SelectedItem);
                        if (MainForm.Instance.faTabStrip1.SelectedItem.Title == CefConstHelper.CefDownloadTitle)
                        {
                            MainForm.Instance.faTabStrip1.SelectedItem.splic.Panel1.Controls.Clear();
                            // PublicClass.BrowserCSH(MainForm.Instance.faTabStrip1.SelectedItem);
                            MainForm.Instance.faTabStrip1.SelectedItem.splic.Panel1.Controls.Add(MainForm.Instance.NewChromiumWeb(this.URL, MainForm.Instance.faTabStrip1.SelectedItem.TabIndex));
                        }
                        else
                        {
                            if (MainForm.Instance.faTabStrip1.SelectedItem.ItemBrowser != null)
                            {
                                if (MainForm.Instance.faTabStrip1.SelectedItem.ItemBrowser.IsLoading)
                                {
                                    MainForm.Instance.faTabStrip1.SelectedItem.ItemBrowser.StopLoad();
                                }
                            }

                            //当鼠标松开时,标示变量为按下并松开了控件
                            IsSelect = false;
                            //刷新面板触发OnPaint重绘


                            if (MainForm.Instance.faTabStrip1.SelectedItem.IsPoPWindow)
                            {
                                MainForm.Instance.faTabStrip1.SelectedItem.splic.Panel1.Controls.Clear();
                                MainForm.Instance.faTabStrip1.SelectedItem.splic.Panel1.Controls.Add(MainForm.Instance.NewChromiumWeb(this.URL, MainForm.Instance.faTabStrip1.SelectedItem.TabIndex));
                            }
                            else
                            {
                                MainForm.Instance.faTabStrip1.SelectedItem.ItemBrowser.GetMainFrame().LoadUrl(this.URL);
                            }
                            GC.Collect();
                        }
                    }
                                                        ));
                }
                else
                {
                    MainForm.Instance.Invoke(new Action(() =>
                    {
                        PublicClass.BrowserLoadingInfo(MainForm.Instance.faTabStrip1.SelectedItem);
                        if (MainForm.Instance.faTabStrip1.SelectedItem.ItemBrowser != null)
                        {
                            if (MainForm.Instance.faTabStrip1.SelectedItem.ItemBrowser.IsLoading)
                            {
                                MainForm.Instance.faTabStrip1.SelectedItem.ItemBrowser.StopLoad();
                            }
                        }
                        //当鼠标松开时,标示变量为按下并松开了控件
                        IsSelect = false;
                        //刷新面板触发OnPaint重绘

                        MainForm.Instance.faTabStrip1.SelectedItem.splic.Panel1.Controls.Add(MainForm.Instance.NewChromiumWeb(this.URL, MainForm.Instance.faTabStrip1.SelectedItem.TabIndex));
                    }
                                                        ));
                }
            }
            m_bMouseDown = false;
            if (MainForm.Instance.faTabStrip1.SelectedItem != null && this.Type != "FaviFolder" && mevent.Button != MouseButtons.Right)
            {
                MainForm.Instance.textBoxXP1.Text = MainForm.Instance.faTabStrip1.SelectedItem.URL = this.uRL;
            }

            base.OnMouseUp(mevent);
        }