liuliming
23 Dec 2007, 9:18 AM
fisheye-toolbar feature:
1 a toolbar with fisheye
2 drag and move
3 collapsible, foldable
4 add or remove items dynamically
5 sub-menu, see lmtoolbar.js addMenu
6 quickstart button, see lmtoolbar.js addQsButton
7 task button, interact with opened windows, show or hide a window,see lmtoolbar.js addTaskButton and uncomment some lines in desktop.js I have.
You can see the features,howto and demo pictures here, or get the live-demo url and package.
It looks like this(mouse over:):
http://www.chinacloud.org/liuliming/toolbar-browser20080112.png
jsdesk features:
1 Create new account
2 Password encrypt
3 Fisheye-toolbar
4 A browser window:lmbrowser
live-demo url:
http://www.chinacloud.org/jsdesk/
All-in-one-package:
http://www.chinacloud.org/liuliming/jsdesk20080327-2.zip
Please note that: the package is about 10M, because it includes ext and wallpapers.
If you use this package, modify /source/inConfig.php and run /source/install.php, otherwise get the attached file and refer to following Howto.
You can get latest code from: svn checkout http://jsdesk.googlecode.com/svn/trunk/ jsdesk-read-only
How to:
1 down load the file attached
2 upzip
3 drop lmtoolbar to source/modules
4 modify default.php like this:
add :
<script type="text/javascript" src="source/modules/lmtoolbar/fisheye.js"></script>
<script type="text/javascript" src="source/modules/lmtoolbar/lmtoolbar.js"></script>
<link rel="stylesheet" type="text/css" href="source/modules/lmtoolbar/fisheye.css" />
and:
<dl id="x-toolbars">
<dt id="toolbar2">
</dt>
</dl>
It will looks like this:
<?php
require_once("source/desktop.php");
if(!class_exists('desktop'))
{
header("Location: login.html");
}
else
{
$desktop = new desktop();
if(!$desktop->is_logged_in())
{
header("Location: login.html");
}
else
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>qWikiOffice</title>
<!-- EXT -->
<link rel="stylesheet" type="text/css" href="../Ext/2.0/resources/css/ext-all.css" />
<script type="text/javascript" src="../Ext/2.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../Ext/2.0/ext-all.js"></script>
<!-- LOGIN -->
<script type="text/javascript" src="source/login/cookies.js"></script>
<!-- DESKTOP -->
<script type="text/javascript" src="source/core/StartMenu.js"></script>
<script type="text/javascript" src="source/core/TaskBar.js"></script>
<!-- fisheye -->
<link href="source/modules/lmtoolbar/fisheye.css" type="text/css" rel="stylesheet"/>
<script src="source/modules/lmtoolbar/fisheye.js" type="text/javascript"></script>
<script src="source/modules/lmtoolbar/lmtoolbar.js" type="text/javascript"></script>
<script type="text/javascript" src="source/core/Desktop.js"></script>
<script type="text/javascript" src="source/core/App.js"></script>
<script type="text/javascript" src="source/core/Module.js"></script>
<script type="text/javascript" src="source/core/DesktopConfig.js"></script>
<!-- DESKTOP HELPERS -->
<script type="text/javascript" src="source/helpers/color-picker/color-picker.ux.js"></script>
<link rel="stylesheet" type="text/css" href="source/helpers/color-picker/color-picker.ux.css" />
<script type="text/javascript" src="source/helpers/preferences/Preferences.js"></script>
<link rel="stylesheet" type="text/css" href="source/helpers/preferences/preferences.css" />
<!-- MODULES -->
<script type="text/javascript" src="source/modules/layout-window/js/layout-window.js"></script>
<script type="text/javascript" src="source/modules/docs/js/docs.js"></script>
<link rel="stylesheet" type="text/css" href="source/modules/docs/css/docs.css" />
<!-- THEME -->
<link id="theme" rel="stylesheet" type="text/css" href="resources/themes/xtheme-vista/css/xtheme-vista.css" />
<!-- DESKTOP STYLES -->
<link rel="stylesheet" type="text/css" href="resources/css/desktop.css" />
</head>
<body scroll="no">
<div id="x-desktop">
<dl id="x-shortcuts">
<dt id="docs-win-shortcut">
<a href="#"><img src="resources/images/default/s.gif" />
<div>Developer Docs</div></a>
</dt>
<dt id="grid-win-shortcut">
<a href="#"><img src="resources/images/default/s.gif" />
<div>Grid Window</div></a>
</dt>
<dt id="acc-win-shortcut">
<a href="#"><img src="resources/images/default/s.gif" />
<div>Accordion Window</div></a>
</dt>
</dl>
<dl id="x-toolbars">
<dt id="toolbar2">
</dt>
</dl>
</div>
<div id="ux-taskbar">
<div id="ux-taskbar-start"></div>
<div id="ux-taskbar-panel-wrap">
<div id="ux-quickstart-panel"></div>
<div id="ux-taskbuttons-panel"></div>
</div>
<div class="x-clear"></div>
</div>
<script type="text/javascript">
</script>
</body>
</html>
<?php }} ?>
5 modify desktop.js like this (see the file desktop.js in the package)
Ext.Desktop = function(app){
this.taskbar = new Ext.ux.TaskBar(app);
var taskbar = this.taskbar;
var desktopEl = Ext.get('x-desktop');
var taskbarEl = Ext.get('ux-taskbar');
var shortcuts = Ext.get('x-shortcuts');
var windows = new Ext.WindowGroup();
var activeWindow;
//liuliming--fisheyetoolbar
this.lmtaskbar = new Ext.ux.lmfisheyetoolbar(app);
var lmtaskbar = this.lmtaskbar;
//liuliming end
function minimizeWin(win){
win.minimized = true;
win.hide();
}
function markActive(win){
if(activeWindow && activeWindow != win){
markInactive(activeWindow);
}
taskbar.setActiveButton(win.taskButton);
activeWindow = win;
Ext.fly(win.taskButton.el).addClass('active-win');
win.minimized = false;
//liuliming--fisheyetoolbar
lmtaskbar.setActiveButton(win.lmtaskButton);
Ext.fly(win.lmtaskButton).addClass('active-win');
//end of liuliming
}
function markInactive(win){
if(win == activeWindow){
activeWindow = null;
Ext.fly(win.taskButton.el).removeClass('active-win');
//liuliming--fisheyetoolbar
Ext.fly(win.lmtaskButton).removeClass('active-win');
//end of liuliming
}
}
function removeWin(win){
taskbar.removeTaskButton(win.taskButton);
//liuliming--fisheyetoolbar
lmtaskbar.removeTaskButton(win.lmtaskButton);
//end of liuliming
layout();
}
function layout(){
desktopEl.setHeight(Ext.lib.Dom.getViewHeight()-taskbarEl.getHeight());
}
Ext.EventManager.onWindowResize(layout);
this.layout = layout;
this.createWindow = function(config, cls){
var win = new (cls||Ext.Window)(
Ext.applyIf(config||{}, {
manager: windows,
minimizable: true,
maximizable: true
})
);
win.render(desktopEl);
win.taskButton = taskbar.addTaskButton(win);
//liuliming--fisheyetoolbar
win.lmtaskButton = lmtaskbar.addTaskButton(win);
//end of liuliming
win.cmenu = new Ext.menu.Menu({
items: [
]
});
win.animateTarget = win.taskButton.el;
win.on({
'activate': {
fn: markActive
},
'beforeshow': {
fn: markActive
},
'deactivate': {
fn: markInactive
},
'minimize': {
fn: minimizeWin
},
'close': {
fn: removeWin
}
});
//liuliming--fisheyetoolbar
var top = this.lmtaskbar.barwindow.getSize().height * 2.2 ;
win.setPosition(200, top);
//end of liuliming
layout();
return win;
};
Thanks to:
mxracer / Start Menu for 2.0 Desktop http://extjs.com/forum/showthread.php?t=10950
Matjaž Lipuš (matjaz) / An OSX dock-style fisheye menu
Click it!
Thanks to:
mxracer / Start Menu for 2.0 Desktop /http://extjs.com/forum/showthread.php?t=10950
Matja? Lipu? (matjaz) / An OSX dock-style fisheye menu /
tomantic /
1 a toolbar with fisheye
2 drag and move
3 collapsible, foldable
4 add or remove items dynamically
5 sub-menu, see lmtoolbar.js addMenu
6 quickstart button, see lmtoolbar.js addQsButton
7 task button, interact with opened windows, show or hide a window,see lmtoolbar.js addTaskButton and uncomment some lines in desktop.js I have.
You can see the features,howto and demo pictures here, or get the live-demo url and package.
It looks like this(mouse over:):
http://www.chinacloud.org/liuliming/toolbar-browser20080112.png
jsdesk features:
1 Create new account
2 Password encrypt
3 Fisheye-toolbar
4 A browser window:lmbrowser
live-demo url:
http://www.chinacloud.org/jsdesk/
All-in-one-package:
http://www.chinacloud.org/liuliming/jsdesk20080327-2.zip
Please note that: the package is about 10M, because it includes ext and wallpapers.
If you use this package, modify /source/inConfig.php and run /source/install.php, otherwise get the attached file and refer to following Howto.
You can get latest code from: svn checkout http://jsdesk.googlecode.com/svn/trunk/ jsdesk-read-only
How to:
1 down load the file attached
2 upzip
3 drop lmtoolbar to source/modules
4 modify default.php like this:
add :
<script type="text/javascript" src="source/modules/lmtoolbar/fisheye.js"></script>
<script type="text/javascript" src="source/modules/lmtoolbar/lmtoolbar.js"></script>
<link rel="stylesheet" type="text/css" href="source/modules/lmtoolbar/fisheye.css" />
and:
<dl id="x-toolbars">
<dt id="toolbar2">
</dt>
</dl>
It will looks like this:
<?php
require_once("source/desktop.php");
if(!class_exists('desktop'))
{
header("Location: login.html");
}
else
{
$desktop = new desktop();
if(!$desktop->is_logged_in())
{
header("Location: login.html");
}
else
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>qWikiOffice</title>
<!-- EXT -->
<link rel="stylesheet" type="text/css" href="../Ext/2.0/resources/css/ext-all.css" />
<script type="text/javascript" src="../Ext/2.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../Ext/2.0/ext-all.js"></script>
<!-- LOGIN -->
<script type="text/javascript" src="source/login/cookies.js"></script>
<!-- DESKTOP -->
<script type="text/javascript" src="source/core/StartMenu.js"></script>
<script type="text/javascript" src="source/core/TaskBar.js"></script>
<!-- fisheye -->
<link href="source/modules/lmtoolbar/fisheye.css" type="text/css" rel="stylesheet"/>
<script src="source/modules/lmtoolbar/fisheye.js" type="text/javascript"></script>
<script src="source/modules/lmtoolbar/lmtoolbar.js" type="text/javascript"></script>
<script type="text/javascript" src="source/core/Desktop.js"></script>
<script type="text/javascript" src="source/core/App.js"></script>
<script type="text/javascript" src="source/core/Module.js"></script>
<script type="text/javascript" src="source/core/DesktopConfig.js"></script>
<!-- DESKTOP HELPERS -->
<script type="text/javascript" src="source/helpers/color-picker/color-picker.ux.js"></script>
<link rel="stylesheet" type="text/css" href="source/helpers/color-picker/color-picker.ux.css" />
<script type="text/javascript" src="source/helpers/preferences/Preferences.js"></script>
<link rel="stylesheet" type="text/css" href="source/helpers/preferences/preferences.css" />
<!-- MODULES -->
<script type="text/javascript" src="source/modules/layout-window/js/layout-window.js"></script>
<script type="text/javascript" src="source/modules/docs/js/docs.js"></script>
<link rel="stylesheet" type="text/css" href="source/modules/docs/css/docs.css" />
<!-- THEME -->
<link id="theme" rel="stylesheet" type="text/css" href="resources/themes/xtheme-vista/css/xtheme-vista.css" />
<!-- DESKTOP STYLES -->
<link rel="stylesheet" type="text/css" href="resources/css/desktop.css" />
</head>
<body scroll="no">
<div id="x-desktop">
<dl id="x-shortcuts">
<dt id="docs-win-shortcut">
<a href="#"><img src="resources/images/default/s.gif" />
<div>Developer Docs</div></a>
</dt>
<dt id="grid-win-shortcut">
<a href="#"><img src="resources/images/default/s.gif" />
<div>Grid Window</div></a>
</dt>
<dt id="acc-win-shortcut">
<a href="#"><img src="resources/images/default/s.gif" />
<div>Accordion Window</div></a>
</dt>
</dl>
<dl id="x-toolbars">
<dt id="toolbar2">
</dt>
</dl>
</div>
<div id="ux-taskbar">
<div id="ux-taskbar-start"></div>
<div id="ux-taskbar-panel-wrap">
<div id="ux-quickstart-panel"></div>
<div id="ux-taskbuttons-panel"></div>
</div>
<div class="x-clear"></div>
</div>
<script type="text/javascript">
</script>
</body>
</html>
<?php }} ?>
5 modify desktop.js like this (see the file desktop.js in the package)
Ext.Desktop = function(app){
this.taskbar = new Ext.ux.TaskBar(app);
var taskbar = this.taskbar;
var desktopEl = Ext.get('x-desktop');
var taskbarEl = Ext.get('ux-taskbar');
var shortcuts = Ext.get('x-shortcuts');
var windows = new Ext.WindowGroup();
var activeWindow;
//liuliming--fisheyetoolbar
this.lmtaskbar = new Ext.ux.lmfisheyetoolbar(app);
var lmtaskbar = this.lmtaskbar;
//liuliming end
function minimizeWin(win){
win.minimized = true;
win.hide();
}
function markActive(win){
if(activeWindow && activeWindow != win){
markInactive(activeWindow);
}
taskbar.setActiveButton(win.taskButton);
activeWindow = win;
Ext.fly(win.taskButton.el).addClass('active-win');
win.minimized = false;
//liuliming--fisheyetoolbar
lmtaskbar.setActiveButton(win.lmtaskButton);
Ext.fly(win.lmtaskButton).addClass('active-win');
//end of liuliming
}
function markInactive(win){
if(win == activeWindow){
activeWindow = null;
Ext.fly(win.taskButton.el).removeClass('active-win');
//liuliming--fisheyetoolbar
Ext.fly(win.lmtaskButton).removeClass('active-win');
//end of liuliming
}
}
function removeWin(win){
taskbar.removeTaskButton(win.taskButton);
//liuliming--fisheyetoolbar
lmtaskbar.removeTaskButton(win.lmtaskButton);
//end of liuliming
layout();
}
function layout(){
desktopEl.setHeight(Ext.lib.Dom.getViewHeight()-taskbarEl.getHeight());
}
Ext.EventManager.onWindowResize(layout);
this.layout = layout;
this.createWindow = function(config, cls){
var win = new (cls||Ext.Window)(
Ext.applyIf(config||{}, {
manager: windows,
minimizable: true,
maximizable: true
})
);
win.render(desktopEl);
win.taskButton = taskbar.addTaskButton(win);
//liuliming--fisheyetoolbar
win.lmtaskButton = lmtaskbar.addTaskButton(win);
//end of liuliming
win.cmenu = new Ext.menu.Menu({
items: [
]
});
win.animateTarget = win.taskButton.el;
win.on({
'activate': {
fn: markActive
},
'beforeshow': {
fn: markActive
},
'deactivate': {
fn: markInactive
},
'minimize': {
fn: minimizeWin
},
'close': {
fn: removeWin
}
});
//liuliming--fisheyetoolbar
var top = this.lmtaskbar.barwindow.getSize().height * 2.2 ;
win.setPosition(200, top);
//end of liuliming
layout();
return win;
};
Thanks to:
mxracer / Start Menu for 2.0 Desktop http://extjs.com/forum/showthread.php?t=10950
Matjaž Lipuš (matjaz) / An OSX dock-style fisheye menu
Click it!
Thanks to:
mxracer / Start Menu for 2.0 Desktop /http://extjs.com/forum/showthread.php?t=10950
Matja? Lipu? (matjaz) / An OSX dock-style fisheye menu /
tomantic /