[gcalctool/gcalctool-newui2] ...
- From: Robert Ancell <rancell src gnome org>
- To: svn-commits-list gnome org
- Subject: [gcalctool/gcalctool-newui2] ...
- Date: Thu, 25 Jun 2009 10:41:24 +0000 (UTC)
commit fb8bb46cd5fbdd0f1e6b42b86ca51d4f7e877cdd
Author: Robert Ancell <robert ancell gmail com>
Date: Thu Jun 25 20:41:12 2009 +1000
...
data/gcalctool.ui | 635 +++++++++++++++++------------------------------------
src/display.c | 21 +--
src/gtk.c | 260 ++--------------------
3 files changed, 228 insertions(+), 688 deletions(-)
---
diff --git a/data/gcalctool.ui b/data/gcalctool.ui
index fd5804c..271f450 100644
--- a/data/gcalctool.ui
+++ b/data/gcalctool.ui
@@ -119,6 +119,20 @@
<signal name="activate" handler="insert_ascii_cb"/>
</object>
</child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="menuitem2">
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImageMenuItem" id="menuitem6">
+ <property name="label">gtk-preferences</property>
+ <property name="visible">True</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <signal name="activate" handler="show_preferences_cb"/>
+ </object>
+ </child>
</object>
</child>
</object>
@@ -201,35 +215,6 @@
</object>
</child>
<child>
- <object class="GtkCheckMenuItem" id="show_trailing_zeroes_menu">
- <property name="visible">True</property>
- <property name="tooltip_text" translatable="yes">Show trailing zeroes</property>
- <property name="label" translatable="yes" comments="View|Show Trailing Zeroes menu item">Show _Trailing Zeroes</property>
- <property name="use_underline">True</property>
- <accelerator key="T" signal="activate" modifiers="GDK_CONTROL_MASK"/>
- <signal name="select" handler="menu_item_select_cb"/>
- <signal name="deselect" handler="menu_item_deselect_cb"/>
- <signal name="activate" handler="show_trailing_zeroes_cb"/>
- </object>
- </child>
- <child>
- <object class="GtkCheckMenuItem" id="show_thousands_separator_menu">
- <property name="visible">True</property>
- <property name="tooltip_text" translatable="yes">Show thousands separator</property>
- <property name="label" translatable="yes" comments="View|Show Thousands Separator menu item">Show T_housands Separator</property>
- <property name="use_underline">True</property>
- <accelerator key="K" signal="activate" modifiers="GDK_CONTROL_MASK"/>
- <signal name="select" handler="menu_item_select_cb"/>
- <signal name="deselect" handler="menu_item_deselect_cb"/>
- <signal name="activate" handler="show_thousands_separator_cb"/>
- </object>
- </child>
- <child>
- <object class="GtkSeparatorMenuItem" id="separator2">
- <property name="visible">True</property>
- </object>
- </child>
- <child>
<object class="GtkCheckMenuItem" id="show_registers_menu">
<property name="visible">True</property>
<property name="tooltip_text" translatable="yes">Show memory registers</property>
@@ -4390,132 +4375,101 @@
</object>
</child>
</object>
- <object class="GtkMenu" id="accuracy_popup">
- <property name="border_width">1</property>
- <child>
- <object class="GtkRadioMenuItem" id="acc_item0">
- <property name="visible">True</property>
- <property name="label" translatable="yes" comments="Accuracy Popup: Menu item to set accuracy to 0 significant places">_0 significant places</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="accuracy_radio_cb"/>
- </object>
- </child>
- <child>
- <object class="GtkRadioMenuItem" id="acc_item1">
- <property name="visible">True</property>
- <property name="label" translatable="yes" comments="Accuracy Popup: Menu item to set accuracy to 1 significant place">_1 significant place</property>
- <property name="use_underline">True</property>
- <property name="group">acc_item0</property>
- <signal name="activate" handler="accuracy_radio_cb"/>
- </object>
- </child>
- <child>
- <object class="GtkRadioMenuItem" id="acc_item2">
- <property name="visible">True</property>
- <property name="label" translatable="yes" comments="Accuracy Popup: Menu item to set accuracy to 2 significant places">_2 significant places</property>
- <property name="use_underline">True</property>
- <property name="group">acc_item0</property>
- <signal name="activate" handler="accuracy_radio_cb"/>
- </object>
- </child>
- <child>
- <object class="GtkRadioMenuItem" id="acc_item3">
- <property name="visible">True</property>
- <property name="label" translatable="yes" comments="Accuracy Popup: Menu item to set accuracy to 3 significant places">_3 significant places</property>
- <property name="use_underline">True</property>
- <property name="group">acc_item0</property>
- <signal name="activate" handler="accuracy_radio_cb"/>
- </object>
- </child>
- <child>
- <object class="GtkRadioMenuItem" id="acc_item4">
- <property name="visible">True</property>
- <property name="label" translatable="yes" comments="Accuracy Popup: Menu item to set accuracy to 4 significant places">_4 significant places</property>
- <property name="use_underline">True</property>
- <property name="group">acc_item0</property>
- <signal name="activate" handler="accuracy_radio_cb"/>
- </object>
- </child>
- <child>
- <object class="GtkRadioMenuItem" id="acc_item5">
- <property name="visible">True</property>
- <property name="label" translatable="yes" comments="Accuracy Popup: Menu item to set accuracy to 5 significant places">_5 significant places</property>
- <property name="use_underline">True</property>
- <property name="group">acc_item0</property>
- <signal name="activate" handler="accuracy_radio_cb"/>
- </object>
- </child>
- <child>
- <object class="GtkRadioMenuItem" id="acc_item6">
- <property name="visible">True</property>
- <property name="label" translatable="yes" comments="Accuracy Popup: Menu item to set accuracy to 6 significant places">_6 significant places</property>
- <property name="use_underline">True</property>
- <property name="group">acc_item0</property>
- <signal name="activate" handler="accuracy_radio_cb"/>
- </object>
- </child>
- <child>
- <object class="GtkRadioMenuItem" id="acc_item7">
- <property name="visible">True</property>
- <property name="label" translatable="yes" comments="Accuracy Popup: Menu item to set accuracy to 7 significant places">_7 significant places</property>
- <property name="use_underline">True</property>
- <property name="group">acc_item0</property>
- <signal name="activate" handler="accuracy_radio_cb"/>
- </object>
- </child>
- <child>
- <object class="GtkRadioMenuItem" id="acc_item8">
- <property name="visible">True</property>
- <property name="label" translatable="yes" comments="Accuracy Popup: Menu item to set accuracy to 8 significant places">_8 significant places</property>
- <property name="use_underline">True</property>
- <property name="group">acc_item0</property>
- <signal name="activate" handler="accuracy_radio_cb"/>
- </object>
- </child>
- <child>
- <object class="GtkRadioMenuItem" id="acc_item9">
- <property name="visible">True</property>
- <property name="label" translatable="yes" comments="Accuracy Popup: Menu item to set accuracy to 9 significant places">_9 significant places</property>
- <property name="use_underline">True</property>
- <property name="group">acc_item0</property>
- <signal name="activate" handler="accuracy_radio_cb"/>
- </object>
- </child>
- <child>
- <object class="GtkRadioMenuItem" id="acc_item_other">
- <property name="visible">True</property>
- <property name="label" comments="Variable label button - text set inside gtk.c">(_Other (N) ...)</property>
- <property name="use_underline">True</property>
- <property name="group">acc_item0</property>
- <signal name="activate" handler="accuracy_other_cb"/>
- </object>
- </child>
- <child>
- <object class="GtkSeparatorMenuItem" id="separator4">
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="GtkMenuItem" id="acc_item_default">
- <property name="visible">True</property>
- <property name="label" comments="Set and translated inside gtk.c">Reset to _Default (%d)</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="accuracy_default_cb"/>
- </object>
- </child>
- <child>
- <object class="GtkSeparatorMenuItem" id="separator5">
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="GtkCheckMenuItem" id="acc_trailing_zeroes_item">
- <property name="visible">True</property>
- <property name="label" translatable="yes" comments="Accuracy Popup: Check menu item to enable trailing zeroes">Show _Trailing Zeroes</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="show_trailing_zeroes_cb"/>
- </object>
- </child>
+ <object class="GtkListStore" id="numeric_base_model">
+ <columns>
+ <!-- column-name label -->
+ <column type="gchararray"/>
+ <!-- column-name base -->
+ <column type="gint"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Binary</col>
+ <col id="1">2</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Octal</col>
+ <col id="1">8</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Decimal</col>
+ <col id="1">10</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Hexadecimal</col>
+ <col id="1">16</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="angle_unit_model">
+ <columns>
+ <!-- column-name label -->
+ <column type="gchararray"/>
+ <!-- column-name units -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Degrees</col>
+ <col id="1" translatable="yes">degrees</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Radians</col>
+ <col id="1" translatable="yes">radians</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Gradians</col>
+ <col id="1" translatable="yes">gradians</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="display_format_model">
+ <columns>
+ <!-- column-name label -->
+ <column type="gchararray"/>
+ <!-- column-name format -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Fixed precision</col>
+ <col id="1" translatable="yes">fixed</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Scientific</col>
+ <col id="1" translatable="yes">scientific</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Engineering</col>
+ <col id="1" translatable="yes">engineering</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="word_size_model">
+ <columns>
+ <!-- column-name label -->
+ <column type="gchararray"/>
+ <!-- column-name size -->
+ <column type="gint"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">8-bit</col>
+ <col id="1">8</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">16-bit</col>
+ <col id="1">16</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">32-bit</col>
+ <col id="1">32</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">64-bit</col>
+ <col id="1">64</col>
+ </row>
+ </data>
</object>
<object class="GtkDialog" id="edit_register_names_dialog">
<property name="width_request">380</property>
@@ -4875,110 +4829,6 @@
<action-widget response="-5">button9</action-widget>
</action-widgets>
</object>
- <object class="GtkDialog" id="precision_dialog">
- <property name="border_width">6</property>
- <property name="title" translatable="yes" comments="Title of set precision dialog">Set Precision</property>
- <property name="resizable">False</property>
- <property name="type_hint">dialog</property>
- <property name="has_separator">False</property>
- <signal name="response" handler="precision_dialog_response_cb"/>
- <signal name="delete_event" handler="precision_dialog_delete_cb"/>
- <child internal-child="vbox">
- <object class="GtkVBox" id="dialog-vbox4">
- <property name="visible">True</property>
- <child>
- <object class="GtkHBox" id="hbox22">
- <property name="visible">True</property>
- <property name="border_width">5</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="label52">
- <property name="visible">True</property>
- <property name="label" translatable="yes" comments="Set Precision Dialog: Label before the significant places spin button">Significant _places:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">precision_dialog_spin</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="precision_dialog_spin">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">adjustment1</property>
- <property name="climb_rate">1</property>
- <property name="numeric">True</property>
- <property name="update_policy">if-valid</property>
- <signal name="activate" handler="precision_dialog_activate_cb" after="yes"/>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child internal-child="action_area">
- <object class="GtkHButtonBox" id="dialog-action_area4">
- <property name="visible">True</property>
- <property name="layout_style">end</property>
- <child>
- <object class="GtkButton" id="button10">
- <property name="label">gtk-cancel</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">False</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="button11">
- <property name="label" translatable="yes" comments="Set Precision Dialog: Button to apply settings">_Set</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="pack_type">end</property>
- <property name="position">0</property>
- </packing>
- </child>
- </object>
- </child>
- <action-widgets>
- <action-widget response="-6">button10</action-widget>
- <action-widget response="-5">button11</action-widget>
- </action-widgets>
- </object>
- <object class="GtkAdjustment" id="adjustment1">
- <property name="value">1</property>
- <property name="upper">99</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
- </object>
<object class="GtkTextBuffer" id="textbuffer1"/>
<object class="GtkAccelGroup" id="accelgroup1"/>
<object class="GtkImage" id="image1">
@@ -4987,287 +4837,202 @@
<property name="icon-size">1</property>
</object>
<object class="GtkDialog" id="preferences_dialog">
- <property name="visible">True</property>
<property name="border_width">5</property>
<property name="title" translatable="yes">Preferences</property>
<property name="type_hint">normal</property>
<property name="has_separator">False</property>
+ <signal name="response" handler="preferences_response_cb"/>
+ <signal name="close" handler="preferences_dialog_close_cb"/>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox4">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
- <placeholder/>
- </child>
- <child>
- <object class="GtkButton" id="calc_accuracy_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="focus_on_click">False</property>
- <signal name="clicked" handler="button_cb"/>
- <child>
- <object class="GtkHBox" id="hbox14">
- <property name="visible">True</property>
- <property name="spacing">3</property>
- <child>
- <object class="GtkLabel" id="label10">
- <property name="visible">True</property>
- <property name="label" translatable="yes" comments="Accuracy button">Acc</property>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkArrow" id="arrow8">
- <property name="visible">True</property>
- <property name="arrow_type">down</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox5">
+ <object class="GtkTable" id="table1">
<property name="visible">True</property>
+ <property name="n_rows">7</property>
+ <property name="n_columns">3</property>
+ <property name="column_spacing">6</property>
+ <property name="row_spacing">6</property>
<child>
- <object class="GtkRadioButton" id="degrees_radio">
- <property name="label" translatable="yes" comments="Degrees radio button">De_grees</property>
+ <object class="GtkLabel" id="label1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Numeric _base:</property>
<property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <signal name="toggled" handler="trig_cb"/>
+ <property name="mnemonic_widget">combobox1</property>
</object>
<packing>
- <property name="position">0</property>
+ <property name="right_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="gradians_radio">
- <property name="label" translatable="yes" comments="Gradians radio button">Gr_adians</property>
+ <object class="GtkLabel" id="label2">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Angle units:</property>
<property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">degrees_radio</property>
- <signal name="toggled" handler="trig_cb"/>
+ <property name="mnemonic_widget">combobox2</property>
</object>
<packing>
- <property name="position">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="radians_radio">
- <property name="label" translatable="yes" comments="Radian radio button">_Radians</property>
+ <object class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Display _Format:</property>
<property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">degrees_radio</property>
- <signal name="toggled" handler="trig_cb"/>
+ <property name="mnemonic_widget">combobox3</property>
</object>
<packing>
- <property name="position">2</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">GTK_FILL</property>
</packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox7">
- <property name="visible">True</property>
<child>
- <object class="GtkRadioButton" id="64bit_radio">
- <property name="label" translatable="yes" comments="64 bit radio button">_64 bit</property>
+ <object class="GtkComboBox" id="combobox1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <signal name="toggled" handler="word_cb"/>
+ <property name="model">numeric_base_model</property>
</object>
<packing>
- <property name="position">0</property>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="32bit_radio">
- <property name="label" translatable="yes" comments="32 bit radio button">_32 bit</property>
+ <object class="GtkComboBox" id="combobox2">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">64bit_radio</property>
- <signal name="toggled" handler="word_cb"/>
+ <property name="model">angle_unit_model</property>
</object>
<packing>
- <property name="position">1</property>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="16bit_radio">
- <property name="label" translatable="yes" comments="16 bit radio button">_16 bit</property>
+ <object class="GtkComboBox" id="combobox3">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">64bit_radio</property>
- <signal name="toggled" handler="word_cb"/>
+ <property name="model">display_format_model</property>
</object>
<packing>
- <property name="position">2</property>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
</packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">6</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox6">
- <property name="visible">True</property>
<child>
- <object class="GtkRadioButton" id="binary_radio">
- <property name="label" translatable="yes" comments="Base 2 radio button">_Bin</property>
+ <object class="GtkLabel" id="label4">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Significant _places:</property>
<property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <signal name="toggled" handler="base_cb"/>
+ <property name="mnemonic_widget">spinbutton1</property>
</object>
<packing>
- <property name="position">0</property>
+ <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">GTK_FILL</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="octal_radio">
- <property name="label" translatable="yes" comments="Base 8 radio button">_Oct</property>
+ <object class="GtkLabel" id="label5">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">binary_radio</property>
- <signal name="toggled" handler="base_cb"/>
+ <property name="label" translatable="yes"> </property>
</object>
<packing>
- <property name="position">1</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">5</property>
+ <property name="x_options">GTK_FILL</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="decimal_radio">
- <property name="label" translatable="yes" comments="Base 10 radio button">_Dec</property>
+ <object class="GtkSpinButton" id="spinbutton1">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">binary_radio</property>
- <signal name="toggled" handler="base_cb"/>
+ <property name="invisible_char">•</property>
</object>
<packing>
- <property name="position">2</property>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="hexadecimal_radio">
- <property name="label" translatable="yes" comments="Base 16 radio button">He_x</property>
+ <object class="GtkLabel" id="label6">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Word _size:</property>
<property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">binary_radio</property>
- <signal name="toggled" handler="base_cb"/>
+ <property name="mnemonic_widget">combobox4</property>
</object>
<packing>
- <property name="position">3</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">6</property>
+ <property name="bottom_attach">7</property>
+ <property name="x_options">GTK_FILL</property>
</packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="pack_type">end</property>
- <property name="position">5</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox9">
- <property name="visible">True</property>
<child>
- <object class="GtkRadioButton" id="engineering_radio">
- <property name="label" translatable="yes" comments="Engineering display radio button">E_ng</property>
+ <object class="GtkComboBox" id="combobox4">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <signal name="toggled" handler="disp_cb"/>
+ <property name="model">word_size_model</property>
</object>
<packing>
- <property name="position">0</property>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">6</property>
+ <property name="bottom_attach">7</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="fixed_point_radio">
- <property name="label" translatable="yes" comments="Fixed-point display radio button">_Fix</property>
+ <object class="GtkCheckButton" id="checkbutton1">
+ <property name="label" translatable="yes">Show trailing _zeroes</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
- <property name="group">engineering_radio</property>
- <signal name="toggled" handler="disp_cb"/>
</object>
<packing>
- <property name="position">1</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
</packing>
</child>
<child>
- <object class="GtkRadioButton" id="scientific_radio">
- <property name="label" translatable="yes" comments="Scientific display radio button">_Sci</property>
+ <object class="GtkCheckButton" id="checkbutton2">
+ <property name="label" translatable="yes">Show _thousands separators</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
- <property name="group">engineering_radio</property>
- <signal name="toggled" handler="disp_cb"/>
</object>
<packing>
- <property name="position">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">5</property>
+ <property name="bottom_attach">6</property>
</packing>
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="pack_type">end</property>
- <property name="position">3</property>
+ <property name="position">1</property>
</packing>
</child>
<child internal-child="action_area">
diff --git a/src/display.c b/src/display.c
index cac3e04..5341f2d 100644
--- a/src/display.c
+++ b/src/display.c
@@ -186,10 +186,7 @@ gboolean display_get_integer(GCDisplay *display, gint64 *value)
guint bases[] = {2, 8, 10, 16};
text = display_get_text(display);
- if (text[0] == '\0') {
- text = "0";
- }
- else if (display_is_result(display)) {
+ if (display_is_result(display)) {
display_make_number(display, buf, MAX_DISPLAY, display_get_answer(display), v->base, FALSE);
text = buf;
}
@@ -209,10 +206,7 @@ gboolean display_get_unsigned_integer(GCDisplay *display, guint64 *value)
guint bases[] = {2, 8, 10, 16};
text = display_get_text(display);
- if (text[0] == '\0') {
- text = "0";
- }
- else if (display_is_result(display)) {
+ if (display_is_result(display)) {
display_make_number(display, buf, MAX_DISPLAY, display_get_answer(display), v->base, FALSE);
text = buf;
}
@@ -261,18 +255,11 @@ static void
display_make_text(GCDisplay *display, char *localized, int length, int *cursor)
{
int i;
- MPNumber MP_reg;
char temp[MAX_LOCALIZED], *str, reg[3];
GCDisplayState *e;
e = get_state(display);
- if (display_is_empty(display)) {
- mp_set_from_integer(0, &MP_reg);
- display_make_number(display, temp, MAX_LOCALIZED, &MP_reg, v->base, FALSE);
- str = strdup(temp);
- } else {
- str = strdup(e->expression);
- }
+ str = strdup(e->expression);
/* Substitute answer register */
display_make_number(display, temp, MAX_LOCALIZED, &e->ans, v->base, TRUE);
@@ -589,7 +576,7 @@ gboolean
display_is_usable_number(GCDisplay *display, MPNumber *MPnum)
{
if (display_is_empty(display)) {
- return mp_equation_parse("0", MPnum);
+ return FALSE;
} else {
return mp_equation_parse(display_get_text(display), MPnum);
}
diff --git a/src/gtk.c b/src/gtk.c
index a2afc35..3bca412 100644
--- a/src/gtk.c
+++ b/src/gtk.c
@@ -195,10 +195,6 @@ static struct button_widget button_widgets[] = {
{ 0, 0 },
{ GDK_greater, 0 }},
- {FN_SET_ACCURACY, "accuracy",
- { 0, 0 },
- { GDK_A, 0 }},
-
{FN_STORE, "store",
{ 0, 0 },
{ GDK_S, 0 }},
@@ -423,9 +419,6 @@ typedef struct {
GtkTextBuffer *display_buffer; /* Buffer used in display */
GtkWidget *scrolledwindow; /* Scrolled window for display_item. */
- GtkWidget *precision_dialog;
- GtkWidget *precision_spin;
-
GtkWidget *buttons[NBUTTONS];
GtkWidget *clear_button;
@@ -439,16 +432,8 @@ typedef struct {
GtkWidget *memory_store_labels[MAX_REGISTERS];
GtkWidget *memory_recall_labels[MAX_REGISTERS];
- /* Scientific mode widgets */
- GtkWidget *display_mode_radios[MAXDISPMODES]; /* Numeric display mode. */
- GtkWidget *radian_radio; /* Radian radio button. */
- GtkWidget *degree_radio; /* Degree radio button. */
- GtkWidget *gradian_radio; /* Gradian radio button. */
-
- /* Programming mode widgets */
- GtkWidget *base_radios[4];
- GtkWidget *word_length_radios[3]; /* Wordlength radio buttons. */
-
+ GtkWidget *preferences_dialog;
+
GdkAtom clipboard_atom;
GdkAtom primary_atom;
char *shelf; /* PUT selection shelf contents. */
@@ -564,83 +549,35 @@ position_popup(GtkWidget *base, GtkWidget *popup,
void
ui_set_accuracy(int accuracy)
{
- GtkWidget *widget;
- char text[MAXLINE];
-
- /* Translators: Accuracy Popup: Menu item to show the accuracy dialog. %d is replaced with the current accuracy. */
- SNPRINTF(text, MAXLINE, _("_Other (%d) ..."), accuracy);
- widget = gtk_bin_get_child(GTK_BIN(GET_OBJECT("acc_item_other")));
- gtk_label_set_markup_with_mnemonic(GTK_LABEL(widget), text);
-
- gtk_widget_set_tooltip_text (GET_WIDGET("calc_accuracy_button"),
- /* Translators: Tooltip for accuracy button */
- ngettext("Set accuracy from 0 to %d numeric place. [A]",
- "Set accuracy from 0 to %d numeric places. [A]",
- MAXACC));
-
- if (accuracy >= 0 && accuracy <= 9) {
- SNPRINTF(text, MAXLINE, "acc_item%d", accuracy);
- widget = GET_WIDGET(text);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget), TRUE);
- }
-
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(X.precision_spin), (double)accuracy);
-
- /* Hide the manual dialog */
- gtk_widget_hide(X.precision_dialog);
+ //FIXME: Obsolete
}
void
ui_set_trigonometric_mode(MPAngleUnit units)
{
- GtkWidget *radio;
- switch(units) {
- default:
- case MP_RADIANS:
- radio = X.radian_radio;
- break;
- case MP_DEGREES:
- radio = X.degree_radio;
- break;
- case MP_GRADIANS:
- radio = X.gradian_radio;
- break;
- }
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio), 1);
+ //FIXME: Obsolete
}
void
ui_set_numeric_mode(DisplayFormat mode)
{
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(X.display_mode_radios[mode]), TRUE);
+ //FIXME: Obsolete
}
void
ui_set_show_thousands_separator(gboolean visible)
{
- GtkWidget *menu;
-
- display_set_show_thousands_separator(&v->display, visible);
-
- menu = GET_WIDGET("show_thousands_separator_menu");
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), visible);
+ // FIXME: Obsolete
}
void
ui_set_show_trailing_zeroes(gboolean visible)
{
- GtkWidget *menu;
-
- display_set_show_trailing_zeroes(&v->display, visible);
-
- menu = GET_WIDGET("show_trailing_zeroes_menu");
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), visible);
- menu = GET_WIDGET("acc_trailing_zeroes_item");
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), visible);
+ // FIXME: Obsolete
}
@@ -771,7 +708,6 @@ ui_set_mode(ModeType mode)
g_object_set(G_OBJECT(X.sci_panel), "visible", mode == SCIENTIFIC, NULL);
g_object_set(G_OBJECT(X.prog_panel), "visible", mode == PROGRAMMING, NULL);
g_object_set(G_OBJECT(X.bit_panel), "visible", mode == PROGRAMMING, NULL);
- gtk_widget_set_sensitive(GET_WIDGET("show_trailing_zeroes_menu"), mode == SCIENTIFIC || mode == PROGRAMMING);
gtk_widget_set_sensitive(GET_WIDGET("show_registers_menu"), mode != BASIC);
/* HACK: Some horrible hack down below to keep the buttons the same size.
@@ -954,12 +890,7 @@ ui_set_error_state(gboolean error)
gtk_widget_set_sensitive(GET_WIDGET("view_advanced_menu"), !v->error);
gtk_widget_set_sensitive(GET_WIDGET("view_financial_menu"), !v->error);
gtk_widget_set_sensitive(GET_WIDGET("view_scientific_menu"), !v->error);
- gtk_widget_set_sensitive(GET_WIDGET("show_trailing_zeroes_menu"),
- !v->error && (X.mode == SCIENTIFIC ||
- X.mode == PROGRAMMING));
- gtk_widget_set_sensitive(GET_WIDGET("show_thousands_separator_menu"),
- !v->error);
- gtk_widget_set_sensitive(GET_WIDGET("show_registers_menu"), !v->error);
+ gtk_widget_set_sensitive(GET_WIDGET("show_registers_menu"), !v->error);
gtk_widget_set_sensitive(GET_WIDGET("about_menu"), !v->error);
}
@@ -975,49 +906,14 @@ ui_beep()
void
ui_set_base(int base)
{
- GtkWidget *widget;
-
- v->base = base;
-
- switch(base)
- {
- case 2:
- widget = X.base_radios[0];
- break;
- case 8:
- widget = X.base_radios[1];
- break;
- default:
- case 10:
- widget = X.base_radios[2];
- break;
- case 16:
- widget = X.base_radios[3];
- break;
- }
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
+ //FIXME: Obsolete
}
void
ui_set_wordlen(int len)
{
- GtkWidget *widget;
- v->wordlen = len;
- switch (len) {
- case 64:
- widget = X.word_length_radios[0];
- break;
- case 32:
- widget = X.word_length_radios[1];
- break;
- case 16:
- widget = X.word_length_radios[2];
- break;
- default:
- return;
- }
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), 1);
+ //FIXME: Obsolete
}
@@ -1610,6 +1506,8 @@ main_window_key_press_cb(GtkWidget *widget, GdkEventKey *event)
{
int i, j, state;
GtkWidget *button;
+
+ printf("'%s'\n", event->string);
/* Only look at the modifiers we use */
state = event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK);
@@ -1861,47 +1759,6 @@ mode_radio_cb(GtkWidget *menu)
G_MODULE_EXPORT
void
-accuracy_radio_cb(GtkWidget *widget)
-{
- int count;
- count = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "accuracy"));
- if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))
- do_button(FN_SET_ACCURACY, count);
-}
-
-
-G_MODULE_EXPORT
-void
-accuracy_other_cb(GtkWidget *widget)
-{
- if (!GTK_WIDGET_VISIBLE(X.precision_dialog))
- position_popup(X.main_window, X.precision_dialog, POPUP_LEFT);
- gtk_widget_grab_focus(GTK_WIDGET(X.precision_spin));
- gtk_widget_show(X.precision_dialog);
-}
-
-
-G_MODULE_EXPORT
-void
-accuracy_default_cb(GtkWidget *widget)
-{
- do_button(FN_SET_ACCURACY, DEFAULT_ACCURACY);
-}
-
-
-G_MODULE_EXPORT
-void
-show_trailing_zeroes_cb(GtkWidget *widget)
-{
- gboolean visible;
- visible = gtk_check_menu_item_get_active(
- GTK_CHECK_MENU_ITEM(widget));
- ui_set_show_trailing_zeroes(visible);
-}
-
-
-G_MODULE_EXPORT
-void
quit_cb(GtkWidget *widget)
{
save_win_position();
@@ -1911,51 +1768,34 @@ quit_cb(GtkWidget *widget)
G_MODULE_EXPORT
void
-precision_dialog_response_cb(GtkWidget *dialog, gint response_id)
-{
- int val;
- if (response_id == GTK_RESPONSE_OK) {
- val = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(X.precision_spin));
- do_button(FN_SET_ACCURACY, val);
- }
-
- gtk_widget_hide(dialog);
-}
-
-
-G_MODULE_EXPORT
-gboolean
-precision_dialog_delete_cb(GtkWidget *dialog)
+edit_register_names_cb(GtkMenuItem *item)
{
- precision_dialog_response_cb(dialog, GTK_RESPONSE_CANCEL);
- return TRUE;
+ ui_set_registers_visible(TRUE);
}
G_MODULE_EXPORT
void
-precision_dialog_activate_cb(GtkWidget *spin)
+show_preferences_cb(GtkMenuItem *menu)
{
- precision_dialog_response_cb(X.precision_dialog, GTK_RESPONSE_OK);
+ gtk_window_present(GTK_WINDOW(X.preferences_dialog));
}
G_MODULE_EXPORT
void
-show_thousands_separator_cb(GtkWidget *widget)
+preferences_response_cb(GtkWidget *widget, gint id)
{
- gboolean visible;
-
- visible = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget));
- ui_set_show_thousands_separator(visible);
+ gtk_widget_hide(X.preferences_dialog);
}
G_MODULE_EXPORT
-void
-edit_register_names_cb(GtkMenuItem *item)
+gboolean
+preferences_dialog_close_cb(GtkWidget *widget)
{
- ui_set_registers_visible(TRUE);
+ preferences_response_cb(widget, 0);
+ return FALSE;
}
@@ -1992,7 +1832,6 @@ create_main_window()
GtkWidget *widget;
PangoFontDescription *font_desc;
GtkSizeGroup *size_group;
- GtkAccelGroup *accel_group;
GtkWidget *treeview;
GError *error = NULL;
@@ -2023,8 +1862,6 @@ create_main_window()
X.main_window = GET_WIDGET("calc_window");
X.ascii_dialog = GET_WIDGET("ascii_dialog");
X.ascii_entry = GET_WIDGET("ascii_entry");
- X.precision_dialog = GET_WIDGET("precision_dialog");
- X.precision_spin = GET_WIDGET("precision_dialog_spin");
X.register_dialog = GET_WIDGET("edit_register_names_dialog");
X.menubar = GET_WIDGET("menubar");
X.scrolledwindow = GET_WIDGET("display_scroll"),
@@ -2036,20 +1873,8 @@ create_main_window()
X.fin_panel = GET_WIDGET("financial_panel");
X.bit_panel = GET_WIDGET("bit_panel");
X.clear_button = GET_WIDGET("calc_clear_button");
- X.degree_radio = GET_WIDGET("degrees_radio");
- X.gradian_radio = GET_WIDGET("gradians_radio");
- X.radian_radio = GET_WIDGET("radians_radio");
- X.base_radios[0] = GET_WIDGET("binary_radio");
- X.base_radios[1] = GET_WIDGET("octal_radio");
- X.base_radios[2] = GET_WIDGET("decimal_radio");
- X.base_radios[3] = GET_WIDGET("hexadecimal_radio");
- X.display_mode_radios[0] = GET_WIDGET("engineering_radio");
- X.display_mode_radios[1] = GET_WIDGET("fixed_point_radio");
- X.display_mode_radios[2] = GET_WIDGET("scientific_radio");
- X.word_length_radios[0] = GET_WIDGET("64bit_radio");
- X.word_length_radios[1] = GET_WIDGET("32bit_radio");
- X.word_length_radios[2] = GET_WIDGET("16bit_radio");
- X.statusbar = GET_WIDGET("statusbar");
+ X.statusbar = GET_WIDGET("statusbar");
+ X.preferences_dialog = GET_WIDGET("preferences_dialog");
/* Load buttons and set them all to be the same size */
size_group = gtk_size_group_new(GTK_SIZE_GROUP_BOTH);
@@ -2065,7 +1890,6 @@ create_main_window()
}
/* Make popup buttons */
- set_data(X.ui, "calc_accuracy_button", "calc_menu", GET_WIDGET("accuracy_popup"));
set_data(X.ui, "calc_shift_left_button", "calc_menu", GET_WIDGET("left_shift_popup"));
set_data(X.ui, "calc_shift_right_button", "calc_menu", GET_WIDGET("right_shift_popup"));
@@ -2102,20 +1926,14 @@ create_main_window()
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_registers_menu");
set_menubar_tooltip("help_menu");
set_menubar_tooltip("about_menu");
/* Make dialogs transient of the main window */
gtk_window_set_transient_for(GTK_WINDOW(X.ascii_dialog), GTK_WINDOW(X.main_window));
- gtk_window_set_transient_for(GTK_WINDOW(X.precision_dialog), GTK_WINDOW(X.main_window));
gtk_window_set_transient_for(GTK_WINDOW(X.register_dialog), GTK_WINDOW(X.main_window));
- /* Can't set max length for spin buttons in Glade 2 */
- gtk_entry_set_max_length(GTK_ENTRY(X.precision_spin), 2);
-
/* Make register tree model */
X.register_model = create_register_model();
treeview = GET_WIDGET("edit_register_names_treeview");
@@ -2142,20 +1960,6 @@ create_main_window()
gtk_widget_realize(X.main_window);
set_win_position();
- g_object_set_data(G_OBJECT(X.radian_radio), "trig_mode", GINT_TO_POINTER(MP_RADIANS));
- g_object_set_data(G_OBJECT(X.degree_radio), "trig_mode", GINT_TO_POINTER(MP_DEGREES));
- g_object_set_data(G_OBJECT(X.gradian_radio), "trig_mode", GINT_TO_POINTER(MP_GRADIANS));
- for (i = 0; i < 4; i++) {
- int base_values[4] = {2, 8, 10, 16};
- g_object_set_data(G_OBJECT(X.base_radios[i]), "base", GINT_TO_POINTER(base_values[i]));
- }
- for (i = 0; i < 3; i++)
- g_object_set_data(G_OBJECT(X.display_mode_radios[i]), "numeric_mode", GINT_TO_POINTER(i));
-
- g_object_set_data(G_OBJECT(X.word_length_radios[0]), "wordlen_mode", GINT_TO_POINTER(64));
- g_object_set_data(G_OBJECT(X.word_length_radios[1]), "wordlen_mode", GINT_TO_POINTER(32));
- g_object_set_data(G_OBJECT(X.word_length_radios[2]), "wordlen_mode", GINT_TO_POINTER(16));
-
X.status_image = GET_WIDGET("status_image");
/* Set modes for menu items */
@@ -2171,14 +1975,6 @@ create_main_window()
set_int_data(X.ui, "view_scientific_menu", "calcmode", SCIENTIFIC);
set_int_data(X.ui, "view_programming_menu", "calcmode", PROGRAMMING);
- /* Make shortcuts for accuracy menus */
- accel_group = gtk_accel_group_new();
- gtk_window_add_accel_group(GTK_WINDOW(X.main_window), accel_group);
- for (i = 0; i < 10; i++) {
- SNPRINTF(name, MAXLINE, "acc_item%d", i);
- set_int_data(X.ui, name, "accuracy", i);
- }
-
/* Localize label for numeric point */
gtk_button_set_label(GTK_BUTTON(GET_OBJECT("calc_numeric_point_button")), v->radix);
@@ -2225,8 +2021,6 @@ void
ui_load(void)
{
int boolval;
- char text[MAXLINE];
- GtkWidget *widget;
/* Create main gcalctool window. */
create_main_window();
@@ -2245,12 +2039,6 @@ ui_load(void)
/* Show the memory register window? */
if (get_boolean_resource(R_REGS, &boolval))
ui_set_registers_visible(boolval);
-
- /* Set default accuracy menu item */
- /* Translators: Accuracy Popup: Menu item to reset the accuracy to the default value. %d is replaced with the default value. */
- SNPRINTF(text, MAXLINE, _("Reset to _Default (%d)"), DEFAULT_ACCURACY);
- widget = gtk_bin_get_child(GTK_BIN(GET_OBJECT("acc_item_default")));
- gtk_label_set_markup_with_mnemonic(GTK_LABEL(widget), text);
}
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]