source: ether_statistics/web/resources/js/windows_js_1.3/documentation/PWC-OS/pwc-os.js @ 569

Last change on this file since 569 was 569, checked in by vmipsl, 12 years ago

Nouveau projet

File size: 3.0 KB
Line 
1// Overide WindowUtilities getPageSize to remove dock height (for maximized windows)
2WindowUtilities._oldGetPageSize = WindowUtilities.getPageSize;
3WindowUtilities.getPageSize = function() {
4  var size = WindowUtilities._oldGetPageSize();
5  var dockHeight = $('dock').getHeight();
6 
7  size.pageHeight -= dockHeight;
8  size.windowHeight -= dockHeight;
9  return size;
10};   
11
12
13// Overide Windows minimize to move window inside dock 
14Object.extend(Windows, {
15  // Overide minimize function
16  minimize: function(id, event) {
17    var win = this.getWindow(id)
18    if (win && win.visible) {
19      // Hide current window
20      win.hide();           
21   
22      // Create a dock element
23      var element = document.createElement("span");
24      element.className = "dock_icon"; 
25      element.style.display = "none";
26      element.win = win;
27      $('dock').appendChild(element);
28      Event.observe(element, "mouseup", Windows.restore);
29      $(element).update(win.getTitle());
30   
31      new Effect.Appear(element)
32    }
33    Event.stop(event);
34  },                 
35 
36  // Restore function
37  restore: function(event) { 
38    var element = Event.element(event);
39    // Show window
40    element.win.show();
41    //Windows.focus(element.win.getId());                   
42    element.win.toFront();
43    // Fade and destroy icon
44    new Effect.Fade(element, {afterFinish: function() {element.remove()}})
45  }
46})
47
48// blur focused window if click on document
49Event.observe(document, "click", function(event) {   
50  var e = Event.element(event);
51  var win = e.up(".dialog");
52  var dock = e == $('dock') || e.up("#dock"); 
53  if (!win && !dock && Windows.focusedWindow) {
54    Windows.blur(Windows.focusedWindow.getId());                   
55  }
56})               
57
58// Chnage theme callback
59var currentTheme = 0;
60function changeTheme(event) {
61  var index = Event.element(event).selectedIndex;
62  if (index == currentTheme)
63    return;
64
65  var theme, blurTheme;
66  switch (index) {
67    case 0:
68      theme = "mac_os_x";
69      blurTheme = "blur_os_x";
70      break;
71    case 1:
72      theme = "bluelighting";
73      blurTheme = "greylighting";
74      break;
75    case 2:
76      theme = "greenlighting";
77      blurTheme = "greylighting";
78      break;
79  }
80  Windows.windows.each(function(win) {
81    win.options.focusClassName = theme; 
82    win.options.blurClassName = blurTheme;
83    win.changeClassName(blurTheme)
84  });
85  Windows.focusedWindow.changeClassName(theme);
86  currentTheme = index;
87}
88
89// Init webOS, create 3 windows
90function initWebOS() {         
91  // Create 3 windows
92  $R(1,3).each(function(index) {
93    var win = new Window({className: "mac_os_x", blurClassName: "blur_os_x", title: "window #"+index, width:250, height:150, top: 100 + index*50, left:100 + index*50}); 
94    win.getContent().update("<h1>Window #" + index + "</h1>");
95    win.show();   
96  })                 
97  //
98  $$("#theme select").first().selectedIndex = currentTheme;
99  Event.observe($$("#theme select").first(), "change", changeTheme); 
100}
101Event.observe(window, "load", initWebOS)
102               
103               
Note: See TracBrowser for help on using the repository browser.