private void SelectPic(BrowserPreview pic, FlowLayoutPanel PreviewPanel) { foreach (Control ctrl in PreviewPanel.Controls) { if (ctrl.GetType() == typeof(BrowserPreview)) { if (ctrl == pic) { ((BrowserPreview)ctrl).Selected = true; } else { ((BrowserPreview)ctrl).Selected = false; } } } }
public void loadPage() { var pageToLoad = WikiPage_TextBox.get_Text(); WikiTextEditor.backColor(Color.LightPink); StatusLabel.set_Text("Opening page: {0}".format(pageToLoad)).textColor(Color.Black); CurrentPageUrl.insert_Item("{0}/{1}".format(WikiApi.IndexPhp, pageToLoad)); O2Thread.mtaThread(() => { var wikiText = WikiApi.wikiText(pageToLoad); WikiTextEditor.set_Text(wikiText); if (wikiText.valid().isFalse()) { StatusLabel.set_Text("This is a new Page (there was no content retrived from the server").textColor(Color.DarkBlue); } BrowserPreview.open("about:blank"); BrowserCurrent.open("about:blank"); WikiTextEditor.backColor(Color.White); //BrowserPreview.set_Text(WikiApi.parseText(wikiText,true)); //BrowserCurrent.set_Text(WikiApi.html(pageToLoad)); }); }
public void saveCurrentPage() { var currentPage = WikiPage_TextBox.get_Text(); if (WikiApi.loggedIn().isFalse()) { StatusLabel.set_Text("You need to be logged in to save pages").textColor(Color.Red); var credential = ascx_AskUserForLoginDetails.ask(); if (credential.notNull()) { WikiApi.login(credential.UserName, credential.Password); if (WikiApi.loggedIn()) { StatusLabel.set_Text("You are now logged in as user: {0}".format(credential.UserName)).textColor(Color.DarkGreen); } else { StatusLabel.set_Text("Login failed for user: {0}".format(credential.UserName)).textColor(Color.Red); } } } else { StatusLabel.set_Text("saving page {0} ".format(currentPage)).textColor(Color.Black); // save content WikiApi.save(currentPage, WikiTextEditor.get_Text()); // reload content and show it var wikiText = WikiApi.wikiText(currentPage); BrowserPreview.open("about:blank"); //BrowserPreview.set_Text(WikiApi.parseText(wikiText,true)); BrowserCurrent.set_Text(WikiApi.html(currentPage)); StatusLabel.set_Text("Page {0} saved".format(currentPage)).textColor(Color.DarkGreen); } }
public ascx_MediaWiki_PageEditor_Simple buildGui(O2MediaWikiAPI wikiApi) { try { WikiApi = wikiApi; var topPanel = this.add_Panel(); var horizontalSplitterPosition = topPanel.height() / 2; var verticalSplitterPosition = topPanel.width() / 2; var controls = topPanel.add_1x2("WikiText", "Preview", "Live (Current page)", false, horizontalSplitterPosition, verticalSplitterPosition); WikiTextEditor = controls[0].add_RichTextBox(); BrowserPreview = controls[1].add_WebBrowser(); BrowserCurrent = controls[2].add_WebBrowser(); WikiPage_TextBox = WikiTextEditor.insert_Above <TextBox>(50); var bottomPanel = WikiPage_TextBox.insert_Below <Panel>(30); RecentChangesComboBox = WikiPage_TextBox.insert_Right <Panel>(290) .add_Label("Recent Changes / Search") .top(3) .append_Control <ComboBox>() //.dropDownList() .width(150) .top(0); Action <string> populateRecentChangesComboBox = (filter) => { RecentChangesComboBox.backColor(Color.LightPink); O2Thread.mtaThread( () => { RecentChangesComboBox.clear(); if (filter.valid().isFalse()) { RecentChangesComboBox.add_Items(WikiApi.recentPages()); } else { RecentChangesComboBox.add_Items(WikiApi.pages(filter)); } RecentChangesComboBox.backColor(Color.White); }); }; RecentChangesComboBox.onSelection( () => { WikiPage_TextBox.set_Text(RecentChangesComboBox.get_Text()); loadCurrentPage(); }); RecentChangesComboBox.onEnter( (text) => { populateRecentChangesComboBox(text); }); //WikiTextEditor.insert_Below<ascx_LogViewer>(130); //default values BrowserPreview.silent(true); BrowserCurrent.silent(true); //WikiPage_TextBox.set_Text("Test"); // add controls with events CurrentPageUrl = BrowserCurrent.insert_Above <Panel>(20) .add_LabelAndComboBoxAndButton("Current page", "", "open", showInCurrentBrowser) .controls <ComboBox>(); CurrentPageUrl.insert_Item("www.google.com"); bottomPanel.add_Button("Load", 0).onClick( () => { loadCurrentPage(); }); bottomPanel.add_Button("Preview", 0, 100).onClick( () => { O2Thread.mtaThread( () => { BrowserPreview.set_Text(WikiApi.parseText(WikiTextEditor.get_Text(), true)); }); }); SaveButton = bottomPanel.add_Button("Save", 0, 200).onClick( () => { saveCurrentPage(); }); StatusLabel = SaveButton.append_Label("").topAdd(3).autoSize(); /*WikiTextEditor.onKeyPress(Keys.Enter, * (code)=>{ * O2Thread.mtaThread(()=> * { * BrowserPreview.set_Text(WikiApi.parseText(code,true)); * }); * });*/ WikiTextEditor.onKeyPress((key) => // add suport to paste images form Clipboard { if (key == (Keys.Control | Keys.V)) { return(pasteImageFromClipboard()); } return(false); }); WikiPage_TextBox.onEnter((text) => loadPage(text)); WikiTextEditor.add_ContextMenu() .add_MenuItem("Wrap with source tag (defaults to lang=csharp)", () => { WikiTextEditor.invokeOnThread( () => { WikiTextEditor.SelectedText = "<source lang=csharp>".line() + WikiTextEditor.SelectedText.line() + "</source>".line(); }); }); populateRecentChangesComboBox(""); } catch (Exception ex) { ex.log("in ascx_MediaWiki_PageEditor_Simple buildGui"); } return(this); }
public TabPage AddTab(string url, ContextMenuStrip phoner8ClickMenu) { try { TabPage tab = new TabPage { BorderStyle = BorderStyle.Fixed3D, Text = "New", ImageIndex = 2 }; InitializeComponent(tab); WebBrowser curBrowser = new WebBrowser(); Phoner8ClickMenu = phoner8ClickMenu; if (!string.IsNullOrEmpty(url)) { curBrowser.Url = new Uri(url); } BrowserPreview pic = new BrowserPreview { SizeMode = PictureBoxSizeMode.AutoSize, BorderStyle = BorderStyle.Fixed3D }; //pic.Image = new Bitmap(string.Format("{0}\\HTMLPageHSBig.bmp", Application.StartupPath)); //.GetThumbnailImage(48, 48, New Image.GetThumbnailImageAbort(AddressOf GetThumbCallback), System.IntPtr.Zero) PreviewPanel.Controls.Add(pic); curBrowser.Tag = pic; SelectPic(pic, PreviewPanel); pic.Click += (o, e) => { MainTabControl.SelectedTab = (TabPage)((BrowserPreview)o).Tag; }; curBrowser.Dock = DockStyle.Fill; curBrowser.CanGoBackChanged += (s, o) => { BackToolStripButton.Enabled = curBrowser.CanGoBack; }; curBrowser.CanGoForwardChanged += (sender, e) => { ForwardToolStripButton.Enabled = curBrowser.CanGoForward; }; curBrowser.DocumentCompleted += (sender, e) => { try { WebBrowser br = curBrowser; if (!br.IsBusy) { StopToolStripButton.Enabled = false; _statusStripBottom.Visible = false; Image img = new Bitmap(br.DisplayRectangle.Width, br.DisplayRectangle.Height); Graphics gfxdst = Graphics.FromImage(img); //Dim gfxsrc As Graphics = br.CreateGraphics //BitBlt(gfxdst.GetHdc, 0, 0, br.DisplayRectangle.Width, br.DisplayRectangle.Height, gfxsrc.GetHdc, 0, 0, TernaryRasterOperations.SRCCOPY) gfxdst.CopyFromScreen( br.PointToScreen(new Point(br.DisplayRectangle.X, br.DisplayRectangle.Y)), new Point(0, 0), br.DisplayRectangle.Size); pic.Image = img.GetThumbnailImage(Convert.ToInt32(PreviewSizeNumericUpDown.Value), Convert.ToInt32(PreviewSizeNumericUpDown.Value), new Image.GetThumbnailImageAbort(GetThumbCallback), System.IntPtr.Zero); pic.SizeMode = PictureBoxSizeMode.AutoSize; pic.BorderStyle = BorderStyle.Fixed3D; gfxdst.Dispose(); //gfxsrc.Dispose() img.Dispose(); } pic.Image = favicon(br.Url); ImageList imgList = new ImageList(); imgList.Images.Add(pic.Image); tab.ImageIndex = 0; br.ContextMenuStrip = Phoner8ClickMenu; } catch (Exception ex) { } }; curBrowser.DocumentTitleChanged += (sender, e) => { try { if (curBrowser.DocumentTitle.Length > 0) { MainTabControl.SelectedTab.Text = curBrowser.DocumentTitle; //maintabcontrol.SelectedTab.ImageIndex = } else { if (AddressToolStripComboBox.Text.Length < 1) { MainTabControl.SelectedTab.Text = string.Format("Page {0}", MainTabControl.TabCount + 1); } else { MainTabControl.SelectedTab.Text = AddressToolStripComboBox.Text; } } MainToolTip.SetToolTip(pic, MainTabControl.SelectedTab.Text); } catch (Exception ex) { } }; curBrowser.EncryptionLevelChanged += (sender, e) => { switch (curBrowser.EncryptionLevel) { case WebBrowserEncryptionLevel.Bit128: case WebBrowserEncryptionLevel.Bit40: case WebBrowserEncryptionLevel.Bit56: case WebBrowserEncryptionLevel.Fortezza: _secureToolStripStatusLabel.Visible = true; break; default: _secureToolStripStatusLabel.Visible = false; break; } }; curBrowser.ProgressChanged += (sender, e) => { try { if (_mainProgressBar.Value <= e.MaximumProgress) { _mainProgressBar.Maximum = (System.Int32)e.MaximumProgress; if (e.CurrentProgress >= _mainProgressBar.Minimum) { _mainProgressBar.Value = (System.Int32)e.CurrentProgress; } else { _mainProgressBar.Value = 0; } } else { _mainProgressBar.Value = 0; _mainProgressBar.Maximum = (System.Int32)e.MaximumProgress; } } catch (Exception ex) { } }; curBrowser.StatusTextChanged += (sender, e) => { if (!(curBrowser.StatusText == null)) { _mainToolStripStatusLabel.Text = curBrowser.StatusText; } else { _mainToolStripStatusLabel.Text = "Done"; } }; curBrowser.Navigating += (sender, e) => { StopToolStripButton.Enabled = true; _statusStripBottom.Visible = true; }; curBrowser.Navigated += (sender, e) => { if (curBrowser.Url != null) { AddressToolStripComboBox.Text = curBrowser.Url.ToString(); } }; //tab.Text = String.Format("Page {0}", MainTabControl.TabCount) tab.Controls.Add(curBrowser); MainTabControl.TabPages.Insert(MainTabControl.TabCount - 1, tab); pic.Tag = tab; var authHdr = "Authorization: Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(UserName + ":" + PassWord)) + "\r\n"; curBrowser.Navigate(url, null, null, authHdr); return(tab); } catch (Exception exception) { Logger.Instance.LogMessage(Logger.LogAppender.DuoDefault, "MyTab", exception, Logger.LogLevel.Error); throw; } }