• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

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

enum khtml::ObjectAdvanceState

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.
Enumerator:
LeftObject 
AdvancedToSibling 
EnteredObject 

Definition at line 35 of file khtml_caret.cpp.

enum khtml::ObjectTraversalState

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
Enumerator:
OutsideDescending 
InsideDescending 
InsideAscending 
OutsideAscending 

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.

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]

Make sure the given node is a leaf node.

Definition at line 530 of file khtml_caret.cpp.

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:
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 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.

KHTML

Skip menu "KHTML"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal