本文整理汇总了C++中webcore::Editor类的典型用法代码示例。如果您正苦于以下问题:C++ Editor类的具体用法?C++ Editor怎么用?C++ Editor使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Editor类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setComposition
void DumpRenderTreeSupportEfl::setComposition(Evas_Object* ewkView, const char* text, int start, int length)
{
WebCore::Page* page = EWKPrivate::corePage(ewkView);
if (!page || !page->focusController() || !page->focusController()->focusedOrMainFrame())
return;
WebCore::Editor* editor = page->focusController()->focusedOrMainFrame()->editor();
if (!editor || (!editor->canEdit() && !editor->hasComposition()))
return;
const String compositionString = String::fromUTF8(text);
Vector<WebCore::CompositionUnderline> underlines;
underlines.append(WebCore::CompositionUnderline(0, compositionString.length(), WebCore::Color(0, 0, 0), false));
editor->setComposition(compositionString, underlines, start, start + length);
}
示例2: compositionRange
bool DumpRenderTreeSupportEfl::compositionRange(Evas_Object* ewkView, int* start, int* length)
{
*start = *length = 0;
WebCore::Page* page = EWKPrivate::corePage(ewkView);
if (!page || !page->focusController() || !page->focusController()->focusedOrMainFrame())
return false;
WebCore::Editor* editor = page->focusController()->focusedOrMainFrame()->editor();
if (!editor || !editor->hasComposition())
return false;
*start = editor->compositionStart();
*length = editor->compositionEnd() - *start;
return true;
}
示例3: firstRectForCharacterRange
WebCore::IntRect DumpRenderTreeSupportEfl::firstRectForCharacterRange(Evas_Object* ewkView, int location, int length)
{
WebCore::Page* page = EWKPrivate::corePage(ewkView);
if (!page || !page->focusController() || !page->focusController()->focusedOrMainFrame() || !page->focusController()->focusedOrMainFrame()->editor())
return WebCore::IntRect();
if ((location + length < location) && (location + length))
length = 0;
WebCore::Frame* frame = page->focusController()->focusedOrMainFrame();
WebCore::Editor* editor = frame->editor();
RefPtr<WebCore::Range> range = WebCore::TextIterator::rangeFromLocationAndLength(frame->selection()->rootEditableElementOrDocumentElement(), location, length);
if (!range)
return WebCore::IntRect();
return editor->firstRectForRange(range.get());
}
示例4: confirmComposition
void DumpRenderTreeSupportEfl::confirmComposition(Evas_Object* ewkView, const char* text)
{
WebCore::Page* page = EWKPrivate::corePage(ewkView);
if (!page || !page->focusController() || !page->focusController()->focusedOrMainFrame())
return;
WebCore::Editor* editor = page->focusController()->focusedOrMainFrame()->editor();
if (!editor)
return;
if (!editor->hasComposition()) {
editor->insertText(String::fromUTF8(text), 0);
return;
}
if (text) {
editor->confirmComposition(String::fromUTF8(text));
return;
}
editor->confirmComposition();
}
示例5: handleSendEditingCapabilities
void BWebPage::handleSendEditingCapabilities(BMessage*)
{
bool canCut = false;
bool canCopy = false;
bool canPaste = false;
WebCore::Frame* frame = fPage->focusController()->focusedOrMainFrame();
if (frame && frame->editor()) {
WebCore::Editor* editor = frame->editor();
canCut = editor->canCut() || editor->canDHTMLCut();
canCopy = editor->canCopy() || editor->canDHTMLCopy();
canPaste = editor->canPaste() || editor->canDHTMLPaste();
}
BMessage message(B_EDITING_CAPABILITIES_RESULT);
message.AddBool("can cut", canCut);
message.AddBool("can copy", canCopy);
message.AddBool("can paste", canPaste);
dispatchMessage(message);
}