Changeset 5238
- Timestamp:
- 08/21/08 11:59:09 (3 months ago)
- Location:
- trunk
- Files:
-
- 5 modified
-
WebContent/ITMILL/themes/default/styles.css (modified) (2 diffs)
-
WebContent/ITMILL/themes/default/window/window.css (modified) (2 diffs)
-
src/com/itmill/toolkit/terminal/gwt/client/DebugConsole.java (modified) (1 diff)
-
src/com/itmill/toolkit/terminal/gwt/client/ui/IWindow.java (modified) (8 diffs)
-
src/com/itmill/toolkit/ui/Window.java (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebContent/ITMILL/themes/default/styles.css
r5174 r5238 2281 2281 } 2282 2282 2283 .i-window-resizebox-disabled { 2284 cursor: default; 2285 background: transparent; 2286 } 2287 2283 2288 .i-window-closebox { 2284 2289 position:absolute; … … 2356 2361 background: url(window/img/resize.png); 2357 2362 } 2363 * html .i-window-resizebox-disabled { 2364 background: transparent; 2365 } 2358 2366 *+html .i-window-resizebox { 2359 2367 bottom: 0; -
trunk/WebContent/ITMILL/themes/default/window/window.css
r5105 r5238 98 98 } 99 99 100 .i-window-resizebox-disabled { 101 cursor: default; 102 background: transparent; 103 } 104 100 105 .i-window-closebox { 101 106 position:absolute; … … 173 178 background: url(img/resize.png); 174 179 } 180 * html .i-window-resizebox-disabled { 181 background: transparent; 182 } 175 183 *+html .i-window-resizebox { 176 184 bottom: 0; -
trunk/src/com/itmill/toolkit/terminal/gwt/client/DebugConsole.java
r5147 r5238 64 64 setPixelSize(60, 60); 65 65 setPopupPosition(Window.getClientWidth() 66 - (100 + IWindow.BORDER_WIDTH_HORIZONTAL), 0);66 - 142, 0); 67 67 } 68 68 -
trunk/src/com/itmill/toolkit/terminal/gwt/client/ui/IWindow.java
r5222 r5238 43 43 public static final String CLASSNAME = "i-window"; 44 44 45 /** pixels used by inner borders and paddings horizontally */46 protected static final int BORDER_WIDTH_HORIZONTAL = 41;47 48 /** pixels used by headers, footers, inner borders and paddings vertically*/49 pr otected static final int BORDER_WIDTH_VERTICAL = 58;45 /** 46 * pixels used by inner borders and paddings horizontally (calculated on 47 * attach) 48 */ 49 private int borderWidthHorizontal = 0; 50 50 51 51 private static final int STACKING_OFFSET_PIXELS = 15; … … 96 96 97 97 private boolean modal = false; 98 99 private boolean resizable = true; 98 100 99 101 private Element modalityCurtain; … … 206 208 if (uidl.getBooleanAttribute("modal") != modal) { 207 209 setModal(!modal); 210 } 211 212 if (uidl.getBooleanAttribute("resizable") != resizable) { 213 setResizable(!resizable); 208 214 } 209 215 … … 368 374 .getIntVariable("scrollLeft")); 369 375 376 // Center this window on screen if requested 377 // This has to be here because we might not know the content size before 378 // everything is painted into the window 379 if (uidl.getBooleanAttribute("center")) { 380 center(); 381 } 382 370 383 } 371 384 … … 491 504 } 492 505 506 private void setResizable(boolean resizability) { 507 resizable = resizability; 508 if (resizability) { 509 DOM.setElementProperty(resizeBox, "className", CLASSNAME 510 + "-resizebox"); 511 } else { 512 DOM.setElementProperty(resizeBox, "className", CLASSNAME 513 + "-resizebox " + CLASSNAME + "-resizebox-disabled"); 514 } 515 } 516 493 517 public void setPopupPosition(int left, int top) { 494 518 super.setPopupPosition(left, top); … … 563 587 564 588 private void onResizeEvent(Event event) { 565 switch (DOM.eventGetType(event)) { 566 case Event.ONMOUSEDOWN: 567 if (!isActive()) { 568 bringToFront(); 569 } 570 showDraggingCurtain(true); 571 resizing = true; 572 startX = DOM.eventGetScreenX(event); 573 startY = DOM.eventGetScreenY(event); 574 origW = getWidget().getOffsetWidth(); 575 origH = getWidget().getOffsetHeight(); 576 DOM.setCapture(getElement()); 577 DOM.eventPreventDefault(event); 578 break; 579 case Event.ONMOUSEUP: 580 showDraggingCurtain(false); 581 resizing = false; 582 DOM.releaseCapture(getElement()); 583 setSize(event, true); 584 break; 585 case Event.ONLOSECAPTURE: 586 showDraggingCurtain(false); 587 resizing = false; 588 case Event.ONMOUSEMOVE: 589 if (resizing) { 590 setSize(event, false); 589 if (resizable) { 590 switch (DOM.eventGetType(event)) { 591 case Event.ONMOUSEDOWN: 592 if (!isActive()) { 593 bringToFront(); 594 } 595 showDraggingCurtain(true); 596 resizing = true; 597 startX = DOM.eventGetScreenX(event); 598 startY = DOM.eventGetScreenY(event); 599 origW = getWidget().getOffsetWidth(); 600 origH = getWidget().getOffsetHeight(); 601 DOM.setCapture(getElement()); 591 602 DOM.eventPreventDefault(event); 592 } 593 break; 594 default: 595 DOM.eventPreventDefault(event); 596 break; 603 break; 604 case Event.ONMOUSEUP: 605 showDraggingCurtain(false); 606 resizing = false; 607 DOM.releaseCapture(getElement()); 608 setSize(event, true); 609 break; 610 case Event.ONLOSECAPTURE: 611 showDraggingCurtain(false); 612 resizing = false; 613 case Event.ONMOUSEMOVE: 614 if (resizing) { 615 setSize(event, false); 616 DOM.eventPreventDefault(event); 617 } 618 break; 619 default: 620 DOM.eventPreventDefault(event); 621 break; 622 } 597 623 } 598 624 } … … 625 651 "width", 626 652 (Integer.parseInt(width.substring(0, 627 width.length() - 2)) + BORDER_WIDTH_HORIZONTAL)653 width.length() - 2)) + borderWidthHorizontal) 628 654 + "px"); 629 655 } … … 696 722 } 697 723 724 protected void onAttach() { 725 super.onAttach(); 726 // Calculate space required by window borders, so we can accurately 727 // calculate space for content 728 final int contentWidth = DOM.getElementPropertyInt(contentPanel 729 .getElement(), "offsetWidth"); 730 final int windowWidth = DOM.getElementPropertyInt(getElement(), 731 "offsetWidth"); 732 borderWidthHorizontal = windowWidth - contentWidth; 733 } 734 698 735 } -
trunk/src/com/itmill/toolkit/ui/Window.java
r5076 r5238 108 108 109 109 private boolean modal = false; 110 111 private boolean resizable = true; 112 113 private boolean centerRequested = false; 110 114 111 115 /* ********************************************************************* */ … … 469 473 if (modal) { 470 474 target.addAttribute("modal", true); 475 } 476 477 if (resizable) { 478 target.addAttribute("resizable", true); 479 } 480 481 if(centerRequested) { 482 target.addAttribute("center", true); 483 centerRequested = false; 471 484 } 472 485 … … 1024 1037 /** 1025 1038 * Sets sub-window modal, so that widgets behind it cannot be accessed. 1039 * <b>Note:</b> affects sub-windows only. 1026 1040 * 1027 1041 * @param modality … … 1030 1044 public void setModal(boolean modality) { 1031 1045 modal = modality; 1046 center(); 1047 requestRepaint(); 1048 } 1049 1050 /** 1051 * @return true if this window is modal. 1052 */ 1053 public boolean isModal() { 1054 return modal; 1055 } 1056 1057 /** 1058 * Sets sub-window resizable. 1059 * <b>Note:</b> affects sub-windows only. 1060 * 1061 * @param resizable 1062 * true if resizability is to be turned on 1063 */ 1064 public void setResizable(boolean resizeability) { 1065 resizable = resizeability; 1066 requestRepaint(); 1067 } 1068 1069 /** 1070 * 1071 * @return true if window is resizable by the end-user, otherwise false. 1072 */ 1073 public boolean isResizable() { 1074 return resizable; 1075 } 1076 1077 /** 1078 * Request to center this window on the screen. 1079 * <b>Note:</b> affects sub-windows only. 1080 */ 1081 public void center() { 1082 centerRequested = true; 1032 1083 } 1033 1084
