001    /*
002     * Copyright (C) 2008-2010 by Holger Arndt
003     *
004     * This file is part of the Universal Java Matrix Package (UJMP).
005     * See the NOTICE file distributed with this work for additional
006     * information regarding copyright ownership and licensing.
007     *
008     * UJMP is free software; you can redistribute it and/or modify
009     * it under the terms of the GNU Lesser General Public License as
010     * published by the Free Software Foundation; either version 2
011     * of the License, or (at your option) any later version.
012     *
013     * UJMP is distributed in the hope that it will be useful,
014     * but WITHOUT ANY WARRANTY; without even the implied warranty of
015     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
016     * GNU Lesser General Public License for more details.
017     *
018     * You should have received a copy of the GNU Lesser General Public
019     * License along with UJMP; if not, write to the
020     * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
021     * Boston, MA  02110-1301  USA
022     */
023    
024    package org.ujmp.gui.util;
025    
026    import java.awt.Insets;
027    import java.awt.RenderingHints;
028    import java.util.Locale;
029    
030    import javax.swing.ImageIcon;
031    import javax.swing.ToolTipManager;
032    import javax.swing.UIManager;
033    
034    public class UIDefaults {
035            public static final RenderingHints AALIAS = new RenderingHints(
036                            RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
037    
038            public static void setDefaults() {
039    
040            }
041    
042            static {
043                    try {
044                            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
045                    } catch (Throwable e) {
046                    }
047    
048                    ToolTipManager.sharedInstance().setDismissDelay(Integer.MAX_VALUE);
049    
050                    try {
051                            Locale.setDefault(Locale.US);
052                    } catch (Throwable e) {
053                    }
054    
055                    UIManager.put("Table.rowHeight", 32);
056                    UIManager.put("Table.iconWidth", 32);
057    
058                    UIManager.put("Table.paddingX", 2);
059                    UIManager.put("Table.paddingY", 2);
060    
061                    UIManager.put("JDMP.defaultInsets", new Insets(5, 5, 5, 5));
062    
063                    ClassLoader cl = UIDefaults.class.getClassLoader();
064    
065                    // TODO no icons available
066                    if (false) {
067    
068                            UIManager.put("JDMP.icon.Image", new ImageIcon(cl
069                                            .getResource("icons/image.png")));
070    
071                            UIManager.put("JDMP.icon.Variable", new ImageIcon(
072                                            "resources/icons/variable.png"));
073                            UIManager.put("JDMP.icon.Module", new ImageIcon(
074                                            "resources/icons/module.png"));
075                            UIManager.put("JDMP.icon.DataSet", new ImageIcon(
076                                            "resources/icons/dataset.png"));
077                            UIManager.put("JDMP.icon.Algorithm", new ImageIcon(
078                                            "resources/icons/algorithm.png"));
079                            UIManager.put("JDMP.icon.Sample", new ImageIcon(
080                                            "resources/icons/sample.png"));
081    
082                            UIManager.put("JDMP.icon.StartAction", new ImageIcon(
083                                            "resources/icons/start.png"));
084                            UIManager.put("JDMP.icon.StopAction", new ImageIcon(
085                                            "resources/icons/stop.png"));
086                            UIManager.put("JDMP.icon.AboutAction", new ImageIcon(cl
087                                            .getResource("icons/about.png")));
088                            UIManager.put("JDMP.icon.CalculateAction", new ImageIcon(cl
089                                            .getResource("icons/calculate.png")));
090                            UIManager.put("JDMP.icon.ClearAction", new ImageIcon(cl
091                                            .getResource("icons/new.png")));
092                            UIManager.put("JDMP.icon.CloseAction", new ImageIcon(cl
093                                            .getResource("icons/close.png")));
094                            UIManager.put("JDMP.icon.CopyAction", new ImageIcon(cl
095                                            .getResource("icons/copy.png")));
096                            UIManager.put("JDMP.icon.CutAction", new ImageIcon(cl
097                                            .getResource("icons/cut.png")));
098                            UIManager.put("JDMP.icon.DeleteAction", new ImageIcon(cl
099                                            .getResource("icons/delete.png")));
100                            UIManager.put("JDMP.icon.ExitAction", new ImageIcon(cl
101                                            .getResource("icons/exit.png")));
102                            UIManager.put("JDMP.icon.ExportAction", new ImageIcon(cl
103                                            .getResource("icons/export.png")));
104                            UIManager.put("JDMP.icon.NewAction", new ImageIcon(cl
105                                            .getResource("icons/new.png")));
106                            UIManager.put("JDMP.icon.NextAction", new ImageIcon(cl
107                                            .getResource("icons/next.png")));
108                            UIManager.put("JDMP.icon.PrintAction", new ImageIcon(cl
109                                            .getResource("icons/print.png")));
110                            UIManager.put("JDMP.icon.SaveAction", new ImageIcon(cl
111                                            .getResource("icons/save.png")));
112                            UIManager.put("JDMP.icon.SaveAsAction", new ImageIcon(cl
113                                            .getResource("icons/saveas.png")));
114                            UIManager.put("JDMP.icon.ShuffleAction", new ImageIcon(cl
115                                            .getResource("icons/shuffle.png")));
116                            UIManager.put("JDMP.icon.StartAction", new ImageIcon(cl
117                                            .getResource("icons/start.png")));
118                            UIManager.put("JDMP.icon.StopAction", new ImageIcon(cl
119                                            .getResource("icons/stop.png")));
120                            UIManager.put("JDMP.icon.PasteAction", new ImageIcon(cl
121                                            .getResource("icons/paste.png")));
122                    }
123    
124            }
125    }
126    
127    // AbstractButton.clickText
128    // AbstractDocument.additionText
129    // AbstractDocument.deletionText
130    // AbstractDocument.redoText
131    // AbstractDocument.styleChangeText
132    // AbstractDocument.undoText
133    // AbstractUndoableEdit.redoText
134    // AbstractUndoableEdit.undoText
135    // Button.background
136    // Button.border
137    // Button.disabledText
138    // Button.focus
139    // Button.focusInputMap
140    // Button.font
141    // Button.foreground
142    // Button.margin
143    // Button.select
144    // Button.textIconGap
145    // Button.textShiftOffset
146    // ButtonUI
147    // CheckBox.background
148    // CheckBox.border
149    // CheckBox.disabledText
150    // CheckBox.focus
151    // CheckBox.focusInputMap
152    // CheckBox.font
153    // CheckBox.foreground
154    // CheckBox.icon
155    // CheckBox.margin
156    // CheckBox.textIconGap
157    // CheckBox.textShiftOffset
158    // CheckBoxMenuItem.acceleratorFont
159    // CheckBoxMenuItem.acceleratorForeground
160    // CheckBoxMenuItem.acceleratorSelectionForeground
161    // CheckBoxMenuItem.arrowIcon
162    // CheckBoxMenuItem.background
163    // CheckBoxMenuItem.border
164    // CheckBoxMenuItem.borderPainted
165    // CheckBoxMenuItem.checkIcon
166    // CheckBoxMenuItem.disabledForeground
167    // CheckBoxMenuItem.font
168    // CheckBoxMenuItem.foreground
169    // CheckBoxMenuItem.margin
170    // CheckBoxMenuItem.selectionBackground
171    // CheckBoxMenuItem.selectionForeground
172    // CheckBoxMenuItemUI
173    // CheckBoxUI
174    // Checkbox.select
175    // ColorChooser.background
176    // ColorChooser.cancelText
177    // ColorChooser.font
178    // ColorChooser.foreground
179    // ColorChooser.hsbBlueText
180    // ColorChooser.hsbBrightnessText
181    // ColorChooser.hsbGreenText
182    // ColorChooser.hsbHueText
183    // ColorChooser.hsbNameText
184    // ColorChooser.hsbRedText
185    // ColorChooser.hsbSaturationText
186    // ColorChooser.okText
187    // ColorChooser.previewText
188    // ColorChooser.resetText
189    // ColorChooser.rgbBlueMnemonic
190    // ColorChooser.rgbBlueText
191    // ColorChooser.rgbGreenMnemonic
192    // ColorChooser.rgbGreenText
193    // ColorChooser.rgbNameText
194    // ColorChooser.rgbRedMnemonic
195    // ColorChooser.rgbRedText
196    // ColorChooser.sampleText
197    // ColorChooser.swatchesDefaultRecentColor
198    // ColorChooser.swatchesNameText
199    // ColorChooser.swatchesRecentSwatchSize
200    // ColorChooser.swatchesRecentText
201    // ColorChooser.swatchesSwatchSize
202    // ColorChooserUI
203    // ComboBox.ancestorInputMap
204    // ComboBox.background
205    // ComboBox.disabledBackground
206    // ComboBox.disabledForeground
207    // ComboBox.font
208    // ComboBox.foreground
209    // ComboBox.listBackground
210    // ComboBox.listForeground
211    // ComboBox.selectionBackground
212    // ComboBox.selectionForeground
213    // ComboBox.togglePopupText
214    // ComboBoxUI
215    // Desktop.ancestorInputMap
216    // Desktop.background
217    // DesktopIcon.background
218    // DesktopIcon.border
219    // DesktopIcon.font
220    // DesktopIcon.foreground
221    // DesktopIconUI
222    // DesktopPaneUI
223    // EditorPane.background
224    // EditorPane.border
225    // EditorPane.caretBlinkRate
226    // EditorPane.caretForeground
227    // EditorPane.focusInputMap
228    // EditorPane.font
229    // EditorPane.foreground
230    // EditorPane.inactiveForeground
231    // EditorPane.keyBindings
232    // EditorPane.margin
233    // EditorPane.selectionBackground
234    // EditorPane.selectionForeground
235    // EditorPaneUI
236    // FileChooser.acceptAllFileFilterText
237    // FileChooser.ancestorInputMap
238    // FileChooser.cancelButtonMnemonic
239    // FileChooser.cancelButtonText
240    // FileChooser.cancelButtonToolTipText
241    // FileChooser.detailsViewButtonAccessibleName
242    // FileChooser.detailsViewButtonToolTipText
243    // FileChooser.detailsViewIcon
244    // FileChooser.directoryDescriptionText
245    // FileChooser.fileDescriptionText
246    // FileChooser.fileNameLabelMnemonic
247    // FileChooser.fileNameLabelText
248    // FileChooser.filesOfTypeLabelMnemonic
249    // FileChooser.filesOfTypeLabelText
250    // FileChooser.helpButtonMnemonic
251    // FileChooser.helpButtonText
252    // FileChooser.helpButtonToolTipText
253    // FileChooser.homeFolderAccessibleName
254    // FileChooser.homeFolderIcon
255    // FileChooser.homeFolderToolTipText
256    // FileChooser.listViewButtonAccessibleName
257    // FileChooser.listViewButtonToolTipText
258    // FileChooser.listViewIcon
259    // FileChooser.lookInLabelMnemonic
260    // FileChooser.lookInLabelText
261    // FileChooser.newFolderAccessibleName
262    // FileChooser.newFolderErrorSeparator
263    // FileChooser.newFolderErrorText
264    // FileChooser.newFolderIcon
265    // FileChooser.newFolderToolTipText
266    // FileChooser.openButtonMnemonic
267    // FileChooser.openButtonText
268    // FileChooser.openButtonToolTipText
269    // FileChooser.openDialogTitleText
270    // FileChooser.other.newFolder
271    // FileChooser.other.newFolder.subsequent
272    // FileChooser.saveButtonMnemonic
273    // FileChooser.saveButtonText
274    // FileChooser.saveButtonToolTipText
275    // FileChooser.saveDialogTitleText
276    // FileChooser.upFolderAccessibleName
277    // FileChooser.upFolderIcon
278    // FileChooser.upFolderToolTipText
279    // FileChooser.updateButtonMnemonic
280    // FileChooser.updateButtonText
281    // FileChooser.updateButtonToolTipText
282    // FileChooser.win32.newFolder
283    // FileChooser.win32.newFolder.subsequent
284    // FileChooserUI
285    // FileView.computerIcon
286    // FileView.directoryIcon
287    // FileView.fileIcon
288    // FileView.floppyDriveIcon
289    // FileView.hardDriveIcon
290    // FocusManagerClassName
291    // FormView.resetButtonText
292    // FormView.submitButtonText
293    // InternalFrame.activeTitleBackground
294    // InternalFrame.activeTitleForeground
295    // InternalFrame.border
296    // InternalFrame.closeIcon
297    // InternalFrame.font
298    // InternalFrame.icon
299    // InternalFrame.iconifyIcon
300    // InternalFrame.inactiveTitleBackground
301    // InternalFrame.inactiveTitleForeground
302    // InternalFrame.maximizeIcon
303    // InternalFrame.minimizeIcon
304    // InternalFrame.optionDialogBorder
305    // InternalFrame.paletteBorder
306    // InternalFrame.paletteCloseIcon
307    // InternalFrame.paletteTitleHeight
308    // InternalFrame.titleFont
309    // InternalFrame.windowBindings
310    // InternalFrameTitlePane.closeButtonAccessibleName
311    // InternalFrameTitlePane.closeButtonText
312    // InternalFrameTitlePane.iconifyButtonAccessibleName
313    // InternalFrameTitlePane.maximizeButtonAccessibleName
314    // InternalFrameTitlePane.maximizeButtonText
315    // InternalFrameTitlePane.minimizeButtonText
316    // InternalFrameTitlePane.moveButtonText
317    // InternalFrameTitlePane.restoreButtonText
318    // InternalFrameTitlePane.sizeButtonText
319    // InternalFrameUI
320    // Label.background
321    // Label.disabledForeground
322    // Label.disabledShadow
323    // Label.font
324    // Label.foreground
325    // LabelUI
326    // List.background
327    // List.cellRenderer
328    // List.focusCellHighlightBorder
329    // List.focusInputMap
330    // List.font
331    // List.foreground
332    // List.selectionBackground
333    // List.selectionForeground
334    // ListUI
335    // Menu.acceleratorFont
336    // Menu.acceleratorForeground
337    // Menu.acceleratorSelectionForeground
338    // Menu.arrowIcon
339    // Menu.background
340    // Menu.border
341    // Menu.borderPainted
342    // Menu.checkIcon
343    // Menu.consumesTabs
344    // Menu.disabledForeground
345    // Menu.font
346    // Menu.foreground
347    // Menu.margin
348    // Menu.selectedWindowInputMapBindings
349    // Menu.selectionBackground
350    // Menu.selectionForeground
351    // MenuBar.background
352    // MenuBar.border
353    // MenuBar.font
354    // MenuBar.foreground
355    // MenuBar.windowBindings
356    // MenuBarUI
357    // MenuItem.acceleratorDelimiter
358    // MenuItem.acceleratorFont
359    // MenuItem.acceleratorForeground
360    // MenuItem.acceleratorSelectionForeground
361    // MenuItem.arrowIcon
362    // MenuItem.background
363    // MenuItem.border
364    // MenuItem.borderPainted
365    // MenuItem.checkIcon
366    // MenuItem.disabledForeground
367    // MenuItem.font
368    // MenuItem.foreground
369    // MenuItem.margin
370    // MenuItem.selectionBackground
371    // MenuItem.selectionForeground
372    // MenuItemUI
373    // MenuUI
374    // OptionPane.background
375    // OptionPane.border
376    // OptionPane.buttonAreaBorder
377    // OptionPane.cancelButtonText
378    // OptionPane.errorIcon
379    // OptionPane.font
380    // OptionPane.foreground
381    // OptionPane.informationIcon
382    // OptionPane.messageAreaBorder
383    // OptionPane.messageForeground
384    // OptionPane.minimumSize
385    // OptionPane.noButtonText
386    // OptionPane.okButtonText
387    // OptionPane.questionIcon
388    // OptionPane.titleText
389    // OptionPane.warningIcon
390    // OptionPane.windowBindings
391    // OptionPane.yesButtonText
392    // OptionPaneUI
393    // Panel.background
394    // Panel.font
395    // Panel.foreground
396    // PanelUI
397    // PasswordField.background
398    // PasswordField.border
399    // PasswordField.caretBlinkRate
400    // PasswordField.caretForeground
401    // PasswordField.focusInputMap
402    // PasswordField.font
403    // PasswordField.foreground
404    // PasswordField.inactiveForeground
405    // PasswordField.keyBindings
406    // PasswordField.margin
407    // PasswordField.selectionBackground
408    // PasswordField.selectionForeground
409    // PasswordFieldUI
410    // PopupMenu.background
411    // PopupMenu.border
412    // PopupMenu.font
413    // PopupMenu.foreground
414    // PopupMenu.selectedWindowInputMapBindings
415    // PopupMenuSeparatorUI
416    // PopupMenuUI
417    // ProgressBar.background
418    // ProgressBar.backgroundHighlight
419    // ProgressBar.border
420    // ProgressBar.cellLength
421    // ProgressBar.cellSpacing
422    // ProgressBar.font
423    // ProgressBar.foreground
424    // ProgressBar.foregroundHighlight
425    // ProgressBar.selectionBackground
426    // ProgressBar.selectionForeground
427    // ProgressBarUI
428    // ProgressMonitor.progressText
429    // RadioButton.background
430    // RadioButton.border
431    // RadioButton.disabledText
432    // RadioButton.focus
433    // RadioButton.focusInputMap
434    // RadioButton.font
435    // RadioButton.foreground
436    // RadioButton.icon
437    // RadioButton.margin
438    // RadioButton.select
439    // RadioButton.textIconGap
440    // RadioButton.textShiftOffset
441    // RadioButtonMenuItem.acceleratorFont
442    // RadioButtonMenuItem.acceleratorForeground
443    // RadioButtonMenuItem.acceleratorSelectionForeground
444    // RadioButtonMenuItem.arrowIcon
445    // RadioButtonMenuItem.background
446    // RadioButtonMenuItem.border
447    // RadioButtonMenuItem.borderPainted
448    // RadioButtonMenuItem.checkIcon
449    // RadioButtonMenuItem.disabledForeground
450    // RadioButtonMenuItem.font
451    // RadioButtonMenuItem.foreground
452    // RadioButtonMenuItem.margin
453    // RadioButtonMenuItem.selectionBackground
454    // RadioButtonMenuItem.selectionForeground
455    // RadioButtonMenuItemUI
456    // RadioButtonUI
457    // RootPane.defaultButtonWindowKeyBindings
458    // RootPaneUI
459    // ScrollBar.allowsAbsolutePositioning
460    // ScrollBar.background
461    // ScrollBar.darkShadow
462    // ScrollBar.focusInputMap
463    // ScrollBar.foreground
464    // ScrollBar.highlight
465    // ScrollBar.maximumThumbSize
466    // ScrollBar.minimumThumbSize
467    // ScrollBar.shadow
468    // ScrollBar.thumb
469    // ScrollBar.thumbDarkShadow
470    // ScrollBar.thumbHighlight
471    // ScrollBar.thumbLightShadow
472    // ScrollBar.thumbShadow
473    // ScrollBar.track
474    // ScrollBar.trackHighlight
475    // ScrollBar.width
476    // ScrollBarUI
477    // ScrollPane.ancestorInputMap
478    // ScrollPane.background
479    // ScrollPane.border
480    // ScrollPane.font
481    // ScrollPane.foreground
482    // ScrollPaneUI
483    // Separator.background
484    // Separator.foreground
485    // Separator.highlight
486    // Separator.shadow
487    // SeparatorUI
488    // Slider.background
489    // Slider.focus
490    // Slider.focusInputMap
491    // Slider.focusInsets
492    // Slider.foreground
493    // Slider.highlight
494    // Slider.horizontalThumbIcon
495    // Slider.majorTickLength
496    // Slider.shadow
497    // Slider.trackWidth
498    // Slider.verticalThumbIcon
499    // SliderUI
500    // SplitPane.ancestorInputMap
501    // SplitPane.background
502    // SplitPane.border
503    // SplitPane.dividerSize
504    // SplitPane.highlight
505    // SplitPane.leftButtonText
506    // SplitPane.rightButtonText
507    // SplitPane.shadow
508    // SplitPaneDivider.border
509    // SplitPaneUI
510    // StandardDialogUI
511    // TabbedPane.ancestorInputMap
512    // TabbedPane.background
513    // TabbedPane.contentBorderInsets
514    // TabbedPane.darkShadow
515    // TabbedPane.focus
516    // TabbedPane.focusInputMap
517    // TabbedPane.font
518    // TabbedPane.foreground
519    // TabbedPane.highlight
520    // TabbedPane.lightHighlight
521    // TabbedPane.selectHighlight
522    // TabbedPane.selected
523    // TabbedPane.selectedTabPadInsets
524    // TabbedPane.shadow
525    // TabbedPane.tabAreaBackground
526    // TabbedPane.tabAreaInsets
527    // TabbedPane.tabInsets
528    // TabbedPane.tabRunOverlay
529    // TabbedPane.textIconGap
530    // TabbedPaneUI
531    // Table.ancestorInputMap
532    // Table.background
533    // Table.focusCellBackground
534    // Table.focusCellForeground
535    // Table.focusCellHighlightBorder
536    // Table.font
537    // Table.foreground
538    // Table.gridColor
539    // Table.scrollPaneBorder
540    // Table.selectionBackground
541    // Table.selectionForeground
542    // TableHeader.background
543    // TableHeader.cellBorder
544    // TableHeader.font
545    // TableHeader.foreground
546    // TableHeaderUI
547    // TableUI
548    // TextArea.background
549    // TextArea.border
550    // TextArea.caretBlinkRate
551    // TextArea.caretForeground
552    // TextArea.focusInputMap
553    // TextArea.font
554    // TextArea.foreground
555    // TextArea.inactiveForeground
556    // TextArea.keyBindings
557    // TextArea.margin
558    // TextArea.selectionBackground
559    // TextArea.selectionForeground
560    // TextAreaUI
561    // TextField.background
562    // TextField.border
563    // TextField.caretBlinkRate
564    // TextField.caretForeground
565    // TextField.focusInputMap
566    // TextField.font
567    // TextField.foreground
568    // TextField.inactiveForeground
569    // TextField.keyBindings
570    // TextField.margin
571    // TextField.selectionBackground
572    // TextField.selectionForeground
573    // TextFieldUI
574    // TextPane.background
575    // TextPane.border
576    // TextPane.caretBlinkRate
577    // TextPane.caretForeground
578    // TextPane.focusInputMap
579    // TextPane.font
580    // TextPane.foreground
581    // TextPane.inactiveForeground
582    // TextPane.keyBindings
583    // TextPane.margin
584    // TextPane.selectionBackground
585    // TextPane.selectionForeground
586    // TextPaneUI
587    // TitledBorder.border
588    // TitledBorder.font
589    // TitledBorder.titleColor
590    // ToggleButton.background
591    // ToggleButton.border
592    // ToggleButton.disabledBackground
593    // ToggleButton.disabledSelectedBackground
594    // ToggleButton.disabledSelectedText
595    // ToggleButton.disabledText
596    // ToggleButton.focus
597    // ToggleButton.focusInputMap
598    // ToggleButton.font
599    // ToggleButton.foreground
600    // ToggleButton.margin
601    // ToggleButton.select
602    // ToggleButton.text
603    // ToggleButton.textIconGap
604    // ToggleButton.textShiftOffset
605    // ToggleButtonUI
606    // ToolBar.ancestorInputMap
607    // ToolBar.background
608    // ToolBar.border
609    // ToolBar.dockingBackground
610    // ToolBar.dockingForeground
611    // ToolBar.floatingBackground
612    // ToolBar.floatingForeground
613    // ToolBar.font
614    // ToolBar.foreground
615    // ToolBar.separatorSize
616    // ToolBarSeparatorUI
617    // ToolBarUI
618    // ToolTip.background
619    // ToolTip.border
620    // ToolTip.font
621    // ToolTip.foreground
622    // ToolTipUI
623    // Tree.ancestorInputMap
624    // Tree.background
625    // Tree.changeSelectionWithFocus
626    // Tree.closedIcon
627    // Tree.collapsedIcon
628    // Tree.drawsFocusBorderAroundIcon
629    // Tree.editorBorder
630    // Tree.expandedIcon
631    // Tree.focusInputMap
632    // Tree.font
633    // Tree.foreground
634    // Tree.hash
635    // Tree.leafIcon
636    // Tree.leftChildIndent
637    // Tree.line
638    // Tree.openIcon
639    // Tree.rightChildIndent
640    // Tree.rowHeight
641    // Tree.scrollsOnExpand
642    // Tree.selectionBackground
643    // Tree.selectionBorderColor
644    // Tree.selectionForeground
645    // Tree.textBackground
646    // Tree.textForeground
647    // TreeUI
648    // Viewport.background
649    // Viewport.font
650    // Viewport.foreground
651    // ViewportUI
652    // activeCaption
653    // activeCaptionBorder
654    // activeCaptionText
655    // control
656    // controlDkShadow
657    // controlHighlight
658    // controlLtHighlight
659    // controlShadow
660    // controlText
661    // desktop
662    // inactiveCaption
663    // inactiveCaptionBorder
664    // inactiveCaptionText
665    // info
666    // infoText
667    // menu
668    // menuText
669    // scrollbar
670    // text
671    // textHighlight
672    // textHighlightText
673    // textInactiveText
674    // textText
675    // window
676    // windowBorder
677    // windowText