1 7 8 package com.sun.java.swing.plaf.gtk; 9 10 import java.io.IOException ; 11 import java.util.ArrayList ; 12 import java.awt.Font ; 13 import java.awt.Insets ; 14 15 21 class BluecurveEngineParser extends GTKEngineParser { 22 23 private static final int SYM_CONTRAST = GTKScanner.TOKEN_LAST + 1; 24 private static final int SYM_WIDE = SYM_CONTRAST + 1; 25 private static final int SYM_TRUE = SYM_WIDE + 1; 26 private static final int SYM_FALSE = SYM_TRUE + 1; 27 28 private static final int[] symbolVals = { 29 SYM_CONTRAST, SYM_WIDE, SYM_TRUE, SYM_FALSE 30 }; 31 32 private static final String [] symbolNames = { 33 "contrast", "wide", "TRUE", "FALSE" }; 38 39 private static class BluecurveEngineInfo extends GTKParser.EngineInfo { 40 GTKStyle constructGTKStyle(GTKStyle.GTKStateInfo[] infoArray, 41 CircularIdentityList props, 42 Font font, 43 int xThickness, 44 int yThickness, 45 GTKStyle.GTKStockIconInfo[] stockArray) { 46 return new BluecurveStyle(infoArray, 47 props, 48 font, 49 xThickness, 50 yThickness, 51 stockArray); 52 } 53 } 54 55 private GTKScanner scanner; 56 private GTKParser parser; 57 private BluecurveEngineInfo engineInfo; 58 59 private void registerSymbolsIfNecessary() { 60 if (scanner.containsSymbol(symbolNames[0])) { 61 return; 62 } 63 64 for (int i = 0; i < symbolNames.length; i++) { 65 scanner.addSymbol(symbolNames[i], symbolVals[i]); 66 } 67 } 68 69 int parse(GTKScanner scanner, 70 GTKParser parser, 71 GTKParser.EngineInfo[] retVal) throws IOException { 72 73 this.scanner = scanner; 74 this.parser = parser; 75 76 if (retVal[0] == null) { 77 engineInfo = new BluecurveEngineInfo(); 78 } else { 79 engineInfo = (BluecurveEngineInfo)retVal[0]; 80 } 81 82 int oldScope = scanner.setScope(uniqueScopeID); 83 registerSymbolsIfNecessary(); 84 85 int token; 89 int curlys = 1; 90 91 while (curlys > 0) { 92 token = scanner.getToken(); 93 switch(token) { 94 case GTKScanner.TOKEN_EOF: 95 case GTKScanner.TOKEN_ERROR: 96 return GTKScanner.TOKEN_RIGHT_CURLY; 97 case GTKScanner.TOKEN_LEFT_CURLY: 98 curlys++; 99 break; 100 case GTKScanner.TOKEN_RIGHT_CURLY: 101 curlys--; 102 break; 103 default: 104 } 106 } 107 108 retVal[0] = engineInfo; 109 110 scanner.setScope(oldScope); 111 return GTKScanner.TOKEN_NONE; 112 } 113 114 } 115 | Popular Tags |