Rectangular-block selection. Enabled by Alt+drag, unless you
[sgt/putty] / winctrls.c
index 61821c3..126c4a7 100644 (file)
@@ -153,13 +153,11 @@ void multiedit(struct ctlpos *cp, ...)
 }
 
 /*
- * A static line, followed by a full-width drop-down list (ie a
- * non-editing combo box).
+ * A static line, followed by a full-width combo box.
  */
-void dropdownlist(struct ctlpos *cp, char *text, int staticid, int listid)
+void combobox(struct ctlpos *cp, char *text, int staticid, int listid)
 {
     RECT r;
-    va_list ap;
 
     r.left = GAPBETWEEN;
     r.right = cp->width;
@@ -171,7 +169,7 @@ void dropdownlist(struct ctlpos *cp, char *text, int staticid, int listid)
     r.bottom = COMBOHEIGHT * 10;
     doctl(cp, r, "COMBOBOX",
          WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL |
-         CBS_DROPDOWNLIST | CBS_HASSTRINGS, WS_EX_CLIENTEDGE, "", listid);
+         CBS_DROPDOWN | CBS_HASSTRINGS, WS_EX_CLIENTEDGE, "", listid);
 
     cp->ypos += STATICHEIGHT + GAPWITHIN + COMBOHEIGHT + GAPBETWEEN;
 }
@@ -317,14 +315,14 @@ void checkbox(struct ctlpos *cp, char *text, int id)
 /*
  * A single standalone static text control.
  */
-void statictext(struct ctlpos *cp, char *text, int id)
+void statictext(struct ctlpos *cp, char *text, int lines, int id)
 {
     RECT r;
 
     r.left = GAPBETWEEN;
     r.top = cp->ypos;
     r.right = cp->width;
-    r.bottom = STATICHEIGHT;
+    r.bottom = STATICHEIGHT * lines;
     cp->ypos += r.bottom + GAPBETWEEN;
     doctl(cp, r, "STATIC", WS_CHILD | WS_VISIBLE, 0, text, id);
 }
@@ -714,7 +712,7 @@ void charclass(struct ctlpos *cp, char *stext, int sid, int listid,
                        PUSHBTNHEIGHT ? EDITHEIGHT : PUSHBTNHEIGHT);
     const static int percents[] = { 30, 40, 30 };
     int i, xpos, percent;
-    const int LISTHEIGHT = 66;
+    const int LISTHEIGHT = 52;
 
     /* The static control. */
     r.left = GAPBETWEEN;
@@ -995,7 +993,7 @@ int handle_prefslist(struct prefslist *hdl,
 
     if (is_dlmsg) {
 
-        if (wParam == hdl->listid) {
+        if ((int)wParam == hdl->listid) {
             DRAGLISTINFO *dlm = (DRAGLISTINFO *)lParam;
             int dest;
             switch (dlm->uNotification) {