ui/motif/label.c

changeset 108
77254bd6dccb
parent 101
7b3a3130be44
child 112
c3f2f16fa4b8
equal deleted inserted replaced
107:b34bd1557c6c 108:77254bd6dccb
34 #include "../common/context.h" 34 #include "../common/context.h"
35 #include "../common/object.h" 35 #include "../common/object.h"
36 36
37 #include "Grid.h" 37 #include "Grid.h"
38 38
39 static UIWIDGET label_create(UiObject *obj, UiLabelArgs args, int align) { 39 static UIWIDGET label_create(UiObject *obj, UiLabelArgs *args, int align) {
40 Arg xargs[16]; 40 Arg xargs[16];
41 int n = 0; 41 int n = 0;
42 42
43 UiContainerPrivate *ctn = ui_obj_container(obj); 43 UiContainerPrivate *ctn = ui_obj_container(obj);
44 UI_APPLY_LAYOUT(ctn->layout, args); 44 UI_APPLY_LAYOUT(ctn->layout, args);
45 45
46 Widget parent = ctn->prepare(ctn, xargs, &n); 46 Widget parent = ctn->prepare(ctn, xargs, &n);
47 47
48 XtSetArg(xargs[n], XmNalignment, align); n++; 48 XtSetArg(xargs[n], XmNalignment, align); n++;
49 XmString label = NULL; 49 XmString label = NULL;
50 if(args.label) { 50 if(args->label) {
51 label = XmStringCreateLocalized((char*)args.label); 51 label = XmStringCreateLocalized((char*)args->label);
52 XtSetArg(xargs[n], XmNlabelString, label); n++; 52 XtSetArg(xargs[n], XmNlabelString, label); n++;
53 } 53 }
54 54
55 char *name = args.name ? (char*)args.name : "label"; 55 char *name = args->name ? (char*)args->name : "label";
56 Widget w = XmCreateLabel(parent, name, xargs, n); 56 Widget w = XmCreateLabel(parent, name, xargs, n);
57 XtManageChild(w); 57 XtManageChild(w);
58 ctn->add(ctn, w); 58 ctn->add(ctn, w);
59 59
60 XmStringFree(label); 60 XmStringFree(label);
61 return w; 61 return w;
62 } 62 }
63 63
64 UIWIDGET ui_label_create(UiObject* obj, UiLabelArgs args) { 64 UIWIDGET ui_label_create(UiObject* obj, UiLabelArgs *args) {
65 return label_create(obj, args, XmALIGNMENT_CENTER); 65 return label_create(obj, args, XmALIGNMENT_CENTER);
66 } 66 }
67 67
68 UIWIDGET ui_llabel_create(UiObject* obj, UiLabelArgs args) { 68 UIWIDGET ui_llabel_create(UiObject* obj, UiLabelArgs *args) {
69 return label_create(obj, args, XmALIGNMENT_BEGINNING); 69 return label_create(obj, args, XmALIGNMENT_BEGINNING);
70 } 70 }
71 71
72 UIWIDGET ui_rlabel_create(UiObject* obj, UiLabelArgs args) { 72 UIWIDGET ui_rlabel_create(UiObject* obj, UiLabelArgs *args) {
73 return label_create(obj, args, XmALIGNMENT_END); 73 return label_create(obj, args, XmALIGNMENT_END);
74 } 74 }
75 75
76 76
77 /* -------------------------- progressbar/spiner -------------------------- */ 77 /* -------------------------- progressbar/spiner -------------------------- */
101 101
102 XClearArea(dp, w, 0, 0, width, height, False); 102 XClearArea(dp, w, 0, 0, width, height, False);
103 XFillRectangle(dp, w, pb->gc, 0, 0, valueW, widget->core.height); 103 XFillRectangle(dp, w, pb->gc, 0, 0, valueW, widget->core.height);
104 } 104 }
105 105
106 UIWIDGET ui_progressbar_create(UiObject *obj, UiProgressbarArgs args) { 106 UIWIDGET ui_progressbar_create(UiObject *obj, UiProgressbarArgs *args) {
107 Arg xargs[16]; 107 Arg xargs[16];
108 int n = 0; 108 int n = 0;
109 109
110 UiContainerPrivate *ctn = ui_obj_container(obj); 110 UiContainerPrivate *ctn = ui_obj_container(obj);
111 UI_APPLY_LAYOUT(ctn->layout, args); 111 UI_APPLY_LAYOUT(ctn->layout, args);
112 112
113 Widget parent = ctn->prepare(ctn, xargs, &n); 113 Widget parent = ctn->prepare(ctn, xargs, &n);
114 114
115 char *name = args.name ? (char*)args.name : "progressbar"; 115 char *name = args->name ? (char*)args->name : "progressbar";
116 Widget frame = XmCreateFrame(parent, name, xargs, n); 116 Widget frame = XmCreateFrame(parent, name, xargs, n);
117 117
118 // create a button and get some informations about the height, shadow, highlight, .... 118 // create a button and get some informations about the height, shadow, highlight, ....
119 // we want the frame to have the same dimensions as a normal button 119 // we want the frame to have the same dimensions as a normal button
120 Widget test = XmCreatePushButton(frame, "button", NULL, 0); 120 Widget test = XmCreatePushButton(frame, "button", NULL, 0);
135 n = 0; 135 n = 0;
136 XtSetArg(xargs[n], XmNheight, da_height); n++; 136 XtSetArg(xargs[n], XmNheight, da_height); n++;
137 Widget drawingArea = XmCreateDrawingArea(frame, "progressbar_drawingarea", xargs, n); 137 Widget drawingArea = XmCreateDrawingArea(frame, "progressbar_drawingarea", xargs, n);
138 XtManageChild(drawingArea); 138 XtManageChild(drawingArea);
139 139
140 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args.value, args.varname, UI_VAR_DOUBLE); 140 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_DOUBLE);
141 141
142 UiProgressBar *progressbarData = malloc(sizeof(UiProgressBar)); 142 UiProgressBar *progressbarData = malloc(sizeof(UiProgressBar));
143 progressbarData->widget = drawingArea; 143 progressbarData->widget = drawingArea;
144 progressbarData->min = args.min; 144 progressbarData->min = args->min;
145 progressbarData->max = args.max == 0 ? 100 : args.max; 145 progressbarData->max = args->max == 0 ? 100 : args->max;
146 progressbarData->value = 50; 146 progressbarData->value = 50;
147 progressbarData->var = var; 147 progressbarData->var = var;
148 progressbarData->color = highlightColor; 148 progressbarData->color = highlightColor;
149 progressbarData->gc = NULL; // initialize on first expose 149 progressbarData->gc = NULL; // initialize on first expose
150 150
184 pb->value = value; 184 pb->value = value;
185 ui_progressbar_expose(pb->widget, pb, NULL); 185 ui_progressbar_expose(pb->widget, pb, NULL);
186 } 186 }
187 187
188 188
189 UIWIDGET ui_progressspinner_create(UiObject* obj, UiProgressbarSpinnerArgs args) { 189 UIWIDGET ui_progressspinner_create(UiObject* obj, UiProgressbarSpinnerArgs *args) {
190 Arg xargs[16]; 190 Arg xargs[16];
191 int n = 0; 191 int n = 0;
192 192
193 UiContainerPrivate *ctn = ui_obj_container(obj); 193 UiContainerPrivate *ctn = ui_obj_container(obj);
194 UI_APPLY_LAYOUT(ctn->layout, args); 194 UI_APPLY_LAYOUT(ctn->layout, args);
198 XmString label = XmStringCreateSimple(""); 198 XmString label = XmStringCreateSimple("");
199 XtSetArg(xargs[n], XmNlabelString, label); n++; 199 XtSetArg(xargs[n], XmNlabelString, label); n++;
200 XtSetArg(xargs[n], XmNalignment, XmALIGNMENT_END); n++; 200 XtSetArg(xargs[n], XmNalignment, XmALIGNMENT_END); n++;
201 XtSetArg(xargs[n], gridMinWidth, 40); n++; 201 XtSetArg(xargs[n], gridMinWidth, 40); n++;
202 202
203 char *name = args.name ? (char*)args.name : "progresss_spinner"; 203 char *name = args->name ? (char*)args->name : "progresss_spinner";
204 Widget w = XmCreateLabel(parent, name, xargs, n); 204 Widget w = XmCreateLabel(parent, name, xargs, n);
205 XtManageChild(w); 205 XtManageChild(w);
206 ctn->add(ctn, w); 206 ctn->add(ctn, w);
207 207
208 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args.value, args.varname, UI_VAR_INTEGER); 208 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_INTEGER);
209 if(var) { 209 if(var) {
210 UiInteger *value = var->value; 210 UiInteger *value = var->value;
211 value->obj = w; 211 value->obj = w;
212 value->get = ui_progressspinner_get; 212 value->get = ui_progressspinner_get;
213 value->set = ui_progressspinner_set; 213 value->set = ui_progressspinner_set;

mercurial