本文整理汇总了C++中CharStyle类的典型用法代码示例。如果您正苦于以下问题:C++ CharStyle类的具体用法?C++ CharStyle怎么用?C++ CharStyle使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CharStyle类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: QChar
void CharSelect::slot_insertUserSpecialChar(QChar ch, QString font)
{
if (!m_Item)
return;
PageItem_TextFrame *cItem;
if (m_doc->appMode == modeEditTable)
cItem = m_Item->asTable()->activeCell().textFrame();
else
cItem = m_Item->asTextFrame();
if (cItem->HasSel)
cItem->deleteSelectedTextFromFrame();
cItem->invalidateLayout();
// //CB: Avox please make text->insertchar(char) so none of this happens in gui code, and item can tell doc its changed so the view and mainwindow slotdocch are not necessary
if (ch == QChar(10))
ch = QChar(13);
if (ch == QChar(9))
ch = QChar(32);
int pot = cItem->itemText.cursorPosition();
cItem->itemText.insertChars(ch, true);
CharStyle nstyle = m_Item->itemText.charStyle(pot);
nstyle.setFont((*m_doc->AllFonts)[font]);
cItem->itemText.applyCharStyle(pot, 1, nstyle);
m_doc->view()->DrawNew();
m_doc->changed();
}
示例2: hyphenGlyph
ScFace::gid_type ScFace::hyphenGlyph(const CharStyle& style) const
{
if (style.hyphenChar() == 0)
return SpecialChars::ZWNBSPACE.unicode() + ScFace::CONTROL_GLYPHS;
if (style.hyphenChar() == 0x2010)
return hyphenGlyph();
return m_m->char2CMap(style.hyphenChar());
}
示例3: updateCharStyle
void PropertiesPalette_Text::updateCharStyle(const CharStyle& charStyle)
{
if (!m_ScMW || m_ScMW->scriptIsRunning())
return;
advancedWidgets->updateCharStyle(charStyle);
colorWidgets->updateCharStyle(charStyle);
showFontFace(charStyle.font().scName());
showFontSize(charStyle.fontSize());
}
示例4: tag_end
void RTFGenParser::tag_end(const QString &tagName)
{
// Roll back until we find our tag.
bool found = false;
for(Tag* pTag = m_tags.peek(); pTag != NULL && !found; pTag = m_tags.peek())
{
if (pTag->name == tagName)
{
found = true;
}
if (pTag->hasCharStyle())
{
CharStyle style = *(pTag->pCharStyle);
// We must pop here, so that getTopTagWithCharStyle will find a parent tag.
m_tags.pop();
pTag = NULL; // to avoid confusion
Tag* pParentTag = m_tags.getTopTagWithCharStyle();
if (pParentTag != NULL)
{
if (pParentTag->hasCharStyle())
{
CharStyle* pParentStyle = pParentTag->pCharStyle;
// Roll back the character style. This is regardless of whether
// we found the closed tag; we just collapse all styles on our way.
QString rtf = pParentStyle->getDiffRTF(style);
if (!rtf.isEmpty())
{
res += rtf.utf8();
m_bSpace = true;
}
}
}
}
else // if this tag has no char style attached
{
m_tags.pop(); // just pop the tag out
pTag = NULL; // to avoid confusion
}
if (found)
{
if (tagName.lower() == "p")
{
res += "\\par";
m_bSpace = true;
}
}
}
}
示例5: setStyle
void CharStyle::setStyle(const CharStyle& other)
{
other.validate();
setParent(other.parent());
m_contextversion = -1;
#define ATTRDEF(attr_TYPE, attr_GETTER, attr_NAME, attr_DEFAULT) \
inh_##attr_NAME = other.inh_##attr_NAME; \
m_##attr_NAME = other.m_##attr_NAME;
#include "charstyle.attrdefs.cxx"
#undef ATTRDEF
updateFeatures();
}
示例6: updateCharStyle
void PropertyWidget_Advanced::updateCharStyle(const CharStyle& charStyle)
{
if (!m_ScMW || m_ScMW->scriptIsRunning())
return;
showTextScaleH(charStyle.scaleH());
showTextScaleV(charStyle.scaleV());
showTracking(charStyle.tracking());
showBaseLineOffset(charStyle.baselineOffset());
normWordTrackingSpinBox->showValue(charStyle.wordTracking() * 100.0);
}
示例7: applyCharStyle
void CharStyle::applyCharStyle(const CharStyle & other)
{
if (other.hasParent() && (other.parent() != Style::INHERIT_PARENT))
{
setStyle(other);
return;
}
Style::applyStyle(other);
#define ATTRDEF(attr_TYPE, attr_GETTER, attr_NAME, attr_DEFAULT) \
if (! other.inh_##attr_NAME) \
set##attr_NAME(other.m_##attr_NAME);
#include "charstyle.attrdefs.cxx"
#undef ATTRDEF
updateFeatures();
}
示例8: QString
void TestStoryText::removeCharStyle()
{
StoryText story;
story.insertChars(0,
QString("0123456789") + SpecialChars::PARSEP +
QString("abcdefghijklmnopqrstuvwxyz") + SpecialChars::PARSEP +
QString("ABCDEFGHIJKLMNOPQRSTUVWXYZ"));
QCOMPARE(story.nrOfRuns(), 3u);
CharStyle cs;
cs.setFontSize(10);
story.applyCharStyle(5 + 26 + 1, 26 + 1, cs);
story.removeChars(11, 26+1);
QCOMPARE(story.nrOfRuns(), 3u);
QCOMPARE(story.startOfRun(0), 0);
QCOMPARE(story.endOfRun(0), 11);
QCOMPARE(story.startOfRun(1), 11);
QCOMPARE(story.endOfRun(1), 5 + 26 + 1);
QCOMPARE(story.startOfRun(2), 5 + 26 + 1);
QCOMPARE(story.endOfRun(2), 11 + 26);
}
示例9: eraseCharStyle
void CharStyle::eraseCharStyle(const CharStyle & other)
{
other.validate();
Style::eraseStyle(other);
#define ATTRDEF(attr_TYPE, attr_GETTER, attr_NAME, attr_DEFAULT) \
if (!inh_##attr_NAME && m_##attr_NAME == other.m_##attr_NAME) \
reset##attr_NAME();
#include "charstyle.attrdefs.cxx"
#undef ATTRDEF
updateFeatures();
}
示例10: setCharStyleAttributes
void gtAction:: setCharStyleAttributes(gtFont *font, CharStyle& style)
{
int flags = font->getFlags();
style.erase();
if ((flags & gtFont::familyWasSet) || (flags & gtFont::weightWasSet) || (flags & gtFont::slantWasSet))
style.setFont(validateFont(font));
if (flags & gtFont::sizeWasSet)
style.setFontSize(font->getSize());
if (flags & gtFont::effectWasSet)
style.setFeatures(static_cast<StyleFlag>(font->getEffectsValue()).featureList());
if (flags & gtFont::fillColorWasSet)
style.setFillColor(parseColor(font->getColor()));
if (flags & gtFont::fillShadeWasSet)
style.setFillShade(font->getShade());
if (flags & gtFont::strokeColorWasSet)
style.setStrokeColor(parseColor(font->getStrokeColor()));
if (flags & gtFont::strokeShadeWasSet)
style.setStrokeShade(font->getStrokeShade());
if (flags & gtFont::hscaleWasSet)
style.setScaleH(font->getHscale());
if (flags & gtFont::kerningWasSet)
style.setTracking(font->getKerning());
}
示例11: insertSpecialChar
void CharSelect::slot_insertSpecialChar()
{
emit insertSpecialChar();
if (!m_Item)
return;
PageItem_TextFrame *cItem;
if (m_doc->appMode == modeEditTable)
cItem = m_Item->asTable()->activeCell().textFrame();
else
cItem = m_Item->asTextFrame();
if (cItem->HasSel)
cItem->deleteSelectedTextFromFrame();
cItem->invalidateLayout();
//CB: Avox please make text->insertchar(char) so none of this happens in gui code, and item can tell doc its changed so the view and mainwindow slotdocch are not necessary
QChar ch;
QString fontName = m_doc->currentStyle.charStyle().font().scName();
if (m_enhanced)
fontName = m_enhanced->getUsedFont();
for (int a=0; a<chToIns.length(); ++a)
{
ch = chToIns.at(a);
if (ch == QChar(10))
ch = QChar(13);
if (ch == QChar(9))
ch = QChar(32);
int pot = cItem->itemText.cursorPosition();
cItem->itemText.insertChars(ch, true);
CharStyle nstyle = m_Item->itemText.charStyle(pot);
nstyle.setFont((*m_doc->AllFonts)[fontName]);
cItem->itemText.applyCharStyle(pot, 1, nstyle);
}
m_doc->view()->DrawNew();
m_doc->changed();
// delEdit();
}
示例12: PyErr_SetString
/*! 03.01.2007 - 05.01.2007 : Joachim Neu : Create a char style.
Special thanks go to avox for helping me! */
PyObject *scribus_createcharstyle(PyObject* /* self */, PyObject* args, PyObject* keywords)
{
char* keywordargs[] = {
const_cast<char*>("name"),
const_cast<char*>("font"),
const_cast<char*>("fontsize"),
const_cast<char*>("features"),
const_cast<char*>("fillcolor"),
const_cast<char*>("fillshade"),
const_cast<char*>("strokecolor"),
const_cast<char*>("strokeshade"),
const_cast<char*>("baselineoffset"),
const_cast<char*>("shadowxoffset"),
const_cast<char*>("shadowyoffset"),
const_cast<char*>("outlinewidth"),
const_cast<char*>("underlineoffset"),
const_cast<char*>("underlinewidth"),
const_cast<char*>("strikethruoffset"),
const_cast<char*>("strikethruwidth"),
const_cast<char*>("scaleh"),
const_cast<char*>("scalev"),
const_cast<char*>("tracking"),
const_cast<char*>("language"),
NULL};
char *Name = const_cast<char*>(""), *Font = const_cast<char*>("Times"), *Features = const_cast<char*>("inherit"), *FillColor = const_cast<char*>("Black"), *StrokeColor = const_cast<char*>("Black"), *Language = const_cast<char*>("");
double FontSize = 200, FillShade = 1, StrokeShade = 1, ScaleH = 1, ScaleV = 1, BaselineOffset = 0, ShadowXOffset = 0, ShadowYOffset = 0, OutlineWidth = 0, UnderlineOffset = 0, UnderlineWidth = 0, StrikethruOffset = 0, StrikethruWidth = 0, Tracking = 0;
if (!PyArg_ParseTupleAndKeywords(args, keywords, "es|esdesesdesddddddddddddes", keywordargs,
"utf-8", &Name, "utf-8", &Font, &FontSize, "utf-8", &Features,
"utf-8", &FillColor, &FillShade, "utf-8", &StrokeColor, &StrokeShade, &BaselineOffset, &ShadowXOffset,
&ShadowYOffset, &OutlineWidth, &UnderlineOffset, &UnderlineWidth, &StrikethruOffset, &StrikethruWidth,
&ScaleH, &ScaleV, &Tracking, "utf-8", &Language))
return NULL;
if(!checkHaveDocument())
return NULL;
if(Name == EMPTY_STRING)
{
PyErr_SetString(PyExc_ValueError, QObject::tr("Cannot have an empty char style name.","python error").toLocal8Bit().constData());
return NULL;
}
QStringList FeaturesList = QString(Features).split(QString(","));
CharStyle TmpCharStyle;
TmpCharStyle.setName(Name);
TmpCharStyle.setFont((*ScCore->primaryMainWindow()->doc->AllFonts)[QString(Font)]);
TmpCharStyle.setFontSize(FontSize * 10);
TmpCharStyle.setFeatures(FeaturesList);
TmpCharStyle.setFillColor(QString(FillColor));
TmpCharStyle.setFillShade(FillShade * 100);
TmpCharStyle.setStrokeColor(QString(StrokeColor));
TmpCharStyle.setStrokeShade(StrokeShade * 100);
TmpCharStyle.setBaselineOffset(BaselineOffset);
TmpCharStyle.setShadowXOffset(ShadowXOffset);
TmpCharStyle.setShadowYOffset(ShadowYOffset);
TmpCharStyle.setOutlineWidth(OutlineWidth);
TmpCharStyle.setUnderlineOffset(UnderlineOffset);
TmpCharStyle.setUnderlineWidth(UnderlineWidth);
TmpCharStyle.setStrikethruOffset(StrikethruOffset);
TmpCharStyle.setStrikethruWidth(StrikethruWidth);
TmpCharStyle.setScaleH(ScaleH * 1000);
TmpCharStyle.setScaleV(ScaleV * 1000);
TmpCharStyle.setTracking(Tracking);
TmpCharStyle.setLanguage(QString(Language));
StyleSet<CharStyle> TmpStyleSet;
TmpStyleSet.create(TmpCharStyle);
ScCore->primaryMainWindow()->doc->redefineCharStyles(TmpStyleSet, false);
// PV - refresh the Style Manager window.
// I thought that this can work but it doesn't:
// ScCore->primaryMainWindow()->styleMgr()->reloadStyleView();
// So the brute force setDoc is called...
ScCore->primaryMainWindow()->styleMgr()->setDoc(ScCore->primaryMainWindow()->doc);
Py_RETURN_NONE;
}
示例13: getContacts
string RTFGenParser::parse(const QString &text)
{
res = "";
m_res_size = 0;
m_codec = getContacts()->getCodec(m_contact);
int charset = 0;
for (const ENCODING *c = getContacts()->getEncodings(); c->language; c++){
if (!strcasecmp(c->codec, m_codec->name())){
charset = c->rtf_code;
break;
}
}
#ifdef WIN32
if ((charset == 0) && !strcasecmp(m_codec->name(), "system")){
char buff[256];
int res = GetLocaleInfoA(LOCALE_USER_DEFAULT, LOCALE_IDEFAULTANSICODEPAGE, (char*)&buff, sizeof(buff));
if (res){
unsigned codepage = atol(buff);
if (codepage){
for (const rtf_cp *c = rtf_cps; c->cp; c++){
if (c->cp == codepage)
charset = c->charset;
}
}
}
}
#endif
unsigned ansicpg = 0;
const char *send_encoding = 0;
m_codec = NULL;
if (charset){
for (const ENCODING *c = getContacts()->getEncodings(); c->language; c++){
if ((c->rtf_code == charset) && c->bMain){
send_encoding = c->codec;
m_codec = getContacts()->getCodecByName(send_encoding);
ansicpg = c->cp_code;
break;
}
}
}
// Add defaults to the tables
m_fontFaces.push_back("MS Sans Serif");
m_colors.push_back(m_foreColor);
// Create a "fake" tag which'll serve as the default style
CharStyle style;
style.faceIdx = 0;
style.colorIdx = 1; // colors are 1-based (0 = default)
style.sizePt = 12; // default according to Microsoft
Tag& tag = *(m_tags.pushNew());
tag.setCharStyle(style);
// Assume we go immediately after a tag.
m_bSpace = true;
HTMLParser::parse(text);
string s;
s = "{\\rtf1\\ansi";
if (ansicpg){
s += "\\ansicpg";
s += number(ansicpg);
}
s += "\\deff0\r\n";
s += "{\\fonttbl";
unsigned n = 0;
for (list<QString>::iterator it_face = m_fontFaces.begin(); it_face != m_fontFaces.end(); it_face++, n++){
s += "{\\f";
s += number(n);
QString face = (*it_face);
if (face.find("Times") >= 0){
s += "\\froman";
}else if (face.find("Courier") >= 0){
s += "\\fmodern";
}else{
s += "\\fswiss";
}
if (charset){
s += "\\fcharset";
s += number(charset);
}
s += " ";
int pos = face.find(QRegExp(" +["));
if (pos > 0)
face = face.left(pos);
s += static_cast<string>(face.toLatin1());
s += ";}";
}
s += "}\r\n";
s += "{\\colortbl ;";
for (list<QColor>::iterator it_colors = m_colors.begin(); it_colors != m_colors.end(); ++it_colors){
QColor c = *it_colors;
s += "\\red";
s += number(c.red());
s += "\\green";
s += number(c.green());
s += "\\blue";
s += number(c.blue());
s += ";";
}
s += "}\r\n";
//.........这里部分代码省略.........
示例14: hyphenWidth
double ScFace::hyphenWidth(const CharStyle& style, qreal size) const
{
if (style.hyphenChar() == 0)
return 0;
return glyphBBox(hyphenGlyph(style), size).width;
}
示例15: updateCharStyle
void PropertyWidget_TextColor::updateCharStyle(const CharStyle& charStyle)
{
if (!m_ScMW || m_ScMW->scriptIsRunning())
return;
showOutlineW (charStyle.outlineWidth());
showShadowOffset(charStyle.shadowXOffset(), charStyle.shadowYOffset());
showTextColors(charStyle.strokeColor(), charStyle.fillColor(), charStyle.strokeShade(), charStyle.fillShade());
showTextEffects(charStyle.effects());
showStrikeThru(charStyle.strikethruOffset() , charStyle.strikethruWidth());
showUnderline (charStyle.underlineOffset(), charStyle.underlineWidth());
}