aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/interface-gtk/gtk-label.h
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2021-06-07 17:58:54 +0200
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2021-06-08 18:48:16 +0200
commit073f5f28b835d3bda5e8771383c26d78d9740768 (patch)
tree20ed540730c940d82d9c6b4cd81408bec6c42cd1 /src/interface-gtk/gtk-label.h
parent0507d6a8b2bc590faf97c5f7d406218d1980470b (diff)
downloadsciteco-073f5f28b835d3bda5e8771383c26d78d9740768.tar.gz
get rid of the GObject Builder (GOB2): converted teco-gtk-info-popup.gob and teco-gtk-label.gob to plain C
* Using modern GObject idioms and macros greatly reduces the necessary boilerplate code. * The plain C versions of our GObject classes are now "final" (cannot be derived) This means we can hide the instance structures from the headers and avoid using explicit private fields. * Avoids some deprecation warnings when building the Gtk UI. * GOB2 is apparently no longer maintained, so this seems like a good idea in the long run. * The most important reason however is that there is no precompiled GOB2 for Windows which prevents compilation on native Windows hosts, eg. during nightly builds. This is even more important as Gtk+3 is distributed on Windows practically exclusively via MSYS. (ArchLinux contains MinGW gtk3 packages as well, so cross-compiling from ArchLinux would have been an alternative.)
Diffstat (limited to 'src/interface-gtk/gtk-label.h')
-rw-r--r--src/interface-gtk/gtk-label.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/interface-gtk/gtk-label.h b/src/interface-gtk/gtk-label.h
new file mode 100644
index 0000000..e20646d
--- /dev/null
+++ b/src/interface-gtk/gtk-label.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2012-2021 Robin Haberkorn
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include <glib.h>
+#include <glib-object.h>
+
+#include <gtk/gtk.h>
+
+#define TECO_TYPE_GTK_LABEL teco_gtk_label_get_type()
+G_DECLARE_FINAL_TYPE(TecoGtkLabel, teco_gtk_label, TECO, GTK_LABEL, GtkLabel)
+
+GtkWidget *teco_gtk_label_new(const gchar *str, gssize len);
+
+void teco_gtk_label_set_text(TecoGtkLabel *self, const gchar *str, gssize len);
+
+void teco_gtk_label_parse_string(const gchar *str, gssize len,
+ PangoColor *fg, guint16 fg_alpha,
+ PangoColor *bg, guint16 bg_alpha,
+ PangoAttrList **attribs, gchar **text);