Path: blob/master/src/java.desktop/unix/classes/sun/awt/X11/XAWTLookAndFeel.java
41159 views
/*1* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation. Oracle designates this7* particular file as subject to the "Classpath" exception as provided8* by Oracle in the LICENSE file that accompanied this code.9*10* This code is distributed in the hope that it will be useful, but WITHOUT11* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or12* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License13* version 2 for more details (a copy is included in the LICENSE file that14* accompanied this code).15*16* You should have received a copy of the GNU General Public License version17* 2 along with this work; if not, write to the Free Software Foundation,18* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.19*20* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA21* or visit www.oracle.com if you need additional information or have any22* questions.23*/2425package sun.awt.X11;2627import java.awt.Color;28import java.awt.Font;29import java.awt.SystemColor;3031import javax.swing.*;32import javax.swing.plaf.*;33import javax.swing.border.*;34import javax.swing.text.DefaultEditorKit;3536import javax.swing.plaf.basic.BasicBorders;37import com.sun.java.swing.plaf.motif.*;38import sun.awt.X11.XComponentPeer;3940@SuppressWarnings({"serial", "removal"}) // JDK-implementation class41class XAWTLookAndFeel extends MotifLookAndFeel {4243/**44* Load the SystemColors into the defaults table. The keys45* for SystemColor defaults are the same as the names of46* the public fields in SystemColor. If the table is being47* created on a native Motif platform we use the SystemColor48* values, otherwise we create color objects whose values match49* the default CDE/Motif colors.50*/51protected void initSystemColorDefaults(UIDefaults table) {52String[] defaultSystemColors = {53"desktop", "#005C5C", /* Color of the desktop background */54"activeCaption", "#000080", /* Color for captions (title bars) when they are active. */55"activeCaptionText", "#FFFFFF", /* Text color for text in captions (title bars). */56"activeCaptionBorder", "#B24D7A", /* Border color for caption (title bar) window borders. */57"inactiveCaption", "#AEB2C3", /* Color for captions (title bars) when not active. */58"inactiveCaptionText", "#000000", /* Text color for text in inactive captions (title bars). */59"inactiveCaptionBorder", "#AEB2C3", /* Border color for inactive caption (title bar) window borders. */60"window", "#AEB2C3", /* Default color for the interior of windows */61"windowBorder", "#AEB2C3", /* ??? */62"windowText", "#000000", /* ??? */63"menu", "#AEB2C3", /* ??? */64"menuText", "#000000", /* ??? */65"text", "#FFF7E9", /* Text background color */66"textText", "#000000", /* Text foreground color */67"textHighlight", "#000000", /* Text background color when selected */68"textHighlightText", "#FFF7E9", /* Text color when selected */69"textInactiveText", "#808080", /* Text color when disabled */70"control", "#AEB2C3", /* Default color for controls (buttons, sliders, etc) */71"controlText", "#000000", /* Default color for text in controls */72"controlHighlight", "#DCDEE5", /* Highlight color for controls */73"controlLtHighlight", "#DCDEE5", /* Light highlight color for controls */74"controlShadow", "#63656F", /* Shadow color for controls */75"controlLightShadow", "#9397A5", /* Shadow color for controls */76"controlDkShadow", "#000000", /* Dark shadow color for controls */77"scrollbar", "#AEB2C3", /* Scrollbar ??? color. PENDING(jeff) foreground? background? ?*/78"info", "#FFF7E9", /* ??? */79"infoText", "#000000" /* ??? */80};8182loadSystemColors(table, defaultSystemColors, true);83}8485protected void initComponentDefaults(UIDefaults table) {86super.initComponentDefaults(table);8788FontUIResource dialogPlain12 = new FontUIResource(Font.DIALOG,89Font.PLAIN, 12);90FontUIResource sansSerifPlain12 = new FontUIResource(Font.SANS_SERIF,91Font.PLAIN, 12);92FontUIResource monospacedPlain12 = new FontUIResource(Font.MONOSPACED,93Font.PLAIN, 12);94ColorUIResource red = new ColorUIResource(Color.red);95ColorUIResource black = new ColorUIResource(Color.black);96ColorUIResource white = new ColorUIResource(Color.white);97ColorUIResource lightGray = new ColorUIResource(Color.lightGray);98ColorUIResource controlDarker = new ColorUIResource(SystemColor.controlDkShadow);99100Color back = table.getColor("control");101Color[] colors = XComponentPeer.getSystemColors();102Color scrollBarBackground = colors[XComponentPeer.BACKGROUND_COLOR];103Color trackColor = new Color(MotifColorUtilities.calculateSelectFromBackground(scrollBarBackground.getRed(), scrollBarBackground.getGreen(), scrollBarBackground.getBlue()));104Border loweredBevelBorder = new MotifBorders.BevelBorder(false,105table.getColor("controlShadow"),106table.getColor("controlLtHighlight"));107108Border raisedBevelBorder = new MotifBorders.BevelBorder(true,109table.getColor("controlShadow"),110table.getColor("controlLtHighlight"));111112Border marginBorder = new BasicBorders.MarginBorder();113114Border focusBorder = new MotifBorders.FocusBorder(115table.getColor("control"),116table.getColor("activeCaptionBorder"));117118119Border focusBevelBorder = new BorderUIResource.CompoundBorderUIResource(120focusBorder,121loweredBevelBorder);122123Border textFieldBorder = new BorderUIResource.CompoundBorderUIResource(124focusBevelBorder,125marginBorder);126127// *** Text128129Object fieldInputMap = new UIDefaults.LazyInputMap(new Object[] {130"COPY", DefaultEditorKit.copyAction,131"PASTE", DefaultEditorKit.pasteAction,132"CUT", DefaultEditorKit.cutAction,133"control C", DefaultEditorKit.copyAction,134"control V", DefaultEditorKit.pasteAction,135"control X", DefaultEditorKit.cutAction,136"control INSERT", DefaultEditorKit.copyAction,137"shift INSERT", DefaultEditorKit.pasteAction,138"shift DELETE", DefaultEditorKit.cutAction,139"control F", DefaultEditorKit.forwardAction,140"control B", DefaultEditorKit.backwardAction,141"control D", DefaultEditorKit.deleteNextCharAction,142"typed \010", DefaultEditorKit.deletePrevCharAction,143"DELETE", DefaultEditorKit.deleteNextCharAction,144"RIGHT", DefaultEditorKit.forwardAction,145"LEFT", DefaultEditorKit.backwardAction,146"KP_RIGHT", DefaultEditorKit.forwardAction,147"KP_LEFT", DefaultEditorKit.backwardAction,148"shift LEFT", DefaultEditorKit.selectionBackwardAction,149"shift RIGHT", DefaultEditorKit.selectionForwardAction,150"control LEFT", DefaultEditorKit.previousWordAction,151"control RIGHT", DefaultEditorKit.nextWordAction,152"control shift LEFT", DefaultEditorKit.selectionPreviousWordAction,153"control shift RIGHT", DefaultEditorKit.selectionNextWordAction,154"control SLASH", DefaultEditorKit.selectAllAction,155"HOME", DefaultEditorKit.beginLineAction,156"END", DefaultEditorKit.endLineAction,157"shift HOME", DefaultEditorKit.selectionBeginLineAction,158"shift END", DefaultEditorKit.selectionEndLineAction,159"control BACK_SLASH", "unselect",160"ENTER", JTextField.notifyAction,161"control shift O", "toggle-componentOrientation"162});163164Object passwordInputMap = new UIDefaults.LazyInputMap(new Object[] {165"COPY", DefaultEditorKit.copyAction,166"PASTE", DefaultEditorKit.pasteAction,167"CUT", DefaultEditorKit.cutAction,168"control C", DefaultEditorKit.copyAction,169"control V", DefaultEditorKit.pasteAction,170"control X", DefaultEditorKit.cutAction,171"control INSERT", DefaultEditorKit.copyAction,172"shift INSERT", DefaultEditorKit.pasteAction,173"shift DELETE", DefaultEditorKit.cutAction,174"control F", DefaultEditorKit.forwardAction,175"control B", DefaultEditorKit.backwardAction,176"control D", DefaultEditorKit.deleteNextCharAction,177"typed \010", DefaultEditorKit.deletePrevCharAction,178"DELETE", DefaultEditorKit.deleteNextCharAction,179"RIGHT", DefaultEditorKit.forwardAction,180"LEFT", DefaultEditorKit.backwardAction,181"KP_RIGHT", DefaultEditorKit.forwardAction,182"KP_LEFT", DefaultEditorKit.backwardAction,183"shift LEFT", DefaultEditorKit.selectionBackwardAction,184"shift RIGHT", DefaultEditorKit.selectionForwardAction,185"control LEFT", DefaultEditorKit.beginLineAction,186"control RIGHT", DefaultEditorKit.endLineAction,187"control shift LEFT", DefaultEditorKit.selectionBeginLineAction,188"control shift RIGHT", DefaultEditorKit.selectionEndLineAction,189"control SLASH", DefaultEditorKit.selectAllAction,190"HOME", DefaultEditorKit.beginLineAction,191"END", DefaultEditorKit.endLineAction,192"shift HOME", DefaultEditorKit.selectionBeginLineAction,193"shift END", DefaultEditorKit.selectionEndLineAction,194"control BACK_SLASH", "unselect",195"ENTER", JTextField.notifyAction,196"control shift O", "toggle-componentOrientation"197});198199Object multilineInputMap = new UIDefaults.LazyInputMap(new Object[] {200"COPY", DefaultEditorKit.copyAction,201"PASTE", DefaultEditorKit.pasteAction,202"CUT", DefaultEditorKit.cutAction,203"control C", DefaultEditorKit.copyAction,204"control V", DefaultEditorKit.pasteAction,205"control X", DefaultEditorKit.cutAction,206"control INSERT", DefaultEditorKit.copyAction,207"shift INSERT", DefaultEditorKit.pasteAction,208"shift DELETE", DefaultEditorKit.cutAction,209"control F", DefaultEditorKit.forwardAction,210"control B", DefaultEditorKit.backwardAction,211"control D", DefaultEditorKit.deleteNextCharAction,212"typed \010", DefaultEditorKit.deletePrevCharAction,213"DELETE", DefaultEditorKit.deleteNextCharAction,214"RIGHT", DefaultEditorKit.forwardAction,215"LEFT", DefaultEditorKit.backwardAction,216"KP_RIGHT", DefaultEditorKit.forwardAction,217"KP_LEFT", DefaultEditorKit.backwardAction,218"shift LEFT", DefaultEditorKit.selectionBackwardAction,219"shift RIGHT", DefaultEditorKit.selectionForwardAction,220"control LEFT", DefaultEditorKit.previousWordAction,221"control RIGHT", DefaultEditorKit.nextWordAction,222"control shift LEFT", DefaultEditorKit.selectionPreviousWordAction,223"control shift RIGHT", DefaultEditorKit.selectionNextWordAction,224"control SLASH", DefaultEditorKit.selectAllAction,225"HOME", DefaultEditorKit.beginLineAction,226"END", DefaultEditorKit.endLineAction,227"shift HOME", DefaultEditorKit.selectionBeginLineAction,228"shift END", DefaultEditorKit.selectionEndLineAction,229230"control N", DefaultEditorKit.downAction,231"control P", DefaultEditorKit.upAction,232"UP", DefaultEditorKit.upAction,233"DOWN", DefaultEditorKit.downAction,234"KP_UP", DefaultEditorKit.upAction,235"KP_DOWN", DefaultEditorKit.downAction,236"PAGE_UP", DefaultEditorKit.pageUpAction,237"PAGE_DOWN", DefaultEditorKit.pageDownAction,238"shift PAGE_UP", "selection-page-up",239"shift PAGE_DOWN", "selection-page-down",240"ctrl shift PAGE_UP", "selection-page-left",241"ctrl shift PAGE_DOWN", "selection-page-right",242"shift UP", DefaultEditorKit.selectionUpAction,243"shift DOWN", DefaultEditorKit.selectionDownAction,244"shift KP_UP", DefaultEditorKit.selectionUpAction,245"shift KP_DOWN", DefaultEditorKit.selectionDownAction,246"ENTER", DefaultEditorKit.insertBreakAction,247"TAB", DefaultEditorKit.insertTabAction,248"control BACK_SLASH", "unselect",249"control HOME", DefaultEditorKit.beginAction,250"control END", DefaultEditorKit.endAction,251"control shift HOME", DefaultEditorKit.selectionBeginAction,252"control shift END", DefaultEditorKit.selectionEndAction,253"control T", "next-link-action",254"control shift T", "previous-link-action",255"control SPACE", "activate-link-action",256"control shift O", "toggle-componentOrientation"257});258259Object sliderFocusInsets = new InsetsUIResource( 0, 0, 0, 0 );260261Object[] defaults = {262263"ScrollBar.background", scrollBarBackground,264"ScrollBar.foreground", table.get("control"),265"ScrollBar.track", trackColor,266"ScrollBar.trackHighlight", trackColor,267"ScrollBar.thumb", scrollBarBackground,268"ScrollBar.thumbHighlight", table.get("controlHighlight") ,269"ScrollBar.thumbDarkShadow", table.get("controlDkShadow"),270"ScrollBar.thumbShadow", table.get("controlShadow"),271"ScrollBar.border", loweredBevelBorder,272"ScrollBar.allowsAbsolutePositioning", Boolean.TRUE,273"ScrollBar.defaultWidth", Integer.valueOf(17),274"ScrollBar.focusInputMap",275new UIDefaults.LazyInputMap(new Object[] {276"RIGHT", "positiveUnitIncrement",277"KP_RIGHT", "positiveUnitIncrement",278"DOWN", "positiveUnitIncrement",279"KP_DOWN", "positiveUnitIncrement",280"PAGE_DOWN", "positiveBlockIncrement",281"ctrl PAGE_DOWN", "positiveBlockIncrement",282"LEFT", "negativeUnitIncrement",283"KP_LEFT", "negativeUnitIncrement",284"UP", "negativeUnitIncrement",285"KP_UP", "negativeUnitIncrement",286"PAGE_UP", "negativeBlockIncrement",287"ctrl PAGE_UP", "negativeBlockIncrement",288"HOME", "minScroll",289"END", "maxScroll"290}),291292"ScrollPane.font", dialogPlain12,293"ScrollPane.background", scrollBarBackground,294"ScrollPane.foreground", table.get("controlText"),295"ScrollPane.border", null,296"ScrollPane.viewportBorder", loweredBevelBorder,297"ScrollPane.ancestorInputMap",298new UIDefaults.LazyInputMap(new Object[] {299"RIGHT", "unitScrollRight",300"KP_RIGHT", "unitScrollRight",301"DOWN", "unitScrollDown",302"KP_DOWN", "unitScrollDown",303"LEFT", "unitScrollLeft",304"KP_LEFT", "unitScrollLeft",305"UP", "unitScrollUp",306"KP_UP", "unitScrollUp",307"PAGE_UP", "scrollUp",308"PAGE_DOWN", "scrollDown",309"ctrl PAGE_UP", "scrollLeft",310"ctrl PAGE_DOWN", "scrollRight",311"ctrl HOME", "scrollHome",312"ctrl END", "scrollEnd"313}),314315"FormattedTextField.focusInputMap",316new UIDefaults.LazyInputMap(new Object[] {317"ctrl C", DefaultEditorKit.copyAction,318"ctrl V", DefaultEditorKit.pasteAction,319"ctrl X", DefaultEditorKit.cutAction,320"COPY", DefaultEditorKit.copyAction,321"PASTE", DefaultEditorKit.pasteAction,322"CUT", DefaultEditorKit.cutAction,323"shift LEFT", DefaultEditorKit.selectionBackwardAction,324"shift KP_LEFT", DefaultEditorKit.selectionBackwardAction,325"shift RIGHT", DefaultEditorKit.selectionForwardAction,326"shift KP_RIGHT", DefaultEditorKit.selectionForwardAction,327"ctrl LEFT", DefaultEditorKit.previousWordAction,328"ctrl KP_LEFT", DefaultEditorKit.previousWordAction,329"ctrl RIGHT", DefaultEditorKit.nextWordAction,330"ctrl KP_RIGHT", DefaultEditorKit.nextWordAction,331"ctrl shift LEFT", DefaultEditorKit.selectionPreviousWordAction,332"ctrl shift KP_LEFT", DefaultEditorKit.selectionPreviousWordAction,333"ctrl shift RIGHT", DefaultEditorKit.selectionNextWordAction,334"ctrl shift KP_RIGHT", DefaultEditorKit.selectionNextWordAction,335"ctrl A", DefaultEditorKit.selectAllAction,336"HOME", DefaultEditorKit.beginLineAction,337"END", DefaultEditorKit.endLineAction,338"shift HOME", DefaultEditorKit.selectionBeginLineAction,339"shift END", DefaultEditorKit.selectionEndLineAction,340"typed \010", DefaultEditorKit.deletePrevCharAction,341"DELETE", DefaultEditorKit.deleteNextCharAction,342"RIGHT", DefaultEditorKit.forwardAction,343"LEFT", DefaultEditorKit.backwardAction,344"KP_RIGHT", DefaultEditorKit.forwardAction,345"KP_LEFT", DefaultEditorKit.backwardAction,346"ENTER", JTextField.notifyAction,347"ctrl BACK_SLASH", "unselect",348"control shift O", "toggle-componentOrientation",349"ESCAPE", "reset-field-edit",350"UP", "increment",351"KP_UP", "increment",352"DOWN", "decrement",353"KP_DOWN", "decrement",354}),355356"TextField.caretForeground", black,357"TextField.caretBlinkRate", Integer.valueOf(500),358"TextField.inactiveForeground", table.get("textInactiveText"),359"TextField.selectionBackground", table.get("textHighlight"),360"TextField.selectionForeground", table.get("textHighlightText"),361"TextField.background", table.get("window"),362"TextField.foreground", table.get("textText"),363"TextField.font", sansSerifPlain12,364"TextField.border", textFieldBorder,365"TextField.focusInputMap", fieldInputMap,366367"PasswordField.caretForeground", black,368"PasswordField.caretBlinkRate", Integer.valueOf(500),369"PasswordField.inactiveForeground", table.get("textInactiveText"),370"PasswordField.selectionBackground", table.get("textHighlight"),371"PasswordField.selectionForeground", table.get("textHighlightText"),372"PasswordField.background", table.get("window"),373"PasswordField.foreground", table.get("textText"),374"PasswordField.font", sansSerifPlain12,375"PasswordField.border", textFieldBorder,376"PasswordField.focusInputMap", passwordInputMap,377378"TextArea.caretForeground", black,379"TextArea.caretBlinkRate", Integer.valueOf(500),380"TextArea.inactiveForeground", table.get("textInactiveText"),381"TextArea.selectionBackground", table.get("textHighlight"),382"TextArea.selectionForeground", table.get("textHighlightText"),383"TextArea.background", table.get("window"),384"TextArea.foreground", table.get("textText"),385"TextArea.font", monospacedPlain12,386"TextArea.border", marginBorder,387"TextArea.focusInputMap", multilineInputMap388};389390table.putDefaults(defaults);391}392}393394395