private void Lbl_MouseClick(object sender, MouseEventArgs e) { MyLabel lbl = (MyLabel)sender; int index = tabCtrlMain.SelectedIndex; if (index < 0 && index >= lstCtrlBrowser.Count) { return; } MenuBrowser menuBrowser = (MenuBrowser)lbl.Tag; CtrlBrowser ctrlBrowser = lstCtrlBrowser[index]; if (!ctrlBrowser.GetIsLoadedForFirstTime()) { return; } int i = 0; while (!ctrlBrowser.GetCanCopy() && i < 400) { Thread.Sleep(10); i++; } if (ctrlBrowser.GetCanCopy()) { this.last_command = menuBrowser.Command; this.isCopyWithoutTranslate = true; ctrlBrowser.webBrowser.Copy(); } }
private void LblMyCopy_MouseClick(object sender, MouseEventArgs e) { int index = tabCtrlMain.SelectedIndex; if (index < 0 && index >= lstCtrlBrowser.Count) { return; } CtrlBrowser ctrlBrowser = lstCtrlBrowser[index]; if (ctrlBrowser.GetCanCopy()) { this.last_command = ContextMenuCommand.CMD_MY_COPY; this.isCopyWithoutTranslate = true; ctrlBrowser.webBrowser.Copy(); } }
private void goTranslate() { if (this.WindowState == FormWindowState.Minimized) { return; } if (isFirstRun) { isFirstRun = false; txtWord.Clear(); txtWord.SelectAll(); txtWord.Focus(); return; } string word = txtWord.Text; if (string.IsNullOrWhiteSpace(word) || string.IsNullOrEmpty(word)) { return; } if (!isWordFromHistory) { AddWordToHistory(word); MakeNextPrevEnable(); } int index = tabCtrlMain.SelectedIndex; if (index >= lstCtrlBrowser.Count || index < 0) { return; } CtrlBrowser ctrlBrowser = lstCtrlBrowser[index]; ctrlBrowser.GoTranslate(word); if (User32.GetForegroundWindow() != this.Handle) { User32.MyFlashWindowEx(this.Handle); } }
private void ReloadDicts() { lstMyBrowserInfo.Clear(); foreach (var mb in lstMenuBrowser) { if (mb.FrmTranslateModal != null) { try { mb.FrmTranslateModal.webbrsr.Dispose(); } catch { } try { mb.FrmTranslateModal.Dispose(); } catch { } mb.FrmTranslateModal = null; } } lstMenuBrowser.Clear(); int command = 29502; const string MY_SEPARATOR = "@@@@@@@@"; string path = Path.GetDirectoryName(Application.ExecutablePath); var lines = File.ReadAllLines(Path.Combine(path, "mydicts.txt")); bool isInRightClickDict = false; string error = string.Empty; foreach (string line in lines) { if (string.IsNullOrEmpty(line)) { continue; } if (line.StartsWith("#")) { continue; } if (line.StartsWith("[right_click_dict]", StringComparison.CurrentCultureIgnoreCase)) { isInRightClickDict = true; continue; } if (!line.Contains("%WORD%")) { error = error + Environment.NewLine + "LINE:" + line + " conatins no %WORD%"; } string[] ar = line.Split(new string[] { MY_SEPARATOR }, StringSplitOptions.RemoveEmptyEntries); if (isInRightClickDict) { MenuBrowser menuBrowser = new MenuBrowser(); menuBrowser.Command = command++; menuBrowser.Url = ar[0]; if (ar.Length >= 2) { menuBrowser.Name = ar[1]; } else { try { Uri uri = new Uri(menuBrowser.Url); menuBrowser.Name = uri.Host; } catch { } } if (ar.Length >= 2 && ar[2].StartsWith("f", StringComparison.CurrentCultureIgnoreCase)) { menuBrowser.Shortcut = ar[2].ToUpper(); } lstMenuBrowser.Add(menuBrowser); } else { MyBrowserInfo info = new MyBrowserInfo(); info.Url = ar[0]; if (ar.Length >= 2) { info.Name = ar[1]; } else { try { Uri uri = new Uri(info.Url); info.Name = uri.Host; } catch { } } for (int i = 2; i < ar.Length; i++) { string[] ar2 = ar[i].Split(new string[] { "=" }, StringSplitOptions.RemoveEmptyEntries); if (ar2[0].Equals("scrolldown", StringComparison.CurrentCultureIgnoreCase)) { info.ScrollDown = Convert.ToInt32(ar2[1]); } //else if (ar2[0].Equals("scrollleft", StringComparison.CurrentCultureIgnoreCase)) // info.ScrollLeft = Convert.ToInt32(ar2[1]); else if (ar2[0].Equals("scrollright", StringComparison.CurrentCultureIgnoreCase)) { info.ScrollRight = Convert.ToInt32(ar2[1]); } else if (ar2[0].Equals("zoomlevel", StringComparison.CurrentCultureIgnoreCase)) { info.Zoom = Convert.ToInt32(ar2[1]); } else { throw new Exception("Error in line:" + line); } } lstMyBrowserInfo.Add(info); } } this.SuspendLayout(); pnlShortcuts.SuspendLayout(); pnlShortcuts.Controls.Clear(); MyLabel lblMyCopy = new MyLabel(); lblMyCopy.AutoSize = true; lblMyCopy.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; lblMyCopy.Padding = new System.Windows.Forms.Padding(2); lblMyCopy.Text = "Only Copy = F2"; lblMyCopy.MouseClick += LblMyCopy_MouseClick;; lblMyCopy.Cursor = Cursors.Hand; pnlShortcuts.Controls.Add(lblMyCopy); foreach (MenuBrowser l_menuBrowser in lstMenuBrowser) { if (!string.IsNullOrEmpty(l_menuBrowser.Shortcut) && l_menuBrowser.Shortcut.StartsWith("f", StringComparison.CurrentCultureIgnoreCase)) { MyLabel lbl = new MyLabel(); lbl.AutoSize = true; lbl.Text = l_menuBrowser.Name + " [" + l_menuBrowser.Shortcut + "]"; //mainMenu.Items.Add(lbl.Text); lbl.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; lbl.Padding = new System.Windows.Forms.Padding(2); lbl.Margin = new Padding(1); lbl.Tag = l_menuBrowser; lbl.MouseClick += Lbl_MouseClick; lbl.MouseDoubleClick += Lbl_MouseDoubleClick; lbl.Cursor = Cursors.Hand; pnlShortcuts.Controls.Add(lbl); } } pnlShortcuts.ResumeLayout(); tabCtrlMain.SuspendLayout(); foreach (var br in lstCtrlBrowser) { br.Dispose(); } lstCtrlBrowser.Clear(); tabCtrlMain.TabPages.Clear(); foreach (MyBrowserInfo myBrowserInfo in lstMyBrowserInfo) { TabPage tabPage = new TabPage(myBrowserInfo.Name); CtrlBrowser ctrlBrowser = new CtrlBrowser(myBrowserInfo); ctrlBrowser.Dock = DockStyle.Fill; //ctrlBrowser.myBrowserInfo = myBrowserInfo; ctrlBrowser.lstMenuBrowser = lstMenuBrowser; MyCustomMenuHandler myCustomMenuHandler = new MyCustomMenuHandler(this, ctrlBrowser.webBrowser, lstMenuBrowser); ctrlBrowser.myCustomMenuHandler = myCustomMenuHandler; ctrlBrowser.webBrowser.KeyboardHandler = new MyKeyboardHandler(this, ctrlBrowser); tabPage.Controls.Add(ctrlBrowser); tabCtrlMain.TabPages.Add(tabPage); lstCtrlBrowser.Add(ctrlBrowser); } tabCtrlMain.ResumeLayout(); this.ResumeLayout(); if (!string.IsNullOrEmpty(error)) { Helper.ERRORMSG(error); } }
//private readonly List<MenuBrowser> _lstMenuBrowser; public MyKeyboardHandler(FrmMain frmMain, CtrlBrowser ctrlBrowser) { _frmMain = frmMain; _ctrlBrowser = ctrlBrowser; }