From 2a8a06ab314686eba0d4615f555230873d20af24 Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Fri, 30 Jun 2006 09:42:39 +0000 Subject: [PATCH] Initial version of the Include Browser --- .../cdt/ui/testplugin/CTestPlugin.java | 5 +- .../ui/tests/viewsupport/AsyncViewerTest.java | 275 +++++++ .../viewsupport/ViewSupportTestSuite.java | 26 + .../icons/dlcl16/ch_callees.gif | Bin 0 -> 147 bytes .../icons/dlcl16/ch_callers.gif | Bin 0 -> 145 bytes .../icons/dlcl16/filterInactive.gif | Bin 0 -> 883 bytes .../icons/dlcl16/filterSystem.gif | Bin 0 -> 873 bytes .../icons/dlcl16/search_next.gif | Bin 0 -> 152 bytes .../icons/dlcl16/search_prev.gif | Bin 0 -> 152 bytes .../icons/elcl16/ch_callees.gif | Bin 0 -> 209 bytes .../icons/elcl16/ch_callers.gif | Bin 0 -> 205 bytes .../icons/elcl16/filterInactive.gif | Bin 0 -> 888 bytes .../icons/elcl16/filterSystem.gif | Bin 0 -> 873 bytes .../icons/elcl16/search_next.gif | Bin 0 -> 332 bytes .../icons/elcl16/search_prev.gif | Bin 0 -> 323 bytes .../icons/ovr16/rec_referencedby_co.gif | Bin 0 -> 829 bytes .../icons/ovr16/rec_relatesto_co.gif | Bin 0 -> 828 bytes .../icons/ovr16/referencedby_co.gif | Bin 0 -> 823 bytes .../icons/ovr16/relatesto_co.gif | Bin 0 -> 821 bytes .../icons/ovr16/systeminclude_co.gif | Bin 0 -> 835 bytes .../icons/view16/includeBrowser.gif | Bin 0 -> 866 bytes core/org.eclipse.cdt.ui/plugin.properties | 6 + core/org.eclipse.cdt.ui/plugin.xml | 14 +- .../cdt/internal/ui/CPluginImages.java | 28 +- .../cdt/internal/ui/CUIMessages.properties | 5 +- .../ui/includebrowser/HistoryAction.java | 55 ++ .../includebrowser/HistoryDropDownAction.java | 105 +++ .../ui/includebrowser/HistoryListAction.java | 182 +++++ .../ui/includebrowser/IBContentProvider.java | 116 +++ .../ui/includebrowser/IBConversions.java | 90 +++ .../includebrowser/IBDragSourceListener.java | 97 +++ .../includebrowser/IBDropTargetListener.java | 161 ++++ .../internal/ui/includebrowser/IBFile.java | 95 +++ .../ui/includebrowser/IBLabelProvider.java | 132 +++ .../ui/includebrowser/IBMessages.java | 65 ++ .../ui/includebrowser/IBMessages.properties | 42 + .../internal/ui/includebrowser/IBNode.java | 186 +++++ .../ui/includebrowser/IBViewPart.java | 763 ++++++++++++++++++ .../ui/includebrowser/IBWorkingSetFilter.java | 49 ++ .../internal/ui/missingapi/CIndexQueries.java | 125 +++ .../cdt/internal/ui/util/CoreUtility.java | 21 + .../cdt/internal/ui/util/Messages.java | 36 + .../viewsupport/AsyncTreeContentProvider.java | 340 ++++++++ .../AsyncTreeWorkInProgressNode.java | 27 + .../ui/viewsupport/CElementLabels.java | 53 +- .../ui/viewsupport/ExtendedTreeViewer.java | 49 ++ .../ui/viewsupport/WorkingSetFilter.java | 74 ++ .../ui/viewsupport/WorkingSetFilterUI.java | 170 ++++ .../cdt/ui/CElementImageDescriptor.java | 45 +- .../src/org/eclipse/cdt/ui/CUIPlugin.java | 56 +- 50 files changed, 3432 insertions(+), 61 deletions(-) create mode 100644 core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/viewsupport/AsyncViewerTest.java create mode 100644 core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/viewsupport/ViewSupportTestSuite.java create mode 100644 core/org.eclipse.cdt.ui/icons/dlcl16/ch_callees.gif create mode 100644 core/org.eclipse.cdt.ui/icons/dlcl16/ch_callers.gif create mode 100644 core/org.eclipse.cdt.ui/icons/dlcl16/filterInactive.gif create mode 100644 core/org.eclipse.cdt.ui/icons/dlcl16/filterSystem.gif create mode 100644 core/org.eclipse.cdt.ui/icons/dlcl16/search_next.gif create mode 100644 core/org.eclipse.cdt.ui/icons/dlcl16/search_prev.gif create mode 100644 core/org.eclipse.cdt.ui/icons/elcl16/ch_callees.gif create mode 100644 core/org.eclipse.cdt.ui/icons/elcl16/ch_callers.gif create mode 100644 core/org.eclipse.cdt.ui/icons/elcl16/filterInactive.gif create mode 100644 core/org.eclipse.cdt.ui/icons/elcl16/filterSystem.gif create mode 100644 core/org.eclipse.cdt.ui/icons/elcl16/search_next.gif create mode 100644 core/org.eclipse.cdt.ui/icons/elcl16/search_prev.gif create mode 100644 core/org.eclipse.cdt.ui/icons/ovr16/rec_referencedby_co.gif create mode 100644 core/org.eclipse.cdt.ui/icons/ovr16/rec_relatesto_co.gif create mode 100644 core/org.eclipse.cdt.ui/icons/ovr16/referencedby_co.gif create mode 100644 core/org.eclipse.cdt.ui/icons/ovr16/relatesto_co.gif create mode 100644 core/org.eclipse.cdt.ui/icons/ovr16/systeminclude_co.gif create mode 100644 core/org.eclipse.cdt.ui/icons/view16/includeBrowser.gif create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/includebrowser/HistoryAction.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/includebrowser/HistoryDropDownAction.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/includebrowser/HistoryListAction.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/includebrowser/IBContentProvider.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/includebrowser/IBConversions.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/includebrowser/IBDragSourceListener.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/includebrowser/IBDropTargetListener.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/includebrowser/IBFile.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/includebrowser/IBLabelProvider.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/includebrowser/IBMessages.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/includebrowser/IBMessages.properties create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/includebrowser/IBNode.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/includebrowser/IBViewPart.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/includebrowser/IBWorkingSetFilter.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/missingapi/CIndexQueries.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/util/Messages.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/viewsupport/AsyncTreeContentProvider.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/viewsupport/AsyncTreeWorkInProgressNode.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/viewsupport/ExtendedTreeViewer.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/viewsupport/WorkingSetFilter.java create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/viewsupport/WorkingSetFilterUI.java diff --git a/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/testplugin/CTestPlugin.java b/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/testplugin/CTestPlugin.java index 524d1fb8ff6..9035430b561 100644 --- a/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/testplugin/CTestPlugin.java +++ b/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/testplugin/CTestPlugin.java @@ -17,12 +17,13 @@ import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.IWorkspaceDescription; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Plugin; import org.eclipse.swt.widgets.Display; + public class CTestPlugin extends Plugin { public static String PLUGIN_ID = "org.eclipse.cdt.ui.tests"; //$NON-NLS-1$ @@ -51,7 +52,7 @@ public class CTestPlugin extends Plugin { public File getFileInPlugin(IPath path) { try { - return new File(Platform.asLocalURL(find(path)).getFile()); + return new File(FileLocator.toFileURL(FileLocator.find(getBundle(), path, null)).getFile()); } catch (IOException e) { return null; } diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/viewsupport/AsyncViewerTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/viewsupport/AsyncViewerTest.java new file mode 100644 index 00000000000..ea50a2fb1b0 --- /dev/null +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/viewsupport/AsyncViewerTest.java @@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2006 Wind River Systems, 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: + * Markus Schorn - initial API and implementation + *******************************************************************************/ + +package org.eclipse.cdt.ui.tests.viewsupport; + +import junit.framework.TestCase; + +import org.eclipse.cdt.internal.ui.viewsupport.*; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.viewers.*; +import org.eclipse.swt.widgets.*; +import org.eclipse.ui.PlatformUI; + +public class AsyncViewerTest extends TestCase { + private class Node { + private String fLabel; + private Node[] fChildren; + private int fAsync; + + Node(String label, Node[] children, int async) { + fLabel= label; + fChildren= children; + fAsync= async; + } + + public Node(String label) { + this(label, new Node[0], 0); + } + + public String toString() { + return fLabel; + } + + public int hashCode() { + return fLabel.hashCode(); + } + + public boolean equals(Object rhs) { + if (rhs instanceof Node) { + return fLabel.equals(((Node) rhs).fLabel); + } + return false; + } + } + + private class ContentProvider extends AsyncTreeContentProvider { + public ContentProvider(Display disp) { + super(disp); + } + + public Object[] asyncronouslyComputeChildren(Object parentElement, IProgressMonitor monitor) { + Node n= (Node) parentElement; + try { + Thread.sleep(n.fAsync); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + return n.fChildren; + } + + public Object[] syncronouslyComputeChildren(Object parentElement) { + Node n= (Node) parentElement; + if (n.fAsync != 0) { + return null; + } + return n.fChildren; + } + }; + + private class MyLabelProvider extends LabelProvider { + public String getText(Object element) { + if (element instanceof AsyncTreeWorkInProgressNode) { + return "..."; + } + return ((Node) element).fLabel; + } + } + + private class TestDialog extends Dialog { + private TreeViewer fViewer; + private ContentProvider fContentProvider; + private boolean fUseExtendedViewer; + + protected TestDialog(Shell parentShell, boolean useExtendedViewer) { + super(parentShell); + fUseExtendedViewer= useExtendedViewer; + } + + protected Control createDialogArea(Composite parent) { + fContentProvider= new ContentProvider(getShell().getDisplay()); + + Composite comp= (Composite) super.createDialogArea(parent); + fViewer= fUseExtendedViewer ? new ExtendedTreeViewer(comp) : new TreeViewer(comp); + fViewer.setContentProvider(fContentProvider); + fViewer.setLabelProvider(new MyLabelProvider()); + return comp; + } + } + + public void testSyncPopulation() { + TestDialog dlg = createTestDialog(false); + doTestSyncPopulation(dlg); + } + + public void testSyncPopulationEx() { + TestDialog dlg = createTestDialog(true); + doTestSyncPopulation(dlg); + } + + private void doTestSyncPopulation(TestDialog dlg) { + Node a,b,c; + Node root= new Node("", new Node[] { + a= new Node("a"), + b= new Node("b", new Node[] { + c= new Node("c") + }, 0) + }, 0); + dlg.fViewer.setInput(root); + assertEquals(2, countVisibleItems(dlg.fViewer)); + + dlg.fViewer.setExpandedState(a, true); + assertEquals(2, countVisibleItems(dlg.fViewer)); + + dlg.fViewer.setExpandedState(b, true); + assertEquals(3, countVisibleItems(dlg.fViewer)); + } + + private TestDialog createTestDialog(boolean useExtendedViewer) { + TestDialog dlg= new TestDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), useExtendedViewer); + dlg.setBlockOnOpen(false); + dlg.open(); + return dlg; + } + + private int countVisibleItems(TreeViewer viewer) { + return countVisibleItems(viewer.getTree().getItems()); + } + + private int countVisibleItems(TreeItem[] items) { + int count= items.length; + for (int i = 0; i < items.length; i++) { + TreeItem item = items[i]; + if (item.getExpanded()) { + count+= countVisibleItems(item.getItems()); + } + } + return count; + } + + public void testAsyncPopulation() throws InterruptedException { + TestDialog dlg = createTestDialog(false); + doTestAsyncPopulation(dlg); + } + + public void testAsyncPopulationEx() throws InterruptedException { + TestDialog dlg = createTestDialog(true); + doTestAsyncPopulation(dlg); + } + + private void doTestAsyncPopulation(TestDialog dlg) throws InterruptedException { + Node a,b,c; + Node root= new Node("", new Node[] { + a= new Node("a", new Node[0], 200), + b= new Node("b", new Node[] { + new Node("c"), new Node("d") + }, 200) + }, 0); + + dlg.fViewer.setInput(root); dispatch(); + assertEquals(2, countVisibleItems(dlg.fViewer)); + + // expand async with no children + dlg.fViewer.setExpandedState(a, true); dispatch(); + assertEquals("...", dlg.fViewer.getTree().getItem(0).getItem(0).getText()); + assertEquals(3, countVisibleItems(dlg.fViewer)); + + Thread.sleep(400); dispatch(); + assertEquals(2, countVisibleItems(dlg.fViewer)); + + // reset the viewer + dlg.fViewer.setInput(null); + dlg.fViewer.setInput(root); + + // expand async with two children + dlg.fViewer.setExpandedState(b, true); dispatch(); + assertEquals(3, countVisibleItems(dlg.fViewer)); + assertEquals("...", dlg.fViewer.getTree().getItem(1).getItem(0).getText()); + + Thread.sleep(400); dispatch(); + assertEquals(4, countVisibleItems(dlg.fViewer)); + + // reset the viewer + dlg.fViewer.setInput(null); + dlg.fViewer.setInput(root); + + // wait until children are computed (for the sake of the +-sign) + Thread.sleep(600); dispatch(); + dlg.fViewer.setExpandedState(a, true); + assertEquals(2, countVisibleItems(dlg.fViewer)); + dlg.fViewer.setExpandedState(b, true); + assertEquals(4, countVisibleItems(dlg.fViewer)); + } + + private void dispatch() throws InterruptedException { + Display d= Display.getCurrent(); + while (d.readAndDispatch()); + } + + public void testRecompute() throws InterruptedException { + TestDialog dlg = createTestDialog(true); + Node a,b,c; + Node root= + new Node("", new Node[] { + a= new Node("a"), + b= new Node("b", new Node[] { + c= new Node("c", new Node[] { + new Node("c1"), new Node("c2")}, 150), + new Node("d") + }, 150) + }, 0); + + dlg.fViewer.setInput(root); dispatch(); + assertEquals(2, countVisibleItems(dlg.fViewer)); + + dlg.fContentProvider.recompute(); + assertEquals(2, countVisibleItems(dlg.fViewer)); + + dlg.fViewer.setExpandedState(b, true); + sleepAndDispatch(10, 16); + assertEquals(4, countVisibleItems(dlg.fViewer)); + sleepAndDispatch(10, 16); + + root.fChildren= new Node[] { + a= new Node("a1"), + b= new Node("b", new Node[] { + c= new Node("c", new Node[] { + new Node("c3"), new Node("c4")}, 150), + new Node("d") + }, 150) + }; + dlg.fContentProvider.recompute(); + assertEquals(3, countVisibleItems(dlg.fViewer)); + sleepAndDispatch(10, 16); + assertEquals(4, countVisibleItems(dlg.fViewer)); + + dlg.fViewer.setExpandedState(c, true); + assertEquals(5, countVisibleItems(dlg.fViewer)); + sleepAndDispatch(10, 16); + assertEquals(6, countVisibleItems(dlg.fViewer)); + + dlg.fViewer.setSelection(new StructuredSelection(c)); + dlg.fContentProvider.recompute(); + sleepAndDispatch(10, 16); + assertEquals(5, countVisibleItems(dlg.fViewer)); + sleepAndDispatch(10, 16); + assertEquals(6, countVisibleItems(dlg.fViewer)); + assertEquals(1, dlg.fViewer.getTree().getSelectionCount()); + assertEquals("c", dlg.fViewer.getTree().getSelection()[0].getText()); + } + + private void sleepAndDispatch(int sleep, int count) throws InterruptedException { + for (int i = 0; i < count; i++) { + Thread.sleep(sleep); dispatch(); + } + } +} diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/viewsupport/ViewSupportTestSuite.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/viewsupport/ViewSupportTestSuite.java new file mode 100644 index 00000000000..e290c64a4c0 --- /dev/null +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/viewsupport/ViewSupportTestSuite.java @@ -0,0 +1,26 @@ +/******************************************************************************* + * Copyright (c) 2006 Wind River Systems, 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: + * Markus Schorn - initial API and implementation + *******************************************************************************/ + +package org.eclipse.cdt.ui.tests.viewsupport; + +import junit.framework.TestSuite; + +public class ViewSupportTestSuite extends TestSuite { + + public static TestSuite suite() { + return new ViewSupportTestSuite(); + } + + public ViewSupportTestSuite() { + super("View support tests"); + addTestSuite(AsyncViewerTest.class); + } +} diff --git a/core/org.eclipse.cdt.ui/icons/dlcl16/ch_callees.gif b/core/org.eclipse.cdt.ui/icons/dlcl16/ch_callees.gif new file mode 100644 index 0000000000000000000000000000000000000000..4e01f248acd216b49ad1329931c9f6f726620f0a GIT binary patch literal 147 zcmZ?wbhEHb6krfw*v!DNZvBRNs}^tDw|(p0ZTpVyJ9hTi(KAO6oji2t#KEJd4qv@- z>DbYuhYlY6|NlP&7%2W^VPs(7WzYffKxQzoIBYoSxq9yoqmxy6vcVe1mX$IHC>%)) yQrm3cWR#=0ym_9-BT2T`0v{4G%n~k0JeDx^i$5vkwKhsWYk3*BoBebS25SJ)T|UPE literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui/icons/dlcl16/ch_callers.gif b/core/org.eclipse.cdt.ui/icons/dlcl16/ch_callers.gif new file mode 100644 index 0000000000000000000000000000000000000000..4091cac63563a25de2288ec7b534ae3c65eab1cc GIT binary patch literal 145 zcmZ?wbhEHb6krfw*v!DNZvBRNs}^tDw|(p0ZTpVyJ9hTi(KAO6oji2t#KEJd4qv@- z>CnN0|NsAIfC0syEQ|~cJPbM@0gxFCEOrx4damAEn&~q=@aQ4W(~b%U+jO0kI+T_l tHCdUqjs4hMHU>uFCi8`vQToSvj)dfuC@%Gxp_De^+UcSrTU{6!tO2XgJ_7&% literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui/icons/dlcl16/filterInactive.gif b/core/org.eclipse.cdt.ui/icons/dlcl16/filterInactive.gif new file mode 100644 index 0000000000000000000000000000000000000000..d8bda99d429374b4afe408893a80f0f425bed10f GIT binary patch literal 883 zcmW+#F>91j5Ij-TK!_nhQIG^1i;zOB6u}8bjOhf4?U>d|ti?UcU|}P+8&s_I7fc|6 zBK`znv5IynEEJ1%UKT#y-F`bWJM-=~Ht$@!zCAygpB(hWH9dN!N5|CPrqeyw_r3RD z4+#X2fPexT06`*%Bt#U^977C5AOi|ipku(8h(soos6^)=q7Xs~5=v;n)GS0H3o2Bh z3l?J|8re{z8r{GUXAEL$fY_jWt{{^XS!8=EMk|6DRIq{_^wJ)RWG0oYWG8LIun<#} zSYnGdW}+x&QN=2D(N;|z&1|Y!&29o=u^2`}!$dR!3=Z+gK^!$e;VJiA8KH=ZXyY=x zqFb4vjLPT?hv=m}lnNt(rPV%vmGC1d|+M zIgDlv6N$0lkk27yV$&Gp5jRFDvohOEN=N1u-IB7Dt@NcjL@(_jRaRwJ`kEc9Z5XD` z>g-NH4%)^{q;bh=2oyQ2npz`fHH8pkn75dQQQNW!uj~bfyoQvCO=FNp+!$3-ODM4v zHC9xqO8xI}clX_NIvqdup7hb-)1O?I{+>8C+N*x)f5iM`a{At+XD;6Tu)BBsLfcr1#X4WWh2yxr-TC+3-QU{0ar5b7T1>z0POkannon-CpXT|%b#(Cg`!Rt4 z5)e>810YBQk%WjMnq!E82xLHk3UrJ$CL)muB`VQ5fGC8Jf`k%UFfX$iEc?*%2xVN9il~hNR?IDl|E+2Y8zftXLWWb zAO~$@2GTfWH3W(rRt>EYvzkJPG0dAx!>Dc9ge6uwlI95jRGa)DlW8MGc86 zRjL0T@9yr;^W6TvT`g-ZY>h0}2dyBQx zm#@57|IK@ESI$1(Sl{2gwp=^z-lJ;n(2Y(dOgZ?d#?D_Vf1j z@~Wko;@;Hp@9M(A!TtzxR)a|IBhvdkLVK3Vn7@$G@XNT$<#Rt&?pp$VOX!!pkZssP8?frM~s?8 G002Ap2~9}= literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui/icons/dlcl16/search_prev.gif b/core/org.eclipse.cdt.ui/icons/dlcl16/search_prev.gif new file mode 100644 index 0000000000000000000000000000000000000000..38841abe9bbc7f2c4b412ff2e7368b95582d4389 GIT binary patch literal 152 zcmV;J0B8S4Nk%w1VGsZi0J8u9`1tku`uOke==AgNv8|u$>Ei0>;o{%b;M~#XF@36>*(S5_w~ZT!T^`dHKQ9 z)8iHt22PC%nHHV2B)M>1LCJ=~?3L*`D>JHAWG_6{_W%EX2HZgLCkrD3gBXJjND0VJ z23EfXs(mS$^D;O)x(+T0Q&0$Gl}%gly7`Mw^Bj+`f&eL2@7JQjYjwDt4moXp$h7ia m{sM2&e$N~&tK6u0rzb~*?R{FtsB7SAq7>|J^hSh^`dHKQ9 z)8iHt22PC%nHHV2B)M>1LCJ=~?3L*`D>JHAWG_6{_W%EX2HZgLCkrD3gBXJjND0VJ z23D^Hs(mS$^OhzVXmq-WmTY;XV0&4BCHG-KZ&T~_C;=fQC5I(RGdma$YMW`lU1xUZ j!Ay}K4TsW#wrr7@7<_ZX)U$7^_AB_7%)9Na$Y2cs$@58t literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui/icons/elcl16/filterInactive.gif b/core/org.eclipse.cdt.ui/icons/elcl16/filterInactive.gif new file mode 100644 index 0000000000000000000000000000000000000000..1292803d5dfe4bcea1752e43c2b1491b8b3b9011 GIT binary patch literal 888 zcmW+#J!@4_5WI>+1ByZI{D2^+h(AEF7zsfmSg2sV2p0Ahg3Vk+6tq&bvDqLYwf|sJ zs+EOB3SpaASO}>Uu~_G1;d0*FyEC&h=e-*@uV21$e`#8p{!F9hy=UG#W`CRKE!X$0 z%`dwF5J*5k0SzD!0R}RlKm|I+P!J@N5K%;Pz#_p!CX}c|=O7A!LJAT}Xu;G`U?B@C zRG|wNiv}CnP@@{%zz`1(;?Mv^BiwT_A|n)05$!3C78%J9qZrNb(jH<)W+R;$ zqaqbjl%f?jW+GN(g(|9|D{R%&?8pvvR7ZCJv>1m`YM5Yy2*wa+4r0~-(NpfZk`!5F z8<+HoZe>!*N_NsAdT9@(D6zyA9jk2^mPHk-*hL3zV(;REOxLJ*3L2>`Gs=W3>&# z)LEU~3CKa)n29tlSq&i+F|3+eBW867RB)KLn1)f?vI(#31&6$bl!;AakVo7YRZ>eR zMTs?5RH;h+Z+CrtW1i>s@4TnpJAC?+Yx(biebe-Ny5yJsM=VX#p?lM>#Zzk^*RL%v z96z)A@aQzNPn|pQ^y~8Kt3G`9?e@~Ol@}*ZzudWS`@yHzXO8S&-@bGI^ShO`W2=jg hc5b~tkIiR4-<(~0e(~{>jYHplY<;+XaN)po^*;*?+2Q~I literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui/icons/elcl16/filterSystem.gif b/core/org.eclipse.cdt.ui/icons/elcl16/filterSystem.gif new file mode 100644 index 0000000000000000000000000000000000000000..e4c0868d7d4abdd991fd2671fdccbce9dec5f05d GIT binary patch literal 873 zcmW+#v1(OO5WI@SBsS?4G=dN?osFU}jYiX1T4fX~!CJ(^y&w@48}kDjA=v64Oe_SE zH1>f73p*i|A{OhMEL_fedv|7b=Dc@%bK~l@2P@Oc^k*71A3yW)G5gy*@4F87KYTkP z5I_O~3TOZXi6D{?QABeLF%W?aC{Tfp0b?Q(nNXqKrj=jR+G=a){+H znl(%$#)3mWhm?s;V~|JO7^Te0Y%?hxnOAg6%2Kw{m+BC`w1-q#m0js;cC5Bxm^!Po zI{`Up8#9r{C95G&@j*_s)RRH2yZMG-dG{LyHRvkqv*C;prFW}Cb1QH0&9u|R~HDbFBMu_B(%Cf zXj8fH`cmQLIReYF1^)m4&p+|z+lLr1JVKV69Zf3ff)rJI#S8AmOS&g!objY zXp*F{?P9eo9}@`oK{Iw9&}i^SBU4D}c3FLN?5SiQ`V!5RSYo{04T literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui/icons/elcl16/search_prev.gif b/core/org.eclipse.cdt.ui/icons/elcl16/search_prev.gif new file mode 100644 index 0000000000000000000000000000000000000000..07164754e5ca231666d9daf7fa4a9d12e378a52a GIT binary patch literal 323 zcmZ?wbhEHb6krfwxXQrr@9+D6zn=X4cJ<${r+>d*`SKk--`OT*-X9 literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui/icons/ovr16/rec_referencedby_co.gif b/core/org.eclipse.cdt.ui/icons/ovr16/rec_referencedby_co.gif new file mode 100644 index 0000000000000000000000000000000000000000..6c93c32b3c0661fdc812c93112de69d6bececf2b GIT binary patch literal 829 zcmW+#J&sgi40|hJMN5aMprGRbAPQ6QQ_)f&S)9a!xBxvxC=l21)|>$;bhKOYBQ`i2 z>FJxvi|yFo%!^mgA3u3_ew-ga=SZEdpVRem%D2<$BK7^^>$gh+0tztDzyKgfh$zBD z6T=;%AfW^cEsPe%f(lh|p$k(>L_6hX$;p(qC9y<{EsmI_Go)e_UF_l%Vi(o70TdP-|F2 z4|_O6KoQd#mDhv@0>u?qEwOq*%2ax(k}S0}!IiRNT2*qXOH)dSSvo^y*=lR7#2Ooc zRm-hzO)EjiScq!mQIBQ>RIG-&Hst5_`(vMDu8*AglzQ;{ w=Gk#v9gp%d|A_PBxP9;VcXs#J>mUAbTs?gI=Hvb2{f%3HKE1s2?Ah`3KTAEt6951J literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui/icons/ovr16/rec_relatesto_co.gif b/core/org.eclipse.cdt.ui/icons/ovr16/rec_relatesto_co.gif new file mode 100644 index 0000000000000000000000000000000000000000..eef6eaa724ef84c695a738559be7cea6fccaaff7 GIT binary patch literal 828 zcmW+#J*rh<5IcfAbOVB5p}mErVi8eLT!Te$B{?91yO<}4wWVFGU4t;Ct*yUf<_#Ra zd*@7&NxpkuynO!f(d&!j;`lyC>b!c+tK-bK^Zb(f_T}T(9|QyxV4#5kK#&kogo!4G zJ48W32^LxyEsO;fs^CHwrk03?j52JrF-EA_P@@`dbYmJ3<3NKNc+i6xV8y8=rWeEk z(@Tjg(qxm9DQ!z)i56QNF-vDi#VWek#VN){U^2_J+2)ur79usP>1H>l8LOezu!bJ? zaE5>)rZpw%(HUg`b zTiu#gf{w8e)yShB%?PMi4RvkI)f-`fMXp$_(dso(*acUot6k&Dr6$BIogsI1*L3BY6KiY)=Bb{VDZmLj#zN%1WDg9QT&tn>#_XXXQ)@nA zUZb%U6InS6uDn+&#Gwf&BWY~4JvQ2Gt9M1WyFI^uTwZ=S&vSq5bIjF|GoMoTeqO(J t9RH5{d6|F2#c|xYef+(7=f;z}=bL}WpJ$&xy?^?4ZvA@o?!n#T@qdDS#PI+C literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui/icons/ovr16/referencedby_co.gif b/core/org.eclipse.cdt.ui/icons/ovr16/referencedby_co.gif new file mode 100644 index 0000000000000000000000000000000000000000..e2456a4a7cbd8bc7494071beedb668be42ea744b GIT binary patch literal 823 zcmW+#F^W`C5c~r!Y-r#C6bwCpVo;bUo}%ysdV~6bhcN3EWUo;hdj_GyO*b$R!M1uE zK5wRfS5;TNnGYY|zkc)S>bN@Y=SZE8&-r+q`F5Unsb6=uKOYDPD8N7i1ArhQq6iaB z40nivgc2;YFj^Q3DpbLRE=(;E4H;$FXk&~}v!O;c+~~$MBF2FRHSnMZGr)>dOH40_ z1E!Y}S)|D(CsW#%#1bvGIAWI0kcw4wv5QlTjlg7|vu^Q^yn5#F!0*hR+TBFr#qOc3De63W7LlaO&(%5oUS525) zi7YFoWmmh#l}k;CSvo`R>aOX^H7C~C2+UJGHB*2Sbc}__d&wRcG`Uto?Ty((L#Ebz z#JomhD<-mX7F>C+RER?pP)5?&YI|(7*;en0Zg+eBKHS{=IL~u`>~qZHku#rCFaA8a m9LK-oRbJ*FadjNm&yLIW@B7cs-(}|M%Wq%4`|IU$y!{WANWkF$ literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui/icons/ovr16/relatesto_co.gif b/core/org.eclipse.cdt.ui/icons/ovr16/relatesto_co.gif new file mode 100644 index 0000000000000000000000000000000000000000..460f9b4aa3839c1d01c7a332df0c5f47ca7b4eae GIT binary patch literal 821 zcmW+#F^W`C5c~^{7>cPFm>U`>24$ppio#o%)yIqU2I4hp!OSxV9ct!=ifCKC4WBpD zzpJXN-pt!~Z(h87e>pD4_c>DM-E-a@XTF{1P3qgt=dZT}1QcMPfdN2}5K)AQCWbpi zK|%=@S{N;i1r@5`LKmi%h=zVk^q1Ld59`>e{Qd@Kb_~fKlVB1?#P)>si(j1T^+~2 j<5^zjA8|R32ak@cUypzMtk)m!|9$fO!^88-dA#}$Cnv%6 literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui/icons/ovr16/systeminclude_co.gif b/core/org.eclipse.cdt.ui/icons/ovr16/systeminclude_co.gif new file mode 100644 index 0000000000000000000000000000000000000000..5c474e5bb5cc397445378d78d48e9229c76f6187 GIT binary patch literal 835 zcmW+#vCd6l5IjQoX|xK2LZ=c1QA{I5=?R8T=Mm;sUSk#FH3p5uGf0*<_&X8Bn*BF9 z`R?7bGqW?_y)R$Ac=Gh^_2cUC=h!-3Jg1A}ly9fgm(zC9+79O-`n?Er}&sY;nXaogo#g=wcVA7#o4fEYoJ2W5!sB)U2kP-JE8uhFZfK zdf3Am0*aW{sJtdL5Gby=YKhegQl`>Nm1L=<39ghC)2fn7U7Aut%+eVu%T`-sCDzyo ztXgh$Yg!39#zIshk9ssCpkg)DwJ}$3gasD4VzoxA*F<3#T=`n55Qiq9jHI#Us;-(a zxe{4cOv|ozjVqU$5VLfK+|^yvm1|C{u@RW3dTOQsC+HXpk@u24FlchEhT0pmhlWh8 z`G|Rq##T&ZjU|t{o5a^4R~xadz*xdHdJ*_iw&lp0gW|-<|ij4_EFydVcHm?{B*G;O^Pk@$5gs CkHhi+ literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui/icons/view16/includeBrowser.gif b/core/org.eclipse.cdt.ui/icons/view16/includeBrowser.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b784b6a00856aa6314bcd76fc6633a0d37933c8 GIT binary patch literal 866 zcmW+#y=qlq5Il-MNo7C_5fOhH3o8+frWkFEd5R&37CwY~TERvH+f5-BR=&YRun@sF z5LUs$QY#UQbv6r!@7_H-GduI$ySw*b`_BH>vbFqKrq-ipJvvr@Th~L^*Tc7;e-Q{E z0RaUx0D?piNr)(-IYSIYAOi|ipkrW6L?RPPRHAc;D1?xLgc4dXH49P5f(ljWg2mW~ zMmE%_MmI3xj3K55#0K4S1(~GCBHL3jtq5jN!3uWJOM57inN+fpowNIZ) z8J*z}y|jl?Aw?-#;aF|Mu&hu;Rdj`ewlNcBhdQdGJAkxRQ|H8-H4!G5UePTnOW8_aszdbB9#UmhcBQY`vD$`V>a5Q01mvJ? z%tV??Rzsl3v1)2f%xVfD#+bL5#;9%Cgje>0Bd?J%v1ttQh#ONSwS*E&QL~~-RqB7g z4i4U|>)QUE_tHm)Pk(Y<`FrBnvYcLS_@)05Tg$S6<;=##hwl$QJUMmt(zo4v`}d!H zxp4Q~`Iqa*=O=%EKYR7Wy8Ght$)`Vl{(ki7`L&(n+nYBZ@4dc$``xY0SC8*4%g%pZ CL(b3u literal 0 HcmV?d00001 diff --git a/core/org.eclipse.cdt.ui/plugin.properties b/core/org.eclipse.cdt.ui/plugin.properties index 925cd3da934..1ed07eb4c75 100644 --- a/core/org.eclipse.cdt.ui/plugin.properties +++ b/core/org.eclipse.cdt.ui/plugin.properties @@ -7,6 +7,7 @@ # # Contributors: # IBM Corporation - initial API and implementation +# Markus Schorn (Wind River Systems) ############################################################################### pluginName=C/C++ Development Tools UI providerName=Eclipse.org @@ -328,3 +329,8 @@ CDTIndexer.fastindexer=Fast C/C++ Indexer (faster but less accurate) IndexView.name=C/C++ Index RebuildIndex.name=Rebuild Index + +indexerPage.name = Indexer Page +proposalFilter.name = Code Completion Proposal Filter +includeBrowser.name = Include Browser +cSearchPage.name = CSearchPage \ No newline at end of file diff --git a/core/org.eclipse.cdt.ui/plugin.xml b/core/org.eclipse.cdt.ui/plugin.xml index 2d5358056e1..88ec71ab2f0 100644 --- a/core/org.eclipse.cdt.ui/plugin.xml +++ b/core/org.eclipse.cdt.ui/plugin.xml @@ -15,9 +15,9 @@ - + - + @@ -211,6 +211,8 @@ + + @@ -241,6 +243,12 @@ icon="icons/view16/types.gif" id="org.eclipse.cdt.ui.IndexView" name="%IndexView.name"/> +