gcalctool r2305 - in trunk: . gcalctool glade



Author: rancell
Date: Sat Nov 15 05:17:01 2008
New Revision: 2305
URL: http://svn.gnome.org/viewvc/gcalctool?rev=2305&view=rev

Log:
Made scientific functions that are inverses of eachother use the inverse button like the trigonometric ones do. Shortcut keys changed so inverse function is the shift+base function (Robin Sonefors, Bug #379476)

Modified:
   trunk/ChangeLog
   trunk/gcalctool/calctool.c
   trunk/gcalctool/calctool.h
   trunk/gcalctool/gtk.c
   trunk/gcalctool/ui.h
   trunk/glade/gcalctool.glade

Modified: trunk/gcalctool/calctool.c
==============================================================================
--- trunk/gcalctool/calctool.c	(original)
+++ trunk/gcalctool/calctool.c	Sat Nov 15 05:17:01 2008
@@ -81,7 +81,9 @@
 { KEY_RECIPROCAL,        NULL, 0 },
 { KEY_E_POW_X,           "e^", PREFIXOP },
 { KEY_10_POW_X,          "10^", PREFIXOP },       
+{ KEY_2_POW_X,           "2^", PREFIXOP },
 { KEY_X_POW_Y,           "^", 0 },
+{ KEY_X_POW_Y_INV,       "^(1/(", 0 },
 { KEY_FACTORIAL,         "!", 0 },
 { KEY_RANDOM,            "Rand", 0 },
 { KEY_SIN,               "Sin", FUNC },

Modified: trunk/gcalctool/calctool.h
==============================================================================
--- trunk/gcalctool/calctool.h	(original)
+++ trunk/gcalctool/calctool.h	Sat Nov 15 05:17:01 2008
@@ -90,7 +90,9 @@
     KEY_RECIPROCAL,
     KEY_E_POW_X,
     KEY_10_POW_X,
+    KEY_2_POW_X,
     KEY_X_POW_Y,
+    KEY_X_POW_Y_INV,
     KEY_FACTORIAL,
     KEY_RANDOM,
     KEY_SIN, KEY_SINH, KEY_ASIN, KEY_ASINH,

Modified: trunk/gcalctool/gtk.c
==============================================================================
--- trunk/gcalctool/gtk.c	(original)
+++ trunk/gcalctool/gtk.c	Sat Nov 15 05:17:01 2008
@@ -100,118 +100,118 @@
  *
  *           |  a b c d e f g h i j k l m n o p q r s t u v w x y z
  *-----------+-----------------------------------------------------
- *  Lower:   |  a b c d e f g   i     l m n   p   r s t u v   x
- *  Upper:   |  A   C D E F G     J K L M N   P   R S T       X Y
+ *  Lower:   |  a b c d e f g h i j k l m n o p q r s t u v   x
+ *  Upper:   |  A   C D E F G H I J K   M N O P Q R S T       X Y
  *  Numeric: |  0 1 2 3 4 5 6 7 8 9
- *  Other:   |  @ . + - * / = % ( ) # < > [ ] { } | & ~ ^ ? ! :
+ *  Other:   |  @ . + - * / = % ( ) # < > [ ] { | & ~ ^ ? ! :
  *           |  BackSpace Delete Return
  *-----------+-----------------------------------------------------
  */
     
 static struct button_widget button_widgets[] = {
     {KEY_0,                  "0",
-    { 0,     GDK_SHIFT_MASK, 0,        0,             0 },
-    { GDK_0, GDK_0,          GDK_KP_0, GDK_KP_Insert, 0 }},
+    { 0,     0,        0,             0 },
+    { GDK_0, GDK_KP_0, GDK_KP_Insert, 0 }},
 
     {KEY_1,                  "1",
-    { 0,     GDK_SHIFT_MASK, 0,        0,          0,       0 },
-    { GDK_1, GDK_1,          GDK_KP_1, GDK_KP_End, GDK_R13, 0 }},
+    { 0,     0,        0,          0,       0 },
+    { GDK_1, GDK_KP_1, GDK_KP_End, GDK_R13, 0 }},
 
     {KEY_2,                  "2",
-    { 0,     GDK_SHIFT_MASK, 0,        0,           0 }, 
-    { GDK_2, GDK_2,          GDK_KP_2, GDK_KP_Down, 0 }},
+    { 0,     0,        0,           0 }, 
+    { GDK_2, GDK_KP_2, GDK_KP_Down, 0 }},
 
     {KEY_3,                  "3",
-    { 0,     GDK_SHIFT_MASK, 0,        0,                0,       0 },
-    { GDK_3, GDK_3,          GDK_KP_3, GDK_KP_Page_Down, GDK_R15, 0 }},
+    { 0,     0,        0,                0,       0 },
+    { GDK_3, GDK_KP_3, GDK_KP_Page_Down, GDK_R15, 0 }},
 
     {KEY_4,                  "4",
-    { 0,     GDK_SHIFT_MASK, 0,        0,           0 },
-    { GDK_4, GDK_4,          GDK_KP_4, GDK_KP_Left, 0 }},
+    { 0,     0,        0,           0 },
+    { GDK_4, GDK_KP_4, GDK_KP_Left, 0 }},
 
     {KEY_5,                  "5",
-    { 0,     GDK_SHIFT_MASK, 0,        0,            0,       0 },
-    { GDK_5, GDK_5,          GDK_KP_5, GDK_KP_Begin, GDK_R11, 0 }},
+    { 0,     0,        0,            0,       0 },
+    { GDK_5, GDK_KP_5, GDK_KP_Begin, GDK_R11, 0 }},
 
     {KEY_6,                  "6",
-    { 0,     GDK_SHIFT_MASK, 0,        0,            0 },
-    { GDK_6, GDK_6,          GDK_KP_6, GDK_KP_Right, 0 }},
+    { 0,     0,        0,            0 },
+    { GDK_6, GDK_KP_6, GDK_KP_Right, 0 }},
 
     {KEY_7,                  "7",
-    { 0,     GDK_SHIFT_MASK, 0,        0,           0,      0 },
-    { GDK_7, GDK_7,          GDK_KP_7, GDK_KP_Home, GDK_R7, 0 }},
+    { 0,     0,        0,           0,      0 },
+    { GDK_7, GDK_KP_7, GDK_KP_Home, GDK_R7, 0 }},
 
     {KEY_8,                  "8",
-    { 0,     GDK_SHIFT_MASK, 0,        0,         0 },
-    { GDK_8, GDK_8,          GDK_KP_8, GDK_KP_Up, 0 }},
+    { 0,     0,        0,         0 },
+    { GDK_8, GDK_KP_8, GDK_KP_Up, 0 }},
 
     {KEY_9,                  "9",
-    { 0,     GDK_SHIFT_MASK, 0,        0,              0,      0 },
-    { GDK_9, GDK_9,          GDK_KP_9, GDK_KP_Page_Up, GDK_R9, 0 }},
+    { 0,     0,        0,              0,      0 },
+    { GDK_9, GDK_KP_9, GDK_KP_Page_Up, GDK_R9, 0 }},
 
     {KEY_A,                  "a",
-    { 0,     0,     0 },
-    { GDK_a, GDK_A, 0 }},
+    { 0,     0 },
+    { GDK_a, 0 }},
 
     {KEY_B,                  "b",
-    { 0,     0,     0 },
-    { GDK_b, GDK_B, 0 }},
+    { 0,     0 },
+    { GDK_b, 0 }},
 
     {KEY_C,                  "c",
-    { 0,     0,     0 },
-    { GDK_c, GDK_C, 0 }},
+    { 0,     0 },
+    { GDK_c, 0 }},
 
     {KEY_D,                  "d",
-    { 0,     0,     0 },
-    { GDK_d, GDK_D, 0 }},
+    { 0,     0 },
+    { GDK_d, 0 }},
 
     {KEY_E,                  "e",
-    { 0,     0,     0 },
-    { GDK_e, GDK_E, 0 }},
+    { 0,     0 },
+    { GDK_e, 0 }},
 
     {KEY_F,                  "f",
-    { 0,     0,     0 },
-    { GDK_f, GDK_F, 0 }},
+    { 0,     0 },
+    { GDK_f, 0 }},
 
     {KEY_CLEAR,              "clear_simple",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_Delete,     0 }},
+    { 0,          0 },
+    { GDK_Delete, 0 }},
     
     {KEY_CLEAR,              "clear_advanced",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_Delete,     0 }},
+    { 0,          0 },
+    { GDK_Delete, 0 }},
 
     {KEY_SHIFT,              "shift_left",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_less,       0 }},
+    { 0,        0 },
+    { GDK_less, 0 }},
 
     {KEY_SHIFT,              "shift_right",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_greater,    0 }},
+    { 0,           0 },
+    { GDK_greater, 0 }},
 
     {KEY_SET_ACCURACY,       "accuracy",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_A,          0 }},
+    { 0,     0 },
+    { GDK_A, 0 }},
 
     {KEY_CONSTANT,           "constants",
-    { GDK_SHIFT_MASK, 0,              0 },
-    { GDK_numbersign, GDK_numbersign, 0 }},
+    { 0,              0 },
+    { GDK_numbersign, 0 }},
 
     {KEY_FUNCTION,           "functions",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_F,          0 }},
+    { 0,     0 },
+    { GDK_F, 0 }},
 
     {KEY_STORE,              "store",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_S,          0 }},
+    { 0,     0 },
+    { GDK_S, 0 }},
 
     {KEY_RECALL,             "recall",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_R,          0 }},
+    { 0,     0 },
+    { GDK_R, 0 }},
 
     {KEY_EXCHANGE,           "exchange",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_X,          0 }},
+    { 0,     0 },
+    { GDK_X, 0 }},
 
     {KEY_CLEAR_ENTRY,        "clear_entry_simple",
     { GDK_CONTROL_MASK, 0,          0 },
@@ -234,68 +234,68 @@
     { GDK_period, GDK_KP_Decimal, GDK_KP_Delete, GDK_KP_Separator, 0 }},
 
     {KEY_CALCULATE,          "result",
-    { 0,         0,            0,          GDK_SHIFT_MASK, 0 },
-    { GDK_equal, GDK_KP_Enter, GDK_Return, GDK_equal,      0 }},
+    { 0,         0,            0,          0 },
+    { GDK_equal, GDK_KP_Enter, GDK_Return, 0 }},
 
     {KEY_START_BLOCK,        "start_group",
-    { 0,             GDK_SHIFT_MASK, 0 },
-    { GDK_parenleft, GDK_parenleft,  0 }},
+    { 0,             0 },
+    { GDK_parenleft, 0 }},
 
     {KEY_END_BLOCK,          "end_group",
-    { 0,              GDK_SHIFT_MASK, 0 },
-    { GDK_parenright, GDK_parenright, 0 }},
+    { 0,              0 },
+    { GDK_parenright, 0 }},
 
     {KEY_ADD,                "add",
-    { 0,        GDK_SHIFT_MASK, 0,          0 },
-    { GDK_plus, GDK_plus,       GDK_KP_Add, 0 }},
+    { 0,        0,          0 },
+    { GDK_plus, GDK_KP_Add, 0 }},
 
     {KEY_SUBTRACT,           "subtract",
-    { 0,         GDK_SHIFT_MASK, 0,               0,      0 },
-    { GDK_minus, GDK_minus,      GDK_KP_Subtract, GDK_R4, 0 }},
+    { 0,         0,               0,      0 },
+    { GDK_minus, GDK_KP_Subtract, GDK_R4, 0 }},
 
     {KEY_MULTIPLY,           "multiply",
-    { 0,            GDK_SHIFT_MASK, 0,            GDK_SHIFT_MASK, 0,               0,      0 },
-    { GDK_asterisk, GDK_asterisk,   GDK_multiply, GDK_multiply,   GDK_KP_Multiply, GDK_R6, 0 }},
+    { 0,            0,            0,               0,      0 },
+    { GDK_asterisk, GDK_multiply, GDK_KP_Multiply, GDK_R6, 0 }},
 
     {KEY_DIVIDE,             "divide",
-    { 0,         GDK_SHIFT_MASK, 0,            GDK_SHIFT_MASK, 0,             0,      GDK_SHIFT_MASK, 0 },
-    { GDK_slash, GDK_slash,      GDK_division, GDK_division,   GDK_KP_Divide, GDK_R5, GDK_slash,      0 }},
+    { 0,         0,            0,             0,      0 },
+    { GDK_slash, GDK_division, GDK_KP_Divide, GDK_R5, 0 }},
 
     {KEY_CHANGE_SIGN,        "change_sign_simple",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_C,          0 }},
+    { 0,     0 },
+    { GDK_C, 0 }},
 
     {KEY_CHANGE_SIGN,        "change_sign_advanced",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_C,          0 }},
+    { 0,     0 },
+    { GDK_C, 0 }},
 
     {KEY_INTEGER,            "integer_portion",
-    { 0,     0,     0 },
-    { GDK_i, GDK_I, 0 }},
+    { 0,     0 },
+    { GDK_i, 0 }},
 
     {KEY_FRACTION,           "fractional_portion",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_colon,      0 }},
+    { 0,         0 },
+    { GDK_colon, 0 }},
 
     {KEY_PERCENTAGE,         "percentage",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_percent,    0 }},
+    { 0,           0 },
+    { GDK_percent, 0 }},
 
     {KEY_SQUARE,             "square",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_at,         0 }},
+    { 0,      0 },
+    { GDK_at, 0 }},
 
     {KEY_SQUARE_ROOT,        "sqrt",
-    { 0,     0,     0 },   
-    { GDK_s, GDK_S, 0 }},
+    { 0,     0 },
+    { GDK_s, 0 }},
 
     {KEY_RECIPROCAL,         "reciprocal",
-    { 0,     0,     0 },
-    { GDK_r, GDK_R, 0 }},
+    { 0,     0 },
+    { GDK_r, 0 }},
 
     {KEY_ABSOLUTE_VALUE,     "abs",
-    { 0,     0,     0 },
-    { GDK_u, GDK_U, 0 }},
+    { 0,     0 },
+    { GDK_u, 0 }},
 
     {KEY_MASK_16,            "mask_16",
     { 0,                0 },
@@ -306,119 +306,144 @@
     { GDK_bracketleft, 0 }},
 
     {KEY_MODULUS_DIVIDE,     "modulus_divide",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_M,          0 }},
+    { 0,     0 },
+    { GDK_M, 0 }},
 
     {KEY_EXPONENTIAL,        "exponential",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_E,          0 }},
-
-    {KEY_E_POW_X,            "pow_e",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_braceleft,  0 }},
-
-    {KEY_10_POW_X,           "pow_10",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_braceright, 0 }},
-
-    {KEY_X_POW_Y,            "x_pow_y",
-    { GDK_SHIFT_MASK, GDK_SHIFT_MASK,  0 },
-    { GDK_caret,      GDK_asciicircum, 0 }},
-
-    {KEY_NATURAL_LOGARITHM,  "natural_logarithm",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_N,          0 }},
-
-    {KEY_LOGARITHM,          "logarithm",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_G,          0 }},
-
-    {KEY_LOGARITHM2,         "logarithm2",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_H,          0 }},
+    { 0,     0 },
+    { GDK_E, 0 }},
 
     {KEY_FACTORIAL,          "factorial",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_exclam,     0 }},
+    { 0,          0 },
+    { GDK_exclam, 0 }},
 
     {KEY_RANDOM,             "random",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_question,   0 }},
-
-    {KEY_SIN,                "sine",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_K,          0 }},
-
-    {KEY_COS,                "cosine",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_J,          0 }},
-
-    {KEY_TAN,                "tangent",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_L,          0 }},
+    { 0,            0 },
+    { GDK_question, 0 }},
 
     {KEY_NOT,                "not",
-    { GDK_SHIFT_MASK, 0 },
+    { 0,              0 },
     { GDK_asciitilde, 0 }},
 
     {KEY_OR,                 "or",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_bar,        0 }},
+    { 0,       0 },
+    { GDK_bar, 0 }},
 
     {KEY_AND,                "and",
-    { GDK_SHIFT_MASK, 0 },
+    { 0,             0 },
     { GDK_ampersand, 0 }},
 
     {KEY_XOR,                "xor",
-    { 0,     0,     0 },
-    { GDK_x, GDK_X, 0 }},
+    { 0,     0 },
+    { GDK_x, 0 }},
 
     {KEY_XNOR,               "xnor",
-    { 0,     0,     0 },
-    { GDK_n, GDK_N, 0 }},
+    { 0,     0 },
+    { GDK_braceleft, 0 }},
 
     {KEY_FINC_CTRM,          "finc_compounding_term",
-    { 0,     0,     0 },
-    { GDK_m, GDK_M, 0 }},
+    { 0,     0 },
+    { GDK_m, 0 }},
 
     {KEY_FINC_DDB,           "finc_double_declining_depreciation",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_D,          0 }},
+    { 0,     0 },
+    { GDK_D, 0 }},
 
     {KEY_FINC_FV,            "finc_future_value",
-    { 0,     0,     0 },
-    { GDK_v, GDK_V, 0 }},
+    { 0,     0 },
+    { GDK_v, 0 }},
 
     {KEY_FINC_GPM,           "finc_gross_profit_margin",
-    { 0,     0,     0 },
-    { GDK_g, GDK_G, 0 }},
+    { 0,     0 },
+    { GDK_I, 0 }},
 
     {KEY_FINC_PMT,           "finc_periodic_payment",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_P,          0 }},
+    { 0,     0 },
+    { GDK_P, 0 }},
 
     {KEY_FINC_PV,            "finc_present_value",
-    { 0,     0,     0 },
-    { GDK_p, GDK_P, 0 }},
+    { 0,     0 },
+    { GDK_p, 0 }},
 
     {KEY_FINC_RATE,          "finc_periodic_interest_rate",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_T,          0 }},
+    { 0,     0 },
+    { GDK_T, 0 }},
 
     {KEY_FINC_SLN,           "finc_straight_line_depreciation",
-    { 0,     0,     0 },
-    { GDK_l, GDK_L, 0 }},
+    { 0,     0 },
+    { GDK_l, 0 }},
 
     {KEY_FINC_SYD,           "finc_sum_of_the_years_digits_depreciation",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_Y,          0 }},
+    { 0,     0 },
+    { GDK_Y, 0 }},
 
     {KEY_FINC_TERM,          "finc_term",
-    { 0,      0,      0 },
-    { GDK_t, GDK_T,   0 }},
+    { 0,     0 },
+    { GDK_t, 0 }},
 };
 #define NBUTTONS (sizeof(button_widgets) / sizeof(struct button_widget))
 
+/* All functions that share widget with other functions. */
+static struct button_widget widgetless_buttons[] = {
+    {KEY_SIN,                "sine",
+    { 0,     0 },
+    { GDK_k, 0 }},
+
+    {KEY_ASIN,                "sine",
+    { 0,     0 },
+    { GDK_K, 0 }},
+
+    {KEY_COS,                "cosine",
+    { 0,     0 },
+    { GDK_j, 0 }},
+
+    {KEY_ACOS,                "cosine",
+    { 0,     0 },
+    { GDK_J, 0 }},
+
+    {KEY_TAN,                "tangent",
+    { 0,     0 },
+    { GDK_w, 0 }},
+
+    {KEY_ATAN,                "tangent",
+    { 0,     0 },
+    { GDK_W, 0 }},
+
+    {KEY_NATURAL_LOGARITHM,  "natural_logarithm",
+    { 0,     0 },
+    { GDK_n, 0 }},
+
+    {KEY_E_POW_X,            "pow_e",
+    { 0,             0 },
+    { GDK_N, 0 }},
+
+    {KEY_LOGARITHM,          "logarithm",
+    { 0,     0 },
+    { GDK_g, 0 }},
+
+    {KEY_10_POW_X,           "pow_10",
+    { 0,              0 },
+    { GDK_G, 0 }},
+
+    {KEY_LOGARITHM2,         "logarithm2",
+    { 0,     0 },
+    { GDK_h, 0 }},
+
+    {KEY_2_POW_X,            "logarithm2",
+    { 0,     0 },
+    { GDK_H, 0 }},
+
+    {KEY_X_POW_Y,            "x_pow_y",
+    { 0,     0,         0,               0 },
+    { GDK_o, GDK_caret, GDK_asciicircum, 0 }},
+
+    {KEY_X_POW_Y_INV,        "x_pow_y",
+    { 0,     0 },
+    { GDK_O, 0 }},
+};
+
+#define NVARBUTTONS (sizeof(widgetless_buttons) / sizeof(struct button_widget))
+
 #define UI_FILE PACKAGE_GLADE_DIR "/gcalctool.glade"
 
 #define  MAXBITS    64      /* Bit panel: number of bit fields. */
@@ -558,81 +583,177 @@
 
 
 static void
-ui_update_trig_mode()
+ui_update_modifier_mode()
 {
     static char *sine_labels[]      = {
         /* Translators: The sine button */
         N_("Sin"),
-        /* Translators: The hyperbolic sine button */
-        N_("Sinh"),
         /* Translators: The inverse sine button */        
         N_("Sin<sup>-1</sup>"),
+        /* Translators: The hyperbolic sine button */
+        N_("Sinh"),
         /* Translators: The inverse hyperbolic sine button */
         N_("Sinh<sup>-1</sup>")};
-    static int  sine_functions[]    = {KEY_SIN, KEY_SINH, KEY_ASIN, KEY_ASINH};
+    static char *sine_tooltips[]    = {
+        /* Translators: The sine tooltip */
+        N_("Sine [k]"),
+        /* Translators: The inverse sine tooltip */
+        N_("Inverse Sine [K]"),
+        /* Translators: The hyperbolic sine tooltip */
+        N_("Hyperbolic Sine [k]"),
+        /* Translators: The hyperbolic inverse sine tooltip */
+        N_("Hyperbolic Inverse Sine [K]")};
+    static int  sine_functions[]    = {KEY_SIN, KEY_ASIN, KEY_SINH, KEY_ASINH};
     static char *cosine_labels[]    = {
         /* Translators: The cosine button */
         N_("Cos"),
-        /* Translators: The hyperbolic cosine button */
-        N_("Cosh"),
         /* Translators: The inverse cosine button */        
         N_("Cos<sup>-1</sup>"),
+        /* Translators: The hyperbolic cosine button */
+        N_("Cosh"),
         /* Translators: The inverse hyperbolic cosine button */
         N_("Cosh<sup>-1</sup>")};
-    static int  cosine_functions[]  = {KEY_COS, KEY_COSH, KEY_ACOS, KEY_ACOSH};
+    static char *cosine_tooltips[]  = {
+        /* Translators: The cosine tooltip */
+        N_("Cosine [j]"),
+        /* Translators: The inverse cosine tooltip */
+        N_("Inverse Cosine [J]"),
+        /* Translators: The hyperbolic cosine tooltip */
+        N_("Hyperbolic Cosine [j]"),
+        /* Translators: The hyperbolic inverse cosine tooltip */
+        N_("Hyperbolic Inverse Cosine [J]")};
+    static int  cosine_functions[]  = {KEY_COS, KEY_ACOS, KEY_COSH, KEY_ACOSH};
     static char *tangent_labels[]   = {
         /* Translators: The tangent button */
         N_("Tan"),
-        /* Translators: The hyperbolic tangent button */
-        N_("Tanh"),
         /* Translators: The inverse tangent button */        
         N_("Tan<sup>-1</sup>"),
+        /* Translators: The hyperbolic tangent button */
+        N_("Tanh"),
         /* Translators: The inverse hyperbolic tangent button */
         N_("Tanh<sup>-1</sup>")};
-    static int  tangent_functions[] = {KEY_TAN, KEY_TANH, KEY_ATAN, KEY_ATANH};
+    static char *tangent_tooltips[] = {
+        /* Translators: The tangent tooltip */
+        N_("Tangent [w]"),
+        /* Translators: The inverse tangent tooltip */
+        N_("Inverse Tangent [W]"),
+        /* Translators: The hyperbolic tangent tooltip */
+        N_("Hyperbolic Tangent [w]"),
+        /* Translators: The hyperbolic inverse tangent tooltip */
+        N_("Hyperbolic Inverse Tangent [W]")};
+    static int  tangent_functions[] = {KEY_TAN, KEY_ATAN, KEY_TANH, KEY_ATANH};
+    
+	static char *ln_labels[]        = {
+        /* Translators: The natural logaritm button */
+        N_("Ln"),
+        /* Translators: The e to the power of x button */
+        N_("e<sup><i>x</i></sup>")};
+    static char *ln_tooltips[]      = {
+        /* Translators: Tooltip for the natural log button */
+        N_("Natural log [n]"),
+        /* Translators: Tooltip for the e to the power of x button */
+        N_("e to the power of the displayed value [N]")};
+    static int ln_functions[]       = {KEY_NATURAL_LOGARITHM, KEY_E_POW_X};
+    
+    static char *log_labels[]       = {
+        /* Translators: The 10-based logaritm button */
+        N_("Log"),
+        /* Translators: The 10 to the power of x button */
+        N_("10<sup><i>x</i></sup>")};
+    static char *log_tooltips[]     = {
+        /* Translators: Tooltip for the log base 10 button */
+        N_("Base 10 log [g]"),
+        /* Translators: Tooltip for the 10 to the power of x button */
+        N_("10 to the power of displayed value [G]")};
+    static int log_functions[]      = {KEY_LOGARITHM, KEY_10_POW_X};
+    
+    static char *log2_labels[]      = {
+        /* Translators: The 2-based logaritm button */
+        N_("Log<sub>2</sub>"),
+        /* Translators: The 2 to the power of x button */
+        N_("2<sup><i>x</i></sup>")};
+    static char *log2_tooltips[]    = {
+        /* Translators: Tooltip for the log base 2 button */
+        N_("Base 2 log [h]"),
+        /* Translators: Tooltip for the 2 to the power of x button */
+        N_("2 to the power of the displayed value [H]")};
+    static int log2_functions[]     = {KEY_LOGARITHM2, KEY_2_POW_X};
+
+    static char *x_pow_y_labels[]   = {
+        /* Translators: The x to the power of y button */
+        N_("x<sup><i>y</i></sup>"),
+        /* Translators: The x to the power of reciprocal y button */
+        N_("x<sup>1/<i>y</i></sup>")};
+    static char *x_pow_y_tooltips[] = {
+        /* Translators: Tooltip for the x to the power of y button */
+        N_("Raise displayed value to the power of y [o]"),
+        /* Translators: Tooltip for the x to the power of reciprocal y button */
+        N_("Raise displayed value to the power of reciprocal y [O]")};
+    static int x_pow_y_functions[]  = {KEY_X_POW_Y, KEY_X_POW_Y_INV};
+    
     int index = 0;
 
-    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(X->hyperbolic_toggle))) {
+    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(X->inverse_toggle))) {
         index |= 0x1;
     }
-    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(X->inverse_toggle))) {
+    
+    gtk_label_set_markup(GTK_LABEL(GET_WIDGET("natural_logarithm_label")),
+                         _(ln_labels[index]));
+    gtk_widget_set_tooltip_text(GET_WIDGET("calc_natural_logarithm_button"),
+                                _(ln_tooltips[index]));
+    g_object_set_data(G_OBJECT(GET_WIDGET("calc_natural_logarithm_button")), 
+                      "calc_function", GINT_TO_POINTER(ln_functions[index]));
+    
+    gtk_label_set_markup(GTK_LABEL(GET_WIDGET("logarithm_label")),
+                         _(log_labels[index]));
+    gtk_widget_set_tooltip_text(GET_WIDGET("calc_logarithm_button"),
+                                _(log_tooltips[index]));
+    g_object_set_data(G_OBJECT(GET_WIDGET("calc_logarithm_button")),
+                      "calc_function", GINT_TO_POINTER(log_functions[index]));
+
+    gtk_label_set_markup(GTK_LABEL(GET_WIDGET("logarithm2_label")),
+                         _(log2_labels[index]));
+    gtk_widget_set_tooltip_text(GET_WIDGET("calc_logarithm2_button"),
+                                _(log2_tooltips[index]));
+    g_object_set_data(G_OBJECT(GET_WIDGET("calc_logarithm2_button")),
+                      "calc_function", GINT_TO_POINTER(log2_functions[index]));
+
+    gtk_label_set_markup(GTK_LABEL(GET_WIDGET("x_pow_y_label")),
+                         _(x_pow_y_labels[index]));
+    gtk_widget_set_tooltip_text(GET_WIDGET("calc_x_pow_y_button"),
+                                _(x_pow_y_tooltips[index]));
+    g_object_set_data(G_OBJECT(GET_WIDGET("calc_x_pow_y_button")),
+                      "calc_function", 
+                      GINT_TO_POINTER(x_pow_y_functions[index]));
+    
+    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(X->hyperbolic_toggle))) {
         index |= 0x2;
     }
 
     gtk_label_set_markup(GTK_LABEL(GET_WIDGET("sine_label")),
                          _(sine_labels[index]));
+    gtk_widget_set_tooltip_text(GET_WIDGET("calc_sine_button"),
+                                _(sine_tooltips[index]));
     g_object_set_data(G_OBJECT(GET_WIDGET("calc_sine_button")), "calc_function",
                       GINT_TO_POINTER(sine_functions[index]));
 
     gtk_label_set_markup(GTK_LABEL(GET_WIDGET("cosine_label")),
                          _(cosine_labels[index]));
+    gtk_widget_set_tooltip_text(GET_WIDGET("calc_cosine_button"),
+                                _(cosine_tooltips[index]));
     g_object_set_data(G_OBJECT(GET_WIDGET("calc_cosine_button")), "calc_function",
                       GINT_TO_POINTER(cosine_functions[index]));
 
     gtk_label_set_markup(GTK_LABEL(GET_WIDGET("tangent_label")),
                          _(tangent_labels[index]));
+    gtk_widget_set_tooltip_text(GET_WIDGET("calc_tangent_button"),
+                                _(tangent_tooltips[index]));
     g_object_set_data(G_OBJECT(GET_WIDGET("calc_tangent_button")), "calc_function", 
                       GINT_TO_POINTER(tangent_functions[index]));
 }
 
 
 void
-ui_set_hyperbolic_state(gboolean state)
-{
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(X->hyperbolic_toggle), state);
-    ui_update_trig_mode();
-}
-
-
-void
-ui_set_inverse_state(gboolean state)
-{
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(X->inverse_toggle), state);
-    ui_update_trig_mode();
-}
-
-
-void
 ui_set_trigonometric_mode(enum trig_type mode)
 {
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(X->trig[mode]), 1);
@@ -1793,7 +1914,7 @@
 void
 hyp_cb(GtkWidget *widget)
 {
-    ui_update_trig_mode();
+    ui_update_modifier_mode();
 }
 
 
@@ -1801,7 +1922,7 @@
 void
 inv_cb(GtkWidget *widget)
 {
-    ui_update_trig_mode();
+    ui_update_modifier_mode();
 }
 
 
@@ -1880,9 +2001,9 @@
 {
     int i, j, state;
     GtkWidget *button;
-    
+
     /* Only look at the modifiers we use */
-    state = event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK | GDK_MOD1_MASK);
+    state = event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK);
     
     if (check_for_localized_numeric_point(event->keyval) == TRUE) {
         event->state = 0;
@@ -1943,6 +2064,13 @@
         return (TRUE);
     }
 
+    /* Shift inverse mode based on if shift is pressed */
+    if (event->keyval == GDK_Shift_L || event->keyval == GDK_Shift_R) {
+        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(X->inverse_toggle), 
+                                     TRUE);
+        return (TRUE);
+    }
+
     for (i = 0; i < NBUTTONS; i++) {
         button = X->buttons[i];
         
@@ -1967,6 +2095,32 @@
         }
     }
 
+    /* There should be no variable buttons in basic mode */
+    if (v->modetype == BASIC) {
+        return (FALSE);
+    }
+    for (i = 0; i < NVARBUTTONS; i++) {
+        for (j = 0; widgetless_buttons[i].accelerator_keys[j] != 0; j++) {
+            if (widgetless_buttons[i].accelerator_keys[j] == event->keyval &&
+                widgetless_buttons[i].accelerator_mods[j] == state) {
+                do_button(widgetless_buttons[i].key, 0);
+                return (TRUE);
+            }
+        }
+    }
+
+    return (FALSE);
+}
+
+
+static gboolean
+kframe_key_release_cb(GtkWidget *widget, GdkEventKey *event)
+{
+    if (event->keyval == GDK_Shift_L || event->keyval == GDK_Shift_R) {
+        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(X->inverse_toggle), 
+                                     FALSE);
+        return (TRUE);
+    }
     return (FALSE);
 }
 
@@ -2368,6 +2522,7 @@
      * glade_xml_signal_autoconnect(X->ui);
      */
     CONNECT_SIGNAL(kframe_key_press_cb);
+    CONNECT_SIGNAL(kframe_key_release_cb);
     CONNECT_SIGNAL(button_cb);
     CONNECT_SIGNAL(menu_item_select_cb);
     CONNECT_SIGNAL(menu_item_deselect_cb);
@@ -2735,7 +2890,7 @@
     ui_set_base(v->base);
     ui_set_accuracy(v->accuracy);
     ui_set_undo_enabled(FALSE, FALSE);
-    ui_update_trig_mode();
+    ui_update_modifier_mode();
     
     /* Show the memory register window? */
     ui_make_registers();

Modified: trunk/gcalctool/ui.h
==============================================================================
--- trunk/gcalctool/ui.h	(original)
+++ trunk/gcalctool/ui.h	Sat Nov 15 05:17:01 2008
@@ -39,8 +39,6 @@
 void ui_set_accuracy(int);
 void ui_set_mode(enum mode_type);
 void ui_set_base(enum base_type);
-void ui_set_inverse_state(gboolean);
-void ui_set_hyperbolic_state(gboolean);
 void ui_set_trigonometric_mode(enum trig_type);
 void ui_set_numeric_mode(enum base_type);
 void ui_set_show_thousands_separator(gboolean);

Modified: trunk/glade/gcalctool.glade
==============================================================================
--- trunk/glade/gcalctool.glade	(original)
+++ trunk/glade/gcalctool.glade	Sat Nov 15 05:17:01 2008
@@ -20,6 +20,7 @@
   <property name="urgency_hint">False</property>
   <signal name="delete_event" handler="quit_cb"/>
   <signal name="key_press_event" handler="kframe_key_press_cb"/>
+  <signal name="key_release_event" handler="kframe_key_release_cb"/>
 
   <child>
     <widget class="GtkVBox" id="kvbox">
@@ -949,7 +950,7 @@
 	  <child>
 	    <widget class="GtkButton" id="calc_finc_gross_profit_margin_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes" comments="Tooltip for the [Gpm] button">Gross Profit Margin [g]</property>
+	      <property name="tooltip" translatable="yes" comments="Tooltip for the [Gpm] button">Gross Profit Margin [I]</property>
 	      <property name="label" translatable="yes" comments="Calculates the resale price of a product, based on the product cost and the wanted gross profit margin. See also:
 http://en.wikipedia.org/wiki/Gross_profit_margin";>Gpm</property>
 	      <property name="use_underline">True</property>
@@ -4161,12 +4162,32 @@
 	  <child>
 	    <widget class="GtkButton" id="calc_natural_logarithm_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes" comments="Tooltip for the natural log button">Natural log [N]</property>
-	      <property name="label" translatable="yes" comments="Natural logarithm">Ln</property>
+	      <property name="tooltip" comments="Variable function button - text set inside gtk.c">(Ln)</property>
 	      <property name="use_underline">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
 	      <signal name="clicked" handler="button_cb"/>
+
+          <child>
+            <widget class="GtkLabel" id="natural_logarithm_label">
+              <property name="visible">True</property>
+              <property name="label" comments="Variable label button - text set inside gtk.c">(Ln)</property>
+              <property name="use_underline">False</property>
+              <property name="use_markup">True</property>
+              <property name="justify">GTK_JUSTIFY_LEFT</property>
+              <property name="wrap">False</property>
+              <property name="selectable">False</property>
+              <property name="xalign">0.5</property>
+              <property name="yalign">0.5</property>
+              <property name="xpad">0</property>
+              <property name="ypad">0</property>
+              <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+              <property name="width_chars">-1</property>
+              <property name="single_line_mode">False</property>
+              <property name="angle">0</property>
+            </widget>
+          </child>
+
 	    </widget>
 	    <packing>
 	      <property name="left_attach">0</property>
@@ -4181,15 +4202,15 @@
 	  <child>
 	    <widget class="GtkButton" id="calc_logarithm_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes" comments="Tooltip for the log base 10 button">Base 10 log [G]</property>
+	      <property name="tooltip" comments="Variable function button - text set inside gtk.c">(Log)</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
 	      <signal name="clicked" handler="button_cb"/>
 
 	      <child>
-		<widget class="GtkLabel" id="label56">
+		<widget class="GtkLabel" id="logarithm_label">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes" comments="Factorial">Log&lt;sub&gt;10&lt;/sub&gt;</property>
+		  <property name="label" comments="Varable label button - text set inside gtk.c">(Log)</property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">True</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4219,15 +4240,15 @@
 	  <child>
 	    <widget class="GtkButton" id="calc_logarithm2_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes" comments="Tooltip for the log base 2 button">Base 2 log [H]</property>
+	      <property name="tooltip" comments="Variable function button - text set inside gtk.c">(Log2)</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
 	      <signal name="clicked" handler="button_cb"/>
 
 	      <child>
-		<widget class="GtkLabel" id="label55">
+		<widget class="GtkLabel" id="logarithm2_label">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes" comments="Factorial">Log&lt;sub&gt;2&lt;/sub&gt;</property>
+		  <property name="label" comments="Variable function button - text set inside gtk.c">(Log2)</property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">True</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4391,103 +4412,27 @@
 	      </child>
 	    </widget>
 	    <packing>
-	      <property name="left_attach">6</property>
-	      <property name="right_attach">7</property>
-	      <property name="top_attach">1</property>
-	      <property name="bottom_attach">2</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="calc_x_pow_y_button">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes" comments="Tooltip for the x to the power of y button">Raise displayed value to the power of y [^]</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">False</property>
-	      <signal name="clicked" handler="button_cb"/>
-
-	      <child>
-		<widget class="GtkLabel" id="label13">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes" comments="X to the power of y. Note that this label uses mark up and the &quot;y&quot; is a superscript character. See: http://en.wikipedia.org/wiki/Superscript for more details on superscripts.">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;&lt;i&gt;y&lt;/i&gt;&lt;/sup&gt;</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">5</property>
-	      <property name="right_attach">6</property>
-	      <property name="top_attach">1</property>
-	      <property name="bottom_attach">2</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="calc_pow_10_button">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes" comments="Tooltip for the 10 to the power of x button">10 to the power of displayed value [}]</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">False</property>
-	      <signal name="clicked" handler="button_cb"/>
-
-	      <child>
-		<widget class="GtkLabel" id="label12">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes" comments="10 to thepower of x. Note that this label uses mark up and the &quot;x&quot; is a superscript character. See: http://en.wikipedia.org/wiki/Superscript for more details on superscripts.">10&lt;sup&gt;&lt;i&gt;x&lt;/i&gt;&lt;/sup&gt;</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-	      </child>
-	    </widget>
-	    <packing>
 	      <property name="left_attach">4</property>
 	      <property name="right_attach">5</property>
-	      <property name="top_attach">1</property>
-	      <property name="bottom_attach">2</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
 	      <property name="x_options">fill</property>
 	      <property name="y_options"></property>
 	    </packing>
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="calc_pow_e_button">
+	    <widget class="GtkButton" id="calc_x_pow_y_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes" comments="Tooltip for the e to the power of x button">e to the power of displayed value [{]</property>
+	      <property name="tooltip" comments="Variable function button - text set inside gtk.c">(X^Y)</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
 	      <signal name="clicked" handler="button_cb"/>
 
 	      <child>
-		<widget class="GtkLabel" id="label11">
+		<widget class="GtkLabel" id="x_pow_y_label">
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes" comments="E to the power of x. Note that this label uses mark up and the &quot;x&quot; is a superscript character. See: http://en.wikipedia.org/wiki/Superscript for more details on superscripts.">e&lt;sup&gt;x&lt;/sup&gt;</property>
+		  <property name="label" comments="Variable function button - text set inside gtk.c">(X^Y)</property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">True</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4507,26 +4452,6 @@
 	    <packing>
 	      <property name="left_attach">3</property>
 	      <property name="right_attach">4</property>
-	      <property name="top_attach">1</property>
-	      <property name="bottom_attach">2</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="calc_modulus_divide_button">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes" comments="Tooltip for the modulus division button">Modulus Division [M]</property>
-	      <property name="label" translatable="yes" comments="Modulus division button">Mod</property>
-	      <property name="use_underline">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">False</property>
-	      <signal name="clicked" handler="button_cb"/>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">6</property>
-	      <property name="right_attach">7</property>
 	      <property name="top_attach">0</property>
 	      <property name="bottom_attach">1</property>
 	      <property name="x_options">fill</property>
@@ -4537,7 +4462,7 @@
 	  <child>
 	    <widget class="GtkButton" id="calc_tangent_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes" comments="Tooltip for the tangent button">Tangent [L]</property>
+	      <property name="tooltip" comments="Variable function button - text set inside gtk.c">(Tan)</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
 	      <signal name="clicked" handler="button_cb"/>
@@ -4545,7 +4470,7 @@
 	      <child>
 		<widget class="GtkLabel" id="tangent_label">
 		  <property name="visible">True</property>
-		  <property name="label" comments="Variable label button - text set inside gtk.c">(Tan)</property>
+		  <property name="label" comments="Variable function button - text set inside gtk.c">(Tan)</property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">True</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4565,8 +4490,8 @@
 	    <packing>
 	      <property name="left_attach">5</property>
 	      <property name="right_attach">6</property>
-	      <property name="top_attach">0</property>
-	      <property name="bottom_attach">1</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
 	      <property name="x_options">fill</property>
 	      <property name="y_options"></property>
 	    </packing>
@@ -4575,7 +4500,7 @@
 	  <child>
 	    <widget class="GtkButton" id="calc_sine_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes" comments="Tooltip for the sine button">Sine [K]</property>
+	      <property name="tooltip" comments="Variable function button - text set inside gtk.c">(Sin)</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
 	      <signal name="clicked" handler="button_cb"/>
@@ -4583,7 +4508,7 @@
 	      <child>
 		<widget class="GtkLabel" id="sine_label">
 		  <property name="visible">True</property>
-		  <property name="label" comments="Variable label button - text set inside gtk.c">(Sin)</property>
+		  <property name="label" comments="Variable function button - text set inside gtk.c">(Sin)</property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">True</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4603,8 +4528,8 @@
 	    <packing>
 	      <property name="left_attach">4</property>
 	      <property name="right_attach">5</property>
-	      <property name="top_attach">0</property>
-	      <property name="bottom_attach">1</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
 	      <property name="x_options">fill</property>
 	      <property name="y_options"></property>
 	    </packing>
@@ -4613,7 +4538,7 @@
 	  <child>
 	    <widget class="GtkButton" id="calc_cosine_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes" comments="Tooltip for the cosine button">Cosine [J]</property>
+	      <property name="tooltip" comments="Variable function button - text set inside gtk.c">(Cos)</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">False</property>
 	      <signal name="clicked" handler="button_cb"/>
@@ -4621,7 +4546,7 @@
 	      <child>
 		<widget class="GtkLabel" id="cosine_label">
 		  <property name="visible">True</property>
-		  <property name="label" comments="Variable label button - text set inside gtk.c">(Cos)</property>
+		  <property name="label" comments="Variable function button - text set inside gtk.c">(Cos)</property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">True</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4641,8 +4566,8 @@
 	    <packing>
 	      <property name="left_attach">3</property>
 	      <property name="right_attach">4</property>
-	      <property name="top_attach">0</property>
-	      <property name="bottom_attach">1</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
 	      <property name="x_options">fill</property>
 	      <property name="y_options"></property>
 	    </packing>
@@ -4788,7 +4713,7 @@
 	  <child>
 	    <widget class="GtkButton" id="calc_xnor_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes" comments="Tooltip for the boolean exclusive NOR button">Bitwise XNOR [n]</property>
+	      <property name="tooltip" translatable="yes" comments="Tooltip for the boolean exclusive NOR button">Bitwise XNOR [{]</property>
 	      <property name="label" translatable="yes" comments="Boolean exclusive NOR button">XNOR</property>
 	      <property name="use_underline">True</property>
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
@@ -4806,6 +4731,26 @@
 	  </child>
 
 	  <child>
+	    <widget class="GtkButton" id="calc_modulus_divide_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes" comments="Tooltip for the modulus division button">Modulus Division [M]</property>
+	      <property name="label" translatable="yes" comments="Modulus division button">Mod</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">False</property>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">7</property>
+	      <property name="right_attach">8</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
 	    <widget class="GtkButton" id="calc_mask_32_button">
 	      <property name="visible">True</property>
 	      <property name="tooltip" translatable="yes" comments="Tooltip for the 32 bit mask button">32-bit unsigned integer value of display ([)</property>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]