diff options
author | Thomas White <taw@physics.org> | 2020-10-28 15:23:01 +0100 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2020-10-28 15:32:06 +0100 |
commit | e328f875c44dabafa775e4a8affef3e44c1a72a7 (patch) | |
tree | a3199ce7ed5e19e18ece913a49bb8930fc60ecac /src/crystfelsymmetryselector.c | |
parent | 6d708e373eb502789fa4d0ac7c7da8274d547cbe (diff) |
Initial implementation of CrystFELSymmetrySelector
This should eventually be replaced by something which behaves a bit like
a GtkFileChooserButton
Diffstat (limited to 'src/crystfelsymmetryselector.c')
-rw-r--r-- | src/crystfelsymmetryselector.c | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/src/crystfelsymmetryselector.c b/src/crystfelsymmetryselector.c new file mode 100644 index 00000000..e8b1d0d6 --- /dev/null +++ b/src/crystfelsymmetryselector.c @@ -0,0 +1,86 @@ +/* + * crystfelsymmetryselector.c + * + * A GTK widget to choose a symmetry class + * + * Copyright © 2020 Deutsches Elektronen-Synchrotron DESY, + * a research centre of the Helmholtz Association. + * + * Authors: + * 2020 Thomas White <taw@physics.org> + * + * This file is part of CrystFEL. + * + * CrystFEL 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. + * + * CrystFEL 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 CrystFEL. If not, see <http://www.gnu.org/licenses/>. + * + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <assert.h> +#include <gtk/gtk.h> +#include <glib-object.h> +#include <errno.h> + +#include "crystfelsymmetryselector.h" + + +G_DEFINE_TYPE(CrystFELSymmetrySelector, + crystfel_symmetry_selector, + GTK_TYPE_BOX) + + +static void crystfel_symmetry_selector_class_init(CrystFELSymmetrySelectorClass *klass) +{ +} + + +static void crystfel_symmetry_selector_init(CrystFELSymmetrySelector *mo) +{ +} + + +GtkWidget *crystfel_symmetry_selector_new() +{ + CrystFELSymmetrySelector *sel; + + sel = g_object_new(CRYSTFEL_TYPE_SYMMETRY_SELECTOR, NULL); + + sel->entry = gtk_entry_new(); + gtk_entry_set_width_chars(GTK_ENTRY(sel->entry), 10); + gtk_box_pack_start(GTK_BOX(sel), GTK_WIDGET(sel->entry), + FALSE, FALSE, 0.0); + + return GTK_WIDGET(sel); +} + + +char *crystfel_symmetry_selector_get_group_symbol(CrystFELSymmetrySelector *sel) +{ + const gchar *text = gtk_entry_get_text(GTK_ENTRY(sel->entry)); + return strdup(text); +} + + +int crystfel_symmetry_selector_set_group_symbol(CrystFELSymmetrySelector *sel, + const char *pg_symbol) +{ + gtk_entry_set_text(GTK_ENTRY(sel->entry), pg_symbol); + return 0; +} |