1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Merge pull request #110819 from KoBeWi/overrun_with_dupes

Remove overrun code duplication
This commit is contained in:
Thaddeus Crews
2025-09-23 14:51:45 -05:00
5 changed files with 41 additions and 97 deletions

View File

@@ -2364,3 +2364,39 @@ TextServer::TextServer() {
TextServer::~TextServer() {
}
BitField<TextServer::TextOverrunFlag> TextServer::get_overrun_flags_from_behavior(TextServer::OverrunBehavior p_behavior) {
BitField<TextOverrunFlag> overrun_flags = OVERRUN_NO_TRIM;
switch (p_behavior) {
case OVERRUN_TRIM_WORD_ELLIPSIS_FORCE: {
overrun_flags.set_flag(OVERRUN_TRIM);
overrun_flags.set_flag(OVERRUN_TRIM_WORD_ONLY);
overrun_flags.set_flag(OVERRUN_ADD_ELLIPSIS);
overrun_flags.set_flag(OVERRUN_ENFORCE_ELLIPSIS);
} break;
case OVERRUN_TRIM_ELLIPSIS_FORCE: {
overrun_flags.set_flag(OVERRUN_TRIM);
overrun_flags.set_flag(OVERRUN_ADD_ELLIPSIS);
overrun_flags.set_flag(OVERRUN_ENFORCE_ELLIPSIS);
} break;
case OVERRUN_TRIM_WORD_ELLIPSIS:
overrun_flags.set_flag(OVERRUN_TRIM);
overrun_flags.set_flag(OVERRUN_TRIM_WORD_ONLY);
overrun_flags.set_flag(OVERRUN_ADD_ELLIPSIS);
break;
case OVERRUN_TRIM_ELLIPSIS:
overrun_flags.set_flag(OVERRUN_TRIM);
overrun_flags.set_flag(OVERRUN_ADD_ELLIPSIS);
break;
case OVERRUN_TRIM_WORD:
overrun_flags.set_flag(OVERRUN_TRIM);
overrun_flags.set_flag(OVERRUN_TRIM_WORD_ONLY);
break;
case OVERRUN_TRIM_CHAR:
overrun_flags.set_flag(OVERRUN_TRIM);
break;
case OVERRUN_NO_TRIMMING:
break;
}
return overrun_flags;
}

View File

@@ -246,6 +246,8 @@ protected:
#endif
public:
static BitField<TextOverrunFlag> get_overrun_flags_from_behavior(OverrunBehavior p_behavior);
virtual bool has_feature(Feature p_feature) const = 0;
virtual String get_name() const = 0;
virtual int64_t get_features() const = 0;