/* Copyright (c) 1987-2008 Sun Microsystems, Inc. All Rights Reserved. * Copyright (c) 2008-2009 Robert Ancell * * 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 2, 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. */ #ifndef MATH_EQUATION_H #define MATH_EQUATION_H #include #include #include "mp.h" #include "math-variables.h" G_BEGIN_DECLS #define MATH_EQUATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), math_equation_get_type(), MathEquation)) typedef struct MathEquationPrivate MathEquationPrivate; typedef struct { GtkTextBuffer parent_instance; MathEquationPrivate* priv; } MathEquation; typedef struct { GtkTextBufferClass parent_class; } MathEquationClass; /* Number display mode. */ typedef enum { FIX, SCI, ENG } DisplayFormat; typedef enum { NORMAL, SUPERSCRIPT, SUBSCRIPT } NumberMode; GType math_equation_get_type(void); MathEquation* math_equation_new(void); MathVariables* math_equation_get_variables(MathEquation* equation); const gchar* math_equation_get_digit_text(MathEquation* equation, guint digit); const gchar* math_equation_get_numeric_point_text(MathEquation* equation); const gchar* math_equation_get_thousands_separator_text(MathEquation* equation); void math_equation_set_status(MathEquation* equation, const gchar* status); const gchar* math_equation_get_status(MathEquation* equation); gboolean math_equation_is_empty(MathEquation* equation); gboolean math_equation_is_result(MathEquation* equation); gchar* math_equation_get_display(MathEquation* equation); gchar* math_equation_get_equation(MathEquation* equation); gboolean math_equation_get_number(MathEquation* equation, MPNumber* z); void math_equation_set_number_mode(MathEquation* equation, NumberMode mode); NumberMode math_equation_get_number_mode(MathEquation* equation); void math_equation_set_accuracy(MathEquation* equation, gint accuracy); gint math_equation_get_accuracy(MathEquation* equation); void math_equation_set_show_thousands_separators(MathEquation* equation, gboolean visible); gboolean math_equation_get_show_thousands_separators(MathEquation* equation); void math_equation_set_show_trailing_zeroes(MathEquation* equation, gboolean visible); gboolean math_equation_get_show_trailing_zeroes(MathEquation* equation); void math_equation_set_number_format(MathEquation* equation, DisplayFormat format); DisplayFormat math_equation_get_number_format(MathEquation* equation); void math_equation_set_base(MathEquation* equation, gint base); gint math_equation_get_base(MathEquation* equation); void math_equation_set_word_size(MathEquation* equation, gint word_size); gint math_equation_get_word_size(MathEquation* equation); void math_equation_set_angle_units(MathEquation* equation, MPAngleUnit angle_unit); MPAngleUnit math_equation_get_angle_units(MathEquation* equation); void math_equation_set_source_currency(MathEquation* equation, const gchar* currency); const gchar* math_equation_get_source_currency(MathEquation* equation); void math_equation_set_target_currency(MathEquation* equation, const gchar* currency); const gchar* math_equation_get_target_currency(MathEquation* equation); const MPNumber* math_equation_get_answer(MathEquation* equation); void math_equation_copy(MathEquation* equation); void math_equation_paste(MathEquation* equation); void math_equation_undo(MathEquation* equation); void math_equation_redo(MathEquation* equation); void math_equation_store(MathEquation* equation, const gchar* name); void math_equation_recall(MathEquation* equation, const gchar* name); void math_equation_set(MathEquation* equation, const gchar* text); void math_equation_set_number(MathEquation* equation, const MPNumber* x); void math_equation_insert(MathEquation* equation, const gchar* text); void math_equation_insert_digit(MathEquation* equation, guint digit); void math_equation_insert_numeric_point(MathEquation* equation); void math_equation_insert_number(MathEquation* equation, const MPNumber* x); void math_equation_insert_subtract(MathEquation* equation); void math_equation_insert_exponent(MathEquation* equation); void math_equation_solve(MathEquation* equation); void math_equation_factorize(MathEquation* equation); void math_equation_delete(MathEquation* equation); void math_equation_backspace(MathEquation* equation); void math_equation_clear(MathEquation* equation); void math_equation_shift(MathEquation* equation, gint count); void math_equation_toggle_bit(MathEquation* equation, guint bit); //FIXME: Obsolete void display_make_number(MathEquation* equation, char* target, int target_len, const MPNumber* x); #endif /* MATH_EQUATION_H */