ui/gtk/display.c

changeset 112
c3f2f16fa4b8
parent 109
c3dfcb8f0be7
equal deleted inserted replaced
111:81c4f73236a4 112:c3f2f16fa4b8
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) {

mercurial