diff --git a/AddIns/ICSharpCode.SharpDevelop.addin b/AddIns/ICSharpCode.SharpDevelop.addin
index c5c45a870e..015faa6fc6 100644
--- a/AddIns/ICSharpCode.SharpDevelop.addin
+++ b/AddIns/ICSharpCode.SharpDevelop.addin
@@ -83,13 +83,6 @@
shortcut = "Control|Alt|F"
class = "ICSharpCode.SharpDevelop.Gui.FileScout"/>
-
-
+
+
+
+
-
+ class = "HtmlHelp2.HtmlHelp2FavoritesPad"/>-->
+
diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs
index b800113622..5f7de458f4 100644
--- a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs
+++ b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs
@@ -23,7 +23,10 @@ namespace HtmlHelp2
public override void Run()
{
PadDescriptor search = WorkbenchSingleton.Workbench.GetPad(typeof(HtmlHelp2SearchPad));
- if(search != null) search.BringPadToFront();
+ if (search != null) {
+ search.BringPadToFront();
+ ((HtmlHelp2SearchPad)search.PadContent).FocusSearchTextBox();
+ }
}
}
@@ -31,7 +34,7 @@ namespace HtmlHelp2
public class HtmlHelp2SearchPad : AbstractPadContent
{
Panel mainPanel = new Panel();
- Button searchButton = new Button();
+ Button searchButton = new Button();
ComboBox filterCombobox = new ComboBox();
ComboBox searchTerm = new ComboBox();
CheckBox titlesOnly = new CheckBox();
@@ -49,6 +52,11 @@ namespace HtmlHelp2
return mainPanel;
}
}
+
+ public void FocusSearchTextBox()
+ {
+ searchTerm.Focus();
+ }
public override void RedrawContent()
{
@@ -112,7 +120,8 @@ namespace HtmlHelp2
hiliteTopics.Top = reuseMatches.Top + reuseMatches.Height - 4;
hiliteTopics.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.HighlightMatches}");
hiliteTopics.TextAlign = ContentAlignment.MiddleLeft;
- hiliteTopics.Enabled = true;
+ hiliteTopics.Enabled = HtmlHelp2Environment.IsReady;
+ hiliteTopics.Checked = true;
panel3.Dock = DockStyle.Fill;
@@ -216,6 +225,7 @@ namespace HtmlHelp2
private void KeyPressed(object sender, KeyPressEventArgs e)
{
if(e.KeyChar == (char)13 && searchTerm.Text != null) {
+ e.Handled = true;
this.AddTermToList(searchTerm.Text);
this.PerformFTS(searchTerm.Text);
}
diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserControl/ShowHelpBrowser.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserControl/ShowHelpBrowser.cs
index 453a09c609..2e387e46b7 100644
--- a/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserControl/ShowHelpBrowser.cs
+++ b/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserControl/ShowHelpBrowser.cs
@@ -70,15 +70,10 @@ namespace HtmlHelp2
return tempPane;
}
- public static void HighlightDocument()
+ public static void HighlightDocument(HtmlViewPane htmlViewPane)
{
- // FIXME: HighlightDocument is called nowhere
if (hiliteMatches && lastTopic != null) {
- IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow;
- if(window != null && window.ActiveViewContent is BrowserPane) {
- BrowserPane help2Browser = (BrowserPane)window.ActiveViewContent;
- lastTopic.HighlightDocument(help2Browser.HtmlViewPane.WebBrowser.Document.DomDocument);
- }
+ lastTopic.HighlightDocument(htmlViewPane.WebBrowser.Document.DomDocument);
}
}
}
diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserScheme.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserScheme.cs
new file mode 100644
index 0000000000..572492ce2f
--- /dev/null
+++ b/src/AddIns/Misc/HtmlHelp2/Project/src/BrowserScheme.cs
@@ -0,0 +1,33 @@
+/*
+ * Created by SharpDevelop.
+ * User: Daniel Grunwald
+ * Date: 06.08.2005
+ * Time: 16:13
+ */
+
+using System;
+using System.Windows.Forms;
+using ICSharpCode.Core;
+using ICSharpCode.SharpDevelop.Gui;
+using ICSharpCode.SharpDevelop.BrowserDisplayBinding;
+
+namespace HtmlHelp2
+{
+ public class BrowserScheme : DefaultSchemeExtension
+ {
+ public override void GoHome(HtmlViewPane pane)
+ {
+ pane.Navigate(HtmlHelp2Service.HtmlHelp2Environment.DefaultPage);
+ }
+
+ public override void GoSearch(HtmlViewPane pane)
+ {
+ new ShowSearchMenuCommand().Run();
+ }
+
+ public override void DocumentCompleted(HtmlViewPane pane, WebBrowserDocumentCompletedEventArgs e)
+ {
+ ShowHelpBrowser.HighlightDocument(pane);
+ }
+ }
+}
diff --git a/src/AddIns/Misc/StartPage/Project/Src/StartPage.cs b/src/AddIns/Misc/StartPage/Project/Src/StartPage.cs
index f5aa3043f7..fc943f04c2 100644
--- a/src/AddIns/Misc/StartPage/Project/Src/StartPage.cs
+++ b/src/AddIns/Misc/StartPage/Project/Src/StartPage.cs
@@ -13,11 +13,11 @@ using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.StartPage
{
- public class StartPageScheme : ISchemeExtension
+ public class StartPageScheme : DefaultSchemeExtension
{
ICSharpCodePage page;
- public void InterceptNavigate(HtmlViewPane pane, WebBrowserNavigatingEventArgs e)
+ public override void InterceptNavigate(HtmlViewPane pane, WebBrowserNavigatingEventArgs e)
{
e.Cancel = true;
if (page == null) {
@@ -37,14 +37,9 @@ namespace ICSharpCode.StartPage
}
}
- public void GoHome(HtmlViewPane pane)
+ public override void GoHome(HtmlViewPane pane)
{
pane.Navigate("startpage://start/");
}
-
- public void GoSearch(HtmlViewPane pane)
- {
- pane.Navigate(HtmlViewPane.DefaultSearchUrl);
- }
}
}
diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
index 86b7c9284d..98d9f135d4 100644
--- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
+++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
@@ -273,7 +273,6 @@
-
Form
diff --git a/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/HtmlViewPane.cs b/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/HtmlViewPane.cs
index f2fbd47d20..3b2e93b89a 100644
--- a/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/HtmlViewPane.cs
+++ b/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/HtmlViewPane.cs
@@ -149,6 +149,7 @@ namespace ICSharpCode.SharpDevelop.BrowserDisplayBinding
webBrowser.NewWindowExtended += NewWindow;
webBrowser.Navigated += WebBrowserNavigated;
webBrowser.StatusTextChanged += WebBrowserStatusTextChanged;
+ webBrowser.DocumentCompleted += WebBrowserDocumentCompleted;
Controls.Add(webBrowser);
if (showNavigation) {
@@ -208,9 +209,21 @@ namespace ICSharpCode.SharpDevelop.BrowserDisplayBinding
}
}
- public void Navigate(string name)
+ void WebBrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
- webBrowser.Navigate(new Uri(name));
+ try {
+ ISchemeExtension extension = GetScheme(e.Url.Scheme);
+ if (extension != null) {
+ extension.DocumentCompleted(this, e);
+ }
+ } catch (Exception ex) {
+ MessageService.ShowError(ex);
+ }
+ }
+
+ public void Navigate(string url)
+ {
+ webBrowser.Navigate(new Uri(url));
}
public void Navigate(Uri url)
diff --git a/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/SchemeExtension.cs b/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/SchemeExtension.cs
index 1304e2a50e..0060666094 100644
--- a/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/SchemeExtension.cs
+++ b/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/SchemeExtension.cs
@@ -16,10 +16,28 @@ namespace ICSharpCode.SharpDevelop.BrowserDisplayBinding
public interface ISchemeExtension
{
void InterceptNavigate(HtmlViewPane pane, WebBrowserNavigatingEventArgs e);
+ void DocumentCompleted(HtmlViewPane pane, WebBrowserDocumentCompletedEventArgs e);
void GoHome(HtmlViewPane pane);
void GoSearch(HtmlViewPane pane);
}
+ public class DefaultSchemeExtension : ISchemeExtension
+ {
+ public virtual void InterceptNavigate(HtmlViewPane pane, WebBrowserNavigatingEventArgs e) {}
+
+ public virtual void DocumentCompleted(HtmlViewPane pane, WebBrowserDocumentCompletedEventArgs e) {}
+
+ public virtual void GoHome(HtmlViewPane pane)
+ {
+ pane.Navigate(HtmlViewPane.DefaultHomepage);
+ }
+
+ public virtual void GoSearch(HtmlViewPane pane)
+ {
+ pane.Navigate(HtmlViewPane.DefaultSearchUrl);
+ }
+ }
+
public class SchemeExtensionDescriptor
{
string schemeName;
diff --git a/src/Main/Base/Project/Src/Gui/Pads/HelpBrowser/HelpBrowser.cs b/src/Main/Base/Project/Src/Gui/Pads/HelpBrowser/HelpBrowser.cs
deleted file mode 100644
index 1e2ef9a3ce..0000000000
--- a/src/Main/Base/Project/Src/Gui/Pads/HelpBrowser/HelpBrowser.cs
+++ /dev/null
@@ -1,333 +0,0 @@
-//
-// 2002-2005 AlphaSierraPapa
-// GNU General Public License
-//
-// $Revision$
-//
-
-using Microsoft.Win32;
-using System;
-using System.Windows.Forms;
-using System.Drawing;
-using System.CodeDom.Compiler;
-using System.IO;
-using System.Text;
-using System.Threading;
-using System.Diagnostics;
-using System.Xml;
-using System.Reflection;
-
-using ICSharpCode.Core;
-
-using ICSharpCode.SharpZipLib.Zip;
-using ICSharpCode.SharpDevelop.BrowserDisplayBinding;
-
-namespace ICSharpCode.SharpDevelop.Gui
-{
- public class HelpBrowserWindow : BrowserPane
- {
- public HelpBrowserWindow() : base(true)
- {
- TitleName = "Help";
- }
- }
-
- class HelpLinkInformation
- {
- string link;
- bool isMSDN = false;
-
- public string Link {
- get {
- return link;
- }
- set {
- link = value;
- }
- }
- public bool IsMSDN {
- get {
- return isMSDN;
- }
- set {
- isMSDN = value;
- }
- }
-
- public HelpLinkInformation(string link, bool isMSDN)
- {
- this.link = link;
- this.isMSDN = isMSDN;
- }
-
- }
-
- public class HelpBrowser : AbstractPadContent
- {
- static readonly string helpPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) +
- Path.DirectorySeparatorChar + ".." +
- Path.DirectorySeparatorChar + "doc" +
- Path.DirectorySeparatorChar + "help" +
- Path.DirectorySeparatorChar;
-
- static readonly string helpFileName = helpPath + "SharpDevelopHelp.zip";
- static readonly string mainTOCFile = "HelpConv.xml";
- string HelpPrefix = "ms-help://MS.NETFrameworkSDK";
-
-
- Panel browserPanel = new Panel();
- TreeView treeView = new TreeView();
-
- HelpBrowserWindow helpBrowserWindow = null;
-
- public override Control Control {
- get {
- return browserPanel;
- }
- }
-
- public HelpBrowser()
- {
- treeView.Dock = DockStyle.Fill;
- treeView.ImageList = new ImageList();
- treeView.ImageList.ColorDepth = ColorDepth.Depth32Bit;
-
-
- treeView.ImageList.Images.Add(ResourceService.GetBitmap("Icons.16x16.HelpClosedFolder"));
- treeView.ImageList.Images.Add(ResourceService.GetBitmap("Icons.16x16.HelpOpenFolder"));
-
- treeView.ImageList.Images.Add(ResourceService.GetBitmap("Icons.16x16.HelpTopic"));
- treeView.BeforeExpand += new TreeViewCancelEventHandler(BeforeExpand);
- treeView.BeforeCollapse += new TreeViewCancelEventHandler(BeforeCollapse);
- treeView.AfterSelect += new TreeViewEventHandler(SelectNode);
- browserPanel.Controls.Add(treeView);
- if (File.Exists(helpFileName))
- {
- LoadHelpfile();
- ScanForLocalizedHelpPrefix();
- }
- }
-
- void ScanForLocalizedHelpPrefix()
- {
- string localHelp = String.Concat("0x", Thread.CurrentThread.CurrentCulture.LCID.ToString("X4"));
- RegistryKey helpKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\MSDN\7.0\Help");
- if (helpKey == null) {
- return;
- }
-
- RegistryKey k = helpKey.OpenSubKey(localHelp);
- bool found = false;
- if (k != null) {
- string v = ScanSubKeys(k);
- if (v != null) {
- HelpPrefix = v;
- found = true;
- }
- }
-
- if (!found) {
- // use default english subkey
- k = helpKey.OpenSubKey("0x0409");
- string v = k != null ? ScanSubKeys(k) : null;
- if (v != null) {
- HelpPrefix = v;
- } else {
- string[] subKeys = helpKey.GetSubKeyNames();
- foreach (string subKey in subKeys) {
- if (subKey.StartsWith("0x")) {
- HelpPrefix = ScanSubKeys(helpKey.OpenSubKey(subKey));
- break;
- }
- }
- }
- }
- }
-
- string ScanSubKeys(RegistryKey key)
- {
- if (key != null) {
- string[] subKeys = key.GetSubKeyNames();
- if (subKeys != null) {
- foreach (string subKey in subKeys) {
- RegistryKey sub = key.OpenSubKey(subKey);
- if (sub == null) {
- continue;
- }
- object o = sub.GetValue(null);
- if (o == null) {
- continue;
- }
- if (o.ToString().StartsWith("Microsoft .NET Framework SDK")) {
- return sub.GetValue("Filename").ToString();
- }
- }
- }
- }
- return null;
- }
- protected string GetHelpString(string word)
- {
- int i = 0;
- while ((i = word.IndexOf('.')) != -1) {
- word = word.Remove(i,1);
- }
- return word;
- }
-
- public void ShowHelpFromType(string type)
- {
- string url = String.Format("{0}/cpref/html/frlrf{1}ClassTopic.htm",
- HelpPrefix,
- GetHelpString(type));
- ShowHelpBrowser(url);
- }
-
- public void ShowHelpFromType(string type, string member)
- {
- string url = String.Format("{0}/cpref/html/frlrf{1}Class{2}Topic.htm",
- HelpPrefix,
- GetHelpString(type),
- member);
- ShowHelpBrowser(url);
- }
-
- ///
- /// Parses the xml tree and generates a TreeNode tree out of it.
- ///
- void ParseTree(TreeNodeCollection nodeCollection, XmlNode parentNode)
- {
- foreach (XmlNode node in parentNode.ChildNodes) {
- switch (node.Name) {
- case "HelpFolder":
- TreeNode newFolderNode = new TreeNode(node.Attributes["name"].InnerText);
- newFolderNode.ImageIndex = newFolderNode.SelectedImageIndex = 0;
- ParseTree(newFolderNode.Nodes, node);
-
- bool isMSDNLink = node.Attributes["ismsdn"] != null && node.Attributes["ismsdn"].Value.ToLower() == "true";
- newFolderNode.Tag = node.Attributes["link"] != null ? new HelpLinkInformation(node.Attributes["link"].InnerText , isMSDNLink) : null;
-
- nodeCollection.Add(newFolderNode);
- break;
- case "HelpTopic":
- TreeNode newNode = new TreeNode(node.Attributes["name"].InnerText);
- newNode.ImageIndex = newNode.SelectedImageIndex = 2;
-
- isMSDNLink = node.Attributes["ismsdn"] != null && node.Attributes["ismsdn"].Value.ToLower() == "true";
- newNode.Tag = new HelpLinkInformation(node.Attributes["link"].InnerText, isMSDNLink);
- nodeCollection.Add(newNode);
- break;
- case "HelpReference":
- TreeNode newReferenceNode = new TreeNode("Reference");
- newReferenceNode.Tag = node.Attributes["reference"].InnerText;
- nodeCollection.Add(newReferenceNode);
- break;
- }
- }
- }
-
- XmlDocument LoadCompressedXmlDocument(string requestedFile)
- {
- ZipInputStream s = new ZipInputStream(File.OpenRead(helpFileName));
-
- ZipEntry theEntry;
- while ((theEntry = s.GetNextEntry()) != null) {
- if (theEntry.Name == requestedFile) {
-
- StringBuilder sb = new StringBuilder();
- int size = 2048;
- byte[] data = new byte[2048];
- while (true) {
- size = s.Read(data, 0, data.Length);
- if (size > 0) {
- sb.Append(Encoding.UTF8.GetString(data, 0, size));
- } else {
- break;
- }
- }
- s.Close();
- XmlDocument doc = new XmlDocument();
- doc.LoadXml(sb.ToString());
- return doc;
- }
- }
- s.Close();
- System.Diagnostics.Debug.Assert(false);
- return null;
- }
-
- void LoadHelpfile()
- {
- XmlDocument doc = LoadCompressedXmlDocument(mainTOCFile);new XmlDocument();
- ParseTree(treeView.Nodes, doc.DocumentElement);
- }
-
- void HelpBrowserClose(object sender, EventArgs e)
- {
- helpBrowserWindow = null;
- }
-
- public void ShowHelpBrowser(string url)
- {
- if (helpBrowserWindow == null) {
- helpBrowserWindow = new HelpBrowserWindow();
- WorkbenchSingleton.Workbench.ShowView(helpBrowserWindow);
- helpBrowserWindow.WorkbenchWindow.CloseEvent += new EventHandler(HelpBrowserClose);
- }
- helpBrowserWindow.Load(url);
- helpBrowserWindow.WorkbenchWindow.SelectWindow();
- }
-
-
-
- void ShowHelp(TreeNode node)
- {
- if (node == null || node.Tag == null) {
- return;
- }
- string navigationName;
-
- if(((HelpLinkInformation)node.Tag).IsMSDN == true) {
- navigationName = ((HelpLinkInformation)node.Tag).Link;
- } else {
- navigationName = "mk:@MSITStore:" + helpPath + ((HelpLinkInformation)node.Tag).Link;
- }
-
- ShowHelpBrowser(navigationName);
- }
-
- void SelectNode(object sender, TreeViewEventArgs e)
- {
- ShowHelp(e.Node);
- }
-
- void BeforeExpand(object sender, TreeViewCancelEventArgs e)
- {
- if (e.Node.ImageIndex < 2) {
- e.Node.ImageIndex = e.Node.SelectedImageIndex = 1;
- }
-
- TreeNode[] nodes = new TreeNode[e.Node.Nodes.Count];
- e.Node.Nodes.CopyTo(nodes, 0);
- e.Node.Nodes.Clear();
-
- foreach (TreeNode node in nodes) {
- if (node.Tag is string) {
-
- XmlDocument doc = LoadCompressedXmlDocument(node.Tag.ToString());
- ParseTree(e.Node.Nodes, doc.DocumentElement);
- } else {
- e.Node.Nodes.Add(node);
- }
- }
- ShowHelp(e.Node);
- }
-
- void BeforeCollapse(object sender, TreeViewCancelEventArgs e)
- {
- if (e.Node.ImageIndex < 2) {
- e.Node.ImageIndex = e.Node.SelectedImageIndex = 0;
- }
- }
- }
-}