You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
koffice/lib/kotext/KoTextViewIface.cc

668 lines
15 KiB

/* This file is part of the KDE project
Copyright (C) 2002 Laurent MONTEL <lmontel@mandrakesoft.com>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#include "KoTextViewIface.h"
#include "KoTextView.h"
#include "KoTextParag.h"
#include "KoBorder.h"
#include <kapplication.h>
#include <dcopclient.h>
#include <kdebug.h>
#include <KoVariable.h>
#include <kcommand.h>
KoTextViewIface::KoTextViewIface( KoTextView *_textview )
: DCOPObject( /*TODO name*/ )
{
m_textView = _textview;
}
void KoTextViewIface::insertSoftHyphen()
{
m_textView->insertSoftHyphen();
}
void KoTextViewIface::insertText( const QString &text )
{
m_textView->insertText(text);
}
void KoTextViewIface::newParagraph()
{
m_textView->newParagraph();
}
void KoTextViewIface::setBold(bool b)
{
KCommand *cmd=m_textView->setBoldCommand(b);
delete cmd;
}
void KoTextViewIface::setItalic(bool on)
{
KCommand *cmd=m_textView->setItalicCommand(on);
delete cmd;
}
void KoTextViewIface::setUnderline(bool on)
{
KCommand *cmd=m_textView->setUnderlineCommand(on);
delete cmd;
}
void KoTextViewIface::setDoubleUnderline(bool on)
{
KCommand *cmd=m_textView->setDoubleUnderlineCommand(on);
delete cmd;
}
void KoTextViewIface::setStrikeOut(bool on)
{
KCommand *cmd=m_textView->setStrikeOutCommand(on);
delete cmd;
}
void KoTextViewIface::setPointSize( int s )
{
KCommand *cmd=m_textView->setPointSizeCommand(s);
delete cmd;
}
void KoTextViewIface::setTextSubScript(bool on)
{
KCommand *cmd=m_textView->setTextSubScriptCommand(on);
delete cmd;
}
void KoTextViewIface::setTextSuperScript(bool on)
{
KCommand *cmd=m_textView->setTextSuperScriptCommand(on);
delete cmd;
}
void KoTextViewIface::setLanguage(const QString & _lang)
{
KCommand *cmd=m_textView->setLanguageCommand(_lang);
delete cmd;
}
QString KoTextViewIface::language() const
{
return m_textView->language();
}
void KoTextViewIface::setDefaultFormat()
{
KCommand *cmd=m_textView->setDefaultFormatCommand();
delete cmd;
}
QColor KoTextViewIface::textColor() const
{
return m_textView->textColor();
}
QString KoTextViewIface::textFontFamily()const
{
return m_textView->textFontFamily();
}
QColor KoTextViewIface::textBackgroundColor()const
{
return m_textView->textBackgroundColor();
}
QColor KoTextViewIface::textUnderlineColor() const
{
return m_textView->textUnderlineColor();
}
double KoTextViewIface::relativeTextSize() const
{
return m_textView->relativeTextSize();
}
void KoTextViewIface::setRelativeTextSize( double _size)
{
KCommand *cmd=m_textView->setRelativeTextSizeCommand(_size);
delete cmd;
}
void KoTextViewIface::setUnderlineColor( const QColor & color )
{
KCommand *cmd=m_textView->setUnderlineColorCommand(color);
delete cmd;
}
void KoTextViewIface::setTextColor(const QColor &color)
{
KCommand *cmd=m_textView->setTextColorCommand(color);
delete cmd;
}
void KoTextViewIface::setTextBackgroundColor(const QColor &color)
{
KCommand *cmd=m_textView->setTextBackgroundColorCommand(color);
delete cmd;
}
void KoTextViewIface::setAlign(int align)
{
KCommand *cmd=m_textView->setAlignCommand(align);
delete cmd;
}
void KoTextViewIface::setAlign(const QString &align)
{
KCommand *cmd=0L;
if( align=="AlignLeft")
cmd=m_textView->setAlignCommand(Qt::AlignLeft);
else if (align=="AlignRight")
cmd=m_textView->setAlignCommand(Qt::AlignRight);
else if (align=="AlignCenter" || align=="AlignHCenter")
cmd=m_textView->setAlignCommand(Qt::AlignHCenter);
else if (align=="AlignJustify")
cmd=m_textView->setAlignCommand(Qt::AlignJustify);
else
{
kdDebug(32500)<<"Align value not recognized...\n";
cmd=m_textView->setAlignCommand(Qt::AlignLeft);
}
delete cmd;
}
bool KoTextViewIface::textDoubleUnderline() const
{
return m_textView->textDoubleUnderline();
}
bool KoTextViewIface::textItalic() const
{
return m_textView->textItalic();
}
bool KoTextViewIface::textBold() const
{
return m_textView->textBold();
}
bool KoTextViewIface::textUnderline()const
{
return m_textView->textUnderline();
}
bool KoTextViewIface::textStrikeOut()const
{
return m_textView->textStrikeOut();
}
bool KoTextViewIface::textSubScript() const
{
return m_textView->textSubScript();
}
bool KoTextViewIface::textSuperScript() const
{
return m_textView->textSuperScript();
}
bool KoTextViewIface::isReadWrite() const
{
return m_textView->isReadWrite();
}
void KoTextViewIface::setReadWrite( bool b )
{
m_textView->setReadWrite(b);
}
void KoTextViewIface::hideCursor()
{
m_textView->hideCursor();
}
void KoTextViewIface::showCursor()
{
m_textView->showCursor();
}
int KoTextViewIface::cursorParagraph() const
{
return m_textView->cursor()->parag()->paragId();
}
int KoTextViewIface::cursorIndex() const
{
return m_textView->cursor()->index();
}
void KoTextViewIface::moveCursorLeft(bool select)
{
m_textView->moveCursor(KoTextView::MoveBackward,select);
}
void KoTextViewIface::moveCursorRight(bool select)
{
m_textView->moveCursor(KoTextView::MoveForward,select);
}
void KoTextViewIface::moveCursorUp(bool select)
{
m_textView->moveCursor(KoTextView::MoveUp,select);
}
void KoTextViewIface::moveCursorDown(bool select)
{
m_textView->moveCursor(KoTextView::MoveDown,select);
}
void KoTextViewIface::moveCursorHome(bool select)
{
m_textView->moveCursor(KoTextView::MoveHome,select);
}
void KoTextViewIface::moveCursorEnd(bool select)
{
m_textView->moveCursor(KoTextView::MoveEnd,select);
}
void KoTextViewIface::moveCursorWordLeft(bool select)
{
m_textView->moveCursor(KoTextView::MoveWordBackward,select);
}
void KoTextViewIface::moveCursorWordRight(bool select)
{
m_textView->moveCursor(KoTextView::MoveWordForward,select);
}
void KoTextViewIface::moveCursorLineEnd(bool select)
{
m_textView->moveCursor(KoTextView::MoveLineEnd,select);
}
void KoTextViewIface::moveCursorLineStart(bool select)
{
m_textView->moveCursor(KoTextView::MoveLineStart,select);
}
bool KoTextViewIface::paragraphHasBorder() const
{
return m_textView->cursor()->parag()->hasBorder();
}
double KoTextViewIface::lineSpacing() const
{
return m_textView->cursor()->parag()->kwLineSpacing();
}
double KoTextViewIface::leftMargin() const
{
return m_textView->cursor()->parag()->margin( QStyleSheetItem::MarginLeft);
}
double KoTextViewIface::rightMargin() const
{
return m_textView->cursor()->parag()->margin( QStyleSheetItem::MarginRight);
}
double KoTextViewIface::spaceBeforeParag() const
{
return m_textView->cursor()->parag()->margin( QStyleSheetItem::MarginTop);
}
double KoTextViewIface::spaceAfterParag() const
{
return m_textView->cursor()->parag()->margin( QStyleSheetItem::MarginBottom);
}
double KoTextViewIface::marginFirstLine() const
{
return m_textView->cursor()->parag()->margin( QStyleSheetItem::MarginFirstLine);
}
void KoTextViewIface::setMarginFirstLine(double pt)
{
m_textView->cursor()->parag()->setMargin( QStyleSheetItem::MarginFirstLine,pt);
}
void KoTextViewIface::setLineSpacing(double pt)
{
m_textView->cursor()->parag()->setLineSpacing(pt);
}
void KoTextViewIface::setLeftMargin(double pt)
{
m_textView->cursor()->parag()->setMargin( QStyleSheetItem::MarginLeft,pt);
}
void KoTextViewIface::setRightMargin(double pt)
{
m_textView->cursor()->parag()->setMargin( QStyleSheetItem::MarginRight,pt);
}
void KoTextViewIface::setSpaceBeforeParag(double pt)
{
m_textView->cursor()->parag()->setMargin( QStyleSheetItem::MarginTop,pt);
}
void KoTextViewIface::setSpaceAfterParag(double pt)
{
m_textView->cursor()->parag()->setMargin( QStyleSheetItem::MarginBottom,pt);
}
void KoTextViewIface::setLeftBorder( const QColor & c,double width )
{
KoTextParag *parag= m_textView->cursor()->parag();
parag->setLeftBorder(KoBorder( c, KoBorder::SOLID, width ));
}
void KoTextViewIface::setRightBorder( const QColor & c,double width )
{
KoTextParag *parag= m_textView->cursor()->parag();
parag->setRightBorder(KoBorder( c, KoBorder::SOLID, width ));
}
void KoTextViewIface::setTopBorder( const QColor & c,double width )
{
KoTextParag *parag= m_textView->cursor()->parag();
parag->setTopBorder(KoBorder( c, KoBorder::SOLID, width ));
}
void KoTextViewIface::setBottomBorder(const QColor & c,double width )
{
KoTextParag *parag= m_textView->cursor()->parag();
parag->setBottomBorder(KoBorder( c, KoBorder::SOLID, width ));
}
double KoTextViewIface::leftBorderWidth() const
{
KoTextParag *parag= m_textView->cursor()->parag();
return parag->leftBorder().width();
}
double KoTextViewIface::rightBorderWidth() const
{
KoTextParag *parag= m_textView->cursor()->parag();
return parag->rightBorder().width();
}
double KoTextViewIface::topBorderWidth() const
{
KoTextParag *parag= m_textView->cursor()->parag();
return parag->topBorder().width();
}
double KoTextViewIface::bottomBorderWidth() const
{
KoTextParag *parag= m_textView->cursor()->parag();
return parag->bottomBorder().width();
}
QColor KoTextViewIface::leftBorderColor() const
{
KoTextParag *parag= m_textView->cursor()->parag();
return parag->leftBorder().color;
}
QColor KoTextViewIface::rightBorderColor() const
{
KoTextParag *parag= m_textView->cursor()->parag();
return parag->rightBorder().color;
}
QColor KoTextViewIface::topBorderColor() const
{
KoTextParag *parag= m_textView->cursor()->parag();
return parag->topBorder().color;
}
QColor KoTextViewIface::bottomBorderColor() const
{
KoTextParag *parag= m_textView->cursor()->parag();
return parag->bottomBorder().color;
}
void KoTextViewIface::setLeftBorderColor( const QColor & c )
{
KoTextParag *parag= m_textView->cursor()->parag();
parag->leftBorder().color = c ;
}
void KoTextViewIface::setRightBorderColor( const QColor & c )
{
KoTextParag *parag= m_textView->cursor()->parag();
parag->rightBorder().color = c ;
}
void KoTextViewIface::setTopBorderColor( const QColor & c )
{
KoTextParag *parag= m_textView->cursor()->parag();
parag->topBorder().color = c ;
}
void KoTextViewIface::setBottomBorderColor(const QColor & c )
{
KoTextParag *parag= m_textView->cursor()->parag();
parag->bottomBorder().color = c ;
}
void KoTextViewIface::setLeftBorderWidth( double _witdh )
{
KoTextParag *parag= m_textView->cursor()->parag();
parag->leftBorder().setPenWidth(_witdh) ;
}
void KoTextViewIface::setRightBorderWidth( double _witdh )
{
KoTextParag *parag= m_textView->cursor()->parag();
parag->rightBorder().setPenWidth(_witdh) ;
}
void KoTextViewIface::setTopBorderWidth( double _witdh )
{
KoTextParag *parag= m_textView->cursor()->parag();
parag->topBorder().setPenWidth(_witdh) ;
}
void KoTextViewIface::setBottomBorderWidth( double _witdh )
{
KoTextParag *parag= m_textView->cursor()->parag();
parag->bottomBorder().setPenWidth(_witdh) ;
}
void KoTextViewIface::changeCaseOfText( const QString & caseType)
{
KCommand *cmd=0L;
if( caseType.lower() == "uppercase" )
{
cmd=m_textView->setChangeCaseOfTextCommand( KoChangeCaseDia::UpperCase );
}
else if( caseType.lower() =="lowercase" )
{
cmd=m_textView->setChangeCaseOfTextCommand( KoChangeCaseDia::LowerCase );
}
else if( caseType.lower() =="titlecase" )
{
cmd=m_textView->setChangeCaseOfTextCommand( KoChangeCaseDia::TitleCase );
}
else if( caseType.lower() =="togglecase" )
{
cmd=m_textView->setChangeCaseOfTextCommand( KoChangeCaseDia::ToggleCase );
}
else if ( caseType.lower() =="sentencecase" )
{
cmd=m_textView->setChangeCaseOfTextCommand( KoChangeCaseDia::SentenceCase );
}
else
kdDebug(32500)<<"Error in void KoTextViewIface::changeCaseOfText( const QString & caseType) parameter\n";
delete cmd;
}
bool KoTextViewIface::isALinkVariable() const
{
return (m_textView->linkVariable()!=0);
}
QString KoTextViewIface::linkVariableUrl( ) const
{
KoLinkVariable *var=m_textView->linkVariable();
if ( !var)
return QString::null;
else
{
return var->url();
}
}
QString KoTextViewIface::linkVariableName( ) const
{
KoLinkVariable *var=m_textView->linkVariable();
if ( !var)
return QString::null;
else
{
return var->value();
}
}
bool KoTextViewIface::changeLinkVariableUrl( const QString & _url) const
{
KoLinkVariable *var=m_textView->linkVariable();
if ( !var)
return false;
else
{
var->setLink(var->value(), _url);
var->recalc();
}
return true;
}
bool KoTextViewIface::changeLinkVariableName( const QString & _name) const
{
KoLinkVariable *var=m_textView->linkVariable();
if ( !var)
return false;
else
{
var->setLink(_name, var->url());
var->recalc();
}
return true;
}
bool KoTextViewIface::isANoteVariable() const
{
KoNoteVariable *var = dynamic_cast<KoNoteVariable *>(m_textView->variable());
return (var!=0);
}
QString KoTextViewIface::noteVariableText() const
{
KoNoteVariable *var = dynamic_cast<KoNoteVariable *>(m_textView->variable());
if( var )
return var->note();
else
return QString::null;
}
bool KoTextViewIface::setNoteVariableText(const QString & note) const
{
KoNoteVariable *var = dynamic_cast<KoNoteVariable *>(m_textView->variable());
if( var )
{
var->setNote( note);
return true;
}
else
return false;
}
void KoTextViewIface::removeComment()
{
removeComment();
}
QString KoTextViewIface::underlineStyle() const
{
return KoTextFormat::underlineStyleToString( m_textView->underlineStyle() );
}
QString KoTextViewIface::strikeOutStyle()const
{
return KoTextFormat::strikeOutStyleToString( m_textView->strikeOutStyle() );
}
void KoTextViewIface::addBookmarks(const QString &url)
{
m_textView->addBookmarks(url);
}
void KoTextViewIface::copyLink()
{
m_textView->copyLink();
}
void KoTextViewIface::removeLink()
{
m_textView->removeLink();
}
bool KoTextViewIface::wordByWord() const
{
return m_textView->wordByWord();
}
void KoTextViewIface::setWordByWord( bool _b )
{
KCommand *cmd=m_textView->setWordByWordCommand(_b );
delete cmd;
}
void KoTextViewIface::copyTextOfComment()
{
m_textView->copyTextOfComment();
}
QString KoTextViewIface::fontAttibute()const
{
return KoTextFormat::attributeFontToString( m_textView->fontAttribute() );
}
void KoTextViewIface::insertNonbreakingSpace()
{
m_textView->insertNonbreakingSpace();
}
void KoTextViewIface::insertNonbreakingHyphen()
{
m_textView->insertNonbreakingHyphen();
}