22 #ifndef GRAPHICS_MACGUI_MACTEXT_H 23 #define GRAPHICS_MACGUI_MACTEXT_H 25 #include "graphics/macgui/mactext-canvas.h" 32 int startRow, startCol;
38 startRow = startCol = -1;
43 return startX != endX || startY != endY;
49 MacText(
MacWidget *parent,
int x,
int y,
int w,
int h,
MacWindowManager *wm,
const Common::U32String &s,
const MacFont *font, uint32 fgcolor, uint32 bgcolor,
int maxWidth,
TextAlign textAlignment =
kTextAlignLeft,
int interlinear = 0, uint16 border = 0, uint16 gutter = 0, uint16 boxShadow = 0, uint16 textShadow = 0,
bool fixedDims =
true,
bool scrollBar =
false);
58 virtual void resize(
int w,
int h);
61 bool needsRedraw()
override {
return _contentIsDirty || _cursorDirty; }
63 WindowClick isInScrollBar(
int x,
int y)
const;
64 void setScrollBar(
bool enable);
65 void resizeScrollBar(
int w,
int h);
67 void setAutoSelect(
bool enable) { _autoSelect = enable; }
71 void draw(
ManagedSurface *g,
int x,
int y,
int w,
int h,
int xoff,
int yoff);
73 bool draw(
bool forceRedraw =
false)
override;
81 int getInterLinear() {
return _canvas._interLinear; }
82 void setInterLinear(
int interLinear);
83 void setMaxWidth(
int maxWidth);
84 void setDefaultFormatting(uint16 fontId, byte textSlant, uint16 fontSize,
85 uint16 palinfo1, uint16 palinfo2, uint16 palinfo3);
86 const MacFontRun &getDefaultFormatting() {
return _defaultFormatting; }
89 TextAlign getAlign() {
return _canvas._textAlignment; }
91 void setActive(
bool active)
override;
92 void setEditable(
bool editable);
93 void setInputPadding(
bool enable){ _addInputPadding = enable; }
95 void setColors(uint32 fg, uint32 bg)
override;
97 void setTextColor(uint32 color, uint32 line);
98 void setTextColor(uint32 color, uint32 start, uint32 end);
100 void appendText(
const Common::U32String &str,
int fontId = kMacFontSystem,
int fontSize = 12,
int fontSlant = kMacFontRegular,
bool skipAdd =
false);
101 void appendText(
const Common::U32String &str,
int fontId = kMacFontSystem,
int fontSize = 12,
int fontSlant = kMacFontRegular, uint16 r = 0, uint16 g = 0, uint16 b = 0,
bool skipAdd =
false);
102 void appendText(
const Common::U32String &str,
const Font *font, uint16 r = 0, uint16 g = 0, uint16 b = 0,
bool skipAdd =
false);
104 int getTextFont() {
return _defaultFormatting.fontId; }
105 void enforceTextFont(uint16 fontId);
110 int getTextSize() {
return _defaultFormatting.fontSize; }
111 void setTextSize(
int textSize);
113 int getTextSize(
int start,
int end);
114 void setTextSize(
int textSize,
int start,
int end);
116 uint32 getTextColor() {
return _defaultFormatting.fgcolor; }
117 uint32 getTextColor(
int start,
int end);
119 int getTextFont(
int start,
int end);
120 void setTextFont(
int fontId,
int start,
int end);
122 int getTextSlant() {
return _defaultFormatting.textSlant; }
123 int getTextSlant(
int start,
int end);
124 void setTextSlant(
int textSlant,
int start,
int end);
125 void enforceTextSlant(
int textSlant);
128 int getMouseChar(
int x,
int y);
129 int getMouseWord(
int x,
int y);
130 int getMouseItem(
int x,
int y);
131 int getMouseLine(
int x,
int y);
134 bool setImageArchive(
const Common::Path &name) {
return _canvas._imageArchive.setImageArchive(name); }
138 void setTextChunks(
int start,
int end,
int param,
void (*callback)(
MacFontRun &,
int));
141 void deletePreviousCharInternal(
int *row,
int *col);
142 void insertTextFromClipboard();
147 void appendTextDefault(
const Common::String &str,
bool skipAdd =
false);
149 void removeLastLine();
150 int getLineCount() {
return _canvas._text.size(); }
151 int getLastLineWidth();
152 int getTextHeight() {
return _canvas._textMaxHeight; }
153 int getLineHeight(
int line);
154 int getTextMaxWidth() {
return _canvas._textMaxWidth; }
158 void setFixDims(
bool fixed) { _fixedDims = fixed; }
159 bool getFixDims() {
return _fixedDims; }
161 void deleteSelection();
162 void deletePreviousChar(
int *row,
int *col);
163 void addNewLine(
int *row,
int *col);
164 void insertChar(byte c,
int *row,
int *col);
166 void getChunkPosFromIndex(
int index, uint &lineNum, uint &chunkNum, uint &offset);
167 void getRowCol(
int x,
int y,
int *sx,
int *sy,
int *row,
int *col,
int *chunk_ =
nullptr);
168 void getLineCharacter(
int x,
int y,
int *sx,
int *sy,
int *line,
int *character,
int *chunk_ =
nullptr);
169 Common::U32String getTextChunk(
int startRow,
int startCol,
int endRow,
int endCol,
bool formatted =
false,
bool newlines =
true);
172 uint getSelectionIndex(
bool start);
173 void clearSelection();
175 const SelectedText *getSelectedText() {
return &_selectedText; }
176 bool hasSelection() {
return _selectedText.endY != -1; }
178 int getLineSpacing() {
return _canvas._interLinear; }
185 void setSelection(
int pos,
bool start);
191 void setSelRange(
int selStart,
int selEnd);
193 void scroll(
int delta);
200 void init(uint32 fgcolor, uint32 bgcolor,
int maxWidth,
TextAlign textAlignment,
int interlinear, uint16 textShadow,
bool macFontMode);
205 void drawSelection(
int xoff,
int yoff);
206 void updateCursorPos();
208 void startMarking(
int x,
int y);
209 void updateTextSelection(
int x,
int y);
214 void clearChunkInput();
217 int _cursorX, _cursorY;
219 int _cursorRow, _cursorCol;
253 bool _addInputPadding;
255 bool _inTextSelection;
257 bool _selectionIsDirty;
Definition: managed_surface.h:51
TextAlign
Definition: font.h:48
Align the text to the left.
Definition: font.h:51
Definition: mactext-canvas.h:32
Definition: macwindowmanager.h:147
Definition: mactext-canvas.h:110
Definition: formatinfo.h:28
Definition: macfontmanager.h:110
Definition: macwindowborder.h:81