[gcalctool/gcalctool-newui2] ...
- From: Robert Ancell <rancell src gnome org>
- To: svn-commits-list gnome org
- Subject: [gcalctool/gcalctool-newui2] ...
- Date: Sat, 4 Jul 2009 15:13:37 +0000 (UTC)
commit 3fae5beb64d632a50fe91d7cd480fe89c5934720
Author: Robert Ancell <robert ancell gmail com>
Date: Tue Jun 30 11:54:36 2009 +1000
...
data/gcalctool.ui | 20 ++++++++++----------
src/gtk.c | 35 +++++++++++++++++++++++++++++++----
2 files changed, 41 insertions(+), 14 deletions(-)
---
diff --git a/data/gcalctool.ui b/data/gcalctool.ui
index 2be22e4..4687c73 100644
--- a/data/gcalctool.ui
+++ b/data/gcalctool.ui
@@ -2138,7 +2138,7 @@
<property name="AtkObject::accessible-name" translatable="yes">Numeric 4</property>
</object>
</child>
- <signal name="clicked" handler="button_cb"/>
+ <signal name="clicked" handler="digit_cb"/>
</object>
<packing>
<property name="top_attach">1</property>
@@ -2161,7 +2161,7 @@
<property name="AtkObject::accessible-name" translatable="yes">Numeric 7</property>
</object>
</child>
- <signal name="clicked" handler="button_cb"/>
+ <signal name="clicked" handler="digit_cb"/>
</object>
<packing>
<property name="x_options">GTK_EXPAND | GTK_SHRINK | GTK_FILL</property>
@@ -2182,7 +2182,7 @@
<property name="AtkObject::accessible-name" translatable="yes">Numeric 8</property>
</object>
</child>
- <signal name="clicked" handler="button_cb"/>
+ <signal name="clicked" handler="digit_cb"/>
</object>
<packing>
<property name="left_attach">1</property>
@@ -2205,7 +2205,7 @@
<property name="AtkObject::accessible-name" translatable="yes">Numeric 9</property>
</object>
</child>
- <signal name="clicked" handler="button_cb"/>
+ <signal name="clicked" handler="digit_cb"/>
</object>
<packing>
<property name="left_attach">2</property>
@@ -2228,7 +2228,7 @@
<property name="AtkObject::accessible-name" translatable="yes">Numeric 5</property>
</object>
</child>
- <signal name="clicked" handler="button_cb"/>
+ <signal name="clicked" handler="digit_cb"/>
</object>
<packing>
<property name="left_attach">1</property>
@@ -2253,7 +2253,7 @@
<property name="AtkObject::accessible-name" translatable="yes">Numeric 6</property>
</object>
</child>
- <signal name="clicked" handler="button_cb"/>
+ <signal name="clicked" handler="digit_cb"/>
</object>
<packing>
<property name="left_attach">2</property>
@@ -2302,7 +2302,7 @@
<property name="AtkObject::accessible-name" translatable="yes">Numeric 1</property>
</object>
</child>
- <signal name="clicked" handler="button_cb"/>
+ <signal name="clicked" handler="digit_cb"/>
</object>
<packing>
<property name="top_attach">2</property>
@@ -2325,7 +2325,7 @@
<property name="AtkObject::accessible-name" translatable="yes">Numeric 2</property>
</object>
</child>
- <signal name="clicked" handler="button_cb"/>
+ <signal name="clicked" handler="digit_cb"/>
</object>
<packing>
<property name="left_attach">1</property>
@@ -2350,7 +2350,7 @@
<property name="AtkObject::accessible-name" translatable="yes">Numeric 0</property>
</object>
</child>
- <signal name="clicked" handler="button_cb"/>
+ <signal name="clicked" handler="digit_cb"/>
</object>
<packing>
<property name="top_attach">3</property>
@@ -2425,7 +2425,7 @@
<property name="AtkObject::accessible-name" translatable="yes">Numeric 3</property>
</object>
</child>
- <signal name="clicked" handler="button_cb"/>
+ <signal name="clicked" handler="digit_cb"/>
</object>
<packing>
<property name="left_attach">2</property>
diff --git a/src/gtk.c b/src/gtk.c
index 60a7a50..c885157 100644
--- a/src/gtk.c
+++ b/src/gtk.c
@@ -49,8 +49,8 @@ static const char *mode_names[] = { "BASIC", "ADVANCED", "FINANCIAL",
"SCIENTIFIC", "PROGRAMMING", NULL };
typedef struct {
- char *widget_name;
- char *data;
+ const char *widget_name;
+ const char *data;
} ButtonData;
static ButtonData button_data[] = {
@@ -261,11 +261,16 @@ static void load_ui(GtkBuilder *ui, const gchar *filename)
exit(0);
}
-static void set_data(GtkBuilder *ui, const gchar *object_name, const gchar *name, gpointer value)
+static void set_data(GtkBuilder *ui, const gchar *object_name, const gchar *name, const gpointer value)
{
g_object_set_data(gtk_builder_get_object(ui, object_name), name, value);
}
+static void set_string_data(GtkBuilder *ui, const gchar *object_name, const gchar *name, const char *value)
+{
+ g_object_set_data(gtk_builder_get_object(ui, object_name), name, (gpointer)value);
+}
+
static void set_int_data(GtkBuilder *ui, const gchar *object_name, const gchar *name, gint value)
{
set_data(ui, object_name, name, GINT_TO_POINTER(value));
@@ -1312,6 +1317,18 @@ popup_cb(GtkWidget *widget, GdkEventButton *event)
}
}
+G_MODULE_EXPORT
+void
+digit_cb(GtkWidget *widget, GdkEventButton *event)
+{
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(X.superscript_toggle)))
+ do_text(g_object_get_data(G_OBJECT(widget), "calc_superscript_text"));
+ else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(X.subscript_toggle)))
+ do_text(g_object_get_data(G_OBJECT(widget), "calc_subscript_text"));
+ else
+ do_text(g_object_get_data(G_OBJECT(widget), "calc_text"));
+}
+
G_MODULE_EXPORT
void
@@ -1704,7 +1721,17 @@ create_main_window()
/* Connect text to buttons */
for (i = 0; button_data[i].widget_name != NULL; i++) {
SNPRINTF(name, MAXLINE, "calc_%s_button", button_data[i].widget_name);
- set_data(X.ui, name, "calc_text", button_data[i].data);
+ set_string_data(X.ui, name, "calc_text", button_data[i].data);
+ }
+
+ /* Connect super and subscript */
+ for (i = 0; i < 10; i++) {
+ static const char *subscript_digits[] = {"â??", "â??", "â??", "â??", "â??", "â??", "â??", "â??", "â??", "â??"};
+ static const char *superscript_digits[] = {"�", "¹", "²", "³", "�", "�", "�", "�", "�", "�"};
+
+ SNPRINTF(name, MAXLINE, "calc_%d_button", i);
+ set_string_data(X.ui, name, "calc_subscript_text", subscript_digits[i]);
+ set_string_data(X.ui, name, "calc_superscript_text", superscript_digits[i]);
}
/* Connect menus to popup buttons */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]