Index: gcalctool/calctool.c
===================================================================
--- gcalctool/calctool.c	(revision 1740)
+++ gcalctool/calctool.c	(working copy)
@@ -85,1048 +85,594 @@
  *-----------+-----------------------------------------------------
  */
 
-struct button b_buttons[B_NOBUTTONS];      /* Buttons for "Basic" mode. */
+struct button buttons[NKEYS] = {
 
-struct button a_buttons[A_NOBUTTONS] = {   /* Advanced mode button values. */
-
-/* str
-   hstr
-   astr,
+/* symname
    mods
    value
    func_char
-   menutype
    func
-   symname
    flags
  */
 
-/* Row 1. */
+// FIXME: Move accelerators into gtk.c
 {
+    N_("0"),
+    { 0,     GDK_SHIFT_MASK, 0,        0,             0 },
+    { GDK_0, GDK_0,          GDK_KP_0, GDK_KP_Insert, 0 },
+    '0',
+    do_number,
+    number | bin_set | oct_set
+},
+{
+    N_("1"),
+    { 0,     GDK_SHIFT_MASK, 0,        0,          0,       0 },
+    { GDK_1, GDK_1,          GDK_KP_1, GDK_KP_End, GDK_R13, 0 },
+    '1',
+    do_number,
+    number | bin_set | oct_set
+},
+{
+    N_("2"),
+    { 0,     GDK_SHIFT_MASK, 0,        0,           0 }, 
+    { GDK_2, GDK_2,          GDK_KP_2, GDK_KP_Down, 0 },
+    '2',
+    do_number,
+    number | oct_set
+},    
+{     
+    N_("3"),
+    { 0,     GDK_SHIFT_MASK, 0,        0,                0,       0 },
+    { GDK_3, GDK_3,          GDK_KP_3, GDK_KP_Page_Down, GDK_R15, 0 },
+    '3',
+    do_number,
+    number | oct_set
+},
+{
+    N_("4"),
+    { 0,     GDK_SHIFT_MASK, 0,        0,           0 },
+    { GDK_4, GDK_4,          GDK_KP_4, GDK_KP_Left, 0 },
+    '4',
+    do_number,
+    number | oct_set
+},
+{
+    N_("5"),
+    { 0,     GDK_SHIFT_MASK, 0,        0,            0,       0 },
+    { GDK_5, GDK_5,          GDK_KP_5, GDK_KP_Begin, GDK_R11, 0 },
+    '5',
+    do_number,
+    number | oct_set
+},
+{
+    N_("6"),
+    { 0,     GDK_SHIFT_MASK, 0,        0,            0 },
+    { GDK_6, GDK_6,          GDK_KP_6, GDK_KP_Right, 0 },
+    '6',
+    do_number,
+    number | oct_set
+},
+{
     N_("7"),
-    NULL,
-    N_("Numeric 7"),
     { 0,     GDK_SHIFT_MASK, 0,        0,           0,      0 },
     { GDK_7, GDK_7,          GDK_KP_7, GDK_KP_Home, GDK_R7, 0 },
     '7',
-    M_NONE,
     do_number,
-    NULL,
     number | oct_set
 },
 {
     N_("8"),
-    NULL,
-    N_("Numeric 8"),
     { 0,     GDK_SHIFT_MASK, 0,        0,         0 },
     { GDK_8, GDK_8,          GDK_KP_8, GDK_KP_Up, 0 },
     '8',
-    M_NONE,
     do_number,
-    NULL,
     number
 },
 {
     N_("9"),
-    NULL,
-    N_("Numeric 9"),
     { 0,     GDK_SHIFT_MASK, 0,        0,              0,      0 },
     { GDK_9, GDK_9,          GDK_KP_9, GDK_KP_Page_Up, GDK_R9, 0 },
     '9',
-    M_NONE,
     do_number,
-    NULL,
     number
 },
 {
-    /* Note to translators: this is a division sign (÷) */
-    N_("\303\267"),
-    N_("Divide"),
-    NULL,
-    { 0,         GDK_SHIFT_MASK, 0,             0,      GDK_SHIFT_MASK, 0 },
-    { GDK_slash, GDK_slash,      GDK_KP_Divide, GDK_R5, GDK_slash,      0 },
-    '/',
-    M_NONE,
-    do_calc,
-    N_("/"),
-    binop
+    N_("A"),
+    { 0,     0 },
+    { GDK_a, 0 },
+    'a',
+    do_number,
+    number | hex
 },
 {
-    N_("("),
-    N_("Start group of calculations"),
-    N_("Left bracket"),
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_parenleft, 0 },
-    '(',
-    M_NONE,
-    do_paren,
-    NULL,
-    parenthesis
+    N_("B"),
+    { 0,     0 },
+    { GDK_b, 0 },
+    'b',
+    do_number,
+    number | hex
+},    
+{     
+    N_("C"),
+    { 0,     0 },
+    { GDK_c, 0 },
+    'c',
+    do_number,
+    number | hex
 },
 {
-    /* Note to translators: Bksp is short for Backspace. */
-    N_("Bksp"),
-    N_("Remove rightmost character from displayed value"),
-    N_("Backspace"),
+    N_("D"),
+    { 0,     0 },
+    { GDK_d, 0 },
+    'd',
+    do_number,
+    number | hex
+},
+{
+    N_("E"),
+    { 0,     0 },
+    { GDK_e, 0 },
+    'e',
+    do_number,
+    number | hex
+},
+{
+    N_("F"),
+    { 0,     0 },
+    { GDK_f, 0 },
+    'f',
+    do_number,
+    number | hex
+},
+{    
+    N_("."),
+    { 0,          0,              0,             0 },
+    { GDK_period, GDK_KP_Decimal, GDK_KP_Delete, GDK_KP_Separator, 0 },
+    '.',
+    do_point,
+    number | dpoint
+},
+{
+    N_("="),
+    { 0,         0,            0,          GDK_SHIFT_MASK, 0 },
+    { GDK_equal, GDK_KP_Enter, GDK_Return, GDK_equal,      0 },
+    '=',
+    do_calc,
+    enter
+},
+{
+    N_("Clr"),
     { 0, 0 },
-    { GDK_BackSpace, 0 },
-    '\010',
-    M_NONE,
-    do_delete,
-    NULL,
-    bsp
+    { GDK_Delete, 0 },
+    '\177',
+    do_clear,
+    clear
 },
 {
-    N_("CE"),
-    N_("Clear displayed value"),
     N_("Clear entry"),
     { GDK_CONTROL_MASK, 0,          0 },
     { GDK_BackSpace,    GDK_Escape, 0 },
     '\013',
-    M_NONE,
     do_clear_entry,
-    NULL,
     clear
 },
 {
-    /* Note to translators: Clr is short for Clear. */
-    N_("Clr"),
-    N_("Clear displayed value and any partial calculation"),
-    N_("Clear"),
-    { 0, 0 },
-    { GDK_Delete, 0 },
-    '\177',
-    M_NONE,
-    do_clear,
-    NULL,
-    clear
+    N_("("),
+    { GDK_SHIFT_MASK, 0 },
+    { GDK_parenleft, 0 },
+    '(',
+    do_paren,
+    parenthesis
 },
-
-/* Row 2. */
 {
-    N_("4"),
-    NULL,
-    N_("Numeric 4"),
-    { 0,     GDK_SHIFT_MASK, 0,        0,           0 },
-    { GDK_4, GDK_4,          GDK_KP_4, GDK_KP_Left, 0 },
-    '4',
-    M_NONE,
-    do_number,
-    NULL,
-    number | oct_set
+    N_(")"),
+    { GDK_SHIFT_MASK, 0 },
+    { GDK_parenright, 0 },
+    ')',
+    do_paren,
+    parenthesis
 },
 {
-    N_("5"),
-    NULL,
-    N_("Numeric 5"),
-    { 0,     GDK_SHIFT_MASK, 0,        0,            0,       0 },
-    { GDK_5, GDK_5,          GDK_KP_5, GDK_KP_Begin, GDK_R11, 0 },
-    '5',
-    M_NONE,
-    do_number,
-    NULL,
-    number | oct_set
+    N_("+"),
+    { GDK_SHIFT_MASK, 0,        0,          0 },
+    { GDK_plus,       GDK_plus, GDK_KP_Add, 0 },
+    '+',
+    do_calc,
+    binop
 },
 {
-    N_("6"),
-    NULL,
-    N_("Numeric 6"),
-    { 0,     GDK_SHIFT_MASK, 0,        0,            0 },
-    { GDK_6, GDK_6,          GDK_KP_6, GDK_KP_Right, 0 },
-    '6',
-    M_NONE,
-    do_number,
-    NULL,
-    number | oct_set
+    N_("-"),
+    { 0,         0,               0,      0 },
+    { GDK_minus, GDK_KP_Subtract, GDK_R4, 0 },
+    '-',
+    do_calc,
+    unop | binop
 },
 {
-    /* Note to translators: this is a multiplication sign (*) */
-    N_("\303\227"),
-    N_("Multiply"),
-    NULL,
+    N_("*"),
     { GDK_SHIFT_MASK, 0,               0,     0,      0 },
     { GDK_asterisk,   GDK_KP_Multiply, GDK_x, GDK_R6, 0 },
     '*',
-    M_NONE,
     do_calc,
-    N_("*"),
     binop
 },
 {
-    N_(")"),
-    N_("End group of calculations"),
-    N_("Right bracket"),
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_parenright, 0 },
-    ')',
-    M_NONE,
-    do_paren,
-    NULL,
-    parenthesis
+    N_("/"),
+    { 0,         GDK_SHIFT_MASK, 0,             0,      GDK_SHIFT_MASK, 0 },
+    { GDK_slash, GDK_slash,      GDK_KP_Divide, GDK_R5, GDK_slash,      0 },
+    '/',
+    do_calc,
+    binop
 },
 {
-    /* Note to translators: this is a plus-minus sign (+/-) */
-    N_("\302\261"),
-    N_("Change sign [C]"),
     NULL,
+    { 0, 0 },
+    { GDK_BackSpace, 0 },
+    '\010',
+    do_delete,
+    bsp
+},
+{
+    N_("Chs"),
     { GDK_SHIFT_MASK, 0 },
     { GDK_C,          0 },
     'C',
-    M_NONE,
     do_immed, 
-    N_("Chs"),
     neg
 },
 {
     N_("Int"),
-    N_("Integer portion of displayed value [i]"),
-    N_("Integer portion"),
     { 0, 0 },
     { GDK_i, 0 },
     'i',
-    M_NONE,
     do_portion,
-    NULL,
     func
 },
 {
-    N_("Sto"),
-    N_("Store displayed value in memory register [S]"),
-    N_("Store to register"),
+    N_("Frac"),
     { GDK_SHIFT_MASK, 0 },
-    { GDK_S, 0 },
-    'S',
-    M_STO,
-    do_pending,
-    NULL,
-    pending
+    { GDK_colon, 0 },
+    ':',
+    do_portion,
+    func  
 },
-
-/* Row 3. */
 {
-    N_("1"),
-    NULL,
-    N_("Numeric 1"),
-    { 0,     GDK_SHIFT_MASK, 0,        0,          0,       0 },
-    { GDK_1, GDK_1,          GDK_KP_1, GDK_KP_End, GDK_R13, 0 },
-    '1',
-    M_NONE,
-    do_number,
-    NULL,
-    number | bin_set | oct_set
-},
-{
-    N_("2"),
-    NULL,
-    N_("Numeric 2"),
-    { 0,     GDK_SHIFT_MASK, 0,        0,           0 }, 
-    { GDK_2, GDK_2,          GDK_KP_2, GDK_KP_Down, 0 },
-    '2',
-    M_NONE,
-    do_number,
-    NULL,
-    number | oct_set
-},    
-{     
-    N_("3"),
-    NULL,
-    N_("Numeric 3"),
-    { 0,     GDK_SHIFT_MASK, 0,        0,                0,       0 },
-    { GDK_3, GDK_3,          GDK_KP_3, GDK_KP_Page_Down, GDK_R15, 0 },
-    '3',
-    M_NONE,
-    do_number,
-    NULL,
-    number | oct_set
-},
-{
-    /* Note to translators: this is a minus sign (-) */
-    N_("\342\210\222"),
-    N_("Subtract"),
-    NULL,
-    { 0,         0,               0,      0 },
-    { GDK_minus, GDK_KP_Subtract, GDK_R4, 0 },
-    '-',
-    M_NONE,
-    do_calc,
-    N_("-"),
-    unop | binop
-},
-{
     N_("%"),
-    N_("Percentage"),
-    NULL,
     { GDK_SHIFT_MASK, 0 },
     { GDK_percent, 0 },
     '%',
-    M_NONE,
     do_percent,  
-    NULL,
     immediate
 },
 {
-    /* Note to translators: this is a square root sign */
-    N_("\342\210\232"),
-    N_("Square root [s]"),
-    NULL,
+    N_("^2"),
+    { GDK_SHIFT_MASK, 0 },
+    { GDK_at, 0 },
+    '@',
+    do_immed,  
+    immediate | postfixop
+},
+{
+    N_("Sqrt"),
     { 0, 0 },   
     { GDK_s, 0 },
     's',
-    M_NONE,
     do_immed, 
-    N_("Sqrt"),
     func
 },
 {
-    N_("Frac"),
-    N_("Fractional portion of displayed value [:]"),
-    N_("Fractional portion"),
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_colon, 0 },
-    ':',
-    M_NONE,
-    do_portion,
-    NULL,
-    func  
+    N_("Recip"),
+    { 0, 0 },
+    { GDK_r, 0 },
+    'r',
+    do_immed, 
+    inv
 },
 {
-    N_("Rcl"),
-    N_("Retrieve memory register to display [R]"),
-    N_("Retrieve from register"),
+    N_("e^"),
     { GDK_SHIFT_MASK, 0 },
-    { GDK_R, 0 },
-    'R',
-    M_RCL,
-    do_pending,
-    NULL,
-    pending
+    { GDK_braceleft, 0 },
+    '{',
+    do_immed, 
+    immediate | prefixop
 },
-
-/* Row 4. */
 {
-    N_("0"),
-    NULL,
-    N_("Numeric 0"),
-    { 0,     GDK_SHIFT_MASK, 0,        0,             0 },
-    { GDK_0, GDK_0,          GDK_KP_0, GDK_KP_Insert, 0 },
-    '0',
-    M_NONE,
-    do_number,
-    NULL,
-    number | bin_set | oct_set
-},
-{    
-    N_("."),
-    N_("Numeric point"),
-    NULL,
-    { 0,          0,              0,             0 },
-    { GDK_period, GDK_KP_Decimal, GDK_KP_Delete, GDK_KP_Separator, 0 },
-    '.',
-    M_NONE,
-    do_point,
-    NULL,
-    number | dpoint
-},
+    N_("10^"),
+    { GDK_SHIFT_MASK, 0 },
+    { GDK_braceright, 0 },
+    '}',
+    do_immed, 
+    prefixop
+},       
 {
-    N_("="),
-    N_("Calculate result"),
-    NULL,
-    { 0,         0,            0,          GDK_SHIFT_MASK, 0 },
-    { GDK_equal, GDK_KP_Enter, GDK_Return, GDK_equal,      0 },
-    '=',
-    M_NONE,
+    N_("^"),
+    { GDK_SHIFT_MASK, GDK_SHIFT_MASK,  0 },
+    { GDK_caret,      GDK_asciicircum, 0 },
+    '^',
     do_calc,
-    NULL,
-    enter
+    binop | postfixop
 },
 {
-    N_("+"),
-    N_("Add"),
-    NULL,
-    { GDK_SHIFT_MASK, 0,        0,          0 },
-    { GDK_plus,       GDK_plus, GDK_KP_Add, 0 },
-    '+',
-    M_NONE,
-    do_calc,
-    NULL,
-    binop
+    N_("!"),
+    { GDK_SHIFT_MASK, 0 },
+    { GDK_exclam, 0 },
+    '!',
+    do_immed, 
+    immediate | postfixop
 },
 {
-  N_("1/<i>x</i>"),
-    N_("Reciprocal [r]"),
-    NULL,
-    { 0, 0 },
-    { GDK_r, 0 },
-    'r',
-    M_NONE,
+    N_("Rand"),
+    { GDK_SHIFT_MASK, 0 },
+    { GDK_question, 0 },
+    '?',
     do_immed, 
-    N_("Recip"),
-    inv
+    none
 },
 {
-    N_("<i>x</i><sup>2</sup>"),
-    N_("Square [@]"),
-    NULL,
+    N_("Sin"),
     { GDK_SHIFT_MASK, 0 },
-    { GDK_at, 0 },
-    '@',
-    M_NONE,
-    do_immed,  
-    N_("^2"),
-    immediate | postfixop
+    { GDK_K, 0 },
+    'K',
+    do_trig,
+    func
 },
 {
+    N_("Cos"),
+    { GDK_SHIFT_MASK, 0 },
+    { GDK_J, 0 },
+    'J',
+    do_trig,
+    func
+},
+{        
+    N_("Tan"),
+    { GDK_SHIFT_MASK, 0 },
+    { GDK_L, 0 },
+    'L',
+    do_trig,
+    func
+},
+{      
+    N_("Ln"),
+    { GDK_SHIFT_MASK, 0 },
+    { GDK_N, 0 },
+    'N',
+    do_immed, 
+    func
+},
+{ 
+    N_("Log"),
+    { GDK_SHIFT_MASK, 0 },
+    { GDK_G, 0 },
+    'G',
+    do_immed, 
+    func
+},
+{
     /* Note to translators: Abs is short for Absolute. */
     N_("Abs"),
-    N_("Absolute value [u]"),
-    NULL,
     { 0, 0 },
     { GDK_u, 0 },
     'u',
-    M_NONE,
     do_portion,
-    NULL,
     func
 },
 {
-    N_("Exch"),
-    N_("Exchange displayed value with memory register [X]"),
-    N_("Exchange with register"),
+    N_("u16"),
+    { 0, 0 },        
+    { GDK_bracketright, 0 },
+    ']',
+    do_immed,  
+    func
+},            
+{
+    N_("u32"),
+    { 0, 0 },
+    { GDK_bracketleft, 0 },
+    '[',
+    do_immed,  
+    func
+},
+{
+    N_(" Mod "),
     { GDK_SHIFT_MASK, 0 },
-    { GDK_X, 0 },
-    'X',
-    M_EXCH,
-    do_pending,
-    NULL,
-    pending
+    { GDK_M,          0 },
+    'M',
+    do_calc,
+    binop
 },
-};
-
-struct button f_buttons[F_NOBUTTONS] = {   /* Financial mode button values. */
-
-/* str
-   hstr
-   astr
-   mods
-   value
-   func_char
-   menutype
-   func
- */
-
-/* Row 1. */
-
 {
+    N_("e"),
+    { GDK_SHIFT_MASK, 0 },
+    { GDK_E,          0 },
+    'E',
+    do_expno,
+    expnum
+},
+{
+    N_("~"),
+    { GDK_SHIFT_MASK, 0 },
+    { GDK_asciitilde, 0 },
+    '~',
+    do_immed, 
+    unop | immediate
+},
+{
+    N_(" OR "),
+    { GDK_SHIFT_MASK, 0 },
+    { GDK_bar, 0 },
+    '|',
+    do_calc,
+    binop
+},
+{
+    N_(" AND "),
+    { GDK_SHIFT_MASK, 0 },
+    { GDK_ampersand, 0 },
+    '&',
+    do_calc,
+    binop
+},       
+{
+    N_(" XOR "),
+    { 0, 0 },   
+    { GDK_x, 0 },
+    'x',
+    do_calc,
+    binop
+},
+{
+    N_(" XNOR "),
+    { 0, 0 },
+    { GDK_n, 0 },
+    'n',
+    do_calc,
+    binop
+},
+{
     N_("Ctrm"),
-    N_("Compounding term [m]"),
-    NULL,
     { 0, 0 },
     { GDK_m, 0 },
     'm',
-    M_NONE,
     do_business,
-    NULL,
     none
 },
 {
     N_("Ddb"),
-    N_("Double-declining depreciation [D]"),
-    NULL,
     { GDK_SHIFT_MASK, 0 },
     { GDK_D,          0 },
     'D',
-    M_NONE,
     do_business,
-    NULL,
     none
 },
 {
     N_("Fv"),
-    N_("Future value [v]"),
-    NULL,
     { 0, 0 },
     { GDK_v, 0 },
     'v',
-    M_NONE,
     do_business,
-    NULL,
     none
 },
 {
     N_("Pmt"),
-    N_("Periodic payment [P]"),
-    NULL,
     { GDK_SHIFT_MASK, 0 },
     { GDK_P, 0 },
     'P',
-    M_NONE,
     do_business,
-    NULL,
     none
 },
 {
     N_("Pv"),
-    N_("Present value [p]"),
-    NULL,
     { 0, 0 },
     { GDK_p, 0 },
     'p',
-    M_NONE,
     do_business,
-    NULL,
     none
 },
 {
     N_("Rate"),
-    N_("Periodic interest rate [T]"),
-    NULL,
     { GDK_SHIFT_MASK, 0 },
     { GDK_T, 0 },
     'T',
-    M_NONE,
     do_business,
-    NULL,
     none
 },
 {
     N_("Sln"),
-    N_("Straight-line depreciation [l]"),
-    NULL,
     { 0, 0 },
     { GDK_l, 0 },
     'l',
-    M_NONE,
     do_business,
-    NULL,
     none
 },
 { 
     N_("Syd"),
-    N_("Sum-of-the years'-digits depreciation [Y]"),
-    NULL,
     { 0, 0 },
     { GDK_Y, 0 },
     'Y',
-    M_NONE,
     do_business,
-    NULL,
     none
 },
-
-/* Row 2. */
 { 
     N_("Term"),
-    N_("Payment period [T]"),
-    NULL,
     { 0, 0 },
     { GDK_T, 0 },
     'T',
-    M_NONE,
     do_business,
-    NULL,
     none
 },
-{ 
-    "    ",
-    "    ",
-    NULL,
-    { 0, 0 },
-    { 0, 0 },
-    ' ',
-    M_NONE,
-    do_none,
-    NULL,
-    none
-},
-{ 
-    "    ",
-    "    ",
-    NULL,
-    { 0, 0 },
-    { 0, 0 },
-    ' ',
-    M_NONE,
-    do_none,
-    NULL,
-    none
-},
-{ 
-    "    ",
-    "    ",
-    NULL,
-    { 0, 0 },
-    { 0, 0 },
-    ' ',
-    M_NONE,
-    do_none,
-    NULL,
-    none
-},
-{ 
-    "    ",
-    "    ",
-    NULL,
-    { 0, 0 },
-    { 0, 0 },
-    ' ',
-    M_NONE,
-    do_none,
-    NULL,
-    none
-},
-{ 
-    "    ",
-    "    ",
-    NULL,
-    { 0, 0 },
-    { 0, 0 },
-    ' ',
-    M_NONE,
-    do_none,
-    NULL,
-    none
-},
-{ 
-    "    ",
-    "    ",
-    NULL,
-    { 0, 0 },
-    { 0, 0 },
-    ' ',
-    M_NONE,
-    do_none,
-    NULL,
-    none
-},
 {
-    "    ",
-    "    ",
-    NULL,
-    { 0, 0 },
-    { 0, 0 },
-    ' ',
-    M_NONE,
-    do_none,
-    NULL,
-    none
-},
-};
-
-struct button s_buttons[S_NOBUTTONS] = {   /* Scientific mode button values. */
-
-/* str
-   hstr
-   astr
-   mods
-   value
-   func_char
-   menutype
-   func
-*/
-
-/* Row 1. */
-
-{
     N_("<"),
-    N_("Shift displayed value 1-15 places to the left"),
-    N_("Shift left"),
     { GDK_SHIFT_MASK, 0 },
     { GDK_less, 0 },
     '<',
-    M_LSHF,
     do_pending,
-    NULL,
     pending
 },
 {
     N_(">"),
-    N_("Shift displayed value 1-15 places to the right"),
-    N_("Shift right"),
     { GDK_SHIFT_MASK, 0 },
     { GDK_greater, 0 },
     '>',
-    M_RSHF,   
     do_pending,
-    NULL,
     pending
-},            
-{             
-    N_("&amp;16"),
-    N_("16-bit unsigned integer value of display (])"),
-    N_("16 bit unsigned integer"),
-    { 0, 0 },        
-    { GDK_bracketright, 0 },
-    ']',
-    M_NONE,   
-    do_immed,  
-    N_("u16"),
-    func
-},            
-{             
-    N_("&amp;32"),
-    N_("32-bit unsigned integer value of display ([)"),
-    N_("32 bit unsigned integer"),
-    { 0, 0 },
-    { GDK_bracketleft, 0 },
-    '[',
-    M_NONE,
-    do_immed,  
-    N_("u32"),
-    func
 },
 {
-    "    ",
-    "    ",
-    NULL,
-    { 0, 0 },
-    { 0, 0 },
-    ' ',
-    M_NONE,
-    do_none,
-    NULL,
-    none
+    N_("Sto"),
+    { GDK_SHIFT_MASK, 0 },
+    { GDK_S, 0 },
+    'S',
+    do_pending,
+    pending
 },
 {
-    "    ",
-    "    ",
-    NULL,
-    { 0, 0 },
-    { 0, 0 },
-    ' ',
-    M_NONE,
-    do_none,
-    NULL,
-    none
+    N_("Rcl"),
+    { GDK_SHIFT_MASK, 0 },
+    { GDK_R, 0 },
+    'R',
+    do_pending,
+    pending
 },
 {
-    N_("Mod"),
-    N_("Modulus Division"),
-    NULL,
+    N_("Exch"),
     { GDK_SHIFT_MASK, 0 },
-    { GDK_M,          0 },
-    'M',
-    M_NONE,
-    do_calc,
-    N_(" Mod "),
-    binop
+    { GDK_X, 0 },
+    'X',
+    do_pending,
+    pending
 },
 {
     N_("Acc"),
-    N_("Set accuracy from 0 to 9 numeric places [A]"),
-    N_("Accuracy"),
     { GDK_SHIFT_MASK, 0 },
     { GDK_A,          0 },
     'A',
-    M_ACC,
     do_pending,
-    NULL,
     pending
 },
-
-/* Row 2. */
 {
     N_("Con"),
-    N_("Constants [#]"),
-    NULL,
     { GDK_SHIFT_MASK, 0,              0 },
     { GDK_numbersign, GDK_numbersign, 0 },   
     '#',
-    M_CON,            
     do_pending,
-    NULL,
     pending
 },
 {
     N_("Fun"),
-    N_("User-defined functions [F]"),
-    NULL,
     { GDK_SHIFT_MASK, 0 },
     { GDK_F,          0 },
     'F',
-    M_FUN,
     do_pending,
-    NULL,
     pending
 },
-{
-    N_("Exp"),
-    N_("Enter an exponential number [E]"),
-    N_("Exponential"),
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_E,          0 },
-    'E',
-    M_NONE,
-    do_expno,
-    N_("e"),
-    expnum
-},
-{
-    N_("e<sup><i>x</i></sup>"),
-    N_("e to the power of displayed value [{]"),
-    N_("E to the x"),
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_braceleft, 0 },
-    '{',
-    M_NONE,
-    do_immed, 
-    N_("e^"),
-    immediate | prefixop
-},
-{
-    N_("10<sup><i>x</i></sup>"),
-    N_("10 to the power of displayed value [}]"),
-    N_("Ten to the x"),
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_braceright, 0 },
-    '}',
-    M_NONE,
-    do_immed, 
-    N_("10^"),
-    prefixop
-},       
-{        
-    N_("<i>x</i><sup><i>y</i></sup>"),
-    N_("Raise displayed value to the power of y [^]"),
-    N_("X to the y"),
-    { GDK_SHIFT_MASK, GDK_SHIFT_MASK,  0 },
-    { GDK_caret,      GDK_asciicircum, 0 },
-    '^',
-    M_NONE,
-    do_calc,
-    N_("^"),
-    binop | postfixop
-},       
-{        
-    N_("<i>x</i>!"),
-    N_("Factorial of displayed value [!]"),
-    N_("Factorial"),
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_exclam, 0 },
-    '!',
-    M_NONE,
-    do_immed, 
-    N_("!"),
-    immediate | postfixop
-},
-{
-    N_("Rand"),
-    N_("Random number in the range 0.0 to 1.0 [?]"),
-    N_("Random number"),
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_question, 0 },
-    '?',
-    M_NONE,
-    do_immed, 
-    NULL,
-    none
-},
-
-/* Row 3. */
-{
-    N_("D"),
-    N_("Hexadecimal digit D [d]"),
-    NULL,
-    { 0,     0 },
-    { GDK_d, 0 },
-    'd',
-    M_NONE,
-    do_number,
-    NULL,
-    number | hex
-},
-{
-    N_("E"),
-    N_("Hexadecimal digit E [e]"),
-    NULL,
-    { 0,     0 },
-    { GDK_e, 0 },
-    'e',
-    M_NONE,
-    do_number,
-    NULL,
-    number | hex
-},
-{
-    N_("F"),
-    N_("Hexadecimal digit F [f]"),
-    NULL,
-    { 0,     0 },
-    { GDK_f, 0 },
-    'f',
-    M_NONE,
-    do_number,
-    NULL,
-    number | hex
-},
-{
-    N_("Cos"),
-    N_("Cosine [J]"),
-    NULL,
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_J, 0 },
-    'J',
-    M_NONE,
-    do_trig,
-    NULL,
-    func
-},
-{
-    N_("Sin"),
-    N_("Sine [K]"),
-    NULL,
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_K, 0 },
-    'K',
-    M_NONE,
-    do_trig,
-    NULL,
-    func
-},
-{        
-    N_("Tan"),
-    N_("Tangent [L]"),
-    NULL,
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_L, 0 },
-    'L',
-    M_NONE,
-    do_trig,
-    NULL,  
-    func
-},     
-{      
-    N_("Ln"),
-    N_("Natural log [N]"),
-    NULL,
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_N, 0 },
-    'N',
-    M_NONE,
-    do_immed, 
-    NULL,
-    func
-},
-{ 
-    N_("Log"),
-    N_("Base 10 log [G]"),
-    NULL,
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_G, 0 },
-    'G',
-    M_NONE,
-    do_immed, 
-    NULL,
-    func
-},
-
-/* Row 4. */
-{
-    N_("A"),
-    N_("Hexadecimal digit A [a]"),
-    NULL,
-    { 0,     0 },
-    { GDK_a, 0 },
-    'a',
-    M_NONE,
-    do_number,
-    NULL,
-    number | hex
-},
-{
-    N_("B"),
-    N_("Hexadecimal digit B [b]"),
-    NULL,
-    { 0,     0 },
-    { GDK_b, 0 },
-    'b',
-    M_NONE,
-    do_number,
-    NULL,
-    number | hex
-},    
-{     
-    N_("C"),
-    N_("Hexadecimal digit C [c]"),
-    NULL,
-    { 0,     0 },
-    { GDK_c, 0 },
-    'c',
-    M_NONE,
-    do_number,
-    NULL,
-    number | hex
-},
-{
-    N_("OR"),
-    N_("Bitwise OR"),
-    "bitwise OR [!]",
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_bar, 0 },
-    '|',
-    M_NONE,
-    do_calc,
-    N_(" OR "),
-    binop
-},
-{
-    N_("AND"),
-    N_("Bitwise AND [&]"),
-    NULL,
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_ampersand, 0 },
-    '&',
-    M_NONE,
-    do_calc,
-    N_(" AND "),
-    binop
-},       
-{        
-    N_("NOT"),
-    N_("Bitwise NOT [~]"),
-    NULL,
-    { GDK_SHIFT_MASK, 0 },
-    { GDK_asciitilde, 0 },
-    '~',
-    M_NONE,
-    do_immed, 
-    N_("~"),
-    unop | immediate
-},
-{
-    N_("XOR"),
-    N_("Bitwise XOR [x]"),
-    NULL,
-    { 0, 0 },   
-    { GDK_x, 0 },
-    'x',
-    M_NONE,
-    do_calc,
-    N_(" XOR "),
-    binop
-},
-{
-    N_("XNOR"),
-    N_("Bitwise XNOR [n]"),
-    NULL,
-    { 0, 0 },
-    { GDK_n, 0 },
-    'n',
-    M_NONE,
-    do_calc,
-    N_(" XNOR "),
-    binop
-},
 };
 
-
 void
 do_calctool(int argc, char **argv)
 {
     char *ptr;
     int i;
 
-    init_buttons();            /* Setup the buttons for "Basic" mode. */
-
     v->progname = argv[0];     /* Save programs name. */
     v->appname  = NULL;
 
@@ -1163,7 +709,7 @@
     read_cfdefs();             /* Read constant/function definitions. */
     make_frames();             /* Create gcalctool window frames. */
 
-    v->current    = copy_button_info(button_for_value(KEY_EQ.value[0]));
+    v->current    = copy_button_info(button_for_value(buttons[KEY_CALCULATE].value[0]));
     v->shelf      = NULL;      /* No selection for shelf initially. */
     v->noparens   = 0;         /* No unmatched brackets initially. */
     v->opsptr     = 0;         /* Nothing on the parentheses op stack. */
@@ -1219,27 +765,7 @@
     }
 }
 
-
-static int b_buttons_n[B_NOBUTTONS] = {
-    5,  6,  7,  13,     /* Bksp  CE  Clr  +/- */
-    0,  1,  2,  3,      /*  7    8    9    /  */
-    8,  9,  10, 11,     /*  4    5    6    *  */
-    16, 17, 18, 19,     /*  1    2    3    -  */
-    24, 25, 26, 27,     /*  0    .    =    +  */
-};
-
 static void
-init_buttons()         /* Setup buttons for "Basic" mode. */
-{
-    int i;
-
-    for (i = 0; i < B_NOBUTTONS; i++) {
-        b_buttons[i] = a_buttons[b_buttons_n[i]];
-    }
-}
-
-
-static void
 init_text()         /* Setup constant strings. */
 {
     STRNCPY(v->con_names[0], _("Kilometer-to-mile conversion factor"),
Index: gcalctool/calctool.h
===================================================================
--- gcalctool/calctool.h	(revision 1740)
+++ gcalctool/calctool.h	(working copy)
@@ -67,8 +67,7 @@
 
 /* Popup menu types. */
 enum menu_type { M_ACC,  M_CON,  M_EXCH, M_FUN,  M_LSHF,
-                 M_RCL,  M_RSHF, M_STO,  M_NONE
-};
+                 M_RCL,  M_RSHF, M_STO, M_NONE };
 
 /* Calculator modes. */
 enum mode_type { BASIC, ADVANCED, FINANCIAL, SCIENTIFIC };
@@ -87,82 +86,84 @@
 
 enum trig_func {SIN=0, COS=1, TAN=2};       
 
-/* Abbreviations for the gcalctool keyboard and menu equivalents. */
+/* Abbreviations for the gcalctool keyboard */
 
-#define KEY_DIV   a_buttons[3]              /* / */
-#define KEY_LPAR  a_buttons[4]              /* ( */
-#define KEY_BSP   a_buttons[5]              /* Control-h */
-#define KEY_CE    a_buttons[6]              /* Control-Backspace */
+enum
+{
+    KEY_0,
+    KEY_1,
+    KEY_2,
+    KEY_3,
+    KEY_4,
+    KEY_5,
+    KEY_6,
+    KEY_7,
+    KEY_8,
+    KEY_9,
+    KEY_A,
+    KEY_B,
+    KEY_C,
+    KEY_D,
+    KEY_E,
+    KEY_F,
+    KEY_NUMERIC_POINT,
+    KEY_CALCULATE,
+    KEY_CLEAR,
+    KEY_CLEAR_ENTRY,
+    KEY_START_BLOCK,
+    KEY_END_BLOCK,
+    KEY_ADD,
+    KEY_SUBTRACT,
+    KEY_MULTIPLY,
+    KEY_DIVIDE,
+    KEY_BACKSPACE,
+    KEY_CHANGE_SIGN,
+    KEY_INTEGER,
+    KEY_FRACTION,
+    KEY_PERCENTAGE,
+    KEY_SQUARE,
+    KEY_SQUARE_ROOT,
+    KEY_RECIPROCAL,
+    KEY_E_POW_X,
+    KEY_10_POW_X,
+    KEY_X_POW_Y,
+    KEY_FACTORIAL,
+    KEY_RANDOM,
+    KEY_SINE,
+    KEY_COSINE,
+    KEY_TANGENT,
+    KEY_NATURAL_LOGARITHM,
+    KEY_LOGARITHM,
+    KEY_ABSOLUTE_VALUE,
+    KEY_MASK_16,
+    KEY_MASK_32,
+    KEY_MODULUS_DIVIDE,
+    KEY_EXPONENTIAL,
+    KEY_NOT,
+    KEY_OR,
+    KEY_AND,
+    KEY_XOR,
+    KEY_XNOR,
+    KEY_FINC_CTRM,
+    KEY_FINC_DDB,
+    KEY_FINC_FV,
+    KEY_FINC_PMT,
+    KEY_FINC_PV,
+    KEY_FINC_RATE,
+    KEY_FINC_SLN,
+    KEY_FINC_SYD,
+    KEY_FINC_TERM,
+    KEY_LEFT_SHIFT,
+    KEY_RIGHT_SHIFT,
+    KEY_STORE,
+    KEY_RECALL,
+    KEY_EXCHANGE,
+    KEY_ACCURACY_MENU,
+    KEY_CONSTANTS_MENU,
+    KEY_FUNCTIONS_MENU,
+    NKEYS
+};
 
-#define KEY_MUL   a_buttons[11]             /* * */
-#define KEY_RPAR  a_buttons[12]             /* ) */
-
-#define KEY_CHS   a_buttons[13]             /* C */
-#define KEY_INT   a_buttons[14]             /* i */
-#define KEY_STO   a_buttons[15]             /* S */
-
-#define KEY_SUB   a_buttons[19]             /* - */
-#define KEY_PER   a_buttons[20]             /* % */
-#define KEY_SQRT  a_buttons[21]             /* s */
-#define KEY_FRAC  a_buttons[22]             /* : */
-#define KEY_RCL   a_buttons[23]             /* R */
-
-#define KEY_EQ    a_buttons[26]             /* = */
-#define KEY_ADD   a_buttons[27]             /* + */
-#define KEY_REC   a_buttons[28]             /* r */
-#define KEY_SQR   a_buttons[29]             /* @ */
-#define KEY_ABS   a_buttons[30]             /* u */
-#define KEY_EXCH  a_buttons[31]             /* X */
-
-#define KEY_CTRM  f_buttons[0]              /* m */
-#define KEY_DDB   f_buttons[1]              /* D */
-#define KEY_FV    f_buttons[2]              /* v */
-#define KEY_PMT   f_buttons[3]              /* P */
-#define KEY_PV    f_buttons[4]              /* p */
-#define KEY_RATE  f_buttons[5]              /* T */
-#define KEY_SLN   f_buttons[6]              /* l */
-#define KEY_SYD   f_buttons[7]              /* Y */
-#define KEY_TERM  f_buttons[8]              /* T */
-
-#define KEY_LSFT  s_buttons[0]              /* < */
-#define KEY_RSFT  s_buttons[1]              /* > */
-#define KEY_16    s_buttons[2]              /* [ */
-#define KEY_32    s_buttons[3]              /* ] */
-#define KEY_MOD   s_buttons[6]              /* M */
-#define KEY_ACC   s_buttons[7]              /* A */
-
-#define KEY_CON   s_buttons[8]              /* # */
-#define KEY_FUN   s_buttons[9]              /* F */
-#define KEY_ETOX  s_buttons[11]             /* { */
-#define KEY_TTOX  s_buttons[12]             /* } */
-#define KEY_YTOX  s_buttons[13]             /* y */
-#define KEY_FACT  s_buttons[14]             /* ! */
-#define KEY_RAND  s_buttons[15]             /* ? */
-
-#define KEY_COS   s_buttons[19]             /* J */
-#define KEY_SIN   s_buttons[20]             /* K */
-#define KEY_TAN   s_buttons[21]             /* L */
-#define KEY_LN    s_buttons[22]             /* N */
-#define KEY_LOG   s_buttons[23]             /* G */
-
-#define KEY_OR    s_buttons[27]             /* | */
-#define KEY_AND   s_buttons[28]             /* & */
-#define KEY_NOT   s_buttons[29]             /* ~ */
-#define KEY_XOR   s_buttons[30]             /* x */
-#define KEY_XNOR  s_buttons[31]             /* n */
-
-#define BCOLS          4      /* No of columns of Basic Mode buttons. */
-#define BROWS          5      /* No of rows of Basic Mode buttons. */
-
-#define ACOLS          8      /* No of columns of Advanced Mode buttons. */
-#define AROWS          4      /* No of rows of Advanced Mode buttons. */
-
-#define FCOLS          8      /* No of columns of Financial Mode buttons. */
-#define FROWS          2      /* No of rows of Financial Mode buttons. */
-
-#define SCOLS          8      /* No of columns of Scientific Mode buttons. */
-#define SROWS          4      /* No of rows of Scientific Mode buttons. */
-
 #define EQUAL(a, b)    (strlen(a)==strlen(b)) & !strcmp(a, b) 
 
 #define INC            { argc--; argv++; }
@@ -208,11 +209,6 @@
 #define MIN(x,y)       ((x) < (y) ? (x) : (y))
 #endif /*MIN*/
 
-#define B_NOBUTTONS      BROWS * BCOLS  /* Number of Basic Mode buttons. */
-#define A_NOBUTTONS      AROWS * ACOLS  /* Number of Advanced Mode buttons. */
-#define F_NOBUTTONS      FROWS * FCOLS  /* Number of Financial Mode buttons. */
-#define S_NOBUTTONS      SROWS * SCOLS  /* Number of Scientific Mode buttons. */
-
 #ifndef CFNAME
 #define CFNAME         ".gcalctoolcf"
 #endif /*CFNAME*/
@@ -272,15 +268,11 @@
 };
 
 struct button {
-    char *str;               /* Button display string. */
-    char *hstr;              /* Button help string. */
-    char *astr;              /* AccessibleName string (if tooltip not useful) */
+    char *symname;           /* Expression function name */
     guint mods[MAXEXTRAS];   /* Keyboard modifiers (Shift, Ctrl, ...). */
     guint value[MAXEXTRAS];  /* Button keyboard equivalents. */
     char func_char;          /* Unique function string character. */
-    enum menu_type mtype;    /* Type of popup menu (if any). */
     void (*func)();          /* Function to obey on button press. */
-    char *symname;           /* Expression function name */
     enum button_flags flags; /* Misc flags */
 };
 
Index: gcalctool/functions.c
===================================================================
--- gcalctool/functions.c	(revision 1740)
+++ gcalctool/functions.c	(working copy)
@@ -40,7 +40,7 @@
 static void do_function();
 static void do_immedfunc(int s[MP_SIZE], int t[MP_SIZE]);
 static void do_portionfunc(int num[MP_SIZE]);
-static void do_shift();
+static void do_shift(enum shiftd);
 
 char *
 gc_strdup(char *str)
@@ -229,23 +229,23 @@
 void
 do_business()     /* Perform special business mode calculations. */
 {
-    if (key_equal(v->current, KEY_CTRM)) {
+    if (key_equal(v->current, buttons[KEY_FINC_CTRM])) {
         calc_ctrm(v->MPdisp_val);
-    } else if (key_equal(v->current, KEY_DDB)) {
+    } else if (key_equal(v->current, buttons[KEY_FINC_DDB])) {
         calc_ddb(v->MPdisp_val);
-    } else if (key_equal(v->current, KEY_FV)) {
+    } else if (key_equal(v->current, buttons[KEY_FINC_FV])) {
         calc_fv(v->MPdisp_val);
-    } else if (key_equal(v->current, KEY_PMT)) {
+    } else if (key_equal(v->current, buttons[KEY_FINC_PMT])) {
         calc_pmt(v->MPdisp_val);
-    } else if (key_equal(v->current, KEY_PV)) {
+    } else if (key_equal(v->current, buttons[KEY_FINC_PV])) {
         calc_pv(v->MPdisp_val);
-    } else if (key_equal(v->current, KEY_RATE)) {
+    } else if (key_equal(v->current, buttons[KEY_FINC_RATE])) {
         calc_rate(v->MPdisp_val);
-    } else if (key_equal(v->current, KEY_SLN)) {
+    } else if (key_equal(v->current, buttons[KEY_FINC_SLN])) {
         calc_sln(v->MPdisp_val);
-    } else if (key_equal(v->current, KEY_SYD)) {
+    } else if (key_equal(v->current, buttons[KEY_FINC_SYD])) {
         calc_syd(v->MPdisp_val);
-    } else if (key_equal(v->current, KEY_TERM)) {
+    } else if (key_equal(v->current, buttons[KEY_FINC_TERM])) {
         calc_term(v->MPdisp_val);
     }
     show_display(v->MPdisp_val);
@@ -504,7 +504,7 @@
     if (e->button.flags & dpoint) {
 	btext = get_localized_numeric_point();
     } else {
-	btext = (e->button.symname) ? e->button.symname : e->button.str;
+	btext = e->button.symname;
     }
     btext = gc_strdup(btext);
     trig_filter(&btext);
@@ -651,8 +651,8 @@
     int MP1[MP_SIZE], MP2[MP_SIZE];
 
     if (!(v->opsptr && !v->show_paren)) {  /* Don't do if processing parens. */
-        if (key_equal(v->current, KEY_EQ) && 
-            IS_KEY(v->old_cal_value, KEY_EQ.value[0])) {
+        if (key_equal(v->current, buttons[KEY_CALCULATE]) && 
+            IS_KEY(v->old_cal_value, buttons[KEY_CALCULATE].value[0])) {
             if (v->new_input) {
                 mpstr(v->MPlast_input, v->MPresult);
             } else {
@@ -661,31 +661,31 @@
         }
     }
 
-    if (!key_equal(v->current, KEY_EQ) && 
-        IS_KEY(v->old_cal_value, KEY_EQ.value[0])) {
+    if (!key_equal(v->current, buttons[KEY_CALCULATE]) && 
+        IS_KEY(v->old_cal_value, buttons[KEY_CALCULATE].value[0])) {
         v->cur_op = '?';
     }
 
-    if (IS_KEY(v->cur_op, KEY_COS.value[0]) ||            /* Cos */
-        IS_KEY(v->cur_op, KEY_SIN.value[0]) ||            /* Sin */
-        IS_KEY(v->cur_op, KEY_TAN.value[0]) ||            /* Tan */
+    if (IS_KEY(v->cur_op, buttons[KEY_COSINE].value[0]) ||            /* Cos */
+        IS_KEY(v->cur_op, buttons[KEY_SINE].value[0]) ||            /* Sin */
+        IS_KEY(v->cur_op, buttons[KEY_TANGENT].value[0]) ||            /* Tan */
         v->cur_op == '?') {                               /* Undefined */
         mpstr(v->MPdisp_val, v->MPresult);
 
-    } else if (IS_KEY(v->cur_op, KEY_ADD.value[0])) {     /* Addition */
+    } else if (IS_KEY(v->cur_op, buttons[KEY_ADD].value[0])) {     /* Addition */
         mpadd(v->MPresult, v->MPdisp_val, v->MPresult);
 
-    } else if (IS_KEY(v->cur_op, KEY_SUB.value[0])) {     /* Subtraction. */
+    } else if (IS_KEY(v->cur_op, buttons[KEY_SUBTRACT].value[0])) {     /* Subtraction. */
         mpsub(v->MPresult, v->MPdisp_val, v->MPresult);
 
     } else if (v->cur_op == '*' ||
-               IS_KEY(v->cur_op, KEY_MUL.value[0])) {     /* Multiplication */
+               IS_KEY(v->cur_op, buttons[KEY_MULTIPLY].value[0])) {     /* Multiplication */
         mpmul(v->MPresult, v->MPdisp_val, v->MPresult);
 
-    } else if (IS_KEY(v->cur_op, KEY_DIV.value[0])) {     /* Division. */
+    } else if (IS_KEY(v->cur_op, buttons[KEY_DIVIDE].value[0])) {     /* Division. */
         mpdiv(v->MPresult, v->MPdisp_val, v->MPresult);
 
-    } else if (IS_KEY(v->cur_op, KEY_MOD.value[0])) {     /* Modulus. */
+    } else if (IS_KEY(v->cur_op, buttons[KEY_MODULUS_DIVIDE].value[0])) {     /* Modulus. */
         mpcmim(v->MPresult, MP1);
         mpcmim(v->MPdisp_val, MP2);
         if (!mpeq(v->MPresult, MP1) || !mpeq(v->MPdisp_val, MP2)) {
@@ -697,46 +697,46 @@
         mpmul(MP1, v->MPdisp_val, MP2);
         mpsub(v->MPresult, MP2, v->MPresult);
 
-    } else if (IS_KEY(v->cur_op, KEY_YTOX.value[0])) {    /* y^x */
+    } else if (IS_KEY(v->cur_op, buttons[KEY_X_POW_Y].value[0])) {    /* y^x */
         calc_xpowy(v->MPresult, v->MPdisp_val, v->MPresult);
 
-    } else if (IS_KEY(v->cur_op, KEY_AND.value[0])) {     /* AND */
+    } else if (IS_KEY(v->cur_op, buttons[KEY_AND].value[0])) {     /* AND */
         mpcmd(v->MPresult, &dres);
         mpcmd(v->MPdisp_val, &dval);
         dres = setbool(ibool(dres) & ibool(dval));
         mpcdm(&dres, v->MPresult);
 
-    } else if (IS_KEY(v->cur_op, KEY_OR.value[0])) {      /* OR */
+    } else if (IS_KEY(v->cur_op, buttons[KEY_OR].value[0])) {      /* OR */
         mpcmd(v->MPresult, &dres);
         mpcmd(v->MPdisp_val, &dval);
         dres = setbool(ibool(dres) | ibool(dval));
         mpcdm(&dres, v->MPresult);
 
-    } else if (IS_KEY(v->cur_op, KEY_XOR.value[0])) {     /* XOR */
+    } else if (IS_KEY(v->cur_op, buttons[KEY_XOR].value[0])) {     /* XOR */
         mpcmd(v->MPresult, &dres);
         mpcmd(v->MPdisp_val, &dval);
         dres = setbool(ibool(dres) ^ ibool(dval));
         mpcdm(&dres, v->MPresult); 
 
-    } else if (IS_KEY(v->cur_op, KEY_XNOR.value[0])) {    /* XNOR */
+    } else if (IS_KEY(v->cur_op, buttons[KEY_XNOR].value[0])) {    /* XNOR */
         mpcmd(v->MPresult, &dres);
         mpcmd(v->MPdisp_val, &dval);
         dres = setbool(~ibool(dres) ^ ibool(dval));
         mpcdm(&dres, v->MPresult); 
 
-    } else if (IS_KEY(v->cur_op, KEY_EQ.value[0])) {      /* Equals */
+    } else if (IS_KEY(v->cur_op, buttons[KEY_CALCULATE].value[0])) {      /* Equals */
         /* do nothing */;
     }
 
     show_display(v->MPresult);
 
-    if (!(key_equal(v->current, KEY_EQ) && 
-          IS_KEY(v->old_cal_value, KEY_EQ.value[0]))) {
+    if (!(key_equal(v->current, buttons[KEY_CALCULATE]) && 
+          IS_KEY(v->old_cal_value, buttons[KEY_CALCULATE].value[0]))) {
         mpstr(v->MPdisp_val, v->MPlast_input);
     }
 
     mpstr(v->MPresult, v->MPdisp_val);
-    if (!key_equal(v->current, KEY_EQ)) {
+    if (!key_equal(v->current, buttons[KEY_CALCULATE])) {
         v->cur_op = v->current->value[0];
     }
     v->old_cal_value = v->current->value[0];
@@ -754,9 +754,9 @@
         return(-EINVAL);
     }
 
-    sin_key = (key_equal(v->current, KEY_SIN)) ? 1 : 0;
-    cos_key = (key_equal(v->current, KEY_COS)) ? 1 : 0;
-    tan_key = (key_equal(v->current, KEY_TAN)) ? 1 : 0;
+    sin_key = (key_equal(v->current, buttons[KEY_SINE])) ? 1 : 0;
+    cos_key = (key_equal(v->current, buttons[KEY_COSINE])) ? 1 : 0;
+    tan_key = (key_equal(v->current, buttons[KEY_TANGENT])) ? 1 : 0;
   
     if (sin_key) {
         tfunc = SIN;
@@ -1093,36 +1093,36 @@
 {
     int MP1[MP_SIZE];
 
-    if (key_equal(v->current, KEY_32)) {                  /* &32 */
+    if (key_equal(v->current, buttons[KEY_MASK_32])) {                  /* &32 */
         calc_u32(s, t);
-    } else if (key_equal(v->current, KEY_16)) {           /* &16 */
+    } else if (key_equal(v->current, buttons[KEY_MASK_16])) {           /* &16 */
         calc_u16(s, t);
-    } else if (key_equal(v->current, KEY_ETOX)) {         /* e^x  */
+    } else if (key_equal(v->current, buttons[KEY_E_POW_X])) {         /* e^x  */
         mpstr(s, MP1);
         mpexp(MP1, t);
-    } else if (key_equal(v->current, KEY_TTOX)) {         /* 10^x */
+    } else if (key_equal(v->current, buttons[KEY_10_POW_X])) {         /* 10^x */
         calc_tenpowx(s, t);
-    } else if (key_equal(v->current, KEY_LN)) {           /* Ln */
+    } else if (key_equal(v->current, buttons[KEY_NATURAL_LOGARITHM])) {           /* Ln */
         mpstr(s, MP1);
         mpln(MP1, t);
-    } else if (key_equal(v->current, KEY_LOG)) {          /* Log */
+    } else if (key_equal(v->current, buttons[KEY_LOGARITHM])) {          /* Log */
         mplog10(s, t);
-    } else if (key_equal(v->current, KEY_RAND)) {         /* Rand */
+    } else if (key_equal(v->current, buttons[KEY_RANDOM])) {         /* Rand */
         calc_rand(t);
-    } else if (key_equal(v->current, KEY_SQRT)) {         /* Sqrt */
+    } else if (key_equal(v->current, buttons[KEY_SQUARE_ROOT])) {         /* Sqrt */
         mpstr(s, MP1);
         mpsqrt(MP1, t);
-    } else if (key_equal(v->current, KEY_NOT)) {          /* NOT */
+    } else if (key_equal(v->current, buttons[KEY_NOT])) {          /* NOT */
         calc_not(t, s);
-    } else if (key_equal(v->current, KEY_REC)) {          /* 1/x */
+    } else if (key_equal(v->current, buttons[KEY_RECIPROCAL])) {          /* 1/x */
         calc_inv(s, t);
-    } else if (key_equal(v->current, KEY_FACT)) {         /* x! */
+    } else if (key_equal(v->current, buttons[KEY_FACTORIAL])) {         /* x! */
         do_factorial(s, MP1);
         mpstr(MP1, t);
-    } else if (key_equal(v->current, KEY_SQR)) {          /* x^2 */
+    } else if (key_equal(v->current, buttons[KEY_SQUARE])) {          /* x^2 */
         mpstr(s, MP1);
         mpmul(MP1, MP1, t);
-    } else if (key_equal(v->current, KEY_CHS)) {          /* +/- */
+    } else if (key_equal(v->current, buttons[KEY_CHANGE_SIGN])) {          /* +/- */
          if (v->key_exp) {
              if (*v->exp_posn == '+') {
                  *v->exp_posn = '-';
@@ -1257,7 +1257,7 @@
 {
     update_statusbar("", "");
 
-    if (key_equal(v->current, KEY_LPAR)) {
+    if (key_equal(v->current, buttons[KEY_START_BLOCK])) {
         v->pending = v->current->value[0];
         if (!v->noparens) {
             if (v->cur_op == '?') {
@@ -1271,7 +1271,7 @@
         v->noparens++;
     }
 
-    if (v->noparens && key_equal(v->current, KEY_RPAR)) {
+    if (v->noparens && key_equal(v->current, buttons[KEY_END_BLOCK])) {
         v->noparens--;
         if (!v->noparens) {
             int ret, i = 0;
@@ -1404,41 +1404,44 @@
 do_pending()
 {
     if (!v->ismenu &&
-        !IS_KEY(v->pending, KEY_LPAR.value[0])) {
+        !IS_KEY(v->pending, buttons[KEY_START_BLOCK].value[0])) {
         show_menu();
     }
 
-    if (IS_KEY(v->pending, KEY_CON.value[0]))  {                 /* Con */
+    if (IS_KEY(v->pending, buttons[KEY_CONSTANTS_MENU].value[0]))  {                 /* Con */
         do_constant();
 	v->new_input = 1;
 	syntaxdep_show_display();
-    } else if (IS_KEY(v->pending, KEY_EXCH.value[0])) {          /* Exch */
+    } else if (IS_KEY(v->pending, buttons[KEY_EXCHANGE].value[0])) {          /* Exch */
         do_exchange();
 	v->new_input = 1;
 	syntaxdep_show_display();
-    } else if (IS_KEY(v->pending, KEY_FUN.value[0]))  {          /* Fun */
+    } else if (IS_KEY(v->pending, buttons[KEY_FUNCTIONS_MENU].value[0]))  {          /* Fun */
         do_function();
 	v->new_input = 1;
-    } else if (IS_KEY(v->pending, KEY_STO.value[0])) {
+    } else if (IS_KEY(v->pending, buttons[KEY_STORE].value[0])) {
         do_sto();
-    } else if (IS_KEY(v->pending, KEY_RCL.value[0])) {
+    } else if (IS_KEY(v->pending, buttons[KEY_RECALL].value[0])) {
        do_rcl();
        v->new_input = 1;
        syntaxdep_show_display();
-    } else if (IS_KEY(v->pending, KEY_LSFT.value[0]) ||          /* < */
-               IS_KEY(v->pending, KEY_RSFT.value[0])) {          /* > */
-        do_shift();
+    } else if (IS_KEY(v->pending, buttons[KEY_LEFT_SHIFT].value[0])) {          /* < */
+        do_shift(left);
 	v->new_input = 1;
 	syntaxdep_show_display();
-    } else if (IS_KEY(v->pending, KEY_ACC.value[0])) {           /* Acc */
+    } else if (IS_KEY(v->pending, buttons[KEY_RIGHT_SHIFT].value[0])) {          /* > */
+        do_shift(right);
+	v->new_input = 1;
+	syntaxdep_show_display();
+    } else if (IS_KEY(v->pending, buttons[KEY_ACCURACY_MENU].value[0])) {           /* Acc */
         do_accuracy();
 	syntaxdep_show_display();
-    } else if (IS_KEY(v->pending, KEY_LPAR.value[0])) {          /* ( */
+    } else if (IS_KEY(v->pending, buttons[KEY_START_BLOCK].value[0])) {          /* ( */
         do_paren();
         return;
     } else if (!v->pending) {
         save_pending_values(v->current);
-        v->pending_op = KEY_EQ.value[0];
+        v->pending_op = buttons[KEY_CALCULATE].value[0];
         return;
     }
 
@@ -1468,15 +1471,15 @@
 {
     int MP1[MP_SIZE];
 
-    if (key_equal(v->current, KEY_ABS)) {                       /* Abs */
+    if (key_equal(v->current, buttons[KEY_ABSOLUTE_VALUE])) {                       /* Abs */
         mpstr(num, MP1);
         mpabs(MP1, num);
 
-    } else if (key_equal(v->current, KEY_FRAC)) {               /* Frac */
+    } else if (key_equal(v->current, buttons[KEY_FRACTION])) {               /* Frac */
         mpstr(num, MP1);
         mpcmf(MP1, num);
 
-    } else if (key_equal(v->current, KEY_INT)) {                /* Int */
+    } else if (key_equal(v->current, buttons[KEY_INTEGER])) {                /* Int */
         mpstr(num, MP1);
         mpcmim(MP1, num);
     }
@@ -1492,16 +1495,15 @@
 
 
 static void
-do_shift()     /* Perform bitwise shift on display value. */
+do_shift(enum shiftd dir)     /* Perform bitwise shift on display value. */
 {
-    enum menu_type mtype = M_LSHF;
-
-    if (IS_KEY(v->pending, KEY_LSFT.value[0])) {
-        mtype = M_LSHF;
-    } else if (IS_KEY(v->pending, KEY_RSFT.value[0])) {
-        mtype = M_RSHF;
-    } else assert(0);
-
+    enum menu_type mtype;
+    
+    if (dir == left)
+	mtype = M_LSHF;
+    else
+	mtype = M_RSHF;
+    
     switch (v->syntax) {
         case npa: {
             /* TODO: cleanup this code block. */
@@ -1516,9 +1518,9 @@
 	            mpcmd(MPtemp, &dval);
 	            temp = ibool(dval);
 	  
-	            if (IS_KEY(v->pending, KEY_LSFT.value[0])) {
+	            if (IS_KEY(v->pending, buttons[KEY_LEFT_SHIFT].value[0])) {
 	                temp = temp << shift;
-	            } else if (IS_KEY(v->pending, KEY_RSFT.value[0])) {
+	            } else if (IS_KEY(v->pending, buttons[KEY_RIGHT_SHIFT].value[0])) {
 	                temp = temp >> shift;
 	            }
 
@@ -1534,7 +1536,6 @@
 
         case exprs: {
 	    struct exprm_state *e = get_state();
-            enum shiftd dir;
             int MPval[MP_SIZE];
             int n = char_val(e->button.value[0]);
             int ret = usable_num(MPval);
@@ -1545,7 +1546,6 @@
 	        return;
             } 
 
-            dir = (mtype == M_LSHF) ? left : right;
             calc_rshift(MPval, e->ans, n, dir);
 
 	    exp_replace("Ans");
@@ -1563,9 +1563,9 @@
 {
     v->ttype = t;
     put_resource(R_TRIG, Rtstr[(int) v->ttype]);
-    if (IS_KEY(v->cur_op, KEY_COS.value[0]) ||
-        IS_KEY(v->cur_op, KEY_SIN.value[0]) ||
-        IS_KEY(v->cur_op, KEY_TAN.value[0])) {
+    if (IS_KEY(v->cur_op, buttons[KEY_COSINE].value[0]) ||
+        IS_KEY(v->cur_op, buttons[KEY_SINE].value[0]) ||
+        IS_KEY(v->cur_op, buttons[KEY_TANGENT].value[0])) {
         mpstr(v->MPtresults[(int) v->ttype], v->MPdisp_val);
         show_display(v->MPtresults[(int) v->ttype]);
     }
@@ -1646,28 +1646,12 @@
     update_statusbar(message, "gtk-dialog-error");
 }
 
-
-static struct button *
-ch_to_button(struct button buttons[], int max_buttons, char ch)
+struct button *
+button_for_value(int val)
 {
     int i;
- 
-    for (i = 0; i < max_buttons; i++) {
-        if (buttons[i].func_char == ch) {
-            return(&buttons[i]);
-        }
-    }    
- 
-    return(NULL);
-}
 
-
-static struct button *
-val_to_button(struct button buttons[], int max_buttons, int val)
-{
-    int i;
-
-    for (i = 0; i < max_buttons; i++) {
+    for (i = 0; i < NKEYS; i++) {
         if (buttons[i].value[0] == val) {
             return(&buttons[i]);
         }
@@ -1676,32 +1660,16 @@
     return(NULL);
 }
 
-
 struct button *
-button_for_value(int val)
-{
-    struct button *b;
-
-    if ((b = val_to_button(a_buttons, A_NOBUTTONS, val)) == NULL) {
-        if ((b = val_to_button(f_buttons, F_NOBUTTONS, val)) == NULL) {
-            b = val_to_button(s_buttons, S_NOBUTTONS, val);
-        }
-    }
-
-    return(b);
-}
-
-
-struct button *
 button_for_fc(char ch)
 {
-    struct button *b;
-
-    if ((b = ch_to_button(a_buttons, A_NOBUTTONS, ch)) == NULL) {
-        if ((b = ch_to_button(f_buttons, F_NOBUTTONS, ch)) == NULL) {
-            b = ch_to_button(s_buttons, S_NOBUTTONS, ch);
+    int i;
+ 
+    for (i = 0; i < NKEYS; i++) {
+        if (buttons[i].func_char == ch) {
+            return(&buttons[i]);
         }
     }    
-
-    return(b);
+ 
+    return(NULL);
 }
Index: gcalctool/extern.h
===================================================================
--- gcalctool/extern.h	(revision 1740)
+++ gcalctool/extern.h	(working copy)
@@ -50,9 +50,6 @@
 extern int validkeys[];        /* Valid keys after an error condition. */
 extern int cur_pos[];          /* Current positions - left/right handed. */
 
-extern struct button b_buttons[];         /* Basic mode button values. */
-extern struct button a_buttons[];         /* Advanced mode button values. */
-extern struct button f_buttons[];         /* Financial mode button values. */
-extern struct button s_buttons[];         /* Scientific mode button values. */
+extern struct button buttons[];         /* Calculator button values. */
 
 #endif /*EXTERN_H*/
Index: gcalctool/gtk.c
===================================================================
--- gcalctool/gtk.c	(revision 1740)
+++ gcalctool/gtk.c	(working copy)
@@ -20,6 +20,9 @@
  */
 #include "config.h"
 
+// FIXME: Acc works in all modes
+// TODO: Move dialogs to Glade
+
 #include <stdio.h>
 #include <string.h>
 #include <ctype.h>
@@ -40,58 +43,139 @@
 #include "ce_parser.h"
 #include "mpmath.h"
 
-#define BUT_0_BAS     X->bas_buttons[16]       /* 0 - in "Basic" mode */
-#define BUT_1_BAS     X->bas_buttons[12]       /* 1 - in "Basic" mode */
-#define BUT_2_BAS     X->bas_buttons[13]       /* 2 - in "Basic" mode */
-#define BUT_3_BAS     X->bas_buttons[14]       /* 3 - in "Basic" mode */
-#define BUT_4_BAS     X->bas_buttons[8]        /* 4 - in "Basic" mode */
-#define BUT_5_BAS     X->bas_buttons[9]        /* 5 - in "Basic" mode */
-#define BUT_6_BAS     X->bas_buttons[10]       /* 6 - in "Basic" mode */
-#define BUT_7_BAS     X->bas_buttons[4]        /* 7 - in "Basic" mode */
-#define BUT_8_BAS     X->bas_buttons[5]        /* 8 - in "Basic" mode */
-#define BUT_9_BAS     X->bas_buttons[6]        /* 9 - in "Basic" mode */
+struct button_widget
+{
+    int key;
+    char *widget_name;
+    enum menu_type mtype;
+};
 
-#define BUT_0_ADV     X->adv_buttons[24]       /* 0 - in "Advanced" mode */
-#define BUT_1_ADV     X->adv_buttons[16]       /* 1 - in "Advanced" mode */
-#define BUT_2_ADV     X->adv_buttons[17]       /* 2 - in "Advanced" mode */
-#define BUT_3_ADV     X->adv_buttons[18]       /* 3 - in "Advanced" mode */
-#define BUT_4_ADV     X->adv_buttons[8]        /* 4 - in "Advanced" mode */
-#define BUT_5_ADV     X->adv_buttons[9]        /* 5 - in "Advanced" mode */
-#define BUT_6_ADV     X->adv_buttons[10]       /* 6 - in "Advanced" mode */
-#define BUT_7_ADV     X->adv_buttons[0]        /* 7 - in "Advanced" mode */
-#define BUT_8_ADV     X->adv_buttons[1]        /* 8 - in "Advanced" mode */
-#define BUT_9_ADV     X->adv_buttons[2]        /* 9 - in "Advanced" mode */
+enum {
+    BUT_0,
+    BUT_1,
+    BUT_2,
+    BUT_3,
+    BUT_4,
+    BUT_5,
+    BUT_6,
+    BUT_7,
+    BUT_8,
+    BUT_9,
+    BUT_A,
+    BUT_B,
+    BUT_C,
+    BUT_D,
+    BUT_E,
+    BUT_F,
+    BUT_CLEAR_BASIC,
+    BUT_CLEAR_ADVANCED,
+    BUT_LEFT_SHIFT,
+    BUT_RIGHT_SHIFT,
+    BUT_ACCURACY_MENU,
+    BUT_CONSTANTS_MENU,
+    BUT_FUNCTIONS_MENU,
+    BUT_STORE,
+    BUT_RECALL,
+    BUT_EXCHANGE
+};
 
-#define BUT_CLR_BAS   X->bas_buttons[2]        /* Clr - in "Basic" mode */
-#define BUT_CLR_ADV   X->adv_buttons[7]        /* Clr - in "Advanced" mode */
+struct button_widget button_widgets[] = {
+    {KEY_0,                  "0", M_NONE},
+    {KEY_1,                  "1", M_NONE},
+    {KEY_2,                  "2", M_NONE},
+    {KEY_3,                  "3", M_NONE},
+    {KEY_4,                  "4", M_NONE},
+    {KEY_5,                  "5", M_NONE},
+    {KEY_6,                  "6", M_NONE},
+    {KEY_7,                  "7", M_NONE},
+    {KEY_8,                  "8", M_NONE},
+    {KEY_9,                  "9", M_NONE},
+    {KEY_A,                  "a", M_NONE},
+    {KEY_B,                  "b", M_NONE},
+    {KEY_C,                  "c", M_NONE},
+    {KEY_D,                  "d", M_NONE},
+    {KEY_E,                  "e", M_NONE},
+    {KEY_F,                  "f", M_NONE},
+    {KEY_CLEAR,              "clear_simple", M_NONE},
+    {KEY_CLEAR,              "clear_advanced", M_NONE},
+    {KEY_LEFT_SHIFT,         "shift_left", M_LSHF},
+    {KEY_RIGHT_SHIFT,        "shift_right", M_RSHF},
+    {KEY_ACCURACY_MENU,      "accuracy", M_ACC},
+    {KEY_CONSTANTS_MENU,     "constants", M_CON},
+    {KEY_FUNCTIONS_MENU,     "functions", M_FUN},
+    {KEY_STORE,              "store", M_STO},
+    {KEY_RECALL,             "recall", M_RCL},
+    {KEY_EXCHANGE,           "exchange", M_EXCH},
+    {KEY_CLEAR_ENTRY,        "clear_entry_simple", M_NONE},
+    {KEY_CLEAR_ENTRY,        "clear_entry_advanced", M_NONE},
+    {KEY_BACKSPACE,          "backspace_simple", M_NONE},
+    {KEY_BACKSPACE,          "backspace_advanced", M_NONE},
+    {KEY_NUMERIC_POINT,      "numeric_point", M_NONE},
+    {KEY_CALCULATE,          "result", M_NONE},
+    {KEY_START_BLOCK,        "start_group", M_NONE},
+    {KEY_END_BLOCK,          "end_group", M_NONE},
+    {KEY_ADD,                "add", M_NONE},
+    {KEY_SUBTRACT,           "subtract", M_NONE},
+    {KEY_MULTIPLY,           "multiply", M_NONE},
+    {KEY_DIVIDE,             "divide", M_NONE},
+    {KEY_CHANGE_SIGN,        "change_sign_simple", M_NONE},
+    {KEY_CHANGE_SIGN,        "change_sign_advanced", M_NONE},
+    {KEY_INTEGER,            "integer_portion", M_NONE},
+    {KEY_FRACTION,           "fractional_portion", M_NONE},
+    {KEY_PERCENTAGE,         "percentage", M_NONE},
+    {KEY_SQUARE,             "square", M_NONE},
+    {KEY_SQUARE_ROOT,        "sqrt", M_NONE},
+    {KEY_RECIPROCAL,         "reciprocal", M_NONE},
+    {KEY_ABSOLUTE_VALUE,     "abs", M_NONE},
+    {KEY_MASK_16,            "mask_16", M_NONE},
+    {KEY_MASK_32,            "mask_32", M_NONE},
+    {KEY_MODULUS_DIVIDE,     "modulus_divide", M_NONE},
+    {KEY_EXPONENTIAL,        "exponential", M_NONE},
+    {KEY_E_POW_X,            "pow_e", M_NONE},
+    {KEY_10_POW_X,           "pow_10", M_NONE},
+    {KEY_X_POW_Y,            "x_pow_y", M_NONE},
+    {KEY_NATURAL_LOGARITHM,  "natural_logarithm", M_NONE},
+    {KEY_LOGARITHM,          "logarithm", M_NONE},
+    {KEY_FACTORIAL,          "factorial", M_NONE},
+    {KEY_RANDOM,             "random", M_NONE},
+    {KEY_SINE,               "sine", M_NONE},
+    {KEY_COSINE,             "cosine", M_NONE},
+    {KEY_TANGENT,            "tangent", M_NONE},
+    {KEY_NOT,                "not", M_NONE},
+    {KEY_OR,                 "or", M_NONE},
+    {KEY_AND,                "and", M_NONE},
+    {KEY_XOR,                "xor", M_NONE},
+    {KEY_XNOR,               "xnor", M_NONE},
+    {KEY_FINC_CTRM,          "finc_compounding_term", M_NONE},
+    {KEY_FINC_DDB,           "finc_double_declining_depreciation", M_NONE},
+    {KEY_FINC_FV,            "finc_future_value", M_NONE},
+    {KEY_FINC_PMT,           "finc_periodic_payment", M_NONE},
+    {KEY_FINC_PV,            "finc_present_value", M_NONE},
+    {KEY_FINC_RATE,          "finc_periodic_interest_rate", M_NONE},
+    {KEY_FINC_SLN,           "finc_straight_line_depreciation", M_NONE},
+    {KEY_FINC_SYD,           "finc_sum_of_the_years_digits_depreciation", M_NONE},
+    {KEY_FINC_TERM,          "finc_term", M_NONE}
+};
+#define NBUTTONS (sizeof(button_widgets) / sizeof(struct button_widget))
 
-#define BUT_ACC   X->sci_buttons[7]        /* a */
-#define BUT_CON   X->sci_buttons[8]        /* # */
-#define BUT_EXCH  X->adv_buttons[31]       /* e */
-#define BUT_FUN   X->sci_buttons[9]        /* f */
-#define BUT_LSFT  X->sci_buttons[0]        /* < */
-#define BUT_RCL   X->adv_buttons[23]       /* R */
-#define BUT_RSFT  X->sci_buttons[1]        /* > */
-#define BUT_STO   X->adv_buttons[15]       /* S */
+#define UI_FILE PACKAGE_GLADE_DIR "/gcalctool.glade"
 
-#define BUT_A     X->sci_buttons[24]       /* A */
-#define BUT_B     X->sci_buttons[25]       /* B */
-#define BUT_C     X->sci_buttons[26]       /* C */
-#define BUT_D     X->sci_buttons[16]       /* D */
-#define BUT_E     X->sci_buttons[17]       /* E */
-#define BUT_F     X->sci_buttons[18]       /* F */
-
 #define  MAXBITS    64      /* Bit panel: number of bit fields. */
-#define  MAXGAPS    14      /* Bit panel: number of 4 bit gaps. */
-#define  MAXLABELS  6       /* Bit panel: number of bits that are labelled. */
 
+#define GET_WIDGET(name) \
+          glade_xml_get_widget(X->ui, (name))
+
+#define SET_MENUBAR_ITEM_STATE(name, state) \
+          g_object_set_data(G_OBJECT(GET_WIDGET(name)), "sensitive", GINT_TO_POINTER(state));
+
+#define CONNECT_SIGNAL(name) glade_xml_signal_connect(X->ui, #name, G_CALLBACK(name))
+
 struct Xobject {               /* Gtk+/Xlib graphics object. */
     GtkAccelGroup *kbd_accel;
     GdkAtom clipboard_atom;
     GdkAtom primary_atom;
     GConfClient *client;
-    GtkUIManager *ui;
-    GtkActionGroup *actions;
+    GladeXML  *ui;
     GtkWidget *aframe;                 /* ASCII window. */
     GtkWidget *aframe_ch;
     GtkWidget *base[MAXBASES];         /* Numeric base radio buttons. */
@@ -102,8 +186,6 @@
     GtkWidget *hyp;                    /* Hyperbolic mode. */
     GtkWidget *inv;                    /* Inverse mode. */
     GtkWidget *kframe;                 /* Main window. */
-    GtkWidget *kvbox;
-    GtkWidget *ktable;
     GtkWidget *menubar;
     GtkWidget *mode_panel;
 
@@ -129,11 +211,9 @@
     GtkWidget *menus[MAXMENUS];
     GtkWidget *trig[MAXTRIGMODES];     /* Trigonometric mode. */
 
-    GtkWidget *bas_buttons[BROWS * BCOLS];
-    GtkWidget *adv_buttons[AROWS * ACOLS];
-    GtkWidget *fin_buttons[FROWS * FCOLS];
-    GtkWidget *sci_buttons[SROWS * SCOLS];
+    GtkWidget *buttons[NBUTTONS];
 
+    GtkWidget *core_panel;    
     GtkWidget *bas_panel;
     GtkWidget *adv_panel;
     GtkWidget *fin_panel;
@@ -141,7 +221,7 @@
 
     Display *dpy;
 
-    const gchar *mode_name;       /* Name of the new mode. */
+    int mode;                     /* The new mode. */
     int menuval;                  /* Index to button array at menu time. */
     char *lnp;                    /* Localized numerical point (UTF8 format) */
     struct button *mrec[MAXMENUS];
@@ -165,53 +245,61 @@
     gboolean editable;
 } CF_Item;
 
-static GtkWidget *create_bit_panel(GtkWidget *);
 static GtkWidget *create_menu(enum menu_type, struct button *);
-static GtkWidget *create_mode_panel(GtkWidget *);
-static GtkWidget *make_menu_button(gchar *, int);
-static GtkWidget *make_but_panel(GtkWidget *, GtkWidget **,
-                                 struct button *, int, int, char *);
 
-void trig_cb(GtkToggleButton *, gpointer);
-void base_cb(GtkToggleButton *, gpointer);
-void disp_cb(GtkToggleButton *, gpointer);
-void inv_cb(GtkToggleButton *, gpointer);
-void hyp_cb(GtkToggleButton *, gpointer);
+void trig_cb(GtkToggleButton *);
+void base_cb(GtkToggleButton *);
+void disp_cb(GtkToggleButton *);
+void inv_cb(GtkToggleButton *);
+void hyp_cb(GtkToggleButton *);
 
 static char *make_hostname(Display *);
 
+static void menu_cancel_cb(GtkWidget *w);
 static gboolean aframe_key_cb(GtkWidget *, GdkEventKey *, gpointer);
 static gboolean dismiss_aframe(GtkWidget *, GdkEvent *, gpointer);
 static gboolean dismiss_rframe(GtkWidget *, GdkEvent *, gpointer);
 static gboolean dismiss_spframe(GtkWidget *, GdkEvent *, gpointer);
-static gboolean kframe_key_press_cb(GtkWidget *, GdkEventKey *, gpointer);
-static gboolean kframe_key_release_cb(GtkWidget *, GdkEventKey *, gpointer);
-static gboolean display_focus_in_cb(GtkWidget *, GdkEventKey *, gpointer);
-static gboolean display_focus_out_cb(GtkWidget *, GdkEventKey *, gpointer);
-static gboolean mouse_button_cb(GtkWidget *, GdkEventButton *, gpointer);
-static gboolean spframe_key_cb(GtkWidget *, GdkEventKey *, gpointer);
+static gboolean kframe_key_press_cb(GtkWidget *, GdkEventKey *);
+static gboolean kframe_key_release_cb(GtkWidget *, GdkEventKey *);
+static gboolean display_focus_in_cb(GtkWidget *, GdkEventKey *);
+static gboolean display_focus_out_cb(GtkWidget *, GdkEventKey *);
+static gboolean mouse_button_cb(GtkWidget *, GdkEventButton *);
+static gboolean spframe_key_cb(GtkWidget *, GdkEventKey *);
 
-static void about_cb(GtkAction *action, gpointer);
+static void about_cb(GtkWidget *);
 static void add_cf_column(GtkTreeView *, gchar *, gint, gboolean);
 static void aframe_cancel_cb(GtkButton *, gpointer);
 static void aframe_ok_cb(GtkButton *, gpointer);
-static void buffer_populate_popup_cb(GtkTextView *, GtkMenu *, gpointer);
+static void buffer_populate_popup_cb(GtkTextView *, GtkMenu *);
 static void cell_edited(GtkCellRendererText *, 
                         const gchar *, const gchar *, gpointer);
 static void create_con_fun_menu(enum menu_type);
 static void create_menu_item_with_markup(char *, int, int);
-static void mb_proc(GtkAction *action);
-static void mb_acc_radio_proc(GtkAction *action, GtkRadioAction *current);
-static void mb_arith_mode_radio_proc(GtkAction *action, 
-                                     GtkRadioAction *current);
-static void mb_mode_radio_proc(GtkAction *action, GtkRadioAction *current);
+static void accuracy_radio_cb(GtkWidget *);
+static void accuracy_other_cb(GtkWidget *);
+static void arithmetic_mode_cb(GtkWidget *);
+static void mode_radio_cb(GtkWidget *);
 static void menu_pos_func(GtkMenu *, gint *, gint *, gboolean *, gpointer);
 static void menu_proc_cb(GtkMenuItem *, gpointer);
-static void mstz_proc(GtkAction *action);
+static void menu_button_button_press_cb(GtkButton *);
+static gboolean menu_button_key_press_cb(GtkWidget *, GdkEventKey *);
+static void show_trailing_zeroes_cb(GtkWidget *);
 static void new_cf_value(GtkMenuItem *, gpointer);
 static void put_constant(int, char *, char *);
 static void put_function(int, char *, char *);
-static void quit_cb(GtkWidget *, gpointer);
+static void quit_cb(GtkWidget *widget);
+static void edit_cb(GtkWidget *widget);
+static void copy_cb(GtkWidget *widget);
+static void paste_cb(GtkWidget *widget);
+static void undo_cb(GtkWidget *widget);
+static void redo_cb(GtkWidget *widget);
+static void insert_ascii_cb(GtkWidget *widget);
+static void shift_left_cb(GtkWidget *widget);
+static void shift_right_cb(GtkWidget *widget);
+static void show_bitcalculating_cb(GtkWidget *widget);
+static void show_registers_cb(GtkWidget *widget);
+static void help_cb(GtkWidget *widget);
 static void reset_mode_display(int);
 static void reset_mode_values(enum mode_type);
 static void save_win_position();
@@ -227,246 +315,14 @@
 static void show_ascii_frame();
 static void show_menu_for_button(GtkWidget *, GdkEventKey *event);
 static void show_precision_frame();
-static void spframe_cancel_cb(GtkButton *, gpointer);
-static void spframe_ok_cb(GtkButton *, gpointer);
-static void ts_proc(GtkAction *action);
+static void spframe_cancel_cb(GtkButton *);
+static void spframe_ok_cb(GtkButton *);
+static void show_thousands_separator_cb(GtkWidget *widget);
 static void update_copy_paste_status();
 static void help_display(void);
 
 static XVars X;
 
-/* Menubar menus. */
-/* Use NULL to let the STOCK label values or keybindings show through */
-
-static const GtkActionEntry entries[] = {
-    { "CalculatorMenu", NULL, N_("_Calculator") },
-    { "EditMenu",       NULL, N_("_Edit"), NULL, NULL, G_CALLBACK(mb_proc) },
-    { "ViewMenu",       NULL, N_("_View") },
-    { "HelpMenu",       NULL, N_("_Help") },
-
-    { "Quit", GTK_STOCK_QUIT, NULL, "<control>Q",
-      N_("Quit the calculator"), G_CALLBACK(mb_proc) },
-
-    { "Copy", GTK_STOCK_COPY, NULL, NULL,
-      N_("Copy selection"), G_CALLBACK(mb_proc) },
-    { "Paste", GTK_STOCK_PASTE, NULL, NULL,
-      N_("Paste selection"), G_CALLBACK(mb_proc) },
-    { "Insert", NULL, N_("_Insert ASCII Value..."), "<control>I",
-      N_("Insert ASCII value"), G_CALLBACK(mb_proc) },
-    { "Undo", GTK_STOCK_UNDO, N_("_Undo"), "<control>Z",
-      N_("Undo"), G_CALLBACK(mb_proc) },
-    { "Redo", GTK_STOCK_REDO, N_("_Redo"), "<shift><control>Z",
-      N_("Redo"), G_CALLBACK(mb_proc) },
-
-
-    { "Contents", GTK_STOCK_HELP, NULL, "F1",
-      N_("Show help contents"), G_CALLBACK(mb_proc) },
-    { "About", GTK_STOCK_ABOUT, NULL, NULL,
-      N_("Show the About Gcalctool dialog"), G_CALLBACK(about_cb) },
-
-    { "LSPlaces1",  NULL, N_("_1 place"),   NULL,
-      N_("1 place"),   G_CALLBACK(mb_proc) },
-    { "LSPlaces2",  NULL, N_("_2 places"),  NULL,
-      N_("2 places"),  G_CALLBACK(mb_proc) },
-    { "LSPlaces3",  NULL, N_("_3 places"),  NULL,
-      N_("3 places"),  G_CALLBACK(mb_proc) },
-    { "LSPlaces4",  NULL, N_("_4 places"),  NULL,
-      N_("4 places"),  G_CALLBACK(mb_proc) },
-    { "LSPlaces5",  NULL, N_("_5 places"),  NULL, 
-      N_("5 places"),  G_CALLBACK(mb_proc) },
-    { "LSPlaces6",  NULL, N_("_6 places"),  NULL, 
-      N_("6 places"),  G_CALLBACK(mb_proc) },
-    { "LSPlaces7",  NULL, N_("_7 places"),  NULL, 
-      N_("7 places"),  G_CALLBACK(mb_proc) },
-    { "LSPlaces8",  NULL, N_("_8 places"),  NULL, 
-      N_("8 places"),  G_CALLBACK(mb_proc) },
-    { "LSPlaces9",  NULL, N_("_9 places"),  NULL, 
-      N_("9 places"),  G_CALLBACK(mb_proc) },
-    { "LSPlaces10", NULL, N_("10 places"),  NULL,
-      N_("10 places"), G_CALLBACK(mb_proc) },
-    { "LSPlaces11", NULL, N_("11 places"),  NULL,
-      N_("11 places"), G_CALLBACK(mb_proc) },
-    { "LSPlaces12", NULL, N_("12 places"),  NULL,
-      N_("12 places"), G_CALLBACK(mb_proc) },
-    { "LSPlaces13", NULL, N_("13 places"),  NULL,
-      N_("13 places"), G_CALLBACK(mb_proc) },
-    { "LSPlaces14", NULL, N_("14 places"),  NULL,
-      N_("14 places"), G_CALLBACK(mb_proc) },
-    { "LSPlaces15", NULL, N_("15 places"),  NULL,
-      N_("15 places"), G_CALLBACK(mb_proc) },
-
-    { "RSPlaces1",  NULL, N_("_1 place"),   NULL, 
-      N_("1 place"),   G_CALLBACK(mb_proc) },
-    { "RSPlaces2",  NULL, N_("_2 places"),  NULL, 
-      N_("2 places"),  G_CALLBACK(mb_proc) },
-    { "RSPlaces3",  NULL, N_("_3 places"),  NULL, 
-      N_("3 places"),  G_CALLBACK(mb_proc) },
-    { "RSPlaces4",  NULL, N_("_4 places"),  NULL, 
-      N_("4 places"),  G_CALLBACK(mb_proc) },
-    { "RSPlaces5",  NULL, N_("_5 places"),  NULL, 
-      N_("5 places"),  G_CALLBACK(mb_proc) },
-    { "RSPlaces6",  NULL, N_("_6 places"),  NULL, 
-      N_("6 places"),  G_CALLBACK(mb_proc) },
-    { "RSPlaces7",  NULL, N_("_7 places"),  NULL, 
-      N_("7 places"),  G_CALLBACK(mb_proc) },
-    { "RSPlaces8",  NULL, N_("_8 places"),  NULL, 
-      N_("8 places"),  G_CALLBACK(mb_proc) },
-    { "RSPlaces9",  NULL, N_("_9 places"),  NULL, 
-      N_("9 places"),  G_CALLBACK(mb_proc) },
-    { "RSPlaces10", NULL, N_("10 places"), NULL, 
-      N_("10 places"), G_CALLBACK(mb_proc) },
-    { "RSPlaces11", NULL, N_("11 places"), NULL, 
-      N_("11 places"), G_CALLBACK(mb_proc) },
-    { "RSPlaces12", NULL, N_("12 places"), NULL, 
-      N_("12 places"), G_CALLBACK(mb_proc) },
-    { "RSPlaces13", NULL, N_("13 places"), NULL, 
-      N_("13 places"), G_CALLBACK(mb_proc) },
-    { "RSPlaces14", NULL, N_("14 places"), NULL, 
-      N_("14 places"), G_CALLBACK(mb_proc) },
-    { "RSPlaces15", NULL, N_("15 places"), NULL, 
-      N_("15 places"), G_CALLBACK(mb_proc) },
-};
-
-static const GtkToggleActionEntry toggle_entries[] = {
-    { "Trailing",  NULL, N_("Show _Trailing Zeroes"),     "<control>T",
-      N_("Show trailing zeroes"),     G_CALLBACK(mstz_proc), FALSE },
-    { "Thousands", NULL, N_("Show T_housands Separator"), "<control>K",
-      N_("Show thousands separator"), G_CALLBACK(ts_proc),   FALSE },
-    { "Bitcalculating", NULL, N_("Show Bitcalculating _Extension"), "<control>E",
-      N_("Show bitcalculating extension"), G_CALLBACK(mb_proc),   FALSE },
-    { "Memory",    NULL, N_("_Memory Registers"),         "<control>M",
-      N_("Show memory registers"),    G_CALLBACK(mb_proc),   FALSE },
-};
-
-static const GtkRadioActionEntry acc_radio_entries[] = {
-  { "SP0", NULL, N_("_0 significant places"), "<control>0", 
-    N_("0 significant places"), '0' },
-  { "SP1", NULL, N_("_1 significant place"),  "<control>1", 
-    N_("1 significant place"),  '1' },
-  { "SP2", NULL, N_("_2 significant places"), "<control>2",
-    N_("2 significant places"), '2' },
-  { "SP3", NULL, N_("_3 significant places"), "<control>3",
-    N_("3 significant places"), '3' },
-  { "SP4", NULL, N_("_4 significant places"), "<control>4",
-    N_("4 significant places"), '4' },
-  { "SP5", NULL, N_("_5 significant places"), "<control>5",
-    N_("5 significant places"), '5' },
-  { "SP6", NULL, N_("_6 significant places"), "<control>6",
-    N_("6 significant places"), '6' },
-  { "SP7", NULL, N_("_7 significant places"), "<control>7",
-    N_("7 significant places"), '7' },
-  { "SP8", NULL, N_("_8 significant places"), "<control>8",
-    N_("8 significant places"), '8' },
-  { "SP9", NULL, N_("_9 significant places"), "<control>9",
-    N_("9 significant places"), '9' },
-  { "SPOther", NULL, N_("_Other (10) ..."), "<control>O",
-    N_("Set other precision"), 'O' },
-};
-
-static const GtkRadioActionEntry arith_mode_radio_entries[] = {
-  { "LeftRightPrecedence", NULL, N_("_Left-to-right Precedence"), "<control>L",    
-    N_("Use Left-right Precedence"), M_LR_ARITH, },
-  { "ArithmeticPrecedence", NULL, N_("A_rithmetic Precedence"), "<control>R",    
-    N_("Use Arithmetic Precedence"), M_OP_ARITH },
-};
-
-static const GtkRadioActionEntry mode_radio_entries[] = {
-  { "Basic",      NULL, N_("_Basic"),      "<control>B", 
-    N_("Basic"),      M_BASIC },
-  { "Advanced",   NULL, N_("_Advanced"),   "<control>A",
-    N_("Advanced"),   M_ADV },
-  { "Financial",  NULL, N_("_Financial"),  "<control>F",
-    N_("Financial"),  M_FIN },
-  { "Scientific", NULL, N_("_Scientific"), "<control>S",
-    N_("Scientific"), M_SCI },
-};
-
-static const gchar ui_info[] =
- "<ui>"
-  "<menubar name='MenuBar'>"
-    "<menu action='CalculatorMenu'>"
-      "<menuitem action='Quit'/>"
-    "</menu>"
-    "<menu action='EditMenu'>"
-      "<menuitem action='Copy'/>"
-      "<menuitem action='Paste'/>"
-      "<menuitem action='Undo'/>"
-      "<menuitem action='Redo'/>"
-      "<separator/>"
-      "<menuitem action='Insert'/>"
-    "</menu>"
-    "<menu action='ViewMenu'>"
-      "<menuitem action='Basic'/>"
-      "<menuitem action='Advanced'/>"
-      "<menuitem action='Financial'/>"
-      "<menuitem action='Scientific'/>"
-      "<separator/>"
-      "<menuitem action='Trailing'/>"
-      "<menuitem action='Thousands'/>"
-      "<menuitem action='Bitcalculating'/>"
-      "<separator/>"
-      "<menuitem action='Memory'/>"
-      "<separator/>"
-      "<menuitem action='LeftRightPrecedence'/>"
-      "<menuitem action='ArithmeticPrecedence'/>"
-    "</menu>"
-    "<menu action='HelpMenu'>"
-      "<menuitem action='Contents'/>"
-      "<menuitem action='About'/>"
-    "</menu>"
-  "</menubar>"
-  "<popup name='AccMenu'>"
-    "<menuitem action='SP0'/>"
-    "<menuitem action='SP1'/>"
-    "<menuitem action='SP2'/>"
-    "<menuitem action='SP3'/>"
-    "<menuitem action='SP4'/>"
-    "<menuitem action='SP5'/>"
-    "<menuitem action='SP6'/>"
-    "<menuitem action='SP7'/>"
-    "<menuitem action='SP8'/>"
-    "<menuitem action='SP9'/>"
-    "<menuitem action='SPOther'/>"
-    "<separator/>"
-    "<menuitem action='Trailing'/>"
-  "</popup>"
-  "<popup name='LeftShiftMenu'>"
-    "<menuitem action='LSPlaces1'/>"
-    "<menuitem action='LSPlaces2'/>"
-    "<menuitem action='LSPlaces3'/>"
-    "<menuitem action='LSPlaces4'/>"
-    "<menuitem action='LSPlaces5'/>"
-    "<menuitem action='LSPlaces6'/>"
-    "<menuitem action='LSPlaces7'/>"
-    "<menuitem action='LSPlaces8'/>"
-    "<menuitem action='LSPlaces9'/>"
-    "<menuitem action='LSPlaces10'/>"
-    "<menuitem action='LSPlaces11'/>"
-    "<menuitem action='LSPlaces12'/>"
-    "<menuitem action='LSPlaces13'/>"
-    "<menuitem action='LSPlaces14'/>"
-    "<menuitem action='LSPlaces15'/>"
-  "</popup>"
-  "<popup name='RightShiftMenu'>"
-    "<menuitem action='RSPlaces1'/>"
-    "<menuitem action='RSPlaces2'/>"
-    "<menuitem action='RSPlaces3'/>"
-    "<menuitem action='RSPlaces4'/>"
-    "<menuitem action='RSPlaces5'/>"
-    "<menuitem action='RSPlaces6'/>"
-    "<menuitem action='RSPlaces7'/>"
-    "<menuitem action='RSPlaces8'/>"
-    "<menuitem action='RSPlaces9'/>"
-    "<menuitem action='RSPlaces10'/>"
-    "<menuitem action='RSPlaces11'/>"
-    "<menuitem action='RSPlaces12'/>"
-    "<menuitem action='RSPlaces13'/>"
-    "<menuitem action='RSPlaces14'/>"
-    "<menuitem action='RSPlaces15'/>"
-  "</popup>"
-"</ui>";
-
-
 int
 main(int argc, char **argv)
 {
@@ -515,7 +371,7 @@
 
 /*ARGSUSED*/
 static void
-about_cb(GtkAction *action, gpointer date)
+about_cb(GtkWidget *widget)
 {
     const gchar *authors[] = {
         "Rich Burridge <rich.burridge@sun.com>",
@@ -627,7 +483,7 @@
 
 /*ARGSUSED*/
 void
-base_cb(GtkToggleButton *button, gpointer user_data)
+base_cb(GtkToggleButton *button)
 {
     do_base((enum base_type) g_object_get_data(G_OBJECT(button), "response_id"));
 }
@@ -641,11 +497,12 @@
 
 /*ARGSUSED*/
 static void
-button_proc(GtkButton *widget, gpointer user_data)
+button_cb(GtkWidget *widget)
 {
     struct button *n;
 
     n = (struct button *) g_object_get_data(G_OBJECT(widget), "button");
+    assert(n);
 
     switch (v->syntax) {
         case npa:
@@ -740,7 +597,7 @@
 
 /*ARGSUSED*/
 static void
-cfframe_response_cb(GtkDialog *dialog, gint id, gpointer data)
+cfframe_response_cb(GtkDialog *dialog, gint id)
 {
     CF_Item item;
     int i;
@@ -980,51 +837,42 @@
 
 
 static void
-change_mode(const gchar *name)
+change_mode(int mode)
 {
-    if (EQUAL(name, "Basic")) {
-        reset_mode_values(BASIC);
-    } else if (EQUAL(name, "Advanced")) {
-        reset_mode_values(ADVANCED);
-    } else if (EQUAL(name, "Financial")) {
-        reset_mode_values(FINANCIAL);
-    } else if (EQUAL(name, "Scientific")) {
-        reset_mode_values(SCIENTIFIC);
-    }
+    X->mode = mode;
+    reset_mode_values(mode);
 }
 
 
 /*ARGSUSED*/
 static void
-cm_response_cb(GtkDialog *dialog, int response, gpointer user_data)
+cm_response_cb(GtkDialog *dialog, int response)
 {
-    GtkAction *action;
-    const gchar *action_name;
+    GtkWidget *radio;
 
     if (response == GTK_RESPONSE_ACCEPT) {
-        change_mode(X->mode_name);
+        change_mode(X->mode);
     } else {
 
         switch (v->modetype) {
             case FINANCIAL:
-                action_name = "Financial";
+	        radio = GET_WIDGET("view_financial_menu");
                 break;
 
             case SCIENTIFIC:
-                action_name = "Scientific";
+                radio = GET_WIDGET("view_scientific_menu");
                 break;
 
             case ADVANCED:
-                action_name = "Advanced";
+                radio = GET_WIDGET("view_advanced_menu");
                 break;
 
             default:
-                action_name = "Basic";
+                radio = GET_WIDGET("view_advanced_menu");
                 break;
         }
 
-        action = gtk_action_group_get_action(X->actions, action_name);
-        gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), TRUE);
+        gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(radio), TRUE);
     }
 
     gtk_widget_destroy(X->cm_dialog);
@@ -1034,7 +882,7 @@
 
 /*ARGSUSED*/
 static void
-cm_warning_cb(GtkToggleButton *button, gpointer user_data)
+cm_warning_cb(GtkToggleButton *button)
 {
     v->warn_change_mode = !gtk_toggle_button_get_active(button);
 }
@@ -1158,23 +1006,24 @@
 
 
 static gboolean
-bit_toggled(GtkWidget *event_box, GdkEventButton *event, gpointer data)
+bit_toggled(GtkWidget *event_box, GdkEventButton *event)
 {
     double number;
     unsigned long long lval;
-    int n, MP1[MP_SIZE];
+    int n, MP1[MP_SIZE], index;
 
-    n = MAXBITS - GPOINTER_TO_INT(data) - 1;
+    index = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(event_box), "widget_index"));
+    n = MAXBITS - index - 1;
     MPstr_to_num(v->display, v->base, MP1);
     mpcmd(MP1, &number);
     lval = (long long) number;
 
     if (lval & (1LL << n)) {
         lval &= ~(1LL << n);
-        gtk_label_set_text(GTK_LABEL(X->bits[GPOINTER_TO_INT(data)]), " 0");
+        gtk_label_set_text(GTK_LABEL(X->bits[index]), " 0");
     } else {
         lval |=  (1LL << n);
-        gtk_label_set_text(GTK_LABEL(X->bits[GPOINTER_TO_INT(data)]), " 1");
+        gtk_label_set_text(GTK_LABEL(X->bits[index]), " 1");
     }
 
     number = (double) lval;
@@ -1186,89 +1035,6 @@
 }
 
 
-static char *label_strs[MAXLABELS] = {
-    "63", "47", "32", "31", "15", "0"
-};
-
-static int label_pos[MAXLABELS] = {
-      0,   20,   38,   0,    20,  38
-};
-
-
-static GtkWidget *
-create_bit_panel(GtkWidget *main_vbox)
-{
-    int i, half;
-    GtkWidget *align, *table, *vbox;
-    GtkWidget *eb[MAXBITS], *gaps[MAXGAPS], *labels[MAXLABELS];
-
-    vbox = gtk_vbox_new(FALSE, 0);
-    align = gtk_alignment_new(0.5, 0.5, 0, 0);
-    gtk_container_add(GTK_CONTAINER(align), vbox);
-    gtk_box_pack_start(GTK_BOX(main_vbox), align, FALSE, TRUE, 0);
-
-    table = gtk_table_new(4, 39, FALSE);
-    gtk_widget_set_direction(table, GTK_TEXT_DIR_LTR);
-    gtk_box_pack_start(GTK_BOX(vbox), table, TRUE, TRUE, 0);
-
-    for (i = 0; i < MAXBITS; i++) {
-        int left, right, top, bottom;
-
-        half = MAXBITS / 2;
-        eb[i] = gtk_event_box_new();
-        X->bits[i] = gtk_label_new(" 0");
-        gtk_container_add(GTK_CONTAINER(eb[i]), X->bits[i]);
-
-        left   = (i < half) ? i + (i/4)     : i - half + ((i-half)/4);
-        right  = (i < half) ? i + (i/4) + 1 : i - half + ((i-half)/4) + 1;
-        top    = (i < half) ? 0 : 2;
-        bottom = (i < half) ? 1 : 3;
-
-        gtk_table_attach(GTK_TABLE(table), eb[i], left, right, top, bottom,
-                         (GtkAttachOptions) (GTK_SHRINK),
-                         (GtkAttachOptions) (0), 0, 0);
-        g_signal_connect(G_OBJECT(eb[i]), "button_press_event",
-                         G_CALLBACK(bit_toggled), GINT_TO_POINTER(i));
-    }
-
-    for (i = 0; i < MAXGAPS; i++) {
-        int left, right, top, bottom;
-
-        half = MAXGAPS / 2;
-        gaps[i] = gtk_label_new("  ");
-        left   = (i < half) ? (i + 1) * 5 - 1 : (i - half + 1) * 5 - 1;
-        right  = (i < half) ? (i + 1) * 5     : (i - half + 1) * 5;
-        top    = (i < half) ? 0 : 2;
-        bottom = (i < half) ? 1 : 3;
-
-        gtk_table_attach(GTK_TABLE(table), gaps[i], left, right, top, bottom,
-                         (GtkAttachOptions) (GTK_SHRINK),
-                         (GtkAttachOptions) (0), 0, 0);
-        gtk_misc_set_alignment(GTK_MISC(gaps[i]), 0, 0.5);
-    }
-
-    for (i = 0; i < MAXLABELS; i++) {
-        int left, right, top, bottom;
-
-        labels[i] = gtk_label_new(_(label_strs[i]));
-        left   = label_pos[i];
-        right  = label_pos[i] + 1;
-        top    = (i < (MAXLABELS / 2)) ? 1 : 3;
-        bottom = (i < (MAXLABELS / 2)) ? 2 : 4;
-
-        gtk_table_attach(GTK_TABLE(table), labels[i], left, right, top, bottom,
-                         (GtkAttachOptions) (GTK_SHRINK),
-                         (GtkAttachOptions) (0), 0, 0);
-        gtk_label_set_justify(GTK_LABEL(labels[i]), GTK_JUSTIFY_CENTER);
-        gtk_misc_set_alignment(GTK_MISC(labels[i]), 0, 0.5);
-    }
-
-    gtk_widget_show_all(align);
-
-    return(align);
-}
-
-
 void 
 set_redo_and_undo_button_sensitivity(int undo, int redo)
 {
@@ -1278,33 +1044,23 @@
 
 
 static void
-menu_item_select_cb(GtkWidget *widget, gpointer data)
+menu_item_select_cb(GtkWidget *widget)
 {
     GtkStatusbar *statusbar = GTK_STATUSBAR(X->statusbar);
-    GtkAction *action;
     gchar *tooltip;
     guint context_id;
 
     context_id = gtk_statusbar_get_context_id(statusbar, "menuhelp");
 
-#if GTK_CHECK_VERSION (2, 8, 0)
-    action = gtk_widget_get_action(widget);
-#else
-    action = g_object_get_data(G_OBJECT(widget), "gtk-action");
-#endif
-    g_return_if_fail(action != NULL);
-
-    g_object_get(action, "tooltip", &tooltip, NULL);
-
+    tooltip = (gchar *)g_object_get_data(G_OBJECT(widget), "tooltip");
     if (tooltip) {
         gtk_statusbar_push(statusbar, context_id, tooltip);
-        g_free(tooltip);
     }
 }
 
 
 static void
-menu_item_deselect_cb(GtkWidget *widget, gpointer data)
+menu_item_deselect_cb(GtkWidget *widget)
 {
     GtkStatusbar *statusbar = GTK_STATUSBAR(X->statusbar);
     guint context_id;
@@ -1315,34 +1071,6 @@
 
 
 static void
-connect_proxy_cb(GtkUIManager *ui_manager, GtkAction *action,
-                 GtkWidget *proxy, gpointer data)
-{
-    if (!GTK_IS_MENU_ITEM(proxy))
-        return;
-
-    g_signal_connect(proxy, "select",
-                     G_CALLBACK(menu_item_select_cb), data);
-    g_signal_connect(proxy, "deselect",
-                     G_CALLBACK (menu_item_deselect_cb), data);
-}
-
-
-static void
-disconnect_proxy_cb(GtkUIManager *ui_manager, GtkAction *action,
-                    GtkWidget *proxy, gpointer data)
-{
-    if (!GTK_IS_MENU_ITEM (proxy))
-        return;
-
-    g_signal_handlers_disconnect_by_func(proxy, 
-                       G_CALLBACK(menu_item_select_cb), data);
-    g_signal_handlers_disconnect_by_func(proxy, 
-                       G_CALLBACK(menu_item_deselect_cb), data);
-}
-
-
-static void
 update_copy_paste_status() {
     GtkTextBuffer *buffer;
     gboolean can_paste;
@@ -1358,15 +1086,26 @@
     gtk_widget_set_sensitive(GTK_WIDGET(X->paste), can_paste);
 }
 
+static void set_menubar_tooltip(gchar *menu_name)
+{
+    GtkWidget *menu;
+    gchar *tooltip;
+    
+    menu = GET_WIDGET(menu_name);
+    tooltip = gtk_widget_get_tooltip_text(menu);
+    g_object_set_data(G_OBJECT(menu), "tooltip", tooltip);
+    gtk_widget_set_tooltip_text(menu, NULL);
+}
 
 static void
 create_kframe()
 {
-    char *hn;
-    GError *error;
-    GtkWidget *event_box, *view_widget;
-    AtkObject *aob;
+    int i;
+    char *hn, name[MAXLINE];
+    GtkWidget *widget;
     PangoFontDescription *font_desc;
+    GtkSizeGroup *size_group;
+    GtkAccelGroup *accel_group;
 
     v->tool_label = NULL;
     if (v->titleline == NULL) {
@@ -1378,215 +1117,247 @@
     } else {
         read_str(&v->tool_label, v->titleline);
     }
+    
+    
+    X->ui = glade_xml_new(UI_FILE, NULL, NULL);
+    if (X->ui == NULL)
+    {
+	GtkWidget *dialog;
+	
+	dialog = gtk_message_dialog_new(NULL, 0,
+					GTK_MESSAGE_ERROR,
+					GTK_BUTTONS_NONE,
+					N_("Error loading user interface"));
+	gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),
+						 N_("The user interace file %s is missing or unable to be loaded. Please check your installation."), UI_FILE);
+	gtk_dialog_add_buttons(GTK_DIALOG(dialog), GTK_STOCK_QUIT, GTK_RESPONSE_ACCEPT, NULL);
+	
+	gtk_dialog_run(GTK_DIALOG(dialog));
+	exit(0);
+    }
 
-    X->kframe = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-    g_object_set_data(G_OBJECT(X->kframe), "kframe", X->kframe);
-    gtk_window_set_resizable(GTK_WINDOW(X->kframe), TRUE);
+    // When connecting up signals, would ideally use autoconnect but not sure how to get the build process
+    // working. See http://library.gnome.org/devel/libglade/unstable and
+    // http://www.jamesh.id.au/software/libglade/ for some information on how to get this to work
+    //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_button_button_press_cb);
+    CONNECT_SIGNAL(menu_button_key_press_cb);
+    CONNECT_SIGNAL(menu_item_select_cb);
+    CONNECT_SIGNAL(menu_item_deselect_cb);
+    CONNECT_SIGNAL(mode_radio_cb);
+    CONNECT_SIGNAL(inv_cb);
+    CONNECT_SIGNAL(hyp_cb);
+    CONNECT_SIGNAL(trig_cb);
+    CONNECT_SIGNAL(base_cb);
+    CONNECT_SIGNAL(disp_cb);
+    CONNECT_SIGNAL(quit_cb);
+    CONNECT_SIGNAL(edit_cb);
+    CONNECT_SIGNAL(copy_cb);
+    CONNECT_SIGNAL(paste_cb);
+    CONNECT_SIGNAL(insert_ascii_cb);
+    CONNECT_SIGNAL(undo_cb);
+    CONNECT_SIGNAL(redo_cb);
+    CONNECT_SIGNAL(help_cb);
+    CONNECT_SIGNAL(about_cb);
+    CONNECT_SIGNAL(show_trailing_zeroes_cb);
+    CONNECT_SIGNAL(show_thousands_separator_cb);
+    CONNECT_SIGNAL(show_bitcalculating_cb);
+    CONNECT_SIGNAL(show_registers_cb);
+    CONNECT_SIGNAL(accuracy_other_cb);
+    CONNECT_SIGNAL(arithmetic_mode_cb);
+    CONNECT_SIGNAL(mouse_button_cb);
+    CONNECT_SIGNAL(display_focus_in_cb);
+    CONNECT_SIGNAL(display_focus_out_cb);
+    /* Detect when populating the right-click menu to enable pasting */
+    CONNECT_SIGNAL(buffer_populate_popup_cb);
+    CONNECT_SIGNAL(shift_left_cb);
+    CONNECT_SIGNAL(shift_right_cb);
+    CONNECT_SIGNAL(accuracy_radio_cb);
+    CONNECT_SIGNAL(menu_cancel_cb);
+    CONNECT_SIGNAL(bit_toggled);
 
-    g_signal_connect(G_OBJECT(X->kframe), "delete_event",
-                       G_CALLBACK(quit_cb), NULL);
+    X->kframe = GET_WIDGET("calc_window");
+    
+    widget = GET_WIDGET("kvbox");
+    gtk_widget_set_direction(widget, GTK_TEXT_DIR_LTR );
 
-    X->kvbox = gtk_vbox_new(FALSE, 0);
-    gtk_container_add(GTK_CONTAINER(X->kframe), X->kvbox);
-    gtk_widget_set_direction(X->kvbox, GTK_TEXT_DIR_LTR );
-    gtk_widget_show(X->kvbox);
+    X->menubar = GET_WIDGET("menubar");
 
-    X->actions = gtk_action_group_new("Actions");
-    gtk_action_group_set_translation_domain (X->actions, NULL);
-    gtk_action_group_add_actions(X->actions, entries, G_N_ELEMENTS(entries), NULL);
-    gtk_action_group_add_toggle_actions(X->actions,
-                                        toggle_entries, 
-                                        G_N_ELEMENTS(toggle_entries),
-                                        NULL);
-    gtk_action_group_add_radio_actions(X->actions,
-                                       acc_radio_entries, 
-                                       G_N_ELEMENTS(acc_radio_entries),
-                                       -1, G_CALLBACK(mb_acc_radio_proc),
-                                       NULL);
-    gtk_action_group_add_radio_actions(X->actions,
-                                       mode_radio_entries, 
-                                       G_N_ELEMENTS(mode_radio_entries),
-                                       M_BASIC, G_CALLBACK(mb_mode_radio_proc),
-                                       NULL);
+    gtk_widget_set_sensitive(GET_WIDGET("show_registers_menu"), (v->modetype != BASIC));
 
-    gtk_action_group_add_radio_actions(X->actions,
-                                       arith_mode_radio_entries,
-                                       G_N_ELEMENTS(arith_mode_radio_entries),
-                                       M_OP_ARITH, 
-                                       G_CALLBACK(mb_arith_mode_radio_proc), 
-                                       NULL);
+    X->scrolledwindow = GET_WIDGET("display_scroll"),
 
-    X->ui = gtk_ui_manager_new();
-    gtk_ui_manager_insert_action_group(X->ui, X->actions, 0);
-    gtk_window_add_accel_group(GTK_WINDOW(X->kframe),
-                               gtk_ui_manager_get_accel_group(X->ui));
 
-    /* Show action help in the statusbar. */
-    g_signal_connect(X->ui, "connect-proxy",
-                     G_CALLBACK(connect_proxy_cb), NULL);
-    g_signal_connect(X->ui, "disconnect-proxy",
-                     G_CALLBACK(disconnect_proxy_cb), NULL);
-
-    if (!gtk_ui_manager_add_ui_from_string(X->ui, ui_info, -1, &error)) {
-        g_message("Building menus failed: %s", error->message);
-        g_error_free(error);
-    }
-
-    X->menubar = gtk_ui_manager_get_widget(X->ui, "/MenuBar");
-    gtk_widget_show(X->menubar);
-    gtk_box_pack_start(GTK_BOX(X->kvbox), X->menubar, FALSE, FALSE, 0);
-
-    g_object_set(gtk_ui_manager_get_action(X->ui, "/MenuBar/ViewMenu/Memory"),
-                 "sensitive", (v->modetype != BASIC), NULL);
-
-    X->scrolledwindow = gtk_scrolled_window_new(NULL, NULL);
-    gtk_widget_show(X->scrolledwindow);
-    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (X->scrolledwindow), 
-				   GTK_POLICY_AUTOMATIC, 
-				   GTK_POLICY_NEVER);
-
-
-    event_box = gtk_event_box_new();
-    X->display_item = gtk_text_view_new();
+    X->display_item = GET_WIDGET("displayitem"),
     gtk_widget_ensure_style(X->display_item);
     font_desc = pango_font_description_copy(X->display_item->style->font_desc);
     pango_font_description_set_size(font_desc, 16 * PANGO_SCALE);
     gtk_widget_modify_font(X->display_item, font_desc);
     pango_font_description_free(font_desc);
-
-    gtk_widget_set_name(X->display_item, "displayitem");
-    g_signal_connect(G_OBJECT(X->display_item), "button_release_event",
-                     G_CALLBACK(mouse_button_cb),
-                     NULL);
-
-    g_signal_connect(G_OBJECT(X->display_item), "focus_in_event",
-                     G_CALLBACK(display_focus_in_cb), NULL);
-
-    g_signal_connect(G_OBJECT(X->display_item), "focus_out_event",
-                     G_CALLBACK(display_focus_out_cb), NULL);
-
-    g_signal_connect(G_OBJECT(X->display_item), "focus_out_event",
-                     G_CALLBACK(display_focus_out_cb), NULL);
-
-    /* Detect when populating the right-click menu to enable pasting */
-    g_signal_connect(G_OBJECT(X->display_item), "populate-popup",
-                     G_CALLBACK(buffer_populate_popup_cb), NULL);
-
-    gtk_text_view_set_justification(GTK_TEXT_VIEW(X->display_item),
-                                    GTK_JUSTIFY_RIGHT);
-    gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(X->display_item), GTK_WRAP_NONE);
-
-    gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(X->display_item), TRUE);
+    gtk_widget_set_name(X->display_item, "displayitem"); // FIXME: Is this necessary?
     gtk_text_view_set_editable(GTK_TEXT_VIEW(X->display_item), 
                                (v->syntax == exprs));
-    aob = gtk_widget_get_accessible(GTK_WIDGET(X->display_item));
-    atk_object_set_description(aob, "Result Region");
 
-    gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(X->display_item), 8);
-    gtk_text_view_set_pixels_below_lines(GTK_TEXT_VIEW(X->display_item), 8);
-    gtk_text_view_set_right_margin(GTK_TEXT_VIEW(X->display_item), 6);
-
-    gtk_container_add(GTK_CONTAINER(X->scrolledwindow), X->display_item);
     atk_object_set_role(gtk_widget_get_accessible(X->display_item), 
                                                   ATK_ROLE_EDITBAR);
     set_display("0.00", FALSE);
 
-    gtk_container_set_border_width(GTK_CONTAINER(X->display_item), 2);
-    gtk_container_add(GTK_CONTAINER(event_box), X->scrolledwindow);
-    gtk_widget_show(X->display_item);
-    gtk_box_pack_start(GTK_BOX(X->kvbox), event_box, FALSE, TRUE, 0);
-    gtk_widget_show(event_box);
-
     gtk_widget_realize(X->kframe);
     gtk_window_set_title(GTK_WINDOW(X->kframe), _(v->tool_label));
     set_win_position();
 
-    X->fin_panel = make_but_panel(X->kvbox, X->fin_buttons,
-                                  f_buttons, FROWS, FCOLS, "fin");
+    X->core_panel = GET_WIDGET("core_panel");
+    X->bas_panel = GET_WIDGET("basic_panel");
+    X->sci_panel = GET_WIDGET("scientific_panel");
+    X->adv_panel = GET_WIDGET("advanced_panel");
+    X->fin_panel = GET_WIDGET("financial_panel");
+    gtk_widget_set_direction(X->fin_panel, GTK_TEXT_DIR_LTR);
+    
+    size_group = gtk_size_group_new(GTK_SIZE_GROUP_BOTH);
+    for(i = 0; i < NBUTTONS; i++)
+    {
+	SNPRINTF(name, MAXLINE, "calc_%s_button", button_widgets[i].widget_name);
+	X->buttons[i] = GET_WIDGET(name);
+	assert(X->buttons[i] != NULL);
+	
+	gtk_size_group_add_widget(size_group, X->buttons[i]);
+	
+	//AtkObject *access_object = gtk_widget_get_accessible(widget);
+	//atk_object_set_name(access_object,
+	//(button.astr == NULL) ? button.hstr : button.astr);
+	
+	g_object_set_data(G_OBJECT(X->buttons[i]), "button", &buttons[button_widgets[i].key]);
+	g_object_set_data(G_OBJECT(X->buttons[i]), "mtype", GINT_TO_POINTER(button_widgets[i].mtype));
+    }
 
-    X->mode_panel = create_mode_panel(X->kvbox);
-    X->bit_panel  = create_bit_panel(X->kvbox);
+    X->mode_panel = GET_WIDGET("mode_panel");
+    X->trig[0] = GET_WIDGET("degrees_radio");
+    X->trig[1] = GET_WIDGET("gradians_radio");
+    X->trig[2] = GET_WIDGET("radians_radio");
+    X->base[0] = GET_WIDGET("binary_radio");
+    X->base[1] = GET_WIDGET("octal_radio");
+    X->base[2] = GET_WIDGET("decimal_radio");
+    X->base[3] = GET_WIDGET("hexadecimal_radio");
+    X->disp[0] = GET_WIDGET("engineering_radio");
+    X->disp[1] = GET_WIDGET("fixed_point_radio");
+    X->disp[2] = GET_WIDGET("scientific_radio");
+    X->inv = GET_WIDGET("inverse_check");
+    X->hyp = GET_WIDGET("hyperbolic_check");
+    for (i = 0; i < 3; i++)
+	g_object_set_data(G_OBJECT(X->trig[i]), "response_id", GINT_TO_POINTER(i));
+    for (i = 0; i < 4; i++)
+	g_object_set_data(G_OBJECT(X->base[i]), "response_id", GINT_TO_POINTER(i));
+    for (i = 0; i < 3; i++)	
+	g_object_set_data(G_OBJECT(X->disp[i]), "response_id", GINT_TO_POINTER(i));
+      
+    X->bit_panel = GET_WIDGET("bit_panel");
+    //gtk_widget_set_direction(table, GTK_TEXT_DIR_LTR);
+    for (i = 0; i < MAXBITS; i++)
+    {
+        SNPRINTF(name, MAXLINE, "bit_label_%d", i);
+	X->bits[i] = GET_WIDGET(name);
+	SNPRINTF(name, MAXLINE, "bit_eventbox_%d", i);
+	g_object_set_data(G_OBJECT(GET_WIDGET(name)), "widget_index", GINT_TO_POINTER(i));
+    }
 
-    X->sci_panel = make_but_panel(X->kvbox, X->sci_buttons,
-                                  s_buttons, SROWS, SCOLS, "sci");
     set_accuracy_tooltip(v->accuracy);
 
-    gtk_widget_show(X->fin_panel);
-    gtk_widget_show(X->mode_panel);
-    gtk_widget_show(X->bit_panel);
-    gtk_widget_show(X->sci_panel);
-
-    X->bas_panel = make_but_panel(X->kvbox, X->bas_buttons,
-                                  &b_buttons[0], BROWS, BCOLS, "bas");
-    gtk_widget_show(X->bas_panel);
-
-    X->adv_panel = make_but_panel(X->kvbox, X->adv_buttons,
-                                  &a_buttons[0], AROWS, ACOLS, "adv");
-    gtk_widget_show(X->adv_panel);
     gtk_window_add_accel_group(GTK_WINDOW(X->kframe), X->kbd_accel);
     grey_buttons(v->base);
     if (v->modetype == BASIC) {
-        gtk_window_set_focus(GTK_WINDOW(X->kframe), GTK_WIDGET(BUT_CLR_BAS));
+        gtk_window_set_focus(GTK_WINDOW(X->kframe), GTK_WIDGET(X->buttons[BUT_CLEAR_BASIC]));
     } else {
-        gtk_window_set_focus(GTK_WINDOW(X->kframe), GTK_WIDGET(BUT_CLR_ADV));
+        gtk_window_set_focus(GTK_WINDOW(X->kframe), GTK_WIDGET(X->buttons[BUT_CLEAR_ADVANCED]));
     }
 
-    X->statusbar = gtk_statusbar_new();
-    gtk_widget_show(X->statusbar);
-    gtk_box_pack_start(GTK_BOX(X->kvbox), X->statusbar, FALSE, FALSE, 0);
-    gtk_statusbar_set_has_resize_grip(GTK_STATUSBAR(X->statusbar), FALSE);
-
-    X->status_image = gtk_image_new_from_stock("", 
-					       GTK_ICON_SIZE_BUTTON);
+    X->statusbar = GET_WIDGET("statusbar");
+    X->status_image = gtk_image_new_from_stock("", GTK_ICON_SIZE_BUTTON);
     gtk_widget_show(X->status_image);
     gtk_box_pack_start(GTK_BOX(X->statusbar), X->status_image, FALSE, TRUE, 0);
-    g_signal_connect(G_OBJECT(X->kframe), "key_press_event",
-                     G_CALLBACK(kframe_key_press_cb), NULL);
-    g_signal_connect(G_OBJECT(X->kframe), "key_release_event",
-                     G_CALLBACK(kframe_key_release_cb), NULL);
 
     switch (v->modetype) {
         case FINANCIAL:
-            view_widget = gtk_ui_manager_get_widget(X->ui, 
-                                              "/MenuBar/ViewMenu/Financial");
+            widget = GET_WIDGET("view_financial_menu");
             break;
 
         case SCIENTIFIC:
-            view_widget = gtk_ui_manager_get_widget(X->ui, 
-                                              "/MenuBar/ViewMenu/Scientific");
+	    widget = GET_WIDGET("view_scientific_menu");
             break;
 
         case ADVANCED:
-            view_widget = gtk_ui_manager_get_widget(X->ui,
-                                              "/MenuBar/ViewMenu/Advanced");
+            widget = GET_WIDGET("view_advanced_menu");
             break;
 
         default:
-            view_widget = gtk_ui_manager_get_widget(X->ui, 
-                                              "/MenuBar/ViewMenu/Basic");
+            widget = GET_WIDGET("view_basic_menu");
             break;
     }
 
-    gtk_widget_set_direction(view_widget, GTK_TEXT_DIR_LTR);
-    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(view_widget), TRUE);
+    gtk_widget_set_direction(widget, GTK_TEXT_DIR_LTR);
+    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget), TRUE);
 
     /* Use loaded Arithmetic Precedence mode setting. */
     if (v->syntax == exprs) {
-        view_widget = gtk_ui_manager_get_widget(X->ui, 
-                                    "/MenuBar/ViewMenu/ArithmeticPrecedence");
-        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(view_widget), TRUE);
+        widget = GET_WIDGET("arithmetic_precedence_menu");
+        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget), TRUE);
     } else {
-        view_widget = gtk_ui_manager_get_widget(X->ui,
-                                    "/MenuBar/ViewMenu/LeftRightPrecedence");
-        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(view_widget), TRUE);
+        widget = GET_WIDGET("ltr_precedence_menu");
+        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget), TRUE);
     }
 
-    X->undo = gtk_ui_manager_get_widget(X->ui, "/MenuBar/EditMenu/Undo");
-    X->redo = gtk_ui_manager_get_widget(X->ui, "/MenuBar/EditMenu/Redo");
-    X->copy = gtk_ui_manager_get_widget(X->ui, "/MenuBar/EditMenu/Copy");
-    X->paste = gtk_ui_manager_get_widget(X->ui, "/MenuBar/EditMenu/Paste");
+    X->undo = GET_WIDGET("undo_menu");
+    X->redo = GET_WIDGET("redo_menu");
+    X->copy = GET_WIDGET("copy_menu");
+    X->paste = GET_WIDGET("paste_menu");
     
+    /* Make menu tooltips displayed in the status bar */
+    set_menubar_tooltip("quit_menu");
+    set_menubar_tooltip("copy_menu");
+    set_menubar_tooltip("paste_menu");
+    set_menubar_tooltip("insert_ascii_menu");
+    set_menubar_tooltip("undo_menu");
+    set_menubar_tooltip("redo_menu");
+    set_menubar_tooltip("view_basic_menu");
+    set_menubar_tooltip("view_advanced_menu");
+    set_menubar_tooltip("view_financial_menu");
+    set_menubar_tooltip("view_scientific_menu");
+    set_menubar_tooltip("show_trailing_zeroes_menu");
+    set_menubar_tooltip("show_thousands_separator_menu");
+    set_menubar_tooltip("show_bitcalculating_menu");
+    set_menubar_tooltip("show_registers_menu");
+    set_menubar_tooltip("ltr_precedence_menu");
+    set_menubar_tooltip("arithmetic_precedence_menu");
+    set_menubar_tooltip("help_menu");
+    set_menubar_tooltip("about_menu");
+
     set_redo_and_undo_button_sensitivity(0, 0);
+    
+    /* Connect up menu callbacks */
+    for(i = 1; i < 16; i++)
+    {
+	SNPRINTF(name, MAXLINE, "shift_left%d_menu", i);
+	g_object_set_data(G_OBJECT(GET_WIDGET(name)), "shiftcount", GINT_TO_POINTER(i));
+	SNPRINTF(name, MAXLINE, "shift_right%d_menu", i);
+	g_object_set_data(G_OBJECT(GET_WIDGET(name)), "shiftcount", GINT_TO_POINTER(i));
+    }
+    g_object_set_data(G_OBJECT(GET_WIDGET("view_basic_menu")), "calcmode", GINT_TO_POINTER(BASIC));
+    g_object_set_data(G_OBJECT(GET_WIDGET("view_advanced_menu")), "calcmode", GINT_TO_POINTER(ADVANCED));
+    g_object_set_data(G_OBJECT(GET_WIDGET("view_financial_menu")), "calcmode", GINT_TO_POINTER(FINANCIAL));
+    g_object_set_data(G_OBJECT(GET_WIDGET("view_scientific_menu")), "calcmode", GINT_TO_POINTER(SCIENTIFIC));
+
+    /* Make shortcuts for accuracy menus */
+    accel_group = gtk_accel_group_new();
+    gtk_window_add_accel_group(GTK_WINDOW(X->kframe), accel_group);
+    for(i = 0; i < 10; i++)
+    {
+	SNPRINTF(name, MAXLINE, "acc_item%d", i);
+	widget = GET_WIDGET(name);
+	g_object_set_data(G_OBJECT(widget), "index", GINT_TO_POINTER(i));
+	gtk_widget_add_accelerator(widget, "activate", accel_group, GDK_0 + i, GDK_CONTROL_MASK, 0);
+    }    
 }
 
 static void
@@ -1608,51 +1379,6 @@
 }
 
 
-static GtkWidget *
-create_mode_panel(GtkWidget *main_vbox)
-{
-    GladeXML *xml;
-    GtkWidget *vbox;
-    
-    xml = glade_xml_new(PACKAGE_GLADE_DIR "/mode_panel.glade", "mode_panel", NULL);
-    
-    vbox = glade_xml_get_widget(xml, "mode_panel");
-    X->trig[0] = glade_xml_get_widget(xml, "degrees_radio");
-    X->trig[1] = glade_xml_get_widget(xml, "gradians_radio");
-    X->trig[2] = glade_xml_get_widget(xml, "radians_radio");
-    X->base[0] = glade_xml_get_widget(xml, "binary_radio");
-    X->base[1] = glade_xml_get_widget(xml, "octal_radio");
-    X->base[2] = glade_xml_get_widget(xml, "decimal_radio");
-    X->base[3] = glade_xml_get_widget(xml, "hexadecimal_radio");
-    X->disp[0] = glade_xml_get_widget(xml, "engineering_radio");
-    X->disp[1] = glade_xml_get_widget(xml, "fixed_point_radio");
-    X->disp[2] = glade_xml_get_widget(xml, "scientific_radio");
-    X->inv = glade_xml_get_widget(xml, "inverse_check");
-    X->hyp = glade_xml_get_widget(xml, "hyperbolic_check");
-       
-    // Connect up signals, would ideally use autoconnect but not sure how to get the build process
-    // working. See http://www.jamesh.id.au/software/libglade/ for details on how to get this to
-    // work
-    //glade_xml_signal_autoconnect(xml);
-    g_signal_connect(G_OBJECT(X->trig[0]), "toggled", G_CALLBACK(trig_cb), NULL);
-    g_signal_connect(G_OBJECT(X->trig[1]), "toggled", G_CALLBACK(trig_cb), NULL);
-    g_signal_connect(G_OBJECT(X->trig[2]), "toggled", G_CALLBACK(trig_cb), NULL);
-    g_signal_connect(G_OBJECT(X->base[0]), "toggled", G_CALLBACK(base_cb), NULL);
-    g_signal_connect(G_OBJECT(X->base[1]), "toggled", G_CALLBACK(base_cb), NULL);
-    g_signal_connect(G_OBJECT(X->base[2]), "toggled", G_CALLBACK(base_cb), NULL);
-    g_signal_connect(G_OBJECT(X->base[3]), "toggled", G_CALLBACK(base_cb), NULL);
-    g_signal_connect(G_OBJECT(X->disp[0]), "toggled", G_CALLBACK(disp_cb), NULL);
-    g_signal_connect(G_OBJECT(X->disp[1]), "toggled", G_CALLBACK(disp_cb), NULL);
-    g_signal_connect(G_OBJECT(X->disp[2]), "toggled", G_CALLBACK(disp_cb), NULL);
-    g_signal_connect(G_OBJECT(X->inv), "toggled", G_CALLBACK(inv_cb), NULL);
-    g_signal_connect(G_OBJECT(X->hyp), "toggled", G_CALLBACK(hyp_cb), NULL);
-    
-    gtk_box_pack_start(GTK_BOX(main_vbox), vbox, FALSE, TRUE, 0);
-    
-    return vbox;
-}
-
-
 /*ARGSUSED*/
 static void
 mem_response(GtkDialog *dialog, int response, gpointer user_data)
@@ -1830,7 +1556,7 @@
 
 /*ARGSUSED*/
 void
-disp_cb(GtkToggleButton *button, gpointer user_data)
+disp_cb(GtkToggleButton *button)
 {
     do_numtype((enum num_type) g_object_get_data(G_OBJECT(button), "response_id"));
 }
@@ -2036,36 +1762,22 @@
 void
 grey_buttons(enum base_type base)
 {
-    if (v->modetype == BASIC) {
-        set_button_state(BUT_0_BAS, (0 < basevals[(int) base]));
-        set_button_state(BUT_1_BAS, (1 < basevals[(int) base]));
-        set_button_state(BUT_2_BAS, (2 < basevals[(int) base]));
-        set_button_state(BUT_3_BAS, (3 < basevals[(int) base]));
-        set_button_state(BUT_4_BAS, (4 < basevals[(int) base]));
-        set_button_state(BUT_5_BAS, (5 < basevals[(int) base]));
-        set_button_state(BUT_6_BAS, (6 < basevals[(int) base]));
-        set_button_state(BUT_7_BAS, (7 < basevals[(int) base]));
-        set_button_state(BUT_8_BAS, (8 < basevals[(int) base]));
-        set_button_state(BUT_9_BAS, (9 < basevals[(int) base]));
-    } else {
-        set_button_state(BUT_0_ADV, (0 < basevals[(int) base]));
-        set_button_state(BUT_1_ADV, (1 < basevals[(int) base]));
-        set_button_state(BUT_2_ADV, (2 < basevals[(int) base]));
-        set_button_state(BUT_3_ADV, (3 < basevals[(int) base]));
-        set_button_state(BUT_4_ADV, (4 < basevals[(int) base]));
-        set_button_state(BUT_5_ADV, (5 < basevals[(int) base]));
-        set_button_state(BUT_6_ADV, (6 < basevals[(int) base]));
-        set_button_state(BUT_7_ADV, (7 < basevals[(int) base]));
-        set_button_state(BUT_8_ADV, (8 < basevals[(int) base]));
-        set_button_state(BUT_9_ADV, (9 < basevals[(int) base]));
-    }
-
-    set_button_state(BUT_A, (10 < basevals[(int) base]));
-    set_button_state(BUT_B, (11 < basevals[(int) base]));
-    set_button_state(BUT_C, (12 < basevals[(int) base]));
-    set_button_state(BUT_D, (13 < basevals[(int) base]));
-    set_button_state(BUT_E, (14 < basevals[(int) base]));
-    set_button_state(BUT_F, (15 < basevals[(int) base]));
+    set_button_state(X->buttons[BUT_0], (0 < basevals[(int) base]));
+    set_button_state(X->buttons[BUT_1], (1 < basevals[(int) base]));
+    set_button_state(X->buttons[BUT_2], (2 < basevals[(int) base]));
+    set_button_state(X->buttons[BUT_3], (3 < basevals[(int) base]));
+    set_button_state(X->buttons[BUT_4], (4 < basevals[(int) base]));
+    set_button_state(X->buttons[BUT_5], (5 < basevals[(int) base]));
+    set_button_state(X->buttons[BUT_6], (6 < basevals[(int) base]));
+    set_button_state(X->buttons[BUT_7], (7 < basevals[(int) base]));
+    set_button_state(X->buttons[BUT_8], (8 < basevals[(int) base]));
+    set_button_state(X->buttons[BUT_9], (9 < basevals[(int) base]));
+    set_button_state(X->buttons[BUT_A], (10 < basevals[(int) base]));
+    set_button_state(X->buttons[BUT_B], (11 < basevals[(int) base]));
+    set_button_state(X->buttons[BUT_C], (12 < basevals[(int) base]));
+    set_button_state(X->buttons[BUT_D], (13 < basevals[(int) base]));
+    set_button_state(X->buttons[BUT_E], (14 < basevals[(int) base]));
+    set_button_state(X->buttons[BUT_F], (15 < basevals[(int) base]));
 }
 
 
@@ -2078,15 +1790,15 @@
 
 
 static void 
-popup_paste_cb(GtkMenuItem *menuitem, gpointer user_data)
+popup_paste_cb(GtkMenuItem *menuitem)
 {
     handle_selection();
 }
 
 
 static void
-for_each_menu(GtkWidget *widget, gpointer data) {
-
+for_each_menu(GtkWidget *widget, gpointer data)
+{
     /* Find the "Paste" entry and activate it (see bug #317786). */
     if (strcmp(G_OBJECT_TYPE_NAME(widget), "GtkImageMenuItem") == 0) {  
         GtkWidget *label = gtk_bin_get_child(GTK_BIN(widget));
@@ -2104,23 +1816,23 @@
 
 
 static void
-buffer_populate_popup_cb(GtkTextView *textview, GtkMenu *menu, 
-                         gpointer user_data)
+buffer_populate_popup_cb(GtkTextView *textview, GtkMenu *menu)
 {
     gtk_container_foreach(GTK_CONTAINER(menu), for_each_menu, NULL);
 }
 
 
 static void 
-help_cb()
+help_cb(GtkWidget *widget)
 {
-    help_display();
+    if (v->started)
+	help_display();
 }
 
 
 /*ARGSUSED*/
 void
-hyp_cb(GtkToggleButton *button, gpointer user_data)
+hyp_cb(GtkToggleButton *button)
 {
     v->hyperbolic = !v->hyperbolic;
 }
@@ -2128,7 +1840,7 @@
 
 /*ARGSUSED*/
 void
-inv_cb(GtkToggleButton *button, gpointer user_data)
+inv_cb(GtkToggleButton *button)
 {
     v->inverse = !v->inverse;
 }
@@ -2148,31 +1860,6 @@
     return(strcmp(outbuf, X->lnp) == 0);
 }
 
-
-static int
-check_vals(int n, int keyval, int state,
-           struct button buttons[], GtkWidget *gtk_buttons[])
-{
-    int i, j;
-
-    state = state & (GDK_CONTROL_MASK | GDK_MOD1_MASK);
-    for (i = 0; i < n; i++) {
-        j = 0;
-        while (buttons[i].value[j] != 0) {
-            if (buttons[i].value[j] == keyval) {
-                if ((buttons[i].mods[j] & ~GDK_SHIFT_MASK) == state) {
-                    button_proc(GTK_BUTTON(gtk_buttons[i]), NULL);
-                    return(TRUE);
-                }
-            }
-            j++;
-        }
-    }
-
-    return(FALSE);
-}
-
-
 void
 get_expr_from_display()
 {
@@ -2225,7 +1912,7 @@
 
 
 static gboolean
-display_focus_out_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
+display_focus_out_cb(GtkWidget *widget, GdkEventKey *event)
 {
     if (v->syntax == exprs) {
         get_expr_from_display();
@@ -2236,7 +1923,7 @@
 
 
 static gboolean
-display_focus_in_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
+display_focus_in_cb(GtkWidget *widget, GdkEventKey *event)
 {
     v->ghost_zero = 0;
 
@@ -2245,7 +1932,7 @@
 
 
 static gboolean
-kframe_key_release_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
+kframe_key_release_cb(GtkWidget *widget, GdkEventKey *event)
 {
     if (gtk_widget_is_focus(X->display_item) && (v->syntax == exprs)) {
         if ((event->keyval == GDK_equal)
@@ -2263,9 +1950,11 @@
 
 /*ARGSUSED*/
 static gboolean
-kframe_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
+kframe_key_press_cb(GtkWidget *widget, GdkEventKey *event)
 {
-    int retval = FALSE;
+    int i, j, state;
+    struct button *button;
+    gboolean visible;
 
     if (gtk_widget_is_focus(X->display_item) && (v->syntax == exprs)) {
 
@@ -2284,37 +1973,45 @@
         event->keyval = GDK_KP_Decimal;
     }
 
-    switch (v->modetype) {
-        case BASIC:
-            retval = check_vals(B_NOBUTTONS, event->keyval, event->state,
-                                b_buttons, X->bas_buttons);
-            break;
+    state = event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK);
+    for (i = 0; i < NBUTTONS; i++) {
+	GtkWidget *parent = gtk_widget_get_parent(X->buttons[i]);
+	visible = parent == X->core_panel;
+	switch (X->mode)
+	{
+	case BASIC:
+	    visible |= parent == X->bas_panel;
+	    break;
 
-        case ADVANCED:
-            retval = check_vals(A_NOBUTTONS, event->keyval, event->state,
-                                a_buttons, X->adv_buttons);
-            break;
+	case ADVANCED:
+	    visible |= parent == X->adv_panel;
+	    break;
 
-        case FINANCIAL:
-            retval = check_vals(A_NOBUTTONS, event->keyval, event->state,
-            			a_buttons, X->adv_buttons);
-            if (retval != TRUE) {
-                retval = check_vals(F_NOBUTTONS, event->keyval, event->state,
-                                    f_buttons, X->fin_buttons);
-            }
-            break;
+	case FINANCIAL:
+	    visible |= (parent == X->adv_panel || parent == X->fin_panel);
+	    break;
 
-        case SCIENTIFIC:
-            retval = check_vals(A_NOBUTTONS, event->keyval, event->state,
-                                a_buttons, X->adv_buttons);
-            if (retval != TRUE) {
-                retval = check_vals(S_NOBUTTONS, event->keyval, event->state,
-                                    s_buttons, X->sci_buttons);
+	case SCIENTIFIC:
+	    visible |= (parent == X->adv_panel || parent == X->sci_panel);
+	    break;
+	}
+	if (!visible)
+	    continue;
+
+        j = 0;
+	button = &buttons[button_widgets[i].key];
+        while (button->value[j] != 0) {
+            if (button->value[j] == event->keyval) {
+                if ((button->mods[j] & ~GDK_SHIFT_MASK) == state) {
+                    button_cb(X->buttons[i]);
+                    return(TRUE);
+                }
             }
-            break;
+            j++;
+        }
     }
-
-    return retval;
+    
+    return(FALSE);
 }
 
 void
@@ -2331,16 +2028,20 @@
 void
 make_frames()
 {
-    struct button *n;
-
     X->clipboard_atom = gdk_atom_intern("CLIPBOARD", FALSE);
     X->primary_atom = gdk_atom_intern("PRIMARY", FALSE);
     create_kframe();                     /* Create main gcalctool window. */
     create_rframe();                     /* Create memory register window. */
     set_mode(v->modetype);
 
-    n = (struct button *) g_object_get_data(G_OBJECT(BUT_ACC), "button");
-    (void) create_menu(n->mtype, n);
+    X->menus[M_ACC] = GET_WIDGET("accuracy_popup");
+    X->mrec[M_ACC] = &buttons[KEY_ACCURACY_MENU];
+    set_accuracy_menu_item(v->accuracy);
+    X->menus[M_LSHF] = GET_WIDGET("left_shift_popup");
+    X->mrec[M_LSHF] = &buttons[KEY_LEFT_SHIFT];
+    X->menus[M_RSHF] = GET_WIDGET("right_shift_popup");
+    X->mrec[M_RSHF] = &buttons[KEY_RIGHT_SHIFT];
+    
     set_accuracy_toggle(v->accuracy);
     set_show_tsep_toggle(v->show_tsep);
     set_show_zeroes_toggle(v->show_zeroes);
@@ -2385,7 +2086,7 @@
 
 
 static gboolean
-mouse_button_cb(GtkWidget *widget, GdkEventButton *event, gpointer user_data)
+mouse_button_cb(GtkWidget *widget, GdkEventButton *event)
 {
     if (event->button == 2) {
         gtk_clipboard_request_text(gtk_clipboard_get(X->primary_atom),
@@ -2395,25 +2096,15 @@
     return(FALSE);
 }
 
-
-static void
-set_accessible_name(GtkWidget *widget, struct button button)
-{
-    AtkObject *access_object = gtk_widget_get_accessible(widget);
-
-    atk_object_set_name(access_object,
-                        (button.astr == NULL) ? button.hstr : button.astr);
-}
-
-
 void
 set_accuracy_menu_item(int accuracy)
 {
-    char label[MAXLINE];
+    GtkWidget *label;
+    char text[MAXLINE];
 
-    SNPRINTF(label, MAXLINE, _("Other (%d) ..."), accuracy);
-    g_object_set(gtk_ui_manager_get_action(X->ui, "/AccMenu/SPOther"),
-                 "label", label, NULL);
+    SNPRINTF(text, MAXLINE, _("Other (%d) ..."), accuracy);
+    label = gtk_bin_get_child(GTK_BIN(GET_WIDGET("acc_item_other")));
+    gtk_label_set_text(GTK_LABEL(label), text);
 }
 
 
@@ -2433,7 +2124,7 @@
                                        accuracy),
                               accuracy);
     tooltip = g_strdup_printf ("%s %s [a]", desc, current);
-    gtk_widget_set_tooltip_text (BUT_ACC, tooltip);
+    gtk_widget_set_tooltip_text (X->buttons[BUT_ACCURACY_MENU], tooltip);
     g_free(desc);
     g_free(current);
     g_free(tooltip);
@@ -2466,67 +2157,7 @@
     gtk_window_move(GTK_WINDOW(X->kframe), x, y);
 }
 
-static GtkWidget *
-make_but_panel(GtkWidget *vbox, GtkWidget **Gtk_buttons,
-               struct button buttons[], int rows, int cols, char *tag)
-{
-    char *label, name[MAXLINE];
-    int i, j, n;
-    GtkWidget *l;
-    GtkWidget *table = gtk_table_new(rows, cols, TRUE);
 
-    gtk_widget_set_direction(table, GTK_TEXT_DIR_LTR);
-
-    gtk_table_set_row_spacings(GTK_TABLE(table), 6);
-    gtk_table_set_col_spacings(GTK_TABLE(table), 6);
-    gtk_container_set_border_width(GTK_CONTAINER(table), 6);
-
-    gtk_widget_show(table);
-    gtk_box_pack_start(GTK_BOX(vbox), table, TRUE, TRUE, 0);
-
-    for (i = 0; i < cols; i++) {
-        for (j = 0; j < rows; j++) {
-            n = j*cols + i;
-            label = _(buttons[n].str);
-            if (buttons[n].mtype == M_NONE) {
-                l = gtk_label_new(label);
-                gtk_widget_show(l);
-                gtk_label_set_use_markup(GTK_LABEL(l), TRUE);
-                Gtk_buttons[n] = gtk_button_new();
-                gtk_container_add(GTK_CONTAINER(Gtk_buttons[n]), l);
-            } else {
-                Gtk_buttons[n] = make_menu_button(label, j*cols + i);
-            }
-            set_accessible_name(Gtk_buttons[n], buttons[n]);
-            if (buttons[n].mtype == M_NONE) {
-                g_signal_connect(G_OBJECT(Gtk_buttons[n]), "clicked",
-                             G_CALLBACK(button_proc), GINT_TO_POINTER(j*cols + i));
-            }
-            SNPRINTF(name, MAXLINE, "%s_button%1d", tag, n);
-            gtk_widget_set_name(Gtk_buttons[n], name);
-            if (buttons[n].hstr != NULL) {
-		gtk_widget_set_tooltip_text (Gtk_buttons[n],_(buttons[n].hstr));
-            }
-            g_object_set_data(G_OBJECT(Gtk_buttons[n]),
-                              "button", &buttons[n]);
-
-            if (strcmp(buttons[n].str, "    ")) {
-                gtk_widget_show(Gtk_buttons[n]);
-            } else {
-                gtk_widget_hide(Gtk_buttons[n]);
-            }
-            gtk_table_attach(GTK_TABLE(table), Gtk_buttons[n],
-                     i, i+1, j, j+1,
-                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL | GTK_SHRINK),
-                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL | GTK_SHRINK),
-                     0, 0);
-        }
-    }
-
-    return(table);
-}
-
-
 void
 make_reg(int n, char *str)
 {
@@ -2537,7 +2168,7 @@
 
 /*ARGSUSED*/
 void
-menu_cancel_cb(GtkMenuShell *menushell, gpointer user_data)
+menu_cancel_cb(GtkWidget *widget)
 {
     v->pending = 0;
 }
@@ -2564,17 +2195,6 @@
             break;
     }
 
-    if (X->menus[m] == NULL) {
-        if (mtype == M_ACC) {
-            X->menus[m] = gtk_ui_manager_get_widget(X->ui, "/AccMenu");
-            set_accuracy_menu_item(v->accuracy);
-        } else if (mtype == M_LSHF) {
-            X->menus[m] = gtk_ui_manager_get_widget(X->ui, "/LeftShiftMenu");
-        } else if (mtype == M_RSHF) {
-            X->menus[m] = gtk_ui_manager_get_widget(X->ui, "/RightShiftMenu");
-        }
-    }
-
     gtk_container_set_border_width(GTK_CONTAINER(X->menus[m]), 1);
     X->mrec[m] = n;
 
@@ -2591,7 +2211,7 @@
 static void
 menu_proc_cb(GtkMenuItem *mi, gpointer user_data)
 {
-    int mtype = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(mi), "mtype"));
+    enum menu_type mtype = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(mi), "mtype"));
 
     v->current->value[0] = '0' + GPOINTER_TO_INT(user_data);
     
@@ -2601,14 +2221,16 @@
 
 /*ARGSUSED*/
 static void 
-menu_button_button_press_cb(GtkButton *widget, gpointer data)
+menu_button_button_press_cb(GtkButton *widget)
 {
     struct button *n;
     GtkWidget *menu;
     GdkEventButton *event = (GdkEventButton *) gtk_get_current_event();
+    enum menu_type mtype;
 
     n = (struct button *) g_object_get_data(G_OBJECT(widget), "button");
-    menu = create_menu(n->mtype, n);
+    mtype = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "mtype"));
+    menu = create_menu(mtype, n);
 
 /* If gcalctool is being driven by gok, the on-screen keyboard 
  * assistive technology, it's possible that the event returned by 
@@ -2629,8 +2251,7 @@
 
 /*ARGSUSED*/
 static gboolean
-menu_button_key_press_cb(GtkWidget *widget, 
-                         GdkEventKey *event, gpointer data)
+menu_button_key_press_cb(GtkWidget *widget, GdkEventKey *event)
 {
     if (event->keyval == GDK_space) {
         show_menu_for_button(widget, event);
@@ -2653,37 +2274,99 @@
     *y = loc->y;
 }
 
+/* Handle menu bar menu selection. */
 
-static GtkWidget *
-make_menu_button(gchar *label_text, int n)
+static void edit_cb(GtkWidget *widget)
 {
-    GtkWidget *arrow, *button, *hbox, *label;
- 
-    arrow = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_NONE);
-    label = gtk_label_new(label_text);
-    hbox = gtk_hbox_new(FALSE, 3);
-    gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
-    gtk_box_pack_start(GTK_BOX(hbox), arrow, FALSE, FALSE, 0);
- 
-    button = gtk_button_new();
-    gtk_container_add(GTK_CONTAINER(button), hbox);
- 
-    gtk_widget_set_events(button, GDK_BUTTON_PRESS_MASK);
-    g_signal_connect(G_OBJECT(button), "clicked",
-                     G_CALLBACK(menu_button_button_press_cb),
-                     GINT_TO_POINTER(n));
-    g_signal_connect(G_OBJECT(button), "key-press-event",
-                     G_CALLBACK(menu_button_key_press_cb),
-                     GINT_TO_POINTER(n));
- 
-    gtk_widget_show_all(button);
- 
-    return(button);
+    if (v->started)
+        update_copy_paste_status();
 }
 
+static void copy_cb(GtkWidget *widget)
+{
+    if (v->started)
+        get_display();
+}
+
+static void paste_cb(GtkWidget *widget)
+{
+    if (v->started)
+        handle_selection();
+}
+
+static void undo_cb(GtkWidget *widget)
+{
+    if (v->started)
+    {
+	perform_undo();
+	refresh_display();
+    }
+}
+	
+static void redo_cb(GtkWidget *widget)
+{
+    if (v->started)
+    {
+	perform_redo();
+	refresh_display();
+    }
+}
+
+static void insert_ascii_cb(GtkWidget *widget)
+{
+    if (v->started)
+        show_ascii_frame();
+}
+
+static void shift_left_cb(GtkWidget *widget)
+{
+    int choice = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "shiftcount"));
+    
+    if (v->started)
+    {
+	choice += (choice < 10) ? '0' : 'A' - 10;
+	handle_menu_selection(X->mrec[(int) M_LSHF], choice);
+    }
+}
+
+static void shift_right_cb(GtkWidget *widget)
+{
+    int choice = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "shiftcount"));
+    
+    if (v->started)
+    {
+        choice += (choice < 10) ? '0' : 'A' - 10;
+        handle_menu_selection(X->mrec[(int) M_RSHF], choice);
+    }
+}
+
+static void show_bitcalculating_cb(GtkWidget *widget)
+{
+    if (v->started)
+    {
+	  v->bitcalculating_mode = v->bitcalculating_mode ^ 1;
+	  set_mode(v->modetype);
+	  put_resource(R_BITCALC, Rcstr[v->bitcalculating_mode]);
+    }
+}
+
+static void show_registers_cb(GtkWidget *widget)
+{
+    if (v->started)
+    {
+	v->rstate = !v->rstate;
+        do_memory();
+    }
+}
+
+/*ARGSUSED*/
 static void
-toggle_expressions()
+arithmetic_mode_cb(GtkWidget *widget)
 {
+    if (!v->started) {
+        return;
+    }
+
     /* TODO: Always do clear things when mode is changed. */
 
     v->syntax = v->syntax ^ 1;
@@ -2716,73 +2399,10 @@
 }
 
 
-/* Handle menu bar menu selection. */
-
-static void
-mb_proc(GtkAction *action)
-{
-    const gchar *name = gtk_action_get_name(action);
-    int choice;
-
-    if (!v->started) {
-        return;
-    }
-
-    if (EQUAL(name, "Quit")) {
-        save_win_position();
-        exit(0);
-    } else if (EQUAL(name, "EditMenu")) {
-        update_copy_paste_status();
-    } else if (EQUAL(name, "Copy")) {
-        get_display();
-    } else if (EQUAL(name, "Paste")) {
-        handle_selection();
-    } else if (EQUAL(name, "Undo")) {
-	perform_undo();
-	refresh_display();
-    } else if (EQUAL(name, "Redo")) {
-	perform_redo();
-	refresh_display();
-    } else if (EQUAL(name, "Insert")) {
-        show_ascii_frame();
-    } else if (EQUAL(name, "Memory")) {
-        v->rstate = !v->rstate;
-        do_memory();
-    } else if (EQUAL(name, "Contents")) {
-        help_cb();
-    } else if (!strncmp(name, "LSPlaces", 8)) {
-        SSCANF(name,"LSPlaces%d", &choice);
-        choice += (choice < 10) ? '0' : 'A' - 10;
-        handle_menu_selection(X->mrec[(int) M_LSHF], choice);
-    } else if (!strncmp(name, "RSPlaces", 8)) {
-        SSCANF(name,"RSPlaces%d", &choice);
-        choice += (choice < 10) ? '0' : 'A' - 10;
-        handle_menu_selection(X->mrec[(int) M_RSHF], choice);
-    } else if (EQUAL(name, "Bitcalculating")) {
-	  v->bitcalculating_mode = v->bitcalculating_mode ^ 1;
-	  set_mode(v->modetype);
-	  put_resource(R_BITCALC, Rcstr[v->bitcalculating_mode]);
-    } 
-}
-
-
 /*ARGSUSED*/
 static void
-mb_arith_mode_radio_proc(GtkAction *action, GtkRadioAction *current)
+mode_radio_cb(GtkWidget *radio)
 {
-    if (!v->started) {
-        return;
-    }
-
-    toggle_expressions();
-}
-
-
-/*ARGSUSED*/
-static void 
-mb_mode_radio_proc(GtkAction *action, GtkRadioAction *current)
-{
-    enum mode_type new_modetype;
     int immediate = 0;    /* Set if we can change mode without warning user. */
     int complete = 0;     /* Set if the user has completed a calculation. */
 
@@ -2790,18 +2410,7 @@
 	return;
     }
 
-    X->mode_name = gtk_action_get_name(GTK_ACTION(current));
-    if (EQUAL(X->mode_name, "Basic")) {
-        new_modetype = BASIC;
-    } else if (EQUAL(X->mode_name, "Advanced")) {
-        new_modetype = ADVANCED;
-    } else if (EQUAL(X->mode_name, "Financial")) {
-        new_modetype = FINANCIAL;
-    } else if (EQUAL(X->mode_name, "Scientific")) {
-        new_modetype = SCIENTIFIC;
-    } else {
-        assert(0);   /* Oops, we shouldn't be here. */
-    }
+    X->mode = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(radio), "calcmode"));
 
 /* If the user has completed a calculation and we are going to a
  * new mode that is "compatible" with this one, then just change
@@ -2820,7 +2429,7 @@
     switch (v->syntax) {
         case npa:
             if (v->old_cal_value == '?' ||
-                IS_KEY(v->old_cal_value, KEY_EQ.value[0])) {
+                IS_KEY(v->old_cal_value, buttons[KEY_CALCULATE].value[0])) {
                 complete = 1;    /* Calculation is complete. */
             }
             break;
@@ -2842,14 +2451,14 @@
     }
 
     if (immediate) {
-        v->modetype = new_modetype;
+        v->modetype = X->mode;
         reset_mode_display(FALSE);
 
     } else {
         if (v->warn_change_mode) {
             show_change_mode_dialog();
         } else {
-            change_mode(X->mode_name);
+            change_mode(X->mode);
         }
     }
 }
@@ -2857,32 +2466,36 @@
 
 /*ARGSUSED*/
 static void
-mb_acc_radio_proc(GtkAction *action, GtkRadioAction *current)
+accuracy_radio_cb(GtkWidget *widget)
 {
-    const gchar *name = gtk_action_get_name(GTK_ACTION(current));
+    char c;
+    
+    c = '0' + GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "index"));
+    
+    if (v->started && gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))
+        handle_menu_selection(X->mrec[(int) M_ACC], c);
+}
 
-    if (!v->started) {
-	return;
-    }
-
-    if (EQUAL(name, "SPOther")) {
-        show_precision_frame();
-    } else {
-        handle_menu_selection(X->mrec[(int) M_ACC], name[2]);
-    }
+/*ARGSUSED*/
+static void
+accuracy_other_cb(GtkWidget *widget)
+{
+    if (v->started)    
+	show_precision_frame();
 }
 
-
 /*ARGSUSED*/
 static void
-mstz_proc(GtkAction *action)
+show_trailing_zeroes_cb(GtkWidget *widget)
 {
     if (!v->doing_mi) {
-	v->show_zeroes = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
+	v->show_zeroes = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget));
 
 	syntaxdep_show_display();
 	put_resource(R_ZEROES, set_bool(v->show_zeroes == TRUE));
 	make_registers();
+	
+	set_show_zeroes_toggle(v->show_zeroes);
     }
 
     v->pending = 0;
@@ -2950,7 +2563,7 @@
 
 /*ARGSUSED*/
 static void
-quit_cb(GtkWidget *widget, gpointer user_data)
+quit_cb(GtkWidget *widget)
 {
     save_win_position();
     gtk_main_quit();
@@ -2960,16 +2573,16 @@
 static void
 reset_mode_display(int toclear)
 {
-    GtkAction *action;
-
+    GtkWidget *radio;
+    
 /* If the new mode is BASIC, then we need to dismiss the memory register
  * window (if it's being displayed), as there is no way to interact with it.
  */
 
-    action = gtk_action_group_get_action(X->actions, "Trailing");
-    gtk_action_set_sensitive(action, v->modetype == SCIENTIFIC);
-    action = gtk_action_group_get_action(X->actions, "Memory");
-    gtk_action_set_sensitive(action, v->modetype != BASIC);
+    radio = GET_WIDGET("show_trailing_zeroes_menu");
+    gtk_widget_set_sensitive(radio, v->modetype == SCIENTIFIC);
+    radio = GET_WIDGET("show_registers_menu");
+    gtk_widget_set_sensitive(radio, v->modetype != BASIC);
 
     if (v->modetype == BASIC) {
         gtk_dialog_response(GTK_DIALOG(X->rframe), GTK_RESPONSE_CLOSE);
@@ -3028,7 +2641,7 @@
 
 /*ARGSUSED*/
 static void
-spframe_cancel_cb(GtkButton *button, gpointer user_data)
+spframe_cancel_cb(GtkButton *button)
 {
     gtk_widget_hide(X->spframe);
 }
@@ -3036,7 +2649,7 @@
 
 /*ARGSUSED*/
 static gboolean
-spframe_key_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
+spframe_key_cb(GtkWidget *widget, GdkEventKey *event)
 {
     if (event->keyval == GDK_minus) {
         update_statusbar(_("Accuracy value out of range"),
@@ -3050,7 +2663,7 @@
 
 /*ARGSUSED*/
 static void
-spframe_ok_cb(GtkButton *button, gpointer user_data)
+spframe_ok_cb(GtkButton *button)
 {
     char intval[MAXLINE];
     int val = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(X->spframe_val));
@@ -3085,8 +2698,8 @@
     GtkWidget *acc;
 
     if (val >= 0 && val <= 9) {
-        SNPRINTF(name, MAXLINE, "/AccMenu/SP%c", val + '0');
-        acc = gtk_ui_manager_get_widget(X->ui, name);
+        SNPRINTF(name, MAXLINE, "acc_item%d", val);
+        acc = GET_WIDGET(name);
         gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(acc), TRUE);
     }
 }
@@ -3168,7 +2781,7 @@
 		mpcmim(MP1, MP2);
 		if (mpeq(MP1, MP2)) {
 		  char *bit_str, label[3], tmp[MAXLINE];
-		  int toclear = (key_equal(v->current, KEY_CE)) ? TRUE : FALSE;
+		  int toclear = (key_equal(v->current, buttons[KEY_CLEAR_ENTRY])) ? TRUE : FALSE;
 		  
 		  bit_str = make_fixed(MP1, tmp, BIN, MAXLINE, toclear);
 		  bit_str_len = strlen(bit_str);
@@ -3287,11 +2900,6 @@
     g_free(text);
 }
 
-#define SET_MENUBAR_ITEM_STATE(i, state) \
-          g_object_set(gtk_ui_manager_get_action(X->ui, i),  \
-			"sensitive", state, NULL);
-
-
 /* When an error condition occurs:
  *
  * - make insensitive all buttons except Clr.
@@ -3311,45 +2919,33 @@
 
     v->error = error;
 
-    for (i = 0; i < (BROWS * BCOLS); i++) {
-        set_button_state(X->bas_buttons[i], !v->error);
+    for (i = 0; i < NBUTTONS; i++) {
+        set_button_state(X->buttons[i], !v->error);
     }
-    /* Clr ("Basic") button always sensitive. */
-    set_button_state(BUT_CLR_BAS, TRUE);
+    /* Clr button always sensitive. */
+    set_button_state(X->buttons[BUT_CLEAR_BASIC], TRUE);
+    set_button_state(X->buttons[BUT_CLEAR_ADVANCED], TRUE);
 
-    for (i = 0; i < (AROWS * ACOLS); i++) {
-        set_button_state(X->adv_buttons[i], !v->error);
-    }
-    /* Clr ("Advanced") button always sensitive. */
-    set_button_state(BUT_CLR_ADV, TRUE);
-
-    for (i = 0; i < (FROWS * FCOLS); i++) {
-        set_button_state(X->fin_buttons[i], !v->error);
-    }
-
-    for (i = 0; i < (SROWS * SCOLS); i++) {
-        set_button_state(X->sci_buttons[i], !v->error);
-    }
-
     if (!v->error) {
         grey_buttons(v->base);
     }
 
     gtk_widget_set_sensitive(X->mode_panel, !v->error);
 
-    SET_MENUBAR_ITEM_STATE("/MenuBar/EditMenu/Copy",       !v->error);
-    SET_MENUBAR_ITEM_STATE("/MenuBar/EditMenu/Paste",      !v->error); 
-    SET_MENUBAR_ITEM_STATE("/MenuBar/EditMenu/Insert",     !v->error); 
-    SET_MENUBAR_ITEM_STATE("/MenuBar/ViewMenu/Basic",      !v->error); 
-    SET_MENUBAR_ITEM_STATE("/MenuBar/ViewMenu/Advanced",   !v->error); 
-    SET_MENUBAR_ITEM_STATE("/MenuBar/ViewMenu/Financial",  !v->error); 
-    SET_MENUBAR_ITEM_STATE("/MenuBar/ViewMenu/Scientific", !v->error); 
-    SET_MENUBAR_ITEM_STATE("/MenuBar/ViewMenu/Trailing",
+    // FIXME: Isn't this missing a whole lot of widgets?
+    SET_MENUBAR_ITEM_STATE("copy_menu",            !v->error);
+    SET_MENUBAR_ITEM_STATE("paste_menu",           !v->error); 
+    SET_MENUBAR_ITEM_STATE("insert_ascii_menu",    !v->error); 
+    SET_MENUBAR_ITEM_STATE("view_basic_menu",      !v->error); 
+    SET_MENUBAR_ITEM_STATE("view_advanced_menu",   !v->error); 
+    SET_MENUBAR_ITEM_STATE("view_financial_menu",  !v->error); 
+    SET_MENUBAR_ITEM_STATE("view_scientific_menu", !v->error); 
+    SET_MENUBAR_ITEM_STATE("show_trailing_zeroes_menu",
                            !v->error && (v->modetype == SCIENTIFIC)); 
-    SET_MENUBAR_ITEM_STATE("/MenuBar/ViewMenu/Thousands",  !v->error); 
-    SET_MENUBAR_ITEM_STATE("/MenuBar/ViewMenu/Memory",     !v->error); 
-    SET_MENUBAR_ITEM_STATE("/MenuBar/ViewMenu/ArithmeticPrecedence", !v->error); 
-    SET_MENUBAR_ITEM_STATE("/MenuBar/HelpMenu/About",      !v->error);
+    SET_MENUBAR_ITEM_STATE("show_thousands_separator_menu",  !v->error); 
+    SET_MENUBAR_ITEM_STATE("show_registers_menu",  !v->error); 
+    SET_MENUBAR_ITEM_STATE("arithmetic_precedence_menu", !v->error); 
+    SET_MENUBAR_ITEM_STATE("about_menu",           !v->error);
 }
 
 
@@ -3370,10 +2966,10 @@
 static void
 set_memory_toggle(int state)
 {
-    GtkAction *action;
+    GtkWidget *radio;
 
-    action = gtk_action_group_get_action(X->actions, "Memory");
-    gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), state);
+    radio = GET_WIDGET("show_registers_menu");
+    gtk_widget_set_sensitive(radio, state);
 }
 
 
@@ -3506,7 +3102,7 @@
 {
     GtkWidget *mi;
 
-    mi = gtk_ui_manager_get_widget(X->ui, "/MenuBar/ViewMenu/Thousands");
+    mi = GET_WIDGET("show_thousands_separator_menu");
     gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mi), state);
 }
 
@@ -3515,19 +3111,20 @@
 {
     GtkWidget *mi;
 
-    mi = gtk_ui_manager_get_widget(X->ui, "/MenuBar/ViewMenu/Bitcalculating");
+    mi = GET_WIDGET("show_bitcalculating_menu");
     gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mi), state);
 }
 
 static void
 set_show_zeroes_toggle(int state)
 {
-    GtkAction *action;
+    GtkWidget *menu;
 
     v->doing_mi = 1;    /* Hack to get mstz_proc() to just return. */
-    action = gtk_action_group_get_action(X->actions, "Trailing");
-    gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), state);
-    gtk_action_set_sensitive(action, v->modetype == SCIENTIFIC);
+    menu = GET_WIDGET("show_trailing_zeroes_menu");
+    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), state);
+    menu = GET_WIDGET("acc_trailing_zeroes_item");
+    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), state);
     v->doing_mi = 0;
 }
 
@@ -3553,22 +3150,22 @@
     GtkWidget *button = NULL;
     GdkEvent *event = gtk_get_current_event();
 
-       if (key_equal(v->current, KEY_ACC)) {              /* Acc */
-        button = BUT_ACC;
-    } else if (key_equal(v->current, KEY_CON)) {          /* Con */
-        button = BUT_CON;
-    } else if (key_equal(v->current, KEY_EXCH)) {         /* Exch */
-        button = BUT_EXCH;
-    } else if (key_equal(v->current, KEY_FUN)) {          /* Fun */
-        button = BUT_FUN;
-    } else if (key_equal(v->current, KEY_LSFT)) {         /* < */
-        button = BUT_LSFT;
-    } else if (key_equal(v->current, KEY_RCL)) {          /* Rcl */
-        button = BUT_RCL;
-    } else if (key_equal(v->current, KEY_RSFT)) {         /* > */
-        button = BUT_RSFT;
-    } else if (key_equal(v->current, KEY_STO)) {          /* Sto */
-        button = BUT_STO;
+       if (key_equal(v->current, buttons[KEY_ACCURACY_MENU])) {       /* Acc */
+        button = X->buttons[BUT_ACCURACY_MENU];
+    } else if (key_equal(v->current, buttons[KEY_CONSTANTS_MENU])) {  /* Con */
+        button = X->buttons[BUT_CONSTANTS_MENU];
+    } else if (key_equal(v->current, buttons[KEY_EXCHANGE])) {        /* Exch */
+        button = X->buttons[BUT_EXCHANGE];
+    } else if (key_equal(v->current, buttons[KEY_FUNCTIONS_MENU])) {  /* Fun */
+        button = X->buttons[BUT_FUNCTIONS_MENU];
+    } else if (key_equal(v->current, buttons[KEY_LEFT_SHIFT])) {      /* < */
+        button = X->buttons[BUT_LEFT_SHIFT];
+    } else if (key_equal(v->current, buttons[KEY_RECALL])) {          /* Rcl */
+        button = X->buttons[BUT_RECALL];
+    } else if (key_equal(v->current, buttons[KEY_RIGHT_SHIFT])) {     /* > */
+        button = X->buttons[BUT_RIGHT_SHIFT];
+    } else if (key_equal(v->current, buttons[KEY_STORE])) {           /* Sto */
+        button = X->buttons[BUT_STORE];
     }
 
     show_menu_for_button(button, (GdkEventKey *) event);
@@ -3581,9 +3178,11 @@
     struct button *n;
     GdkPoint loc;
     GtkWidget *menu;
+    enum menu_type mtype;
 
     n = (struct button *) g_object_get_data(G_OBJECT(widget), "button");
-    menu = create_menu(n->mtype, n);
+    mtype = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "mtype"));
+    menu = create_menu(mtype, n);
     gdk_window_get_origin(widget->window, &loc.x, &loc.y);
     loc.x += widget->allocation.x;
     loc.y += widget->allocation.y;
@@ -3609,7 +3208,7 @@
 
 /*ARGSUSED*/
 void
-trig_cb(GtkToggleButton *button, gpointer user_data)
+trig_cb(GtkToggleButton *button)
 {
     do_trigtype((enum trig_type) g_object_get_data(G_OBJECT(button), "response_id"));
 }
@@ -3652,7 +3251,7 @@
 
 /*ARGSUSED*/
 static void
-ts_proc(GtkAction *action)
+show_thousands_separator_cb(GtkWidget *widget)
 {
     if (!v->started) {
 	return;
Index: glade/gcalctool.glade
===================================================================
--- glade/gcalctool.glade	(revision 0)
+++ glade/gcalctool.glade	(revision 0)
@@ -0,0 +1,6545 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
+
+<glade-interface>
+
+<widget class="GtkWindow" id="calc_window">
+  <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+  <property name="title" translatable="yes"></property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <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">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">6</property>
+
+      <child>
+	<widget class="GtkMenuBar" id="menubar">
+	  <property name="visible">True</property>
+	  <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+	  <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property>
+	  <property name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property>
+
+	  <child>
+	    <widget class="GtkMenuItem" id="menuitem1">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">_Calculator</property>
+	      <property name="use_underline">True</property>
+
+	      <child>
+		<widget class="GtkMenu" id="menuitem1_menu">
+
+		  <child>
+		    <widget class="GtkImageMenuItem" id="quit_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Quit the calculator</property>
+		      <property name="label">gtk-quit</property>
+		      <property name="use_stock">True</property>
+		      <signal name="activate" handler="quit_cb"/>
+		      <signal name="select" handler="menu_item_select_cb"/>
+      		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		    </widget>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkMenuItem" id="edit_menu">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">_Edit</property>
+	      <property name="use_underline">True</property>
+
+	      <child>
+		<widget class="GtkMenu" id="edit_menu_menu">
+
+		  <child>
+		    <widget class="GtkImageMenuItem" id="copy_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Copy selection</property>
+		      <property name="label">gtk-copy</property>
+		      <property name="use_stock">True</property>
+		      <signal name="select" handler="menu_item_select_cb"/>
+		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		      <signal name="activate" handler="copy_cb"/>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkImageMenuItem" id="paste_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Paste selection</property>
+		      <property name="label">gtk-paste</property>
+		      <property name="use_stock">True</property>
+		      <signal name="select" handler="menu_item_select_cb"/>
+		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		      <signal name="activate" handler="paste_cb"/>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkImageMenuItem" id="undo_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Undo</property>
+		      <property name="label" translatable="yes">_Undo</property>
+		      <property name="use_underline">True</property>
+		      <signal name="select" handler="menu_item_select_cb"/>
+		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		      <signal name="activate" handler="undo_cb"/>
+
+		      <child internal-child="image">
+			<widget class="GtkImage" id="image8">
+			  <property name="visible">True</property>
+			  <property name="stock">gtk-undo</property>
+			  <property name="icon_size">1</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			</widget>
+		      </child>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkImageMenuItem" id="redo_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Redo</property>
+		      <property name="label" translatable="yes">_Redo</property>
+		      <property name="use_underline">True</property>
+		      <signal name="select" handler="menu_item_select_cb"/>
+		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		      <signal name="activate" handler="redo_cb"/>
+
+		      <child internal-child="image">
+			<widget class="GtkImage" id="image9">
+			  <property name="visible">True</property>
+			  <property name="stock">gtk-redo</property>
+			  <property name="icon_size">1</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			</widget>
+		      </child>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkSeparatorMenuItem" id="menuitem5">
+		      <property name="visible">True</property>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkMenuItem" id="insert_ascii_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Insert ASCII value</property>
+		      <property name="label" translatable="yes">_Insert ASCII value...</property>
+		      <property name="use_underline">True</property>
+		      <signal name="select" handler="menu_item_select_cb"/>
+		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		      <signal name="activate" handler="insert_ascii_cb"/>
+		    </widget>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkMenuItem" id="menuitem3">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">_View</property>
+	      <property name="use_underline">True</property>
+
+	      <child>
+		<widget class="GtkMenu" id="menuitem3_menu">
+
+		  <child>
+		    <widget class="GtkRadioMenuItem" id="view_basic_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Basic</property>
+		      <property name="label" translatable="yes">_Basic</property>
+		      <property name="use_underline">True</property>
+		      <property name="active">False</property>
+		      <signal name="select" handler="menu_item_select_cb"/>
+		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		      <signal name="activate" handler="mode_radio_cb"/>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkRadioMenuItem" id="view_advanced_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Advanced</property>
+		      <property name="label" translatable="yes">_Advanced</property>
+		      <property name="use_underline">True</property>
+		      <property name="active">False</property>
+		      <property name="group">view_basic_menu</property>
+		      <signal name="select" handler="menu_item_select_cb"/>
+		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		      <signal name="activate" handler="mode_radio_cb" last_modification_time="Sat, 13 Oct 2007 00:50:25 GMT"/>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkRadioMenuItem" id="view_financial_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Financial</property>
+		      <property name="label" translatable="yes">_Financial</property>
+		      <property name="use_underline">True</property>
+		      <property name="active">False</property>
+		      <property name="group">view_basic_menu</property>
+		      <signal name="select" handler="menu_item_select_cb"/>
+		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		      <signal name="activate" handler="mode_radio_cb" last_modification_time="Sat, 13 Oct 2007 00:50:25 GMT"/>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkRadioMenuItem" id="view_scientific_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Scientific</property>
+		      <property name="label" translatable="yes">_Scientific</property>
+		      <property name="use_underline">True</property>
+		      <property name="active">False</property>
+		      <property name="group">view_basic_menu</property>
+		      <signal name="select" handler="menu_item_select_cb"/>
+		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		      <signal name="activate" handler="mode_radio_cb" last_modification_time="Sat, 13 Oct 2007 00:50:25 GMT"/>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkSeparatorMenuItem" id="separator1">
+		      <property name="visible">True</property>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkCheckMenuItem" id="show_trailing_zeroes_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Show trailing zeroes</property>
+		      <property name="label" translatable="yes">Show _Trailing Zeroes</property>
+		      <property name="use_underline">True</property>
+		      <property name="active">False</property>
+		      <signal name="select" handler="menu_item_select_cb"/>
+		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		      <signal name="activate" handler="show_trailing_zeroes_cb"/>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkCheckMenuItem" id="show_thousands_separator_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Show thousands separator</property>
+		      <property name="label" translatable="yes">Show T_housands Separator</property>
+		      <property name="use_underline">True</property>
+		      <property name="active">False</property>
+		      <signal name="select" handler="menu_item_select_cb"/>
+		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		      <signal name="activate" handler="show_thousands_separator_cb" last_modification_time="Sat, 13 Oct 2007 00:50:25 GMT"/>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkCheckMenuItem" id="show_bitcalculating_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Show bitcalculating extension</property>
+		      <property name="label" translatable="yes">Show Bitcalculating _Extension</property>
+		      <property name="use_underline">True</property>
+		      <property name="active">False</property>
+		      <signal name="select" handler="menu_item_select_cb"/>
+		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		      <signal name="activate" handler="show_bitcalculating_cb" last_modification_time="Sat, 13 Oct 2007 00:50:25 GMT"/>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkSeparatorMenuItem" id="separator2">
+		      <property name="visible">True</property>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkCheckMenuItem" id="show_registers_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Show memory registers</property>
+		      <property name="label" translatable="yes">_Memory Registers</property>
+		      <property name="use_underline">True</property>
+		      <property name="active">False</property>
+		      <signal name="select" handler="menu_item_select_cb"/>
+		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		      <signal name="activate" handler="show_registers_cb" last_modification_time="Sat, 13 Oct 2007 00:50:25 GMT"/>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkSeparatorMenuItem" id="separator3">
+		      <property name="visible">True</property>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkRadioMenuItem" id="ltr_precedence_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Use Left-right Precedence</property>
+		      <property name="label" translatable="yes">_Left-to-right Precedence</property>
+		      <property name="use_underline">True</property>
+		      <property name="active">False</property>
+		      <signal name="select" handler="menu_item_select_cb"/>
+		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		      <signal name="activate" handler="on_left-to-right_precedence1_activate" last_modification_time="Sat, 13 Oct 2007 00:50:25 GMT"/>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkRadioMenuItem" id="arithmetic_precedence_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Use Arithmetic Precedence</property>
+		      <property name="label" translatable="yes">A_rithmetic Precedence</property>
+		      <property name="use_underline">True</property>
+		      <property name="active">False</property>
+		      <property name="group">ltr_precedence_menu</property>
+		      <signal name="select" handler="menu_item_select_cb"/>
+		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		      <signal name="activate" handler="arithmetic_mode_cb" last_modification_time="Sat, 13 Oct 2007 00:50:25 GMT"/>
+		    </widget>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkMenuItem" id="menuitem4">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">_Help</property>
+	      <property name="use_underline">True</property>
+
+	      <child>
+		<widget class="GtkMenu" id="menuitem4_menu">
+
+		  <child>
+		    <widget class="GtkImageMenuItem" id="help_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Show help contents</property>
+		      <property name="label">gtk-help</property>
+		      <property name="use_stock">True</property>
+		      <signal name="select" handler="menu_item_select_cb"/>
+		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		      <signal name="activate" handler="help_cb" last_modification_time="Sat, 13 Oct 2007 00:52:33 GMT"/>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkImageMenuItem" id="about_menu">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Show the About Gcalctool dialog</property>
+		      <property name="label">gtk-about</property>
+		      <property name="use_stock">True</property>
+		      <signal name="select" handler="menu_item_select_cb"/>
+		      <signal name="deselect" handler="menu_item_deselect_cb"/>
+		      <signal name="activate" handler="about_cb" last_modification_time="Sat, 13 Oct 2007 00:52:33 GMT"/>
+		    </widget>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkEventBox" id="display_eventbox">
+	  <property name="visible">True</property>
+	  <property name="visible_window">True</property>
+	  <property name="above_child">False</property>
+
+	  <child>
+	    <widget class="GtkScrolledWindow" id="display_scroll">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+	      <property name="vscrollbar_policy">GTK_POLICY_NEVER</property>
+	      <property name="shadow_type">GTK_SHADOW_NONE</property>
+	      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+	      <child>
+		<widget class="GtkTextView" id="displayitem">
+		  <property name="border_width">2</property>
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="editable">True</property>
+		  <property name="overwrite">False</property>
+		  <property name="accepts_tab">True</property>
+		  <property name="justification">GTK_JUSTIFY_RIGHT</property>
+		  <property name="wrap_mode">GTK_WRAP_NONE</property>
+		  <property name="cursor_visible">True</property>
+		  <property name="pixels_above_lines">8</property>
+		  <property name="pixels_below_lines">8</property>
+		  <property name="pixels_inside_wrap">0</property>
+		  <property name="left_margin">0</property>
+		  <property name="right_margin">6</property>
+		  <property name="indent">0</property>
+		  <property name="text" translatable="yes"></property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Result Region</atkproperty>
+		  </accessibility>
+		  <signal name="button_release_event" handler="mouse_button_cb"/>
+		  <signal name="focus_in_event" handler="display_focus_in_cb"/>
+		  <signal name="focus_out_event" handler="display_focus_out_cb"/>
+		  <signal name="populate-popup" handler="buffer_populate_popup_cb"/>
+		</widget>
+	      </child>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkVBox" id="mode_panel">
+	  <property name="border_width">6</property>
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">0</property>
+
+	  <child>
+	    <widget class="GtkHBox" id="hbox4">
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">0</property>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox5">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">0</property>
+
+		  <child>
+		    <widget class="GtkRadioButton" id="degrees_radio">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Set trigonometric type to degrees</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">De_grees</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <property name="active">True</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		      <signal name="toggled" handler="trig_cb"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkRadioButton" id="gradians_radio">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Set trigonometric type to gradians</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">Gr_adians</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		      <property name="group">degrees_radio</property>
+		      <signal name="toggled" handler="trig_cb"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkRadioButton" id="radians_radio">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Set trigonometric type to radians</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">_Radians</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		      <property name="group">degrees_radio</property>
+		      <signal name="toggled" handler="trig_cb"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox6">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">0</property>
+
+		  <child>
+		    <widget class="GtkRadioButton" id="binary_radio">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Set numeric base to binary (base 2)</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">_Bin</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		      <signal name="toggled" handler="base_cb"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkRadioButton" id="octal_radio">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Set numeric base to octal (base 8)</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">_Oct</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		      <property name="group">binary_radio</property>
+		      <signal name="toggled" handler="base_cb"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkRadioButton" id="decimal_radio">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Set numeric base to decimal (base 10)</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">_Dec</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		      <property name="group">binary_radio</property>
+		      <signal name="toggled" handler="base_cb"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkRadioButton" id="hexadecimal_radio">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Set numeric base to hexadecimal (base 16)</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">_Hex</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		      <property name="group">binary_radio</property>
+		      <signal name="toggled" handler="base_cb"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">True</property>
+		  <property name="pack_type">GTK_PACK_END</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkHBox" id="hbox7">
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">0</property>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox8">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">0</property>
+
+		  <child>
+		    <widget class="GtkCheckButton" id="inverse_check">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Set inverse option for trigonometric functions</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">_Inv</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		      <signal name="toggled" handler="inv_cb"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkCheckButton" id="hyperbolic_check">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Set hyperbolic option for trigonometric functions</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">H_yp</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		      <signal name="toggled" handler="hyp_cb"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox9">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">0</property>
+
+		  <child>
+		    <widget class="GtkRadioButton" id="engineering_radio">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Set display type to engineering format</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">E_ng</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		      <signal name="toggled" handler="disp_cb"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkRadioButton" id="fixed_point_radio">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Set display type to fixed-point format</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">_Fix</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		      <property name="group">engineering_radio</property>
+		      <signal name="toggled" handler="disp_cb"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkRadioButton" id="scientific_radio">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">Set display type to scientific format</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">_Sci</property>
+		      <property name="use_underline">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <property name="active">False</property>
+		      <property name="inconsistent">False</property>
+		      <property name="draw_indicator">True</property>
+		      <property name="group">engineering_radio</property>
+		      <signal name="toggled" handler="disp_cb"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">True</property>
+		  <property name="pack_type">GTK_PACK_END</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">True</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkTable" id="financial_panel">
+	  <property name="border_width">6</property>
+	  <property name="visible">True</property>
+	  <property name="n_rows">2</property>
+	  <property name="n_columns">8</property>
+	  <property name="homogeneous">True</property>
+	  <property name="row_spacing">6</property>
+	  <property name="column_spacing">6</property>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_finc_sum_of_the_years_digits_depreciation_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Sum-of-the years'-digits depreciation [Y]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Syd</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Sum-of-the years'-digits depreciation [Y]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">7</property>
+	      <property name="right_attach">8</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_finc_straight_line_depreciation_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Straight-line depreciation [l]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Sln</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Straight-line depreciation [l]</atkproperty>
+	      </accessibility>
+	      <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">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_finc_periodic_interest_rate_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Periodic interest rate [T]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Rate</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Periodic interest rate [T]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <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="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_finc_present_value_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Present value [p]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Pv</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Present value [p]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <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="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_finc_periodic_payment_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Periodic payment [P]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Pmt</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Periodic payment [P]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <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="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_finc_future_value_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Future value [v]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Fv</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Future value [v]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">2</property>
+	      <property name="right_attach">3</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_finc_double_declining_depreciation_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Double-declining depreciation [D]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Ddb</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Double-declining depreciation [D]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_finc_compounding_term_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Compounding term [m]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Ctrm</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Compounding term [m]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_finc_term_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Payment period [t]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Term</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Payment period [t]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkAlignment" id="bit_panel">
+	  <property name="visible">True</property>
+	  <property name="xalign">0.5</property>
+	  <property name="yalign">0.5</property>
+	  <property name="xscale">0</property>
+	  <property name="yscale">0</property>
+	  <property name="top_padding">0</property>
+	  <property name="bottom_padding">0</property>
+	  <property name="left_padding">0</property>
+	  <property name="right_padding">0</property>
+
+	  <child>
+	    <widget class="GtkTable" id="table8">
+	      <property name="visible">True</property>
+	      <property name="n_rows">4</property>
+	      <property name="n_columns">39</property>
+	      <property name="homogeneous">False</property>
+	      <property name="row_spacing">0</property>
+	      <property name="column_spacing">0</property>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_1">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_1">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_2">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_2">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_3">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_3">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">3</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_4">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_4">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_5">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_5">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">6</property>
+		  <property name="right_attach">7</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_6">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_6">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">7</property>
+		  <property name="right_attach">8</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_7">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_7">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">8</property>
+		  <property name="right_attach">9</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_8">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_8">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">10</property>
+		  <property name="right_attach">11</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_9">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_9">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">11</property>
+		  <property name="right_attach">12</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_10">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_10">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">12</property>
+		  <property name="right_attach">13</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_11">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_11">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">13</property>
+		  <property name="right_attach">14</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_12">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_12">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">15</property>
+		  <property name="right_attach">16</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_13">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_13">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">16</property>
+		  <property name="right_attach">17</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_14">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_14">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">17</property>
+		  <property name="right_attach">18</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_15">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_15">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">18</property>
+		  <property name="right_attach">19</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_16">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_16">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">38</property>
+		  <property name="right_attach">39</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_17">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_17">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">37</property>
+		  <property name="right_attach">38</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_18">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_18">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">36</property>
+		  <property name="right_attach">37</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_19">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_19">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">35</property>
+		  <property name="right_attach">36</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_20">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_20">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">33</property>
+		  <property name="right_attach">34</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_21">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_21">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">32</property>
+		  <property name="right_attach">33</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_22">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_22">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">31</property>
+		  <property name="right_attach">32</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_23">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_23">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">30</property>
+		  <property name="right_attach">31</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_24">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_24">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">28</property>
+		  <property name="right_attach">29</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_25">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_25">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">27</property>
+		  <property name="right_attach">28</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_26">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_26">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">26</property>
+		  <property name="right_attach">27</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_27">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_27">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">25</property>
+		  <property name="right_attach">26</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_28">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_28">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">23</property>
+		  <property name="right_attach">24</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_29">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_29">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">22</property>
+		  <property name="right_attach">23</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_30">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_30">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">21</property>
+		  <property name="right_attach">22</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_31">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_31">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">20</property>
+		  <property name="right_attach">21</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="bit_marker_label0">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">63</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">1</property>
+		  <property name="bottom_attach">2</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="bit_maker_label3">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">31</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="bit_marker_label2">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">32</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">38</property>
+		  <property name="right_attach">39</property>
+		  <property name="top_attach">1</property>
+		  <property name="bottom_attach">2</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="bit_marker_label5">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">0</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">38</property>
+		  <property name="right_attach">39</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_32">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_32">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_33">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_33">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_34">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_34">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_35">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_35">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">3</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_36">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_36">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_37">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_37">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">6</property>
+		  <property name="right_attach">7</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_38">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_38">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">7</property>
+		  <property name="right_attach">8</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_39">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_39">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">8</property>
+		  <property name="right_attach">9</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_40">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_40">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">10</property>
+		  <property name="right_attach">11</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_41">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_41">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">11</property>
+		  <property name="right_attach">12</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_42">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_42">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">12</property>
+		  <property name="right_attach">13</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_43">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_43">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">13</property>
+		  <property name="right_attach">14</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_44">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_44">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">15</property>
+		  <property name="right_attach">16</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_45">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_45">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">16</property>
+		  <property name="right_attach">17</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_46">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_46">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">17</property>
+		  <property name="right_attach">18</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_47">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_47">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">18</property>
+		  <property name="right_attach">19</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_48">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_48">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">20</property>
+		  <property name="right_attach">21</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_49">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_49">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">21</property>
+		  <property name="right_attach">22</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_50">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_50">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">22</property>
+		  <property name="right_attach">23</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_51">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_51">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">23</property>
+		  <property name="right_attach">24</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_52">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_52">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">25</property>
+		  <property name="right_attach">26</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_53">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_53">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">26</property>
+		  <property name="right_attach">27</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_54">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_54">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">27</property>
+		  <property name="right_attach">28</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_55">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_55">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">28</property>
+		  <property name="right_attach">29</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_56">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_56">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">30</property>
+		  <property name="right_attach">31</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_57">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_57">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">31</property>
+		  <property name="right_attach">32</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_58">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_58">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">32</property>
+		  <property name="right_attach">33</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_59">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_59">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">33</property>
+		  <property name="right_attach">34</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_60">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_60">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">35</property>
+		  <property name="right_attach">36</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_61">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_61">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">36</property>
+		  <property name="right_attach">37</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_62">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_62">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">37</property>
+		  <property name="right_attach">38</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_63">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_63">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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">38</property>
+		  <property name="right_attach">39</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="bit_marker_label1">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">47</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">20</property>
+		  <property name="right_attach">21</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="GtkLabel" id="bit_marker_label4">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">15</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_CENTER</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">20</property>
+		  <property name="right_attach">21</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label25">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">  </property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<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="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label26">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">  </property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">9</property>
+		  <property name="right_attach">10</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="GtkLabel" id="label27">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">  </property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">14</property>
+		  <property name="right_attach">15</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="GtkLabel" id="label28">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">  </property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">19</property>
+		  <property name="right_attach">20</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="GtkLabel" id="label29">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">  </property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">24</property>
+		  <property name="right_attach">25</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="GtkLabel" id="label30">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">  </property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">29</property>
+		  <property name="right_attach">30</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="GtkLabel" id="label31">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">  </property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">34</property>
+		  <property name="right_attach">35</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="GtkLabel" id="label32">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">  </property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">4</property>
+		  <property name="right_attach">5</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label33">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">  </property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">9</property>
+		  <property name="right_attach">10</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label34">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">  </property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">14</property>
+		  <property name="right_attach">15</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label35">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">  </property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">19</property>
+		  <property name="right_attach">20</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label36">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">  </property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">24</property>
+		  <property name="right_attach">25</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label37">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">  </property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">29</property>
+		  <property name="right_attach">30</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="label38">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">  </property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</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>
+		<packing>
+		  <property name="left_attach">34</property>
+		  <property name="right_attach">35</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">fill</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkEventBox" id="bit_eventbox_0">
+		  <property name="visible">True</property>
+		  <property name="visible_window">True</property>
+		  <property name="above_child">False</property>
+		  <signal name="button_press_event" handler="bit_toggled"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="bit_label_0">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes"> 0</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</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>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">shrink</property>
+		  <property name="y_options"></property>
+		</packing>
+	      </child>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkTable" id="scientific_panel">
+	  <property name="border_width">6</property>
+	  <property name="visible">True</property>
+	  <property name="n_rows">4</property>
+	  <property name="n_columns">8</property>
+	  <property name="homogeneous">True</property>
+	  <property name="row_spacing">6</property>
+	  <property name="column_spacing">6</property>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_d_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Hexadecimal digit D [d]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">D</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Hexadecimal digit D [d]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">2</property>
+	      <property name="bottom_attach">3</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_functions_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">User-defined functions [F]</property>
+	      <property name="can_focus">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">User-defined functions [F]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="menu_button_button_press_cb"/>
+	      <signal name="key-press-event" handler="menu_button_key_press_cb"/>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox13">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">3</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label9">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">Fun</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</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>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkArrow" id="arrow7">
+		      <property name="visible">True</property>
+		      <property name="arrow_type">GTK_ARROW_DOWN</property>
+		      <property name="shadow_type">GTK_SHADOW_OUT</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_shift_left_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Shift displayed value 1-15 places to the left [&lt;]</property>
+	      <property name="can_focus">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+		<atkproperty name="AtkObject::accessible_description" translatable="yes">Shift right</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="menu_button_button_press_cb"/>
+	      <signal name="key-press-event" handler="menu_button_key_press_cb"/>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox11">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">3</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label7">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes" comments="Shift left">&lt;</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</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>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkArrow" id="arrow5">
+		      <property name="visible">True</property>
+		      <property name="arrow_type">GTK_ARROW_DOWN</property>
+		      <property name="shadow_type">GTK_SHADOW_OUT</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_shift_right_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Shift displayed value 1-15 places to the right [&gt;]</property>
+	      <property name="can_focus">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+		<atkproperty name="AtkObject::accessible_description" translatable="yes">Shift left</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="menu_button_button_press_cb"/>
+	      <signal name="key-press-event" handler="menu_button_key_press_cb"/>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox10">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">3</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label6">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes" comments="Shift right">&gt;</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</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>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkArrow" id="arrow4">
+		      <property name="visible">True</property>
+		      <property name="arrow_type">GTK_ARROW_DOWN</property>
+		      <property name="shadow_type">GTK_SHADOW_OUT</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_constants_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Constants [#]</property>
+	      <property name="can_focus">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Constants [#]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="menu_button_button_press_cb"/>
+	      <signal name="key-press-event" handler="menu_button_key_press_cb"/>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox12">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">3</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label8">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">Con</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</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>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkArrow" id="arrow6">
+		      <property name="visible">True</property>
+		      <property name="arrow_type">GTK_ARROW_DOWN</property>
+		      <property name="shadow_type">GTK_SHADOW_OUT</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_accuracy_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Set accuracy from 0 to 9 numeric places [A]</property>
+	      <property name="can_focus">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+		<atkproperty name="AtkObject::accessible_description" translatable="yes">Accuracy</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="menu_button_button_press_cb"/>
+	      <signal name="key-press-event" handler="menu_button_key_press_cb"/>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox14">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">3</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label10">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes" comments="Accuracy">Acc</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</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>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkArrow" id="arrow8">
+		      <property name="visible">True</property>
+		      <property name="arrow_type">GTK_ARROW_DOWN</property>
+		      <property name="shadow_type">GTK_SHADOW_OUT</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">7</property>
+	      <property name="right_attach">8</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_modulus_divide_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Modulus Division [M]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Mod</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Modulus Division [M]</atkproperty>
+	      </accessibility>
+	      <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">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_random_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Random number in the range 0.0 to 1.0 [?]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes" comments="Random number">Rand</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+		<atkproperty name="AtkObject::accessible_description" translatable="yes">Random number</atkproperty>
+	      </accessibility>
+	      <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">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_xor_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Bitwise XOR [x]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">XOR</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Bitwise XOR [x]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">6</property>
+	      <property name="right_attach">7</property>
+	      <property name="top_attach">3</property>
+	      <property name="bottom_attach">4</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_xnor_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Bitwise XNOR [n]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">XNOR</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Bitwise XNOR [n]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">7</property>
+	      <property name="right_attach">8</property>
+	      <property name="top_attach">3</property>
+	      <property name="bottom_attach">4</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_logarithm_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Base 10 log [G]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Log</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Base 10 log [G]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">7</property>
+	      <property name="right_attach">8</property>
+	      <property name="top_attach">2</property>
+	      <property name="bottom_attach">3</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_natural_logarithm_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Natural log [N]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Ln</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Natural log [N]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">6</property>
+	      <property name="right_attach">7</property>
+	      <property name="top_attach">2</property>
+	      <property name="bottom_attach">3</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_tangent_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Tangent [L]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Tan</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Tangent [L]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">5</property>
+	      <property name="right_attach">6</property>
+	      <property name="top_attach">2</property>
+	      <property name="bottom_attach">3</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_not_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Bitwise NOT [~]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">NOT</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Bitwise NOT [~]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">5</property>
+	      <property name="right_attach">6</property>
+	      <property name="top_attach">3</property>
+	      <property name="bottom_attach">4</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_and_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Bitwise AND [&amp;]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">AND</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Bitwise AND [&amp;]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">4</property>
+	      <property name="right_attach">5</property>
+	      <property name="top_attach">3</property>
+	      <property name="bottom_attach">4</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_sine_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Sine [K]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Sin</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Sine [K]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">4</property>
+	      <property name="right_attach">5</property>
+	      <property name="top_attach">2</property>
+	      <property name="bottom_attach">3</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_mask_32_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">32-bit unsigned integer value of display ([)</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes" comments="32 bit unsigned integer">&amp;32</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+		<atkproperty name="AtkObject::accessible_description" translatable="yes">32 bit unsigned integer</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <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="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_or_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Bitwise OR [|]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">OR</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Bitwise OR [|]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">3</property>
+	      <property name="right_attach">4</property>
+	      <property name="top_attach">3</property>
+	      <property name="bottom_attach">4</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_cosine_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Cosine [J]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Cos</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Cosine [J]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">3</property>
+	      <property name="right_attach">4</property>
+	      <property name="top_attach">2</property>
+	      <property name="bottom_attach">3</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_mask_16_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">16-bit unsigned integer value of display (])</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes" comments="16 bit unsigned integer">&amp;16</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+		<atkproperty name="AtkObject::accessible_description" translatable="yes">16 bit unsigned integer</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">2</property>
+	      <property name="right_attach">3</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_exponential_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Enter an exponential number [E]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes" comments="Exponential">Exp</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+		<atkproperty name="AtkObject::accessible_description" translatable="yes">Exponential</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">2</property>
+	      <property name="right_attach">3</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_f_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Hexadecimal digit F [f]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">F</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Hexadecimal digit F [f]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">2</property>
+	      <property name="right_attach">3</property>
+	      <property name="top_attach">2</property>
+	      <property name="bottom_attach">3</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_c_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Hexadecimal digit C [c]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">C</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Hexadecimal digit C [c]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">2</property>
+	      <property name="right_attach">3</property>
+	      <property name="top_attach">3</property>
+	      <property name="bottom_attach">4</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_b_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Hexadecimal digit B [b]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">B</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Hexadecimal digit B [b]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">3</property>
+	      <property name="bottom_attach">4</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_e_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Hexadecimal digit E [e]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">E</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Hexadecimal digit E [e]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">2</property>
+	      <property name="bottom_attach">3</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_a_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Hexadecimal digit A [a]</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">A</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+	        <atkproperty name="AtkObject::accessible_description" translatable="yes">Hexadecimal digit A [a]</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">3</property>
+	      <property name="bottom_attach">4</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_pow_e_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">e to the power of displayed value [{]</property>
+	      <property name="can_focus">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+		<atkproperty name="AtkObject::accessible_description" translatable="yes">E to the x</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+
+	      <child>
+		<widget class="GtkLabel" id="label11">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes" comments="E to the x">e&lt;sup&gt;x&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">3</property>
+	      <property name="right_attach">4</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_factorial_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Factorial of displayed value [!]</property>
+	      <property name="can_focus">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+		<atkproperty name="AtkObject::accessible_description" translatable="yes">Factorial</atkproperty>
+	      </accessibility>
+	      <signal name="clicked" handler="button_cb"/>
+
+	      <child>
+		<widget class="GtkLabel" id="label14">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes" comments="Factorial">&lt;i&gt;x&lt;/i&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">6</property>
+	      <property name="right_attach">7</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_x_pow_y_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Raise displayed value to the power of y [^]</property>
+	      <property name="can_focus">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+		<atkproperty name="AtkObject::accessible_description" translatable="yes">X to the y</atkproperty>
+	      </accessibility>
+	      <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 y">&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">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="calc_pow_10_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">10 to the power of displayed value [}]</property>
+	      <property name="can_focus">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <accessibility>
+		<atkproperty name="AtkObject::accessible_description" translatable="yes">10 to the x</atkproperty>
+	      </accessibility>
+	      <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 the x">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="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkTable" id="table4">
+	  <property name="border_width">6</property>
+	  <property name="visible">True</property>
+	  <property name="n_rows">2</property>
+	  <property name="n_columns">2</property>
+	  <property name="homogeneous">False</property>
+	  <property name="row_spacing">6</property>
+	  <property name="column_spacing">6</property>
+
+	  <child>
+	    <widget class="GtkTable" id="core_panel">
+	      <property name="visible">True</property>
+	      <property name="n_rows">4</property>
+	      <property name="n_columns">4</property>
+	      <property name="homogeneous">True</property>
+	      <property name="row_spacing">6</property>
+	      <property name="column_spacing">6</property>
+
+	      <child>
+		<widget class="GtkButton" id="calc_4_button">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Numeric 4">4</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">1</property>
+		  <property name="bottom_attach">2</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_7_button">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Numeric 7">7</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_8_button">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Numeric 8">8</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_9_button">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Numeric 9">9</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_5_button">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Numeric 5">5</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">1</property>
+		  <property name="bottom_attach">2</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_6_button">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Numeric 6">6</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">1</property>
+		  <property name="bottom_attach">2</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_divide_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Divide</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="this is a division sign (÷)">÷</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Divide</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<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="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_1_button">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Numeric 1">1</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_2_button">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Numeric 2">2</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_0_button">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Numeric 0">0</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_numeric_point_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Numeric point</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Numeric point">.</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Numeric point</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_result_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Calculate result</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="This is the calculate result button (=)">=</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Calculate result</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_3_button">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Numeric 3">3</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_multiply_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Multiply</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="This is a multiplication sign (*)">×</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Multiply</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<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">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_subtract_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Subtract</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="This is a minus sign (-)">−</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Subtract</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">3</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_add_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Add</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">+</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Add</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">3</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkTable" id="advanced_panel">
+	      <property name="visible">True</property>
+	      <property name="n_rows">4</property>
+	      <property name="n_columns">4</property>
+	      <property name="homogeneous">True</property>
+	      <property name="row_spacing">6</property>
+	      <property name="column_spacing">6</property>
+
+	      <child>
+		<widget class="GtkButton" id="calc_start_group_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Start group of calculations</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Left bracket">(</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Left bracket</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_reciprocal_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Reciprocal [r]</property>
+		  <property name="can_focus">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Reciprocal [r]</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="label20">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">1/&lt;i&gt;x&lt;/i&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">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_percentage_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Percentage</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="This is a percentage sign">%</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Percentage</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_end_group_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">End group of calculations</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Right bracket">)</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Right bracket</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">1</property>
+		  <property name="bottom_attach">2</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_backspace_advanced_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Remove rightmost character from displayed value</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Bksp is short for Backspace">Bksp</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Backspace</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_change_sign_advanced_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Change Sign [c]</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="This is a plus-minus sign (+/-)">±</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Change Sign [c]</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">1</property>
+		  <property name="bottom_attach">2</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_sqrt_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Square root [s]</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="This is a square root sign">√</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Square root [s]</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_abs_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Absolute value [u]</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Abs is short for Absolute">Abs</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Absolute value [u]</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_fractional_portion_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Fractional portion of displayed value [:]</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Fractional portion">Frac</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Fractional portion</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_integer_portion_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Integer portion of displayed value [i]</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Integer portion">Int</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Integer portion</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">1</property>
+		  <property name="bottom_attach">2</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_clear_entry_advanced_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Clear displayed value</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">CE</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Clear</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_exchange_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Exchange displayed value with memory register [X]</property>
+		  <property name="can_focus">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Exchange with register</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="menu_button_button_press_cb"/>
+		  <signal name="key-press-event" handler="menu_button_key_press_cb"/>
+
+		  <child>
+		    <widget class="GtkHBox" id="hbox18">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">3</property>
+
+		      <child>
+			<widget class="GtkLabel" id="label21">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes" comments="Exchange with register">Exch</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</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>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkArrow" id="arrow12">
+			  <property name="visible">True</property>
+			  <property name="arrow_type">GTK_ARROW_DOWN</property>
+			  <property name="shadow_type">GTK_SHADOW_OUT</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+		    </widget>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="left_attach">3</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_recall_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Retrieve memory register to display [R]</property>
+		  <property name="can_focus">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Retrieve from register</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="menu_button_button_press_cb"/>
+		  <signal name="key-press-event" handler="menu_button_key_press_cb"/>
+
+		  <child>
+		    <widget class="GtkHBox" id="hbox19">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">3</property>
+
+		      <child>
+			<widget class="GtkLabel" id="label22">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes" comments="Retrieve from register">Rcl</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</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>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkArrow" id="arrow13">
+			  <property name="visible">True</property>
+			  <property name="arrow_type">GTK_ARROW_DOWN</property>
+			  <property name="shadow_type">GTK_SHADOW_OUT</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+		    </widget>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="left_attach">3</property>
+		  <property name="right_attach">4</property>
+		  <property name="top_attach">2</property>
+		  <property name="bottom_attach">3</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_clear_advanced_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Clear displayed value and any partial calculation</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Clr is short for Clear">Clr</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Clear</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<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="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_store_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Store displayed value in memory register [S]</property>
+		  <property name="can_focus">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Store to register</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="menu_button_button_press_cb"/>
+		  <signal name="key-press-event" handler="menu_button_key_press_cb"/>
+
+		  <child>
+		    <widget class="GtkHBox" id="hbox20">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">3</property>
+
+		      <child>
+			<widget class="GtkLabel" id="label23">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes" comments="Store to register">Sto</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</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>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkArrow" id="arrow14">
+			  <property name="visible">True</property>
+			  <property name="arrow_type">GTK_ARROW_DOWN</property>
+			  <property name="shadow_type">GTK_SHADOW_OUT</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+		    </widget>
+		  </child>
+		</widget>
+		<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">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_square_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Square [@]</property>
+		  <property name="can_focus">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Square [@]</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+
+		  <child>
+		    <widget class="GtkLabel" id="label24">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">&lt;i&gt;x&lt;/i&gt;&lt;sup&gt;2&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">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">3</property>
+		  <property name="bottom_attach">4</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkTable" id="basic_panel">
+	      <property name="visible">True</property>
+	      <property name="n_rows">1</property>
+	      <property name="n_columns">4</property>
+	      <property name="homogeneous">True</property>
+	      <property name="row_spacing">6</property>
+	      <property name="column_spacing">6</property>
+
+	      <child>
+		<widget class="GtkButton" id="calc_backspace_simple_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Remove rightmost character from displayed value</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Bksp is short for Backspace">Bksp</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Remove rightmost character from displayed value</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">0</property>
+		  <property name="right_attach">1</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_change_sign_simple_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Change Sign [c]</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="This is a plus-minus sign (+/-)">±</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Change Sign [c]</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<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="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_clear_simple_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Clear displayed value and any partial calculation</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes" comments="Clr is short for Clear">Clr</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Clear displayed value and any partial calculation</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">2</property>
+		  <property name="right_attach">3</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="calc_clear_entry_simple_button">
+		  <property name="visible">True</property>
+		  <property name="tooltip" translatable="yes">Clear displayed value</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">CE</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		  <accessibility>
+		    <atkproperty name="AtkObject::accessible_description" translatable="yes">Clear</atkproperty>
+		  </accessibility>
+		  <signal name="clicked" handler="button_cb"/>
+		</widget>
+		<packing>
+		  <property name="left_attach">1</property>
+		  <property name="right_attach">2</property>
+		  <property name="top_attach">0</property>
+		  <property name="bottom_attach">1</property>
+		  <property name="x_options">expand|shrink|fill</property>
+		  <property name="y_options">expand|shrink|fill</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">expand|shrink|fill</property>
+	      <property name="y_options">expand|shrink|fill</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkStatusbar" id="statusbar">
+	  <property name="visible">True</property>
+	  <property name="has_resize_grip">False</property>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkMenu" id="left_shift_popup">
+  <property name="border_width">1</property>
+  <signal name="cancel" handler="menu_cancel_cb"/>
+  <signal name="deactivate" handler="menu_cancel_cb"/>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_left1_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_1 place</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_left_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_left2_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_2 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_left_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_left3_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_3 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_left_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_left4_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_4 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_left_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_left5_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_5 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_left_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_left6_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_6 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_left_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_left7_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_7 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_left_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_left8_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_8 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_left_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_left9_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_9 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_left_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_left10_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">10 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_left_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_left11_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">11 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_left_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_left12_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">12 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_left_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_left13_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">13 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_left_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_left14_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">14 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_left_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_left15_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">15 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_left_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkMenu" id="right_shift_popup">
+  <property name="border_width">1</property>
+  <signal name="cancel" handler="menu_cancel_cb"/>
+  <signal name="deactivate" handler="menu_cancel_cb"/>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_right1_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_1 place</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_right_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_right2_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_2 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_right_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_right3_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_3 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_right_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_right4_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_4 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_right_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_right5_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_5 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_right_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_right6_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_6 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_right_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_right7_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_7 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_right_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_right8_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_8 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_right_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_right9_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_9 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_right_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_right10_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">10 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_right_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_right11_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">11 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_right_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_right12_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">12 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_right_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_right13_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">13 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_right_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_right14_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">14 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_right_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkMenuItem" id="shift_right15_menu">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">15 places</property>
+      <property name="use_underline">True</property>
+      <signal name="activate" handler="shift_right_cb" last_modification_time="Sat, 13 Oct 2007 03:00:00 GMT"/>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkMenu" id="accuracy_popup">
+  <property name="border_width">1</property>
+  <signal name="cancel" handler="menu_cancel_cb"/>
+  <signal name="deactivate" handler="menu_cancel_cb"/>
+
+  <child>
+    <widget class="GtkRadioMenuItem" id="acc_item0">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_0 significant places</property>
+      <property name="use_underline">True</property>
+      <property name="active">False</property>
+      <signal name="activate" handler="accuracy_radio_cb" last_modification_time="Sat, 13 Oct 2007 03:03:03 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkRadioMenuItem" id="acc_item1">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_1 significant place</property>
+      <property name="use_underline">True</property>
+      <property name="active">False</property>
+      <property name="group">acc_item0</property>
+      <signal name="activate" handler="accuracy_radio_cb" last_modification_time="Sat, 13 Oct 2007 03:03:03 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkRadioMenuItem" id="acc_item2">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_2 significant places</property>
+      <property name="use_underline">True</property>
+      <property name="active">False</property>
+      <property name="group">acc_item0</property>
+      <signal name="activate" handler="accuracy_radio_cb" last_modification_time="Sat, 13 Oct 2007 03:03:03 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkRadioMenuItem" id="acc_item3">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_3 significant places</property>
+      <property name="use_underline">True</property>
+      <property name="active">False</property>
+      <property name="group">acc_item0</property>
+      <signal name="activate" handler="accuracy_radio_cb" last_modification_time="Sat, 13 Oct 2007 03:03:03 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkRadioMenuItem" id="acc_item4">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_4 significant places</property>
+      <property name="use_underline">True</property>
+      <property name="active">False</property>
+      <property name="group">acc_item0</property>
+      <signal name="activate" handler="accuracy_radio_cb" last_modification_time="Sat, 13 Oct 2007 03:03:03 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkRadioMenuItem" id="acc_item5">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_5 significant places</property>
+      <property name="use_underline">True</property>
+      <property name="active">False</property>
+      <property name="group">acc_item0</property>
+      <signal name="activate" handler="accuracy_radio_cb" last_modification_time="Sat, 13 Oct 2007 03:03:03 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkRadioMenuItem" id="acc_item6">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_6 significant places</property>
+      <property name="use_underline">True</property>
+      <property name="active">False</property>
+      <property name="group">acc_item0</property>
+      <signal name="activate" handler="accuracy_radio_cb" last_modification_time="Sat, 13 Oct 2007 03:03:03 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkRadioMenuItem" id="acc_item7">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_7 significant places</property>
+      <property name="use_underline">True</property>
+      <property name="active">False</property>
+      <property name="group">acc_item0</property>
+      <signal name="activate" handler="accuracy_radio_cb" last_modification_time="Sat, 13 Oct 2007 03:03:03 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkRadioMenuItem" id="acc_item8">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_8 significant places</property>
+      <property name="use_underline">True</property>
+      <property name="active">False</property>
+      <property name="group">acc_item0</property>
+      <signal name="activate" handler="accuracy_radio_cb" last_modification_time="Sat, 13 Oct 2007 03:03:03 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkRadioMenuItem" id="acc_item9">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_9 significant places</property>
+      <property name="use_underline">True</property>
+      <property name="active">False</property>
+      <property name="group">acc_item0</property>
+      <signal name="activate" handler="accuracy_radio_cb" last_modification_time="Sat, 13 Oct 2007 03:03:03 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkRadioMenuItem" id="acc_item_other">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">_Other (10) ...</property>
+      <property name="use_underline">True</property>
+      <property name="active">False</property>
+      <property name="group">acc_item0</property>
+      <signal name="activate" handler="accuracy_other_cb" last_modification_time="Sat, 13 Oct 2007 03:03:03 GMT"/>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkSeparatorMenuItem" id="separator4">
+      <property name="visible">True</property>
+    </widget>
+  </child>
+
+  <child>
+    <widget class="GtkCheckMenuItem" id="acc_trailing_zeroes_item">
+      <property name="visible">True</property>
+      <property name="label" translatable="yes">Show _Trailing Zeroes</property>
+      <property name="use_underline">True</property>
+      <property name="active">False</property>
+      <signal name="activate" handler="show_trailing_zeroes_cb"/>
+    </widget>
+  </child>
+</widget>
+
+</glade-interface>
Index: glade/Makefile.am
===================================================================
--- glade/Makefile.am	(revision 1740)
+++ glade/Makefile.am	(working copy)
@@ -1,5 +1,5 @@
 uidir = $(datadir)/gcalctool
 ui_DATA = \
-        mode_panel.glade
+        gcalctool.glade
 
 EXTRA_DIST = $(ui_DATA)
Index: glade/mode_panel.glade
===================================================================
--- glade/mode_panel.glade	(revision 1740)
+++ glade/mode_panel.glade	(working copy)
@@ -1,307 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.4.0 on Fri Oct 12 12:43:52 2007 -->
-<glade-interface>
-  <widget class="GtkWindow" id="window1">
-    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-    <child>
-      <widget class="GtkVBox" id="mode_panel">
-        <property name="visible">True</property>
-        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-        <child>
-          <widget class="GtkHBox" id="hbox1">
-            <property name="visible">True</property>
-            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-            <child>
-              <widget class="GtkHBox" id="hbox1">
-                <property name="visible">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <child>
-                  <widget class="GtkRadioButton" id="degrees_radio">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="has_tooltip">True</property>
-                    <property name="tooltip_text">Set trigonometric type to degrees</property>
-                    <property name="label" translatable="yes">De_grees</property>
-                    <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
-                    <property name="active">True</property>
-                    <property name="draw_indicator">True</property>
-                    <accessibility>
-                      <atkproperty name="AtkObject::accessible_name" translatable="yes">Set trigonometric type to degrees</atkproperty>
-                    </accessibility>
-                    <signal name="toggled" handler="trig_cb"/>
-                  </widget>
-                </child>
-                <child>
-                  <widget class="GtkRadioButton" id="gradians_radio">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="has_tooltip">True</property>
-                    <property name="tooltip_text">Set trigonometric type to gradians</property>
-                    <property name="label" translatable="yes">Gr_adians</property>
-                    <property name="use_underline">True</property>
-                    <property name="response_id">1</property>
-                    <property name="active">True</property>
-                    <property name="draw_indicator">True</property>
-                    <property name="group">degrees_radio</property>
-                    <accessibility>
-                      <atkproperty name="AtkObject::accessible_name" translatable="yes">Set trigonometric type to gradians</atkproperty>
-                    </accessibility>
-                    <signal name="toggled" handler="trig_cb"/>
-                  </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkRadioButton" id="radians_radio">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="has_tooltip">True</property>
-                    <property name="tooltip_text">Set trigonometric type to radians</property>
-                    <property name="label" translatable="yes">_Radians</property>
-                    <property name="use_underline">True</property>
-                    <property name="response_id">2</property>
-                    <property name="draw_indicator">True</property>
-                    <property name="group">degrees_radio</property>
-                    <accessibility>
-                      <atkproperty name="AtkObject::accessible_name" translatable="yes">Set trigonometric type to radians</atkproperty>
-                    </accessibility>
-                    <signal name="toggled" handler="trig_cb"/>
-                  </widget>
-                  <packing>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkHBox" id="hbox3">
-                <property name="visible">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <child>
-                  <widget class="GtkRadioButton" id="binary_radio">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="label" translatable="yes">_Bin</property>
-                    <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
-                    <property name="active">True</property>
-                    <property name="draw_indicator">True</property>
-                    <accessibility>
-                      <atkproperty name="AtkObject::accessible_name" translatable="yes">Set numeric base to binary (base 2)</atkproperty>
-                    </accessibility>
-                    <signal name="toggled" handler="base_cb"/>
-                  </widget>
-                </child>
-                <child>
-                  <widget class="GtkRadioButton" id="octal_radio">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="has_tooltip">True</property>
-                    <property name="tooltip_text">Set numeric base to octal (base 8)</property>
-                    <property name="label" translatable="yes">_Oct</property>
-                    <property name="use_underline">True</property>
-                    <property name="response_id">1</property>
-                    <property name="active">True</property>
-                    <property name="draw_indicator">True</property>
-                    <property name="group">binary_radio</property>
-                    <signal name="toggled" handler="base_cb"/>
-                  </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkRadioButton" id="decimal_radio">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="has_tooltip">True</property>
-                    <property name="tooltip_text">Set numeric base to decimal (base 10)</property>
-                    <property name="label" translatable="yes">_Dec</property>
-                    <property name="use_underline">True</property>
-                    <property name="response_id">2</property>
-                    <property name="active">True</property>
-                    <property name="draw_indicator">True</property>
-                    <property name="group">binary_radio</property>
-                    <accessibility>
-                      <atkproperty name="AtkObject::accessible_name" translatable="yes">Set numeric base to decimal (base 10)</atkproperty>
-                    </accessibility>
-                    <signal name="toggled" handler="base_cb"/>
-                  </widget>
-                  <packing>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkRadioButton" id="hexadecimal_radio">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="has_tooltip">True</property>
-                    <property name="tooltip_text">Set numeric base to hexadecimal (base 10)</property>
-                    <property name="label" translatable="yes">_Hex</property>
-                    <property name="use_underline">True</property>
-                    <property name="response_id">3</property>
-                    <property name="active">True</property>
-                    <property name="draw_indicator">True</property>
-                    <property name="group">binary_radio</property>
-                    <accessibility>
-                      <atkproperty name="AtkObject::accessible_name" translatable="yes">Set numeric base to hexadecimal (base 16)</atkproperty>
-                    </accessibility>
-                    <signal name="toggled" handler="base_cb"/>
-                  </widget>
-                  <packing>
-                    <property name="position">3</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="pack_type">GTK_PACK_END</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-          </packing>
-        </child>
-        <child>
-          <widget class="GtkHBox" id="hbox2">
-            <property name="visible">True</property>
-            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-            <child>
-              <widget class="GtkHBox" id="hbox4">
-                <property name="visible">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <child>
-                  <widget class="GtkCheckButton" id="inverse_check">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="tooltip" translatable="yes">Set inverse option for trigonometric functions</property>
-                    <property name="label" translatable="yes">_Inv</property>
-                    <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
-                    <property name="draw_indicator">True</property>
-                    <accessibility>
-                      <atkproperty name="AtkObject::accessible_name" translatable="yes">Set inverse option for trigonometric functions</atkproperty>
-                    </accessibility>
-                    <signal name="toggled" handler="inv_cb"/>
-                  </widget>
-                </child>
-                <child>
-                  <widget class="GtkCheckButton" id="hyperbolic_check">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="tooltip" translatable="yes">Set hyperbolic option for trigonometric functions</property>
-                    <property name="label" translatable="yes">H_yp</property>
-                    <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
-                    <property name="draw_indicator">True</property>
-                    <accessibility>
-                      <atkproperty name="AtkObject::accessible_name" translatable="yes">Set hyperbolic option for trigonometric functions</atkproperty>
-                    </accessibility>
-                    <signal name="toggled" handler="hyp_cb"/>
-                  </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkHBox" id="hbox5">
-                <property name="visible">True</property>
-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                <child>
-                  <widget class="GtkRadioButton" id="engineering_radio">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="tooltip" translatable="yes">Set display type to engineering format</property>
-                    <property name="label" translatable="yes">E_ng</property>
-                    <property name="use_underline">True</property>
-                    <property name="response_id">0</property>
-                    <property name="active">True</property>
-                    <property name="draw_indicator">True</property>
-                    <accessibility>
-                      <atkproperty name="AtkObject::accessible_name" translatable="yes">Set display type to engineering format</atkproperty>
-                    </accessibility>
-                    <signal name="group_changed" handler="disp_cb"/>
-                  </widget>
-                </child>
-                <child>
-                  <widget class="GtkRadioButton" id="fixed_point_radio">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="tooltip" translatable="yes">Set display type to fixed-point format</property>
-                    <property name="label" translatable="yes">_Fix</property>
-                    <property name="use_underline">True</property>
-                    <property name="response_id">1</property>
-                    <property name="active">True</property>
-                    <property name="draw_indicator">True</property>
-                    <property name="group">engineering_radio</property>
-                    <accessibility>
-                      <atkproperty name="AtkObject::accessible_name" translatable="yes">Set display type to fixed-point format</atkproperty>
-                    </accessibility>
-                    <signal name="group_changed" handler="disp_cb"/>
-                  </widget>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <widget class="GtkRadioButton" id="scientific_radio">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                    <property name="tooltip" translatable="yes">Set display type to scientific format</property>
-                    <property name="label" translatable="yes">_Sci</property>
-                    <property name="use_underline">True</property>
-                    <property name="response_id">2</property>
-                    <property name="active">True</property>
-                    <property name="draw_indicator">True</property>
-                    <property name="group">engineering_radio</property>
-                    <accessibility>
-                      <atkproperty name="AtkObject::accessible_name" translatable="yes">Set display type to scientific format</atkproperty>
-                    </accessibility>
-                    <signal name="group_changed" handler="disp_cb"/>
-                  </widget>
-                  <packing>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="expand">False</property>
-                <property name="pack_type">GTK_PACK_END</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
-</glade-interface>
Index: po/POTFILES.in
===================================================================
--- po/POTFILES.in	(revision 1740)
+++ po/POTFILES.in	(working copy)
@@ -11,3 +11,4 @@
 gcalctool/mp.c
 gcalctool/mpmath.c
 gcalctool.desktop.in
+gcalctool/gcalctool.glade
