1. 30 Nov, 2007 1 commit
  2. 04 May, 2007 1 commit
    • sfalken's avatar
      Reviewed by Oliver. · 11ce3bff
      sfalken authored
              Use TextBreakIterator for sentence breaking instead of TextBoundaries.
      
              * WebCore.xcodeproj/project.pbxproj: Added TextBreakIeratorInternalICUMac.mm
              * editing/visible_units.cpp:
              (WebCore::startSentenceBoundary): Call TextBreakIterator instead of TextBoundaries.
              (WebCore::endSentenceBoundary): Call TextBreakIterator instead of TextBoundaries.
              (WebCore::previousSentencePositionBoundary): Call TextBreakIterator instead of TextBoundaries.
              (WebCore::nextSentencePositionBoundary): Call TextBreakIterator instead of TextBoundaries.
              * platform/TextBoundaries.h: Removed findSentenceBoundary, findNextSentenceFromIndex.
              * platform/TextBreakIterator.h: Added sentenceBreakIterator.
              * platform/TextBreakIteratorICU.cpp:
              (WebCore::setUpIterator): Add locale parameter (needed to maintain functionality that TextBoundaries code had).
              (WebCore::characterBreakIterator): Pass en_us for locale (same as old code).
              (WebCore::wordBreakIterator): Pass en_us for locale (same as old code).
              (WebCore::lineBreakIterator): Pass en_us for locale (same as old code).
              (WebCore::sentenceBreakIterator): Added.
              * platform/TextBreakIteratorInternalICU.h: Added.
              * platform/gdk/TemporaryLinkStubs.cpp: Removed findNextSentenceFromIndex, findSentenceBoundary.
              (WebCore::currentTextBreakLocaleID): Added stub.
              * platform/mac/TextBoundaries.mm: Removed currentTextBreakLocaleID, findSentenceBoundary, findNextSentenceFromIndex.
              * platform/mac/TextBreakIteratorInternalICUMac.mm: Added.
              (WebCore::currentTextBreakLocaleID): Moved from TextBoundaries.mm
              * platform/qt/TextBoundaries.cpp: Removed findNextSentenceFromIndex, findSentenceBoundary.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@21270 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      11ce3bff
  3. 14 Jul, 2006 1 commit
    • thatcher's avatar
      <rdar://problem/4623957> SWB: gcc-5412 (new?) objc warning causes WebCore project failure · 689c13f2
      thatcher authored
              Made a DOMNode category in DOMEvents.h that lets DOMNode conform to the
              DOMEventTarget protocol that works with GCC 5412.
      
              Removed forward declarations of WebCoreWidgetHolder and imported WebCoreWidgetHolder.h.
      
              Removed all <Cocoa/Cocoa.h> and <Foundation/Foundation.h> imports in other headers,
              we import <Cocoa/Cocoa.h> in the prefix header for ObjC.
      
              * WebCore.xcodeproj/project.pbxproj:
              * bindings/objc/DOMCore.h:
              * bindings/objc/DOMEvents.h:
              * bridge/mac/FormDataMac.h:
              * bridge/mac/WebCoreAXObject.h:
              * bridge/mac/WebCoreCache.h:
              * bridge/mac/WebCoreEncodings.h:
              * bridge/mac/WebCoreFrameBridge.h:
              * bridge/mac/WebCoreFrameNamespaces.h:
              * bridge/mac/WebCoreJavaScript.h:
              * bridge/mac/WebCorePageBridge.h:
              * bridge/mac/WebCorePageState.h:
              * bridge/mac/WebCoreResourceLoader.h:
              * bridge/mac/WebCoreScriptDebugger.h:
              * bridge/mac/WebCoreSettings.h:
              * bridge/mac/WebCoreStringTruncator.h:
              * bridge/mac/WebCoreStringTruncator.mm:
              * bridge/mac/WebCoreTextDecoder.h:
              * bridge/mac/WebDashboardRegion.h:
              * kcanvas/device/quartz/KRenderingDeviceQuartz.mm:
              * platform/mac/CookieJar.mm:
              * platform/mac/DeprecatedStringMac.mm:
              * platform/mac/FontDataMac.mm:
              * platform/mac/FoundationExtras.h:
              * platform/mac/TextBoundaries.mm:
              * platform/mac/WebCoreHistory.h:
              * platform/mac/WebCoreHistory.m:
              * platform/mac/WebCoreKeyGenerator.h:
              * platform/mac/WebCoreTextArea.h:
              * platform/mac/WebCoreTextField.h:
              * platform/mac/WebCoreTextRenderer.h:
              * platform/mac/WebCoreView.h:
              * platform/mac/WebCoreWidgetHolder.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@15438 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      689c13f2
  4. 09 May, 2006 1 commit
    • darin's avatar
      LayoutTests: · 7ab3109f
      darin authored
              - test for http://bugzilla.opendarwin.org/show_bug.cgi?id=6310
                text-transform: uppercase/lowercase don't handle cases one character becomes two
      
              * fast/css/case-transform.html: Added.
              * fast/css/case-transform-expected.txt: Added.
      
      WebCore:
      
              Rubber stamped by Hyatt.
      
              - http://bugzilla.opendarwin.org/show_bug.cgi?id=8782
                use ICU and UChar more, QChar less
      
              - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6310
                text-transform: uppercase/lowercase don't handle cases one character becomes two
      
              Test: fast/css/case-transform.html
      
              By using ICU more, this fixes some bugs in a few places.
      
              * bindings/js/JSXMLSerializer.cpp:
              * css/css_valueimpl.h:
              * kwq/KWQTextStream.cpp:
              * loader/CachedObject.h:
              * platform/Color.cpp:
              Add includes of DeprecatedString.h as needed, now that StringImpl.h no longer
              includes it.
      
              * bindings/js/kjs_css.cpp: (KJS::cssPropertyName):
              Eliminate use of QChar::latin1() in a case where it's not helpful.
      
              * bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::evaluate):
              Use characters() function instead of the old unicode() function.
      
              * bindings/js/kjs_window.cpp: (KJS::isSeparator):
              Use UChar instead of QChar.
      
              * bindings/objc/DOMInternal.mm:
              (StringImpl::operator NSString*): Remove typecast that's no longer needed.
              (String::String): Ditto. Also use Vector for local buffer to make code read simpler.
      
              * bridge/mac/FrameMac.mm:
              (WebCore::selectorForKeyEvent): Remove call to unicode() function, no longer needed.
              (WebCore::FrameMac::setTitle): Remove QChar cast, no longer needed.
              (WebCore::FrameMac::setStatusBarText): Ditto.
              (WebCore::FrameMac::advanceToNextMisspelling): Use UChar instead of QChar.
              (WebCore::FrameMac::runJavaScriptAlert): Remove QChar cast, no longer needed.
              (WebCore::FrameMac::runJavaScriptConfirm): Ditto.
              (WebCore::FrameMac::runJavaScriptPrompt): Ditto.
              (WebCore::FrameMac::attributedString): Replaces calls of QChar::direction() with
              calls to u_charDirection and use ICU constants instead of QChar ones.
              (WebCore::FrameMac::markMisspellings): Remove QChar cast, no longer needed. Added a
              QChar cast so we can call isSpace -- slated to be removed later.
              (WebCore::FrameMac::shouldClose): Remove QChar cast, no longer needed.
      
              * bridge/mac/WebCoreFrameBridge.mm:
              (-[WebCoreFrameBridge selectedString]): Remove QChar cast, no longer needed.
              (-[WebCoreFrameBridge stringForRange:]): Ditto.
      
              * css/CSSGrammar.y: Update for field name change from string to characters.
              Use UChar instead of unsigned short. 
      
              * css/css_valueimpl.cpp:
              (WebCore::propertyID): Use UChar instead of unsigned short and get rid of call to
              unicode() function, no longer needed.
              (WebCore::quoteStringIfNeeded): Use strings when building up a resulting string,
              instead of depending on the feature where you can append characters to a string.
      
              * css/csshelper.cpp: (WebCore::parseURL): Remove calls to unicode() function and
              rewrite to obviate the need to call lower() just to check for a few constant
              character values. Also remove a now-unneeded type cast.
      
              * css/cssparser.h: Changed ParseString field to use UChar and to be named characters
              instead of string. Changed many other fields to be UChar instead of unsigned short.
              (WebCore::domString): Update for that.
              (WebCore::atomicString): Ditto.
              * css/cssparser.cpp:
              (WebCore::ParseString::lower): Use u_tolower instead of QChar::lower(). Also change
              name to characters from string.
              (WebCore::CSSParser::setupParser): Use UChar instead of unsigned short.
              (WebCore::CSSParser::lex): Ditto. Also update for characters name change.
              (WebCore::CSSParser::text): Use UChar instead of unsigned short. Also tweak some
              of the code a little bit to handle a couple of overflow cases better and reduce
              type casting.
              (WebCore::deprecatedString): Moved here so we don't have to include DeprecatedString.h
              in the header file.
      
              * css/cssstyleselector.cpp: (WebCore::checkPseudoState): Added a type cast since this
              code now bridges the world between modern code and QChar/DeprecatedString.
      
              * dom/CharacterData.cpp: (WebCore::CharacterData::CharacterData): Changed QChar to UChar.
      
              * dom/Document.h:
              * dom/Document.cpp:
              (WebCore::Document::isValidName): Updated for name change from unicode to characters.
              (WebCore::Document::parseQualifiedName): Ditto.
              (WebCore::Document::backslashAsCurrencySymbol): Changed return type to UChar.
      
              * dom/NamedMappedAttrMap.cpp:
              (WebCore::isClassWhitespace): Changed parameter to UChar from QChar.
              (WebCore::NamedMappedAttrMap::parseClassAttribute): Changed from UChar to QChar and
              from unicode to characters.
      
              * dom/Position.cpp:
              (WebCore::Position::leadingWhitespacePosition): Changed from QChar to UChar.
              (WebCore::Position::trailingWhitespacePosition): Ditto.
      
              * dom/StyledElement.cpp:
              (WebCore::isClassWhitespace): Changed from QChar to UChar.
              (WebCore::StyledElement::addCSSLength): Changed from QChar to UChar, and remove one
              case where latin1() was used and was not helpful.
              (WebCore::StyledElement::addCSSColor): Removed unicode() function call, no longer needed.
      
              * dom/dom2_eventsimpl.cpp: (WebCore::KeyboardEvent::charCode):
              * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::constrainValue):
              Removed unicode() function call, no longer needed.
      
              * dom/xml_tokenizer.h: Removed default parameter for xmlDocPtrForString so we don't have
              to include the DeprecatedString.h header in this file (and since no one uses it).
      
              * editing/HTMLInterchange.cpp: (convertHTMLTextToInterchangeFormat): Added a couple calls
              to the unicode() function to bridge the gap from QChar/DeprecatedString back to modern
              code.
      
              * editing/InsertTextCommand.cpp: Removed unused function.
      
              * editing/TextIterator.h: Changed from QChar to UChar.
              * editing/TextIterator.cpp:
              (WebCore::TextIterator::TextIterator): Initialize m_lastCharacter since it's now a UChar
              (which is just a typedef) rather than a QChar (which was a class with a default value of 0).
              (WebCore::TextIterator::handleTextNode): Updated to use characters() instead of unicode().
              (WebCore::TextIterator::handleTextBox): Removed unicode() call since it's now a UChar instead
              of a QChar.
              (WebCore::TextIterator::emitCharacter): More of the same.
              (WebCore::SimplifiedBackwardsTextIterator::handleTextNode): Ditto.
              (WebCore::SimplifiedBackwardsTextIterator::emitCharacter): Ditto.
              (WebCore::CharacterIterator::string): Ditto.
              (WebCore::WordAwareIterator::advance): Ditto.
              (WebCore::WordAwareIterator::length): Ditto.
              (WebCore::WordAwareIterator::characters): Ditto.
              (WebCore::CircularSearchBuffer::CircularSearchBuffer): Changed to use UChar
              instead of QChar, but also to use foldCase() instead of lower(), because
              we want case folding here, not lowercasing.
              (WebCore::CircularSearchBuffer::append): Ditto, with u_foldCase.
              (WebCore::CircularSearchBuffer::isMatch): Ditto.
              (WebCore::plainText): Added type cast since this bridges the gap from the modern stuff
              to QChar/DeprecatedString.
      
              * editing/VisiblePosition.h: Changed from QChar to UChar.
              * editing/VisiblePosition.cpp: (WebCore::VisiblePosition::characterAfter): Ditto.
      
              * editing/markup.cpp: (WebCore::escapeTextForMarkup): Changed code that used latin1()
              for no good reason to use unicode() instead.
       
              * html/HTMLTokenizer.h: Changed from QChar to UChar.
              * html/HTMLTokenizer.cpp: Changed from QChar to UChar, including removing the
              KHTML_ALLOC_QCHAR_VEC and KHTML_DELETE_QCHAR_VEC macros, which weren't being
              used consistently anyway.
              (WebCore::fixUpChar): More of the same.
              (WebCore::tagMatch): Ditto.
              (WebCore::HTMLTokenizer::reset): Ditto.
              (WebCore::HTMLTokenizer::begin): Ditto. Also corrected anomaly where buffer
              size was not the same as the size value -- this was only true in the initial
              allocation, so I believe there was no value in it.
              (WebCore::HTMLTokenizer::parseSpecial): Ditto. Also removed a use of latin1()
              that was unnnecessary extra work.
              (WebCore::HTMLTokenizer::scriptHandler): More of the same.
              (WebCore::HTMLTokenizer::parseComment): Ditto.
              (WebCore::HTMLTokenizer::parseServer): Ditto.
              (WebCore::HTMLTokenizer::parseProcessingInstruction): Ditto. Another unnecessary
              use of latin1() removed.
              (WebCore::HTMLTokenizer::parseText): Ditto.
              (WebCore::HTMLTokenizer::parseEntity): Ditto. Changed hex-parsing code to handle
              uppercase hex a more-efficient way than calling QChar::lower() on each character.
              Also changed surrogate code logic to fix a couple things -- reject character codes
              > 0x10FFFF as it should and use U16_LEAD and U16_TRAIL instead of writing our
              own versions of these.
              (WebCore::HTMLTokenizer::parseTag): Ditto.
              (WebCore::HTMLTokenizer::write): Ditto.
              (WebCore::HTMLTokenizer::end): Ditto.
              (WebCore::HTMLTokenizer::finish): Ditto.
              (WebCore::HTMLTokenizer::enlargeBuffer): Ditto.
              (WebCore::HTMLTokenizer::enlargeScriptBuffer): Ditto.
              (WebCore::HTMLTokenizer::notifyFinished):
              (WebCore::decodeNamedEntity): Ditto.
      
              * html/html_inlineimpl.cpp: (WebCore::parseFontSizeNumber): Changed from QChar
              to UChar, including using u_isdigit and u_charDigitValue instead of QChar::isNumber
              and QChar::digitValue. Also removed unneeded range checking that's already done
              by WebCore::String.
      
              * kwq/KWQLoader.mm: (KWQIsResponseURLEqualToURL): Rewrote to use Vector and UChar,
              removing all the type casts and making the whole function much shorter.
      
              * kwq/WebCoreAXObject.mm:
              (AXAttributedStringAppendText): Use UChar instead of QChar.
              (-[WebCoreAXObject doAXAttributedStringForTextMarkerRange:]): More of the same.
      
              * loader/Cache.h: Remove unnecessary default parameters, preventing the need to
              include the DeprecatedString.h header in this header. Cleaned up the header
              structure a bit, removing some obsolete and redundant comments and fixing typos.
              * loader/Cache.cpp: Removed unused preload functions.
      
              * page/Frame.h:
              * page/Frame.cpp:
              (WebCore::UserStyleSheetLoader::UserStyleSheetLoader): Added explicit arguments.
              This was the only caller anywhere that took advantage of the default parameter
              values in one of the Cache class request functions.
              (WebCore::Frame::backslashAsCurrencySymbol): Changed QChar to UChar.
      
              * platform/AtomicString.h: Changed QChar to UChar. Removed constructor that makes
              an AtomicString from a single character. Renamed unicode() function to characters().
              Renamed KHTML_ATOMICSTRING_HIDE_GLOBALS to ATOMICSTRING_HIDE_GLOBALS.
              * platform/AtomicString.cpp:
              (WebCore::CStringTranslator::equal): Changed QChar to UChar.
              (WebCore::operator==): Changed unicode() to characters().
              (WebCore::UCharBufferTranslator::hash): More of the same.
              (WebCore::UCharBufferTranslator::equal): Ditto.
              (WebCore::UCharBufferTranslator::translate): Ditto.
              (WebCore::AtomicString::add): Ditto.
              (WebCore::AtomicString::operator Identifier): Ditto.
              (WebCore::AtomicString::operator UString): Ditto.
              (WebCore::AtomicString::AtomicString): Moved here so we don't need DeprecatedString.h
              in the header.
              (WebCore::AtomicString::deprecatedString): Ditto.
      
              * platform/DeprecatedString.h: Removed QChar::Direction enum and all the DirXXX values,
              isDigit, isLetter, isNumber, isLetterOrNumber, isPunct, digitValue, and direction functions.
              (QChar::isSpace): Changed to use u_charDirection instead of QChar::direction.
      
              * platform/Font.h: (WebCore::Font::width): Changed QChar to UChar.
              * platform/Font.cpp: (WebCore::Font::width): Ditto.
      
              * platform/GraphicsContext.h:
              * platform/GraphicsContext.cpp:
              (WebCore::GraphicsContext::drawText): Changed QChar to UChar. Removed horizontalAlignment
              parameter from simplified string drawing entry point, since it's not used.
              (WebCore::GraphicsContext::drawHighlightForText): Changed QChar to UChar.
      
              * platform/PlatformString.h: Changed QChar to UChar. Removed constructor that makes
              a String from a single character. Renamed unicode() function to characters(). Added
              an append function and changed += operator to just call that. Added a foldCase() function.
              Removed the concatenation operators that add individual strings before or after.
              * platform/String.cpp:
              (WebCore::String::String): Changed QChar to UChar.
              (WebCore::String::append): Renamed from operator+= and removed the return value.
              (WebCore::String::operator[]): Changed QChar to UChar.
              (WebCore::String::foldCase): Added.
              (WebCore::String::percentage): More of the same.
              (WebCore::String::characters): Renamed from unicode().
              (WebCore::String::deprecatedString): More of the same.
              (WebCore::String::sprintf): Fixed mistakes in the comments.
              (WebCore::String::isEmpty): Tweaked a bit.
              (WebCore::operator==): More of the same.
              (WebCore::String::operator Identifier): Ditto.
              (WebCore::String::operator UString): Ditto.
      
              * platform/SegmentedString.h: Changed from QChar to UChar. Had to initialize
              data members that are now UChar.
              * platform/SegmentedString.cpp:
              (WebCore::SegmentedString::length): Updated for change from QChar to UChar.
              (WebCore::SegmentedString::append): Ditto.
              (WebCore::SegmentedString::prepend): Ditto.
              (WebCore::SegmentedString::toString): Ditto.
      
              * platform/StringHash.h: Updated to use UChar instead of QChar and for name changes.
              Also changed to use case folding intead of lowercasing for case insensitive hashing.
      
              * platform/StringImpl.h:
              * platform/StringImpl.cpp:
              (WebCore::newUCharVector): Changed to UChar from QChar.
              (WebCore::deleteUCharVector): Ditto.
              (WebCore::StringImpl::StringImpl): Ditto.
              (WebCore::StringImpl::init): Ditto. Also renamed from initWithChar and initWithQChar.
              (WebCore::StringImpl::~StringImpl): Ditto.
              (WebCore::StringImpl::append): Ditto.
              (WebCore::StringImpl::insert): Ditto.
              (WebCore::StringImpl::truncate): Ditto.
              (WebCore::StringImpl::remove): Ditto.
              (WebCore::StringImpl::split): Ditto.
              (WebCore::StringImpl::containsOnlyWhitespace): Ditto. Also added comment because this
              function seems a little broken.
              (WebCore::parseLength): More of the same.
              (WebCore::StringImpl::toCoordsArray): Ditto.
              (WebCore::StringImpl::toLengthArray): Ditto.
              (WebCore::StringImpl::isLower): Ditto.
              (WebCore::StringImpl::lower): Rewrote to use u_strToLower.
              (WebCore::StringImpl::upper): Rewrote to use u_strToUpper.
              (WebCore::StringImpl::foldCase): Added. Uses u_strFoldCase.
              (WebCore::getWordBreakIterator): Changed to use U_FAILURE instead of accepting only
              U_ZERO_ERROR as a success code.
              (WebCore::StringImpl::capitalize): More QChar to UChar changes.
              (WebCore::StringImpl::toInt): Ditto.
              (WebCore::equal): Changed from QChar to UChar and was careful to preserve the old
              semantics where "high ASCII" is treated as U+0080-U+00FF even though I don't know
              if this feature is important.
              (WebCore::equalIgnoringCase): Ditto, but used case folding instead of lowercasing
              by using the u_foldCase and u_memcasecmp functions. Also renamed from
              equalCaseInsensitive for more-consistent naming.
              (WebCore::StringImpl::find): Ditto. Use case folding for the case insensitive branch.
              (WebCore::StringImpl::replace): More of the same.
              (WebCore::StringImpl::computeHash): Ditto.
              (WebCore::StringImpl::ascii): Ditto.
      
              * platform/TextBoundaries.h: Changed from QChar to UChar.
              * platform/mac/TextBoundaries.mm:
              (WebCore::findWordBoundary): Made the change to UChar and removed some type casts.
              (WebCore::findNextWordFromIndex): Ditto.
              (WebCore::findSentenceBoundary): Ditto.
              (WebCore::findNextSentenceFromIndex): Ditto.
      
              * platform/TextEncoding.h:
              * platform/TextEncoding.cpp:
              (WebCore::TextEncoding::backslashAsCurrencySymbol): Changed from QChar to UChar.
              (WebCore::TextEncoding::fromUnicode): More of the same.
              * platform/mac/TextEncodingMac.cpp: (WebCore::TextEncoding::fromUnicode): More
              of the same.
      
              * platform/mac/FontFamilyMac.mm: (WebCore::FontFamily::getNSFamily): Removed a
              now-unneeded type cast.
      
              * platform/mac/FontMac.mm:
              (WebCore::Font::selectionRectForText):
              (WebCore::Font::drawText):
              (WebCore::Font::drawHighlightForText):
              (WebCore::Font::floatWidth):
              (WebCore::Font::checkSelectionPoint):
              Changed QChar to UChar and removed some now-unneeded type casts.
      
              * editing/RebalanceWhitespaceCommand.cpp: (WebCore::isWhitespace):
              * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply):
              * editing/visible_units.cpp:
              (WebCore::previousBoundary):
              (WebCore::nextBoundary):
              (WebCore::startWordBoundary):
              (WebCore::endWordBoundary):
              (WebCore::previousWordPositionBoundary):
              (WebCore::nextWordPositionBoundary):
              (WebCore::startSentenceBoundary):
              (WebCore::endSentenceBoundary):
              (WebCore::previousSentencePositionBoundary):
              (WebCore::nextSentencePositionBoundary):
              (WebCore::startOfParagraph):
              (WebCore::endOfParagraph):
              * html/HTMLParser.cpp: (WebCore::HTMLParser::handleError):
              * rendering/InlineTextBox.cpp:
              (WebCore::InlineTextBox::selectionRect):
              (WebCore::InlineTextBox::paint):
              (WebCore::InlineTextBox::paintSelection):
              (WebCore::InlineTextBox::paintMarkedTextBackground):
              (WebCore::InlineTextBox::paintTextMatchMarker):
              (WebCore::InlineTextBox::offsetForPosition):
              (WebCore::InlineTextBox::positionForOffset):
              * rendering/RenderBlock.cpp:
              (WebCore::stripTrailingSpace):
              (WebCore::RenderBlock::updateFirstLetter):
              * rendering/RenderFlexibleBox.cpp:
              (WebCore::RenderFlexibleBox::layoutVerticalBox):
              * rendering/RenderObject.h:
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::backslashAsCurrencySymbol):
              * rendering/RenderTreeAsText.cpp: (quoteAndEscapeNonPrintables):
              * rendering/break_lines.cpp: (WebCore::nextBreakablePosition):
              * rendering/break_lines.h: (WebCore::isBreakable):
              * rendering/render_style.h: (WebCore::RenderStyle::isCollapsibleWhiteSpace):
              * xml/XSLStyleSheet.cpp: (WebCore::XSLStyleSheet::parseString):
              * xml/xmlhttprequest.cpp:
              (WebCore::getMIMEType):
              (WebCore::getCharset):
              Changed QChar to UChar.
      
              * rendering/RenderImage.cpp:
              (WebCore::RenderImage::imageChanged): Changed QChar to UChar.
              (WebCore::RenderImage::paint): Changed callers of drawText to no-longer pass 0
              for the horizontal alignment, since I removed that parameters.
      
              * rendering/RenderText.h: Changed QChar to UChar.
              * rendering/RenderText.cpp:
              (WebCore::characterBreakIterator): Update for name change.
              (WebCore::RenderText::RenderText): Ditto.
              (WebCore::RenderText::allAscii): Remove uneeded unicode() and allow the value
              U+007F to count as ASCII.
              (WebCore::RenderText::cacheWidths): Changed QChar to UChar.
              (WebCore::RenderText::widthFromCache): Changed code that deals with direction to
              use the ICU direction calls.
              (WebCore::RenderText::trimmedMinMaxWidth): Changed QChar to UChar.
              (WebCore::RenderText::calcMinMaxWidth): Ditto.
              (WebCore::RenderText::containsOnlyWhitespace): Ditto.
              (WebCore::RenderText::setText): Ditto.
              (WebCore::RenderText::width): Ditto.
      
              * rendering/RenderTextField.cpp:
              (WebCore::RenderTextField::updateFromElement): Removed unneeded QChar cast.
              (WebCore::RenderTextField::calcMinMaxWidth): Changed from QChar to UChar.
      
              * rendering/bidi.h:
              * rendering/bidi.cpp:
              (WebCore::BidiIterator::BidiIterator):
              (WebCore::BidiState::BidiState):
              (WebCore::BidiContext::BidiContext):
              (WebCore::bidiNext):
              (WebCore::bidiFirst):
              (WebCore::BidiIterator::current):
              (WebCore::BidiIterator::direction):
              (WebCore::addRun):
              (WebCore::checkMidpoints):
              (WebCore::appendRun):
              (WebCore::embed):
              (WebCore::RenderBlock::tabWidth):
              (WebCore::RenderBlock::computeHorizontalPositionsForLine):
              (WebCore::RenderBlock::bidiReorderLine):
              (WebCore::RenderBlock::layoutInlineChildren):
              (WebCore::skipNonBreakingSpace):
              (WebCore::RenderBlock::skipWhitespace):
              (WebCore::RenderBlock::findNextLineBreak):
              (WebCore::RenderBlock::checkLinesForTextOverflow):
              Changed from QChar to UChar and all direction from QChar constants to the
              ones from ICU.
      
              * rendering/render_form.cpp:
              (WebCore::RenderLineEdit::updateFromElement):
              (WebCore::RenderSelect::updateFromElement):
              (WebCore::RenderTextArea::updateFromElement):
              (WebCore::RenderTextArea::text):
              (WebCore::RenderTextArea::textWithHardLineBreaks):
              Got rid of now-unneeded QChar type casts.
      
              * rendering/render_line.cpp:
              (WebCore::InlineFlowBox::placeBoxesHorizontally): Updated for change from QChar
              to UChar.
              (WebCore::EllipsisBox::paint): Updated for unicode() -> characters() name change.
      
              * rendering/render_list.cpp:
              (WebCore::toRoman): Updated from QChar to UChar.
              (WebCore::toLetterString): Ditto.
              (WebCore::toHebrew): More of the same, also cleaned up the logic a bit.
              (WebCore::RenderListMarker::paint): Removed the alignment parameters from the
              various functions. Also removed all reliance on the width-measuring functions
              that take a string.
              (WebCore::RenderListMarker::calcMinMaxWidth): More of the same.
              (WebCore::RenderListMarker::getRelativeMarkerRect): Ditto.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@14273 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7ab3109f
  5. 07 Mar, 2006 1 commit
    • darin's avatar
      Reviewed by Adele, except for the first change listed. · 89ec05ae
      darin authored
              - fix recently-introduced bug that GuardMalloc found while I was debugging my other change
      
              * rendering/render_frames.cpp: (WebCore::RenderPart::~RenderPart):
              Set m_widget to 0 before calling deref so we don't end up trying to do unwanted work.
      
              - removed 10 more files from KWQ
      
              * ForwardingHeaders/klocale.h: Removed.
      
              * khtml/misc/helper.cpp: Removed.
              * khtml/misc/helper.h: Removed.
      
              * kwq/KWQCollection.h: Removed.
              * kwq/KWQKCookieJar.h: Removed.
              * kwq/KWQKCookieJar.mm: Removed.
              * kwq/KWQKLocale.h: Removed.
              * kwq/KWQKLocale.mm: Removed.
              * kwq/KWQKURL.h: Removed.
              * kwq/KWQKURL.mm: Removed.
              * kwq/KWQTextUtilities.h: Removed.
              * kwq/KWQTextUtilities.mm: Removed.
              * kwq/KWQView.h: Removed.
      
              * platform/CookieJar.h: Added.
              * platform/Language.h: Added.
              * platform/LocalizedStrings.h: Added.
              * platform/TextBoundaries.h: Added.
              * platform/mac/CookieJar.mm: Added.
              * platform/mac/Language.mm: Added.
              * platform/mac/LocalizedStringsMac.mm: Added.
              * platform/mac/TextBoundaries.mm: Added.
              * platform/mac/WebCoreWidgetHolder.h: Added.
      
              * WebCore.xcodeproj/project.pbxproj: Updated for removed and added files.
              * WebCore.vcproj/WebCore/WebCore.vcproj: Updated for removed and added files.
      
              * bridge/mac/WebCoreFrameBridge.mm: Updated includes.
              (-[WebCoreFrameBridge elementForView:]): Changed KWQWidgetHolder to WebCoreWidgetHolder.
      
              * editing/visible_units.cpp:
              (WebCore::previousWordPositionBoundary):
              (WebCore::nextWordPositionBoundary):
              (WebCore::previousSentencePositionBoundary):
              (WebCore::nextSentencePositionBoundary):
              Call TextBoundaries.h functions instead of helper.h ones.
      
              * khtml/ecma/kjs_navigator.cpp: (KJS::Navigator::getValueProperty):
              * ksvg2/svg/SVGTestsImpl.cpp: (WebCore::SVGTestsImpl::isValid):
              Changed to call defaultLanguage; cleaned up formatting.
      
              * khtml/html/HTMLFormElementImpl.cpp: Removed stray comment.
      
              * khtml/html/html_documentimpl.cpp:
              (WebCore::HTMLDocumentImpl::cookie):
              (WebCore::HTMLDocumentImpl::setCookie):
              Call CookieJar.h functions.
      
              * css/css_valueimpl.cpp:
              * css/cssparser.cpp:
              * css/cssstyleselector.cpp:
              * dom/DocumentImpl.cpp:
              * dom/dom_position.cpp:
              * khtml/ecma/kjs_window.cpp:
              * khtml/html/HTMLInputElementImpl.cpp:
              * khtml/html/html_headimpl.cpp:
              * khtml/html/htmlparser.cpp:
              * khtml/misc/decoder.cpp:
              * ksvg2/svg/SVGDocumentImpl.cpp:
              * kwq/KWQComboBox.mm:
              * kwq/KWQKSSLKeyGen.mm:
              * kwq/KWQListBox.mm:
              * kwq/KWQListImpl.cpp:
              * kwq/KWQListImpl.h:
              * kwq/KWQScrollBar.mm:
              * kwq/KWQSlider.mm:
              * kwq/KWQTextField.mm:
              * kwq/KWQValueList.h:
              * loader/DocLoader.cpp:
              * page/Frame.cpp:
              * page/FrameView.cpp:
              * platform/mac/WidgetMac.mm:
              (WebCore::Widget::beforeMouseDown):
              (WebCore::Widget::afterMouseDown):
              * rendering/render_applet.cpp:
              * rendering/render_form.cpp:
              * rendering/render_image.cpp:
              * rendering/render_list.cpp:
              Updated includes and protocol names.
      
              * khtml/html/htmltokenizer.cpp: (WebCore::HTMLTokenizer::write): Remove
              QT_VERSION code.
              * platform/QString.h: Remove QT_VERSION.
      
              * kwq/KWQPtrList.h: Change to no longer use QPtrCollection.
      
              * kwq/KWQRenderTreeDebug.h:
              * kwq/KWQRenderTreeDebug.cpp: (externalRepresentation):
              Remove unused debuggingRenderTree boolean.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@13187 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      89ec05ae
  6. 07 Feb, 2006 1 commit
    • mjs's avatar
      Rubber stamped by Hyatt. · 9156f8e5
      mjs authored
              - move kwq/KWQString.mm to platform/QString.cpp, split out nonportable parts, speculative
              port of one remaining nonportable bit to windows.
      
              * ForwardingHeaders/qstring.h:
              * WebCore+SVG/KDOMSettings.h:
              * WebCore+SVG/kdom.h:
              * WebCore.xcodeproj/project.pbxproj:
              * css/cssparser.h:
              * css/cssstyleselector.cpp:
              * kcanvas/KCanvasResources.h:
              * kcanvas/KCanvasTreeDebug.h:
              * khtml/ecma/kjs_window.h:
              * khtml/editing/html_interchange.cpp:
              * khtml/editing/visible_position.h:
              * khtml/editing/visible_text.h:
              * khtml/editing/visible_units.cpp:
              * khtml/html/FormDataList.h:
              * khtml/html/html_objectimpl.cpp:
              * khtml/html/htmltokenizer.h:
              * khtml/misc/decoder.h:
              * khtml/misc/formdata.h:
              * khtml/xbl/xbl_protohandler.cpp:
              * khtml/xml/dom_position.cpp:
              * khtml/xsl/xslt_processorimpl.h:
              * ksvg2/svg/SVGHelper.h:
              * ksvg2/svg/SVGPreserveAspectRatioImpl.cpp:
              * ksvg2/svg/SVGStyleElementImpl.cpp:
              * ksvg2/svg/SVGURIReferenceImpl.h:
              * ksvg2/svg/svgpathparser.cpp:
              * kwq/KWQAccObjectCache.mm:
              * kwq/KWQBuffer.h:
              * kwq/KWQEvent.h:
              * kwq/KWQFont.mm:
              * kwq/KWQFontFamily.h:
              * kwq/KWQFontMetrics.h:
              * kwq/KWQKConfigBase.h:
              * kwq/KWQKDebug.h:
              * kwq/KWQKHTMLSettings.h:
              * kwq/KWQKJobClasses.h:
              * kwq/KWQKJobClasses.mm:
              * kwq/KWQKLocale.mm:
              * kwq/KWQKSSLKeyGen.mm:
              * kwq/KWQKURL.h:
              * kwq/KWQLineEdit.h:
              * kwq/KWQRegExp.h:
              * kwq/KWQRenderTreeDebug.h:
              * kwq/KWQString.h: Removed.
              * kwq/KWQString.mm: Removed.
              * kwq/KWQStringList.h:
              * kwq/KWQTextCodec.h:
              * kwq/KWQTextStream.h:
              * kwq/KWQTextUtilities.mm:
              * kwq/WebCoreScriptDebugger.mm:
              * loader/Cache.h:
              * platform/Color.cpp:
              * platform/Color.h:
              * platform/QString.cpp: Added.
              (allocateHandle):
              (KWQStringData::KWQStringData):
              (QString::QString):
              (QString::insert):
              (QString::detach):
              (QString::remove):
              (QString::setLength):
              (QString::fill):
              (initializeHandleNodeBlock):
              (allocateNode):
              (freeHandle):
              * platform/QString.h: Added.
              * platform/SegmentedString.h:
              * platform/StringImpl.h:
              * platform/mac/Image.mm:
              * platform/mac/QString.mm: Added.
              (QString::setBufferFromCFString):
              (QString::fromCFString):
              (QString::fromNSString):
              (QString::getNSString):
              (QString::utf8):
              (QString::fromUtf8):
              * rendering/bidi.h:
              * rendering/break_lines.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@12655 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9156f8e5
  7. 03 Oct, 2005 1 commit
    • mjs's avatar
      JavaScriptCore: · b64c50a2
      mjs authored
              Reviewed by Darin.
      
      	<rdar://problem/4283967> REGRESSION: 3% regression on PLT from new FastMalloc
      	http://bugzilla.opendarwin.org/show_bug.cgi?id=5243
      
      	A number of optimizations to the new threadsafe malloc that make it actually as fast
      	as dlmalloc (I measured wrong before) and as memory-efficient as the system malloc.
      
      	- use fastMalloc for everything - it now gets applied to all new/delete allocations
      	via a private inline operator new that is now included into every file via config.h.
      
      	- tweaked some of the numeric parameters for size classes and amount of wasted memory
      	allowed per allocation - this saves on memory use and consequently improves speed.
      
      	- so long as the allocator is not being used on background threads, get the per-thread
      	cache from a global variable instead of from pthread_getspecific, since the latter is slow.
      
      	- inline more functions, and force the ones GCC refuses to inline with
      	attribute(always_inline), nearly all of these have one call site so inlining them has
      	to be a win.
      
      	- use some tricks to calculate allocation size more efficiently and fewer times for small
      	allocations, to avoid hitting the huge size table array.
      
      	- avoid hitting the per-thread cache on code paths that don't need it.
      
      	- implement inline assembly version of spinlock for PowerPC (was already done for x86)
      
              * bindings/NP_jsobject.cpp:
              * bindings/c/c_class.cpp:
              * bindings/c/c_instance.cpp:
              * bindings/c/c_runtime.cpp:
              * bindings/c/c_utility.cpp:
              * bindings/jni/jni_class.cpp:
              * bindings/jni/jni_instance.cpp:
              * bindings/jni/jni_jsobject.cpp:
              * bindings/jni/jni_objc.mm:
              * bindings/jni/jni_runtime.cpp:
              * bindings/jni/jni_utility.cpp:
              * bindings/npruntime.cpp:
              * bindings/objc/WebScriptObject.mm:
              * bindings/objc/objc_class.mm:
              * bindings/objc/objc_instance.mm:
              * bindings/objc/objc_runtime.mm:
              * bindings/objc/objc_utility.mm:
              * bindings/runtime.cpp:
              * bindings/runtime_array.cpp:
              * bindings/runtime_method.cpp:
              * bindings/runtime_object.cpp:
              * bindings/runtime_root.cpp:
              * bindings/testbindings.cpp:
              * bindings/testbindings.mm:
              * kjs/array_object.cpp:
              (ArrayInstanceImp::ArrayInstanceImp):
              (ArrayInstanceImp::~ArrayInstanceImp):
              (ArrayInstanceImp::resizeStorage):
              * kjs/bool_object.cpp:
              * kjs/collector.cpp:
              (KJS::Collector::registerThread):
              * kjs/config.h:
              * kjs/debugger.cpp:
              * kjs/error_object.cpp:
              * kjs/function.cpp:
              * kjs/function_object.cpp:
              * kjs/identifier.cpp:
              (KJS::Identifier::rehash):
              * kjs/internal.cpp:
              (KJS::Parser::saveNewNode):
              (KJS::clearNewNodes):
              * kjs/interpreter.cpp:
              * kjs/lexer.cpp:
              (Lexer::doneParsing):
              (Lexer::makeIdentifier):
              (Lexer::makeUString):
              * kjs/list.cpp:
              * kjs/math_object.cpp:
              * kjs/nodes.cpp:
              * kjs/nodes.h:
              * kjs/nodes2string.cpp:
              * kjs/number_object.cpp:
              (integer_part_noexp):
              (char_sequence):
              * kjs/object.cpp:
              * kjs/object_object.cpp:
              * kjs/property_map.cpp:
              * kjs/property_slot.cpp:
              * kjs/protected_values.cpp:
              (KJS::ProtectedValues::rehash):
              * kjs/reference.cpp:
              * kjs/reference_list.cpp:
              * kjs/regexp.cpp:
              * kjs/regexp_object.cpp:
              * kjs/scope_chain.cpp:
              * kjs/scope_chain.h:
              * kjs/string_object.cpp:
              * kjs/testkjs.cpp:
              * kjs/ustring.h:
              * kjs/value.cpp:
              * kxmlcore/Assertions.mm:
              * kxmlcore/FastMalloc.cpp:
              (KXMLCore::InitSizeClasses):
              (KXMLCore::DLL_IsEmpty):
              (KXMLCore::DLL_Prepend):
              (KXMLCore::TCMalloc_Central_FreeList::Insert):
              (KXMLCore::TCMalloc_Central_FreeList::Remove):
              (KXMLCore::TCMalloc_Central_FreeList::Populate):
              (KXMLCore::TCMalloc_ThreadCache::Allocate):
              (KXMLCore::TCMalloc_ThreadCache::FetchFromCentralCache):
              (KXMLCore::fastMallocRegisterThread):
              (KXMLCore::TCMalloc_ThreadCache::GetCache):
              (KXMLCore::TCMalloc_ThreadCache::GetCacheIfPresent):
              (KXMLCore::TCMalloc_ThreadCache::CreateCacheIfNecessary):
              (KXMLCore::do_malloc):
              (KXMLCore::do_free):
              (KXMLCore::realloc):
              * kxmlcore/FastMalloc.h:
              (operator new):
              (operator delete):
              (operator new[]):
              (operator delete[]):
              * kxmlcore/HashTable.cpp:
              * kxmlcore/TCSpinLock.h:
              (TCMalloc_SpinLock::Lock):
              (TCMalloc_SpinLock::Unlock):
              (TCMalloc_SlowLock):
              * kxmlcore/TCSystemAlloc.cpp:
      
      WebCore:
      
              Reviewed by Darin.
      
      	<rdar://problem/4283967> REGRESSION: 3% regression on PLT from new FastMalloc
      	http://bugzilla.opendarwin.org/show_bug.cgi?id=5243
      
      	- use fastMalloc for everything - it now gets applied to all new/delete allocations
              via a private inline operator new that is now included into every file via config.h
      
              * WebCore.xcodeproj/project.pbxproj:
              * WebCorePrefix.h:
              * khtml/css/css_base.cpp:
              * khtml/css/css_base.h:
              * khtml/css/css_computedstyle.cpp:
              * khtml/css/css_ruleimpl.cpp:
              * khtml/css/css_stylesheetimpl.cpp:
              * khtml/css/css_valueimpl.cpp:
              * khtml/css/css_valueimpl.h:
              * khtml/css/csshelper.cpp:
              * khtml/css/cssparser.cpp:
              (ValueList::ValueList):
              (ValueList::~ValueList):
              (ValueList::addValue):
              (CSSParser::CSSParser):
              (CSSParser::~CSSParser):
              (CSSParser::setupParser):
              (CSSParser::addProperty):
              * khtml/css/cssstyleselector.cpp:
              * khtml/css/cssstyleselector.h:
              * khtml/dom/dom2_events.cpp:
              * khtml/dom/dom2_traversal.cpp:
              * khtml/dom/dom_misc.cpp:
              * khtml/dom/dom_string.cpp:
              * khtml/ecma/domparser.cpp:
              * khtml/ecma/kjs_binding.cpp:
              * khtml/ecma/kjs_css.cpp:
              * khtml/ecma/kjs_dom.cpp:
              * khtml/ecma/kjs_events.cpp:
              * khtml/ecma/kjs_html.cpp:
              (KJS::KJS::Context2DFunction::callAsFunction):
              (KJS::Gradient::~Gradient):
              (KJS::Gradient::addColorStop):
              (KJS::Gradient::colorStops):
              * khtml/ecma/kjs_navigator.cpp:
              * khtml/ecma/kjs_proxy.cpp:
              * khtml/ecma/kjs_range.cpp:
              * khtml/ecma/kjs_traversal.cpp:
              * khtml/ecma/kjs_views.cpp:
              * khtml/ecma/kjs_window.cpp:
              * khtml/ecma/xmlhttprequest.cpp:
              * khtml/ecma/xmlserializer.cpp:
              * khtml/editing/SelectionController.cpp:
              * khtml/editing/append_node_command.cpp:
              * khtml/editing/apply_style_command.cpp:
              * khtml/editing/break_blockquote_command.cpp:
              * khtml/editing/composite_edit_command.cpp:
              * khtml/editing/delete_from_text_node_command.cpp:
              * khtml/editing/delete_selection_command.cpp:
              * khtml/editing/edit_command.cpp:
              * khtml/editing/html_interchange.cpp:
              * khtml/editing/htmlediting.cpp:
              * khtml/editing/insert_into_text_node_command.cpp:
              * khtml/editing/insert_line_break_command.cpp:
              * khtml/editing/insert_node_before_command.cpp:
              * khtml/editing/insert_paragraph_separator_command.cpp:
              * khtml/editing/insert_text_command.cpp:
              * khtml/editing/join_text_nodes_command.cpp:
              * khtml/editing/jsediting.cpp:
              * khtml/editing/markup.cpp:
              * khtml/editing/merge_identical_elements_command.cpp:
              * khtml/editing/move_selection_command.cpp:
              * khtml/editing/rebalance_whitespace_command.cpp:
              * khtml/editing/remove_css_property_command.cpp:
              * khtml/editing/remove_node_attribute_command.cpp:
              * khtml/editing/remove_node_command.cpp:
              * khtml/editing/remove_node_preserving_children_command.cpp:
              * khtml/editing/replace_selection_command.cpp:
              * khtml/editing/set_node_attribute_command.cpp:
              * khtml/editing/split_element_command.cpp:
              * khtml/editing/split_text_node_command.cpp:
              * khtml/editing/split_text_node_containing_element.cpp:
              * khtml/editing/typing_command.cpp:
              * khtml/editing/visible_position.cpp:
              * khtml/editing/visible_range.cpp:
              * khtml/editing/visible_text.cpp:
              (khtml::CircularSearchBuffer::~CircularSearchBuffer):
              (khtml::CircularSearchBuffer::CircularSearchBuffer):
              * khtml/editing/visible_units.cpp:
              * khtml/editing/wrap_contents_in_dummy_span_command.cpp:
              * khtml/html/html_baseimpl.cpp:
              * khtml/html/html_blockimpl.cpp:
              * khtml/html/html_canvasimpl.cpp:
              * khtml/html/html_documentimpl.cpp:
              * khtml/html/html_elementimpl.cpp:
              * khtml/html/html_formimpl.cpp:
              * khtml/html/html_headimpl.cpp:
              * khtml/html/html_imageimpl.cpp:
              * khtml/html/html_inlineimpl.cpp:
              * khtml/html/html_listimpl.cpp:
              * khtml/html/html_miscimpl.cpp:
              * khtml/html/html_objectimpl.cpp:
              * khtml/html/html_tableimpl.cpp:
              * khtml/html/htmlfactory.cpp:
              * khtml/html/htmlnames.cpp:
              * khtml/html/htmlparser.cpp:
              * khtml/html/htmltokenizer.cpp:
              (khtml::HTMLTokenizer::enlargeBuffer):
              (khtml::HTMLTokenizer::enlargeScriptBuffer):
              * khtml/khtml_events.cpp:
              * khtml/khtml_part.cpp:
              * khtml/khtmlview.cpp:
              * khtml/misc/arena.cpp:
              * khtml/misc/arena.h:
              * khtml/misc/decoder.cpp:
              * khtml/misc/formdata.cpp:
              * khtml/misc/helper.cpp:
              * khtml/misc/loader.cpp:
              * khtml/misc/stringit.cpp:
              * khtml/rendering/bidi.cpp:
              * khtml/rendering/break_lines.cpp:
              * khtml/rendering/font.cpp:
              * khtml/rendering/render_arena.cpp:
              * khtml/rendering/render_block.cpp:
              * khtml/rendering/render_box.cpp:
              * khtml/rendering/render_br.cpp:
              * khtml/rendering/render_canvas.cpp:
              * khtml/rendering/render_canvasimage.cpp:
              (RenderCanvasImage::~RenderCanvasImage):
              (RenderCanvasImage::createDrawingContext):
              * khtml/rendering/render_container.cpp:
              * khtml/rendering/render_flexbox.cpp:
              * khtml/rendering/render_flow.cpp:
              * khtml/rendering/render_form.cpp:
              * khtml/rendering/render_frames.cpp:
              * khtml/rendering/render_image.cpp:
              * khtml/rendering/render_inline.cpp:
              * khtml/rendering/render_layer.cpp:
              * khtml/rendering/render_line.cpp:
              * khtml/rendering/render_list.cpp:
              * khtml/rendering/render_object.cpp:
              * khtml/rendering/render_replaced.cpp:
              * khtml/rendering/render_style.cpp:
              * khtml/rendering/render_style.h:
              * khtml/rendering/render_table.cpp:
              * khtml/rendering/render_text.cpp:
              * khtml/rendering/render_theme.cpp:
              * khtml/rendering/render_theme_mac.mm:
              * khtml/rendering/table_layout.cpp:
              * khtml/xbl/xbl_binding.cpp:
              * khtml/xbl/xbl_binding_manager.cpp:
              * khtml/xbl/xbl_docimpl.cpp:
              * khtml/xbl/xbl_protobinding.cpp:
              * khtml/xbl/xbl_protohandler.cpp:
              * khtml/xbl/xbl_protoimplementation.cpp:
              * khtml/xbl/xbl_tokenizer.cpp:
              * khtml/xml/EventNames.cpp:
              * khtml/xml/dom2_eventsimpl.cpp:
              * khtml/xml/dom2_eventsimpl.h:
              * khtml/xml/dom2_rangeimpl.cpp:
              * khtml/xml/dom2_rangeimpl.h:
              * khtml/xml/dom2_traversalimpl.cpp:
              * khtml/xml/dom2_traversalimpl.h:
              * khtml/xml/dom2_viewsimpl.cpp:
              * khtml/xml/dom2_viewsimpl.h:
              * khtml/xml/dom_atomicstring.cpp:
              * khtml/xml/dom_docimpl.cpp:
              * khtml/xml/dom_docimpl.h:
              * khtml/xml/dom_elementimpl.cpp:
              * khtml/xml/dom_elementimpl.h:
              * khtml/xml/dom_nodeimpl.cpp:
              * khtml/xml/dom_nodeimpl.h:
              * khtml/xml/dom_position.cpp:
              * khtml/xml/dom_qname.cpp:
              * khtml/xml/dom_stringimpl.cpp:
              * khtml/xml/dom_stringimpl.h:
              * khtml/xml/dom_textimpl.cpp:
              * khtml/xml/dom_xmlimpl.cpp:
              * khtml/xml/xml_tokenizer.cpp:
              * khtml/xsl/xsl_stylesheetimpl.cpp:
              * khtml/xsl/xslt_processorimpl.cpp:
              * kwq/DOM-CSS.mm:
              * kwq/DOM.mm:
              * kwq/DOMEvents.mm:
              * kwq/DOMHTML.mm:
              * kwq/DOMInternal.mm:
              (DOMString::DOMString):
              * kwq/DOMUtility.mm:
              * kwq/DOMViews.mm:
              * kwq/KWQAccObject.mm:
              * kwq/KWQAccObjectCache.mm:
              * kwq/KWQApplication.mm:
              * kwq/KWQArrayImpl.h:
              * kwq/KWQArrayImpl.mm:
              * kwq/KWQBuffer.mm:
              * kwq/KWQButton.mm:
              * kwq/KWQCString.mm:
              * kwq/KWQCharsets.mm:
              * kwq/KWQClipboard.mm:
              * kwq/KWQCollection.mm:
              * kwq/KWQColor.mm:
              * kwq/KWQComboBox.mm:
              * kwq/KWQCursor.mm:
              * kwq/KWQDateTime.mm:
              * kwq/KWQDictImpl.mm:
              * kwq/KWQEditCommand.mm:
              * kwq/KWQEvent.mm:
              * kwq/KWQExceptions.mm:
              * kwq/KWQFile.mm:
              * kwq/KWQFileButton.mm:
              * kwq/KWQFont.mm:
              * kwq/KWQFontFamily.h:
              * kwq/KWQFontFamily.mm:
              * kwq/KWQFontMetrics.mm:
              * kwq/KWQFormData.mm:
              * kwq/KWQFrame.mm:
              * kwq/KWQGlobal.mm:
              * kwq/KWQGuardedPtr.mm:
              * kwq/KWQKCharsets.mm:
              * kwq/KWQKConfigBase.mm:
              * kwq/KWQKCookieJar.mm:
              * kwq/KWQKCursor.mm:
              * kwq/KWQKGlobal.mm:
              * kwq/KWQKGlobalSettings.mm:
              * kwq/KWQKHTMLFactory.mm:
              * kwq/KWQKHTMLPart.cpp:
              * kwq/KWQKHTMLPart.mm:
              * kwq/KWQKHTMLPartBrowserExtension.mm:
              * kwq/KWQKHTMLView.mm:
              * kwq/KWQKHistoryProvider.mm:
              * kwq/KWQKJavaAppletWidget.mm:
              * kwq/KWQKJob.mm:
              * kwq/KWQKJobClasses.mm:
              * kwq/KWQKLocale.mm:
              * kwq/KWQKPartsBrowserInterface.mm:
              * kwq/KWQKPartsEvent.mm:
              * kwq/KWQKPartsPart.mm:
              * kwq/KWQKSSLKeyGen.mm:
              * kwq/KWQKStandardDirs.mm:
              * kwq/KWQKStringHandler.mm:
              * kwq/KWQKURL.mm:
              (KURL::KURL):
              (KURL::decode_string):
              (KURL::parse):
              (KURL::encode_string):
              (encodeRelativeString):
              * kwq/KWQKWin.mm:
              * kwq/KWQKWinModule.mm:
              * kwq/KWQLabel.mm:
              * kwq/KWQLineEdit.mm:
              * kwq/KWQListBox.mm:
              * kwq/KWQListImpl.mm:
              * kwq/KWQLoader.mm:
              (KWQIsResponseURLEqualToURL):
              * kwq/KWQMapImpl.h:
              * kwq/KWQMapImpl.mm:
              * kwq/KWQMovie.mm:
              * kwq/KWQObject.mm:
              * kwq/KWQPageState.mm:
              * kwq/KWQPaintDeviceMetrics.mm:
              * kwq/KWQPainter.mm:
              * kwq/KWQPalette.mm:
              * kwq/KWQPen.mm:
              * kwq/KWQPixmap.mm:
              * kwq/KWQPoint.mm:
              * kwq/KWQPointArray.mm:
              * kwq/KWQPtrDictImpl.mm:
              * kwq/KWQPushButton.mm:
              * kwq/KWQRect.mm:
              * kwq/KWQRegExp.mm:
              * kwq/KWQRegion.mm:
              * kwq/KWQRenderTreeDebug.cpp:
              * kwq/KWQResourceLoader.mm:
              * kwq/KWQScrollBar.mm:
              * kwq/KWQScrollView.mm:
              * kwq/KWQSignal.mm:
              * kwq/KWQSignalStubs.mm:
              * kwq/KWQSize.mm:
              * kwq/KWQSlider.mm:
              * kwq/KWQSlot.mm:
              * kwq/KWQString.h:
              * kwq/KWQString.mm:
              (ALLOC_CHAR):
              (REALLOC_CHAR):
              (DELETE_CHAR):
              (ALLOC_QCHAR):
              (REALLOC_QCHAR):
              (DELETE_QCHAR):
              (_printQStringAllocationStatistics):
              (allocateHandle):
              (KWQStringData::operator new):
              (KWQStringData::operator delete):
              (freeHandle):
              * kwq/KWQStringList.mm:
              * kwq/KWQStyle.mm:
              * kwq/KWQTextArea.mm:
              * kwq/KWQTextCodec.mm:
              * kwq/KWQTextEdit.mm:
              * kwq/KWQTextField.mm:
              * kwq/KWQTextStream.mm:
              * kwq/KWQTextUtilities.mm:
              * kwq/KWQTimer.mm:
              * kwq/KWQValueListImpl.h:
              * kwq/KWQValueListImpl.mm:
              * kwq/KWQVariant.mm:
              * kwq/KWQVectorImpl.mm:
              (KWQVectorImpl::KWQVectorImpl):
              (KWQVectorImpl::~KWQVectorImpl):
              (KWQVectorImpl::clear):
              (KWQVectorImpl::resize):
              (KWQVectorImpl::assign):
              * kwq/KWQWMatrix.mm:
              * kwq/KWQWidget.mm:
              * kwq/KWQWindowWidget.mm:
              * kwq/WebCoreBridge.mm:
              * kwq/WebCoreCache.mm:
              * kwq/WebCoreEncodings.mm:
              * kwq/WebCoreJavaScript.mm:
              * kwq/WebCoreScriptDebugger.mm:
              * kwq/WebCoreSettings.mm:
              * kwq/WebCoreTextRendererFactory.mm:
              * kwq/can-convert.mm:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@10701 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b64c50a2
  8. 16 Aug, 2005 1 commit
    • darin's avatar
      WebCore: · ce80db1f
      darin authored
              Reviewed by Beth Dakin.
      
              - removed Panther-only code that was not being compiled and was
                simply "bit-rotting"
      
              * WebCorePrefix.h:
              * khtml/misc/loader.cpp:
              (CachedImage::CachedImage):
              * khtml/rendering/render_canvasimage.cpp:
              * kwq/KWQAccObject.mm:
              (-[KWQAccObject roleDescription]):
              (-[KWQAccObject accessibilityAttributeNames]):
              (-[KWQAccObject accessibilityActionDescription:]):
              (-[KWQAccObject accessibilityAttributeValue:]):
              (-[KWQAccObject accessibilityIsAttributeSettable:]):
              * kwq/KWQComboBox.mm:
              (QComboBox::QComboBox):
              * kwq/KWQFoundationExtras.h:
              (KWQCFAutorelease):
              * kwq/KWQPixmap.mm:
              (QPixmap::QPixmap):
              (QPixmap::receivedData):
              * kwq/KWQString.h:
              (QChar::direction):
              * kwq/KWQTextArea.mm:
              (-[KWQTextArea tile]):
              * kwq/KWQTextEdit.mm:
              (QTextEdit::setScrollBarModes):
              * kwq/KWQTextField.mm:
              (-[KWQTextFieldController string]):
              * kwq/KWQTextUtilities.mm:
              (currentTextBreakLocaleID):
              * kwq/WebCoreScrollView.m:
      
      WebKit:
      
              Reviewed by Beth Dakin.
      
              - removed Panther-only code that was not being compiled and was
                simply "bit-rotting"
      
              * Misc.subproj/WebFileDatabase.m:
              (-[WebFileDatabase _createLRUList:]):
              (+[WebFileDatabase _syncLoop:]):
              * Misc.subproj/WebKitErrors.m:
              (registerErrors):
              * Misc.subproj/WebNSObjectExtras.h:
              (WebCFAutorelease):
              * Misc.subproj/WebNSPasteboardExtras.m:
              (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]):
              * WebCoreSupport.subproj/WebImageData.h:
              * WebCoreSupport.subproj/WebImageDecodeItem.h:
              * WebCoreSupport.subproj/WebImageDecodeItem.m:
              * WebCoreSupport.subproj/WebImageDecoder.h:
              * WebCoreSupport.subproj/WebImageDecoder.m:
              (decoderThread):
              (startDecoderThread):
              * WebCoreSupport.subproj/WebKeyGeneration.cpp: Removed.
              * WebCoreSupport.subproj/WebKeyGeneration.h: Removed.
              * WebCoreSupport.subproj/WebKeyGenerator.h:
              * WebCoreSupport.subproj/WebTextRenderer.m:
              (getUncachedWidth):
              (_drawGlyphs):
              * WebCoreSupport.subproj/WebViewFactory.m:
              (-[WebViewFactory getBytes:fromTextMarker:length:]):
              * WebKit.xcodeproj/project.pbxproj:
              * WebKitPrefix.h:
              * WebView.subproj/WebDataSource.m:
              (-[WebDataSource _setPrimaryLoadComplete:]):
              (+[WebDataSource _repTypesAllowImageTypeOmission:]):
              (-[WebDataSource isLoading]):
              * WebView.subproj/WebDefaultContextMenuDelegate.m:
              (localizedMenuTitleFromAppKit):
              (-[WebDefaultUIDelegate menuItemWithTag:]):
              (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
              (-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]):
              * WebView.subproj/WebFormDataStream.m:
              (formCanRead):
              (webSetHTTPBody):
              * WebView.subproj/WebFrameView.m:
              (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
              * WebView.subproj/WebHTMLView.m:
              (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:chosePlainText:]):
              (-[WebHTMLView resourceForData:preferredFilename:]):
              (-[WebHTMLView _lookUpInDictionaryFromMenu:]):
              (-[WebHTMLView validateUserInterfaceItem:]):
              (-[WebHTMLView _attributeStringFromDOMRange:]):
              (-[WebHTMLView toggleBaseWritingDirection:]):
              (-[WebHTMLView changeBaseWritingDirection:]):
              * WebView.subproj/WebPDFRepresentation.h:
              * WebView.subproj/WebPDFRepresentation.m:
              * WebView.subproj/WebPDFView.h:
              * WebView.subproj/WebPDFView.m:
              * WebView.subproj/WebPreferences.m:
              (+[WebPreferences _systemCFStringEncoding]):
              * WebView.subproj/WebView.m:
              (-[WebView _commonInitializationWithFrameName:groupName:]):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@10215 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ce80db1f
  9. 10 Jan, 2005 2 commits
    • harrison's avatar
      Reviewed by Darin. · 5aad8ef3
      harrison authored
              * kwq/KWQTextUtilities.mm:
              (currentTextBreakLocaleID):
              Return empty string (AKA root locale) if locale pref can not be canonicalized.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@8329 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5aad8ef3
    • sullivan's avatar
      Fixed broken Panther build. · 29af45c0
      sullivan authored
              * kwq/KWQTextUtilities.mm:
              (currentTextBreakLocaleID):
              This recently-added function was using code copy/pasted from CarbonCore UnicodeUtilities.
              That code used a Tiger-only function, CFLocaleCreateCanonicalLanguageIdentifierFromString.
              To fix the build, I added a BUILDING_ON_PANTHER #ifdef that avoids the call to the Tiger
              function. However, the Tiger-only code was wrong; the string generated using
              CFLocaleCreateCanonicalLanguageIdentifierFromString was not used at all, so I fixed that
              as well.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@8328 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      29af45c0
  10. 07 Jan, 2005 1 commit
    • harrison's avatar
      Reviewed by Darin. · 8edcc8b3
      harrison authored
              <rdar://problem/3942619> AX: Support sentence ax attributes
      
              Needed to use the unicode utilities properly.  Twas lame before.
      
              * khtml/editing/visible_units.cpp:
              (khtml::previousBoundary):
              (khtml::nextBoundary):
              (khtml::startOfWord):
              (khtml::endOfWord):
              (khtml::previousWordPosition):
              (khtml::nextWordPosition):
              (khtml::startOfSentence):
              (khtml::endOfSentence):
              (khtml::previousSentencePosition):
              (khtml::nextSentencePosition):
              * kwq/KWQAccObject.mm:
              (-[KWQAccObject accessibilityAttributeNames]):
              (-[KWQAccObject accessibilityAttributeValue:]):
              (-[KWQAccObject accessibilityParameterizedAttributeNames]):
              (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
              * kwq/KWQTextUtilities.mm:
              (currentTextBreakLocaleID):
              (KWQFindSentenceBoundary):
              (KWQFindNextSentenceFromIndex):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@8321 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8edcc8b3
  11. 06 Jan, 2005 1 commit
    • harrison's avatar
      Reviewed by Dave Hyatt. · 528c5bb5
      harrison authored
              <rdar://problem/3776056> AX: Editable HTML should not be viewed as AXStaticText
              <rdar://problem/3588548> AX: tabbing does not work correctly with the screen reader and a focused link; need AXFocusedUIElement to work
      
              Many more AX attributes supported.  Numerous fixes to previous AX work.
      
              * khtml/editing/visible_units.cpp:
              (khtml::startSentenceBoundary):
              (khtml::startOfSentence):
              (khtml::endSentenceBoundary):
              (khtml::endOfSentence):
              (khtml::previousSentencePositionBoundary):
              (khtml::previousSentencePosition):
              (khtml::nextSentencePositionBoundary):
              (khtml::nextSentencePosition):
              * khtml/editing/visible_units.h:
              * khtml/khtmlview.cpp:
              (KHTMLView::layout):
              * khtml/misc/helper.cpp:
              (khtml::findSentenceBoundary):
              (khtml::nextSentenceFromIndex):
              * khtml/misc/helper.h:
              * khtml/misc/htmltags.c:
              (hash_tag):
              (findTag):
              * khtml/rendering/render_container.cpp:
              (RenderContainer::removeChildNode):
              (RenderContainer::appendChildNode):
              (RenderContainer::insertChildNode):
              * khtml/rendering/render_object.cpp:
              (RenderObject::remove):
              * khtml/xml/dom_docimpl.cpp:
              (DocumentImpl::getAccObjectCache):
              (DocumentImpl::updateSelection):
              (DocumentImpl::close):
              (DocumentImpl::setFocusNode):
              (DocumentImpl::parentDocument):
              (DocumentImpl::topDocument):
              * khtml/xml/dom_docimpl.h:
              * kwq/KWQAccObject.mm:
              (-[KWQAccObject accessibilityShouldUseUniqueId]):
              (-[KWQAccObject detach]):
              (-[KWQAccObject anchorElement]):
              (-[KWQAccObject firstChild]):
              (-[KWQAccObject lastChild]):
              (-[KWQAccObject previousSibling]):
              (-[KWQAccObject nextSibling]):
              (-[KWQAccObject parentObject]):
              (-[KWQAccObject value]):
              (-[KWQAccObject accessibilityAttributeNames]):
              (-[KWQAccObject accessibilityPerformAction:]):
              (-[KWQAccObject textMarkerForVisiblePosition:]):
              (-[KWQAccObject visiblePositionForTextMarker:]):
              (-[KWQAccObject textMarkerRangeFromVisiblePositions:andEndPos:]):
              (-[KWQAccObject topDocument]):
              (-[KWQAccObject topRenderer]):
              (-[KWQAccObject topView]):
              (-[KWQAccObject accessibilityAttributeValue:]):
              (-[KWQAccObject accessibilityParameterizedAttributeNames]):
              (-[KWQAccObject doAXLineForTextMarker:]):
              (-[KWQAccObject doAXTextMarkerRangeForLine:]):
              (-[KWQAccObject doAXStringForTextMarkerRange:]):
              (-[KWQAccObject doAXTextMarkerForPosition:]):
              (-[KWQAccObject doAXBoundsForTextMarkerRange:]):
              (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
              (-[KWQAccObject doAXTextMarkerRangeForUnorderedTextMarkers:]):
              (-[KWQAccObject doAXNextTextMarkerForTextMarker:]):
              (-[KWQAccObject doAXPreviousTextMarkerForTextMarker:]):
              (-[KWQAccObject doAXLeftWordTextMarkerRangeForTextMarker:]):
              (-[KWQAccObject doAXRightWordTextMarkerRangeForTextMarker:]):
              (-[KWQAccObject doAXLeftLineTextMarkerRangeForTextMarker:]):
              (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
              (-[KWQAccObject doAXSentenceTextMarkerRangeForTextMarker:]):
              (-[KWQAccObject doAXParagraphTextMarkerRangeForTextMarker:]):
              (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]):
              (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]):
              (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
              (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
              (-[KWQAccObject doAXNextSentenceEndTextMarkerForTextMarker:]):
              (-[KWQAccObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
              (-[KWQAccObject doAXNextParagraphEndTextMarkerForTextMarker:]):
              (-[KWQAccObject doAXPreviousParagraphStartTextMarkerForTextMarker:]):
              (-[KWQAccObject doAXLengthForTextMarkerRange:]):
              (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
              (-[KWQAccObject accessibilityHitTest:]):
              (-[KWQAccObject accessibilityFocusedUIElement]):
              (-[KWQAccObject accessibilityIsAttributeSettable:]):
              (-[KWQAccObject doSetAXSelectedTextMarkerRange:]):
              (-[KWQAccObject setAccObjectID:]):
              (-[KWQAccObject removeAccObjectID]):
              * kwq/KWQAccObjectCache.h:
              * kwq/KWQAccObjectCache.mm:
              (KWQAccObjectCache::setAccObject):
              (KWQAccObjectCache::removeAccObject):
              (KWQAccObjectCache::visiblePositionForTextMarker):
              (KWQAccObjectCache::postNotificationToTopWebArea):
              (KWQAccObjectCache::postNotification):
              (KWQAccObjectCache::handleFocusedUIElementChanged):
              * kwq/KWQKHTMLPart.mm:
              (KWQKHTMLPart::respondToChangedContents):
              * kwq/KWQTextUtilities.h:
              * kwq/KWQTextUtilities.mm:
              (KWQFindNextWordFromIndex):
              (KWQFindSentenceBoundary):
              (KWQFindNextSentenceFromIndex):
              * kwq/WebCoreBridge.mm:
              (-[WebCoreBridge accessibilityTree]):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@8309 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      528c5bb5
  12. 04 Oct, 2004 1 commit
    • darin's avatar
      Reviewed by Ken. · 8c6be518
      darin authored
              - fixed <rdar://problem/3800667> REGRESSION (Mail): double-clicking multiple spaces only selects two spaces
      
              * kwq/KWQTextUtilities.mm: (KWQFindWordBoundary): Moved here from the .cpp file. Changed to use the
              doubleClickAtIndex: method from NSAttributedString rather than using Unicode Utilities.
              * kwq/KWQTextUtilities.cpp: Removed.
              * WebCore.pbproj/project.pbxproj: Removed KWQTextUtilities.cpp.
      
              - fixed a problem that would show up using HTML editing under garbage collection
      
              * kwq/KWQEditCommand.mm: (-[KWQEditCommand finalize]): Fixed a [super dealloc] that should have been a
              [super finalize].
      
              - another small change
      
              * khtml/editing/visible_units.cpp: (khtml::nextWordBoundary): Tweaked a comment.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@7748 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8c6be518
  13. 20 Sep, 2004 1 commit
    • darin's avatar
      WebCore: · ce3eaa71
      darin authored
              Reviewed by Ken.
      
              - fixed <rdar://problem/3655360> REGRESSION (Mail): Ctrl-V emacs key binding, -pageDown: method, unimplemented (and pageUp, and selection-modifying versions)
              - fixed <rdar://problem/3735055> REGRESSION (Mail): WebCore double click rules treat style change as a boundary
              - fixed <rdar://problem/3789939> REGRESSION (Mail): double-clicking on border whitespace selects space plus word before/after
              - fixed <rdar://problem/3792138> REGRESSION (Mail): Spell checker doesn't check current selected word
              - fixed <rdar://problem/3806604> REGRESSION (164): Triple-click sometimes selects extra characters
              - fixed <rdar://problem/3806996> REGRESSION (125-162): Triple-click in <pre> tagged text behaves oddly (leuf.net)
      
              * khtml/xml/dom_caretposition.h: Added a lot of new functions. Removed implicit conversion operator
              that converts from CaretPosition to Position.
              * khtml/xml/dom_caretposition.cpp:
              (DOM::CaretPosition::CaretPosition): Change to call deepEquivalent so it works without the implicit
              Position conversion operator.
              (DOM::CaretPosition::operator=): Ditto.
              (DOM::CaretPosition::next): Ditto.
              (DOM::CaretPosition::previous): Ditto.
              (DOM::CaretPosition::setPosition): Added an assertion.
              (DOM::start): Added.
              (DOM::end): Added.
              (DOM::setStart): Added.
              (DOM::setEnd): Added.
              (DOM::previousWordBoundary): Added.
              (DOM::nextWordBoundary): Added.
              (DOM::startWordBoundary): Added.
              (DOM::startOfWord): Added.
              (DOM::endWordBoundary): Added.
              (DOM::endOfWord): Added.
              (DOM::previousWordPositionBoundary): Added.
              (DOM::previousWordPosition): Added.
              (DOM::nextWordPositionBoundary): Added.
              (DOM::nextWordPosition): Added.
              (DOM::previousLinePosition): Added.
              (DOM::nextLinePosition): Added.
              (DOM::startOfParagraph): Changed function name.
              (DOM::endOfParagraph): Changed function name. Fixed code in includeLineBreak to work around
              the CaretPosition constructor issue for <br>, pass the right parameter for the block flow case,
              and handle <pre> properly.
              (DOM::inSameParagraph): Added.
              (DOM::previousParagraphPosition): Added.
              (DOM::nextParagraphPosition): Added.
      
              * khtml/xml/dom_position.h: Removed a number of functions no longer used; also made some private.
              * khtml/xml/dom_position.cpp: Removed a number of functions no longer used.
      
              * khtml/xml/dom_selection.h: Replaced DOCUMENT with DOCUMENT_BOUNDARY. Added overloads of lots
              of functions that take CaretPosition directly. Added overload of modify that takes a parameter
              for vertical distance to help implement pageDown: and friends. Replaced getRepaintRect with
              two new functions named caretRect and caretRepaintRect. Removed nodeIsBeforeNode.
              * khtml/xml/dom_selection.cpp:
              (DOM::Selection::Selection): Added constructor that takes two CaretPosition objects.
              (DOM::Selection::setModifyBias): Added. Helper function.
              (DOM::Selection::modifyExtendingRightForward): Don't set modify bias, since that's now the caller's
              responsibility. Reimplement WORD and LINE in terms of new CaretPosition functions. Implement PARAGRAPH
              and change PARAGRAPH_BOUNDARY to use CaretPosition function by its new name.
              (DOM::Selection::modifyMovingRightForward): Ditto.
              (DOM::Selection::modifyExtendingLeftBackward): Ditto.
              (DOM::Selection::modifyMovingLeftBackward): Ditto.
              (DOM::Selection::modify): Call setModifyBias, and use a switch statement instead of if.
              (DOM::caretY): Added. Helper for the new modify function that implements moving a pixel distance,
              used by pageDown: and friends.
              (DOM::Selection::modify): Added.
              (DOM::Selection::toRange): Use RangeImpl::compareBoundaryPoints instead of nodeIsBeforeNode.
              (DOM::Selection::caretRect): Added. Replaces getRepaintRect, but does not add slop.
              (DOM::Selection::caretRepaintRect): Added. Replaces getRepaintRect; still adds slop.
              (DOM::Selection::needsCaretRepaint): Call caretRepaintRect.
              (DOM::Selection::validate): Use RangeImpl::compareBoundaryPoints instead of nodeIsBeforeNode.
              Reimplement WORD to use new CaretPosition functions; this fixes the double-clicking problems.
              Change paragraph calls to use new names.
      
              * ForwardingHeaders/dom/dom_position.h: Removed. This was in the wrong location.
              * khtml/editing/htmlediting.cpp: Fixed include that said "dom/dom_position.h".
              * khtml/editing/htmlediting_impl.cpp: Fixed include that said "dom/dom_position.h".
              (khtml::TypingCommandImpl::markMisspellingsAfterTyping): Rewrote this to use the new CaretPosition
              functions instead of the old Position functions.
      
              * khtml/misc/helper.h: Added const to character pointer parameter. Also put invertedColor inside
              an !APPLE_CHANGES since it doesn't do us any good.
              * khtml/misc/helper.cpp:
              (khtml::findWordBoundary): Added const to character pointer parameter.
              (khtml::nextWordFromIndex): Ditto.
      
              * kwq/KWQTextUtilities.h: Change parameters to const.
              * kwq/KWQTextUtilities.cpp: (KWQFindWordBoundary): Change parameter to const.
              * kwq/KWQTextUtilities.mm: (KWQFindNextWordFromIndex): Change parameter to const.
      
              * khtml/css/cssstyleselector.cpp: Disable code that uses invertedColor when APPLE_CHANGES, since it
              won't work for us.
      
              * khtml/rendering/render_canvas.cpp: (RenderCanvas::setSelection): Added checks for selection end
              so we can set the selection end to nodes that are not leaf nodes and it will still work. Also took
              out bogus firstChild/lastChild loops for the same reason.
      
              * kwq/KWQKHTMLPart.h: Add "start before selection" flag to advanceToNextMisspelling.
              Needed to fix bug with spell checking.
              * kwq/KWQKHTMLPart.mm:
              (KWQKHTMLPart::findString): Changed to use CaretPosition.
              (KWQKHTMLPart::advanceToNextMisspelling): Added code to handle "start before selection" flag
              and changed to use CaretPosition and new helper functions.
              (KWQKHTMLPart::markMisspellingsInSelection): More changes to use CaretPosition.
              (KWQKHTMLPart::updateSpellChecking): Ditto.
      
              * kwq/WebCoreBridge.h: Replaced WebSelectByDocument with WebSelectToDocumentBoundary.
              Added advanceToNextMisspellingStartingJustBeforeSelection,
              rangeByAlteringCurrentSelection:verticalDistance:, and
              alterCurrentSelection:verticalDistance:.
      
              * kwq/WebCoreBridge.mm:
              (-[WebCoreBridge advanceToNextMisspellingStartingJustBeforeSelection]): Added.
              (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Added case for selecting by
              paragraph to save X position.
              (-[WebCoreBridge rangeByAlteringCurrentSelection:verticalDistance:]): Added.
              (-[WebCoreBridge alterCurrentSelection:verticalDistance:]): Added.
              (-[WebCoreBridge ensureCaretVisible]): Call caretRect instead of getRepaintRect.
      
      WebKit:
      
              Reviewed by Ken.
      
              - fixed <rdar://problem/3655360> REGRESSION (Mail): Ctrl-V emacs key binding, -pageDown: method, unimplemented (and pageUp, and selection-modifying versions)
              - fixed <rdar://problem/3792138> REGRESSION (Mail): Spell checker doesn't check current selected word
      
              * WebView.subproj/WebFrameViewInternal.h: Moved WebFrameViewPrivate inside the WebFrameView.m file.
              Removed a bunch of methods that don't need to be seen in other files, and added _verticalPageScrollDistance.
              * WebView.subproj/WebFrameViewPrivate.h: Removed. Renamed to WebFrameViewInternal.h.
              * WebView.subproj/WebFrameView.m:
              (-[WebFrameView _verticalKeyboardScrollDistance]): Move in the file because of internal vs. private.
              (-[WebFrameView _shouldDrawBorder]): Ditto.
              (-[WebFrameView _tile]): Ditto.
              (-[WebFrameView _verticalPageScrollDistance]): Added. Separate method so it can be called
              by the code to implement pageDown:.
              (-[WebFrameView _drawBorder]): Move in the file because of internal vs. private.
              (-[WebFrameView _goBack]): Ditto.
              (-[WebFrameView _goForward]): Ditto.
              (-[WebFrameView _scrollVerticallyBy:]): Ditto.
              (-[WebFrameView _scrollHorizontallyBy:]): Ditto.
              (-[WebFrameView _horizontalKeyboardScrollDistance]): Ditto.
              (-[WebFrameView _horizontalPageScrollDistance]): Added. Separate method for consistency with
              vertical method above.
              (-[WebFrameView _pageVertically:]): Moved and changed to use _verticalPageScrollDistance.
              (-[WebFrameView _pageHorizontally:]): Moved and changed to use _horizontalPageScrollDistance.
              (-[WebFrameView _scrollLineVertically:]): Move in the file because of internal vs. private.
              (-[WebFrameView _scrollLineHorizontally:]): Ditto.
              (-[WebFrameView scrollPageUp:]): Ditto.
              (-[WebFrameView scrollPageDown:]): Ditto.
              (-[WebFrameView scrollLineUp:]): Ditto.
              (-[WebFrameView scrollLineDown:]): Ditto.
              (-[WebFrameView _firstResponderIsControl]): Ditto.
              (-[WebFrameView keyDown:]): Changed to eliminate _pageLeft, _lineLeft, _pageRight, and _lineRight.
      
              * WebView.subproj/WebDataSource.m: Use WebFrameView.h instead of WebFrameViewPrivate.h.
      
              * WebView.subproj/WebHTMLView.m:
              (-[WebHTMLView _alterCurrentSelection:verticalDistance:]): Added.
              (-[WebHTMLView moveToBeginningOfDocument:]): Use WebSelectToDocumentBoundary.
              (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]): Ditto.
              (-[WebHTMLView moveToEndOfDocument:]): Ditto.
              (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]): Ditto.
              (-[WebHTMLView moveParagraphBackwardAndModifySelection:]): Added.
              (-[WebHTMLView moveParagraphForwardAndModifySelection:]): Added.
              (-[WebHTMLView pageUp:]): Added.
              (-[WebHTMLView pageDown:]): Added.
              (-[WebHTMLView pageUpAndModifySelection:]): Added.
              (-[WebHTMLView pageDownAndModifySelection:]): Added.
              (-[WebHTMLView showGuessPanel:]): Changed to call advanceToNextMisspellingStartingJustBeforeSelection.
              This fixes the problem with spell checking.
      
              * WebView.subproj/WebImageView.m:
              (-[WebImageView webView]): Changed to use _web_parentWebView.
              (-[WebImageView menuForEvent:]): Changed to use [self webView].
              (-[WebImageView mouseDown:]): Ditto.
              (-[WebImageView mouseDragged:]): Ditto.
              (-[WebImageView draggedImage:endedAt:operation:]): Ditto.
      
              * WebView.subproj/WebTextView.m:
              (-[WebTextView _textSizeMultiplierFromWebView]): Changed to use _web_parentWebView.
              (-[WebTextView menuForEvent:]): Ditto.
              (-[WebTextView drawPageBorderWithSize:]): Ditto.
              (-[WebTextView knowsPageRange:]): Ditto.
      
              * Plugins.subproj/WebPluginDatabase.m: Updated filename of WebFrameViewInternal.h.
              * WebCoreSupport.subproj/WebBridge.m: Ditto.
              * WebKit.pbproj/project.pbxproj: Ditto.
              * WebView.subproj/WebFrame.m: Ditto.
              * WebView.subproj/WebView.m: Ditto.
              * Misc.subproj/WebNSViewExtras.m: Ditto.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@7608 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ce3eaa71
  14. 11 Aug, 2004 2 commits
    • kocienda's avatar
      Reviewed by me · 1c68cc6c
      kocienda authored
              Missed adding this file before.
      
              * kwq/KWQTextUtilities.mm: Added.
              (KWQFindNextWordFromIndex):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@7232 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1c68cc6c
    • kocienda's avatar
      Reviewed by Darin · 222f6aae
      kocienda authored
              Fix for this bug:
              <rdar://problem/3675812> Moving a word at a time does not use the correct conception of "word"
      
              I have implemented versions of previousWordPosition and nextWordPosition that are now
              different than previousWordBoundary and nextWordBoundary. The behavior of the new
              functions attempts to match what Cocoa does as closely as it can. Let the bug filing begin!
      
              * WebCore.pbproj/project.pbxproj: Added KWQTextUtilities.mm
              * khtml/misc/helper.cpp:
              (khtml::nextWordFromIndex): Glue to call through to KWQFindNextWordFromIndex.
              * khtml/misc/helper.h: Declare the function above.
              * khtml/misc/khtml_text_operations.cpp: Added SimplifiedBackwardsTextIterator class.
              (khtml::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): New
              (khtml::SimplifiedBackwardsTextIterator::advance): Ditto.
              (khtml::SimplifiedBackwardsTextIterator::handleTextNode): Ditto.
              (khtml::SimplifiedBackwardsTextIterator::handleReplacedElement): Ditto.
              (khtml::SimplifiedBackwardsTextIterator::handleNonTextNode): Ditto.
              (khtml::SimplifiedBackwardsTextIterator::exitNode): Ditto.
              (khtml::SimplifiedBackwardsTextIterator::emitCharacter): Ditto.
              (khtml::SimplifiedBackwardsTextIterator::range): Ditto.
              * khtml/misc/khtml_text_operations.h:
              (khtml::SimplifiedBackwardsTextIterator::atEnd): Ditto.
              (khtml::SimplifiedBackwardsTextIterator::length): Ditto.
              (khtml::SimplifiedBackwardsTextIterator::characters): Ditto.
              * khtml/xml/dom_position.cpp:
              (DOM::Position::previousWordBoundary): Updated to gather appropriate text and call through to
              AppKit to perform the same calculations NSText uses.
              (DOM::Position::nextWordBoundary): Ditto.
              (DOM::Position::previousWordPosition): Unrelated change to fix case where the function could get "stuck".
              (DOM::Position::nextWordPosition): Ditto
              (DOM::Position::equivalentDeepPosition): Changed to look backwards if the position's offset is equal
              to the number of child nodes it has. This handles more cases correctly, like when the position is
              gives as one beyond the end of a document element's last child.
              * kwq/KWQTextUtilities.h: Declared KWQFindNextWordFromIndex.
              * kwq/KWQTextUtilities.mm: Added.
              (KWQFindNextWordFromIndex): New function.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@7230 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      222f6aae
  15. 20 Apr, 2004 1 commit
    • kocienda's avatar
      WebCore: · 7784bef2
      kocienda authored
              Reviewed by Hyatt
      
              * WebCore.pbproj/project.pbxproj:
              * khtml/khtml_part.cpp:
              (KHTMLPart::handleMousePressEventDoubleClick): Improved name of expandToElement. Now is expandUsingGranularity.
              (KHTMLPart::handleMousePressEventTripleClick): Ditto.
              (KHTMLPart::handleMouseMoveEventSelection): Ditto.
              * khtml/khtml_selection.cpp:
              (KHTMLSelection::modify): Added support for modifying and extending selection right and left by word.
              Also added support for extending selection up and down.
              (KHTMLSelection::expandUsingGranularity): New name for expandToElement.
              (KHTMLSelection::xPosForVerticalArrowNavigation): Made this function handle cases where we know we
              want to use a particular position for calculating the right x position. We need this to handle
              extending selection up and down, and for setting the caret to the right place when moving up
              and down when a range is already selected.
              (KHTMLSelection::validate): Name tweak. expandTo variable now granularity.
              * khtml/khtml_selection.h: Make declaration changes for changes to cpp file.
              * khtml/misc/helper.cpp:
              (khtml::findWordBoundary): Added this hook for KDE to do their version of KWQFindWordBoundary
              * khtml/misc/helper.h:
              * khtml/rendering/render_block.cpp:
              (khtml::RenderBlock::positionForCoordinates): Factor out closest box finder code to its own function
              * khtml/rendering/render_line.cpp:
              (InlineFlowBox::closestChildForXPos): New function. This is the factored code that was taken out of
              render_block.cpp.
              (InlineBox::closestLeafChildForXPos): Ditto.
              * khtml/rendering/render_line.h: Ditto.
              * khtml/rendering/render_replaced.cpp:
              (RenderReplaced::positionForCoordinates): I think I am starting to get how the coordinate transforms work.
              Made some fixups based on this greater sense of enlightenment.
              * khtml/rendering/render_text.cpp:
              (RenderText::positionForCoordinates): Ditto. Fix lastTextBox/firstTextBox code mistake.
              * khtml/xml/dom_position.cpp:
              (DOMPosition::previousWordPosition): Added.
              (DOMPosition::nextWordPosition): Added.
              (DOMPosition::previousLinePosition): No longer use nodeAtPoint. Use new closestLeafChildForXPos instead.
              (DOMPosition::nextLinePosition): Ditto.
              (DOMPosition::inLastEditableInContainingEditableBlock):
              * khtml/xml/dom_position.h:
              * kwq/KWQTextUtilities.cpp: Added.
              (KWQFindWordBoundary): Factored out code that was in a static function in khtml_selection.cpp so
              that DOMPosition can use it too.
              * kwq/KWQTextUtilities.h: Added.
      
      WebKit:
      
              Reviewed by Hyatt
      
               Added implementations for these methods.
      
              * WebView.subproj/WebView.m:
              (-[WebView moveUpAndModifySelection:]):
              (-[WebView moveWordLeft:]):
              (-[WebView moveWordLeftAndModifySelection:]):
              (-[WebView moveWordRight:]):
              (-[WebView moveWordRightAndModifySelection:]):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@6431 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7784bef2
  16. 08 Feb, 2004 1 commit
    • darin's avatar
      WebCore: · 30cd2339
      darin authored
              Reviewed by Dave.
      
              - fixed things seen in the profile, for a total speedup of 4% on cvs-base
              - fixed some layout regressions from my last speedup due to text measurement inconsistencies
      
              * WebCorePrefix.h: Add a workaround for a bug in our system headers that prevents the <ctype.h>
              macros from working right in C++ code that uses the <cctype> header.
      
              * khtml/css/cssstyleselector.cpp:
              (khtml::checkPseudoState): Use prepend instead of operator + here. Will probably be obviated if
              someone fixes the checkPseudoState problem.
              (khtml::colorForCSSValue): Get rid of all the code that uses QPalette; it wasn't doing any good
              in Safari. Instead, hardcode the UI colors.
      
              * kwq/KWQChar.mm:
              (QChar::isDigitNonASCII): Non-inline part. The ASCII case is handled with an inline now.
              (QChar::isLetterNonASCII): Ditto.
              (QChar::isNumberNonASCII): Ditto.
              (QChar::isLetterOrNumberNonASCII): Ditto.
              (QChar::lowerNonASCII): Ditto.
              (QChar::upperNonASCII): Ditto.
              (QChar::digitValueNonASCII): Ditto.
      
              * kwq/KWQColorGroup.mm: Put all roles base inside #if, since we don't need them, and copying
              the color group and palette was making things slow.
      
              * kwq/KWQComboBox.h: Remove KWQComboBoxAdapter, not needed any more.
              * kwq/KWQComboBox.mm:
              (QComboBox::QComboBox): Remove KWQComboBoxAdapter, not needed any more.
              (QComboBox::~QComboBox): Ditto.
              (QComboBox::sizeHint): Turn off rounding; we use that in web text, but not in widgets.
              (-[KWQPopUpButton action:]): Moved the action method here.
      
              * kwq/KWQLineEdit.mm: (QLineEdit::sizeForCharacterWidth): Turn off rounding. We use it in web
              page text, but not in widgets.
              * kwq/KWQListBox.mm:
              (QListBox::sizeForNumberOfLines): Ditto.
              (-[KWQTableView drawRow:clipRect:]): Ditto.
      
              * kwq/KWQKURL.mm:
              (KURL::KURL): Added code to put the "file:" in front of a path without making a QString.
              (hasSlashDotOrDotDot): Added. Faster than two calls to strstr.
              (matchLetter): Added. Faster than tolower calls on each letter.
              (KURL::parse): Changed to use matchLetter and hasSlashDotOrDotDot.
      
              * kwq/KWQPalette.h: Remove all roles except base, and all groups except active, since we don't
              need them, and copying the color group and palette was making things slow.
              * kwq/KWQPalette.mm: Ditto.
      
              * kwq/KWQRegExp.mm: (QRegExp::match): Fixed logic so we don't create and destroy a QCString
              in the fast case. Also avoid UTF-8/UTF-16 offset mapping.
      
              * kwq/KWQString.h:
              (QChar::isDigit): Add inline section for ASCII.
              (QChar::isLetter): Ditto.
              (QChar::isNumber): Ditto.
              (QChar::isLetterOrNumber): Ditto.
              (QChar::digitValue): Ditto.
              (QChar::lower): Ditto.
              (QChar::upper): Ditto.
              (QString::utf8): Add a new version that returns the length; used by QRegExp.
              (QString::operator+=): Call a new append function.
              * kwq/KWQString.mm:
              (ucstrcmp): Made this function inline.
              (equal): Added, replacing various strcmp functions.
              (equalCaseInsensitive): Ditto.
              (ok_in_base): Changed to use <ctype.h> isdigit and isalpha instead of QChar functions.
              (QString::detachInternal): Moved up so it will be inlined.
              (QString::~QString): Streamlined a little.
              (QString::utf8): Changed to return the length.
              (QString::find): Use unicode() instead of cell() in various places. Also refined a faster
              version of the one that takes a char *.
              (QString::contains): Changed all of the overloads to have structure that's more similar,
              and made them slightly faster too.
              (QString::isAllLatin1): Added.
              (QString::copyLatin1): Added. Lets you get the string as a char * buffer without changing
              the string itself into that format.
              (QString::toLong): Changed to use <ctype.h> isdigit instead of QChar function.
              (QString::toULong): Ditto.
              (QString::setUnicode): Call the new detachAndDiscardCharacters; not implemented yet.
              (QString::setLatin1): Call the new detachAndDiscardCharacters; not implemented yet.
              (QString::sprintf): Call the new detachAndDiscardCharacters; not implemented yet.
              (QString::insert): Remove one memmove call for the case that appends at the end.
              (QString::detach): Change code to use the internal data if we can; saves at destructor time.
              (QString::detachAndDiscardCharacters): Added. Placeholder for now that just calls detach().
              (QString::setLength): Optimize the setLength(0) case.
              (QString::fill): Call the new detachAndDiscardCharacters; not implemented yet.
              (QString::append): Renamed from operator+=, which now simply calls append().
              (QString::reserve): Added. Useful when building up a string, like in QTextCodec.
      
              * WebCore-tests.exp: Added new function names for QChar.
              * WebCore-combined.exp: Updated.
      
              * kwq/KWQTextCodec.mm:
              (KWQTextDecoder::convertLatin1): Added. Since this is the most common encoding, and very
              easy to decode (built into QString, in fact), best to do it as a special case, not with TEC.
              (KWQTextDecoder::convertUTF16): Added a reserve() call for better performance and made the
              stack buffer larger.
              (KWQTextDecoder::convertUsingTEC): Added a reserve() call for better performance and made the
              stack buffer larger.
              (KWQTextDecoder::convert): Added a switch statement and convertLatin1 case.
      
              * kwq/KWQView.h: Removed the KWQView class.
              * kwq/KWQView.mm: Removed.
              * WebCore.pbproj/project.pbxproj: Removed KWQView.mm.
      
              * kwq/KWQWidget.h: Changed name of QWidgetPrivate to KWQWidgetPrivate.
              * kwq/KWQWidget.mm:
              (QWidget::QWidget): Got rid of code that makes a KWQView when no view is passed in. We were
              creating and destroying extra views because of this.
              (QWidget::setFrameGeometry): Only call getOuterView() once, not three times. Also, don't do
              any work at all if the frame is already correct.
              * khtml/khtmlview.cpp: (KHTMLView::init): Removed a call that will hit an assertion due to the
              way a new KHTMLView does not yet have an NSView.
      
              * kwq/WebCoreTextRenderer.h: Broke applyRounding into applyRunRounding and applyWordRounding.
              * kwq/WebCoreTextRendererFactory.m: (WebCoreInitializeEmptyTextStyle): Initialize both rounding
              flags on.
      
      WebKit:
      
              Reviewed by Dave.
      
              - fixed things seen in the profile, for a total speedup of 4% on cvs-base
              - fixed some layout regressions from my last speedup due to text measurement inconsistencies by adding
                a flag to control whether word rounding is done or not
              - fixed text measurement to be used with AppKit to match AppKit again, as it did at some point in the past
      
              * WebCoreSupport.subproj/WebTextRenderer.h: Remove some unused fields, and added a field to say whether we
              treat this font as fixed pitch.
              * WebCoreSupport.subproj/WebTextRenderer.m:
              (getUncachedWidth): Remove space width hack from this level. There was already a width hack up at the higher
              level for space itself, so there's not a significant speed benefit, and the higher level can make a more
              intelligent choice based on the current rounding setting since it's not cached.
              (-[WebTextRenderer _computeWidthForSpace]): Don't store so many widths; just the adjusted width we will
              actually use.
              (widthForNextCharacter): Use two different rules for when to adjust space widths, based on whether this is
              a fixed pitch font or not. Also, don't do any adjusting of space widths if applyWordRounding is false.
      
              * Misc.subproj/WebKitNSStringExtras.m:
              (-[NSString _web_drawAtPoint:font:textColor:]): Turn off rounding, so we get the kind of spacing AppKit would normally give.
              (-[NSString _web_widthWithFont:]): Ditto.
              * Misc.subproj/WebStringTruncator.m: (stringWidth): Ditto.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@6052 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      30cd2339
  17. 13 Feb, 2003 1 commit
    • trey's avatar
      WebBrowser: · 1e927d82
      trey authored
      	First checkin for working forms autocomplete.
      
      	The feature is disabled by default, but can be turned on (persistently) via
      	the debug menu.  Note that your data is not encrypted on disk yet.
      
      	Aside from the plain old implementation work, there is some refactoring done
      	with CompletionController to allow URLCompletionController and FormCompletionController
      	to share more code.
      
      	There is also the addition of the libCdsaCrypt, which is not yet used, but will be
      	soon for encyption.  It's a thin layer over some Security API's to make them usable
      	for simple applications, from developer.apple.com.
      
              Reviewed by Chris
      
              * CompletionController.h:  Added _ignoreTextDidChange.  Added new methods to be
      	implemented by subclasses to facilitate factoring.
              * CompletionController.m:
              (-[CompletionController _sendMessageIgnoringTextChanges:]):
      	New wrapper to send a message with _ignoreTextDidChange temporarily set.
      	This prevents recursion into our completion code.
              (-[CompletionController reflectSelectedRow]):  Impl factored up from
      	URLCompCtrl, calls new methods to get into from subclasses.
              (-[CompletionController reflectFinalSelectedRow]): Ditto.
              (-[CompletionController executeQuery]):  Comment fix.
              (-[CompletionController completeString:]):  Use _sendMessageIgnoringTextChanges
              (-[CompletionController queryString]): New method to be overridden.
              (-[CompletionController intermediateMatchingStringAtIndex:]): Ditto.
              (-[CompletionController finalMatchingStringAtIndex:]):  Ditto.
              (-[CompletionController controlTextDidChange:]):  Obey _ignoreTextDidChange flag.
              (-[CompletionController control:textView:doCommandBySelector:]):
      	Use _sendMessageIgnoringTextChanges.
              (-[CompletionController goToItemAtRow:]):  Ditto
              (-[CompletionController tableViewSelectionDidChange:]):  Ditto
              (-[CompletionController tableView:objectValueForTableColumn:row:]):
      	use new overridable method.
              * Debug/DebugUtilities.m:
              (-[DebugUtilities createDebugMenu]):  Add item for disabling feature.
              (-[BrowserDocument toggleBackForwardEnabled:]):
              (-[BrowserDocument toggleFormsAutoComplete:]):
              * Defaults.plist:  New key.
              * FormCompletionController.h:
              * FormCompletionController.m:   All new code.
              (completionDBPath):  Get db path.
              (domainFromFrame):   Utility routine.
              (+[FormCompletionController formCompletionEnabled]):
      	Return pref value.
              (+[FormCompletionController setFormCompletionEnabled:]):
      	Set pref value.
              (-[FormCompletionController initWithSourceField:frame:]):
      	Setup state for doing completion.
              (-[FormCompletionController dealloc]):
              (+[FormCompletionController _loadCompletionDB]):  Load db.
              (+[FormCompletionController _saveCompletionDB:]):  Save db.
              (+[FormCompletionController _saveCompletionDBSoon]):  Queue up a db save.
              (+[FormCompletionController _appWillTerminate:]):  Save db.
              (+[FormCompletionController clearFormAutoCompleteDatabase]):  Nuke db.
              (+[FormCompletionController frame:willSubmitFormWithValues:]):
      	Save new form values in db.
              (-[FormCompletionController executeQuery]):  Match string to db.
              * PreferenceKeys.h:  New key.
              * URLCompletionController.m:
              (-[URLCompletionController executeQuery]):  Comment.
              (-[URLCompletionController intermediateMatchingStringAtIndex:]):
      	Factored code from old impl mostly moved to super class.
              (-[URLCompletionController finalMatchingStringAtIndex:]):
      	Factored code from old impl mostly moved to super class.
              * WebBrowser.pbproj/project.pbxproj:  Add new security sample code.
              * libCdsaCrypt.h: Added.
              * libCdsaCrypt.m: Added.
      
      
      WebKit:
      
      	First checkin for working forms autocomplete.
      
      	This level mostly just has glue to go from app to WC through the bridge.
      	WebHTMLReo exports some new SPI to get the element of a view, and then to get
      	some HTML-level properties of that element.
      
              Reviewed by Chris
      
              * Bookmarks.subproj/WebBookmarkGroup.m:
              (-[WebBookmarkGroup _saveBookmarkGroupGuts]):  Don't dump entire bookmark
      	dict in the log.
              * WebKit.exp:  New class used by app, objc_class_name_WebHTMLRepresentation.
              * WebView.subproj/WebHTMLRepresentation.h:
              * WebView.subproj/WebHTMLRepresentation.m:
              (-[WebHTMLRepresentation elementForView:]):  New SPI.
              (-[WebHTMLRepresentation elementDoesAutoComplete:]):  New SPI.
              (-[WebHTMLRepresentation elementIsInLoginForm:]):  New SPI.
      
      
      WebCore:
      
      	First checkin for working forms autocomplete.
      
      	This level has some new support routines.
      
              Reviewed by Chris
      
              * khtml/html/html_formimpl.cpp:
              (HTMLFormElementImpl::isLoginForm):  New, returns if a form is for login.
              * khtml/html/html_formimpl.h:
              * kwq/KWQDOMNode.cpp:
              (idFromNode):  New, helper routine to allow us to use the id() function from ObjC.
              * kwq/KWQDOMNode.h:
              * kwq/KWQTextArea.h:  Adopt KWQWidgetHolder protocol.
              * kwq/KWQTextArea.mm:
              (-[KWQTextArea widget]):    Adopt KWQWidgetHolder protocol.
              (-[KWQTextAreaTextView widget]):    Adopt KWQWidgetHolder protocol.
              * kwq/KWQTextField.h:    Adopt KWQWidgetHolder protocol.
              * kwq/KWQTextField.mm:
              (-[KWQTextField widget]):    Adopt KWQWidgetHolder protocol.
              (-[KWQSecureTextField widget]):    Adopt KWQWidgetHolder protocol.
              * kwq/KWQView.h:  Define KWQWidgetHolder protocol
              * kwq/KWQView.mm:
              (-[KWQView widget]): Adopt KWQWidgetHolder protocol.
              * kwq/WebCoreBridge.h:
              * kwq/WebCoreBridge.mm:
              (-[WebCoreBridge elementForView:]):   New method.
              (inputElementFromDOMElement):  Common code for next two methods.
              (-[WebCoreBridge elementIsInLoginForm:]):   New method.
              (-[WebCoreBridge elementDoesAutoComplete:]):   New method.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3647 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1e927d82
  18. 21 Jan, 2003 1 commit
  19. 19 Aug, 2002 1 commit
    • darin's avatar
      First cut at implementation of "tab to change focus": Lots of loose ends, but it's · 8a5da4fd
      darin authored
      	going well.
      
              * kwq/KWQNSTextField.h: Change initWithWidget to initWithQLineEdit.
              * kwq/KWQNSTextField.mm:
              (-[KWQNSTextField initWithQLineEdit:]): Keep a QLineEdit pointer so we don't cast later.
              (-[KWQNSTextField dealloc]): Sets widget to 0 to make nextKeyView and previousKeyView
      	return nil while deallocating.
              (-[KWQNSTextField setPasswordMode:]): Pass widget when creating secure text field so it
      	can handle the next/previous links properly.
              (-[KWQNSTextField nextKeyView]): Added. Calls KWQKHTMLPartImpl::nextKeyView.
              (-[KWQNSTextField previousKeyView]): Added. Calls KWQKHTMLPartImpl::nextKeyView.
              (-[KWQTextFieldCell isOpaque]): Added. Returns NO; fixes focus rectangle updating.
              (-[KWQSecureTextField initWithQWidget:]): Added.
              (-[KWQSecureTextField dealloc]): Added. Sets widget to 0 to make nextKeyView and
      	previousKeyView return nil while deallocating.
              (-[KWQSecureTextField nextKeyView]): Added. Calls KWQKHTMLPartImpl::nextKeyView.
              (-[KWQSecureTextField previousKeyView]): Added. Calls KWQKHTMLPartImpl::nextKeyView.
      
              * kwq/KWQKHTMLPartImpl.h: Add KWQSelectionDirection. Change name of getBridge() to
      	bridge(), getDocument() to document(), getRenderer() to renderer(), getBridgeForFrameName()
      	to bridgeForFrameName(). Also added nextKeyView family of member functions.
      
              * kwq/KWQKHTMLPartImpl.mm:
              (KWQKHTMLPartImpl::nextKeyViewInFrame): Added.
              (KWQKHTMLPartImpl::nextKeyView): Added.
      
              * kwq/qt/qwidget.h: Remove unneeded parameters from constructor. Also added a
      	constructor that takes an NSView.
              * kwq/KWQWidget.mm:
              (QWidget::QWidget): Don't store focus policy (it was uninitialized before).
              (QWidget::focusPolicy): Return TabFocus for any widget that has a view with a first
      	responder, NoFocus for any other.
              (QWidget::setFocusPolicy): Do nothing.
              (QWidget::setFocusProxy): Do nothing.
      
              * kwq/qt/qobject.h: Store the event filter object when installEventFilter is called.
      	This is used to find the RenderWidget for a QWidget by the new tabbing code.
              * kwq/KWQObject.mm: Removed event-filter functions. Two are now inlines, one deleted.
      
      	Other changes related to KWQKHTMLPartImpl improvements.
      
              * kwq/KWQKHTMLPartBrowserExtension.mm:
              * kwq/KWQKHTMLPartImpl.mm:
              * kwq/KWQLoaderImpl.mm:
              * kwq/WebCoreBridge.mm:
      	Update for KWQKHTMLPartImpl member name changes.
      
      	Various improvements for other widget implementations.
      
              * kwq/qt/qbutton.h:
              * kwq/KWQButton.mm: Stop using KWQNSButton. Instead just use a button adapter
      	object, and a plain old NSButton.
              (QButton::QButton): Put all the NSButton setup in here.
              (QButton::~QButton): Release the adapter here.
              (QButton::clicked): Move this in here because it's virtual now so that QCheckBox
      	can override it.
              (-[KWQButtonAdapter initWithQButton:]): Added.
              (-[KWQButtonAdapter action:]): Just call clicked().
      
              * kwq/qt/qpushbutton.h: Don't pass unused parent pointer to QButton constructor.
              * kwq/KWQPushButton.mm: (QPushButton::QPushButton): Don't pass unused parent pointer to
      	QButton contructor.
      
              * kwq/qt/qcheckbox.h:
              * kwq/KWQCheckBox.mm: Just use NSButton, not KWQNSButton.
              (QCheckBox::clicked): Move the state-changed logic here; used to be in KWQNSButton.
      
              * kwq/KWQRadioButton.mm:
              (QRadioButton::QRadioButton): Don't pass unused parent pointer to
      	QButton contructor.
      
              * kwq/qt/qcombobox.h:
              * kwq/KWQComboBox.mm:
              (QComboBox::QComboBox): Removed extra constructor. Make a plain NSPopUpButton,
      	and use an adapter object, rather than having a KWQNSComboBox.
              (QComboBox::~QComboBox): Release the adapter.
              (QComboBox::insertItem): New implementation. No need to keep an items array around,
      	because the menu does that just fine.
              (QComboBox::clear): Remove the items from the pop-up button directly.
              (-[KWQComboBoxAdapter initWithQComboBox:]): Added.
              (-[KWQComboBoxAdapter action:]): Just call activated().
      
              * kwq/kdeui/kcombobox.h: Empty this out and make it use only inlines.
      
              * khtml/rendering/render_form.cpp: (RenderSelect::updateFromElement):
      	Remove the setSize()/doneLoading() optimization for QComboBox because the new
      	simpler QComboBox implementation obviates the speed problem this was originally
      	intended to fix.
      
              * kwq/qt/qlineedit.h:
              * kwq/KWQLineEdit.mm: (QLineEdit::QLineEdit): Call initWithQLineEdit instead of
      	initWithWidget. Also don't take an unused parent pointer parameter.
      
              * kwq/kdeui/klineedit.h: Empty this out and make it use only inlines.
      
              * kwq/qt/qframe.h: Remove unused parent pointer from constructor.
              * kwq/KWQFrame.mm: Remove unneeded constructor.
              * kwq/KWQHBox.mm: (QHBox::QHBox): Don't pass unused parent pointer to QFrame.
              * kwq/KWQLabel.mm: (QLabel::QLabel): Don't pass unused parent pointer to QFrame.
              * kwq/qt/qscrollview.h: Make constructor inline.
              * kwq/KWQScrollView.mm: Remove unneeded constructor.
              * kwq/KWQWindowWidget.h: Remove unneeded constructor.
      
              * WebCore.pbproj/project.pbxproj: Remove KWQKComboBox.mm, KWQKLineEdit.mm,
      	and KWQScrollBar.h.
              * kwq/KWQKComboBox.mm: Removed.
              * kwq/KWQKLineEdit.mm: Removed.
              * kwq/KWQScrollBar.h: Removed. Unused.
      
              * kwq/KWQTextArea.h: Change initWithWidget to initWithQTextEdit.
              * kwq/KWQTextArea.mm: (-[KWQTextArea initWithQTextEdit:]): Changed name.
              * kwq/KWQTextEdit.mm: (QTextEdit::QTextEdit): Call initWithQTextEdit instead of
      	initWithWidget.
      
              * kwq/KWQView.h: Eliminated KWQNSButton, KWQNSComboBox, and KWQNSScrollView.
              * kwq/KWQView.mm: Ditto.
      
      	Housekeeping.
      
              * force-clean-timestamp: Yes, again.
      
              * khtml/khtml_part.h: Rearrange APPLE_CHANGES a bit.
      
              * kwq/qt/qvaluelist.h: Added -- as well as ++ for the const iterator, and fixed some
      	minor const issues. At one point I needed this for the focus changes, but not any more.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1865 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8a5da4fd
  20. 15 Aug, 2002 1 commit
    • darin's avatar
      - fixed 3017376 -- button height is too tall · 9f156db6
      darin authored
      	Reworked how widget sizing and positioning is done for a few of the most important
      	widget types.
      
              * khtml/rendering/render_form.h: Remove more of the performAction hackery.
              * khtml/rendering/render_form.cpp:
              (RenderCheckBox::calcMinMaxWidth): Get size from widget.
              (RenderRadioButton::calcMinMaxWidth): Get size from widget.
              (RenderSubmitButton::RenderSubmitButton): Remove old unneeded APPLE_CHANGES.
              (RenderSubmitButton::baselinePosition): Put the bottom of the button on the
      	baseline without any magic numbers.
              (RenderLineEdit::baselinePosition): Put the bottom of the text field two pixels
      	below the baseline without any other magic numbers.
              (RenderLineEdit::calcMinMaxWidth): Get size from widget.
              (RenderSelect::baselinePosition): Put the bottom of the menu on the
      	baseline without any magic numbers. List box case is untouched for now.
      
              * kwq/qt/qbutton.h:
              * kwq/KWQButton.mm:
              (QButton::QButton): Move most of the setup into KWQNSButton.
              (QButton::sizeHint): Use cellSize, account for margins.
              (QButton::frameGeometry): Adjust for margins.
              (QButton::setFrameGeometry): Adjust for margins.
              * kwq/qt/qcheckbox.h:
              * kwq/KWQCheckBox.mm:
              (QCheckBox::QCheckBox): QButton takes care of most of the setup now.
              (QCheckBox::sizeHint): Added.
              (QCheckBox::frameGeometry): Adjust for margins.
              (QCheckBox::setFrameGeometry): Adjust for margins.
              * kwq/qt/qcombobox.h:
              * kwq/KWQComboBox.mm:
              (QComboBox::init): KWQNSComboBox takes care of most of the setup now.
              (QComboBox::sizeHint): Adjust for margins.
              (QComboBox::frameGeometry): Adjust for margins.
              (QComboBox::setFrameGeometry): Adjust for margins.
              * kwq/qt/qlineedit.h:
              * kwq/KWQLineEdit.mm:
              (QLineEdit::sizeForCharacterWidth): Added.
              (QLineEdit::frameGeometry): Adjust for margins.
              (QLineEdit::setFrameGeometry): Adjust for margins.
              * kwq/qt/qradiobutton.h:
              * kwq/KWQRadioButton.mm:
              (QRadioButton::QRadioButton): QButton takes care of most of the setup now.
              (QRadioButton::sizeHint): Added.
              (QRadioButton::frameGeometry): Adjust for margins.
              (QRadioButton::setFrameGeometry): Adjust for margins.
      
              * kwq/qt/qwidget.h:
              * kwq/KWQWidget.mm:
              (QWidget::setFrameGeometry): New name for internalSetGeometry, now public.
      
      	- fixed 3010695 -- Slashdot.org starts with password field focused, but shouldn't
      
      	Added KWQSecureTextField to work around the bug.
      
              * kwq/KWQNSTextField.h: Made formatter and other details private.
              * kwq/KWQNSTextField.mm:
              (+[KWQNSTextField initialize]): Set up custom cell class that works around focus border.
              (-[KWQNSTextField initWithFrame:]): Put the work in here, since this is NSView's designated
      	initializer.
              (-[KWQNSTextField initWithWidget:]): Now just calls [init] which calls [initWithFrame],
      	and then sets the widget.
              (-[KWQNSTextField action:]): Use the returnPressed signal instead of ACTION_TEXT_FIELD.
              (-[KWQNSTextField controlTextDidEndEditing:]): Use textChanged signal instead of
      	ACTION_TEXT_FIELD_END_EDITING.
              (-[KWQNSTextField dealloc]): Release the secureField (was a leak).
              (-[KWQNSTextField updateSecureFieldFrame]): Added. Used to keep secure field in the right
      	place.
              (-[KWQNSTextField setFrameSize:]): Added. Calls updateSecureFieldFrame.
              (-[KWQNSTextField setPasswordMode:]): Change all the details, but this does the same
      	thing it used to.
              (-[KWQNSTextField selectText:]): Only call selectText on one of the two field, since it
      	causes the field to grab focus and we don't want to do that twice.
              (-[KWQNSTextField setStringValue:]): Set the string value in both fields any time someone
      	gives us a new value.
              (-[KWQNSTextField setFont:]): Set the font in both fields any time someone gives us a new
      	font.
              (-[KWQTextFieldCell cellSizeForBounds:]): Add space for focus border.
              (-[KWQTextFieldCell drawWithFrame:inView:]): Inset by focus border.
              (-[KWQTextFieldCell editWithFrame:inView:editor:delegate:event:]): Inset by focus border.
              (-[KWQTextFieldCell selectWithFrame:inView:editor:delegate:start:length:]): Inset by focus border.
              (-[KWQSecureTextField selectText:]): Override to do nothing while in setFrameSize to work around
      	bug in AppKit.
              (-[KWQSecureTextField setFrameSize:]): Set flag to trigger selectText check.
      
      	- fixed 3025166 -- check boxes and radio buttons on google.com's preferences pages
      	are not "linked"
      
      	We were not emitting onClicked for check boxes.
      
              * kwq/KWQView.h: No need to pass frames any more. Default is empty.
              * kwq/KWQView.mm:
              (-[KWQView initWithFrame:]): Do most of the work in here.
              (-[KWQView initWithWidget:]): Just call [init] and set up widget.
              (-[KWQNSButton initWithFrame:]): Do most of the work in here. Remove the special
      	cell class, and always use a small control with the small system font.
              (-[KWQNSButton initWithWidget:]): Just call [init] and set up widget.
              (-[KWQNSButton action:]): Call the clicked() signal instead of ACTION_BUTTON_CLICKED.
              (-[KWQNSButton stateChanged:]): Call the stateChanged() signal instead of
      	ACTION_CHECKBOX_CLICKED.
              (-[KWQNSComboBox initWithFrame:]): Do most of the work in here.
              (-[KWQNSComboBox initWithWidget:]): Just call [init] and set up widget.
              (-[KWQNSScrollView initWithWidget:]): Just call [init] and set up widget.
      
      	- fixed 3025211 -- find person in Apple directory never displays person information
      
      	When I enabled the code to wait and not redirect until loads are complete, that
      	broke this case, because we didn't have enough hooked up to notice loads completing.
      	I hooked everything up and its working now.
      
              * khtml/khtml_part.h: Add started().
              * khtml/khtml_part.cpp:
              (KHTMLPart::restoreURL): Un-ifdef emission of started().
              (KHTMLPart::openURL): Un-ifdef emission of started().
              (KHTMLPart::end): Don't do an explicit call to slotFinishedParsing().
      	We actually hook up a signal for this now.
              (KHTMLPart::slotChildCompleted): Un-ifdef the rest of the code here.
      
              * khtml/xml/dom_docimpl.h:
              * khtml/xml/dom_docimpl.cpp: (DocumentImpl::DocumentImpl):
              * khtml/xml/xml_tokenizer.h:
      	Do the necessary setup so we can use KWQSignal for finishedParsing.
      
              * kwq/KWQKHTMLPartImpl.mm:
              (KHTMLPart::started): Added. Calls slotChildStarted on parent.
              (KHTMLPart::completed): Added slotParentCompleted calls.
      
              * kwq/qt/qobject.h: Add sender() and KWQObjectSenderScope.
              * kwq/KWQObject.mm:
              (KWQObjectSenderScope::KWQObjectSenderScope): Added. Sets sender() and saves the old value.
              (KWQObjectSenderScope::~KWQObjectSenderScope): Added. Resets sender().
      
              * kwq/KWQSignal.h:
              * kwq/KWQSlot.h:
              * kwq/KWQSignal.mm: (KWQSignal::call): Added overloads for calling signals with int and
      	QString parameters. Also set up sender() using KWQObjectSenderScope.
      
              * kwq/KWQSlot.mm: (KWQSlot::KWQSlot), (KWQSlot::call): Add support for one signal
      	(calls through to whatever is connected to that signal's slot) and six new slots.
      
              * kwq/KWQsignals.mm:
              (Tokenizer::Tokenizer): Construct the finishedParsing signal.
              (Tokenizer::finishedParsing): Emit the finishedParsing signal.
      
      	- fixed 3025170 -- right sides of borders placed incorrectly around table cells
      
      	There was some silly code that I just removed.
      
              * khtml/rendering/render_table.cpp:
              (RenderTable::addColInfo): Turn off the half-assed collapse borders stuff here.
      
      	- other changes
      
              * force-clean-timestamp: Big changes; full rebuild needed.
      
              * khtml/khtmlview.cpp: (KHTMLView::~KHTMLView): Make the code to kill
      	the timers be unconditional, just in case.
      
              * kwq/KWQCharsets.mm: (buildDictionaries): Remove UTF-16 special case since it's now
      	in the character sets table.
      
              * kwq/qt/qpoint.h:
              * kwq/KWQPoint.mm:
              (QPoint::QPoint): Converts from NSPoint.
              (QPoint::operator NSPoint): Converts to NSPoint.
              * kwq/qt/qrect.h:
              * kwq/KWQRect.mm:
              (QRect::QRect): Converts from NSRect.
              (QRect::isEmpty): Fix backwards logic.
              (QRect::operator NSRect): Converts to NSRect.
              * kwq/qt/qsize.h:
              * kwq/KWQSize.mm:
              (QSize::QSize): Converts from NSSize.
              (QSize::operator NSSize): Converts to NSSize.
      
              * kwq/qt/qpushbutton.h:
              * kwq/KWQPushButton.mm: Removed unused methods.
      
              * kwq/KWQRegion.mm: Use new QPoint/NSPoint/QRect/NSRect functions.
      
              * kwq/KWQScrollView.mm: (QScrollView::addChild): Update comment.
      
              * kwq/KWQTextArea.h:
              * kwq/KWQTextArea.mm:
              (-[KWQTextArea initWithFrame:]): Do most of the work in here.
              (-[KWQTextArea initWithWidget:]): Just call [init] and set up widget.
      
              * kwq/KWQTextEdit.mm: (QTextEdit::QTextEdit): Don't pass an empty frame any more.
      
              * kwq/KWQWindowWidget.h:
              * kwq/KWQWindowWidget.mm: Update for name change.
      
              * kwq/WebCoreTestController.h: Placeholder for the feature I should be working on.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1834 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9f156db6
  21. 14 Jul, 2002 1 commit
    • darin's avatar
      WebCore: · 5f8949c6
      darin authored
      	Changes to WebCore that allow WebKit to work through Objective C without going
      	straight to the KHTML headers. Also remove a bunch of unused stuff, especially
      	in QPainter.
      
              * WebCore.exp: Export the new classes WebCoreCache and WebCoreJavaScript.
      	Don't export any C++ symbols at all.
      
              * WebCore.pbproj/project.pbxproj: Remove KWQWMatrix.mm, add WebCoreCache.*
      	and WebCoreJavaScript.*.
      
              * khtml/khtml_part.cpp: Put more unused code inside ifndef APPLE_CHANGES.
              * khtml/khtmlview.cpp: Put unused code inside #ifndef APPLE_CHANGES
              * khtml/khtmlview.h: Put unused virtual functions inside #ifndef APPLE_CHANGES.
              * khtml/misc/loader.cpp: (CachedImage::tiled_pixmap): Change this so it
      	always returns pixmap(). Handling it at this level is better than changing
      	all the callers for now.
              * khtml/rendering/render_box.cpp: (RenderBox::printBackground): Took out the
      	APPLE_CHANGES now that tiled_pixmap() always just returns pixmap().
              * khtml/rendering/render_frames.cpp: (RenderFrameSet::userResize): Put some
      	unused code inside APPLE_CHANGES.
      
              * kwq/KWQKHTMLPart.mm:
              (KWQKHTMLPartImpl::requestFrame): Made it get the view using the bridge, since we
      	don't have a [widget] method on the frame any more.
              (KWQKHTMLPartImpl::findFrame): Used committedBridge instead of bridge, since
      	I changed bridge to return the provisional if available.
              (KWQKHTMLPartImpl::frames): Used committedBridge instead of bridge, since
      	I changed bridge to return the provisional if available.
      
              * kwq/qt/qpixmap.h: Put an empty version of QWMatrix in here. We don't actually ever
      	need a real matrix, just a class to let us compile.
      
              * kwq/qt/qpainter.h: Moved QWMatrix into qpixmap.h. Removed constructors that take
      	QPixmap and QWidget. Removed unused variants of drawText. Removed unused setClipping,
      	setClipRect, hasClipping, translate, scale, begin, end, and device functions.
              * kwq/KWQPainter.mm:
              (QPainter::QPainter): Remove the constructors that take a paint device, widget,
      	or pixmap. We can get away without them.
              (QPainter::save): Simplify. Also remove the optimization for painters without
      	stacks, since having an empty stack is very inexpensive.
              (QPainter::restore): Simplify.
              (QPainter::_drawPoints): Move paintingDisabled check in here.
              (QPainter::drawText): Removed many unused drawText variants.
      
              * kwq/KWQView.h: Tweaked.
              * kwq/KWQView.mm: Removed [KWQView drawRect:].
      
              * kwq/KWQWMatrix.mm: Removed.
      
              * kwq/qt/qwidget.h: Removed paint() virtual function.
              * kwq/KWQWidget.mm: Removed QWidget::paint().
      
              * kwq/WebCoreBridge.h: Added new methods installInFrame:, removeFromFrame,
      	mouseDown:, mouseUp:, mouseMoved:, mouseDragged:, copyDOMTree:, and copyRenderTree:.
      
              * kwq/WebCoreBridge.mm:
              (-[WebCoreBridge dealloc]): Call removeFromFrame.
              (-[WebCoreBridge createKHTMLViewWithNSView:width:height:marginWidth:marginHeight:]):
      	Don't return the view any more, also set bridgeOwnsKHTMLView to YES.
              (-[WebCoreBridge copyDOMNode:DOM::copier:]): Added helper method for copyDOMTree.
              (-[WebCoreBridge copyDOMTree:]): Added method to be used by IFDOMNode to get at DOM
      	tree without using C++.
              (-[WebCoreBridge copyRenderNode:khtml::copier:]): Added helper method for copyRenderTree.
              (-[WebCoreBridge copyRenderTree:]): Added method to be used by IFRenderNode to get at
      	render tree without using C++.
              (-[WebCoreBridge removeFromFrame]): Added. Deletes the view if we own it. We don't want
      	to wait for dealloc time to do this, since a lingering view might be visible.
              (-[WebCoreBridge installInFrame:]): Added. Does a set of things we need to do at the
      	time we commit a provisional data source.
              (-[WebCoreBridge addModifiers:toState:]): Moved here from IFHTMLView.
              (-[WebCoreBridge mouseUp:]): Added. Used to get a mouse up event to the KHTMLView.
              (-[WebCoreBridge mouseDown:]): Added. Used to get a mouse down event to the KHTMLView.
              (-[WebCoreBridge mouseMoved:]): Added. Used to get a mouse moved event to the KHTMLView.
              (-[WebCoreBridge mouseDragged:]): Added. Used to get a mouse moved event to the KHTMLView
      	in the case where we are dragging -- perhaps could be merged with mouseMoved.
      
              * kwq/WebCoreCache.h: Added. Allows control of the WebCore cache; previously done directly
      	in IFCache in WebKit.
              * kwq/WebCoreCache.mm: Added.
      
              * kwq/WebCoreFrame.h: Remove widget method. Change semantics of bridge method to return
      	provisional bridge if available, which corresponds to what the widget method did before.
      	Added a committedBridge method that has the semantics that bridge did before.
      
              * kwq/WebCoreJavaScript.h: Added. Returns statistics about the state of JavaScript objects;
      	previously done directly in IFCache in WebKit.
              * kwq/WebCoreJavaScript.mm: Added.
      
      WebKit:
      
      	Wean WebKit completely from getting at the C++ parts of WebCore.
      	We probably don't need to use C++ at all for WebKit any more.
      
              * WebKit.pbproj/project.pbxproj: Remove all the header search paths; we don't need any
      	special ones now.
      
              * WebKitPrefix.h: Remove <config.h>; we don't need it any more.
      
              * Misc.subproj/IFCache.h: Rename getStatistics to statistics.
              * Misc.subproj/IFCache.mm:
              (+[IFCache statistics]):
              (+[IFCache empty]):
              (+[IFCache setDisabled:]):
      	Call through WebCoreCache instead of going directly to khtml::Cache.
              (+[IFCache javaScriptObjectsCount]):
              (+[IFCache javaScriptInterpretersCount]):
              (+[IFCache javaScriptNoGCAllowedObjectsCount]):
              (+[IFCache javaScriptReferencedObjectsCount]):
              (+[IFCache garbageCollectJavaScriptObjects]):
      	Call through WebCoreJavaScript instead of going directly to kjs::Collector.
      
              * WebCoreSupport.subproj/IFWebCoreFrame.m:
              (-[IFWebCoreFrame bridge]): Change to return bridge from the provisional data
      	source if it exists.
              (-[IFWebCoreFrame committedBridge]): Do what [bridge] used to do, always returning
      	the bridge from the committed data source and never the provisional one.
      
              * WebView.subproj/IFHTMLView.mm:
              (-[IFHTMLView provisionalDataSourceChanged:]): Don't store the provisional widget.
      	It's stored in the bridge for the provisional data source.
              (-[IFHTMLView provisionalDataSourceCommitted:]): Use the bridge method installInFrame:
      	to do most of the work that used to be here. The rest is don in removeFromFrame which
      	is called elsewhere.
              (-[IFHTMLView mouseUp:]): Use the bridge's mouseUp method.
              (-[IFHTMLView mouseDown:]): Use the bridge's mouseDown method.
              (-[IFHTMLView mouseMovedNotification:]): Use the bridge's mouseMoved method.
              (-[IFHTMLView mouseDragged:]): Use the bridge's mouseDragged method.
      
              * WebView.subproj/IFHTMLViewPrivate.h: Remove the widget, widgetOwned, and
      	provisionalWidget instance variables, and the _widget and _provisionalWidget methods.
              * WebView.subproj/IFHTMLViewPrivate.mm:
              (-[IFHTMLView _reset]): Remove the code that deleted the widget and the provisional widget.
      	This is now handled elsewhere.
      
              * WebView.subproj/IFDOMNode.mm: Redo to use the copyDOMTree feature of the bridge.
              * WebView.subproj/IFRenderNode.mm: Redo to use the copyRenderTree feature of the bridge.
      
              * WebView.subproj/IFRenderNode.h: Use an NSRect instead of four integers
      	(the switch to floating point is OK).
      
              * WebView.subproj/IFWebDataSourcePrivate.h: Add private _removeFromFrame method.
              * WebView.subproj/IFWebDataSourcePrivate.mm:
              (-[IFWebDataSource _removeFromFrame]): Set the controller and location change handler
      	references to nil, and also call [WebCoreBridge removeFromFrame].
              * WebView.subproj/IFWebFramePrivate.mm:
              (-[IFWebFramePrivate setDataSource:]): Use _removeFromFrame where we formerly would
      	set the controller and location change handler references to nil.
      
              * WebCoreSupport.subproj/IFWebCoreBridge.h: Tweak.
      
      WebBrowser:
      
              * Debug/CacheController.m:
              (-[CacheController refreshWebCoreStatisticsMatrix]):
      	Change name of method from getStatistics to statistics.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1554 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5f8949c6
  22. 12 Jun, 2002 1 commit
    • cblu's avatar
      · 9f2cc6a9
      cblu authored
      	Couldn't run ChangeLog because it hung with the massize diffs, so here's
      	a hand-made one.
      
      	Changes to support inline views.
      
      Modified Files:
       	WebBrowser/BrowserDocument.m
       	WebBrowser/LocationChangeHandler.m
       	WebBrowser/Debug/DebugUtilities.m WebCore/WebCore.exp
       	WebCore/kwq/KWQKHTMLPart.mm
       	WebCore/kwq/KWQKHTMLPartBrowserExtension.mm
       	WebCore/kwq/KWQKloader.mm WebCore/kwq/KWQScrollView.mm
       	WebCore/kwq/KWQView.h WebCore/kwq/KWQView.mm
       	WebCore/kwq/KWQWidget.mm WebCore/kwq/external.h
       	WebKit/ChangeLog WebKit/Plugins.subproj/IFNullPluginView.mm
       	WebKit/Plugins.subproj/IFPluginDatabase.h
       	WebKit/Plugins.subproj/IFPluginDatabase.m
       	WebKit/Plugins.subproj/IFPluginView.mm
       	WebKit/WebCoreSupport.subproj/IFImageRenderer.h
      	WebKit/WebCoreSupport.subproj/IFWebCoreViewFactory.m
       	WebKit/WebKit.pbproj/project.pbxproj
       	WebKit/WebView.subproj/IFDOMNode.mm
       	WebKit/WebView.subproj/IFDynamicScrollBarsView.m
       	WebKit/WebView.subproj/IFMainURLHandleClient.h
       	WebKit/WebView.subproj/IFMainURLHandleClient.mm
       	WebKit/WebView.subproj/IFRenderNode.mm
       	WebKit/WebView.subproj/IFWebController.h
       	WebKit/WebView.subproj/IFWebController.mm
       	WebKit/WebView.subproj/IFWebControllerPrivate.h
       	WebKit/WebView.subproj/IFWebControllerPrivate.mm
       	WebKit/WebView.subproj/IFWebDataSource.h
       	WebKit/WebView.subproj/IFWebDataSource.mm
       	WebKit/WebView.subproj/IFWebDataSourcePrivate.h
       	WebKit/WebView.subproj/IFWebDataSourcePrivate.mm
       	WebKit/WebView.subproj/IFWebFrame.mm
       	WebKit/WebView.subproj/IFWebFramePrivate.h
       	WebKit/WebView.subproj/IFWebFramePrivate.mm
       	WebKit/WebView.subproj/IFWebView.h
       	WebKit/WebView.subproj/IFWebView.mm
       	WebKit/WebView.subproj/IFWebViewPrivate.h
       	WebKit/WebView.subproj/IFWebViewPrivate.mm
       Added Files:
       	WebKit/Misc.subproj/IFNSViewExtras.h
       	WebKit/Misc.subproj/IFNSViewExtras.m
       	WebKit/WebView.subproj/IFDocument.h
       	WebKit/WebView.subproj/IFHTMLRepresentation.h
       	WebKit/WebView.subproj/IFHTMLRepresentation.mm
       	WebKit/WebView.subproj/IFHTMLView.h
       	WebKit/WebView.subproj/IFHTMLView.mm
       	WebKit/WebView.subproj/IFHTMLViewPrivate.h
       	WebKit/WebView.subproj/IFHTMLViewPrivate.mm
       	WebKit/WebView.subproj/IFImageRepresentation.h
       	WebKit/WebView.subproj/IFImageRepresentation.m
       	WebKit/WebView.subproj/IFImageView.h
       	WebKit/WebView.subproj/IFImageView.m
       	WebKit/WebView.subproj/IFTextRepresentation.h
       	WebKit/WebView.subproj/IFTextRepresentation.m
       	WebKit/WebView.subproj/IFTextView.h
       	WebKit/WebView.subproj/IFTextView.m
      Removed Files:
       	WebKit/MIME.subproj/IFContentHandler.h
       	WebKit/MIME.subproj/IFContentHandler.m
      	WebKit/MIME.subproj/IFMIMEHandler.h
       	WebKit/MIME.subproj/IFMIMEHandler.m
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1340 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9f2cc6a9
  23. 26 May, 2002 1 commit
    • mjs's avatar
      WebCore: · 0c8b5c2b
      mjs authored
      	Webcore part of fix for:
      
      	Radar 2884085 - add support for changing cursor over links
      
      	* Makefile.am: Install tiff of link cursor.
      	* kwq/qt/qcursor.h, kwq/KWQCursor.mm:
      	(QCursor::QCursor): Change QCursor to contain an NSCursor.
      	(QCursor::~QCursor): Likewise.
      	(QCursor::operator=): Likewise.
      	(QCursor::handle): Likewise.
      	* kwq/KWQKCursor.mm:
      	(+[NSCursor _WebCore_linkCursor]): NSCursor extension method that
      	provides the link cursor.
      	(KCursor::handCursor): Use the link cursor instead of the default
      	arrow cursor.
      	* kwq/KWQKHTMLSettings.mm:
      	(KHTMLSettings::changeCursor): Return TRUE; we always want cursor
      	tracking.
      	* kwq/KWQView.h, kwq/KWQView.mm:
      	(-[KWQHTMLView setCursor:]): Remember the new cursor and
      	invalidate cursor rects.
      	(-[KWQHTMLView resetCursorRects]): Establish cursor rect for
      	currently set cursor, if not default.
      	* kwq/KWQWidget.mm:
      	(QWidget::setCursor): Call setCursor: on the underlying
      	NSView, if implemented.
      	(QWidget::cursor): Implemented.
      	(QWidget::unsetCursor): Implemented.
      
      WebKit:
      	WebKit part of fix for:
      
      	Radar 2884085 - add support for changing cursor over links
      
      	Also, fix handling of mouseMoved events.
      
      	* WebView.subproj/IFWebView.mm:
      	(-[IFWebView mouseMovedNotification:]): Clip mouseMoved events to
      	the view rect, otherwise mouseover effects might happen for
      	elements past the edge of the window.
      	(-[IFWebView setCursor:]): Implement.
      	(-[IFWebView resetCursorRects]): Implement.
      	* WebView.subproj/IFWebViewPrivate.h:
      	* WebView.subproj/IFWebViewPrivate.mm:
      	(-[IFWebViewPrivate dealloc]): Added NSCursor *cursor field.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1218 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0c8b5c2b
  24. 07 Dec, 2001 1 commit
  25. 29 Nov, 2001 1 commit
  26. 09 Nov, 2001 1 commit
  27. 08 Nov, 2001 1 commit
  28. 31 Oct, 2001 1 commit
  29. 18 Oct, 2001 1 commit
  30. 16 Oct, 2001 1 commit
  31. 12 Oct, 2001 2 commits
  32. 11 Oct, 2001 1 commit
  33. 27 Sep, 2001 1 commit