khtml Namespace Reference
|
Classes |
class | MouseEvent |
class | MousePressEvent |
class | MouseDoubleClickEvent |
class | MouseMoveEvent |
class | MouseReleaseEvent |
class | DrawContentsEvent |
Enumerations |
enum | ObjectAdvanceState { LeftObject = 0x01,
AdvancedToSibling = 0x02,
EnteredObject = 0x04
} |
enum | ObjectTraversalState { OutsideDescending,
InsideDescending,
InsideAscending,
OutsideAscending
} |
Functions |
static RenderObject * | traverseRenderObjects (RenderObject *obj, ObjectTraversalState &trav, bool toBegin, RenderObject *base, int &state) |
static RenderObject * | renderObjectBelow (RenderObject *obj, ObjectTraversalState &trav, RenderObject *base) |
static RenderObject * | renderObjectAbove (RenderObject *obj, ObjectTraversalState &trav, RenderObject *base) |
static bool | isIndicatedInlineBox (InlineBox *box) |
static bool | isIndicatedFlow (RenderObject *r) |
static RenderObject * | advanceObject (RenderObject *r, ObjectTraversalState &trav, bool toBegin, RenderObject *base, int &state) |
static bool | isUnsuitable (RenderObject *r, ObjectTraversalState trav) |
static RenderObject * | advanceSuitableObject (RenderObject *r, ObjectTraversalState &trav, bool toBegin, RenderObject *base, int &state) |
static NodeImpl * | nextLeafNode (NodeImpl *r, NodeImpl *baseElem) |
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 | ensureLeafNode (NodeImpl *&node, NodeImpl *base) |
static void | mapRenderPosToTraversalState (bool outside, bool atEnd, bool toBegin, ObjectTraversalState &trav) |
static void | mapTraversalStateToRenderPos (ObjectTraversalState trav, bool toBegin, bool &outside, bool &atEnd) |
static RenderObject * | findRenderer (NodeImpl *&node, long offset, RenderObject *base, long &r_ofs, bool &outside, bool &outsideEnd) |
static ElementImpl * | determineBaseElement (NodeImpl *caretNode) |
InlineFlowBox * | seekBaseFlowBox (InlineBox *b, RenderObject *base=0) |
bool | isBlockRenderReplaced (RenderObject *r) |
static CaretBoxLine * | findCaretBoxLine (DOM::NodeImpl *node, long offset, CaretBoxLineDeleter *cblDeleter, RenderObject *base, long &r_ofs, CaretBoxIterator &caretBoxIt) |
static RenderTable * | findTableUpTo (RenderObject *r, RenderFlow *cb) |
static bool | isDescendant (RenderObject *r, RenderObject *cb) |
static bool | containsEditableElement (KHTMLPart *part, RenderBlock *cb, RenderTable *&table, bool fromEnd=false) |
static bool | containsEditableChildElement (KHTMLPart *part, RenderBlock *cb, RenderTable *&table, bool fromEnd, RenderObject *start) |
static bool | isCaretBoxEmpty (CaretBox *box) |
static RenderTableCell * | findNearestTableCellInRow (KHTMLPart *part, int x, RenderTableSection::RowStruct *row, bool fromEnd) |
static RenderTableCell * | findNearestTableCell (KHTMLPart *part, int x, TableRowIterator &it, bool fromEnd) |
static RenderObject * | commonAncestorTableSectionOrCell (RenderObject *r1, RenderObject *r2) |
static int | findRowInSection (RenderTableSection *section, RenderTableCell *cell, RenderTableSection::RowStruct *&row, RenderTableCell *&directCell) |
static RenderTable * | findFirstDescendantTable (RenderObject *leaf, RenderBlock *block) |
static RenderTableCell * | containingTableCell (RenderObject *r) |
static CaretBox * | nearestCaretBox (LineIterator &it, CaretViewContext *cv, int &x, int &absx, int &absy) |
static void | moveItToNextWord (EditableCharacterIterator &it) |
static void | moveItToPrevWord (EditableCharacterIterator &it) |
static void | moveIteratorByPage (LinearDocument &ld, ErgonomicEditableLineIterator &it, int mindist, bool next) |
void | applyRule (DOM::CSSProperty *prop) |
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 end |
| base | 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 end |
| base | 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. |
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] |
|
|
checks whether r is a descendant of cb , or r == cb
Definition at line 1115 of file khtml_caret.cpp. |
static bool khtml::isIndicatedFlow |
( |
RenderObject * |
r |
) |
[inline, static] |
|
|
Checks whether the given render object matches the IndicatedFlows policy.
- Parameters:
-
- 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:
-
- 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 beginning |
| trav | 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 beginning |
| outside | 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. |
|