From a67b7334094008e6575227a5e3c0325b80caf2e0 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Sun, 8 Apr 2012 20:19:30 -0700 Subject: [PATCH] gui: New boxed type for struct fmt_spec. This makes it possible to use a struct fmt_spec as the value of a property on a GObject, which I plan to use in an upcoming widget PsppireValueEntry. --- src/ui/gui/automake.mk | 2 ++ src/ui/gui/psppire-format.c | 46 +++++++++++++++++++++++++++++++++++++ src/ui/gui/psppire-format.h | 28 ++++++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 src/ui/gui/psppire-format.c create mode 100644 src/ui/gui/psppire-format.h diff --git a/src/ui/gui/automake.mk b/src/ui/gui/automake.mk index 4b2627885d..ac61a29e1e 100644 --- a/src/ui/gui/automake.mk +++ b/src/ui/gui/automake.mk @@ -236,6 +236,8 @@ src_ui_gui_psppire_SOURCES = \ src/ui/gui/psppire-empty-list-store.h \ src/ui/gui/psppire-encoding-selector.c \ src/ui/gui/psppire-encoding-selector.h \ + src/ui/gui/psppire-format.c \ + src/ui/gui/psppire-format.h \ src/ui/gui/psppire-hbuttonbox.h \ src/ui/gui/psppire-keypad.h \ src/ui/gui/psppire-lex-reader.c \ diff --git a/src/ui/gui/psppire-format.c b/src/ui/gui/psppire-format.c new file mode 100644 index 0000000000..c44684050f --- /dev/null +++ b/src/ui/gui/psppire-format.c @@ -0,0 +1,46 @@ +/* PSPPIRE - a graphical user interface for PSPP. + Copyright (C) 2012 Free Software Foundation + + 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 . */ + +#include +#include "ui/gui/psppire-format.h" + +static gpointer +psppire_format_copy (gpointer boxed) +{ + struct fmt_spec *format = boxed; + return g_memdup (format, sizeof *format); +} + +static void +psppire_format_free (gpointer boxed) +{ + struct fmt_spec *format = boxed; + g_free (format); +} + +GType +psppire_format_get_type (void) +{ + static GType type = 0; + + if (type == 0) + type = g_boxed_type_register_static ("PsppireFormat", + psppire_format_copy, + psppire_format_free); + + return type; +} + diff --git a/src/ui/gui/psppire-format.h b/src/ui/gui/psppire-format.h new file mode 100644 index 0000000000..caaafb3031 --- /dev/null +++ b/src/ui/gui/psppire-format.h @@ -0,0 +1,28 @@ +/* PSPPIRE - a graphical user interface for PSPP. + Copyright (C) 2012 Free Software Foundation + + 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 . */ + + +#ifndef PSPPIRE_FORMAT_H +#define PSPPIRE_FORMAT_H 1 + +#include +#include "data/format.h" + +#define PSPPIRE_TYPE_FORMAT (psppire_format_get_type ()) + +GType psppire_format_get_type (void) G_GNUC_CONST; + +#endif /* src/ui/gui/psppire-format.h */ -- 2.30.2