Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Johnston2011-03-31 21:28:15 +0000
committerJeff Johnston2011-03-31 21:28:15 +0000
commit38911fe1eb9c6e8456f26756f4c076842eb502c4 (patch)
tree32ff557ebcadef969bdea2ab5318a54b8a72bd99 /libhover
parenteca01d6f6d035d93a15264210a16a3b2fa99ea63 (diff)
downloadorg.eclipse.linuxtools-38911fe1eb9c6e8456f26756f4c076842eb502c4.tar.gz
org.eclipse.linuxtools-38911fe1eb9c6e8456f26756f4c076842eb502c4.tar.xz
org.eclipse.linuxtools-38911fe1eb9c6e8456f26756f4c076842eb502c4.zip
Add devhelp plug-ins.
Diffstat (limited to 'libhover')
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/.project17
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/ChangeLog6
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/build.properties4
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/epl-v10.html328
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/feature.properties138
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/feature.xml39
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/license.html107
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/.classpath7
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/.project28
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/ChangeLog6
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/META-INF/MANIFEST.MF13
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/bin/org/eclipse/linuxtools/cdt/libhover/devhelp/test/Activator.classbin0 -> 838 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/bin/org/eclipse/linuxtools/cdt/libhover/devhelp/test/CheckDevhelp.classbin0 -> 4163 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/build.properties4
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/src/org/eclipse/linuxtools/cdt/libhover/devhelp/test/Activator.java30
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/src/org/eclipse/linuxtools/cdt/libhover/devhelp/test/CheckDevhelp.java69
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/.classpath7
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/.project28
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/ChangeLog3
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/META-INF/MANIFEST.MF18
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/cdt/libhover/devhelp/DevHelpPlugin.classbin0 -> 1275 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpContentProducer.classbin0 -> 2379 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider$1$1$1.classbin0 -> 1533 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider$1$1.classbin0 -> 4542 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider$1.classbin0 -> 2123 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider$DevhelpTopic.classbin0 -> 1688 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider.classbin0 -> 1022 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$DevHelpParser$1.classbin0 -> 1610 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$DevHelpParser$2.classbin0 -> 1384 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$DevHelpParser.classbin0 -> 8497 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$Parser.classbin0 -> 6611 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$UpdateDevhelp.classbin0 -> 803 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp.classbin0 -> 3216 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LabelFieldEditor.classbin0 -> 1820 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverMessages.classbin0 -> 1858 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverMessages.properties17
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$1.classbin0 -> 4620 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$2$1.classbin0 -> 1561 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$2.classbin0 -> 2070 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$3.classbin0 -> 1098 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$4.classbin0 -> 1247 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$DevhelpStringFieldEditor.classbin0 -> 1613 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage.classbin0 -> 5300 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/PreferenceConstants.classbin0 -> 696 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/PreferenceInitializer.classbin0 -> 1169 bytes
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/build.properties8
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/html/maintopic.html13
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/html/subtopic.html13
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/html/toc.html13
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/plugin.properties11
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/plugin.xml43
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/cdt/libhover/devhelp/DevHelpPlugin.java61
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpContentProducer.java46
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider.java163
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp.java469
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LabelFieldEditor.java39
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverMessages.java61
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverMessages.properties17
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage.java219
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/PreferenceConstants.java21
-rw-r--r--libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/PreferenceInitializer.java32
63 files changed, 2114 insertions, 0 deletions
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/.project b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/.project
new file mode 100644
index 0000000000..b0c96db476
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.linuxtools.cdt.libhover.devhelp-feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/ChangeLog b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/ChangeLog
new file mode 100644
index 0000000000..69f5275fa9
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/ChangeLog
@@ -0,0 +1,6 @@
+2011-03-31 Jeff Johnston <jjohnstn@redhat.com>
+
+ * epl-v10.html: Initial check-in.
+ * feature.properties: Ditto.
+ * feature.xml: Ditto.
+ * license.html: Ditto. \ No newline at end of file
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/build.properties b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/build.properties
new file mode 100644
index 0000000000..94bb8830ab
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/build.properties
@@ -0,0 +1,4 @@
+bin.includes = feature.xml,\
+ feature.properties,\
+ license.html,\
+ epl-v10.html
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/epl-v10.html b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/epl-v10.html
new file mode 100644
index 0000000000..ed4b196655
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/epl-v10.html
@@ -0,0 +1,328 @@
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 9">
+<meta name=Originator content="Microsoft Word 9">
+<link rel=File-List
+href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
+<title>Eclipse Public License - Version 1.0</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Revision>2</o:Revision>
+ <o:TotalTime>3</o:TotalTime>
+ <o:Created>2004-03-05T23:03:00Z</o:Created>
+ <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
+ <o:Pages>4</o:Pages>
+ <o:Words>1626</o:Words>
+ <o:Characters>9270</o:Characters>
+ <o:Lines>77</o:Lines>
+ <o:Paragraphs>18</o:Paragraphs>
+ <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
+ <o:Version>9.4402</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:TrackRevisions/>
+ </w:WordDocument>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+ {font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;
+ mso-font-charset:0;
+ mso-generic-font-family:swiss;
+ mso-font-pitch:variable;
+ mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+p
+ {margin-right:0in;
+ mso-margin-top-alt:auto;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+p.BalloonText, li.BalloonText, div.BalloonText
+ {mso-style-name:"Balloon Text";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:8.0pt;
+ font-family:Tahoma;
+ mso-fareast-font-family:"Times New Roman";}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.25in 1.0in 1.25in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+-->
+</style>
+</head>
+
+<body lang=EN-US style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear=left>
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+changes to the Program, and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+additions to the Program;</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span
+style='color:red'> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+its license agreement:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+
+<p><span style='font-size:10.0pt'>When the Program is made available in source
+code form:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it must be made available under this Agreement; and </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style='font-size:10.0pt'>Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor (&quot;Commercial
+Contributor&quot;) hereby agrees to defend and indemnify every other
+Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
+costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style='font-size:10.0pt'>For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
+
+<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+</div>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/feature.properties b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/feature.properties
new file mode 100644
index 0000000000..076fed75b4
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/feature.properties
@@ -0,0 +1,138 @@
+#################################################################################
+# Copyright (c) 2008 Red Hat, Inc.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Red Hat Incorporated - initial API and implementation
+#################################################################################
+featureName=Library Hover help for devhelp documentation (Incubation)
+description=Plugins for creating hover help from installed C devhelp documentation.
+provider=Eclipse Linux Tools
+copyright=Copyright 2011 Red Hat, Inc.
+licenseURL=license.html
+license=\
+Eclipse Foundation Software User Agreement\n\
+April 14, 2010\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+ - Content may be structured and packaged into modules to facilitate delivering,\n\
+ extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+ plug-in fragments ("Fragments"), and features ("Features").\n\
+ - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+ in a directory named "plugins".\n\
+ - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+ Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+ Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+ numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+ - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+ named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+ - The top-level (root) directory\n\
+ - Plug-in and Fragment directories\n\
+ - Inside Plug-ins and Fragments packaged as JARs\n\
+ - Sub-directories of the directory named "src" of certain Plug-ins\n\
+ - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+ - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+ - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+ - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+ - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+ - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+ 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+ the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+ extending or updating the functionality of an Eclipse-based product.\n\
+ 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+ Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+ 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+ govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+ Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+ with the Specification. Such Installable Software Agreement must inform the user of the\n\
+ terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+ the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+ indication of agreement by the user, the provisioning Technology will complete installation\n\
+ of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/feature.xml b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/feature.xml
new file mode 100644
index 0000000000..391fe6cb9a
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/feature.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.linuxtools.cdt.libhover.devhelp"
+ label="%featureName"
+ version="0.7.1.qualifier"
+ provider-name="%provider">
+
+ <description url="http://www.example.com/description">
+ %featureDescription
+ </description>
+
+ <copyright url="http://www.example.com/copyright">
+ %copyright
+ </copyright>
+
+ <license url="http://www.example.com/license">
+ %license
+ </license>
+
+ <url>
+ <update label="Linux Tools Update Site" url="http://download.eclipse.org/technology/linuxtools/update"/>
+ </url>
+
+ <requires>
+ <import plugin="org.eclipse.ui"/>
+ <import plugin="org.eclipse.core.runtime"/>
+ <import plugin="org.eclipse.help" version="3.5.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.core.filesystem" version="1.3.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.linuxtools.cdt.libhover" version="1.1.0" match="greaterOrEqual"/>
+ </requires>
+
+ <plugin
+ id="org.eclipse.linuxtools.cdt.libhover.devhelp"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/license.html b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/license.html
new file mode 100644
index 0000000000..c184ca36a9
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp-feature/license.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 14, 2010</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+ (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+ CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+ OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+ NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+ CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+ (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+ For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+ repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+ <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+ <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+ <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;. Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+ and/or Fragments associated with that Feature.</li>
+ <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+ <li>The top-level (root) directory</li>
+ <li>Plug-in and Fragment directories</li>
+ <li>Inside Plug-ins and Fragments packaged as JARs</li>
+ <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+ <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+ <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+ <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+ <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+ <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+ <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+ Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+ other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+ install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+ href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+ (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+ applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+ in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+ Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+ <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+ on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+ product.</li>
+ <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+ accessed and copied to the Target Machine.</li>
+ <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+ Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+ Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+ the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+ indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+ another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+ possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/.classpath b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/.classpath
new file mode 100644
index 0000000000..ad32c83a78
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/.project b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/.project
new file mode 100644
index 0000000000..3c53f2576b
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.linuxtools.cdt.libhover.devhelp.tests</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/.settings/org.eclipse.jdt.core.prefs b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..c642b71047
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Fri Feb 18 15:58:33 EST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/ChangeLog b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/ChangeLog
new file mode 100644
index 0000000000..296e719d82
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/ChangeLog
@@ -0,0 +1,6 @@
+2011-03-31 Jeff Johnston <jjohnstn@redhat.com>
+
+ * META-INF/MANIFEST.MF: Initial check-in.
+ * src/org/eclipse/linuxtools/cdt/libhover/devhelp/test/CheckDevhelp.java: Ditto.
+ * src/org/eclipse/linuxtools/cdt/libhover/devhelp/test/Activator.java: Ditto.
+ * build.properties: ditto.
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/META-INF/MANIFEST.MF b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..79c7e3ef7f
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Test
+Bundle-SymbolicName: org.eclipse.linuxtools.cdt.libhover.devhelp.tests
+Bundle-Version: 0.7.1.qualifier
+Bundle-Activator: org.eclipse.linuxtools.cdt.libhover.devhelp.test.Activator
+Require-Bundle: org.eclipse.core.runtime,
+ org.junit,
+ org.eclipse.linuxtools.cdt.libhover;bundle-version="1.1.0",
+ org.eclipse.linuxtools.cdt.libhover.devhelp;bundle-version="0.7.1",
+ org.eclipse.ui;bundle-version="3.6.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/bin/org/eclipse/linuxtools/cdt/libhover/devhelp/test/Activator.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/bin/org/eclipse/linuxtools/cdt/libhover/devhelp/test/Activator.class
new file mode 100644
index 0000000000..dbf5f082fb
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/bin/org/eclipse/linuxtools/cdt/libhover/devhelp/test/Activator.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/bin/org/eclipse/linuxtools/cdt/libhover/devhelp/test/CheckDevhelp.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/bin/org/eclipse/linuxtools/cdt/libhover/devhelp/test/CheckDevhelp.class
new file mode 100644
index 0000000000..370d43f78c
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/bin/org/eclipse/linuxtools/cdt/libhover/devhelp/test/CheckDevhelp.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/build.properties b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/build.properties
new file mode 100644
index 0000000000..34d2e4d2da
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/src/org/eclipse/linuxtools/cdt/libhover/devhelp/test/Activator.java b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/src/org/eclipse/linuxtools/cdt/libhover/devhelp/test/Activator.java
new file mode 100644
index 0000000000..43ad04d3f1
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/src/org/eclipse/linuxtools/cdt/libhover/devhelp/test/Activator.java
@@ -0,0 +1,30 @@
+package org.eclipse.linuxtools.cdt.libhover.devhelp.test;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+ private static BundleContext context;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ }
+
+}
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/src/org/eclipse/linuxtools/cdt/libhover/devhelp/test/CheckDevhelp.java b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/src/org/eclipse/linuxtools/cdt/libhover/devhelp/test/CheckDevhelp.java
new file mode 100644
index 0000000000..e12664a958
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp.tests/src/org/eclipse/linuxtools/cdt/libhover/devhelp/test/CheckDevhelp.java
@@ -0,0 +1,69 @@
+package org.eclipse.linuxtools.cdt.libhover.devhelp.test;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.ObjectOutputStream;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.linuxtools.cdt.libhover.FunctionInfo;
+import org.eclipse.linuxtools.cdt.libhover.LibHoverInfo;
+import org.eclipse.linuxtools.cdt.libhover.LibhoverPlugin;
+import org.eclipse.linuxtools.internal.cdt.libhover.LibHover;
+import org.eclipse.linuxtools.internal.cdt.libhover.LibHoverLibrary;
+import org.eclipse.linuxtools.internal.cdt.libhover.devhelp.ParseDevHelp;
+import org.eclipse.linuxtools.internal.cdt.libhover.preferences.PreferenceConstants;
+
+public class CheckDevhelp extends TestCase {
+
+ protected void setUp() throws Exception {
+ IPath p = LibhoverPlugin.getDefault().getStateLocation().append("C"); //$NON-NLS-1$
+ File f = new File(p.toOSString());
+ f.delete();
+ }
+
+ public void testParse() {
+ ParseDevHelp.DevHelpParser p =
+ new ParseDevHelp.DevHelpParser("/usr/share/gtk-doc/html");
+ LibHoverInfo hover = p.parse(new NullProgressMonitor());
+ assertTrue(hover != null);
+ Map<String, FunctionInfo> functions = hover.functions;
+ assertTrue(functions != null);
+ assertTrue(functions.size() > 0);
+ try {
+ // Now, output the LibHoverInfo for caching later
+ IPath location = LibhoverPlugin.getDefault().getStateLocation().append("C"); //$NON-NLS-1$
+ File ldir = new File(location.toOSString());
+ ldir.mkdir();
+ location = location.append("devhelp.libhover"); //$NON-NLS-1$
+ FileOutputStream f = new FileOutputStream(location.toOSString());
+ ObjectOutputStream out = new ObjectOutputStream(f);
+ out.writeObject(hover);
+ out.close();
+ } catch(Exception e) {
+ fail();
+ }
+ IPreferenceStore ps = LibhoverPlugin.getDefault().getPreferenceStore();
+ ps.setValue(PreferenceConstants.CACHE_EXT_LIBHOVER, true);
+ LibHover.getLibHoverDocs();
+ Collection<LibHoverLibrary> c = LibHover.getLibraries();
+ assertTrue(c.size() > 0);
+ boolean found = false;
+ for (Iterator<LibHoverLibrary> i = c.iterator(); i.hasNext();) {
+ LibHoverLibrary l = i.next();
+ if (l.getName().equals("devhelp"))
+ found = true;
+ }
+ assertTrue(found);
+ }
+
+ protected void tearDown() throws Exception {
+ }
+
+}
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/.classpath b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/.classpath
new file mode 100644
index 0000000000..ad32c83a78
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/.project b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/.project
new file mode 100644
index 0000000000..45ac6ed0cd
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.linuxtools.cdt.libhover.devhelp</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/.settings/org.eclipse.jdt.core.prefs b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..b2b4ae1813
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Wed Jan 26 16:59:47 EST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/ChangeLog b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/ChangeLog
new file mode 100644
index 0000000000..a956fbace4
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/ChangeLog
@@ -0,0 +1,3 @@
+2011-03-31 Jeff Johnston <jjohnstn@redhat.com>
+
+ * Initial check-in. \ No newline at end of file
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/META-INF/MANIFEST.MF b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..31b9d9507e
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Devhelp
+Bundle-SymbolicName: org.eclipse.linuxtools.cdt.libhover.devhelp; singleton:=true
+Bundle-Version: 0.7.1.qualifier
+Bundle-Activator: org.eclipse.linuxtools.cdt.libhover.devhelp.DevHelpPlugin
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.help;bundle-version="3.5.0",
+ org.eclipse.core.filesystem;bundle-version="1.3.0",
+ org.eclipse.linuxtools.cdt.libhover;bundle-version="1.1.0",
+ org.eclipse.linuxtools.cdt.libhover.library_docs;bundle-version="1.0.1"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.linuxtools.cdt.libhover.devhelp,
+ org.eclipse.linuxtools.internal.cdt.libhover.devhelp;x-friends:="org.eclipse.linuxtools.cdt.libhover.devhelp.tests",
+ org.eclipse.linuxtools.internal.cdt.libhover.devhelp.preferences;x-friends:="org.eclipse.linuxtools.cdt.libhover.devhelp.tests"
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/cdt/libhover/devhelp/DevHelpPlugin.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/cdt/libhover/devhelp/DevHelpPlugin.class
new file mode 100644
index 0000000000..3cd6a6fa12
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/cdt/libhover/devhelp/DevHelpPlugin.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpContentProducer.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpContentProducer.class
new file mode 100644
index 0000000000..179b07137b
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpContentProducer.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider$1$1$1.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider$1$1$1.class
new file mode 100644
index 0000000000..7889a37da7
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider$1$1$1.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider$1$1.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider$1$1.class
new file mode 100644
index 0000000000..85b9a7a07f
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider$1$1.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider$1.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider$1.class
new file mode 100644
index 0000000000..f53ba6cc52
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider$1.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider$DevhelpTopic.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider$DevhelpTopic.class
new file mode 100644
index 0000000000..cb1f798d5c
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider$DevhelpTopic.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider.class
new file mode 100644
index 0000000000..4370b5e09b
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$DevHelpParser$1.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$DevHelpParser$1.class
new file mode 100644
index 0000000000..b7895e5599
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$DevHelpParser$1.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$DevHelpParser$2.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$DevHelpParser$2.class
new file mode 100644
index 0000000000..f28f5746d5
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$DevHelpParser$2.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$DevHelpParser.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$DevHelpParser.class
new file mode 100644
index 0000000000..97f7d0b576
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$DevHelpParser.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$Parser.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$Parser.class
new file mode 100644
index 0000000000..248d51b16f
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$Parser.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$UpdateDevhelp.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$UpdateDevhelp.class
new file mode 100644
index 0000000000..d9ff840eef
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp$UpdateDevhelp.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp.class
new file mode 100644
index 0000000000..fe78dab6d0
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LabelFieldEditor.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LabelFieldEditor.class
new file mode 100644
index 0000000000..ebaf02b7e3
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LabelFieldEditor.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverMessages.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverMessages.class
new file mode 100644
index 0000000000..b5603ce79b
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverMessages.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverMessages.properties b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverMessages.properties
new file mode 100644
index 0000000000..c7766d7767
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverMessages.properties
@@ -0,0 +1,17 @@
+#################################################################################
+# Copyright (c) 2011 Red Hat, Inc.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Red Hat Incorporated - initial API and implementation
+#################################################################################
+Libhover.Devhelp.Directory=devhelp directory
+Libhover.Devhelp.Regenerate=Regenerate devhelp hover
+Libhover.Devhelp.Regenerate.msg=Generating Library Hover help for installed devhelp documentation
+Libhover.Devhelp.Parsing.msg=Parsing the devhelp files
+Libhover.Devhelp.Parsing.fmt.msg=Parsing the devhelp file for: {0}
+Libhover.Devhelp.Generate.lbl=&Generate
+Libhover.Devhelp.Preference.title=Library hover generation for devhelp documentation \ No newline at end of file
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$1.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$1.class
new file mode 100644
index 0000000000..f9331ed633
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$1.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$2$1.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$2$1.class
new file mode 100644
index 0000000000..bb986e3280
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$2$1.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$2.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$2.class
new file mode 100644
index 0000000000..08d8f14dc1
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$2.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$3.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$3.class
new file mode 100644
index 0000000000..895db3947c
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$3.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$4.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$4.class
new file mode 100644
index 0000000000..a5dc9c11de
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$4.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$DevhelpStringFieldEditor.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$DevhelpStringFieldEditor.class
new file mode 100644
index 0000000000..ae60bdf383
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage$DevhelpStringFieldEditor.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage.class
new file mode 100644
index 0000000000..4100cef023
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/PreferenceConstants.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/PreferenceConstants.class
new file mode 100644
index 0000000000..a1c0ae76b1
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/PreferenceConstants.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/PreferenceInitializer.class b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/PreferenceInitializer.class
new file mode 100644
index 0000000000..9493fa8c22
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/bin/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/PreferenceInitializer.class
Binary files differ
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/build.properties b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/build.properties
new file mode 100644
index 0000000000..956d87b64c
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+ META-INF/,\
+ .,\
+ html/,\
+ *.xml,\
+ plugin.properties
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/html/maintopic.html b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/html/maintopic.html
new file mode 100644
index 0000000000..a476078ace
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/html/maintopic.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Main Topic</title>
+</head>
+
+<body>
+<h1>Main Topic</h1>
+Please enter your text here.
+</body>
+</html> \ No newline at end of file
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/html/subtopic.html b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/html/subtopic.html
new file mode 100644
index 0000000000..8a61c501d6
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/html/subtopic.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Sub Topic</title>
+</head>
+
+<body>
+<h1>Sub Topic</h1>
+Please enter your text here.
+</body>
+</html> \ No newline at end of file
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/html/toc.html b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/html/toc.html
new file mode 100644
index 0000000000..326f0a9ff3
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/html/toc.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Table of Contents</title>
+</head>
+
+<body>
+<h1>Table of Contents</h1>
+Please enter your text here.
+</body>
+</html> \ No newline at end of file
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/plugin.properties b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/plugin.properties
new file mode 100644
index 0000000000..0ec535a192
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/plugin.properties
@@ -0,0 +1,11 @@
+#################################################################################
+# Copyright (c) 2011 Red Hat, Inc.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Red Hat Incorporated - initial API and implementation
+#################################################################################
+Preferences.name=Devhelp \ No newline at end of file
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/plugin.xml b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/plugin.xml
new file mode 100644
index 0000000000..729cb6c383
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/plugin.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+ <extension
+ point="org.eclipse.help.toc">
+ <tocProvider
+ class="org.eclipse.linuxtools.internal.cdt.libhover.devhelp.DevHelpTocProvider">
+ </tocProvider>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.linuxtools.cdt.libhover.preferences1"
+ class="org.eclipse.linuxtools.internal.cdt.libhover.devhelp.preferences.LibHoverPreferencePage"
+ id="org.eclipse.linuxtools.cdt.libhover.devhelp.page1"
+ name="%Preferences.name">
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.core.runtime.preferences">
+ <initializer
+ class="org.eclipse.linuxtools.internal.cdt.libhover.devhelp.preferences.PreferenceInitializer">
+ </initializer>
+ </extension>
+ <extension
+ id="id1"
+ name="name"
+ point="org.eclipse.linuxtools.cdt.libhover.library">
+ <library
+ location="/dev/null"
+ name="devhelp"
+ type="C">
+ </library>
+ </extension>
+ <extension
+ point="org.eclipse.help.contentProducer">
+ <contentProducer
+ producer="org.eclipse.linuxtools.internal.cdt.libhover.devhelp.DevHelpContentProducer">
+ </contentProducer>
+ </extension>
+
+</plugin>
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/cdt/libhover/devhelp/DevHelpPlugin.java b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/cdt/libhover/devhelp/DevHelpPlugin.java
new file mode 100644
index 0000000000..ebe7dd9a55
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/cdt/libhover/devhelp/DevHelpPlugin.java
@@ -0,0 +1,61 @@
+package org.eclipse.linuxtools.cdt.libhover.devhelp;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class DevHelpPlugin extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.linuxtools.cdt.libhover.devhelp"; //$NON-NLS-1$
+
+ // The shared instance
+ private static DevHelpPlugin plugin;
+
+ /**
+ * The constructor
+ */
+ public DevHelpPlugin() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static DevHelpPlugin getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Returns an image descriptor for the image file at the given
+ * plug-in relative path
+ *
+ * @param path the path
+ * @return the image descriptor
+ */
+ public static ImageDescriptor getImageDescriptor(String path) {
+ return imageDescriptorFromPlugin(PLUGIN_ID, path);
+ }
+}
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpContentProducer.java b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpContentProducer.java
new file mode 100644
index 0000000000..dcf3d68011
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpContentProducer.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat Inc. - Initial implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.cdt.libhover.devhelp;
+
+import java.io.InputStream;
+import java.util.Locale;
+
+import org.eclipse.core.filesystem.EFS;
+import org.eclipse.core.filesystem.IFileStore;
+import org.eclipse.core.filesystem.IFileSystem;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.help.IHelpContentProducer;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.linuxtools.cdt.libhover.devhelp.DevHelpPlugin;
+import org.eclipse.linuxtools.internal.cdt.libhover.devhelp.preferences.PreferenceConstants;
+
+public class DevHelpContentProducer implements IHelpContentProducer {
+
+ @Override
+ public InputStream getInputStream(String pluginID, String href,
+ Locale locale) {
+ IPreferenceStore ps = DevHelpPlugin.getDefault().getPreferenceStore();
+ IPath devhelpLocation = new Path(ps.getString(PreferenceConstants.DEVHELP_DIRECTORY)).append(href);
+ IFileSystem fs = EFS.getLocalFileSystem();
+ IFileStore localLocation = fs.getStore(devhelpLocation);
+ InputStream stream = null;
+ try {
+ stream = localLocation.openInputStream(EFS.NONE, new NullProgressMonitor());
+ } catch (CoreException e) {
+ // do nothing and return null
+ }
+ return stream;
+ }
+
+}
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider.java b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider.java
new file mode 100644
index 0000000000..5984e4a5d8
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/DevHelpTocProvider.java
@@ -0,0 +1,163 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat Inc. - Initial implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.cdt.libhover.devhelp;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.core.filesystem.EFS;
+import org.eclipse.core.filesystem.IFileStore;
+import org.eclipse.core.filesystem.IFileSystem;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.help.AbstractTocProvider;
+import org.eclipse.help.IToc;
+import org.eclipse.help.ITocContribution;
+import org.eclipse.help.ITopic;
+import org.eclipse.help.IUAElement;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.linuxtools.cdt.libhover.devhelp.DevHelpPlugin;
+import org.eclipse.linuxtools.internal.cdt.libhover.devhelp.preferences.PreferenceConstants;
+
+public class DevHelpTocProvider extends AbstractTocProvider {
+
+ public DevHelpTocProvider() {
+ }
+
+ private class DevhelpTopic implements ITopic {
+
+ private String name;
+
+ DevhelpTopic(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public boolean isEnabled(IEvaluationContext context) {
+ return true;
+ }
+
+ @Override
+ public IUAElement[] getChildren() {
+ return new IUAElement[0];
+ }
+
+ @Override
+ public String getHref() {
+ return "/" + DevHelpPlugin.PLUGIN_ID + "/" + name + "/index.html"; // $NON-NLS-1$ //$NON-NLS-2$" //$NON-NLS-3$
+
+ }
+
+ @Override
+ public String getLabel() {
+ return name;
+ }
+
+ @Override
+ public ITopic[] getSubtopics() {
+ return null;
+ }
+ }
+
+ @Override
+ public ITocContribution[] getTocContributions(String locale) {
+ // TODO Auto-generated method stub
+ ITocContribution contribution = new ITocContribution() {
+ public String getId() {
+ // a way to identify our book
+ return "org.eclipse.linuxtools.cdt.libhover.devhelp.toc"; //$NON-NLS-1$
+ }
+ public String getCategoryId() {
+ // our book does not belong to any category of books
+ return null;
+ }
+ public boolean isPrimary() {
+ // this is a primary, top-level contribution (a book)
+ return true;
+ }
+ public IToc getToc() {
+ return new IToc() {
+ public String getLabel() {
+ return "Devhelp Documents"; //$NON-NLS-1$
+ }
+ public String getHref() {
+ return null;
+ }
+ @Override
+ public boolean isEnabled(IEvaluationContext context) {
+ // TODO Auto-generated method stub
+ return true;
+ }
+ @Override
+ public IUAElement[] getChildren() {
+ // TODO Auto-generated method stub
+ return getTopics();
+ }
+ @Override
+ public ITopic[] getTopics() {
+ try {
+ ArrayList<ITopic> topics = new ArrayList<ITopic>();
+ IPreferenceStore ps = DevHelpPlugin.getDefault().getPreferenceStore();
+ IPath devhelpLocation = new Path(ps.getString(PreferenceConstants.DEVHELP_DIRECTORY));
+ IFileSystem fs = EFS.getLocalFileSystem();
+ IFileStore htmlDir = fs.getStore(devhelpLocation);
+ IFileStore[] files = htmlDir.childStores(EFS.NONE, null);
+ Arrays.sort(files, new Comparator<IFileStore>() {
+
+ @Override
+ public int compare(IFileStore arg0, IFileStore arg1) {
+ return (arg0.getName().compareToIgnoreCase(arg1.getName()));
+ }
+
+ });
+ for (int i = 0; i < files.length; ++i) {
+ IFileStore file = files[i];
+ String name = file.fetchInfo().getName();
+ ITopic topic = new DevhelpTopic(name);
+ topics.add(topic);
+ }
+ ITopic[] retval = new ITopic[topics.size()];
+ return topics.toArray(retval);
+ } catch (CoreException e) {
+ }
+ return null;
+ }
+ @Override
+ public ITopic getTopic(String href) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ };
+ }
+ public String getLocale() {
+ // this provider only provides content for the en_US locale
+ return "en_US"; //$NON-NLS-1$
+ }
+ public String[] getExtraDocuments() {
+ // there are no extra documents associated with this book
+ return new String[0];
+ }
+ public String getLinkTo() {
+ return "../org.eclipse.linuxtools.cdt.libhover.library_docs/libraries.xml#devhelpdocs";
+ }
+ @Override
+ public String getContributorId() {
+ // TODO Auto-generated method stub
+ return "org.eclipse.linuxtools.cdt.libhover.devhelp"; //$NON-NLS-1$
+ }
+ };
+ return new ITocContribution[] { contribution };
+ }
+
+}
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp.java b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp.java
new file mode 100644
index 0000000000..9c39f332d4
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/ParseDevHelp.java
@@ -0,0 +1,469 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat Inc. - Initial implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.cdt.libhover.devhelp;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.io.Reader;
+import java.io.StringReader;
+import java.util.Arrays;
+import java.util.Comparator;
+
+import javax.swing.text.BadLocationException;
+import javax.swing.text.MutableAttributeSet;
+import javax.swing.text.html.HTML;
+import javax.swing.text.html.HTMLEditorKit.ParserCallback;
+import javax.swing.text.html.parser.ParserDelegator;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.eclipse.core.filesystem.EFS;
+import org.eclipse.core.filesystem.IFileStore;
+import org.eclipse.core.filesystem.IFileSystem;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.linuxtools.cdt.libhover.FunctionInfo;
+import org.eclipse.linuxtools.cdt.libhover.LibHoverInfo;
+import org.eclipse.linuxtools.internal.cdt.libhover.devhelp.preferences.LibHoverMessages;
+import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+public class ParseDevHelp {
+
+ private final static String PARSING_MSG = "Libhover.Devhelp.Parsing.msg"; //$NON-NLS-1$
+ private final static String PARSING_FMT_MSG = "Libhover.Devhelp.Parsing.fmt.msg"; //$NON-NLS-1$
+ private static class Parser extends ParserCallback {
+
+ private String func;
+ private boolean begin;
+ private boolean returnType;
+ private boolean protoStart;
+ private boolean parmStart;
+ private boolean descStart;
+ private boolean rowIgnore;
+ private boolean valid = true;
+ private String returnValue;
+ private String funcName;
+ private String rowTag;
+ private String prototype = new String(""); //$NON-NLS-1$
+ private String description = new String(""); //$NON-NLS-1$
+ private int divCounter;
+ private int rowItemCount;
+
+ public Parser(String func, String funcName) {
+ this.func = func;
+ this.funcName = funcName.trim();
+ if (this.funcName.endsWith("()")) //$NON-NLS-1$
+ this.funcName = this.funcName.replaceAll("\\(\\)", "").trim(); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos) {
+ if (t == HTML.Tag.A) {
+ String name = (String)(a.getAttribute(HTML.Attribute.NAME));
+ if (func.equals(name)) {
+ begin = true;
+ }
+ }
+ if (begin) {
+ if (t == HTML.Tag.DIV) {
+ ++divCounter;
+ }
+ if (!descStart) {
+ if (t == HTML.Tag.SPAN) {
+ String type = (String)a.getAttribute(HTML.Attribute.CLASS);
+ if (returnValue == null && type != null &&
+ type.equals("returnvalue")) { //$NON-NLS-1$
+ returnType = true;
+ }
+ }
+ if (t == HTML.Tag.PRE) {
+ String type = (String)a.getAttribute(HTML.Attribute.CLASS);
+ if (type != null && type.equals("programlisting")) //$NON-NLS-1$
+ returnType = true;
+ }
+ }
+ if (protoStart) {
+ if (t == HTML.Tag.P) {
+ protoStart = false;
+ descStart = true;;
+ description += "<p>"; //$NON-NLS-1$
+ }
+ } else if (descStart) {
+ if (t == HTML.Tag.P) {
+ description += "<p>"; //$NON-NLS-1$
+ }
+ else if (t == HTML.Tag.TABLE) {
+ description += "<dl>"; //$NON-NLS-1$
+ }
+ else if (t == HTML.Tag.TR) {
+ rowItemCount = 0;
+ }
+ else if (t == HTML.Tag.TD) {
+ String type = (String)a.getAttribute(HTML.Attribute.CLASS);
+ if (type != null && type.equals("listing_lines")) { //$NON-NLS-1$
+ rowIgnore = true;
+ } else {
+ rowIgnore = false;
+ if (rowItemCount++ == 0)
+ rowTag = "<dt>"; //$NON-NLS-1$
+ else
+ rowTag = "<dd>"; //$NON-NLS-1$
+ description += rowTag;
+ }
+ }
+ }
+ }
+ }
+
+ public void handleEndTag(HTML.Tag t, int pos) {
+ if (begin) {
+ if (t == HTML.Tag.DIV) {
+ --divCounter;
+// System.out.println("divCounter is " + divCounter);
+ if (divCounter <= 0) {
+ begin = false;
+ try {
+ flush();
+ } catch (BadLocationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ }
+ if (descStart) {
+ if (t == HTML.Tag.P)
+ description += "</p>"; //$NON-NLS-1$
+ else if (t == HTML.Tag.TABLE)
+ description += "</dl>"; //$NON-NLS-1$
+ else if (t == HTML.Tag.TR) {
+ rowItemCount = 0;
+ }
+ else if (t == HTML.Tag.TD) {
+ if (!rowIgnore) {
+ if (rowTag != null && rowTag.equals("<dt>")) //$NON-NLS-1$
+ description += "</dt>"; //$NON-NLS-1$
+ else
+ description += "</dd>"; //$NON-NLS-1$
+ }
+ rowIgnore = false;
+ }
+ }
+ }
+ }
+
+ public void handleText(char[] data, int pos) {
+ if (begin) {
+ if (returnType) {
+ returnValue = ""; //$NON-NLS-1$
+ String tmp = String.valueOf(data).trim();
+ boolean completed = false;
+ if (tmp.endsWith(");")) { //$NON-NLS-1$
+ completed = true;
+ tmp = tmp.substring(0, tmp.length() - 2);
+ }
+ String tokens[] = tmp.split("\\s+"); //$NON-NLS-1$
+ String separator = ""; //$NON-NLS-1$
+ protoStart = true;
+ for (int i = 0; i < tokens.length; ++i) {
+ String token = tokens[i];
+ if (!token.equals(funcName)) {
+ returnValue += separator + token;
+ separator = " "; //$NON-NLS-1$
+ } else {
+ separator = ""; //$NON-NLS-1$
+ for (int j = i + 1; j < tokens.length; ++j) {
+ String jtoken = tokens[j];
+ if (j == i + 1 && jtoken.charAt(0) == '(') {
+ jtoken = jtoken.substring(1);
+ parmStart = true;
+ protoStart = false;
+ }
+ prototype += separator + jtoken;
+ separator = " ";
+ }
+ if (parmStart && completed) {
+ parmStart = false;
+ descStart = true;
+ }
+ break;
+ }
+ }
+ returnType = false;
+ }
+ else if (protoStart) {
+ String temp = String.valueOf(data).trim();
+ boolean completed = false;
+ if (temp.endsWith(");")) { //$NON-NLS-1$
+ completed = true;
+ temp = temp.substring(0, temp.length() - 2);
+ }
+ String separator = " ";
+ while (temp.startsWith("*") || temp.startsWith("const")) { //$NON-NLS-1$
+ if (temp.charAt(0) == '*') { //$NON-NLS-1$
+ returnValue += separator + "*"; //$NON-NLS-1$
+ temp = temp.substring(1).trim();
+ separator = ""; //$NON-NLS-1$
+ } else {
+ returnValue += "const"; //$NON-NLS-1$
+ temp = temp.substring(5).trim();
+ separator = " ";
+ }
+ }
+ int index = temp.lastIndexOf('(');
+ int index2 = temp.lastIndexOf(')');
+ if (index2 < index) {
+ if (index + 1 < temp.length()) {
+ temp = temp.substring(index + 1).trim();
+ prototype += temp;
+ }
+ parmStart = true;
+ protoStart = false;
+ }
+ if (parmStart && completed) {
+ parmStart = false;
+ descStart = true;
+ }
+ }
+ else if (parmStart) {
+ String parmData = String.valueOf(data).trim();
+ int index = parmData.indexOf(')');
+ if (index >= 0) {
+ parmStart = false;
+ descStart = true;
+ parmData = parmData.substring(0, index);
+ }
+ if (!prototype.equals("")) {
+ if (!parmData.equals(",") && !parmData.equals(""))
+ parmData = " " + parmData;
+ }
+ prototype += parmData;
+ }
+ else if (descStart) {
+ if (!rowIgnore)
+ description += String.valueOf(data);
+ }
+ }
+
+ }
+
+ public FunctionInfo getFunctionInfo() {
+ if (!valid || returnValue == null ||
+ returnValue.startsWith("#") ||
+ returnValue.startsWith("typedef "))
+ return null;
+ FunctionInfo info = new FunctionInfo(funcName);
+ info.setReturnType(returnValue);
+ info.setPrototype(prototype);
+ info.setDescription(description);
+ return info;
+ }
+
+ public String getFuncName() {
+ return funcName;
+ }
+
+ public String toString() {
+ return "funcName: <" + funcName + "> returnType: <" + returnValue +
+ "> prototype: <" + prototype + "> description: " + description;
+ }
+
+ public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos) {
+
+ }
+
+
+ }
+
+ public static class DevHelpParser {
+
+ private String dirName;
+ private LibHoverInfo libhover;
+ private boolean debug;
+
+ public DevHelpParser(String dirName) {
+ this(dirName, false);
+ }
+
+ public DevHelpParser(String dirName, boolean debug) {
+ this.dirName = dirName;
+ this.libhover = new LibHoverInfo();
+ this.debug = debug;
+ }
+
+ public LibHoverInfo getLibHoverInfo() {
+ return libhover;
+ }
+
+ public LibHoverInfo parse(IProgressMonitor monitor) {
+ try {
+ IFileSystem fs = EFS.getLocalFileSystem();
+ IPath dirPath = new Path(dirName);
+ IFileStore htmlDir = fs.getStore(dirPath);
+ IFileStore[] files = htmlDir.childStores(EFS.NONE, null);
+ monitor.beginTask(LibHoverMessages.getString(PARSING_MSG), files.length);
+ Arrays.sort(files, new Comparator<IFileStore>() {
+ @Override
+ public int compare(IFileStore arg0, IFileStore arg1) {
+ return (arg0.getName().compareToIgnoreCase(arg1.getName()));
+ }
+ });
+ for (int i = 0; i < files.length; ++i) {
+ IFileStore file = files[i];
+ String name = file.fetchInfo().getName();
+ if (monitor.isCanceled())
+ return null;
+ monitor.setTaskName(LibHoverMessages.getFormattedString(PARSING_FMT_MSG,
+ new String[]{name}));
+ parse(dirPath.append(name).append(name + ".devhelp").toOSString(), //$NON-NLS-1$
+ monitor);
+ monitor.worked(1);
+ }
+ } catch (CoreException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return libhover;
+ }
+
+ public void parse(String fileName, IProgressMonitor monitor) {
+ try {
+ Path path = new Path(fileName);
+ File f = new File(fileName);
+ FileInputStream stream = new FileInputStream(f);
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setValidating(false);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ builder.setEntityResolver(new EntityResolver()
+ {
+ public InputSource resolveEntity(String publicId, String systemId)
+ throws SAXException, IOException
+ {
+ return new InputSource(new StringReader("")); //$NON-NLS-1$
+ }
+ });
+ Document doc = builder.parse(stream);
+ NodeList bookNodes = doc.getElementsByTagName("book"); //$NON-NLS-1$
+ for (int x = 0; x < bookNodes.getLength(); ++x) {
+ Node n = bookNodes.item(x);
+ NamedNodeMap m = n.getAttributes();
+ Node language = m.getNamedItem("language"); //$NON-NLS-1$
+ if (language != null && !language.getNodeValue().equals("c"))
+ return;
+ }
+ NodeList nl = doc.getElementsByTagName("function"); // $NON-NLS-1$
+ for (int i = 0; i < nl.getLength(); ++i) {
+ if (monitor.isCanceled())
+ return;
+ Node n = nl.item(i);
+ NamedNodeMap m = n.getAttributes();
+ Node name = m.getNamedItem("name"); // $NON-NLS-1$
+ Node link = m.getNamedItem("link"); // $NON-NLS-1$
+ if (link != null) {
+ String linkValue = link.getNodeValue();
+ String[] linkParts = linkValue.split("#"); //$NON-NLS-1$
+ if (linkParts.length == 2) {
+ try {
+ String nameString = name.getNodeValue();
+ nameString = nameString.replaceAll("\\(.*\\);+", "").trim(); //$NON-NLS-1$ //$NON-NLS-2$
+ if (nameString.contains("::") || nameString.startsWith("enum ") //$NON-NLS-1$ //$NON-NLS-2$
+ || nameString.contains("\"")) //$NON-NLS-1$
+ continue;
+ Reader reader = new FileReader(path.removeLastSegments(1).toOSString()
+ + "/" + linkParts[0]); //$NON-NLS-1$
+ Parser callback = new Parser(linkParts[1], nameString);
+ new ParserDelegator().parse(reader, callback, true);
+ FunctionInfo finfo = callback.getFunctionInfo();
+ if (finfo != null) {
+ if (debug)
+ System.out.println(callback.toString());
+ libhover.functions.put(callback.getFuncName(), callback.getFunctionInfo());
+ }
+ } catch (FileNotFoundException e1) {
+ // ignore
+ }
+ }
+ }
+ }
+ } catch (FileNotFoundException e1) {
+ // ignore
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ } catch (SAXException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public static class UpdateDevhelp extends Job {
+
+ public UpdateDevhelp(String name) {
+ super(name);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+
+ return null;
+ }
+ }
+
+ public static void main(String[] args) {
+
+ String devhelpHtmlDirectory = args[0];
+ DevHelpParser p = new DevHelpParser(devhelpHtmlDirectory);
+ File dir = new File(devhelpHtmlDirectory);
+ File[] files = dir.listFiles();
+ for (int i = 0; i < files.length; ++i) {
+ File f = files[i];
+ String name = f.getName();
+ p.parse(f.getAbsolutePath() + "/" + name + ".devhelp", //$NON-NLS-1$ //$NON-NLS-2$
+ new NullProgressMonitor());
+ }
+ LibHoverInfo hover = p.getLibHoverInfo();
+ try {
+ // Now, output the LibHoverInfo for caching later
+ IPath workspaceDir = new Path(args[1]);
+ IPath location = workspaceDir.append("org.eclipse.linuxtools.cdt.libhover/C"); //$NON-NLS-1$
+ File ldir = new File(location.toOSString());
+ ldir.mkdir();
+ location = location.append("devhelp.libhover"); //$NON-NLS-1$
+ FileOutputStream f = new FileOutputStream(location.toOSString());
+ ObjectOutputStream out = new ObjectOutputStream(f);
+ out.writeObject(hover);
+ out.close();
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ System.out.println("Parse Complete"); //$NON-NLS-1$
+
+ }
+
+}
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LabelFieldEditor.java b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LabelFieldEditor.java
new file mode 100644
index 0000000000..dcbaccf229
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LabelFieldEditor.java
@@ -0,0 +1,39 @@
+package org.eclipse.linuxtools.internal.cdt.libhover.devhelp.preferences;
+
+import org.eclipse.jface.preference.FieldEditor;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+
+// Label class for a preference page.
+class LabelFieldEditor extends FieldEditor {
+ private Composite parent;
+
+ public LabelFieldEditor( Composite parent, String title ) {
+ this.parent = parent;
+ init("org.eclipse.linuxtools.cdt.libhover.dummy", title);
+ createControl(parent);
+ }
+
+ protected void adjustForNumColumns( int numColumns ) {
+ GridData gd = new GridData();
+ gd.horizontalSpan = numColumns;
+ // We only grab excess space if we have to
+ // If another field editor has more columns then
+ // we assume it is setting the width.
+ gd.grabExcessHorizontalSpace = gd.horizontalSpan == 1;
+ getLabelControl(parent).setLayoutData(gd);
+ }
+
+ protected void doFillIntoGrid( Composite parent, int numColumns ) {
+ getLabelControl(parent);
+ }
+
+ public int getNumberOfControls() { return 1; }
+ /**
+ * The label field editor is only used to present a text label on a preference page.
+ */
+ protected void doLoad() {}
+ protected void doLoadDefault() {}
+ protected void doStore() {}
+}
+
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverMessages.java b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverMessages.java
new file mode 100644
index 0000000000..b42d3b3bd0
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverMessages.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 2006, 2007, 2011 QNX Software Systems and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * QNX Software Systems - Initial API and implementation
+ * Red Hat Inc. - Modification to use with LibHover
+ *******************************************************************************/
+
+package org.eclipse.linuxtools.internal.cdt.libhover.devhelp.preferences;
+
+import java.text.MessageFormat;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * MakefilePreferencesMessages
+ */
+public class LibHoverMessages {
+
+ /**
+ *
+ */
+
+ private static final String RESOURCE_BUNDLE= LibHoverMessages.class.getName();
+
+ private static ResourceBundle fgResourceBundle= ResourceBundle.getBundle(RESOURCE_BUNDLE);
+
+ private LibHoverMessages() {
+ }
+
+ public static ResourceBundle getResourceBundle() {
+ return fgResourceBundle;
+ }
+
+ public static String getString(String key) {
+ try {
+ return fgResourceBundle.getString(key);
+ } catch (MissingResourceException e) {
+ return '!' + key + '!';
+ } catch (NullPointerException e) {
+ return '#' + key + '#';
+ }
+ }
+
+ /**
+ * Returns the formatted string from the resource bundle,
+ * or 'key' if not found.
+ *
+ * @param key the message key
+ * @param args an array of substituition strings
+ * @return the resource bundle message
+ */
+ public static String getFormattedString(String key, String[] args) {
+ return MessageFormat.format(getString(key), (Object[])args);
+ }
+
+}
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverMessages.properties b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverMessages.properties
new file mode 100644
index 0000000000..c7766d7767
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverMessages.properties
@@ -0,0 +1,17 @@
+#################################################################################
+# Copyright (c) 2011 Red Hat, Inc.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Red Hat Incorporated - initial API and implementation
+#################################################################################
+Libhover.Devhelp.Directory=devhelp directory
+Libhover.Devhelp.Regenerate=Regenerate devhelp hover
+Libhover.Devhelp.Regenerate.msg=Generating Library Hover help for installed devhelp documentation
+Libhover.Devhelp.Parsing.msg=Parsing the devhelp files
+Libhover.Devhelp.Parsing.fmt.msg=Parsing the devhelp file for: {0}
+Libhover.Devhelp.Generate.lbl=&Generate
+Libhover.Devhelp.Preference.title=Library hover generation for devhelp documentation \ No newline at end of file
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage.java b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage.java
new file mode 100644
index 0000000000..feb37d0346
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/LibHoverPreferencePage.java
@@ -0,0 +1,219 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat Incorporated - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.cdt.libhover.devhelp.preferences;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.ObjectOutputStream;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.IJobChangeEvent;
+import org.eclipse.core.runtime.jobs.IJobChangeListener;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.preference.DirectoryFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.linuxtools.cdt.libhover.LibHoverInfo;
+import org.eclipse.linuxtools.cdt.libhover.LibhoverPlugin;
+import org.eclipse.linuxtools.cdt.libhover.devhelp.DevHelpPlugin;
+import org.eclipse.linuxtools.internal.cdt.libhover.LibHover;
+import org.eclipse.linuxtools.internal.cdt.libhover.LibHoverLibrary;
+import org.eclipse.linuxtools.internal.cdt.libhover.devhelp.ParseDevHelp;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+/**
+ * This class represents a preference page that
+ * is contributed to the Preferences dialog. By
+ * subclassing <samp>FieldEditorPreferencePage</samp>, we
+ * can use the field support built into JFace that allows
+ * us to create a page that is small and knows how to
+ * save, restore and apply itself.
+ * <p>
+ * This page is used to modify preferences only. They
+ * are stored in the preference store that belongs to
+ * the main plug-in class. That way, preferences can
+ * be accessed directly via the preference store.
+ */
+
+public class LibHoverPreferencePage
+ extends FieldEditorPreferencePage
+ implements IWorkbenchPreferencePage {
+
+ private final static String DEVHELP_DIR = "Libhover.Devhelp.Directory"; //$NON-NLS-1$
+ private final static String GENERATE = "Libhover.Devhelp.Generate.lbl"; //$NON-NLS-1$
+ private final static String REGENERATE_MSG = "Libhover.Devhelp.Regenerate.msg"; //$NON-NLS-1$
+ private final static String TITLE = "Libhover.Devhelp.Preference.title"; //$NON-NLS-1$
+
+ private Button generateButton;
+
+ public LibHoverPreferencePage() {
+ super(GRID);
+ setPreferenceStore(DevHelpPlugin.getDefault().getPreferenceStore());
+ }
+
+ private class DevhelpStringFieldEditor extends DirectoryFieldEditor {
+ public DevhelpStringFieldEditor(String name, String labelText,
+ Composite parent) {
+ super(name, labelText, parent);
+ setFilterPath(new File(DevHelpPlugin.getDefault().getPreferenceStore().getString(name)));
+ }
+
+ }
+
+ private synchronized void regenerate() {
+ generateButton.setEnabled(false);
+ Job k = new Job(LibHoverMessages.getString(REGENERATE_MSG)) {
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ // TODO Auto-generated method stub
+ IPreferenceStore ps = DevHelpPlugin.getDefault().getPreferenceStore();
+ ParseDevHelp.DevHelpParser p =
+ new ParseDevHelp.DevHelpParser(ps.getString(PreferenceConstants.DEVHELP_DIRECTORY));
+ LibHoverInfo hover = p.parse(monitor);
+ // Update the devhelp library info if it is on library list
+ Collection<LibHoverLibrary> libs = LibHover.getLibraries();
+ for (Iterator<LibHoverLibrary> i = libs.iterator(); i.hasNext();) {
+ LibHoverLibrary l = i.next();
+ if (l.getName().equals("devhelp")) { //$NON-NLS-1$
+ l.setHoverinfo(hover);
+ break;
+ }
+ }
+ try {
+ // Now, output the LibHoverInfo for caching later
+ IPath location = LibhoverPlugin.getDefault().getStateLocation().append("C"); //$NON-NLS-1$
+ File ldir = new File(location.toOSString());
+ ldir.mkdir();
+ location = location.append("devhelp.libhover"); //$NON-NLS-1$
+ FileOutputStream f = new FileOutputStream(location.toOSString());
+ ObjectOutputStream out = new ObjectOutputStream(f);
+ out.writeObject(hover);
+ out.close();
+ monitor.done();
+ } catch(Exception e) {
+ monitor.done();
+ return new Status(IStatus.ERROR, DevHelpPlugin.PLUGIN_ID, e.getLocalizedMessage(), e);
+ }
+
+
+ return Status.OK_STATUS;
+ }
+
+ };
+ k.setUser(true);
+ k.addJobChangeListener(new IJobChangeListener() {
+ public void aboutToRun(IJobChangeEvent event) {
+ // TODO Auto-generated method stub
+ }
+ public void awake(IJobChangeEvent event) {
+ // TODO Auto-generated method stub
+ }
+ public void done(IJobChangeEvent event) {
+ Display.getDefault().syncExec(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ generateButton.setEnabled(true);
+ } catch (Exception e) {
+ // do nothing
+ }
+ }
+ });
+ }
+ public void running(IJobChangeEvent event) {
+ // TODO Auto-generated method stub
+ }
+ public void scheduled(IJobChangeEvent event) {
+ // TODO Auto-generated method stub
+ }
+ public void sleeping(IJobChangeEvent event) {
+ // TODO Auto-generated method stub
+ }
+ });
+ k.schedule();
+ }
+
+ protected void contributeButtons(Composite parent) {
+ ((GridLayout) parent.getLayout()).numColumns++;
+ generateButton = new Button(parent, SWT.NONE);
+ generateButton.setFont(parent.getFont());
+ generateButton.setText(LibHoverMessages.getString(GENERATE));
+ generateButton.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent evt) {
+ regenerate();
+ }
+ });
+ generateButton.addDisposeListener(new DisposeListener() {
+ public void widgetDisposed(DisposeEvent event) {
+ generateButton = null;
+ }
+ });
+ GridData gd = new GridData();
+ gd.horizontalAlignment = GridData.FILL;
+ int widthHint = convertHorizontalDLUsToPixels(
+ IDialogConstants.BUTTON_WIDTH);
+ gd.widthHint = Math.max(widthHint, generateButton.computeSize(
+ SWT.DEFAULT, SWT.DEFAULT, true).x);
+
+ generateButton.setLayoutData(gd);
+ }
+
+ /**
+ * Creates the field editors. Field editors are abstractions of
+ * the common GUI blocks needed to manipulate various types
+ * of preferences. Each field editor knows how to save and
+ * restore itself.
+ */
+ public void createFieldEditors() {
+ addField(
+ new LabelFieldEditor(
+ getFieldEditorParent(),
+ LibHoverMessages.getString(TITLE)));
+ addField(
+ new DevhelpStringFieldEditor(
+ PreferenceConstants.DEVHELP_DIRECTORY,
+ LibHoverMessages.getString(DEVHELP_DIR),
+ getFieldEditorParent()));
+// addField(
+// new GenerateDevHelp(
+// PreferenceConstants.DUMMY_CONSTANT,
+// LibHoverMessages.getString(DEVHELP_REGENERATE),
+// getFieldEditorParent()));
+
+
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+ */
+ public void init(IWorkbench workbench) {
+ }
+
+} \ No newline at end of file
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/PreferenceConstants.java b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/PreferenceConstants.java
new file mode 100644
index 0000000000..e32977a3bd
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/PreferenceConstants.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat Incorporated - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.cdt.libhover.devhelp.preferences;
+
+/**
+ * Constant definitions for plug-in preferences
+ */
+public class PreferenceConstants {
+
+ public static String DEVHELP_DIRECTORY = "org.eclipse.linuxtools.cdt.libhover.devhelp.directory"; //$NON-NLS-1$
+ public static String DUMMY_CONSTANT = "org.eclipse.linuxtools.cdt.libhover.devhelp.dummy"; //$NON-NLS-1$
+
+}
diff --git a/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/PreferenceInitializer.java b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/PreferenceInitializer.java
new file mode 100644
index 0000000000..e0670764b9
--- /dev/null
+++ b/libhover/org.eclipse.linuxtools.cdt.libhover.devhelp/src/org/eclipse/linuxtools/internal/cdt/libhover/devhelp/preferences/PreferenceInitializer.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat Incorporated - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.cdt.libhover.devhelp.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.linuxtools.cdt.libhover.devhelp.DevHelpPlugin;
+
+/**
+ * Class used to initialize default preference values.
+ */
+public class PreferenceInitializer extends AbstractPreferenceInitializer {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
+ */
+ public void initializeDefaultPreferences() {
+ IPreferenceStore store = DevHelpPlugin.getDefault().getPreferenceStore();
+ store.setDefault(PreferenceConstants.DEVHELP_DIRECTORY, "/usr/share/gtk-doc/html"); //$NON-NLS-1$
+ }
+
+}

Back to the top