| 45 gtk_misc_set_alignment(GTK_MISC(widget), xalign, yalign); |
45 gtk_misc_set_alignment(GTK_MISC(widget), xalign, yalign); |
| 46 #endif |
46 #endif |
| 47 } |
47 } |
| 48 |
48 |
| 49 UIWIDGET ui_label_create(UiObject *obj, UiLabelArgs *args) { |
49 UIWIDGET ui_label_create(UiObject *obj, UiLabelArgs *args) { |
| 50 UiObject* current = uic_current_obj(obj); |
|
| 51 |
|
| 52 const char *css_class = NULL; |
50 const char *css_class = NULL; |
| 53 char *markup = NULL; |
51 char *markup = NULL; |
| 54 if(args->label) { |
52 if(args->label) { |
| 55 #if GTK_MAJOR_VERSION < 3 |
53 #if GTK_MAJOR_VERSION < 3 |
| 56 switch(args->style) { |
54 switch(args->style) { |
| 103 case UI_ALIGN_RIGHT: set_alignment(widget, 1, .5); break; |
101 case UI_ALIGN_RIGHT: set_alignment(widget, 1, .5); break; |
| 104 case UI_ALIGN_CENTER: set_alignment(widget, .5, .5); break; |
102 case UI_ALIGN_CENTER: set_alignment(widget, .5, .5); break; |
| 105 } |
103 } |
| 106 |
104 |
| 107 |
105 |
| 108 UiVar* var = uic_widget_var(obj->ctx, current->ctx, args->value, args->varname, UI_VAR_STRING); |
106 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_STRING); |
| 109 if(var) { |
107 if(var) { |
| 110 UiString* value = (UiString*)var->value; |
108 UiString* value = (UiString*)var->value; |
| 111 value->obj = widget; |
109 value->obj = widget; |
| 112 value->get = ui_label_get; |
110 value->get = ui_label_get; |
| 113 value->set = ui_label_set; |
111 value->set = ui_label_set; |
| 114 } |
112 } |
| 115 |
113 |
| 116 UI_APPLY_LAYOUT2(current, args); |
114 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; |
| 117 current->container->add(current->container, widget); |
115 UiLayout layout = UI_ARGS2LAYOUT(args); |
| |
116 ct->add(ct, widget, &layout); |
| 118 |
117 |
| 119 return widget; |
118 return widget; |
| 120 } |
119 } |
| 121 |
120 |
| 122 UIWIDGET ui_llabel_create(UiObject* obj, UiLabelArgs *args) { |
121 UIWIDGET ui_llabel_create(UiObject* obj, UiLabelArgs *args) { |
| 145 s->value.ptr = NULL; |
144 s->value.ptr = NULL; |
| 146 s->value.free = NULL; |
145 s->value.free = NULL; |
| 147 } |
146 } |
| 148 } |
147 } |
| 149 |
148 |
| |
149 /* |
| 150 UIWIDGET ui_space_deprecated(UiObject *obj) { |
150 UIWIDGET ui_space_deprecated(UiObject *obj) { |
| 151 GtkWidget *widget = gtk_label_new(""); |
151 GtkWidget *widget = gtk_label_new(""); |
| 152 UiContainer *ct = uic_get_current_container(obj); |
152 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; |
| 153 ct->add(ct, widget); |
153 UiLayout layout = UI_ARGS2LAYOUT(args); |
| |
154 ct->add(ct, widget, &layout); |
| 154 |
155 |
| 155 return widget; |
156 return widget; |
| 156 } |
157 } |
| 157 |
158 |
| 158 UIWIDGET ui_separator_deprecated(UiObject *obj) { |
159 UIWIDGET ui_separator_deprecated(UiObject *obj) { |
| 159 #if GTK_MAJOR_VERSION >= 3 |
160 #if GTK_MAJOR_VERSION >= 3 |
| 160 GtkWidget *widget = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); |
161 GtkWidget *widget = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); |
| 161 #else |
162 #else |
| 162 GtkWidget *widget = gtk_hseparator_new(); |
163 GtkWidget *widget = gtk_hseparator_new(); |
| 163 #endif |
164 #endif |
| 164 UiContainer *ct = uic_get_current_container(obj); |
165 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; |
| 165 ct->add(ct, widget); |
166 UiLayout layout = UI_ARGS2LAYOUT(args); |
| |
167 ct->add(ct, widget, &layout); |
| 166 |
168 |
| 167 return widget; |
169 return widget; |
| 168 } |
170 } |
| 169 |
171 */ |
| |
172 |
| 170 /* ------------------------- progress bar ------------------------- */ |
173 /* ------------------------- progress bar ------------------------- */ |
| 171 |
174 |
| 172 typedef struct UiProgressBarRange { |
175 typedef struct UiProgressBarRange { |
| 173 double min; |
176 double min; |
| 174 double max; |
177 double max; |
| 175 } UiProgressBarRange; |
178 } UiProgressBarRange; |
| 176 |
179 |
| 177 UIWIDGET ui_progressbar_create(UiObject *obj, UiProgressbarArgs *args) { |
180 UIWIDGET ui_progressbar_create(UiObject *obj, UiProgressbarArgs *args) { |
| 178 UiObject* current = uic_current_obj(obj); |
|
| 179 |
|
| 180 GtkWidget *progressbar = gtk_progress_bar_new(); |
181 GtkWidget *progressbar = gtk_progress_bar_new(); |
| 181 if(args->max > args->min) { |
182 if(args->max > args->min) { |
| 182 UiProgressBarRange *range = malloc(sizeof(UiProgressBarRange)); |
183 UiProgressBarRange *range = malloc(sizeof(UiProgressBarRange)); |
| 183 range->min = args->min; |
184 range->min = args->min; |
| 184 range->max = args->max; |
185 range->max = args->max; |
| 189 range); |
190 range); |
| 190 g_object_set_data(G_OBJECT(progressbar), "ui_range", range); |
191 g_object_set_data(G_OBJECT(progressbar), "ui_range", range); |
| 191 } |
192 } |
| 192 |
193 |
| 193 |
194 |
| 194 UiVar* var = uic_widget_var(obj->ctx, current->ctx, args->value, args->varname, UI_VAR_DOUBLE); |
195 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_DOUBLE); |
| 195 if(var && var->value) { |
196 if(var && var->value) { |
| 196 UiDouble *value = var->value; |
197 UiDouble *value = var->value; |
| 197 value->get = ui_progressbar_get; |
198 value->get = ui_progressbar_get; |
| 198 value->set = ui_progressbar_set; |
199 value->set = ui_progressbar_set; |
| 199 value->obj = progressbar; |
200 value->obj = progressbar; |
| 200 ui_progressbar_set(value, value->value); |
201 ui_progressbar_set(value, value->value); |
| 201 } |
202 } |
| 202 |
203 |
| 203 UI_APPLY_LAYOUT2(current, args); |
204 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; |
| 204 current->container->add(current->container, progressbar); |
205 UiLayout layout = UI_ARGS2LAYOUT(args); |
| |
206 ct->add(ct, progressbar, &layout); |
| 205 |
207 |
| 206 return progressbar; |
208 return progressbar; |
| 207 } |
209 } |
| 208 |
210 |
| 209 double ui_progressbar_get(UiDouble *d) { |
211 double ui_progressbar_get(UiDouble *d) { |
| 227 |
229 |
| 228 |
230 |
| 229 /* ------------------------- progress spinner ------------------------- */ |
231 /* ------------------------- progress spinner ------------------------- */ |
| 230 |
232 |
| 231 UIWIDGET ui_progressspinner_create(UiObject* obj, UiProgressbarSpinnerArgs *args) { |
233 UIWIDGET ui_progressspinner_create(UiObject* obj, UiProgressbarSpinnerArgs *args) { |
| 232 UiObject* current = uic_current_obj(obj); |
|
| 233 |
|
| 234 GtkWidget *spinner = gtk_spinner_new(); |
234 GtkWidget *spinner = gtk_spinner_new(); |
| 235 |
235 |
| 236 UiVar* var = uic_widget_var(obj->ctx, current->ctx, args->value, args->varname, UI_VAR_INTEGER); |
236 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_INTEGER); |
| 237 if(var && var->value) { |
237 if(var && var->value) { |
| 238 UiInteger *value = var->value; |
238 UiInteger *value = var->value; |
| 239 value->get = ui_spinner_get; |
239 value->get = ui_spinner_get; |
| 240 value->set = ui_spinner_set; |
240 value->set = ui_spinner_set; |
| 241 value->obj = spinner; |
241 value->obj = spinner; |
| 242 ui_spinner_set(value, value->value); |
242 ui_spinner_set(value, value->value); |
| 243 } |
243 } |
| 244 |
244 |
| 245 UI_APPLY_LAYOUT2(current, args); |
245 UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; |
| 246 current->container->add(current->container, spinner); |
246 UiLayout layout = UI_ARGS2LAYOUT(args); |
| |
247 ct->add(ct, spinner, &layout); |
| 247 |
248 |
| 248 return spinner; |
249 return spinner; |
| 249 } |
250 } |
| 250 |
251 |
| 251 int64_t ui_spinner_get(UiInteger *i) { |
252 int64_t ui_spinner_get(UiInteger *i) { |