/*
PSPPIRE --- A Graphical User Interface for PSPP
- Copyright (C) 2004 Free Software Foundation
+ Copyright (C) 2004, 2006 Free Software Foundation
Written by John Darrington
This program is free software; you can redistribute it and/or modify
#include <data/missing-values.h>
#include <data/value-labels.h>
#include <data/format.h>
+#include <libpspp/message.h>
#include <libpspp/misc.h>
if ( !text)
return FALSE;
- if ( 0 == strcmp(pv->v->name, text))
+ if ( 0 == strcmp(var_get_name (pv->v), text))
return FALSE;
if ( ! psppire_dict_check_name(pv->dict, text, TRUE) )
g_return_val_if_fail(pv->dict, FALSE);
g_return_val_if_fail(pv->v, FALSE);
- pv->v->display_width = columns;
+ var_set_display_width (pv->v, columns);
psppire_dict_var_changed(pv->dict, pv->v->index);
g_return_val_if_fail(pv->dict, FALSE);
g_return_val_if_fail(pv->v, FALSE);
- g_free(pv->v->label);
- pv->v->label = g_strdup(label);
+ var_set_label (pv->v, label);
psppire_dict_var_changed(pv->dict, pv->v->index);
g_return_val_if_fail(pv->dict, FALSE);
g_return_val_if_fail(pv->v, FALSE);
- fmt = pv->v->write;
-
+ fmt = *var_get_write_format (pv->v);
fmt.d = decimals;
return psppire_variable_set_format(pv, &fmt);
g_return_val_if_fail(pv->dict, FALSE);
g_return_val_if_fail(pv->v, FALSE);
- fmt = pv->v->write;
-
+ fmt = *var_get_write_format (pv->v);
fmt.w = width;
- if ( pv->v->type == ALPHA )
+ if (var_is_alpha (pv->v))
{
gint old_var_cnt , new_var_cnt ;
- if ( pv->v->width == 0 )
+ if ( var_get_width (pv->v) == 0 )
old_var_cnt = 1;
else
- old_var_cnt = DIV_RND_UP(pv->v->width, MAX_SHORT_STRING);
+ old_var_cnt = DIV_RND_UP(var_get_width (pv->v), MAX_SHORT_STRING);
new_var_cnt = DIV_RND_UP(width, MAX_SHORT_STRING);
- pv->v->width = width;
+ pv->v->width = width;
psppire_dict_resize_variable(pv->dict, pv,
old_var_cnt, new_var_cnt);
g_return_val_if_fail(pv->dict, FALSE);
g_return_val_if_fail(pv->v, FALSE);
- pv->v->type = type;
-
- if ( pv->v->width == 0 )
+ if ( var_get_width (pv->v) )
old_var_cnt = 1;
else
- old_var_cnt = DIV_RND_UP(pv->v->width, MAX_SHORT_STRING);
+ old_var_cnt = DIV_RND_UP (var_get_width (pv->v), MAX_SHORT_STRING);
if ( type == NUMERIC )
pv->v->width = 0;
+ else if (var_get_width (pv->v))
+ pv->v->width = 1;
- if ( pv->v->width == 0 )
+ if ( var_get_width (pv->v) == 0 )
new_var_cnt = 1;
else
- new_var_cnt = DIV_RND_UP(pv->v->width, MAX_SHORT_STRING);
+ new_var_cnt = DIV_RND_UP (var_get_width (pv->v), MAX_SHORT_STRING);
psppire_dict_resize_variable(pv->dict, pv,
old_var_cnt, new_var_cnt);
g_return_val_if_fail(pv->dict, FALSE);
g_return_val_if_fail(pv->v, FALSE);
- if ( check_output_specifier(fmt, false)
- &&
- check_specifier_type(fmt, pv->v->type, false)
- &&
- check_specifier_width(fmt, pv->v->width, false)
- )
+ msg_disable ();
+ if ( fmt_check_output(fmt)
+ && fmt_check_type_compat (fmt, var_get_type (pv->v))
+ && fmt_check_width_compat (fmt, var_get_width (pv->v)))
{
- pv->v->write = pv->v->print = *fmt;
+ msg_enable ();
+ var_set_both_formats (pv->v, fmt);
psppire_dict_var_changed(pv->dict, pv->v->index);
return TRUE;
}
+ msg_enable ();
return FALSE;
}
g_return_val_if_fail(pv->dict, FALSE);
g_return_val_if_fail(pv->v, FALSE);
- mv_copy(&pv->v->miss, miss);
+ var_set_missing_values (pv->v, miss);
psppire_dict_var_changed(pv->dict, pv->v->index);
return TRUE;
g_return_val_if_fail(pv, FALSE);
g_return_val_if_fail(pv->v, FALSE);
- pv->v->write = fmt;
+ var_set_write_format (pv->v, &fmt);
psppire_dict_var_changed(pv->dict, pv->v->index);
return TRUE;
g_return_val_if_fail(pv, FALSE);
g_return_val_if_fail(pv->v, FALSE);
- pv->v->print = fmt;
+ var_set_print_format (pv->v, &fmt);
psppire_dict_var_changed(pv->dict, pv->v->index);
return TRUE;
g_return_val_if_fail(pv->dict, FALSE);
g_return_val_if_fail(pv->v, FALSE);
- pv->v->alignment = align;
+ var_set_alignment (pv->v, align);
psppire_dict_var_changed(pv->dict, pv->v->index);
return TRUE;
g_return_val_if_fail(pv->dict, FALSE);
g_return_val_if_fail(pv->v, FALSE);
- pv->v->measure = measure + 1;
+ var_set_measure (pv->v, measure + 1);
psppire_dict_var_changed(pv->dict, pv->v->index);
return TRUE;
g_return_val_if_fail(pv, NULL);
g_return_val_if_fail(pv->v, NULL);
-
- return &pv->v->write;
+ return var_get_write_format (pv->v);
}
g_return_val_if_fail(pv, NULL);
g_return_val_if_fail(pv->v, NULL);
- return pv->v->name;
+ return var_get_name (pv->v);
}
g_return_val_if_fail(pv, -1);
g_return_val_if_fail(pv->v, -1);
- return pv->v->display_width;
+ return var_get_display_width (pv->v);
}
g_return_val_if_fail(pv, NULL);
g_return_val_if_fail(pv->v, NULL);
- return pv->v->label;
+ return var_get_label (pv->v);
}
g_return_val_if_fail(pv, NULL);
g_return_val_if_fail(pv->v, NULL);
- return &pv->v->miss;
+ return var_get_missing_values (pv->v);
}
g_return_val_if_fail(pv, -1);
g_return_val_if_fail(pv->v, -1);
- return pv->v->alignment;
+ return var_get_alignment (pv->v);
}
g_return_val_if_fail(pv, -1);
g_return_val_if_fail(pv->v, -1);
- return pv->v->measure - 1;
+ return var_get_measure (pv->v) - 1;
}
gint
g_return_val_if_fail(pv, -1);
g_return_val_if_fail(pv->v, -1);
- return pv->v->type;
+ return var_get_type (pv->v);
}
g_return_val_if_fail(pv, -1);
g_return_val_if_fail(pv->v, -1);
- return pv->v->width;
+ return var_get_width (pv->v);
}