You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
[Complex Text Layouts] Refactor Font class, default themes and controls to use Text Server interface.
Implement interface mirroring. Add TextLine and TextParagraph classes. Handle UTF-16 input on macOS and Windows.
This commit is contained in:
@@ -141,6 +141,7 @@ void GridContainer::_notification(int p_what) {
|
||||
// Finally, fit the nodes.
|
||||
int col_expand = col_expanded.size() > 0 ? remaining_space.width / col_expanded.size() : 0;
|
||||
int row_expand = row_expanded.size() > 0 ? remaining_space.height / row_expanded.size() : 0;
|
||||
bool rtl = is_layout_rtl();
|
||||
|
||||
int col_ofs = 0;
|
||||
int row_ofs = 0;
|
||||
@@ -156,24 +157,37 @@ void GridContainer::_notification(int p_what) {
|
||||
valid_controls_index++;
|
||||
|
||||
if (col == 0) {
|
||||
col_ofs = 0;
|
||||
if (rtl) {
|
||||
col_ofs = get_size().width;
|
||||
} else {
|
||||
col_ofs = 0;
|
||||
}
|
||||
if (row > 0) {
|
||||
row_ofs += (row_expanded.has(row - 1) ? row_expand : row_minh[row - 1]) + vsep;
|
||||
}
|
||||
}
|
||||
|
||||
Point2 p(col_ofs, row_ofs);
|
||||
Size2 s(col_expanded.has(col) ? col_expand : col_minw[col], row_expanded.has(row) ? row_expand : row_minh[row]);
|
||||
|
||||
fit_child_in_rect(c, Rect2(p, s));
|
||||
|
||||
col_ofs += s.width + hsep;
|
||||
if (rtl) {
|
||||
Size2 s(col_expanded.has(col) ? col_expand : col_minw[col], row_expanded.has(row) ? row_expand : row_minh[row]);
|
||||
Point2 p(col_ofs - s.width, row_ofs);
|
||||
fit_child_in_rect(c, Rect2(p, s));
|
||||
col_ofs -= s.width + hsep;
|
||||
} else {
|
||||
Point2 p(col_ofs, row_ofs);
|
||||
Size2 s(col_expanded.has(col) ? col_expand : col_minw[col], row_expanded.has(row) ? row_expand : row_minh[row]);
|
||||
fit_child_in_rect(c, Rect2(p, s));
|
||||
col_ofs += s.width + hsep;
|
||||
}
|
||||
}
|
||||
|
||||
} break;
|
||||
case NOTIFICATION_THEME_CHANGED: {
|
||||
minimum_size_changed();
|
||||
} break;
|
||||
case NOTIFICATION_TRANSLATION_CHANGED:
|
||||
case NOTIFICATION_LAYOUT_DIRECTION_CHANGED: {
|
||||
queue_sort();
|
||||
} break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user