gtk[3|4] add the css "warning" "error" to GtkEntry when those states fit

Change-Id: I4063155d25b80f6b5912f0b63dc3c8fa21c7263b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133079
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
This commit is contained in:
Caolán McNamara
2022-04-15 17:19:05 +01:00
parent 211fb75306
commit fbfda267e8

View File

@@ -12586,30 +12586,42 @@ public:
namespace namespace
{ {
#if GTK_CHECK_VERSION(4, 0, 0)
// CSS nodes: entry[.flat][.warning][.error] // CSS nodes: entry[.flat][.warning][.error]
void set_widget_css_message_type(GtkWidget* pWidget, weld::EntryMessageType eType) void set_widget_css_message_type(GtkWidget* pWidget, weld::EntryMessageType eType)
{ {
#if GTK_CHECK_VERSION(4, 0, 0)
gtk_widget_remove_css_class(pWidget, "error");
gtk_widget_remove_css_class(pWidget, "warning");
#else
GtkStyleContext *pWidgetContext = gtk_widget_get_style_context(pWidget);
gtk_style_context_remove_class(pWidgetContext, "error");
gtk_style_context_remove_class(pWidgetContext, "warning");
#endif
switch (eType) switch (eType)
{ {
case weld::EntryMessageType::Normal: case weld::EntryMessageType::Normal:
gtk_widget_remove_css_class(pWidget, "error");
gtk_widget_remove_css_class(pWidget, "warning");
break; break;
case weld::EntryMessageType::Warning: case weld::EntryMessageType::Warning:
gtk_widget_remove_css_class(pWidget, "error"); #if GTK_CHECK_VERSION(4, 0, 0)
gtk_widget_add_css_class(pWidget, "warning"); gtk_widget_add_css_class(pWidget, "warning");
#else
gtk_style_context_add_class(pWidgetContext, "warning");
#endif
break; break;
case weld::EntryMessageType::Error: case weld::EntryMessageType::Error:
gtk_widget_remove_css_class(pWidget, "warning"); #if GTK_CHECK_VERSION(4, 0, 0)
gtk_widget_add_css_class(pWidget, "error"); gtk_widget_add_css_class(pWidget, "error");
#else
gtk_style_context_add_class(pWidgetContext, "error");
#endif
break; break;
} }
} }
#endif
void set_entry_message_type(GtkEntry* pEntry, weld::EntryMessageType eType) void set_entry_message_type(GtkEntry* pEntry, weld::EntryMessageType eType)
{ {
set_widget_css_message_type(GTK_WIDGET(pEntry), eType);
switch (eType) switch (eType)
{ {
case weld::EntryMessageType::Normal: case weld::EntryMessageType::Normal: