Changeset 13639 in webkit
- Timestamp:
- Apr 2, 2006 6:11:28 PM (18 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r13638 r13639 1 2006-04-02 Darin Adler <darin@apple.com> 2 3 Reviewed by Adele. 4 5 - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8123 6 focus ring on new text field doesn't look like the old one 7 8 - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7685 9 Focus ring color should change to match graphite when system theme is graphite 10 11 - some cleanup to how we parse user agent style sheets 12 13 * css/CSSValueKeywords.in: Added -webkit-focus-ring-color. 14 15 * css/cssstyleselector.cpp: 16 (WebCore::parseUASheet): Parse an array of chars instead of UTF-16. 17 Cuts the size of the style sheet in half. 18 (WebCore::CSSStyleSelector::applyProperty): Allow negative value for 19 outline-offset. Changed shadow parsing to use getColorFromPrimitiveValue 20 instead of repeating the same logic. 21 (WebCore::CSSStyleSelector::getColorFromPrimitiveValue): Added a case 22 for the focus ring color. 23 * rendering/render_style.h: (WebCore::RenderStyle::setOutlineOffset): 24 Changed to allow negative values. 25 26 * css/html4.css: Removed a lot of excess spaces. Changed color of focus 27 to -webkit-focus-ring-color. Changed width of focus to 5px. 28 Added an outline-offset for <input type=text> of -2px. 29 30 * css/cssparser.cpp: 31 (WebCore::CSSParser::parseValue): Added focus ring color as an outline color all 32 the time, and as any other color when not in strict mode. I'm confused about what's 33 best for this whole strict mode policy, and I may need advice on Hyatt to perfect 34 this one later. 35 (WebCore::CSSParser::parseColorFromValue): Removed code to pin r, g, and b because 36 the functions in platform already take care of that. Kept the pinning of a, though 37 because that's done in floating point before converting to an integer. 38 (WebCore::CSSParser::parseShadow): Allow focus ring color when not in strict mode. 39 40 * bridge/mac/FrameMac.h: Eliminated the virtual detachFromView function. 41 * bridge/mac/FrameMac.mm: 42 (WebCore::FrameMac::FrameMac): Eliminated code to maintain the frame instances list. 43 (WebCore::FrameMac::~FrameMac): Ditto. 44 (WebCore::Frame::setNeedsReapplyStyles): Added. 45 46 * bridge/mac/WebCoreSettings.mm: (-[WebCoreSettings _updateAllViews]): 47 * platform/mac/WebCoreTextRendererFactory.mm: 48 (-[WebCoreTextRendererFactory clearCaches]): 49 Changed to call the new Page::setNeedsReapplyStylesForSettingsChange instead of using the 50 obsolete Frame::instances. 51 52 * page/Frame.h: Removed instances, mutableInstances, and detachFromView. 53 * page/Frame.cpp: Ditto. 54 55 * page/FrameTree.cpp: 56 (WebCore::FrameTree::~FrameTree): Call setView(0) instead of detachFromView(). 57 (WebCore::FrameTree::removeChild): Ditto. 58 59 * page/Page.h: 60 * page/Page.cpp: 61 (WebCore::Page::init): Added a set of pages instead of a page count. Also 62 register a function for when the focus ring color changes the first time this 63 is called. 64 (WebCore::Page::~Page): Call setView(0) instead of detachFromView. Also update 65 to manager the set of pages. 66 (WebCore::Page::setNeedsReapplyStyles): Call setNeedsReapplyStyles on all frames. 67 (WebCore::Page::setNeedsReapplyStylesForSettingsChange): Call setNeedsReapplyStyles 68 on all frames with the passed-in settings. 69 70 * css/make-css-file-arrays.pl: Changed to run the C preprocessor on the 71 input files and to generate an array of char instead of unsigned short. 72 73 * platform/PlatformString.h: Added a constructor that takes a char* and 74 a length. 75 * platform/String.cpp: (WebCore::String::String): Ditto. 76 77 * WebCore.xcodeproj/project.pbxproj: Just some tweaks; adding in a few files like 78 the user agent style sheets. 79 80 * platform/Color.h: Removed all use of DeprecatedString. Cleaned up a bit. 81 Added focusRingColor and setFocusRingColorChangeFunction. 82 * platform/Color.cpp: 83 (WebCore::makeRGB): Rewrote using max and min. 84 (WebCore::makeRGBA): Ditto. 85 (WebCore::parseHexColor): Cleaned up a bit; changed partway to String instead of 86 DeprecatedString. 87 (WebCore::Color::Color): Changed to use String and to call setNamedColor to save code. 88 (WebCore::Color::setNamedColor): Changed to use String in the interface. 89 90 * platform/mac/ColorMac.mm: 91 (WebCore::observeTheme): Added. Function used to start up the observer. 92 (WebCore::setFocusRingColorChangeFunction): Added. Used to get a call back so we can 93 update all the views when the color changes (including recomputing style to get the 94 color change in). 95 (WebCore::setFocusRingColorChangeFunction): Added. Returns one of the two focus 96 ring colors. Both of these match what AppKit uses -- neither matches what we used 97 to have in the html4.css file. 98 (+[WebCoreControlTintObserver controlTintDidChange]): Added. Used to update when 99 the appearance is changed from blue to graphite and back. We keep a global so we 100 don't have to call over to AppKit every time; that's probably overkill but we need 101 the obsever for the color change function anyway. 102 1 103 2006-04-02 Mitz Pettel <opendarwin.org@mitzpettel.com> 2 104 -
trunk/WebCore/WebCore.xcodeproj/project.pbxproj
r13634 r13639 290 290 93C841F809CE855C00DFF5E5 /* DOMImplementationFront.h in Headers */ = {isa = PBXBuildFile; fileRef = 93C841F709CE855C00DFF5E5 /* DOMImplementationFront.h */; }; 291 291 93C841FF09CE858300DFF5E5 /* DOMImplementationFront.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93C841FE09CE858300DFF5E5 /* DOMImplementationFront.cpp */; }; 292 93CA4CA409DF93FA00DF8677 /* CSSStyleDeclaration.idl in Resources */ = {isa = PBXBuildFile; fileRef = 93CA4C9709DF93FA00DF8677 /* CSSStyleDeclaration.idl */; }; 293 93CA4CA509DF93FA00DF8677 /* CSSStyleSheet.idl in Resources */ = {isa = PBXBuildFile; fileRef = 93CA4C9809DF93FA00DF8677 /* CSSStyleSheet.idl */; }; 294 93CA4CA609DF93FA00DF8677 /* html4.css in Resources */ = {isa = PBXBuildFile; fileRef = 93CA4C9909DF93FA00DF8677 /* html4.css */; }; 295 93CA4CA709DF93FA00DF8677 /* make-css-file-arrays.pl in Resources */ = {isa = PBXBuildFile; fileRef = 93CA4C9A09DF93FA00DF8677 /* make-css-file-arrays.pl */; }; 296 93CA4CA809DF93FA00DF8677 /* makeprop in Resources */ = {isa = PBXBuildFile; fileRef = 93CA4C9B09DF93FA00DF8677 /* makeprop */; }; 297 93CA4CA909DF93FA00DF8677 /* maketokenizer in Resources */ = {isa = PBXBuildFile; fileRef = 93CA4C9C09DF93FA00DF8677 /* maketokenizer */; }; 298 93CA4CAA09DF93FA00DF8677 /* makevalues in Resources */ = {isa = PBXBuildFile; fileRef = 93CA4C9D09DF93FA00DF8677 /* makevalues */; }; 299 93CA4CAB09DF93FA00DF8677 /* MediaList.idl in Resources */ = {isa = PBXBuildFile; fileRef = 93CA4C9E09DF93FA00DF8677 /* MediaList.idl */; }; 300 93CA4CAC09DF93FA00DF8677 /* quirks.css in Resources */ = {isa = PBXBuildFile; fileRef = 93CA4C9F09DF93FA00DF8677 /* quirks.css */; }; 301 93CA4CAD09DF93FA00DF8677 /* StyleSheet.idl in Resources */ = {isa = PBXBuildFile; fileRef = 93CA4CA009DF93FA00DF8677 /* StyleSheet.idl */; }; 302 93CA4CAE09DF93FA00DF8677 /* StyleSheetList.idl in Resources */ = {isa = PBXBuildFile; fileRef = 93CA4CA109DF93FA00DF8677 /* StyleSheetList.idl */; }; 303 93CA4CAF09DF93FA00DF8677 /* svg.css in Resources */ = {isa = PBXBuildFile; fileRef = 93CA4CA209DF93FA00DF8677 /* svg.css */; }; 304 93CA4CB009DF93FA00DF8677 /* tokenizer.flex in Resources */ = {isa = PBXBuildFile; fileRef = 93CA4CA309DF93FA00DF8677 /* tokenizer.flex */; }; 292 305 93CD4FDE0995F9EA007ECC97 /* AtomicString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93CD4FD70995F9EA007ECC97 /* AtomicString.cpp */; }; 293 306 93CD4FDF0995F9EA007ECC97 /* AtomicString.h in Headers */ = {isa = PBXBuildFile; fileRef = 93CD4FD80995F9EA007ECC97 /* AtomicString.h */; }; … … 1258 1271 656580EE09D12B20000E61D7 /* CSSPropertyNames.gperf */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CSSPropertyNames.gperf; sourceTree = "<group>"; }; 1259 1272 656580EF09D12B20000E61D7 /* CSSPropertyNames.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CSSPropertyNames.h; sourceTree = "<group>"; }; 1260 656580F009D12B20000E61D7 /* CSSPropertyNames.in */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CSSPropertyNames.in; sourceTree = "<group>"; };1261 1273 656580F109D12B20000E61D7 /* CSSPropertyNames.strip */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CSSPropertyNames.strip; sourceTree = "<group>"; }; 1262 1274 6565811C09D12DB2000E61D7 /* DocTypeStrings.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DocTypeStrings.cpp; sourceTree = "<group>"; }; … … 1265 1277 6565814709D13043000E61D7 /* CSSValueKeywords.gperf */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CSSValueKeywords.gperf; sourceTree = "<group>"; }; 1266 1278 6565814809D13043000E61D7 /* CSSValueKeywords.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CSSValueKeywords.h; sourceTree = "<group>"; }; 1267 6565814909D13043000E61D7 /* CSSValueKeywords.in */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CSSValueKeywords.in; sourceTree = "<group>"; };1268 1279 6565814A09D13043000E61D7 /* CSSValueKeywords.strip */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CSSValueKeywords.strip; sourceTree = "<group>"; }; 1269 1280 6565814B09D13043000E61D7 /* HTMLEntityNames.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = HTMLEntityNames.c; sourceTree = "<group>"; }; … … 1538 1549 93C841F709CE855C00DFF5E5 /* DOMImplementationFront.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DOMImplementationFront.h; path = bindings/objc/DOMImplementationFront.h; sourceTree = "<group>"; }; 1539 1550 93C841FE09CE858300DFF5E5 /* DOMImplementationFront.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DOMImplementationFront.cpp; path = bindings/objc/DOMImplementationFront.cpp; sourceTree = "<group>"; }; 1551 93CA4C9709DF93FA00DF8677 /* CSSStyleDeclaration.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CSSStyleDeclaration.idl; sourceTree = "<group>"; }; 1552 93CA4C9809DF93FA00DF8677 /* CSSStyleSheet.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CSSStyleSheet.idl; sourceTree = "<group>"; }; 1553 93CA4C9909DF93FA00DF8677 /* html4.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = html4.css; sourceTree = "<group>"; }; 1554 93CA4C9A09DF93FA00DF8677 /* make-css-file-arrays.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; path = "make-css-file-arrays.pl"; sourceTree = "<group>"; }; 1555 93CA4C9B09DF93FA00DF8677 /* makeprop */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = makeprop; sourceTree = "<group>"; }; 1556 93CA4C9C09DF93FA00DF8677 /* maketokenizer */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = maketokenizer; sourceTree = "<group>"; }; 1557 93CA4C9D09DF93FA00DF8677 /* makevalues */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = makevalues; sourceTree = "<group>"; }; 1558 93CA4C9E09DF93FA00DF8677 /* MediaList.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaList.idl; sourceTree = "<group>"; }; 1559 93CA4C9F09DF93FA00DF8677 /* quirks.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = quirks.css; sourceTree = "<group>"; }; 1560 93CA4CA009DF93FA00DF8677 /* StyleSheet.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = StyleSheet.idl; sourceTree = "<group>"; }; 1561 93CA4CA109DF93FA00DF8677 /* StyleSheetList.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = StyleSheetList.idl; sourceTree = "<group>"; }; 1562 93CA4CA209DF93FA00DF8677 /* svg.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = svg.css; sourceTree = "<group>"; }; 1563 93CA4CA309DF93FA00DF8677 /* tokenizer.flex */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tokenizer.flex; sourceTree = "<group>"; }; 1540 1564 93CCF7D4033BD43C008635CE /* KWQFileButton.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = KWQFileButton.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; 1541 1565 93CCF7D5033BD43C008635CE /* KWQFileButton.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = KWQFileButton.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; … … 2606 2630 656580EE09D12B20000E61D7 /* CSSPropertyNames.gperf */, 2607 2631 656580EF09D12B20000E61D7 /* CSSPropertyNames.h */, 2608 656580F009D12B20000E61D7 /* CSSPropertyNames.in */,2609 2632 656580F109D12B20000E61D7 /* CSSPropertyNames.strip */, 2610 2633 6565814609D13043000E61D7 /* CSSValueKeywords.c */, 2611 2634 6565814709D13043000E61D7 /* CSSValueKeywords.gperf */, 2612 2635 6565814809D13043000E61D7 /* CSSValueKeywords.h */, 2613 6565814909D13043000E61D7 /* CSSValueKeywords.in */,2614 2636 6565814A09D13043000E61D7 /* CSSValueKeywords.strip */, 2615 2637 6565811C09D12DB2000E61D7 /* DocTypeStrings.cpp */, … … 2679 2701 656581AE09D14EE6000E61D7 /* UserAgentStyleSheets.h */, 2680 2702 656581AF09D14EE6000E61D7 /* UserAgentStyleSheetsData.cpp */, 2681 6565829209D157FA000E61D7 /* WebCore */,2682 2703 656581EA09D1508D000E61D7 /* XLinkNames.cpp */, 2683 2704 656581EB09D1508D000E61D7 /* XLinkNames.h */, 2684 2705 ); 2685 2706 name = "Derived Sources"; 2686 path = DerivedSources/WebCore;2687 sourceTree = BUILT_PRODUCTS_DIR;2688 };2689 6565829209D157FA000E61D7 /* WebCore */ = {2690 isa = PBXGroup;2691 children = (2692 );2693 name = WebCore;2694 2707 path = DerivedSources/WebCore; 2695 2708 sourceTree = BUILT_PRODUCTS_DIR; … … 3173 3186 sourceTree = "<group>"; 3174 3187 }; 3175 A8 8427FC093081AD00B6D461 /* KDOM Support*/ = {3188 A8C0F6DC089701F100BA5114 /* WebCore+SVG */ = { 3176 3189 isa = PBXGroup; 3177 3190 children = ( … … 3182 3195 A884283809308C1C00B6D461 /* SVGNamesWrapper.cpp */, 3183 3196 A8C32D96093D8EA4000B9CAC /* XLinkNamesWrapper.cpp */, 3184 );3185 name = "KDOM Support";3186 sourceTree = "<group>";3187 };3188 A8C0F6DC089701F100BA5114 /* WebCore+SVG */ = {3189 isa = PBXGroup;3190 children = (3191 A88427FC093081AD00B6D461 /* KDOM Support */,3192 3197 ); 3193 3198 path = "WebCore+SVG"; … … 3905 3910 BCEA477A097CAAC80094C9E4 /* css_base.cpp */, 3906 3911 BCEA477B097CAAC80094C9E4 /* css_base.h */, 3907 BCEA477C097CAAC80094C9E4 /* CSSComputedStyleDeclaration.cpp */,3908 BCEA477D097CAAC80094C9E4 /* CSSComputedStyleDeclaration.h */,3909 BCEA477E097CAAC80094C9E4 /* CSSGrammar.y */,3910 3912 BCEA477F097CAAC80094C9E4 /* css_ruleimpl.cpp */, 3911 3913 BCEA4780097CAAC80094C9E4 /* css_ruleimpl.h */, … … 3914 3916 BCEA4783097CAAC80094C9E4 /* css_valueimpl.cpp */, 3915 3917 BCEA4784097CAAC80094C9E4 /* css_valueimpl.h */, 3918 BCEA477C097CAAC80094C9E4 /* CSSComputedStyleDeclaration.cpp */, 3919 BCEA477D097CAAC80094C9E4 /* CSSComputedStyleDeclaration.h */, 3920 BCEA477E097CAAC80094C9E4 /* CSSGrammar.y */, 3916 3921 BCEA4785097CAAC80094C9E4 /* csshelper.cpp */, 3917 3922 BCEA4786097CAAC80094C9E4 /* csshelper.h */, … … 3919 3924 BCEA4788097CAAC80094C9E4 /* cssparser.h */, 3920 3925 BCEA4789097CAAC80094C9E4 /* CSSPropertyNames.in */, 3926 93CA4C9709DF93FA00DF8677 /* CSSStyleDeclaration.idl */, 3921 3927 BCEA478A097CAAC80094C9E4 /* cssstyleselector.cpp */, 3922 3928 BCEA478B097CAAC80094C9E4 /* cssstyleselector.h */, 3929 93CA4C9809DF93FA00DF8677 /* CSSStyleSheet.idl */, 3923 3930 BCEA478C097CAAC80094C9E4 /* CSSValueKeywords.in */, 3931 93CA4C9909DF93FA00DF8677 /* html4.css */, 3924 3932 935C476009AC4CD100A6AAB4 /* Length.h */, 3933 93CA4C9A09DF93FA00DF8677 /* make-css-file-arrays.pl */, 3934 93CA4C9B09DF93FA00DF8677 /* makeprop */, 3935 93CA4C9C09DF93FA00DF8677 /* maketokenizer */, 3936 93CA4C9D09DF93FA00DF8677 /* makevalues */, 3937 93CA4C9E09DF93FA00DF8677 /* MediaList.idl */, 3938 93CA4C9F09DF93FA00DF8677 /* quirks.css */, 3939 93CA4CA009DF93FA00DF8677 /* StyleSheet.idl */, 3940 93CA4CA109DF93FA00DF8677 /* StyleSheetList.idl */, 3941 93CA4CA209DF93FA00DF8677 /* svg.css */, 3942 93CA4CA309DF93FA00DF8677 /* tokenizer.flex */, 3925 3943 ); 3926 3944 path = css; … … 4957 4975 930CAB9709C49FAA00229C04 /* CodeGeneratorJS.pm in Resources */, 4958 4976 936DD03B09CEAC270056AE8C /* Range.idl in Resources */, 4977 93CA4CA409DF93FA00DF8677 /* CSSStyleDeclaration.idl in Resources */, 4978 93CA4CA509DF93FA00DF8677 /* CSSStyleSheet.idl in Resources */, 4979 93CA4CA609DF93FA00DF8677 /* html4.css in Resources */, 4980 93CA4CA709DF93FA00DF8677 /* make-css-file-arrays.pl in Resources */, 4981 93CA4CA809DF93FA00DF8677 /* makeprop in Resources */, 4982 93CA4CA909DF93FA00DF8677 /* maketokenizer in Resources */, 4983 93CA4CAA09DF93FA00DF8677 /* makevalues in Resources */, 4984 93CA4CAB09DF93FA00DF8677 /* MediaList.idl in Resources */, 4985 93CA4CAC09DF93FA00DF8677 /* quirks.css in Resources */, 4986 93CA4CAD09DF93FA00DF8677 /* StyleSheet.idl in Resources */, 4987 93CA4CAE09DF93FA00DF8677 /* StyleSheetList.idl in Resources */, 4988 93CA4CAF09DF93FA00DF8677 /* svg.css in Resources */, 4989 93CA4CB009DF93FA00DF8677 /* tokenizer.flex in Resources */, 4959 4990 ); 4960 4991 runOnlyForDeploymentPostprocessing = 0; -
trunk/WebCore/bindings/scripts/CodeGeneratorJS.pm
r13555 r13639 125 125 } elsif ($module eq "core") { 126 126 return "#include \"kjs_dom.h\"\n\n"; 127 } elsif ($module eq "css") { 128 return "#include \"kjs_css.h\"\n\n"; 127 129 } elsif ($module eq "html") { 128 130 return "#include \"kjs_html.h\"\n\n"; … … 154 156 } elsif ($type eq "CSSStyleSheet" or $type eq "StyleSheet") { 155 157 $implIncludes{"css_stylesheetimpl.h"} = 1; 158 } elsif ($type eq "CSSPrimitiveValue" or $type eq "Counter" or $type eq "Rect" or $type eq "RGBColor") { 159 $implIncludes{"css_valueimpl.h"} = 1; 156 160 } elsif ($type eq "HTMLDocument") { 157 161 $implIncludes{"HTMLDocument.h"} = 1; … … 852 856 $type eq "Attr" or 853 857 $type eq "DocumentFragment") { 854 # Add necessary includes855 858 $implIncludes{"kjs_dom.h"} = 1; 856 859 $implIncludes{"Node.h"} = 1; … … 858 861 return "toJS(exec, $value)"; 859 862 } elsif ($type eq "EventTarget") { 860 # Add necessary includes861 863 $implIncludes{"kjs_dom.h"} = 1; 862 864 $implIncludes{"EventTargetNode.h"} = 1; 863 865 return "toJS(exec, $value)"; 864 866 } elsif ($type eq "NodeList" or $type eq "NamedNodeMap") { 865 # Add necessary includes866 867 $implIncludes{"kjs_dom.h"} = 1; 867 868 return "toJS(exec, $value)"; 868 } elsif ($type eq "CSSStyleSheet" or $type eq "StyleSheet") { 869 # Add necessary includes 869 } elsif ($type eq "CSSStyleSheet" or $type eq "StyleSheet" or $type eq "MediaList") { 870 870 $implIncludes{"css_stylesheetimpl.h"} = 1; 871 871 $implIncludes{"css_ruleimpl.h"} = 1; 872 872 $implIncludes{"kjs_css.h"} = 1; 873 873 return "toJS(exec, $value)"; 874 } elsif ($type eq "CSSStyleDeclaration") { 875 # Add necessary includes 874 } elsif ($type eq "CSSStyleDeclaration" or $type eq "Counter" or $type eq "Rect") { 876 875 $implIncludes{"css_valueimpl.h"} = 1; 877 876 $implIncludes{"kjs_css.h"} = 1; 878 877 return "toJS(exec, $value)"; 878 } elsif ($type eq "RGBColor") { 879 $implIncludes{"kjs_css.h"} = 1; 880 return "getDOMRGBColor(exec, $value)"; 879 881 } elsif ($type eq "HTMLCanvasElement") { 880 882 $implIncludes{"kjs_dom.h"} = 1; -
trunk/WebCore/bridge/mac/FrameMac.h
r13605 r13639 329 329 void registerCommandForUndoOrRedo(const EditCommandPtr &cmd, bool isRedo); 330 330 331 virtual void detachFromView();332 333 331 WebCoreFrameBridge* _bridge; 334 332 -
trunk/WebCore/bridge/mac/FrameMac.mm
r13621 r13639 127 127 , _windowScriptNPObject(0) 128 128 { 129 mutableInstances().prepend(this);130 131 129 d->m_extension = new BrowserExtensionMac(this); 132 130 } … … 135 133 { 136 134 setView(0); 137 mutableInstances().remove(this);138 135 freeClipboard(); 139 136 clearRecordedFormValues(); … … 2356 2353 maxMarkerWidth = MAX([font pointSize], maxMarkerWidth); 2357 2354 switch(style->listStyleType()) { 2358 case WebCore::DISC:2355 case DISC: 2359 2356 listText += ((QChar)BULLET_CHAR); 2360 2357 break; 2361 case WebCore::CIRCLE:2358 case CIRCLE: 2362 2359 listText += ((QChar)CIRCLE_CHAR); 2363 2360 break; 2364 case WebCore::SQUARE:2361 case SQUARE: 2365 2362 listText += ((QChar)SQUARE_CHAR); 2366 2363 break; 2367 case WebCore::LNONE:2364 case LNONE: 2368 2365 break; 2369 2366 default: … … 2751 2748 2752 2749 int decoration = style->textDecorationsInEffect(); 2753 if (decoration & WebCore::LINE_THROUGH)2750 if (decoration & LINE_THROUGH) 2754 2751 [result setObject:[NSNumber numberWithInt:NSUnderlineStyleSingle] forKey:NSStrikethroughStyleAttributeName]; 2755 2752 2756 2753 int superscriptInt = 0; 2757 2754 switch (style->verticalAlign()) { 2758 case WebCore::BASELINE:2759 case WebCore::BOTTOM:2760 case WebCore::BASELINE_MIDDLE:2761 case WebCore::LENGTH:2762 case WebCore::MIDDLE:2763 case WebCore::TEXT_BOTTOM:2764 case WebCore::TEXT_TOP:2765 case WebCore::TOP:2755 case BASELINE: 2756 case BOTTOM: 2757 case BASELINE_MIDDLE: 2758 case LENGTH: 2759 case MIDDLE: 2760 case TEXT_BOTTOM: 2761 case TEXT_TOP: 2762 case TOP: 2766 2763 break; 2767 case WebCore::SUB:2764 case SUB: 2768 2765 superscriptInt = -1; 2769 2766 break; 2770 case WebCore::SUPER:2767 case SUPER: 2771 2768 superscriptInt = 1; 2772 2769 break; … … 2775 2772 [result setObject:[NSNumber numberWithInt:superscriptInt] forKey:NSSuperscriptAttributeName]; 2776 2773 2777 if (decoration & WebCore::UNDERLINE)2774 if (decoration & UNDERLINE) 2778 2775 [result setObject:[NSNumber numberWithInt:NSUnderlineStyleSingle] forKey:NSUnderlineStyleAttributeName]; 2779 2776 … … 2800 2797 2801 2798 switch (style->direction()) { 2802 case WebCore::LTR:2799 case LTR: 2803 2800 result = NSWritingDirectionLeftToRight; 2804 2801 break; 2805 case WebCore::RTL:2802 case RTL: 2806 2803 result = NSWritingDirectionRightToLeft; 2807 2804 break; … … 2873 2870 } 2874 2871 2875 void FrameMac::didTellBridgeAboutLoad(const WebCore::String& URL)2872 void FrameMac::didTellBridgeAboutLoad(const String& URL) 2876 2873 { 2877 2874 urlsBridgeKnowsAbout.add(URL.impl()); 2878 2875 } 2879 2876 2880 bool FrameMac::haveToldBridgeAboutLoad(const WebCore::String& URL)2877 bool FrameMac::haveToldBridgeAboutLoad(const String& URL) 2881 2878 { 2882 2879 return urlsBridgeKnowsAbout.contains(URL.impl()); … … 3149 3146 } 3150 3147 3151 bool FrameMac::shouldChangeSelection(const SelectionController &oldSelection, const SelectionController &newSelection, WebCore::EAffinity affinity, bool stillSelecting) const3148 bool FrameMac::shouldChangeSelection(const SelectionController &oldSelection, const SelectionController &newSelection, EAffinity affinity, bool stillSelecting) const 3152 3149 { 3153 3150 return [_bridge shouldChangeSelectedDOMRange:[DOMRange _rangeWith:oldSelection.toRange().get()] … … 3372 3369 } 3373 3370 3374 void Frame Mac::detachFromView()3375 { 3376 setView(0);3377 } 3378 3379 } 3371 void Frame::setNeedsReapplyStyles() 3372 { 3373 [Mac(this)->bridge() setNeedsReapplyStyles]; 3374 } 3375 3376 } -
trunk/WebCore/bridge/mac/WebCoreSettings.mm
r13440 r13639 1 1 /* 2 * Copyright (C) 2004 Apple Computer, Inc. All rights reserved.2 * Copyright (C) 2004, 2006 Apple Computer, Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 #i nclude"config.h"26 #import "config.h" 27 27 #import "WebCoreSettings.h" 28 28 29 29 #import "FoundationExtras.h" 30 #import "FrameMac.h"31 30 #import "KWQKHTMLSettings.h" 31 #import "Page.h" 32 32 #import "WebCoreFrameBridge.h" 33 33 … … 62 62 // A Frame may not have been created yet, so we initialize the AtomicString hash before we try and use it in KHTMLSettings. 63 63 AtomicString::init(); 64 settings = new KHTMLSettings ();64 settings = new KHTMLSettings; 65 65 return [super init]; 66 66 } … … 68 68 - (void)_updateAllViews 69 69 { 70 for (DeprecatedPtrListIterator<Frame> it(Frame::instances()); it.current(); ++it) { 71 FrameMac *frame = Mac(it.current()); 72 if (frame->settings() == settings) 73 [frame->bridge() setNeedsReapplyStyles]; 74 } 70 Page::setNeedsReapplyStylesForSettingsChange(settings); 75 71 } 76 72 -
trunk/WebCore/css/CSSValueKeywords.in
r13581 r13639 151 151 windowframe 152 152 windowtext 153 -webkit-focus-ring-color 153 154 # 154 155 # colors in non strict mode -
trunk/WebCore/css/cssparser.cpp
r13581 r13639 44 44 extern int cssyyparse(void* parser); 45 45 46 using namespace std; 47 46 48 namespace WebCore { 47 49 … … 570 572 /* nobreak */ 571 573 case CSS_PROP_OUTLINE_COLOR: // <color> | invert | inherit 572 // outline has "invert" as additional keyword. 573 if (propId == CSS_PROP_OUTLINE_COLOR && id == CSS_VAL_INVERT) { 574 // Outline color has "invert" as additional keyword. 575 // Also, we want to allow the special focus color even in strict parsing mode. 576 if (propId == CSS_PROP_OUTLINE_COLOR && (id == CSS_VAL_INVERT || id == CSS_VAL__WEBKIT_FOCUS_RING_COLOR)) { 574 577 valid_primitive = true; 575 578 break; … … 589 592 // since we use this in our UA sheets. 590 593 else if (id >= CSS_VAL_AQUA && id <= CSS_VAL_WINDOWTEXT || id == CSS_VAL_MENU || 591 (id >= CSS_VAL_ GREY&& id < CSS_VAL__KHTML_TEXT && !strict)) {594 (id >= CSS_VAL__WEBKIT_FOCUS_RING_COLOR && id < CSS_VAL__KHTML_TEXT && !strict)) { 592 595 valid_primitive = true; 593 596 } else { … … 2063 2066 bool CSSParser::parseColor(const DeprecatedString &name, RGBA32& rgb) 2064 2067 { 2068 // FIXME: Should we move this stuff about hex digits without a "#" prefix 2069 // into the Color class along with the "#"-prefix version? 2070 2065 2071 int len = name.length(); 2066 2072 … … 2142 2148 return 0; 2143 2149 int b = (int) (v->fValue * (v->unit == CSSPrimitiveValue::CSS_PERCENTAGE ? 256./100. : 1.)); 2144 r = kMax(0, kMin(255, r));2145 g = kMax(0, kMin(255, g));2146 b = kMax(0, kMin(255, b));2147 2150 c = makeRGB(r, g, b); 2148 2151 } … … 2176 2179 if (!validUnit(v, FNumber, true)) 2177 2180 return 0; 2178 r = kMax(0, kMin(255, r)); 2179 g = kMax(0, kMin(255, g)); 2180 b = kMax(0, kMin(255, b)); 2181 int a = (int)(kMax(0.0, kMin(1.0, v->fValue)) * 255); 2181 int a = (int)(max(0.0, min(1.0, v->fValue)) * 255); 2182 2182 c = makeRGBA(r, g, b, a); 2183 2183 } … … 2294 2294 CSSPrimitiveValue* parsedColor = 0; 2295 2295 bool isColor = (val->id >= CSS_VAL_AQUA && val->id <= CSS_VAL_WINDOWTEXT || val->id == CSS_VAL_MENU || 2296 (val->id >= CSS_VAL_ GREY&& val->id <= CSS_VAL__KHTML_TEXT && !strict));2296 (val->id >= CSS_VAL__WEBKIT_FOCUS_RING_COLOR && val->id <= CSS_VAL__KHTML_TEXT && !strict)); 2297 2297 if (isColor) { 2298 2298 if (!context.allowColor) -
trunk/WebCore/css/cssstyleselector.cpp
r13553 r13639 277 277 } 278 278 279 static CSSStyleSheet* parseUASheet(const unsigned short* characters, intsize)279 static CSSStyleSheet* parseUASheet(const char* characters, unsigned size) 280 280 { 281 281 CSSStyleSheet* const parent = 0; 282 282 CSSStyleSheet* sheet = new CSSStyleSheet(parent); 283 283 sheet->ref(); // leak the sheet on purpose since it will be stored in a global variable 284 sheet->parseString(String( reinterpret_cast<const QChar*>(characters), size));284 sheet->parseString(String(characters, size)); 285 285 return sheet; 286 286 } … … 288 288 template<typename T> CSSStyleSheet* parseUASheet(const T& array) 289 289 { 290 return parseUASheet(array, sizeof(array) / sizeof(unsigned short));290 return parseUASheet(array, sizeof(array)); 291 291 } 292 292 … … 1637 1637 } 1638 1638 return l; 1639 }1640 1641 1642 // color mapping code1643 struct colorMap {1644 int css_value;1645 RGBA32 color;1646 };1647 1648 static const colorMap cmap[] = {1649 { CSS_VAL_AQUA, 0xFF00FFFF },1650 { CSS_VAL_BLACK, 0xFF000000 },1651 { CSS_VAL_BLUE, 0xFF0000FF },1652 { CSS_VAL_FUCHSIA, 0xFFFF00FF },1653 { CSS_VAL_GRAY, 0xFF808080 },1654 { CSS_VAL_GREEN, 0xFF008000 },1655 { CSS_VAL_LIME, 0xFF00FF00 },1656 { CSS_VAL_MAROON, 0xFF800000 },1657 { CSS_VAL_NAVY, 0xFF000080 },1658 { CSS_VAL_OLIVE, 0xFF808000 },1659 { CSS_VAL_ORANGE, 0xFFFFA500 },1660 { CSS_VAL_PURPLE, 0xFF800080 },1661 { CSS_VAL_RED, 0xFFFF0000 },1662 { CSS_VAL_SILVER, 0xFFC0C0C0 },1663 { CSS_VAL_TEAL, 0xFF008080 },1664 { CSS_VAL_WHITE, 0xFFFFFFFF },1665 { CSS_VAL_YELLOW, 0xFFFFFF00 },1666 { CSS_VAL_TRANSPARENT, Color::transparent },1667 { CSS_VAL_GREY, 0xFF808080 },1668 { CSS_VAL_ACTIVEBORDER, 0xFFE0E0E0 },1669 { CSS_VAL_ACTIVECAPTION, 0xFF000000 },1670 { CSS_VAL_APPWORKSPACE, 0xFF000000 },1671 { CSS_VAL_BUTTONFACE, 0xFFC0C0C0 },1672 { CSS_VAL_BUTTONHIGHLIGHT, 0xFFE0E0E0 },1673 { CSS_VAL_BUTTONSHADOW, 0xFFFFFFFF },1674 { CSS_VAL_BUTTONTEXT, 0xFF000000 },1675 { CSS_VAL_CAPTIONTEXT, 0xFF000000 },1676 { CSS_VAL_GRAYTEXT, 0xFF808080 },1677 { CSS_VAL_HIGHLIGHT, 0xFFFFFFFF },1678 { CSS_VAL_HIGHLIGHTTEXT, 0xFFFFFFFF },1679 { CSS_VAL_INACTIVEBORDER, 0xFFFFFFFF },1680 { CSS_VAL_INACTIVECAPTION, 0xFFFFFFFF },1681 { CSS_VAL_INACTIVECAPTIONTEXT, 0xFF000000 },1682 { CSS_VAL_INFOBACKGROUND, 0xFF000000 },1683 { CSS_VAL_INFOTEXT, 0xFF000000 },1684 { CSS_VAL_MENU, 0xFFFFFFFF },1685 { CSS_VAL_MENUTEXT, 0xFFFFFFFF },1686 { CSS_VAL_SCROLLBAR, 0xFFFFFFFF },1687 { CSS_VAL_TEXT, 0xFF000000 },1688 { CSS_VAL_THREEDDARKSHADOW, 0xFF404040 },1689 { CSS_VAL_THREEDFACE, 0xFFC0C0C0 },1690 { CSS_VAL_THREEDHIGHLIGHT, 0xFFE0E0E0 },1691 { CSS_VAL_THREEDLIGHTSHADOW, 0xFFC0C0C0 },1692 { CSS_VAL_THREEDSHADOW, 0xFFFFFFFF },1693 { CSS_VAL_WINDOW, 0xFFFFFFFF },1694 { CSS_VAL_WINDOWFRAME, 0xFFFFFFFF },1695 { CSS_VAL_WINDOWTEXT, 0xFF000000 },1696 { 0, 0 }1697 };1698 1699 1700 static Color colorForCSSValue(int css_value)1701 {1702 // try the regular ones first1703 const colorMap *col = cmap;1704 while (col->css_value && col->css_value != css_value)1705 ++col;1706 if (col->css_value)1707 return col->color;1708 1709 return Color();1710 1639 } 1711 1640 … … 2338 2267 return; 2339 2268 } 2340 elseif (isInitial) {2269 if (isInitial) { 2341 2270 // The border/outline colors will just map to the invalid color |col| above. This will have the 2342 2271 // effect of forcing the use of the currentColor when it comes time to draw the borders (and of … … 2344 2273 if (id == CSS_PROP_COLOR) 2345 2274 col = RenderStyle::initialColor(); 2346 } 2347 else { 2348 if(!primitiveValue) 2275 } else { 2276 if (!primitiveValue) 2349 2277 return; 2350 2278 col = getColorFromPrimitiveValue(primitiveValue); 2351 2279 } 2352 2280 2353 switch(id) 2354 { 2281 switch(id) { 2355 2282 case CSS_PROP_BACKGROUND_COLOR: 2356 2283 style->setBackgroundColor(col); break; … … 2367 2294 case CSS_PROP_OUTLINE_COLOR: 2368 2295 style->setOutlineColor(col); break; 2369 default:2370 return;2371 2296 } 2372 2297 return; … … 3505 3430 } 3506 3431 3507 case CSS_PROP_OUTLINE_OFFSET: {3432 case CSS_PROP_OUTLINE_OFFSET: 3508 3433 HANDLE_INHERIT_AND_INITIAL(outlineOffset, OutlineOffset) 3509 3510 int offset = primitiveValue->computeIntLength(style); 3511 if (offset < 0) return; 3512 3513 style->setOutlineOffset(offset); 3514 break; 3515 } 3434 style->setOutlineOffset(primitiveValue->computeIntLength(style)); 3435 break; 3516 3436 3517 3437 case CSS_PROP_TEXT_SHADOW: { … … 3520 3440 return; 3521 3441 } 3522 elseif (isInitial) {3442 if (isInitial) { 3523 3443 style->setTextShadow(0); 3524 3444 return; … … 3529 3449 return; 3530 3450 } 3531 3532 if (!value->isValueList()) return; 3451 3452 if (!value->isValueList()) 3453 return; 3533 3454 CSSValueList *list = static_cast<CSSValueList *>(value); 3534 3455 int len = list->length(); 3535 3456 for (int i = 0; i < len; i++) { 3536 3457 ShadowValue *item = static_cast<ShadowValue*>(list->item(i)); 3537 3538 3458 int x = item->x->computeIntLength(style); 3539 3459 int y = item->y->computeIntLength(style); 3540 3460 int blur = item->blur ? item->blur->computeIntLength(style) : 0; 3541 Color col = Color::transparent; 3542 if (item->color) { 3543 int ident = item->color->getIdent(); 3544 if (ident) 3545 col = colorForCSSValue(ident); 3546 else if (item->color->primitiveType() == CSSPrimitiveValue::CSS_RGBCOLOR) 3547 col.setRgb(item->color->getRGBColorValue()); 3548 } 3549 ShadowData* shadowData = new ShadowData(x, y, blur, col); 3461 Color color; 3462 if (item->color) 3463 color = getColorFromPrimitiveValue(item->color.get()); 3464 ShadowData* shadowData = new ShadowData(x, y, blur, color.isValid() ? color : Color::transparent); 3550 3465 style->setTextShadow(shadowData, i != 0); 3551 3466 } 3552 3553 3467 return; 3554 3468 } … … 3557 3471 if (!primitiveValue || primitiveValue->primitiveType() != CSSPrimitiveValue::CSS_NUMBER) 3558 3472 return; // Error case. 3559 3560 3473 // Clamp opacity to the range 0-1 3561 3474 style->setOpacity(kMin(1.0, kMax(0.0, primitiveValue->getFloatValue(CSSPrimitiveValue::CSS_NUMBER)))); … … 4239 4152 } 4240 4153 4154 // color mapping code 4155 struct ColorValue { 4156 int css_value; 4157 RGBA32 color; 4158 }; 4159 4160 static const ColorValue colorValues[] = { 4161 { CSS_VAL_AQUA, 0xFF00FFFF }, 4162 { CSS_VAL_BLACK, 0xFF000000 }, 4163 { CSS_VAL_BLUE, 0xFF0000FF }, 4164 { CSS_VAL_FUCHSIA, 0xFFFF00FF }, 4165 { CSS_VAL_GRAY, 0xFF808080 }, 4166 { CSS_VAL_GREEN, 0xFF008000 }, 4167 { CSS_VAL_LIME, 0xFF00FF00 }, 4168 { CSS_VAL_MAROON, 0xFF800000 }, 4169 { CSS_VAL_NAVY, 0xFF000080 }, 4170 { CSS_VAL_OLIVE, 0xFF808000 }, 4171 { CSS_VAL_ORANGE, 0xFFFFA500 }, 4172 { CSS_VAL_PURPLE, 0xFF800080 }, 4173 { CSS_VAL_RED, 0xFFFF0000 }, 4174 { CSS_VAL_SILVER, 0xFFC0C0C0 }, 4175 { CSS_VAL_TEAL, 0xFF008080 }, 4176 { CSS_VAL_WHITE, 0xFFFFFFFF }, 4177 { CSS_VAL_YELLOW, 0xFFFFFF00 }, 4178 { CSS_VAL_TRANSPARENT, 0x00000000 }, 4179 { CSS_VAL_GREY, 0xFF808080 }, 4180 { CSS_VAL_ACTIVEBORDER, 0xFFE0E0E0 }, 4181 { CSS_VAL_ACTIVECAPTION, 0xFF000000 }, 4182 { CSS_VAL_APPWORKSPACE, 0xFF000000 }, 4183 { CSS_VAL_BUTTONFACE, 0xFFC0C0C0 }, 4184 { CSS_VAL_BUTTONHIGHLIGHT, 0xFFE0E0E0 }, 4185 { CSS_VAL_BUTTONSHADOW, 0xFFFFFFFF }, 4186 { CSS_VAL_BUTTONTEXT, 0xFF000000 }, 4187 { CSS_VAL_CAPTIONTEXT, 0xFF000000 }, 4188 { CSS_VAL_GRAYTEXT, 0xFF808080 }, 4189 { CSS_VAL_HIGHLIGHT, 0xFFFFFFFF }, 4190 { CSS_VAL_HIGHLIGHTTEXT, 0xFFFFFFFF }, 4191 { CSS_VAL_INACTIVEBORDER, 0xFFFFFFFF }, 4192 { CSS_VAL_INACTIVECAPTION, 0xFFFFFFFF }, 4193 { CSS_VAL_INACTIVECAPTIONTEXT, 0xFF000000 }, 4194 { CSS_VAL_INFOBACKGROUND, 0xFF000000 }, 4195 { CSS_VAL_INFOTEXT, 0xFF000000 }, 4196 { CSS_VAL_MENU, 0xFFFFFFFF }, 4197 { CSS_VAL_MENUTEXT, 0xFFFFFFFF }, 4198 { CSS_VAL_SCROLLBAR, 0xFFFFFFFF }, 4199 { CSS_VAL_TEXT, 0xFF000000 }, 4200 { CSS_VAL_THREEDDARKSHADOW, 0xFF404040 }, 4201 { CSS_VAL_THREEDFACE, 0xFFC0C0C0 }, 4202 { CSS_VAL_THREEDHIGHLIGHT, 0xFFE0E0E0 }, 4203 { CSS_VAL_THREEDLIGHTSHADOW, 0xFFC0C0C0 }, 4204 { CSS_VAL_THREEDSHADOW, 0xFFFFFFFF }, 4205 { CSS_VAL_WINDOW, 0xFFFFFFFF }, 4206 { CSS_VAL_WINDOWFRAME, 0xFFFFFFFF }, 4207 { CSS_VAL_WINDOWTEXT, 0xFF000000 }, 4208 { 0, 0 } 4209 }; 4210 4211 4212 static Color colorForCSSValue(int css_value) 4213 { 4214 for (const ColorValue* col = colorValues; col->css_value; ++col) 4215 if (col->css_value == css_value) 4216 return col->color; 4217 return Color(); 4218 } 4219 4241 4220 Color CSSStyleSelector::getColorFromPrimitiveValue(CSSPrimitiveValue* primitiveValue) 4242 4221 { … … 4256 4235 col = (pseudoState == PseudoLink) ? linkColor : visitedColor; 4257 4236 } 4258 } 4259 else if (ident == CSS_VAL__KHTML_ACTIVELINK) 4237 } else if (ident == CSS_VAL__KHTML_ACTIVELINK) 4260 4238 col = element->document()->activeLinkColor(); 4239 else if (ident == CSS_VAL__WEBKIT_FOCUS_RING_COLOR) 4240 col = focusRingColor(); 4261 4241 else 4262 4242 col = colorForCSSValue(ident); 4263 4243 } else if (primitiveValue->primitiveType() == CSSPrimitiveValue::CSS_RGBCOLOR) 4264 4244 col.setRgb(primitiveValue->getRGBColorValue()); 4265 return col; 4245 return col; 4266 4246 } 4267 4247 -
trunk/WebCore/css/html4.css
r13578 r13639 26 26 html { 27 27 display: block 28 } 28 } 29 29 30 30 /* children of the <head> element all have display:none */ 31 head { 32 display: none 33 } 34 31 head { 32 display: none 33 } 34 35 35 meta { 36 36 display: none … … 81 81 display: block 82 82 } 83 83 84 84 blockquote { 85 85 display: block; … … 105 105 /* special centering to be able to emulate the html4/netscape behaviour */ 106 106 text-align: -khtml-center 107 } 107 } 108 108 109 109 hr { … … 119 119 120 120 /* heading elements */ 121 121 122 122 h1 { 123 123 display: block; … … 126 126 font-weight: bold 127 127 } 128 128 129 129 h2 { 130 130 display: block; … … 133 133 font-weight: bold 134 134 } 135 135 136 136 h3 { 137 137 display: block; … … 140 140 font-weight: bold 141 141 } 142 142 143 143 h4 { 144 144 display: block; … … 181 181 border-color: inherit 182 182 } 183 183 184 184 tbody { 185 185 display: table-row-group; 186 vertical-align: middle; 186 vertical-align: middle; 187 187 border-color: inherit 188 188 } 189 189 190 190 tfoot { 191 191 display: table-footer-group; … … 258 258 display: block; 259 259 margin: 1__qem 0 1em 0 260 } 260 } 261 261 262 262 dt { … … 322 322 } 323 323 324 input[type="password"], input[type="search"], input[type="hidden"], input[type="image"], input[type="file"] {324 input[type="password"], input[type="search"], input[type="hidden"], input[type="image"], input[type="file"] { 325 325 -khtml-appearance: initial; 326 326 padding: initial; … … 381 381 } 382 382 383 /* inline elements */ 384 383 /* inline elements */ 384 385 385 u, ins { 386 386 text-decoration: underline 387 387 } 388 388 389 389 strong, b { 390 390 font-weight: bolder 391 391 } 392 392 393 393 i, cite, em, var, address { 394 394 font-style: italic 395 395 } 396 396 397 397 tt, code, kbd, samp { 398 398 font-family: monospace 399 399 } 400 400 401 401 pre, xmp, plaintext, listing { 402 402 display: block; … … 409 409 font-size: larger 410 410 } 411 411 412 412 small { 413 413 font-size: smaller … … 439 439 440 440 :focus { 441 outline: auto 3px #1f5ccf441 outline: auto 5px -webkit-focus-ring-color 442 442 } 443 443 444 444 html:focus, body:focus { 445 445 outline: none 446 } 447 448 html:focus, body:focus { 449 outline: none 450 } 451 452 input:focus { 453 outline-offset: -2px 454 } 455 456 input[type="button"]:focus, 457 input[type="checkbox"]:focus, 458 input[type="file"]:focus, 459 input[type="hidden"]:focus, 460 input[type="image"]:focus, 461 input[type="password"]:focus, 462 input[type="radio"]:focus, 463 input[type="reset"]:focus, 464 input[type="search"]:focus, 465 input[type="submit"]:focus { 466 outline-offset: 0 446 467 } 447 468 … … 466 487 } 467 488 468 /* noscript is handled internally, as it depends on the htmlsettings */489 /* noscript is handled internally, as it depends on settings */ -
trunk/WebCore/css/make-css-file-arrays.pl
r12293 r13639 40 40 41 41 # Slurp in the CSS file. 42 open IN, $inor die;42 open IN, "-|", "/usr/bin/cpp", "-P", $in, "-" or die; 43 43 my $text; { local $/; $text = <IN>; } 44 44 close IN; … … 57 57 # Write out a C array of the characters. 58 58 my $length = length $text; 59 print HEADER "extern const unsigned short${name}UserAgentStyleSheet[${length}];\n";60 print OUT "extern const unsigned short${name}UserAgentStyleSheet[${length}] = {\n";59 print HEADER "extern const char ${name}UserAgentStyleSheet[${length}];\n"; 60 print OUT "extern const char ${name}UserAgentStyleSheet[${length}] = {\n"; 61 61 my $i = 0; 62 62 while ($i < $length) { -
trunk/WebCore/page/Frame.cpp
r13605 r13639 2868 2868 } 2869 2869 2870 DeprecatedPtrList<Frame>& Frame::mutableInstances()2871 {2872 static DeprecatedPtrList<Frame> instancesList;2873 return instancesList;2874 }2875 2876 2870 void Frame::updatePolicyBaseURL() 2877 2871 { … … 3265 3259 } 3266 3260 3267 void Frame::detachFromView()3268 {3269 }3270 3271 3261 KURL Frame::url() const 3272 3262 { -
trunk/WebCore/page/Frame.h
r13605 r13639 264 264 * SVG and printing default style sheets. 265 265 */ 266 void setUserStyleSheetLocation(const KURL& url);266 void setUserStyleSheetLocation(const KURL&); 267 267 void setUserStyleSheet(const String& styleSheetData); 268 268 … … 707 707 static void clearDocumentFocus(Widget*); 708 708 709 static const DeprecatedPtrList<Frame>& instances() { return mutableInstances(); }710 static DeprecatedPtrList<Frame>& mutableInstances();711 712 709 void updatePolicyBaseURL(); 713 710 void setPolicyBaseURL(const String&); … … 754 751 void disconnectOwnerRenderer(); 755 752 753 void setNeedsReapplyStyles(); 754 756 755 protected: 757 756 virtual void startRedirectionTimer(); … … 796 795 virtual void frameDetached(); 797 796 798 virtual void detachFromView();799 797 void updateBaseURLForEmptyDocument(); 800 798 -
trunk/WebCore/page/FrameTree.cpp
r13436 r13639 49 49 { 50 50 for (Frame* child = firstChild(); child; child = child->tree()->nextSibling()) 51 child-> detachFromView();51 child->setView(0); 52 52 } 53 53 … … 83 83 { 84 84 child->tree()->m_parent = 0; 85 child-> detachFromView();85 child->setView(0); 86 86 87 87 // Slightly tricky way to prevent deleting the child until we are done with it, w/o -
trunk/WebCore/page/Page.cpp
r13342 r13639 22 22 #include "Page.h" 23 23 24 #include "Color.h" 24 25 #include "Frame.h" 26 #include "FrameTree.h" 25 27 #include <kjs/collector.h> 26 28 #include <kjs/JSLock.h> 27 29 #include <kxmlcore/HashMap.h> 30 #include <kxmlcore/HashSet.h> 28 31 29 32 using namespace KJS; … … 31 34 namespace WebCore { 32 35 33 static int pageCount;36 static HashSet<Page*>* allPages; 34 37 static HashMap<String, HashSet<Page*>*>* frameNamespaces; 35 38 36 39 void Page::init() 37 40 { 38 ++pageCount; 41 if (!allPages) { 42 allPages = new HashSet<Page*>; 43 setFocusRingColorChangeFunction(setNeedsReapplyStyles); 44 } 45 ASSERT(!allPages->contains(this)); 46 allPages->add(this); 39 47 } 40 48 41 Page::~Page() 49 Page::~Page() 42 50 { 43 m_mainFrame-> detachFromView();51 m_mainFrame->setView(0); 44 52 setGroupName(String()); 45 if (!--pageCount) { 53 allPages->remove(this); 54 if (allPages->isEmpty()) { 46 55 Frame::endAllLifeSupport(); 47 56 #ifndef NDEBUG … … 94 103 } 95 104 105 void Page::setNeedsReapplyStyles() 106 { 107 if (!allPages) 108 return; 109 HashSet<Page*>::iterator end = allPages->end(); 110 for (HashSet<Page*>::iterator it = allPages->begin(); it != end; ++it) 111 for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree()->traverseNext()) 112 frame->setNeedsReapplyStyles(); 96 113 } 114 115 void Page::setNeedsReapplyStylesForSettingsChange(KHTMLSettings* settings) 116 { 117 if (!allPages) 118 return; 119 HashSet<Page*>::iterator end = allPages->end(); 120 for (HashSet<Page*>::iterator it = allPages->begin(); it != end; ++it) 121 for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree()->traverseNext()) 122 if (frame->settings() == settings) 123 frame->setNeedsReapplyStyles(); 124 } 125 126 } -
trunk/WebCore/page/Page.h
r13350 r13639 36 36 #endif 37 37 38 class KHTMLSettings; 39 38 40 namespace WebCore { 39 41 … … 61 63 int frameCount() const { return m_frameCount; } 62 64 65 static void setNeedsReapplyStyles(); 66 static void setNeedsReapplyStylesForSettingsChange(KHTMLSettings*); 67 63 68 #if __APPLE__ 64 69 Page(WebCorePageBridge*); -
trunk/WebCore/platform/Color.cpp
r13532 r13639 31 31 #include <kxmlcore/Assertions.h> 32 32 33 // Turn off inlining to avoid warning with newer gcc.34 #undef __inline35 #define __inline36 33 #include "ColorData.c" 37 #undef __inline 34 35 using namespace std; 38 36 39 37 namespace WebCore { … … 41 39 RGBA32 makeRGB(int r, int g, int b) 42 40 { 43 if (r < 0) r = 0; else if (r > 255) r = 255; 44 if (g < 0) g = 0; else if (g > 255) g = 255; 45 if (b < 0) b = 0; else if (b > 255) b = 255; 46 return (r << 16 | g << 8 | b) | 0xFF000000; 41 return 0xFF000000 | max(0, min(r, 255)) << 16 | max(0, min(g, 255)) << 8 | max(0, min(b, 255)); 47 42 } 48 43 49 44 RGBA32 makeRGBA(int r, int g, int b, int a) 50 45 { 51 if (r < 0) r = 0; else if (r > 255) r = 255; 52 if (g < 0) g = 0; else if (g > 255) g = 255; 53 if (b < 0) b = 0; else if (b > 255) b = 255; 54 if (a < 0) a = 0; else if (a > 255) a = 255; 55 return (a << 24 | r << 16 | g << 8 | b); 56 } 57 58 // copied from css/cssparser.h 59 static inline bool parseHexColor(const DeprecatedString &name, RGBA32 &rgb) 46 return max(0, min(a, 255)) << 24 | max(0, min(r, 255)) << 16 | max(0, min(g, 255)) << 8 | max(0, min(b, 255)); 47 } 48 49 // originally moved here from the CSS parser 50 static inline bool parseHexColor(const String& name, RGBA32 &rgb) 60 51 { 61 52 int len = name.length(); 62 63 if ( !len ) 53 if (!len) 64 54 return false; 65 bool ok; 66 67 if ( len == 3 || len == 6 ) {68 int val = name. toInt(&ok, 16);69 if ( ok) {55 56 if (len == 3 || len == 6) { 57 bool ok; 58 int val = name.deprecatedString().toInt(&ok, 16); 59 if (ok) { 70 60 if (len == 6) { 71 rgb = 61 rgb = (0xff << 24) | val; 72 62 return true; 73 63 } 74 else if ( len == 3) {64 if (len == 3) { 75 65 // #abc converts to #aabbcc according to the specs 76 rgb = (0xff << 24) |77 (val&0xf00)<<12 | (val&0xf00)<<8 |78 (val&0xf0)<<8 | (val&0xf0)<<4 |79 (val&0xf)<<4 | (val&0xf);66 rgb = (0xff << 24) 67 | (val & 0xf00) << 12 | (val & 0xf00) << 8 68 | (val & 0xf0) << 8 | (val & 0xf0) << 4 69 | (val & 0xf) << 4 | (val & 0xf); 80 70 return true; 81 71 } … … 85 75 } 86 76 87 Color::Color(const DeprecatedString &name) { 88 if(name.startsWith("#")) { 89 valid = parseHexColor(name.mid(1), color); 90 } else { 91 const NamedColor *foundColor = findColor(name.ascii(), name.length()); 92 color = foundColor ? foundColor->RGBValue : 0; 93 color |= 0xFF000000; 94 valid = foundColor; 95 } 96 } 97 98 Color::Color(const char *name) 99 { 100 if(name[0] == '#') { 101 valid = parseHexColor(DeprecatedString(name).mid(1), color); 102 } else { 103 const NamedColor *foundColor = findColor(name, strlen(name)); 77 Color::Color(const String& name) 78 { 79 if (name.startsWith("#")) 80 valid = parseHexColor(name.substring(1), color); 81 else 82 setNamedColor(name); 83 } 84 85 Color::Color(const char* name) 86 { 87 if (name[0] == '#') 88 valid = parseHexColor(&name[1], color); 89 else { 90 const NamedColor* foundColor = findColor(name, strlen(name)); 104 91 color = foundColor ? foundColor->RGBValue : 0; 105 92 color |= 0xFF000000; … … 118 105 } 119 106 120 void Color::setNamedColor(const DeprecatedString &name) 121 { 122 const NamedColor *foundColor = name.isAllASCII() ? findColor(name.latin1(), name.length()) : 0; 107 void Color::setNamedColor(const String& name) 108 { 109 DeprecatedString dname = name.deprecatedString(); 110 const NamedColor* foundColor = dname.isAllASCII() ? findColor(dname.latin1(), dname.length()) : 0; 123 111 color = foundColor ? foundColor->RGBValue : 0; 124 112 color |= 0xFF000000; -
trunk/WebCore/platform/Color.h
r13532 r13639 27 27 #define COLOR_H_ 28 28 29 class DeprecatedString; 29 #if __APPLE__ 30 30 31 #if __APPLE__32 31 #ifdef __OBJC__ 33 32 @class NSColor; … … 37 36 38 37 typedef struct CGColor *CGColorRef; 38 39 39 #endif 40 40 … … 54 54 Color(int r, int g, int b) : color(makeRGB(r, g, b)), valid(true) { } 55 55 Color(int r, int g, int b, int a) : color(makeRGBA(r, g, b, a)), valid(true) { } 56 explicit Color(const DeprecatedString&);57 explicit Color(const char 56 explicit Color(const String&); 57 explicit Color(const char*); 58 58 59 59 String name() const; 60 void setNamedColor(const DeprecatedString&);60 void setNamedColor(const String&); 61 61 62 62 bool isValid() const { return valid; } … … 66 66 int blue() const { return color & 0xFF; } 67 67 int alpha() const { return (color >> 24) & 0xFF; } 68 RGBA32 rgb() const { return color & 0xFFFFFFFF; } // Preserve the alpha.68 RGBA32 rgb() const { return color; } // Preserve the alpha. 69 69 void setRgb(int r, int g, int b) { color = makeRGB(r, g, b); valid = true; } 70 void setRgb( int rgb) { color = rgb; valid = true; /* Alpha may be set. Preserve it. */}71 void getRgbaF(float *, float *, float *, float*) const;70 void setRgb(RGBA32 rgb) { color = rgb; valid = true; } 71 void getRgbaF(float*, float*, float*, float*) const; 72 72 73 void hsv(int *, int *, int*) const;73 void hsv(int*, int*, int*) const; 74 74 void setHsv(int h, int s, int v); 75 75 76 76 Color light(int f = 150) const; 77 77 Color dark(int f = 200) const; 78 79 friend bool operator==(const Color &a, const Color &b);80 friend bool operator!=(const Color &a, const Color &b);81 78 82 79 static const RGBA32 black = 0xFF000000; … … 94 91 inline bool operator==(const Color &a, const Color &b) 95 92 { 96 return a. color == b.color && a.valid == b.valid;93 return a.rgb() == b.rgb() && a.isValid() == b.isValid(); 97 94 } 98 95 99 96 inline bool operator!=(const Color &a, const Color &b) 100 97 { 101 return a.color != b.color || a.valid != b.valid;98 return !(a == b); 102 99 } 103 100 101 Color focusRingColor(); 102 void setFocusRingColorChangeFunction(void (*)()); 103 104 104 #if __APPLE__ 105 NSColor *nsColor(const Color&);106 CGColorRef cgColor(const Color 105 NSColor* nsColor(const Color&); 106 CGColorRef cgColor(const Color&); 107 107 #endif 108 108 109 109 } 110 110 111 // FIXME: Remove usings when the rest of KWQ has been converted.112 using WebCore::RGBA32;113 using WebCore::Color;114 115 111 #endif -
trunk/WebCore/platform/PlatformString.h
r13532 r13639 50 50 String(const KJS::UString&); 51 51 String(const char*); 52 String(const char*, unsigned length); 52 53 String(StringImpl* i) : m_impl(i) { } 53 54 -
trunk/WebCore/platform/String.cpp
r13574 r13639 66 66 } 67 67 68 String::String(const char* str, unsigned length) 69 { 70 if (!str) 71 return; 72 73 if (length == 0) 74 m_impl = StringImpl::empty(); 75 else 76 m_impl = new StringImpl(str, length); 77 } 78 68 79 String& String::operator+=(const String &str) 69 80 { -
trunk/WebCore/platform/mac/ColorMac.mm
r13249 r13639 1 1 /* 2 * Copyright (C) 2003 -6 Apple Computer, Inc. All rights reserved.2 * Copyright (C) 2003, 2004, 2005, 2006 Apple Computer, Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 #i nclude"config.h"26 #import "config.h" 27 27 #import "Color.h" 28 29 #import <kxmlcore/Assertions.h> 30 31 @interface WebCoreControlTintObserver : NSObject 32 + (void)controlTintDidChange; 33 @end 28 34 29 35 namespace WebCore { … … 31 37 // NSColor calls don't throw, so no need to block Cocoa exceptions in this file 32 38 33 NSColor *nsColor(const Color &color) 39 static bool tintIsKnown; 40 static bool tintIsKnownToBeGraphite; 41 static void (*tintChangeFunction)(); 42 43 NSColor* nsColor(const Color& color) 34 44 { 35 45 unsigned c = color.rgb(); … … 37 47 case 0: { 38 48 // Need this to avoid returning nil because cachedRGBAValues will default to 0. 39 static NSColor *clearColor = [[NSColor clearColor] retain];49 static NSColor* clearColor = [[NSColor clearColor] retain]; 40 50 return clearColor; 41 51 } 42 52 case Color::black: { 43 static NSColor *blackColor = [[NSColor blackColor] retain];53 static NSColor* blackColor = [[NSColor blackColor] retain]; 44 54 return blackColor; 45 55 } 46 56 case Color::white: { 47 static NSColor *whiteColor = [[NSColor whiteColor] retain];57 static NSColor* whiteColor = [[NSColor whiteColor] retain]; 48 58 return whiteColor; 49 59 } … … 51 61 const int cacheSize = 32; 52 62 static unsigned cachedRGBAValues[cacheSize]; 53 static NSColor *cachedColors[cacheSize];63 static NSColor* cachedColors[cacheSize]; 54 64 55 for (int i = 0; i != cacheSize; ++i) {56 if (cachedRGBAValues[i] == c) {65 for (int i = 0; i != cacheSize; ++i) 66 if (cachedRGBAValues[i] == c) 57 67 return cachedColors[i]; 58 }59 }60 68 61 69 #if COLORMATCH_EVERYTHING 62 NSColor *result = [NSColor colorWithCalibratedRed:color.red() / 255.070 NSColor* result = [NSColor colorWithCalibratedRed:color.red() / 255.0 63 71 green:color.green() / 255.0 64 72 blue:color.blue() / 255.0 65 73 alpha:color.alpha() /255.0]; 66 74 #else 67 NSColor *result = [NSColor colorWithDeviceRed:color.red() / 255.075 NSColor* result = [NSColor colorWithDeviceRed:color.red() / 255.0 68 76 green:color.green() / 255.0 69 77 blue:color.blue() / 255.0 … … 75 83 [cachedColors[cursor] autorelease]; 76 84 cachedColors[cursor] = [result retain]; 77 if (++cursor == cacheSize) {85 if (++cursor == cacheSize) 78 86 cursor = 0; 79 }80 81 87 return result; 82 88 } … … 84 90 } 85 91 86 static CGColorRef CGColorFromNSColor(NSColor *color)92 static CGColorRef CGColorFromNSColor(NSColor* color) 87 93 { 88 // this needs to always use device colorspace so it can de-calibrate the color for89 // CGColor to possibly recalibrate it 94 // This needs to always use device colorspace so it can de-calibrate the color for 95 // CGColor to possibly recalibrate it. 90 96 NSColor* deviceColor = [color colorUsingColorSpaceName:NSDeviceRGBColorSpace]; 91 97 float red = [deviceColor redComponent]; … … 93 99 float blue = [deviceColor blueComponent]; 94 100 float alpha = [deviceColor alphaComponent]; 95 const float components[] = { red, green, blue, alpha }; 96 101 const float components[4] = { red, green, blue, alpha }; 97 102 CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 98 103 CGColorRef cgColor = CGColorCreate(colorSpace, components); … … 101 106 } 102 107 103 CGColorRef cgColor(const Color &c)108 CGColorRef cgColor(const Color& c) 104 109 { 105 110 // We could directly create a CGColor here, but that would 106 // skip any rgb caching the nsColor method does.A direct107 // creation should be investigated for a possible performance win.111 // skip any RGB caching the nsColor method does. A direct 112 // creation could be investigated for a possible performance win. 108 113 return CGColorFromNSColor(nsColor(c)); 109 114 } 110 115 116 static void observeTint() 117 { 118 ASSERT(!tintIsKnown); 119 [[NSNotificationCenter defaultCenter] addObserver:[WebCoreControlTintObserver class] 120 selector:@selector(controlTintDidChange) 121 name:NSControlTintDidChangeNotification 122 object:NSApp]; 123 [WebCoreControlTintObserver controlTintDidChange]; 124 tintIsKnown = true; 111 125 } 126 127 void setFocusRingColorChangeFunction(void (*function)()) 128 { 129 ASSERT(!tintChangeFunction); 130 tintChangeFunction = function; 131 if (!tintIsKnown) 132 observeTint(); 133 } 134 135 Color focusRingColor() 136 { 137 if (!tintIsKnown) 138 observeTint(); 139 return tintIsKnownToBeGraphite ? 0xFF9CABBD : 0xFF7DADD9; 140 } 141 142 } 143 144 @implementation WebCoreControlTintObserver 145 146 + (void)controlTintDidChange 147 { 148 WebCore::tintIsKnownToBeGraphite = [NSColor currentControlTint] == NSGraphiteControlTint; 149 } 150 151 @end -
trunk/WebCore/platform/mac/WebCoreTextRendererFactory.mm
r13393 r13639 1 1 /* 2 * Copyright (C) 2004 Apple Computer, Inc. All rights reserved.2 * Copyright (C) 2004, 2006 Apple Computer, Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 27 27 #import "WebCoreTextRendererFactory.h" 28 28 29 #import <kxmlcore/Assertions.h>30 #import "FrameMac.h"31 29 #import "KWQListBox.h" 30 #import "Page.h" 32 31 #import "WebCoreFrameBridge.h" 33 32 #import "WebCoreTextRenderer.h" 33 #import <kxmlcore/Assertions.h> 34 34 35 35 using namespace WebCore; … … 116 116 { 117 117 QListBox::clearCachedTextRenderers(); 118 for (DeprecatedPtrListIterator<Frame> it(Frame::instances()); it.current(); ++it) { 119 [Mac(it.current())->bridge() setNeedsReapplyStyles]; 120 } 118 Page::setNeedsReapplyStyles(); 121 119 } 122 120 -
trunk/WebCore/rendering/render_style.h
r13581 r13639 58 58 59 59 namespace WebCore { 60 61 using std::max; 60 62 61 63 class CSSStyleSelector; … … 1157 1159 bool borderBottomIsTransparent() const { return surround->border.bottom.isTransparent(); } 1158 1160 1159 unsigned short outlineSize() const { return outlineWidth() + outlineOffset(); } 1160 unsigned short outlineWidth() const { if (background->m_outline.style() == BNONE || background->m_outline.style() == BHIDDEN) return 0; return background->m_outline.width; } 1161 unsigned short outlineSize() const { return max(0, outlineWidth() + outlineOffset()); } 1162 unsigned short outlineWidth() const { 1163 if (background->m_outline.style() == BNONE || background->m_outline.style() == BHIDDEN) 1164 return 0; 1165 return background->m_outline.width; 1166 } 1161 1167 EBorderStyle outlineStyle() const { return background->m_outline.style(); } 1162 1168 bool outlineStyleIsAuto() const { return background->m_outline._auto; } … … 1284 1290 #endif 1285 1291 int outlineOffset() const { 1286 if (background->m_outline.style() == BNONE || background->m_outline.style() == BHIDDEN) return 0; return background->m_outline._offset; 1292 if (background->m_outline.style() == BNONE || background->m_outline.style() == BHIDDEN) 1293 return 0; 1294 return background->m_outline._offset; 1287 1295 } 1288 1296 ShadowData* textShadow() const { return css3InheritedData->textShadow; } … … 1502 1510 void addBindingURI(StringImpl* uri); 1503 1511 #endif 1504 void setOutlineOffset( unsigned short v) { SET_VAR(background, m_outline._offset, v) }1512 void setOutlineOffset(int v) { SET_VAR(background, m_outline._offset, v) } 1505 1513 void setTextShadow(ShadowData* val, bool add=false); 1506 1514 void setOpacity(float f) { SET_VAR(css3NonInheritedData, opacity, f); }
Note: See TracChangeset
for help on using the changeset viewer.