| 207 | } |
| 208 | |
| 209 | void |
| 210 | LayoutText(HWND hWnd) |
| 211 | { |
| 212 | HWND btn_ok, btn_wrap; |
| 213 | HWND text; |
| 214 | RECT clrt, rt; |
| 215 | POINT pt_elem, pt_ok, pt_wrap; |
| 216 | SIZE sz_elem, sz_ok, sz_wrap; |
| 217 | |
| 218 | text = GetDlgItem(hWnd, IDC_TEXT_CONTROL); |
| 219 | btn_ok = GetDlgItem(hWnd, IDOK); |
| 220 | btn_wrap = GetDlgItem(hWnd, IDC_TEXT_TOGGLE_WRAP); |
| 221 | |
| 222 | /* get window coordinates */ |
| 223 | GetClientRect(hWnd, &clrt); |
| 224 | |
| 225 | /* set window placements */ |
| 226 | if (IsWindow(btn_ok)) { |
| 227 | GetWindowRect(btn_ok, &rt); |
| 228 | sz_ok.cx = (clrt.right - clrt.left) / 2; |
| 229 | sz_ok.cy = rt.bottom - rt.top; |
| 230 | pt_ok.x = clrt.left; |
| 231 | pt_ok.y = clrt.bottom - sz_ok.cy; |
| 232 | MoveWindow(btn_ok, pt_ok.x, pt_ok.y, sz_ok.cx, sz_ok.cy, TRUE); |
| 233 | |
| 234 | sz_wrap.cx = (clrt.right - clrt.left) / 2; |
| 235 | sz_wrap.cy = rt.bottom - rt.top; |
| 236 | pt_wrap.x = clrt.left + sz_ok.cx; |
| 237 | pt_wrap.y = clrt.bottom - sz_ok.cy; |
| 238 | MoveWindow(btn_wrap, pt_wrap.x, pt_wrap.y, sz_wrap.cx, sz_wrap.cy, |
| 239 | TRUE); |
| 240 | |
| 241 | pt_elem.x = clrt.left; |
| 242 | pt_elem.y = clrt.top; |
| 243 | sz_elem.cx = clrt.right - clrt.left; |
| 244 | sz_elem.cy = pt_ok.y; |
| 245 | MoveWindow(text, pt_elem.x, pt_elem.y, sz_elem.cx, sz_elem.cy, TRUE); |
| 246 | } else { |
| 247 | pt_elem.x = clrt.left; |
| 248 | pt_elem.y = clrt.top; |
| 249 | sz_elem.cx = clrt.right - clrt.left; |
| 250 | sz_elem.cy = clrt.bottom - clrt.top; |
| 251 | MoveWindow(text, pt_elem.x, pt_elem.y, sz_elem.cx, sz_elem.cy, TRUE); |
| 252 | } |
| 253 | } |
| 254 | |
| 255 | /* Text control window proc - implements close on space and scrolling on |
| 256 | * arrows */ |