KHTML
khtml Namespace Reference
Classes | |
class | DrawContentsEvent |
class | MouseDoubleClickEvent |
class | MouseEvent |
class | MouseMoveEvent |
class | MousePressEvent |
class | MouseReleaseEvent |
Enumerations | |
enum | ObjectAdvanceState { LeftObject = 0x01, AdvancedToSibling = 0x02, EnteredObject = 0x04 } |
enum | ObjectTraversalState { OutsideDescending, InsideDescending, InsideAscending, OutsideAscending } |
Functions | |
static RenderObject * | advanceObject (RenderObject *r, ObjectTraversalState &trav, bool toBegin, RenderObject *base, int &state) |
static RenderObject * | advanceSuitableObject (RenderObject *r, ObjectTraversalState &trav, bool toBegin, RenderObject *base, int &state) |
void | applyRule (DOM::CSSProperty *prop) |
static RenderObject * | commonAncestorTableSectionOrCell (RenderObject *r1, RenderObject *r2) |
static RenderTableCell * | containingTableCell (RenderObject *r) |
static bool | containsEditableChildElement (KHTMLPart *part, RenderBlock *cb, RenderTable *&table, bool fromEnd, RenderObject *start) |
static bool | containsEditableElement (KHTMLPart *part, RenderBlock *cb, RenderTable *&table, bool fromEnd=false) |
static ElementImpl * | determineBaseElement (NodeImpl *caretNode) |
static void | ensureLeafNode (NodeImpl *&node, NodeImpl *base) |
static CaretBoxLine * | findCaretBoxLine (DOM::NodeImpl *node, long offset, CaretBoxLineDeleter *cblDeleter, RenderObject *base, long &r_ofs, CaretBoxIterator &caretBoxIt) |
static RenderTable * | findFirstDescendantTable (RenderObject *leaf, RenderBlock *block) |
static RenderTableCell * | findNearestTableCell (KHTMLPart *part, int x, TableRowIterator &it, bool fromEnd) |
static RenderTableCell * | findNearestTableCellInRow (KHTMLPart *part, int x, RenderTableSection::RowStruct *row, bool fromEnd) |
static RenderObject * | findRenderer (NodeImpl *&node, long offset, RenderObject *base, long &r_ofs, bool &outside, bool &outsideEnd) |
static int | findRowInSection (RenderTableSection *section, RenderTableCell *cell, RenderTableSection::RowStruct *&row, RenderTableCell *&directCell) |
static RenderTable * | findTableUpTo (RenderObject *r, RenderFlow *cb) |
bool | isBlockRenderReplaced (RenderObject *r) |
static bool | isCaretBoxEmpty (CaretBox *box) |
static bool | isDescendant (RenderObject *r, RenderObject *cb) |
static bool | isIndicatedFlow (RenderObject *r) |
static bool | isIndicatedInlineBox (InlineBox *box) |
static bool | isUnsuitable (RenderObject *r, ObjectTraversalState trav) |
void | mapDOMPosToRenderPos (NodeImpl *node, long offset, RenderObject *&r, long &r_ofs, bool &outside, bool &outsideEnd) |
void | mapRenderPosToDOMPos (RenderObject *r, long r_ofs, bool outside, bool outsideEnd, NodeImpl *&node, long &offset) |
static void | mapRenderPosToTraversalState (bool outside, bool atEnd, bool toBegin, ObjectTraversalState &trav) |
static void | mapTraversalStateToRenderPos (ObjectTraversalState trav, bool toBegin, bool &outside, bool &atEnd) |
static void | moveIteratorByPage (LinearDocument &ld, ErgonomicEditableLineIterator &it, int mindist, bool next) |
static void | moveItToNextWord (EditableCharacterIterator &it) |
static void | moveItToPrevWord (EditableCharacterIterator &it) |
static CaretBox * | nearestCaretBox (LineIterator &it, CaretViewContext *cv, int &x, int &absx, int &absy) |
static NodeImpl * | nextLeafNode (NodeImpl *r, NodeImpl *baseElem) |
static RenderObject * | renderObjectAbove (RenderObject *obj, ObjectTraversalState &trav, RenderObject *base) |
static RenderObject * | renderObjectBelow (RenderObject *obj, ObjectTraversalState &trav, RenderObject *base) |
InlineFlowBox * | seekBaseFlowBox (InlineBox *b, RenderObject *base=0) |
static RenderObject * | traverseRenderObjects (RenderObject *obj, ObjectTraversalState &trav, bool toBegin, RenderObject *base, int &state) |
Enumeration Type Documentation
Flags representing the type of advance that has been made.
- Parameters:
-
LeftObject a render object was left and an ascent to its parent has taken place AdvancedToSibling an actual advance to a sibling has taken place EnteredObject a render object was entered by descending into it from its parent object.
Definition at line 35 of file khtml_caret.cpp.
All possible states that may occur during render object traversal.
- Parameters:
-
OutsideDescending outside of the current object, ready to descend into children InsideDescending inside the current object, descending into children InsideAscending inside the current object, ascending to parents OutsideAscending outsie the current object, ascending to parents
Definition at line 47 of file khtml_caret.cpp.
Function Documentation
static RenderObject* khtml::advanceObject | ( | RenderObject * | r, | |
ObjectTraversalState & | trav, | |||
bool | toBegin, | |||
RenderObject * | base, | |||
int & | state | |||
) | [static] |
Advances to the next render object, taking into account the current traversal state.
- Parameters:
-
r render object trav object traversal state toBegin true
, advance towards beginning,false
, advance toward endbase base render object which this method must not advance beyond (0 means document) state object advance state (enum ObjectAdvanceState) (unchanged on LeafsOnly)
- Returns:
- a pointer to the render object which we advanced to, or 0 if the last possible object has been reached.
Definition at line 187 of file khtml_caret.cpp.
static RenderObject* khtml::advanceSuitableObject | ( | RenderObject * | r, | |
ObjectTraversalState & | trav, | |||
bool | toBegin, | |||
RenderObject * | base, | |||
int & | state | |||
) | [inline, static] |
Advances to the next render object, taking into account the current traversal state, but skipping render objects which are not suitable for having placed the caret into them.
- Parameters:
-
r render object trav object traversal state (unchanged on LeafsOnly) toBegin true
, advance towards beginning,false
, advance toward endbase base render object which this method must not advance beyond (0 means document) state object advance state (enum ObjectAdvanceState) (unchanged on LeafsOnly)
- Returns:
- a pointer to the advanced render object or 0 if the last possible object has been reached.
Definition at line 305 of file khtml_caret.cpp.
void khtml::applyRule | ( | DOM::CSSProperty * | prop | ) |
static RenderObject* khtml::commonAncestorTableSectionOrCell | ( | RenderObject * | r1, | |
RenderObject * | r2 | |||
) | [static] |
returns the nearest common ancestor of two objects that is a table cell, a table section, or 0 if not inside a common table.
If r1
and r2
belong to the same table, but different sections, r1's
section is returned.
Definition at line 2161 of file khtml_caret.cpp.
static RenderTableCell* khtml::containingTableCell | ( | RenderObject * | r | ) | [inline, static] |
looks for the table cell the given object r
is contained within.
- Returns:
- the table cell or 0 if not contained in any table.
Definition at line 2257 of file khtml_caret.cpp.
static bool khtml::containsEditableChildElement | ( | KHTMLPart * | part, | |
RenderBlock * | cb, | |||
RenderTable *& | table, | |||
bool | fromEnd, | |||
RenderObject * | start | |||
) | [static] |
checks whether the given block contains at least one editable child element, beginning with but excluding start
.
Warning: This function has linear complexity, and therefore is expensive. Use it sparingly, and cache the result.
- Parameters:
-
part part cb block to be searched table returns the nested table if there is one directly before/after the start object. fromEnd begin search from end (default: begin from beginning) start object after which to begin search.
Definition at line 1188 of file khtml_caret.cpp.
static bool khtml::containsEditableElement | ( | KHTMLPart * | part, | |
RenderBlock * | cb, | |||
RenderTable *& | table, | |||
bool | fromEnd = false | |||
) | [static] |
checks whether the given block contains at least one editable element.
Warning: This function has linear complexity, and therefore is expensive. Use it sparingly, and cache the result.
- Parameters:
-
part part cb block to be searched table returns the nested table if there is one directly at the beginning or at the end. fromEnd begin search from end (default: begin from beginning)
Definition at line 1131 of file khtml_caret.cpp.
static ElementImpl* khtml::determineBaseElement | ( | NodeImpl * | caretNode | ) | [static] |
returns a suitable base element
- Parameters:
-
caretNode current node containing caret.
Definition at line 622 of file khtml_caret.cpp.
static void khtml::ensureLeafNode | ( | NodeImpl *& | node, | |
NodeImpl * | base | |||
) | [inline, static] |
static CaretBoxLine* khtml::findCaretBoxLine | ( | DOM::NodeImpl * | node, | |
long | offset, | |||
CaretBoxLineDeleter * | cblDeleter, | |||
RenderObject * | base, | |||
long & | r_ofs, | |||
CaretBoxIterator & | caretBoxIt | |||
) | [static] |
determines the caret line box that contains the given position.
If the node does not map to a render object, the function will snap to the next suitable render object following it.
- Parameters:
-
node node to begin with offset zero-based offset within node. cblDeleter deleter for caret box lines base base render object which the caret must not be placed beyond. r_ofs adjusted offset within render object caretBoxIt returns an iterator to the caret box that contains the given position.
- Returns:
- the determined caret box lineor 0 if either the node is 0 or there is no inline flow box containing this node. The containing block will still be set. If it is 0 too,
node
was invalid.
Definition at line 964 of file khtml_caret.cpp.
static RenderTable* khtml::findFirstDescendantTable | ( | RenderObject * | leaf, | |
RenderBlock * | block | |||
) | [inline, static] |
finds the table that is the first direct or indirect descendant of block
.
- Parameters:
-
leaf object to begin search from. block object to search to, or 0 to search up to top.
- Returns:
- the table or 0 if there were none.
Definition at line 2244 of file khtml_caret.cpp.
static RenderTableCell* khtml::findNearestTableCell | ( | KHTMLPart * | part, | |
int | x, | |||
TableRowIterator & | it, | |||
bool | fromEnd | |||
) | [inline, static] |
finds the cell corresponding to absolute x-coordinate x
in the given table.
If there is no direct cell, or the cell is not accessible, the function will return the nearest suitable cell.
- Parameters:
-
part part containing the document x absolute x-coordinate it table row iterator, will be adapted accordingly as more rows are investigated. fromEnd true
to begin search from end and work towards the beginning
- Returns:
- the cell, or 0 if no editable cell was found.
Definition at line 2071 of file khtml_caret.cpp.
static RenderTableCell * khtml::findNearestTableCellInRow | ( | KHTMLPart * | part, | |
int | x, | |||
RenderTableSection::RowStruct * | row, | |||
bool | fromEnd | |||
) | [static] |
finds the nearest editable cell around the given absolute x-coordinate
It will dive into nested tables as necessary to provide seamless navigation.
If the cell at x
is not editable, its left neighbor is tried, then its right neighbor, then the left neighbor's left neighbor etc. If no editable cell can be found, 0 is returned.
- Parameters:
-
part khtml part x absolute x-coordinate row table row to be searched fromEnd true
, begin from end (applies only to nested tables)
- Returns:
- the found cell or 0 if no editable cell was found
Definition at line 2099 of file khtml_caret.cpp.
static RenderObject* khtml::findRenderer | ( | NodeImpl *& | node, | |
long | offset, | |||
RenderObject * | base, | |||
long & | r_ofs, | |||
bool & | outside, | |||
bool & | outsideEnd | |||
) | [static] |
Finds the next node that has a renderer.
Note that if the initial node
has a renderer, this will be returned, regardless of the caret advance policy. Otherwise, for the next nodes, only leaf nodes are considered.
- Parameters:
-
node node to start with, will be updated accordingly offset offset of caret within node
base base render object which this method must not advance beyond (0 means document) r_ofs return the caret offset within the returned renderer outside returns whether offset is to be interpreted to the outside (true) or the inside (false) of the render object. outsideEnd returns whether the end of the outside position is meant
- Returns:
- renderer or 0 if no following node has a renderer.
Definition at line 584 of file khtml_caret.cpp.
static int khtml::findRowInSection | ( | RenderTableSection * | section, | |
RenderTableCell * | cell, | |||
RenderTableSection::RowStruct *& | row, | |||
RenderTableCell *& | directCell | |||
) | [static] |
Finds the row that contains the given cell, directly, or indirectly.
- Parameters:
-
section section to be searched cell table cell row returns the row directCell returns the direct cell that contains cell
- Returns:
- the index of the row.
Definition at line 2210 of file khtml_caret.cpp.
static RenderTable* khtml::findTableUpTo | ( | RenderObject * | r, | |
RenderFlow * | cb | |||
) | [inline, static] |
finds the innermost table object r
is contained within, but no farther than cb
.
- Parameters:
-
r leaf element to begin with cb bottom element where to stop search at least.
- Returns:
- the table object or 0 if none found.
Definition at line 1107 of file khtml_caret.cpp.
bool khtml::isBlockRenderReplaced | ( | RenderObject * | r | ) | [inline] |
determines whether the given element is a block level replaced element.
Definition at line 943 of file khtml_caret.cpp.
static bool khtml::isCaretBoxEmpty | ( | CaretBox * | box | ) | [inline, static] |
returns true when the given caret box is empty, i.
e. should not take place in caret movement.
Definition at line 1760 of file khtml_caret.cpp.
static bool khtml::isDescendant | ( | RenderObject * | r, | |
RenderObject * | cb | |||
) | [inline, static] |
static bool khtml::isIndicatedFlow | ( | RenderObject * | r | ) | [inline, static] |
Checks whether the given render object matches the IndicatedFlows policy.
- Parameters:
-
r render object to test
- Returns:
- true on match
Definition at line 162 of file khtml_caret.cpp.
static bool khtml::isIndicatedInlineBox | ( | InlineBox * | box | ) | [inline, static] |
Checks whether the given inline box matches the IndicatedFlows policy.
- Parameters:
-
box inline box to test
- Returns:
- true on match
Definition at line 144 of file khtml_caret.cpp.
static bool khtml::isUnsuitable | ( | RenderObject * | r, | |
ObjectTraversalState | trav | |||
) | [inline, static] |
Check whether the current render object is unsuitable in caret mode handling.
Some render objects cannot be handled correctly in caret mode. These objects are therefore considered to be unsuitable. The null object is suitable, as it denotes reaching the end.
- Parameters:
-
r current render object trav current traversal state
Definition at line 283 of file khtml_caret.cpp.
void khtml::mapDOMPosToRenderPos | ( | NodeImpl * | node, | |
long | offset, | |||
RenderObject *& | r, | |||
long & | r_ofs, | |||
bool & | outside, | |||
bool & | outsideEnd | |||
) |
Maps a DOM Range position to the corresponding caret position.
The offset boundary is not checked for validity.
- Parameters:
-
node DOM node offset zero-based offset within node r returns render object (may be 0 if DOM node has no render object) r_ofs returns the appropriate offset for the found render object r outside returns true when offset is applied to the outside of r
, or false for the inside.outsideEnd return true when the caret position is at the outside end.
Definition at line 411 of file khtml_caret.cpp.
void khtml::mapRenderPosToDOMPos | ( | RenderObject * | r, | |
long | r_ofs, | |||
bool | outside, | |||
bool | outsideEnd, | |||
NodeImpl *& | node, | |||
long & | offset | |||
) |
Maps a caret position to the corresponding DOM Range position.
- Parameters:
-
r render object r_ofs offset within render object outside true when offset is interpreted to be on the outside of r
, or false if on the inside.outsideEnd true when the caret position is at the outside end. node returns DOM node offset returns zero-based offset within node
Definition at line 483 of file khtml_caret.cpp.
static void khtml::mapRenderPosToTraversalState | ( | bool | outside, | |
bool | atEnd, | |||
bool | toBegin, | |||
ObjectTraversalState & | trav | |||
) | [inline, static] |
Converts a caret position to its respective object traversal state.
- Parameters:
-
outside whether the caret is outside the object atEnd whether the caret position is at the end toBegin true
when advancing towards the beginningtrav returns the corresponding traversal state
Definition at line 541 of file khtml_caret.cpp.
static void khtml::mapTraversalStateToRenderPos | ( | ObjectTraversalState | trav, | |
bool | toBegin, | |||
bool & | outside, | |||
bool & | atEnd | |||
) | [inline, static] |
Converts a traversal state to its respective caret position.
- Parameters:
-
trav object traversal state toBegin true
when advancing towards the beginningoutside whether the caret is outside the object atEnd whether the caret position is at the end
Definition at line 557 of file khtml_caret.cpp.
static void khtml::moveIteratorByPage | ( | LinearDocument & | ld, | |
ErgonomicEditableLineIterator & | it, | |||
int | mindist, | |||
bool | next | |||
) | [static] |
moves the iterator by one page.
- Parameters:
-
ld linear document it line iterator, will be updated accordingly mindist minimum distance in pixel the iterator should be moved (if possible) next true
, move downward,false
move upward
Definition at line 2592 of file khtml_caret.cpp.
static void khtml::moveItToNextWord | ( | EditableCharacterIterator & | it | ) | [static] |
moves the given iterator to the beginning of the next word.
If the end is reached, the iterator will be positioned there.
- Parameters:
-
it character iterator to be moved
Definition at line 2513 of file khtml_caret.cpp.
static void khtml::moveItToPrevWord | ( | EditableCharacterIterator & | it | ) | [static] |
moves the given iterator to the beginning of the previous word.
If the beginning is reached, the iterator will be positioned there.
- Parameters:
-
it character iterator to be moved
Definition at line 2548 of file khtml_caret.cpp.
static CaretBox* khtml::nearestCaretBox | ( | LineIterator & | it, | |
CaretViewContext * | cv, | |||
int & | x, | |||
int & | absx, | |||
int & | absy | |||
) | [static] |
seeks the caret box which contains or is the nearest to x
- Parameters:
-
it line iterator pointing to line to be searched cv caret view context x returns the cv->origX approximation, relatively positioned to the containing block. absx returns absolute x-coordinate of containing block absy returns absolute y-coordinate of containing block
- Returns:
- the most suitable caret box
Definition at line 2448 of file khtml_caret.cpp.
static NodeImpl* khtml::nextLeafNode | ( | NodeImpl * | r, | |
NodeImpl * | baseElem | |||
) | [static] |
Returns the next leaf node.
Using this function delivers leaf nodes as if the whole DOM tree were a linear chain of its leaf nodes.
- Parameters:
-
r dom node baseElem base element not to search beyond
- Returns:
- next leaf node or 0 if there are no more.
Definition at line 327 of file khtml_caret.cpp.
static RenderObject* khtml::renderObjectAbove | ( | RenderObject * | obj, | |
ObjectTraversalState & | trav, | |||
RenderObject * | base | |||
) | [inline, static] |
Like RenderObject::objectAbove, but confined to stay within base
.
- Parameters:
-
obj render object to begin with trav object traversal state, will be reset within this function base base render object (0: no base)
Definition at line 125 of file khtml_caret.cpp.
static RenderObject* khtml::renderObjectBelow | ( | RenderObject * | obj, | |
ObjectTraversalState & | trav, | |||
RenderObject * | base | |||
) | [inline, static] |
Like RenderObject::objectBelow, but confined to stay within base
.
- Parameters:
-
obj render object to begin with trav object traversal state, will be reset within this function base base render object (0: no base)
Definition at line 105 of file khtml_caret.cpp.
InlineFlowBox* khtml::seekBaseFlowBox | ( | InlineBox * | b, | |
RenderObject * | base = 0 | |||
) | [inline] |
seeks the root line box that is the parent of the given inline box.
- Parameters:
-
b given inline box base base render object which not to step over. If base's
inline flow box is hit before the root line box, the flow box is returned instead.
- Returns:
- the root line box or the base flow box.
Definition at line 931 of file khtml_caret.cpp.
static RenderObject* khtml::traverseRenderObjects | ( | RenderObject * | obj, | |
ObjectTraversalState & | trav, | |||
bool | toBegin, | |||
RenderObject * | base, | |||
int & | state | |||
) | [static] |
Traverses the render object tree in a fine granularity.
- Parameters:
-
obj render object trav object traversal state toBegin traverse towards beginning base base render object which this method must not advance beyond (0 means document) state object advance state (enum ObjectAdvanceState)
- Returns:
- the render object according to the state. May be the same as
obj
Definition at line 60 of file khtml_caret.cpp.