diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexPad.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexPad.cs
index 3fe78866b3..84403ada66 100644
--- a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexPad.cs
+++ b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexPad.cs
@@ -51,58 +51,47 @@ namespace HtmlHelp2
public HtmlHelp2IndexPad()
{
help2IndexControl = new MsHelp2IndexControl();
- if (help2IndexControl.IsEnabled) help2IndexControl.LoadIndex();
}
}
-
+
public class MsHelp2IndexControl : UserControl
{
AxHxIndexCtrl indexControl = null;
- ComboBox filterCombobox = new ComboBox();
- ComboBox searchTerm = new ComboBox();
- Label label1 = new Label();
- Label label2 = new Label();
- bool itemClicked = false;
- bool controlIsEnabled = false;
-
+ ComboBox filterCombobox = new ComboBox();
+ ComboBox searchTerm = new ComboBox();
+ Label label1 = new Label();
+ Label label2 = new Label();
+ bool itemClicked = false;
+ bool isEnabled = false;
+
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
- if (disposing && indexControl != null) { indexControl.Dispose(); }
- }
-
- public bool IsEnabled
- {
- get { return this.controlIsEnabled; }
- }
-
- public void RedrawContent()
- {
- label1.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.FilteredBy}");
- label2.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.LookFor}");
+ if (disposing && indexControl != null)
+ {
+ indexControl.Dispose();
+ }
}
public MsHelp2IndexControl()
{
- this.controlIsEnabled = (HtmlHelp2Environment.IsReady &&
- Help2ControlsValidation.IsIndexControlRegistered);
+ this.isEnabled = (HtmlHelp2Environment.IsReady &&
+ Help2ControlsValidation.IsIndexControlRegistered);
- if (this.controlIsEnabled)
+ if (this.isEnabled)
{
try
{
- indexControl = new AxHxIndexCtrl();
+ indexControl = new AxHxIndexCtrl();
indexControl.BeginInit();
- indexControl.Dock = DockStyle.Fill;
- indexControl.ItemClick += new AxMSHelpControls.IHxIndexViewEvents_ItemClickEventHandler(this.IndexItemClicked);
+ indexControl.Dock = DockStyle.Fill;
+ indexControl.ItemClick +=
+ new AxMSHelpControls.IHxIndexViewEvents_ItemClickEventHandler(this.IndexItemClick);
indexControl.EndInit();
Controls.Add(indexControl);
indexControl.CreateControl();
- indexControl.BorderStyle = HxBorderStyle.HxBorderStyle_FixedSingle;
- indexControl.FontSource = HxFontSourceConstant.HxFontExternal;
-
- HtmlHelp2Environment.FilterQueryChanged += new EventHandler(FilterQueryChanged);
- HtmlHelp2Environment.NamespaceReloaded += new EventHandler(NamespaceReloaded);
+ indexControl.BorderStyle = HxBorderStyle.HxBorderStyle_FixedSingle;
+ indexControl.FontSource = HxFontSourceConstant.HxFontExternal;
}
catch (Exception ex)
{
@@ -114,147 +103,152 @@ namespace HtmlHelp2
{
this.FakeHelpControl();
}
-
- // Filter Combobox
- Panel panel1 = new Panel();
+
+ Panel panel1 = new Panel();
Controls.Add(panel1);
- panel1.Dock = DockStyle.Top;
- panel1.Height = filterCombobox.Height + 7;
+ panel1.Dock = DockStyle.Top;
+ panel1.Height = filterCombobox.Height + 7;
+
panel1.Controls.Add(filterCombobox);
- filterCombobox.Dock = DockStyle.Top;
- filterCombobox.DropDownStyle = ComboBoxStyle.DropDownList;
- filterCombobox.Sorted = true;
- filterCombobox.Enabled = this.controlIsEnabled;
- filterCombobox.SelectedIndexChanged += new EventHandler(FilterChanged);
+ filterCombobox.Dock = DockStyle.Top;
+ filterCombobox.DropDownStyle = ComboBoxStyle.DropDownList;
+ filterCombobox.Sorted = true;
+ filterCombobox.Enabled = this.isEnabled;
+ filterCombobox.SelectedIndexChanged += new EventHandler(this.FilterChanged);
- // Filter label
Controls.Add(label1);
- label1.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.FilteredBy}");
- label1.Dock = DockStyle.Top;
+ label1.Dock = DockStyle.Top;
label1.TextAlign = ContentAlignment.MiddleLeft;
- label1.Enabled = this.controlIsEnabled;
+ label1.Enabled = this.isEnabled;
- // SearchTerm Combobox
- Panel panel2 = new Panel();
+ Panel panel2 = new Panel();
Controls.Add(panel2);
- panel2.Dock = DockStyle.Top;
- panel2.Height = searchTerm.Height + 7;
+ panel2.Dock = DockStyle.Top;
+ panel2.Height = searchTerm.Height + 7;
+
panel2.Controls.Add(searchTerm);
- searchTerm.Dock = DockStyle.Top;
- searchTerm.Enabled = this.controlIsEnabled;
- searchTerm.TextChanged += new EventHandler(SearchTextChanged);
- searchTerm.KeyPress += new KeyPressEventHandler(KeyPressed);
+ searchTerm.Dock = DockStyle.Top;
+ searchTerm.Enabled = this.isEnabled;
+ searchTerm.TextChanged += new EventHandler(this.SearchTextChanged);
+ searchTerm.KeyPress += new KeyPressEventHandler(this.SearchKeyPress);
- // SearchTerm Label
Controls.Add(label2);
- label2.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.LookFor}");
- label2.Dock = DockStyle.Top;
- label2.TextAlign = ContentAlignment.MiddleLeft;
- label2.Enabled = this.controlIsEnabled;
+ label2.Dock = DockStyle.Top;
+ label2.TextAlign = ContentAlignment.MiddleLeft;
+ label2.Enabled = this.isEnabled;
+
+ this.RedrawContent();
+
+ if (this.isEnabled)
+ {
+ HtmlHelp2Environment.FilterQueryChanged += new EventHandler(this.FilterQueryChanged);
+ HtmlHelp2Environment.NamespaceReloaded += new EventHandler(this.NamespaceReloaded);
+ this.LoadIndex();
+ }
}
private void FakeHelpControl()
{
if (indexControl != null) indexControl.Dispose();
-
- indexControl = null;
+ indexControl = null;
+
Controls.Clear();
- Panel nohelpPanel = new Panel();
- Controls.Add(nohelpPanel);
- nohelpPanel.Dock = DockStyle.Fill;
+ Panel nohelpPanel = new Panel();
+ nohelpPanel.Dock = DockStyle.Fill;
nohelpPanel.BorderStyle = BorderStyle.Fixed3D;
+ Controls.Add(nohelpPanel);
}
- public void LoadIndex()
+ public void RedrawContent()
{
- if (!this.controlIsEnabled) return;
-
- try
- {
- searchTerm.Text = "";
- searchTerm.Items.Clear();
- indexControl.IndexData = HtmlHelp2Environment.GetIndex(HtmlHelp2Environment.CurrentFilterQuery);
- filterCombobox.SelectedIndexChanged -= new EventHandler(FilterChanged);
- HtmlHelp2Environment.BuildFilterList(filterCombobox);
- filterCombobox.SelectedIndexChanged += new EventHandler(FilterChanged);
- }
- catch
- {
- LoggingService.Error("Help 2.0: cannot connect to IHxIndex interface (Index)");
- indexControl.Enabled = false;
- indexControl.BackColor = SystemColors.ButtonFace;
- filterCombobox.Enabled = false;
- searchTerm.Enabled = false;
- }
+ label1.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.FilteredBy}");
+ label2.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.LookFor}");
}
- private void FilterChanged(object sender, EventArgs e)
+ private void IndexItemClick(object sender, IHxIndexViewEvents_ItemClickEvent e)
{
- string selectedString = filterCombobox.SelectedItem.ToString();
+ string indexTerm = indexControl.IndexData.GetFullStringFromSlot(e.iItem, ",");
+ int indexSlot = e.iItem;
- if (selectedString != "")
- {
- Cursor.Current = Cursors.WaitCursor;
- indexControl.IndexData = HtmlHelp2Environment.GetIndex(HtmlHelp2Environment.FindFilterQuery(selectedString));
- Cursor.Current = Cursors.Default;
- }
+ itemClicked = true;
+ searchTerm.Items.Insert(0, indexTerm);
+ searchTerm.SelectedIndex = 0;
+ itemClicked = false;
+
+
+ this.ShowSelectedItemEntry(indexTerm, indexSlot);
}
- #region Help 2.0 Environment Events
- private void FilterQueryChanged(object sender, EventArgs e)
+ private void FilterChanged(object sender, EventArgs e)
{
- Application.DoEvents();
-
- string currentFilterName = filterCombobox.SelectedItem.ToString();
- if (String.Compare(currentFilterName, HtmlHelp2Environment.CurrentFilterName) != 0)
+ string selectedFilterName = filterCombobox.SelectedItem.ToString();
+ if (selectedFilterName != null && selectedFilterName.Length > 0)
{
- filterCombobox.SelectedIndexChanged -= new EventHandler(FilterChanged);
- filterCombobox.SelectedIndex = filterCombobox.Items.IndexOf(HtmlHelp2Environment.CurrentFilterName);
- indexControl.IndexData = HtmlHelp2Environment.GetIndex(HtmlHelp2Environment.CurrentFilterQuery);
- filterCombobox.SelectedIndexChanged += new EventHandler(FilterChanged);
+ Cursor.Current = Cursors.WaitCursor;
+ this.SetIndex(selectedFilterName);
+ Cursor.Current = Cursors.Default;
}
}
- private void NamespaceReloaded(object sender, EventArgs e)
- {
- this.LoadIndex();
- }
- #endregion
-
private void SearchTextChanged(object sender, EventArgs e)
{
- if (!itemClicked && searchTerm.Text != "")
+ if (!this.itemClicked && searchTerm.Text.Length > 0)
{
- indexControl.Selection = indexControl.IndexData.GetSlotFromString(searchTerm.Text);
+ indexControl.Selection =
+ indexControl.IndexData.GetSlotFromString(searchTerm.Text);
}
}
- private void KeyPressed(object sender, KeyPressEventArgs e)
+ private void SearchKeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)13)
{
- int indexSlot = indexControl.IndexData.GetSlotFromString(searchTerm.Text);
+ int indexSlot = indexControl.IndexData.GetSlotFromString(searchTerm.Text);
string indexTerm = indexControl.IndexData.GetFullStringFromSlot(indexSlot, ",");
- searchTerm.Items.Insert(0,indexTerm);
+ searchTerm.Items.Insert(0, indexTerm);
searchTerm.SelectedIndex = 0;
- if (searchTerm.Items.Count > 10) searchTerm.Items.RemoveAt(10);
+ if (searchTerm.Items.Count > 10)
+ {
+ searchTerm.Items.RemoveAt(10);
+ }
this.ShowSelectedItemEntry(indexTerm, indexSlot);
}
}
-
- private void IndexItemClicked(object sender, IHxIndexViewEvents_ItemClickEvent e)
+
+ private void LoadIndex()
{
- string indexTerm = indexControl.IndexData.GetFullStringFromSlot(e.iItem, ",");
- int indexSlot = e.iItem;
-
- itemClicked = true;
- searchTerm.Items.Insert(0,indexTerm);
- searchTerm.SelectedIndex = 0;
- itemClicked = false;
+ this.SetIndex(HtmlHelp2Environment.CurrentFilterName);
+ if (this.isEnabled)
+ {
+ searchTerm.Text = string.Empty;
+ searchTerm.Items.Clear();
+ filterCombobox.SelectedIndexChanged -= new EventHandler(this.FilterChanged);
+ HtmlHelp2Environment.BuildFilterList(filterCombobox);
+ filterCombobox.SelectedIndexChanged += new EventHandler(this.FilterChanged);
+ }
+ }
- this.ShowSelectedItemEntry(indexTerm, indexSlot);
+ private void SetIndex(string filterName)
+ {
+ if (!this.isEnabled) return;
+ try
+ {
+ indexControl.IndexData =
+ HtmlHelp2Environment.GetIndex(HtmlHelp2Environment.FindFilterQuery(filterName));
+ }
+ catch
+ {
+ this.isEnabled = false;
+ indexControl.Enabled = false;
+ indexControl.BackColor = SystemColors.ButtonFace;
+ filterCombobox.Enabled = false;
+ searchTerm.Enabled = false;
+ label1.Enabled = false;
+ label2.Enabled = false;
+ LoggingService.Error("Help 2.0: cannot connect to IHxIndex interface (Index)");
+ }
}
private void ShowSelectedItemEntry(string indexTerm, int indexSlot)
@@ -275,9 +269,10 @@ namespace HtmlHelp2
foreach (IHxTopic topic in matchingTopics)
{
ListViewItem lvi = new ListViewItem();
- lvi.Text = topic.get_Title(HxTopicGetTitleType.HxTopicGetRLTitle,
- HxTopicGetTitleDefVal.HxTopicGetTitleFileName);
- lvi.Tag = topic;
+ lvi.Text =
+ topic.get_Title(HxTopicGetTitleType.HxTopicGetRLTitle,
+ HxTopicGetTitleDefVal.HxTopicGetTitleFileName);
+ lvi.Tag = topic;
lvi.SubItems.Add(topic.Location);
((HtmlHelp2IndexResultsPad)indexResults.PadContent).IndexResultsListView.Items.Add(lvi);
}
@@ -307,5 +302,32 @@ namespace HtmlHelp2
LoggingService.Error("Help 2.0: cannot get matching index entries; " + ex.ToString());
}
}
+
+ #region Help 2.0 Environment Events
+ private void FilterQueryChanged(object sender, EventArgs e)
+ {
+ Application.DoEvents();
+
+ string currentFilterName = filterCombobox.SelectedItem.ToString();
+ if (string.Compare(currentFilterName, HtmlHelp2Environment.CurrentFilterName) != 0)
+ {
+ filterCombobox.SelectedIndexChanged -= new EventHandler(this.FilterChanged);
+ filterCombobox.SelectedIndex =
+ filterCombobox.Items.IndexOf(HtmlHelp2Environment.CurrentFilterName);
+ this.SetIndex(HtmlHelp2Environment.CurrentFilterName);
+ filterCombobox.SelectedIndexChanged += new EventHandler(this.FilterChanged);
+ }
+ }
+
+ private void NamespaceReloaded(object sender, EventArgs e)
+ {
+ this.LoadIndex();
+ }
+ #endregion
+
+ public bool IsEnabled
+ {
+ get { return this.isEnabled; }
+ }
}
}
diff --git a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/TocPad.cs b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/TocPad.cs
index 5484d79df2..acd114ec4d 100644
--- a/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/TocPad.cs
+++ b/src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/TocPad.cs
@@ -55,32 +55,31 @@ namespace HtmlHelp2
public HtmlHelp2TocPad()
{
help2TocControl = new MsHelp2TocControl();
- if (help2TocControl.IsEnabled) help2TocControl.LoadToc();
}
public void SyncToc(string topicUrl)
{
- if (help2TocControl.IsEnabled) help2TocControl.SynchronizeToc(topicUrl);
+ help2TocControl.SynchronizeToc(topicUrl);
}
public void GetPrevFromNode()
{
- if (help2TocControl.IsEnabled) help2TocControl.GetPrevFromNode();
+ help2TocControl.GetPrevFromNode();
}
public void GetPrevFromUrl(string topicUrl)
{
- if (help2TocControl.IsEnabled) help2TocControl.GetPrevFromUrl(topicUrl);
+ help2TocControl.GetPrevFromUrl(topicUrl);
}
public void GetNextFromNode()
{
- if (help2TocControl.IsEnabled) help2TocControl.GetNextFromNode();
+ help2TocControl.GetNextFromNode();
}
public void GetNextFromUrl(string topicUrl)
{
- if (help2TocControl.IsEnabled) help2TocControl.GetNextFromUrl(topicUrl);
+ help2TocControl.GetNextFromUrl(topicUrl);
}
public bool IsNotFirstNode
@@ -96,67 +95,62 @@ namespace HtmlHelp2
public class MsHelp2TocControl : UserControl
{
- AxHxTocCtrl tocControl = null;
- ComboBox filterCombobox = new ComboBox();
- Label label1 = new Label();
- ContextMenuStrip printPopup = new ContextMenuStrip();
- ToolStripMenuItem printTopic = new ToolStripMenuItem();
- ToolStripMenuItem printChildTopics = new ToolStripMenuItem();
- bool controlIsEnabled = false;
+ AxHxTocCtrl tocControl = null;
+ ComboBox filterCombobox = new ComboBox();
+ Label label1 = new Label();
+ ContextMenuStrip printContextMenu = new ContextMenuStrip();
+ ToolStripMenuItem printTopic = new ToolStripMenuItem();
+ ToolStripMenuItem printTopicAndSubTopics = new ToolStripMenuItem();
+ bool isEnabled = false;
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
- if (disposing && tocControl != null) { tocControl.Dispose(); }
- }
-
- public bool IsEnabled
- {
- get { return this.controlIsEnabled; }
- }
-
- public void RedrawContent()
- {
- label1.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.FilteredBy}");
+ if (disposing && tocControl != null)
+ {
+ tocControl.Dispose();
+ }
}
public MsHelp2TocControl()
{
- this.controlIsEnabled = (HtmlHelp2Environment.IsReady &&
- Help2ControlsValidation.IsTocControlRegistered);
+ this.isEnabled = (HtmlHelp2Environment.IsReady && Help2ControlsValidation.IsTocControlRegistered);
- if (this.controlIsEnabled)
+ if (this.isEnabled)
{
try
{
- tocControl = new AxHxTocCtrl();
+ tocControl = new AxHxTocCtrl();
tocControl.BeginInit();
- tocControl.Dock = DockStyle.Fill;
- tocControl.NodeClick +=
- new AxMSHelpControls.IHxTreeViewEvents_NodeClickEventHandler(this.TocNodeClicked);
- tocControl.NodeRightClick +=
- new AxMSHelpControls.IHxTreeViewEvents_NodeRightClickEventHandler(this.TocNodeRightClicked);
+ tocControl.Dock = DockStyle.Fill;
+ tocControl.NodeClick +=
+ new AxMSHelpControls.IHxTreeViewEvents_NodeClickEventHandler(this.TocNodeClick);
+ tocControl.NodeRightClick +=
+ new AxMSHelpControls.IHxTreeViewEvents_NodeRightClickEventHandler(TocNodeRightClick);
tocControl.EndInit();
Controls.Add(tocControl);
tocControl.CreateControl();
- tocControl.BorderStyle = HxBorderStyle.HxBorderStyle_FixedSingle;
- tocControl.FontSource = HxFontSourceConstant.HxFontExternal;
- #if DExplore8Style_NoTOCPictures
- tocControl.TreeStyle = HxTreeStyleConstant.HxTreeStyle_TreelinesPlusMinusText;
- #endif
- printTopic.Image = ResourcesHelper.GetBitmap("HtmlHelp2.16x16.Print.bmp");
- printTopic.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText;
- printTopic.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.PrintTopic}");
- printChildTopics.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.PrintSubtopics}");
- printPopup.Items.Add(printTopic);
- printTopic.Click += new EventHandler(this.PrintTopic);
- printPopup.Items.Add(printChildTopics);
- printChildTopics.Click += new EventHandler(this.PrintTopicAndSubtopics);
+ tocControl.BorderStyle = HxBorderStyle.HxBorderStyle_FixedSingle;
+ tocControl.FontSource = HxFontSourceConstant.HxFontExternal;
+ #if DExplore8StyleWithNoTocPictures
+ tocControl.TreeStyle = HxTreeStyleConstant.HxTreeStyle_TreelinesPlusMinusText;
+ #endif
+
+ printTopic.Image = ResourcesHelper.GetBitmap("HtmlHelp2.16x16.Print.bmp");
+ printTopic.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText;
+ printTopic.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.PrintTopic}");
+ printTopic.Click += new EventHandler(this.PrintTopic);
+ printContextMenu.Items.Add(printTopic);
+
+ printTopicAndSubTopics.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.PrintSubtopics}");
+ printTopicAndSubTopics.Click += new EventHandler(this.PrintTopicAndSubTopics);
+ printContextMenu.Items.Add(printTopicAndSubTopics);
}
- catch (Exception ex)
+ catch(Exception ex)
{
LoggingService.Error("Help 2.0: TOC control failed; " + ex.ToString());
+ this.isEnabled = false;
this.FakeHelpControl();
}
}
@@ -164,161 +158,189 @@ namespace HtmlHelp2
{
this.FakeHelpControl();
}
-
- // Combobox panel
- Panel panel1 = new Panel();
+
+ Panel panel1 = new Panel();
Controls.Add(panel1);
- panel1.Dock = DockStyle.Top;
- panel1.Height = filterCombobox.Height + 7;
+ panel1.Dock = DockStyle.Top;
+ panel1.Height = filterCombobox.Height + 7;
+
panel1.Controls.Add(filterCombobox);
- filterCombobox.Dock = DockStyle.Top;
- filterCombobox.DropDownStyle = ComboBoxStyle.DropDownList;
- filterCombobox.Sorted = true;
- filterCombobox.Enabled = this.controlIsEnabled;
- filterCombobox.SelectedIndexChanged += new EventHandler(this.FilterChanged);
+ filterCombobox.Dock = DockStyle.Top;
+ filterCombobox.DropDownStyle = ComboBoxStyle.DropDownList;
+ filterCombobox.Sorted = true;
+ filterCombobox.Enabled = this.isEnabled;
+ filterCombobox.SelectedIndexChanged += new EventHandler(this.FilterChanged);
- // Filter label
Controls.Add(label1);
- label1.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.FilteredBy}");
- label1.Dock = DockStyle.Top;
- label1.TextAlign = ContentAlignment.MiddleLeft;
- label1.Enabled = this.controlIsEnabled;
-
- if (this.controlIsEnabled)
+ label1.Dock = DockStyle.Top;
+ label1.TextAlign = ContentAlignment.MiddleLeft;
+ label1.Enabled = this.isEnabled;
+ this.RedrawContent();
+
+ if (this.isEnabled)
{
- HtmlHelp2Environment.FilterQueryChanged += new EventHandler(this.FilterQueryChanged);
- HtmlHelp2Environment.NamespaceReloaded += new EventHandler(this.NamespaceReloaded);
+ HtmlHelp2Environment.FilterQueryChanged += new EventHandler(this.FilterQueryChanged);
+ HtmlHelp2Environment.NamespaceReloaded += new EventHandler(this.NamespaceReloaded);
+ this.LoadToc();
}
}
private void FakeHelpControl()
{
- tocControl = null;
- Label nohelpLabel = new Label();
- nohelpLabel.Dock = DockStyle.Fill;
- nohelpLabel.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.HelpSystemNotAvailable}");
+ if (tocControl != null) tocControl.Dispose();
+ tocControl = null;
+
+ Controls.Clear();
+ Label nohelpLabel = new Label();
+ nohelpLabel.Dock = DockStyle.Fill;
+ nohelpLabel.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.HelpSystemNotAvailable}");
nohelpLabel.TextAlign = ContentAlignment.MiddleCenter;
Controls.Add(nohelpLabel);
}
- public void LoadToc()
+ public void RedrawContent()
+ {
+ label1.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.FilteredBy}");
+ }
+
+ private void TocNodeClick(object sender, IHxTreeViewEvents_NodeClickEvent e)
{
- if (!this.controlIsEnabled) return;
+ string topicUrl = tocControl.Hierarchy.GetURL(e.hNode);
+ this.CallHelp(topicUrl);
+ }
- try
+ private void TocNodeRightClick(object sender, IHxTreeViewEvents_NodeRightClickEvent e)
+ {
+ if (e.hNode != 0)
{
- tocControl.Hierarchy = HtmlHelp2Environment.GetTocHierarchy(HtmlHelp2Environment.CurrentFilterQuery);
- filterCombobox.SelectedIndexChanged -= new EventHandler(this.FilterChanged);
- HtmlHelp2Environment.BuildFilterList(filterCombobox);
- filterCombobox.SelectedIndexChanged += new EventHandler(this.FilterChanged);
+ printTopic.Enabled = tocControl.Hierarchy.GetURL(e.hNode) != "";
+ printTopicAndSubTopics.Enabled = tocControl.Hierarchy.GetFirstChild(e.hNode) != 0;
+ bool selectTextFlag = (tocControl.Hierarchy.GetFirstChild(e.hNode) == 0 ||
+ tocControl.Hierarchy.GetURL(e.hNode) == "");
+ printTopicAndSubTopics.Text =
+ StringParser.Parse((selectTextFlag)?
+ "${res:AddIns.HtmlHelp2.PrintSubtopics}":
+ "${res:AddIns.HtmlHelp2.PrintTopicAndSubtopics}");
+
+ Point p = new Point(e.x, e.y);
+ p = this.PointToClient(p);
+ printContextMenu.Show(this, p);
}
- catch
+ }
+
+ #region Printing
+ private void PrintTopic(object sender, EventArgs e)
+ {
+ if (tocControl.Selection != 0)
{
- LoggingService.Error("Help 2.0: cannot connect to IHxHierarchy interface (Contents)");
- tocControl.Enabled = false;
- tocControl.BackColor = SystemColors.ButtonFace;
- filterCombobox.Enabled = false;
+ tocControl.Hierarchy.PrintNode(0, tocControl.Selection, PrintOptions.HxHierarchy_PrintNode_Option_Node);
}
}
- private void FilterChanged(object sender, EventArgs e)
+ private void PrintTopicAndSubTopics(object sender, EventArgs e)
{
- string selectedString = filterCombobox.SelectedItem.ToString();
-
- if (selectedString != null && selectedString != "")
+ if (tocControl.Selection != 0)
{
- Cursor.Current = Cursors.WaitCursor;
- tocControl.Hierarchy = HtmlHelp2Environment.GetTocHierarchy(HtmlHelp2Environment.FindFilterQuery(selectedString));
- Cursor.Current = Cursors.Default;
+ tocControl.Hierarchy.PrintNode(0, tocControl.Selection, PrintOptions.HxHierarchy_PrintNode_Option_Children);
}
}
+
+ #endregion
- #region Help 2.0 Environment Events
- private void FilterQueryChanged(object sender, EventArgs e)
+ private void FilterChanged(object sender, EventArgs e)
{
- Application.DoEvents();
-
- string currentFilterName = filterCombobox.SelectedItem.ToString();
- if (String.Compare(currentFilterName, HtmlHelp2Environment.CurrentFilterName) != 0)
+ string selectedFilterName = filterCombobox.SelectedItem.ToString();
+ if (selectedFilterName != null && selectedFilterName.Length > 0)
{
- filterCombobox.SelectedIndexChanged -= new EventHandler(this.FilterChanged);
- filterCombobox.SelectedIndex = filterCombobox.Items.IndexOf(HtmlHelp2Environment.CurrentFilterName);
- tocControl.Hierarchy = HtmlHelp2Environment.GetTocHierarchy(HtmlHelp2Environment.CurrentFilterQuery);
- filterCombobox.SelectedIndexChanged += new EventHandler(this.FilterChanged);
+ Cursor.Current = Cursors.WaitCursor;
+ this.SetToc(selectedFilterName);
+ Cursor.Current = Cursors.Default;
}
}
-
- private void NamespaceReloaded(object sender, EventArgs e)
+
+ private void LoadToc()
{
- this.LoadToc();
+ this.SetToc(HtmlHelp2Environment.CurrentFilterName);
+ if (this.isEnabled)
+ {
+ filterCombobox.SelectedIndexChanged -= new EventHandler(this.FilterChanged);
+ HtmlHelp2Environment.BuildFilterList(filterCombobox);
+ filterCombobox.SelectedIndexChanged += new EventHandler(this.FilterChanged);
+ }
}
- #endregion
-
- private void CallHelp(string topicUrl, bool syncToc)
+
+ private void SetToc(string filterName)
{
- if (topicUrl != null && topicUrl != "")
+ if (!this.isEnabled) return;
+ try
{
- if (syncToc) this.SynchronizeToc(topicUrl);
- ShowHelpBrowser.OpenHelpView(topicUrl);
+ tocControl.Hierarchy =
+ HtmlHelp2Environment.GetTocHierarchy(HtmlHelp2Environment.FindFilterQuery(filterName));
+ }
+ catch
+ {
+ this.isEnabled = false;
+ tocControl.Enabled = false;
+ tocControl.BackColor = SystemColors.ButtonFace;
+ filterCombobox.Enabled = false;
+ label1.Enabled = false;
+ LoggingService.Error("Help 2.0: cannot connect to IHxHierarchy interface (Contents)");
}
}
- private void TocNodeClicked(object sender, IHxTreeViewEvents_NodeClickEvent e)
+ private void CallHelp(string topicUrl)
{
- string TopicUrl = tocControl.Hierarchy.GetURL(e.hNode);
- this.CallHelp(TopicUrl,false);
+ this.CallHelp(topicUrl, true);
}
- #region Printing
- private void TocNodeRightClicked(object sender, IHxTreeViewEvents_NodeRightClickEvent e)
+ private void CallHelp(string topicUrl, bool syncToc)
{
- if (e.hNode != 0)
+ if (topicUrl.Length > 0)
{
- printTopic.Enabled = tocControl.Hierarchy.GetURL(e.hNode) != "";
- printChildTopics.Enabled = tocControl.Hierarchy.GetFirstChild(e.hNode) != 0;
- printChildTopics.Text = StringParser.Parse((tocControl.Hierarchy.GetFirstChild(e.hNode) == 0 || tocControl.Hierarchy.GetURL(e.hNode) == "")?
- "${res:AddIns.HtmlHelp2.PrintSubtopics}":
- "${res:AddIns.HtmlHelp2.PrintTopicAndSubtopics}");
-
- Point p = new Point(e.x, e.y);
- p = this.PointToClient(p);
- printPopup.Show(this, p);
+ if (syncToc) this.SynchronizeToc(topicUrl);
+ ShowHelpBrowser.OpenHelpView(topicUrl);
}
}
- private void PrintTopic(object sender, EventArgs e)
+ #region Help 2.0 Environment Events
+ private void FilterQueryChanged(object sender, EventArgs e)
{
- if (tocControl.Selection != 0)
+ Application.DoEvents();
+
+ string currentFilterName = filterCombobox.SelectedItem.ToString();
+ if (string.Compare(currentFilterName, HtmlHelp2Environment.CurrentFilterName) != 0)
{
- tocControl.Hierarchy.PrintNode(0,
- tocControl.Selection,
- PrintOptions.HxHierarchy_PrintNode_Option_Node);
+ filterCombobox.SelectedIndexChanged -= new EventHandler(this.FilterChanged);
+ filterCombobox.SelectedIndex =
+ filterCombobox.Items.IndexOf(HtmlHelp2Environment.CurrentFilterName);
+ this.SetToc(HtmlHelp2Environment.CurrentFilterName);
+ filterCombobox.SelectedIndexChanged += new EventHandler(this.FilterChanged);
}
}
- private void PrintTopicAndSubtopics(object sender, EventArgs e)
+ private void NamespaceReloaded(object sender, EventArgs e)
{
- if (tocControl.Selection != 0)
- {
- tocControl.Hierarchy.PrintNode(0,
- tocControl.Selection,
- PrintOptions.HxHierarchy_PrintNode_Option_Children);
- }
+ this.LoadToc();
}
#endregion
- #region published Help2 TOC Commands
+ #region Published Help 2.0 Commands
public void SynchronizeToc(string topicUrl)
{
- try {
+ if (!this.isEnabled) return;
+ try
+ {
tocControl.Synchronize(topicUrl);
- } catch (System.Runtime.InteropServices.COMException) {
+ }
+ catch (System.Runtime.InteropServices.COMException)
+ {
// SD2-812: ignore exception when trying to synchronize non-existing URL
}
}
public void GetNextFromNode()
{
+ if (!this.isEnabled) return;
int currentNode = tocControl.Hierarchy.GetNextFromNode(tocControl.Selection);
string topicUrl = tocControl.Hierarchy.GetURL(currentNode);
this.CallHelp(topicUrl, true);
@@ -326,18 +348,25 @@ namespace HtmlHelp2
public void GetNextFromUrl(string url)
{
- try {
+ if (!this.isEnabled || url == null || url.Length == 0) return;
+ try
+ {
int currentNode = tocControl.Hierarchy.GetNextFromUrl(url);
string topicUrl = tocControl.Hierarchy.GetURL(currentNode);
this.CallHelp(topicUrl, true);
- } catch (System.Runtime.InteropServices.COMException) {
- } catch (ArgumentException) {
+ }
+ catch (System.Runtime.InteropServices.COMException)
+ {
// SD2-812: ignore exception when trying to synchronize non-existing URL
}
+ catch (ArgumentException)
+ {
+ }
}
public void GetPrevFromNode()
{
+ if (!this.isEnabled) return;
int currentNode = tocControl.Hierarchy.GetPrevFromNode(tocControl.Selection);
string topicUrl = tocControl.Hierarchy.GetURL(currentNode);
this.CallHelp(topicUrl, true);
@@ -345,14 +374,20 @@ namespace HtmlHelp2
public void GetPrevFromUrl(string url)
{
- try {
+ if (!this.isEnabled || url == null || url.Length == 0) return;
+ try
+ {
int currentNode = tocControl.Hierarchy.GetPrevFromUrl(url);
string topicUrl = tocControl.Hierarchy.GetURL(currentNode);
this.CallHelp(topicUrl, true);
- } catch (ArgumentException) {
- } catch (System.Runtime.InteropServices.COMException) {
+ }
+ catch (System.Runtime.InteropServices.COMException)
+ {
// SD2-812: ignore exception when trying to synchronize non-existing URL
}
+ catch (ArgumentException)
+ {
+ }
}
public bool IsNotFirstNode
@@ -362,7 +397,7 @@ namespace HtmlHelp2
try
{
int currentNode = tocControl.Hierarchy.GetPrevFromNode(tocControl.Selection);
- return currentNode != 0;
+ return (currentNode != 0);
}
catch
{
@@ -378,7 +413,7 @@ namespace HtmlHelp2
try
{
int currentNode = tocControl.Hierarchy.GetNextFromNode(tocControl.Selection);
- return currentNode != 0;
+ return (currentNode != 0);
}
catch
{
@@ -386,6 +421,11 @@ namespace HtmlHelp2
}
}
}
+
+ public bool IsEnabled
+ {
+ get { return this.isEnabled; }
+ }
#endregion
}
}