84 e.document = event->obj->ctx->document; |
84 e.document = event->obj->ctx->document; |
85 e.eventdata = NULL; |
85 e.eventdata = NULL; |
86 e.intval = gtk_toggle_tool_button_get_active(widget); |
86 e.intval = gtk_toggle_tool_button_get_active(widget); |
87 event->callback(&e, event->userdata); |
87 event->callback(&e, event->userdata); |
88 } |
88 } |
|
89 |
|
90 int ui_toggle_button_get(UiInteger *integer) { |
|
91 GtkToggleButton *button = integer->obj; |
|
92 integer->value = (int)gtk_toggle_button_get_active(button); |
|
93 return integer->value; |
|
94 } |
|
95 |
|
96 void ui_toggle_button_set(UiInteger *integer, int value) { |
|
97 GtkToggleButton *button = integer->obj; |
|
98 integer->value = value; |
|
99 gtk_toggle_button_set_active(button, value != 0 ? TRUE : FALSE); |
|
100 } |
|
101 |
|
102 |
|
103 UIWIDGET ui_checkbox(UiObject *obj, char *label, UiInteger *value) { |
|
104 GtkWidget *button = gtk_check_button_new_with_label(label); |
|
105 |
|
106 // bind value |
|
107 if(value) { |
|
108 value->obj = GTK_TOGGLE_BUTTON(button); |
|
109 value->get = ui_toggle_button_get; |
|
110 value->set = ui_toggle_button_set; |
|
111 if(value->value != 0) { |
|
112 gtk_toggle_button_set_active(value->obj, TRUE); |
|
113 } |
|
114 } |
|
115 |
|
116 UiContainer *ct = uic_get_current_container(obj); |
|
117 ct->add(ct, button, FALSE); |
|
118 |
|
119 return button; |
|
120 } |
|
121 |
|
122 UIWIDGET ui_checkbox_cb(UiObject *obj, char *label, ui_callback f, void *data) { |
|
123 GtkWidget *button = gtk_check_button_new_with_label(label); |
|
124 |
|
125 if(f) { |
|
126 //UiEventData *event = ucx_mempool_malloc( |
|
127 // obj->ctx->mempool, |
|
128 // sizeof(UiEventData)); |
|
129 UiEventData *event = malloc(sizeof(UiEventData)); |
|
130 event->obj = obj; |
|
131 event->userdata = data; |
|
132 event->callback = f; |
|
133 event->value = 0; |
|
134 |
|
135 g_signal_connect( |
|
136 button, |
|
137 "clicked", |
|
138 G_CALLBACK(ui_button_toggled), |
|
139 event); |
|
140 g_signal_connect( |
|
141 button, |
|
142 "destroy", |
|
143 G_CALLBACK(ui_destroy_userdata), |
|
144 event); |
|
145 } |
|
146 |
|
147 UiContainer *ct = uic_get_current_container(obj); |
|
148 ct->add(ct, button, FALSE); |
|
149 |
|
150 return button; |
|
151 } |
|
152 |