#Signature file v4.1
#Version 1.59

CLSS public java.lang.Object
cons public init()
meth protected java.lang.Object clone() throws java.lang.CloneNotSupportedException
meth protected void finalize() throws java.lang.Throwable
meth public boolean equals(java.lang.Object)
meth public final java.lang.Class<?> getClass()
meth public final void notify()
meth public final void notifyAll()
meth public final void wait() throws java.lang.InterruptedException
meth public final void wait(long) throws java.lang.InterruptedException
meth public final void wait(long,int) throws java.lang.InterruptedException
meth public int hashCode()
meth public java.lang.String toString()

CLSS public abstract org.netbeans.swing.plaf.LFCustoms
cons public init()
fld protected final static java.lang.String CUSTOM_FONT_SIZE = "customFontSize"
fld protected final static java.lang.String DEFAULT_FONT_SIZE = "nbDefaultFontSize"
fld protected final static java.lang.String DESKTOP_BACKGROUND = "Nb.Desktop.background"
fld protected final static java.lang.String DESKTOP_BORDER = "Nb.Desktop.border"
fld protected final static java.lang.String DESKTOP_SPLITPANE_BORDER = "nb.desktop.splitpane.border"
fld protected final static java.lang.String EDITOR_ERRORSTRIPE_SCROLLBAR_INSETS = "Nb.Editor.ErrorStripe.ScrollBar.Insets"
fld protected final static java.lang.String EDITOR_PREFERRED_COLOR_PROFILE = "nb.preferred.color.profile"
fld protected final static java.lang.String EDITOR_STATUS_INNER_BORDER = "Nb.Editor.Status.innerBorder"
fld protected final static java.lang.String EDITOR_STATUS_LEFT_BORDER = "Nb.Editor.Status.leftBorder"
fld protected final static java.lang.String EDITOR_STATUS_ONLYONEBORDER = "Nb.Editor.Status.onlyOneBorder"
fld protected final static java.lang.String EDITOR_STATUS_RIGHT_BORDER = "Nb.Editor.Status.rightBorder"
fld protected final static java.lang.String EDITOR_TABBED_CONTAINER_UI = "TabbedContainerUI"
fld protected final static java.lang.String EDITOR_TABSCOMPONENT_BORDER = "Nb.Editor.TabsComponent.border"
fld protected final static java.lang.String EDITOR_TAB_CONTENT_BORDER = "TabbedContainer.editor.contentBorder"
fld protected final static java.lang.String EDITOR_TAB_DISPLAYER_UI = "EditorTabDisplayerUI"
fld protected final static java.lang.String EDITOR_TAB_OUTER_BORDER = "TabbedContainer.editor.outerBorder"
fld protected final static java.lang.String EDITOR_TAB_TABS_BORDER = "TabbedContainer.editor.tabsBorder"
fld protected final static java.lang.String EDITOR_TOOLBAR_BORDER = "Nb.Editor.Toolbar.border"
fld protected final static java.lang.String ERROR_FOREGROUND = "nb.errorForeground"
fld protected final static java.lang.String EXPLORER_FOLDER_ICON = "Nb.Explorer.Folder.icon"
fld protected final static java.lang.String EXPLORER_FOLDER_OPENED_ICON = "Nb.Explorer.Folder.openedIcon"
fld protected final static java.lang.String EXPLORER_MINISTATUSBAR_BORDER = "nb.explorer.ministatusbar.border"
fld protected final static java.lang.String EXPLORER_STATUS_BORDER = "Nb.Explorer.Status.border"
fld protected final static java.lang.String OUTPUT_BACKGROUND = "nb.output.background"
fld protected final static java.lang.String OUTPUT_FOREGROUND = "nb.output.foreground"
fld protected final static java.lang.String OUTPUT_HYPERLINK_FOREGROUND = "nb.hyperlink.foreground"
fld protected final static java.lang.String OUTPUT_SELECTION_BACKGROUND = "nb.output.selectionBackground"
fld protected final static java.lang.String PROPERTYSHEET_BOOTSTRAP = "nb.propertysheet"
fld protected final static java.lang.String PROPSHEET_ALTERNATE_ROW_COLOR = "Tree.altbackground"
fld protected final static java.lang.String PROPSHEET_BACKGROUND = "netbeans.ps.background"
fld protected final static java.lang.String PROPSHEET_BUTTON_COLOR = "netbeans.ps.buttonColor"
fld protected final static java.lang.String PROPSHEET_BUTTON_FOREGROUND = "PropSheet.customButtonForeground"
fld protected final static java.lang.String PROPSHEET_DISABLED_FOREGROUND = "PropSheet.disabledForeground"
fld protected final static java.lang.String PROPSHEET_ICON_MARGIN = "netbeans.ps.iconmargin"
fld protected final static java.lang.String PROPSHEET_ROWHEIGHT = "netbeans.ps.rowheight"
fld protected final static java.lang.String PROPSHEET_SELECTED_SET_BACKGROUND = "PropSheet.selectedSetBackground"
fld protected final static java.lang.String PROPSHEET_SELECTED_SET_FOREGROUND = "PropSheet.selectedSetForeground"
fld protected final static java.lang.String PROPSHEET_SELECTION_BACKGROUND = "PropSheet.selectionBackground"
fld protected final static java.lang.String PROPSHEET_SELECTION_FOREGROUND = "PropSheet.selectionForeground"
fld protected final static java.lang.String PROPSHEET_SET_BACKGROUND = "PropSheet.setBackground"
fld protected final static java.lang.String PROPSHEET_SET_FOREGROUND = "PropSheet.setForeground"
fld protected final static java.lang.String QUICKSEARCH_BORDER = "nb.quicksearch.border"
fld protected final static java.lang.String SLIDING_BUTTON_UI = "SlidingButtonUI"
fld protected final static java.lang.String SLIDING_TAB_BUTTON_UI = "IndexButtonUI"
fld protected final static java.lang.String SLIDING_TAB_CONTENT_BORDER = "TabbedContainer.sliding.contentBorder"
fld protected final static java.lang.String SLIDING_TAB_DISPLAYER_UI = "SlidingTabDisplayerUI"
fld protected final static java.lang.String SLIDING_TAB_OUTER_BORDER = "TabbedContainer.sliding.outerBorder"
fld protected final static java.lang.String SLIDING_TAB_TABS_BORDER = "TabbedContainer.sliding.tabsBorder"
fld protected final static java.lang.String SPLIT_PANE_DIVIDER_SIZE_HORIZONTAL = "Nb.SplitPane.dividerSize.horizontal"
fld protected final static java.lang.String SPLIT_PANE_DIVIDER_SIZE_VERTICAL = "Nb.SplitPane.dividerSize.vertical"
fld protected final static java.lang.String TAB_ACTIVE_SELECTION_BACKGROUND = "TabRenderer.selectedActivatedBackground"
fld protected final static java.lang.String TAB_ACTIVE_SELECTION_FOREGROUND = "TabRenderer.selectedActivatedForeground"
fld protected final static java.lang.String TAB_SELECTION_BACKGROUND = "TabRenderer.selectedBackground"
fld protected final static java.lang.String TAB_SELECTION_FOREGROUND = "TabRenderer.selectedForeground"
fld protected final static java.lang.String TOOLBAR_UI = "Nb.Toolbar.ui"
fld protected final static java.lang.String VIEW_TAB_CONTENT_BORDER = "TabbedContainer.view.contentBorder"
fld protected final static java.lang.String VIEW_TAB_DISPLAYER_UI = "ViewTabDisplayerUI"
fld protected final static java.lang.String VIEW_TAB_OUTER_BORDER = "TabbedContainer.view.outerBorder"
fld protected final static java.lang.String VIEW_TAB_TABS_BORDER = "TabbedContainer.view.tabsBorder"
fld protected final static java.lang.String WARNING_FOREGROUND = "nb.warningForeground"
fld protected final static java.lang.String WORKPLACE_FILL = "nb_workplace_fill"
fld public final static java.lang.String CONTROLFONT = "controlFont"
fld public final static java.lang.String LISTFONT = "List.font"
fld public final static java.lang.String MENUFONT = "menuFont"
fld public final static java.lang.String OPTIONS_CATEGORIES_BUTTON_USE_NIMBUS = "nb.options.categories.button.useNimbusCategoryButton"
fld public final static java.lang.String OPTIONS_CATEGORIES_SEPARATOR_COLOR = "nb.options.categories.separatorColor"
fld public final static java.lang.String OPTIONS_USE_UI_DEFAULT_COLORS = "nb.options.useUIDefaultsColors"
fld public final static java.lang.String PANELFONT = "Panel.font"
fld public final static java.lang.String PROGRESS_CANCEL_BUTTON_ICON = "nb.progress.cancel.icon"
fld public final static java.lang.String PROGRESS_CANCEL_BUTTON_PRESSED_ICON = "nb.progress.cancel.icon.pressed"
fld public final static java.lang.String PROGRESS_CANCEL_BUTTON_ROLLOVER_ICON = "nb.progress.cancel.icon.mouseover"
fld public final static java.lang.String SCROLLPANE_BORDER = "Nb.ScrollPane.border"
fld public final static java.lang.String SCROLLPANE_BORDER_COLOR = "Nb.ScrollPane.Border.color"
fld public final static java.lang.String SPINNERFONT = "Spinner.font"
fld public final static java.lang.String SUBFONT = "subFont"
fld public final static java.lang.String SYSTEMFONT = "systemFont"
fld public final static java.lang.String TREEFONT = "Tree.font"
fld public final static java.lang.String USERFONT = "userFont"
fld public final static java.lang.String WINDOWTITLEFONT = "windowTitleFont"
meth protected java.lang.Object[] additionalKeys()
meth public java.lang.Object[] createApplicationSpecificKeysAndValues()
meth public java.lang.Object[] createGuaranteedKeysAndValues()
meth public java.lang.Object[] createLookAndFeelCustomizationKeysAndValues()
meth public static java.awt.Color getForeground(javax.swing.text.AttributeSet)
meth public static java.awt.Color getTextFgColor()
meth public static java.awt.Color shiftColor(java.awt.Color)
meth public static java.lang.String getHexString(int)
meth public static java.lang.String getTextFgColorHTML()
supr java.lang.Object
hfds appKeysAndValues,guaranteedKeysAndValues,lfKeysAndValues,shiftValue,textFgColor,textFgColorHTML

CLSS public final org.netbeans.swing.plaf.Startup
meth public static void run(java.lang.Class,int,java.net.URL)
meth public static void run(java.lang.Class,int,java.net.URL,java.util.ResourceBundle)
meth public static void setClassLoader(java.lang.ClassLoader)
supr java.lang.Object
hfds FORCED_CUSTOMS,NIMBUS,NO_CUSTOMIZATIONS,bundle,curCustoms,globalCustoms,installed,instance,listener,loader,themeURL,uiClass
hcls CLValue,LFInstanceOrName,LFListener

