X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fhelper.h;h=69841a5c491d95b42a504e02d37d6ee54851012b;hb=e784ed9c161b6b7aec1402de566e6c09cb2031e0;hp=ca15a35c372887333d7941dc02beaccea38f9455;hpb=0f70b0dd47b62dbefe87fb08ba8a8984aa5a50c4;p=pspp diff --git a/src/ui/gui/helper.h b/src/ui/gui/helper.h index ca15a35c37..69841a5c49 100644 --- a/src/ui/gui/helper.h +++ b/src/ui/gui/helper.h @@ -1,5 +1,5 @@ /* PSPPIRE - a graphical user interface for PSPP. - Copyright (C) 2004, 2009 Free Software Foundation + Copyright (C) 2004, 2009, 2010, 2011, 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 @@ -18,51 +18,65 @@ #ifndef __MISC_H__ #define __MISC_H__ -#include "relocatable.h" #include #include #include +#include "psppire-dict.h" - -void paste_syntax_in_new_window (const gchar *syntax); +gchar *paste_syntax_to_window (gchar *syntax); struct fmt_spec; -/* Formats a value according to FORMAT - The returned string must be freed when no longer required */ -gchar * value_to_text (union value v, struct fmt_spec format); - - -gboolean text_to_value (const gchar *text, union value *v, - struct fmt_spec format); - -GObject *get_object_assert (GtkBuilder *builder, const gchar *name, GType type); -GtkAction * get_action_assert (GtkBuilder *builder, const gchar *name); -GtkWidget * get_widget_assert (GtkBuilder *builder, const gchar *name); - -/* Converts a string in the pspp locale to utf-8 */ -gchar * pspp_locale_to_utf8 (const gchar *text, gssize len, GError **err); -gchar * utf8_to_pspp_locale (const gchar *text, gssize len, GError **err); - +/* Returns a new GParamSpec for a string. An attempt to store the empty string + in the parameter will be silently translated into storing a null pointer. */ +static inline GParamSpec * +null_if_empty_param (const gchar *name, const gchar *nick, + const gchar *blurb, const gchar *default_value, + GParamFlags flags) +{ + GParamSpec *param; -void connect_help (GtkBuilder *); + param = g_param_spec_string (name, nick, blurb, default_value, flags); + ((GParamSpecString *) param)->null_fold_if_empty = TRUE; + return param; +} -void reference_manual (GtkMenuItem *, gpointer); +gchar * value_to_text (union value v, const struct variable *); +gchar * value_to_text__ (union value v, const struct fmt_spec *, + const char *encoding); -struct getl_interface; -gboolean execute_syntax (struct getl_interface *sss); +union value *text_to_value (const gchar *text, const struct variable *, + union value *); +union value *text_to_value__ (const gchar *text, const struct fmt_spec *, + const gchar *encoding, union value *); -#define builder_new(NAME) builder_new_real (relocate (PKGDATADIR "/" NAME)) +/* Create a deep copy of SRC */ +GtkListStore * clone_list_store (const GtkListStore *src); -GtkBuilder *builder_new_real (const gchar *name); +/* gtk_box_pack_start_defaults is deprecated. + Therefore we roll our own until a better solution is found */ +static inline void +psppire_box_pack_start_defaults (GtkBox *box, GtkWidget *widget) +{ + gtk_box_pack_start (box, widget, TRUE, TRUE, 0); +} +/* Starting with gcc8 the warning Wcast-function-type will + trigger if no intermediate (void (*)(void)) cast is done + for a function cast to GFunc when the number of parameters + is not 2. The reason is that the compiler behaviour in this + situation is undefined according to C standard although many + implementations rely on this. */ +#define GFUNC_COMPAT_CAST(x) ((GFunc) (void (*)(void)) (x)) -/* Create a deep copy of SRC */ -GtkListStore * clone_list_store (const GtkListStore *src); +/* Return the width of an upper case M (in pixels) when rendered onto + WIDGET with its current style. */ +gdouble width_of_m (GtkWidget *widget); #endif +