[gcalctool] More buttons and functions
- From: Robert Ancell <rancell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gcalctool] More buttons and functions
- Date: Fri, 9 Apr 2010 05:04:15 +0000 (UTC)
commit 2c5997091997e5b02e4025fb83ad492b315be864
Author: Robert Ancell <robert ancell gmail com>
Date: Fri Apr 9 15:04:00 2010 +1000
More buttons and functions
data/buttons-advanced.ui | 36 +++++++++++++++++++--
data/buttons-basic.ui | 5 ++-
data/buttons-financial.ui | 74 +++++---------------------------------------
src/math-buttons.c | 18 ++++-------
src/mp-equation-lexer.l | 2 +
src/mp-equation.c | 9 +++++
6 files changed, 63 insertions(+), 81 deletions(-)
---
diff --git a/data/buttons-advanced.ui b/data/buttons-advanced.ui
index 64e3778..f2d61e3 100644
--- a/data/buttons-advanced.ui
+++ b/data/buttons-advanced.ui
@@ -14,6 +14,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Inverse [Ctrl+I]</property>
<property name="border_width">3</property>
<property name="focus_on_click">False</property>
<child internal-child="accessible">
@@ -42,10 +43,11 @@
</child>
<child>
<object class="GtkButton" id="calc_factor_button">
- <property name="label">fact</property>
+ <property name="label">a×b</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Factorize [Ctrl+F]</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -70,6 +72,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Factorial [!]</property>
<property name="border_width">3</property>
<property name="focus_on_click">False</property>
<child internal-child="accessible">
@@ -101,6 +104,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Fractional component</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -340,7 +344,6 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
- <property name="tooltip_text" translatable="yes" comments="Tooltip for the numeric point button">Numeric point [. or ,]</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -485,6 +488,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Subscript mode [Alt]</property>
<property name="border_width">3</property>
<property name="focus_on_click">False</property>
<child internal-child="accessible">
@@ -511,6 +515,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Superscript mode [Ctrl]</property>
<property name="border_width">3</property>
<property name="focus_on_click">False</property>
<child internal-child="accessible">
@@ -539,6 +544,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Scientific exponent [Ctrl+E]</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -569,6 +575,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Modulus divide</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -587,6 +594,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Start block [(]</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -623,6 +631,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Insert variable</property>
<property name="border_width">3</property>
<property name="focus_on_click">False</property>
<child internal-child="accessible">
@@ -671,6 +680,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Assign variable</property>
<property name="border_width">3</property>
<property name="focus_on_click">False</property>
<child internal-child="accessible">
@@ -719,6 +729,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Absolute value [|]</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -751,6 +762,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Integer component</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -767,10 +779,11 @@
</child>
<child>
<object class="GtkButton" id="calc_real_portion_button">
- <property name="label">re</property>
+ <property name="label">ℜ</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Real component</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -787,10 +800,11 @@
</child>
<child>
<object class="GtkButton" id="calc_imaginary_portion_button">
- <property name="label">im</property>
+ <property name="label">ℑ</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Imaginary component</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -811,6 +825,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Complex conjugate</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -831,6 +846,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Natural logarithm</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -851,6 +867,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Logarithm</property>
<property name="border_width">3</property>
<property name="focus_on_click">False</property>
<signal name="clicked" handler="button_cb"/>
@@ -869,6 +886,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Exponent [^ or **]</property>
<property name="border_width">3</property>
<property name="focus_on_click">False</property>
<child internal-child="accessible">
@@ -900,6 +918,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Root [Ctrl+R]</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -920,6 +939,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Backspace</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -938,6 +958,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Pi [Ctrl+P]</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -964,6 +985,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Eulers number [e]</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -997,6 +1019,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Cosine</property>
<property name="border_width">3</property>
<property name="focus_on_click">False</property>
<signal name="clicked" handler="button_cb"/>
@@ -1012,6 +1035,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Sine</property>
<property name="border_width">3</property>
<property name="focus_on_click">False</property>
<signal name="clicked" handler="button_cb"/>
@@ -1029,6 +1053,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Tangent</property>
<property name="border_width">3</property>
<property name="focus_on_click">False</property>
<signal name="clicked" handler="button_cb"/>
@@ -1046,6 +1071,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Hyperbolic cosine</property>
<property name="border_width">3</property>
<property name="focus_on_click">False</property>
<signal name="clicked" handler="button_cb"/>
@@ -1063,6 +1089,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Hyperbolic sine</property>
<property name="border_width">3</property>
<property name="focus_on_click">False</property>
<signal name="clicked" handler="button_cb"/>
@@ -1082,6 +1109,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Hyperbolic tangent</property>
<property name="border_width">3</property>
<property name="focus_on_click">False</property>
<signal name="clicked" handler="button_cb"/>
diff --git a/data/buttons-basic.ui b/data/buttons-basic.ui
index 1e0d026..4c9d138 100644
--- a/data/buttons-basic.ui
+++ b/data/buttons-basic.ui
@@ -384,6 +384,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Clear display [Escape]</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -500,6 +501,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Square root</property>
<property name="border_width">3</property>
<property name="use_underline">True</property>
<property name="focus_on_click">False</property>
@@ -519,14 +521,15 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
+ <property name="tooltip_text" translatable="yes">Square</property>
<property name="border_width">3</property>
<property name="focus_on_click">False</property>
- <signal name="clicked" handler="button_cb"/>
<child internal-child="accessible">
<object class="AtkObject" id="calc_x_squared_button-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the exponentiation (x to the power of y) button">Exponent</property>
</object>
</child>
+ <signal name="clicked" handler="button_cb"/>
<child>
<object class="GtkLabel" id="x_squared_label">
<property name="visible">True</property>
diff --git a/data/buttons-financial.ui b/data/buttons-financial.ui
index 9837ee3..61024ea 100644
--- a/data/buttons-financial.ui
+++ b/data/buttons-financial.ui
@@ -206,31 +206,6 @@
</packing>
</child>
<child>
- <object class="GtkButton" id="calc_factor_button">
- <property name="label">fact</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="border_width">3</property>
- <property name="use_underline">True</property>
- <property name="focus_on_click">False</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="calc_factor_button-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" comments="Accessible name for the factorize button">Factorize</property>
- </object>
- </child>
- <signal name="clicked" handler="factorize_cb"/>
- </object>
- <packing>
- <property name="left_attach">5</property>
- <property name="right_attach">6</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
- <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
- </packing>
- </child>
- <child>
<object class="GtkButton" id="calc_natural_logarithm_button">
<property name="label">ln</property>
<property name="visible">True</property>
@@ -332,46 +307,6 @@
</packing>
</child>
<child>
- <object class="GtkButton" id="calc_fractional_portion_button">
- <property name="label">frac</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="border_width">3</property>
- <property name="use_underline">True</property>
- <property name="focus_on_click">False</property>
- <signal name="clicked" handler="button_cb"/>
- </object>
- <packing>
- <property name="left_attach">7</property>
- <property name="right_attach">8</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
- <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="calc_modulus_divide_button">
- <property name="label">mod</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="border_width">3</property>
- <property name="use_underline">True</property>
- <property name="focus_on_click">False</property>
- <signal name="clicked" handler="button_cb"/>
- </object>
- <packing>
- <property name="left_attach">6</property>
- <property name="right_attach">7</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
- <property name="y_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
- </packing>
- </child>
- <child>
<object class="GtkButton" id="calc_4_button">
<property name="label">4</property>
<property name="visible">True</property>
@@ -988,6 +923,15 @@
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
</object>
diff --git a/src/math-buttons.c b/src/math-buttons.c
index 15fb80e..1c6cc93 100644
--- a/src/math-buttons.c
+++ b/src/math-buttons.c
@@ -36,7 +36,7 @@ struct MathButtonsPrivate
ButtonMode mode;
GtkBuilder *basic_ui, *advanced_ui, *financial_ui, *programming_ui;
- GdkColor colour_numbers, colour_action, colour_operator, colour_function, colour_memory, colour_trig, colour_group;
+ GdkColor colour_numbers, colour_action, colour_operator, colour_function, colour_memory, colour_group;
GtkWidget *bas_panel, *adv_panel, *fin_panel, *prog_panel;
@@ -393,12 +393,12 @@ load_mode(MathButtons *buttons, ButtonMode mode)
set_tint(GET_WIDGET(builder, "calc_or_button"), &buttons->priv->colour_operator, 1);
set_tint(GET_WIDGET(builder, "calc_xor_button"), &buttons->priv->colour_operator, 1);
- set_tint(GET_WIDGET(builder, "calc_cosine_button"), &buttons->priv->colour_trig, 1);
- set_tint(GET_WIDGET(builder, "calc_sine_button"), &buttons->priv->colour_trig, 1);
- set_tint(GET_WIDGET(builder, "calc_tangent_button"), &buttons->priv->colour_trig, 1);
- set_tint(GET_WIDGET(builder, "calc_hyperbolic_cosine_button"), &buttons->priv->colour_trig, 1);
- set_tint(GET_WIDGET(builder, "calc_hyperbolic_sine_button"), &buttons->priv->colour_trig, 1);
- set_tint(GET_WIDGET(builder, "calc_hyperbolic_tangent_button"), &buttons->priv->colour_trig, 1);
+ set_tint(GET_WIDGET(builder, "calc_cosine_button"), &buttons->priv->colour_function, 2);
+ set_tint(GET_WIDGET(builder, "calc_sine_button"), &buttons->priv->colour_function, 2);
+ set_tint(GET_WIDGET(builder, "calc_tangent_button"), &buttons->priv->colour_function, 2);
+ set_tint(GET_WIDGET(builder, "calc_hyperbolic_cosine_button"), &buttons->priv->colour_function, 2);
+ set_tint(GET_WIDGET(builder, "calc_hyperbolic_sine_button"), &buttons->priv->colour_function, 2);
+ set_tint(GET_WIDGET(builder, "calc_hyperbolic_tangent_button"), &buttons->priv->colour_function, 2);
set_tint(GET_WIDGET(builder, "calc_start_group_button"), &buttons->priv->colour_group, 1);
set_tint(GET_WIDGET(builder, "calc_end_group_button"), &buttons->priv->colour_group, 1);
@@ -851,7 +851,6 @@ finc_response_cb(GtkWidget *widget, gint response_id, MathButtons *buttons)
continue;
}
entry = GET_WIDGET(buttons->priv->financial_ui, finc_dialog_fields[dialog][i]);
- // FIXME: Have to delocalize the input
mp_set_from_string(gtk_entry_get_text(GTK_ENTRY(entry)), &arg[i]);
gtk_entry_set_text(GTK_ENTRY(entry), "0");
}
@@ -1217,9 +1216,6 @@ math_buttons_init (MathButtons *buttons)
buttons->priv->colour_memory.red = 65535;
buttons->priv->colour_memory.green = 0;
buttons->priv->colour_memory.blue = 65535;
- buttons->priv->colour_trig.red = 65535;
- buttons->priv->colour_trig.green = 65535;
- buttons->priv->colour_trig.blue = 0;
buttons->priv->colour_group.red = 65535;
buttons->priv->colour_group.green = 65535;
buttons->priv->colour_group.blue = 65535;
diff --git a/src/mp-equation-lexer.l b/src/mp-equation-lexer.l
index 5f22ef3..2dd5229 100644
--- a/src/mp-equation-lexer.l
+++ b/src/mp-equation-lexer.l
@@ -71,6 +71,8 @@ AND "â?§"|[aA][nN][dD]
OR "â?¨"|[oO][rR]
XOR "â?»"|"â??"|[xX][oO][rR]
NOT "¬"|"~"|[nN][oO][tT]
+RE "â?°â??"
+IM "â??"
IN [iI][nN]
%%
diff --git a/src/mp-equation.c b/src/mp-equation.c
index 0399484..91328f5 100644
--- a/src/mp-equation.c
+++ b/src/mp-equation.c
@@ -130,8 +130,11 @@ function_is_defined(MPEquationParserState *state, const char *name)
strcmp(lower_name, "ln") == 0 ||
strcmp(lower_name, "sqrt") == 0 ||
strcmp(lower_name, "abs") == 0 ||
+ strcmp(lower_name, "conj") == 0 ||
strcmp(lower_name, "int") == 0 ||
strcmp(lower_name, "frac") == 0 ||
+ strcmp(lower_name, "re") == 0 ||
+ strcmp(lower_name, "im") == 0 ||
strcmp(lower_name, "sin") == 0 || strcmp(lower_name, "cos") == 0 || strcmp(lower_name, "tan") == 0 ||
strcmp(lower_name, "sin�¹") == 0 || strcmp(lower_name, "cos�¹") == 0 || strcmp(lower_name, "tan�¹") == 0 ||
strcmp(lower_name, "sinh") == 0 || strcmp(lower_name, "cosh") == 0 || strcmp(lower_name, "tanh") == 0 ||
@@ -179,10 +182,16 @@ get_function(MPEquationParserState *state, const char *name, const MPNumber *x,
mp_sqrt(x, z);
else if (strcmp(lower_name, "abs") == 0) // |x|
mp_abs(x, z);
+ else if (strcmp(lower_name, "conj") == 0)
+ mp_conjugate(x, z);
else if (strcmp(lower_name, "int") == 0)
mp_integer_component(x, z);
else if (strcmp(lower_name, "frac") == 0)
mp_fractional_component(x, z);
+ else if (strcmp(lower_name, "re") == 0)
+ mp_real_component(x, z);
+ else if (strcmp(lower_name, "im") == 0)
+ mp_imaginary_component(x, z);
else if (strcmp(lower_name, "sin") == 0)
mp_sin(x, state->options->angle_units, z);
else if (strcmp(lower_name, "cos") == 0)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]