Scribus API for plugins
A stable, high level and documented interface to the Scribus core that plugin developers can use to access the Scribus features.
scribusAPIDocumentItemTextFormatting.h
1 /*
2  * This file is part of the ScribusAPIDocument plugin
3  * (c) GPL 2, Ale Rimoldi <ale@graphicslab.org>
4  * For the full copyright and license information, please view the LICENSE
5  */
6 #ifndef SCRIBUSAPIDOCUMENTITEMTEXTFORMATTING_H
7 #define SCRIBUSAPIDOCUMENTITEMTEXTFORMATTING_H
8 
9 #include <QDebug>
10 #include <QObject>
11 
12 #include <QString>
13 #include <QVector>
14 
15 class PageItem;
16 
18 
22 enum ScribusAPIDocumentItemTextFormattingFlag {
23  formattingFlag_None = 0,
24  formattingFlag_Superscript = 1 << 0, // 1
25  formattingFlag_Subscript = 1 << 1, // 2
26  formattingFlag_Outline = 1 << 2, // 4,
27  formattingFlag_Underline = 1 << 3, // 8
28  formattingFlag_Strikethrough = 1 << 4,
29  formattingFlag_AllCaps = 1 << 5,
30  formattingFlag_SmallCaps = 1 << 6,
31  formattingFlag_HyphenationPossible = 1 << 7, //Hyphenation possible here (Soft Hyphen)
32  formattingFlag_Shadowed = 1 << 8,
33  formattingFlag_UnderlineWords= 1 << 9,
34  formattingFlag_Reserved01 = 1 << 10, //free, not used in the moment
35  formattingFlag_DropCap = 1 << 11,
36  formattingFlag_Bold = 1 << 12, // not in scribus
37  formattingFlag_Italic = 1 << 13,
38  formattingFlag_All = (1 << 14) - 1,
39 };
40 
41 
46 {
47  Q_OBJECT
48 
49 public:
52 
53  void setPosition(int position) { this->position = position; }
54  void readAtPosition(PageItem* item, int position);
55  void readAtPosition(int position) { readAtPosition(this->item, position); }
56  void readAtPosition() { readAtPosition(this->item, this->position); }
57 
58  QString getParagraphStyleName() { return paragraphStyleName; }
59  QString getCharacterStyleName() { return characterStyleName; }
60 
61  // QString getXhtmlContent();
62  bool isBold() { return formatting & formattingFlag_Bold; }
63  bool isItalic() { return formatting & formattingFlag_Italic; }
64  bool isSuperscript() { return formatting & formattingFlag_Superscript; }
65  bool isSubscript() { return formatting & formattingFlag_Subscript; }
66  bool isUnderline() { return formatting & formattingFlag_Underline; }
67  bool isUnderlineWords() { return formatting & formattingFlag_UnderlineWords; }
68  bool isStrikethrough() { return formatting & formattingFlag_Strikethrough; }
69  // else if (feature != CharStyle::INHERIT) // what to do with inherit?
70 
71 protected:
72  PageItem* item;
73  int position;
74  QString paragraphStyleName;
75  QString characterStyleName;
76  int formatting;
77 };
78 
79 QDebug operator<<(QDebug dbg, const ScribusAPIDocumentItemTextFormatting &formatting);
80 
81 #endif //SCRIBUSAPIDOCUMENTITEMTEXTFORMATTING_H
Definition: scribusAPIDocumentItem.h:39
Read and store the text formatting at the current cursor position.
Definition: scribusAPIDocumentItemTextFormatting.h:45