| | 256 | } |
|---|
| | 257 | |
|---|
| | 258 | |
|---|
| | 259 | final Control getSplitControl() // package |
|---|
| | 260 | { |
|---|
| | 261 | Control splat; // Splitted. |
|---|
| | 262 | // DMD 0.95: need 'this' to access member dock |
|---|
| | 263 | //switch(dock()) |
|---|
| | 264 | switch(this.dock()) |
|---|
| | 265 | { |
|---|
| | 266 | case DockStyle.LEFT: |
|---|
| | 267 | foreach(Control ctrl; parent.controls()) |
|---|
| | 268 | { |
|---|
| | 269 | if(DockStyle.LEFT != ctrl.dock) //if(this.dock != ctrl.dock) |
|---|
| | 270 | continue; |
|---|
| | 271 | // DMD 0.95: overloads int(Object o) and int(Control ctrl) both match argument list for opEquals |
|---|
| | 272 | //if(ctrl == this) |
|---|
| | 273 | if(ctrl == cast(Control)this) |
|---|
| | 274 | return splat; |
|---|
| | 275 | splat = ctrl; |
|---|
| | 276 | } |
|---|
| | 277 | break; |
|---|
| | 278 | |
|---|
| | 279 | case DockStyle.RIGHT: |
|---|
| | 280 | foreach(Control ctrl; parent.controls()) |
|---|
| | 281 | { |
|---|
| | 282 | if(DockStyle.RIGHT != ctrl.dock) //if(this.dock != ctrl.dock) |
|---|
| | 283 | continue; |
|---|
| | 284 | // DMD 0.95: overloads int(Object o) and int(Control ctrl) both match argument list for opEquals |
|---|
| | 285 | //if(ctrl == this) |
|---|
| | 286 | if(ctrl == cast(Control)this) |
|---|
| | 287 | return splat; |
|---|
| | 288 | splat = ctrl; |
|---|
| | 289 | } |
|---|
| | 290 | break; |
|---|
| | 291 | |
|---|
| | 292 | case DockStyle.TOP: |
|---|
| | 293 | foreach(Control ctrl; parent.controls()) |
|---|
| | 294 | { |
|---|
| | 295 | if(DockStyle.TOP != ctrl.dock) //if(this.dock != ctrl.dock) |
|---|
| | 296 | continue; |
|---|
| | 297 | // DMD 0.95: overloads int(Object o) and int(Control ctrl) both match argument list for opEquals |
|---|
| | 298 | //if(ctrl == this) |
|---|
| | 299 | if(ctrl == cast(Control)this) |
|---|
| | 300 | return splat; |
|---|
| | 301 | splat = ctrl; |
|---|
| | 302 | } |
|---|
| | 303 | break; |
|---|
| | 304 | |
|---|
| | 305 | case DockStyle.BOTTOM: |
|---|
| | 306 | foreach(Control ctrl; parent.controls()) |
|---|
| | 307 | { |
|---|
| | 308 | if(DockStyle.BOTTOM != ctrl.dock) //if(this.dock != ctrl.dock) |
|---|
| | 309 | continue; |
|---|
| | 310 | // DMD 0.95: overloads int(Object o) and int(Control ctrl) both match argument list for opEquals |
|---|
| | 311 | //if(ctrl == this) |
|---|
| | 312 | if(ctrl == cast(Control)this) |
|---|
| | 313 | return splat; |
|---|
| | 314 | splat = ctrl; |
|---|
| | 315 | } |
|---|
| | 316 | break; |
|---|
| | 317 | } |
|---|
| | 318 | return null; |
|---|
| 291 | | case DockStyle.LEFT: |
|---|
| 292 | | drawxorClient(lastpos, 0); |
|---|
| 293 | | foreach(Control ctrl; parent.controls()) |
|---|
| 294 | | { |
|---|
| 295 | | if(DockStyle.NONE == ctrl.dock) |
|---|
| 296 | | continue; |
|---|
| 297 | | // DMD 0.95: overloads int(Object o) and int(Control ctrl) both match argument list for opEquals |
|---|
| 298 | | //if(ctrl == this) |
|---|
| 299 | | if(ctrl == cast(Control)this) |
|---|
| | 351 | // DMD 0.95: need 'this' to access member dock |
|---|
| | 352 | //switch(dock()) |
|---|
| | 353 | switch(this.dock()) |
|---|
| | 354 | { |
|---|
| | 355 | case DockStyle.LEFT: |
|---|
| | 356 | drawxorClient(lastpos, 0); |
|---|
| | 357 | //val = left - splat.left + mea.x - downpos.x; |
|---|
| | 358 | val = left - splat.left + mea.x - downpos; |
|---|
| | 359 | if(val < msize) |
|---|
| | 360 | val = msize; |
|---|
| | 361 | splat.width = val; |
|---|
| | 362 | break; |
|---|
| | 363 | |
|---|
| | 364 | case DockStyle.RIGHT: |
|---|
| | 365 | drawxorClient(lastpos, 0); |
|---|
| | 366 | //adj = right - splat.left + mea.x - downpos.x; |
|---|
| | 367 | adj = right - splat.left + mea.x - downpos; |
|---|
| | 368 | val = splat.width - adj; |
|---|
| | 369 | vx = splat.left + adj; |
|---|
| | 370 | if(val < msize) |
|---|
| 311 | | splat = ctrl; |
|---|
| 312 | | } |
|---|
| 313 | | break; |
|---|
| 314 | | |
|---|
| 315 | | case DockStyle.RIGHT: |
|---|
| 316 | | drawxorClient(lastpos, 0); |
|---|
| 317 | | foreach(Control ctrl; parent.controls()) |
|---|
| 318 | | { |
|---|
| 319 | | if(DockStyle.NONE == ctrl.dock) |
|---|
| 320 | | continue; |
|---|
| 321 | | // DMD 0.95: overloads int(Object o) and int(Control ctrl) both match argument list for opEquals |
|---|
| 322 | | //if(ctrl == this) |
|---|
| 323 | | if(ctrl == cast(Control)this) |
|---|
| | 375 | splat.bounds = Rect(vx, splat.top, val, splat.height); |
|---|
| | 376 | break; |
|---|
| | 377 | |
|---|
| | 378 | case DockStyle.TOP: |
|---|
| | 379 | drawxorClient(0, lastpos); |
|---|
| | 380 | //val = top - splat.top + mea.y - downpos.y; |
|---|
| | 381 | val = top - splat.top + mea.y - downpos; |
|---|
| | 382 | if(val < msize) |
|---|
| | 383 | val = msize; |
|---|
| | 384 | splat.height = val; |
|---|
| | 385 | break; |
|---|
| | 386 | |
|---|
| | 387 | case DockStyle.BOTTOM: |
|---|
| | 388 | drawxorClient(0, lastpos); |
|---|
| | 389 | //adj = bottom - splat.top + mea.y - downpos.y; |
|---|
| | 390 | adj = bottom - splat.top + mea.y - downpos; |
|---|
| | 391 | val = splat.height - adj; |
|---|
| | 392 | vx = splat.top + adj; |
|---|
| | 393 | if(val < msize) |
|---|
| 340 | | splat = ctrl; |
|---|
| 341 | | } |
|---|
| 342 | | break; |
|---|
| 343 | | |
|---|
| 344 | | case DockStyle.TOP: |
|---|
| 345 | | drawxorClient(0, lastpos); |
|---|
| 346 | | foreach(Control ctrl; parent.controls()) |
|---|
| 347 | | { |
|---|
| 348 | | if(DockStyle.NONE == ctrl.dock) |
|---|
| 349 | | continue; |
|---|
| 350 | | // DMD 0.95: overloads int(Object o) and int(Control ctrl) both match argument list for opEquals |
|---|
| 351 | | //if(ctrl == this) |
|---|
| 352 | | if(ctrl == cast(Control)this) |
|---|
| 353 | | { |
|---|
| 354 | | if(splat) |
|---|
| 355 | | { |
|---|
| 356 | | //val = top - splat.top + mea.y - downpos.y; |
|---|
| 357 | | val = top - splat.top + mea.y - downpos; |
|---|
| 358 | | if(val < msize) |
|---|
| 359 | | val = msize; |
|---|
| 360 | | splat.height = val; |
|---|
| 361 | | } |
|---|
| 362 | | break; |
|---|
| 363 | | } |
|---|
| 364 | | splat = ctrl; |
|---|
| 365 | | } |
|---|
| 366 | | break; |
|---|
| 367 | | |
|---|
| 368 | | case DockStyle.BOTTOM: |
|---|
| 369 | | drawxorClient(0, lastpos); |
|---|
| 370 | | foreach(Control ctrl; parent.controls()) |
|---|
| 371 | | { |
|---|
| 372 | | if(DockStyle.NONE == ctrl.dock) |
|---|
| 373 | | continue; |
|---|
| 374 | | // DMD 0.95: overloads int(Object o) and int(Control ctrl) both match argument list for opEquals |
|---|
| 375 | | //if(ctrl == this) |
|---|
| 376 | | if(ctrl == cast(Control)this) |
|---|
| 377 | | { |
|---|
| 378 | | if(splat) |
|---|
| 379 | | { |
|---|
| 380 | | //adj = bottom - splat.top + mea.y - downpos.y; |
|---|
| 381 | | adj = bottom - splat.top + mea.y - downpos; |
|---|
| 382 | | val = splat.height - adj; |
|---|
| 383 | | vx = splat.top + adj; |
|---|
| 384 | | if(val < msize) |
|---|
| 385 | | { |
|---|
| 386 | | vx -= msize - val; |
|---|
| 387 | | val = msize; |
|---|
| 388 | | } |
|---|
| 389 | | splat.bounds = Rect(splat.left, vx, splat.width, val); |
|---|
| 390 | | } |
|---|
| 391 | | break; |
|---|
| 392 | | } |
|---|
| 393 | | splat = ctrl; |
|---|
| 394 | | } |
|---|
| 395 | | break; |
|---|
| | 398 | splat.bounds = Rect(splat.left, vx, splat.width, val); |
|---|
| | 399 | break; |
|---|
| | 400 | |
|---|
| | 401 | default: ; |
|---|
| | 402 | } |
|---|