summaryrefslogtreecommitdiff
path: root/src/gcalctool.c
diff options
context:
space:
mode:
authorPerberos <[email protected]>2011-11-08 14:30:53 -0300
committerPerberos <[email protected]>2011-11-08 14:30:53 -0300
commitb65a74287bf28bec6e020af51a34e123c670b531 (patch)
tree024aace2cf9b17cc8124544581c34b96bc530a26 /src/gcalctool.c
parent2358ba4314dc6d757049bc4871ecf2922614b61b (diff)
downloadmate-calc-b65a74287bf28bec6e020af51a34e123c670b531.tar.bz2
mate-calc-b65a74287bf28bec6e020af51a34e123c670b531.tar.xz
renaming from gcalctool to mate-conf
Diffstat (limited to 'src/gcalctool.c')
-rw-r--r--src/gcalctool.c260
1 files changed, 0 insertions, 260 deletions
diff --git a/src/gcalctool.c b/src/gcalctool.c
deleted file mode 100644
index 4e40f6a..0000000
--- a/src/gcalctool.c
+++ /dev/null
@@ -1,260 +0,0 @@
-/* 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.
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "currency.h"
-#include "unittest.h"
-#include "math-window.h"
-#include "mp-equation.h"
-
-static GSettings *settings = NULL;
-
-static MathWindow *window;
-
-static void
-version(const gchar *progname)
-{
- /* NOTE: Is not translated so can be easily parsed */
- fprintf(stderr, "%1$s %2$s\n", progname, VERSION);
-}
-
-
-static void
-solve(const char *equation)
-{
- MPEquationOptions options;
- MPErrorCode error;
- MPNumber result;
- char result_str[1024];
-
- memset(&options, 0, sizeof(options));
- options.base = 10;
- options.wordlen = 32;
- options.angle_units = MP_DEGREES;
-
- error = mp_equation_parse(equation, &options, &result, NULL);
- if(error == PARSER_ERR_MP) {
- fprintf(stderr, "Error: %s\n", mp_get_error());
- exit(1);
- }
- else if(error != 0) {
- fprintf(stderr, "Error: %s\n", mp_error_code_to_string(error));
- exit(1);
- }
- else {
- mp_cast_to_string(&result, 10, 10, 9, 1, result_str, 1024);
- printf("%s\n", result_str);
- exit(0);
- }
-}
-
-
-static void
-usage(const gchar *progname, gboolean show_application, gboolean show_gtk)
-{
- fprintf(stderr,
- /* Description on how to use gcalctool displayed on command-line */
- _("Usage:\n"
- " %s — Perform mathematical calculations"), progname);
-
- fprintf(stderr,
- "\n\n");
-
- fprintf(stderr,
- /* Description on gcalctool command-line help options displayed on command-line */
- _("Help Options:\n"
- " -v, --version Show release version\n"
- " -h, -?, --help Show help options\n"
- " --help-all Show all help options\n"
- " --help-gtk Show GTK+ options"));
- fprintf(stderr,
- "\n\n");
-
- if (show_gtk) {
- fprintf(stderr,
- /* Description on gcalctool command-line GTK+ options displayed on command-line */
- _("GTK+ Options:\n"
- " --class=CLASS Program class as used by the window manager\n"
- " --name=NAME Program name as used by the window manager\n"
- " --screen=SCREEN X screen to use\n"
- " --sync Make X calls synchronous\n"
- " --gtk-module=MODULES Load additional GTK+ modules\n"
- " --g-fatal-warnings Make all warnings fatal"));
- fprintf(stderr,
- "\n\n");
- }
-
- if (show_application) {
- fprintf(stderr,
- /* Description on gcalctool application options displayed on command-line */
- _("Application Options:\n"
- " -u, --unittest Perform unit tests\n"
- " -s, --solve <equation> Solve the given equation"));
- fprintf(stderr,
- "\n\n");
- }
-}
-
-
-static void
-get_options(int argc, char *argv[])
-{
- int i;
- char *progname, *arg;
-
- progname = g_path_get_basename(argv[0]);
-
- for (i = 1; i < argc; i++) {
- arg = argv[i];
-
- if (strcmp(arg, "-v") == 0 ||
- strcmp(arg, "--version") == 0) {
- version(progname);
- exit(0);
- }
- else if (strcmp(arg, "-h") == 0 ||
- strcmp(arg, "-?") == 0 ||
- strcmp(arg, "--help") == 0) {
- usage(progname, TRUE, FALSE);
- exit(0);
- }
- else if (strcmp(arg, "--help-all") == 0) {
- usage(progname, TRUE, TRUE);
- exit(0);
- }
- else if (strcmp(arg, "--help-gtk") == 0) {
- usage(progname, FALSE, TRUE);
- exit(0);
- }
- else if (strcmp(arg, "-s") == 0 ||
- strcmp(arg, "--solve") == 0) {
- i++;
- if (i >= argc) {
- fprintf(stderr,
- /* Error printed to stderr when user uses --solve argument without an equation */
- _("Argument --solve requires an equation to solve"));
- fprintf(stderr, "\n");
- exit(1);
- }
- else
- solve(argv[i]);
- }
- else if (strcmp(arg, "-u") == 0 ||
- strcmp(arg, "--unittest") == 0) {
- unittest();
- }
- else {
- fprintf(stderr,
- /* Error printed to stderr when user provides an unknown command-line argument */
- _("Unknown argument '%s'"), arg);
- fprintf(stderr, "\n");
- usage(progname, TRUE, FALSE);
- exit(1);
- }
- }
-}
-
-
-static void
-quit_cb(MathWindow *window)
-{
- MathEquation *equation;
- MathButtons *buttons;
-
- equation = math_window_get_equation(window);
- buttons = math_window_get_buttons(window);
-
- g_settings_set_int(settings, "accuracy", math_equation_get_accuracy(equation));
- g_settings_set_int(settings, "word-size", math_equation_get_word_size(equation));
- g_settings_set_int(settings, "base", math_buttons_get_programming_base(buttons));
- g_settings_set_boolean(settings, "show-thousands", math_equation_get_show_thousands_separators(equation));
- g_settings_set_boolean(settings, "show-zeroes", math_equation_get_show_trailing_zeroes(equation));
- g_settings_set_enum(settings, "number-format", math_equation_get_number_format(equation));
- g_settings_set_enum(settings, "angle-units", math_equation_get_angle_units(equation));
- g_settings_set_enum(settings, "button-mode", math_buttons_get_mode(buttons));
- g_settings_set_string(settings, "source-currency", math_equation_get_source_currency(equation));
- g_settings_set_string(settings, "target-currency", math_equation_get_target_currency(equation));
- g_settings_sync();
-
- currency_free_resources();
- gtk_main_quit();
-}
-
-
-int
-main(int argc, char **argv)
-{
- MathEquation *equation;
- int accuracy = 9, word_size = 64, base = 10;
- gboolean show_tsep = FALSE, show_zeroes = FALSE;
- DisplayFormat number_format;
- MPAngleUnit angle_units;
- ButtonMode button_mode;
- gchar *source_currency, *target_currency;
-
- g_type_init();
-
- bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR);
- bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
- textdomain(GETTEXT_PACKAGE);
-
- /* Seed random number generator. */
- srand48((long) time((time_t *) 0));
-
- get_options(argc, argv);
-
- settings = g_settings_new ("org.mate.gcalctool");
- accuracy = g_settings_get_int(settings, "accuracy");
- word_size = g_settings_get_int(settings, "word-size");
- base = g_settings_get_int(settings, "base");
- show_tsep = g_settings_get_boolean(settings, "show-thousands");
- show_zeroes = g_settings_get_boolean(settings, "show-zeroes");
- number_format = g_settings_get_enum(settings, "number-format");
- angle_units = g_settings_get_enum(settings, "angle-units");
- button_mode = g_settings_get_enum(settings, "button-mode");
- source_currency = g_settings_get_string(settings, "source-currency");
- target_currency = g_settings_get_string(settings, "target-currency");
-
- equation = math_equation_new();
- math_equation_set_accuracy(equation, accuracy);
- math_equation_set_word_size(equation, word_size);
- math_equation_set_show_thousands_separators(equation, show_tsep);
- math_equation_set_show_trailing_zeroes(equation, show_zeroes);
- math_equation_set_number_format(equation, number_format);
- math_equation_set_angle_units(equation, angle_units);
- math_equation_set_source_currency(equation, source_currency);
- math_equation_set_target_currency(equation, target_currency);
- g_free(source_currency);
- g_free(target_currency);
-
- gtk_init(&argc, &argv);
-
- window = math_window_new(equation);
- g_signal_connect(G_OBJECT(window), "quit", G_CALLBACK(quit_cb), NULL);
- math_buttons_set_programming_base(math_window_get_buttons(window), base);
- math_buttons_set_mode(math_window_get_buttons(window), button_mode); // FIXME: We load the basic buttons even if we immediately switch to the next type
-
- gtk_widget_show(GTK_WIDGET(window));
- gtk_main();
-
- return(0);
-}