grim/glade-template

Initial revision
draft
2021-04-30, Gary Kramlich
b20293b143e8
Parents
Children 48884acdf40f
Initial revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgignore Fri Apr 30 01:26:49 2021 -0500
@@ -0,0 +1,6 @@
+syntax: glob
+*.ui~
+
+syntax: regexp
+^build.*\/
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fancy.gresources.xml Fri Apr 30 01:26:49 2021 -0500
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/fancy/">
+ <file compressed="true">fancywindow.ui</file>
+ </gresource>
+</gresources>
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fancywindow.c Fri Apr 30 01:26:49 2021 -0500
@@ -0,0 +1,26 @@
+#include "fancywindow.h"
+
+struct _FancyWindow {
+ GtkWindow parent;
+};
+
+G_DEFINE_TYPE(FancyWindow, fancy_window, GTK_TYPE_WINDOW)
+
+static void
+fancy_window_init(FancyWindow *window) {
+ gtk_widget_init_template(GTK_WIDGET(window));
+}
+
+static void
+fancy_window_class_init(FancyWindowClass *klass) {
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
+
+ gtk_widget_class_set_template_from_resource(widget_class,
+ "/fancy/fancywindow.ui");
+}
+
+GtkWidget *
+fancy_window_new(void) {
+ return g_object_new(FANCY_TYPE_WINDOW, NULL);
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fancywindow.h Fri Apr 30 01:26:49 2021 -0500
@@ -0,0 +1,16 @@
+#ifndef FANCY_WINDOW_H
+#define FANCY_WINDOW_H
+
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS
+
+#define FANCY_TYPE_WINDOW (fancy_window_get_type())
+G_DECLARE_FINAL_TYPE(FancyWindow, fancy_window, FANCY, WINDOW, GtkWindow)
+
+GtkWidget *fancy_window_new(void);
+
+G_END_DECLS
+
+#endif /* FANCY_WINDOW_H */
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fancywindow.ui Fri Apr 30 01:26:49 2021 -0500
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2 -->
+<interface>
+ <requires lib="gtk+" version="3.24"/>
+ <template class="FancyWindow" parent="GtkWindow">
+ <property name="can-focus">False</property>
+ <property name="border-width">8</property>
+ <signal name="delete-event" handler="gtk_main_quit" swapped="no"/>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">First!</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <property name="label" translatable="yes">Second</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">computer</property>
+ <property name="icon_size">6</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </template>
+</interface>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fancywindow.ui~ Fri Apr 30 01:26:49 2021 -0500
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2 -->
+<interface>
+ <requires lib="gtk+" version="3.24"/>
+ <template class="FancyWindow" parent="GtkWindow">
+ <property name="can-focus">False</property>
+ <property name="border-width">8</property>
+ <signal name="delete-event" handler="gtk_widget_destroy" swapped="no"/>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">First!</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <property name="label" translatable="yes">Second</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">computer</property>
+ <property name="icon_size">6</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </template>
+</interface>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.c Fri Apr 30 01:26:49 2021 -0500
@@ -0,0 +1,18 @@
+#include <gtk/gtk.h>
+
+#include "fancywindow.h"
+
+gint
+main(gint argc, gchar *argv[]) {
+ GtkWidget *window = NULL;
+
+ gtk_init(&argc, &argv);
+
+ window = fancy_window_new();
+ gtk_widget_show_all(window);
+
+ gtk_main();
+
+ return 0;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/meson.build Fri Apr 30 01:26:49 2021 -0500
@@ -0,0 +1,22 @@
+project('fancy', 'c')
+
+glib = dependency('glib-2.0')
+gtk3 = dependency('gtk+-3.0')
+
+SOURCES = [
+ 'fancywindow.c',
+ 'fancywindow.h',
+ 'main.c',
+]
+
+gnome = import('gnome')
+resources = gnome.compile_resources('resources',
+ 'fancy.gresources.xml',
+ source_dir : '.',
+ c_name : 'fancy')
+SOURCES += resources
+
+executable('fancy',
+ SOURCES,
+ dependencies: [glib, gtk3])
+