< prev index next >

src/java.desktop/share/classes/javax/swing/plaf/metal/DefaultMetalTheme.java

Print this page


   1 /*
   2  * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 343             fontDelegate = new FontDelegate();
 344         }
 345     }
 346 
 347     /**
 348      * Returns true if this is a theme provided by the core platform.
 349      */
 350     boolean isSystemTheme() {
 351         return (getClass() == DefaultMetalTheme.class);
 352     }
 353 
 354     /**
 355      * FontDelegates add an extra level of indirection to obtaining fonts.
 356      */
 357     private static class FontDelegate {
 358         private static int[] defaultMapping = {
 359             CONTROL_TEXT_FONT, SYSTEM_TEXT_FONT,
 360             USER_TEXT_FONT, CONTROL_TEXT_FONT,
 361             CONTROL_TEXT_FONT, SUB_TEXT_FONT
 362         };
 363         FontUIResource fonts[];
 364 
 365         // menu and window are mapped to controlFont
 366         public FontDelegate() {
 367             fonts = new FontUIResource[6];
 368         }
 369 
 370         public FontUIResource getFont(int type) {
 371             int mappedType = defaultMapping[type];
 372             if (fonts[type] == null) {
 373                 Font f = getPrivilegedFont(mappedType);
 374 
 375                 if (f == null) {
 376                     f = new Font(getDefaultFontName(type),
 377                              getDefaultFontStyle(type),
 378                              getDefaultFontSize(type));
 379                 }
 380                 fonts[type] = new FontUIResource(f);
 381             }
 382             return fonts[type];
 383         }


   1 /*
   2  * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 343             fontDelegate = new FontDelegate();
 344         }
 345     }
 346 
 347     /**
 348      * Returns true if this is a theme provided by the core platform.
 349      */
 350     boolean isSystemTheme() {
 351         return (getClass() == DefaultMetalTheme.class);
 352     }
 353 
 354     /**
 355      * FontDelegates add an extra level of indirection to obtaining fonts.
 356      */
 357     private static class FontDelegate {
 358         private static int[] defaultMapping = {
 359             CONTROL_TEXT_FONT, SYSTEM_TEXT_FONT,
 360             USER_TEXT_FONT, CONTROL_TEXT_FONT,
 361             CONTROL_TEXT_FONT, SUB_TEXT_FONT
 362         };
 363         FontUIResource[] fonts;
 364 
 365         // menu and window are mapped to controlFont
 366         public FontDelegate() {
 367             fonts = new FontUIResource[6];
 368         }
 369 
 370         public FontUIResource getFont(int type) {
 371             int mappedType = defaultMapping[type];
 372             if (fonts[type] == null) {
 373                 Font f = getPrivilegedFont(mappedType);
 374 
 375                 if (f == null) {
 376                     f = new Font(getDefaultFontName(type),
 377                              getDefaultFontStyle(type),
 378                              getDefaultFontSize(type));
 379                 }
 380                 fonts[type] = new FontUIResource(f);
 381             }
 382             return fonts[type];
 383         }


< prev index next >