|
|
Line 1: |
Line 1: |
| When working with multiline controls [[ctrlTextWidth]] or [[getTextWidth]] will not return a proper value since the text will be treated as one long line.
| |
|
| |
|
| '''Solution (Execute in [[Eden Editor]]):'''
| |
| <code>
| |
| [[disableSerialization]];
| |
|
| |
| [[private]] _display = [[findDisplay]] 313 [[createDisplay]] "RscDisplayEmpty";
| |
|
| |
| [[private]] _edit = _display [[ctrlCreate]] ["RscEditMulti", -1];
| |
| _edit [[ctrlSetPosition]] [0,0,1,1];
| |
| _edit [[ctrlSetBackgroundColor]] [0,0,0,1];
| |
| _edit [[ctrlSetFont]] "EtelkaMonospacePro";
| |
| _edit [[ctrlSetFontHeight]] 0.03;
| |
| _edit [[ctrlCommit]] 0;
| |
|
| |
| [[private]] _longestLineWidth = 0;
| |
| [[private]] _exampleString = "abcdefghijklmnopqrstuvxyz0134567890";
| |
| [[private]] _text = "";
| |
|
| |
| [[for]] "_lines" [[from]] 1 [[to]] 400 [[do]] {{cc|Loop through all lines and find the longest one}}
| |
| {
| |
| _lineText = _exampleString [[select]] <nowiki>[</nowiki>[[round]] [[random]] 35];
| |
| _longestLineWidth = _longestLineWidth [[max]] (_lineText [[getTextWidth]] ["EtelkaMonospacePro", 0.03]);
| |
| _text = _text [[+]] _lineText [[+]] [[endl]];
| |
| };
| |
|
| |
| _edit [[ctrlSetText]] _text;
| |
| _edit [[ctrlSetPositionW]] (_longestLineWidth [[+]] 2 * 0.008); {{cc|Width of longest line + left and right margin set in engine}}
| |
| _edit [[ctrlCommit]] 1; </code>
| |