summaryrefslogtreecommitdiff
path: root/libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx')
-rw-r--r--libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx77
1 files changed, 77 insertions, 0 deletions
diff --git a/libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx b/libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx
new file mode 100644
index 000000000000..efdd70fe453d
--- /dev/null
+++ b/libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx
@@ -0,0 +1,77 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <gtk/gtk.h>
+
+#include <gtv-main-toolbar.hxx>
+
+struct _GtvMainToolbar
+{
+ GtkBox parent;
+};
+
+struct GtvMainToolbarPrivate
+{
+ GtkWidget* toolbar1;
+ GtkWidget* toolbar2;
+
+ GtkWidget* btn_save;
+ GtkWidget* btn_bold;
+};
+
+G_DEFINE_TYPE_WITH_PRIVATE(GtvMainToolbar, gtv_main_toolbar, GTK_TYPE_BOX);
+
+static GtvMainToolbarPrivate*
+getPrivate(GtvMainToolbar* toolbar)
+{
+ return static_cast<GtvMainToolbarPrivate*>(gtv_main_toolbar_get_instance_private(toolbar));
+}
+
+static void
+btn_clicked(GtkWidget* pWidget, gpointer)
+{
+ g_info("btn clicked");
+}
+
+static void
+gtv_main_toolbar_init(GtvMainToolbar* toolbar)
+{
+ GtkBuilder* builder = gtk_builder_new_from_file("gtv.ui");
+ GtvMainToolbarPrivate* priv = getPrivate(toolbar);
+
+ priv->toolbar1 = GTK_WIDGET(gtk_builder_get_object(builder, "toolbar1"));
+ gtk_box_pack_start(GTK_BOX(toolbar), priv->toolbar1, false, false, false);
+ priv->toolbar2 = GTK_WIDGET(gtk_builder_get_object(builder, "toolbar2"));
+ gtk_box_pack_start(GTK_BOX(toolbar), priv->toolbar2, false, false, false);
+
+ priv->btn_save = GTK_WIDGET(gtk_builder_get_object(builder, "btn_save"));
+ priv->btn_bold = GTK_WIDGET(gtk_builder_get_object(builder, "btn_bold"));
+
+ gtk_widget_show_all(GTK_WIDGET(toolbar));
+}
+
+static void
+gtv_main_toolbar_class_init(GtvMainToolbarClass*)
+{
+ // TODO: Use templates to bind objects maybe ?
+ // But that requires compiling the .ui file into C source requiring
+ // glib-compile-resources (another dependency) as I can't find any gtk
+ // method to set the template from the .ui file directly; can only be set
+ // from gresource
+}
+
+GtkWidget*
+gtv_main_toolbar_new()
+{
+ return GTK_WIDGET(g_object_new(GTV_MAIN_TOOLBAR_TYPE,
+ "orientation", GTK_ORIENTATION_VERTICAL,
+ nullptr));
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */