+void staticedit(struct ctlpos *cp, char *stext,
+ int sid, int eid, int percentedit) {
+ staticedit_internal(cp, stext, sid, eid, percentedit, 0);
+}
+
+void staticpassedit(struct ctlpos *cp, char *stext,
+ int sid, int eid, int percentedit) {
+ staticedit_internal(cp, stext, sid, eid, percentedit, ES_PASSWORD);
+}
+
+/*
+ * A big multiline edit control with a static labelling it.
+ */
+void bigeditctrl(struct ctlpos *cp, char *stext,
+ int sid, int eid, int lines) {
+ RECT r;
+
+ r.left = GAPBETWEEN; r.top = cp->ypos;
+ r.right = cp->width; r.bottom = STATICHEIGHT;
+ cp->ypos += r.bottom + GAPWITHIN;
+ doctl(cp, r, "STATIC", WS_CHILD | WS_VISIBLE, 0, stext, sid);
+
+ r.left = GAPBETWEEN; r.top = cp->ypos;
+ r.right = cp->width; r.bottom = EDITHEIGHT + (lines-1) * STATICHEIGHT;
+ cp->ypos += r.bottom + GAPBETWEEN;
+ doctl(cp, r, "EDIT",
+ WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL | ES_MULTILINE,
+ WS_EX_CLIENTEDGE,
+ "", eid);
+}
+