4343import processing .app .Messages ;
4444import processing .app .Mode ;
4545import processing .app .syntax .JEditTextArea ;
46+ import processing .app .ui .Theme ;
4647import processing .app .ui .Toolkit ;
4748
4849
4950public class CompletionPanel {
5051 static final int MAX_HEIGHT = 300 ;
52+ static final int ICON_SIZE = 16 ;
5153
5254 /** The completion list generated by ASTGenerator */
5355 final private JList <CompletionCandidate > completionList ;
@@ -72,7 +74,7 @@ public class CompletionPanel {
7274 static public ImageIcon classIcon ;
7375 static public ImageIcon fieldIcon ;
7476 static public ImageIcon methodIcon ;
75- static public ImageIcon localVarIcon ;
77+ static public ImageIcon localIcon ;
7678
7779 static Color selectionBgColor ;
7880 static Color textColor ;
@@ -98,12 +100,17 @@ public CompletionPanel(JavaEditor editor, int caret, String subWord,
98100
99101 if (classIcon == null ) {
100102 Mode mode = editor .getMode ();
101-
102103 File dir = new File (mode .getFolder (), "theme/completion" );
103- classIcon = Toolkit .getIconX (dir , "class_obj" );
104- methodIcon = Toolkit .getIconX (dir , "methpub_obj" );
105- fieldIcon = Toolkit .getIconX (dir , "field_protected_obj" );
106- localVarIcon = Toolkit .getIconX (dir , "field_default_obj" );
104+
105+ classIcon = renderIcon (dir , "class" );
106+ fieldIcon = renderIcon (dir , "field" );
107+ localIcon = renderIcon (dir , "local" );
108+ methodIcon = renderIcon (dir , "method" );
109+
110+ // String classHex = Theme.get("editor.completion.class.color");
111+ // classIcon = Toolkit.renderIcon(new File(dir, "class.svg"), classHex, ICON_SIZE);
112+ // String fieldHex = Theme.get("editor.completion.field.color");
113+ // classIcon = Toolkit.renderIcon(new File(dir, "class.svg"), classHex, ICON_SIZE);
107114
108115 selectionBgColor = new Color (0xffF0F0F0 );
109116 textColor = new Color (0xff222222 );
@@ -151,6 +158,12 @@ public void mouseClicked(MouseEvent e) {
151158 }
152159
153160
161+ static private ImageIcon renderIcon (File dir , String word ) {
162+ String hexColor = Theme .get ("editor.completion." + word + ".color" );
163+ return Toolkit .renderIcon (new File (dir , word + ".svg" ), hexColor , ICON_SIZE );
164+ }
165+
166+
154167 public boolean isVisible () {
155168 return popupMenu .isVisible ();
156169 }
@@ -369,7 +382,7 @@ public Component getListCellRendererComponent(JList<?> list, Object value,
369382 CompletionCandidate cc = (CompletionCandidate ) value ;
370383 switch (cc .getType ()) {
371384 case CompletionCandidate .LOCAL_VAR :
372- label .setIcon (localVarIcon );
385+ label .setIcon (localIcon );
373386 break ;
374387 case CompletionCandidate .LOCAL_FIELD :
375388 case CompletionCandidate .PREDEF_FIELD :
0 commit comments