Jan 27, 2009, 7:14 PM
code view on desktop window
I try make some things in the desktop :)
I need in my desktop
1 - create a run time window (or desktopwindow)
2 - the window don´t reopen with this to be open
3 - resize the wallpaper of the window
my solutions for these problems
1 and 2
I find in forum create window in run time, but don´t work with desktop window :(.
Create the .js with the code of create windows, and control the opening of them
.js
var janelas="";
var intJanela=-1;
function createWindow(name){
//verify of the window is opened
intJanela=janelas.indexOf(name);
if (intJanela != -1){
//if have the string, abort function
return
}
//put name in string
janelas += name ;
//open the window
switch(name){
case 'LogOut':{winLogOut(name); break;}
case 'produto.aspx':{ winProduto(name); break;}
case 'produto_categoria.aspx':{ winProdutoCategoria(name); break;}
case 'produto_subcategoria.aspx':{ winProdutoSubCategoria(name); break;}
}
}
function removeTabJanela(win){
//remove the name of window of the string
janelas = janelas.replace(win, " ");
}
function winLogOut(name){
var window = new Ext.Window({
name:name
, collapsible: true
, title: "Formulário teste"
, width:200
, height:300
});
window.name = name;
window.show();
window.on('close',function(){removeTabJanela(name)});
}
note I use the name of the .aspx for call the function createWindowand inserte listener close in code
in the menu I put this
<ext:MenuItem Text="Produtos">
<Listeners>
<Click Handler="createWindow('produto.aspx')" />
</Listeners>
</ext:MenuItem>
Work fine, but I don´t know if is the best mode for make this. like the view of the members...for the other problem, i make this code in .js
// Cross-browser, cross-platform, self-resizing
// web page background images. JavaScript code
// copyright 2006, 2007, 2008 Boutell.Com, Inc.
//
// See http://www.boutell.com/newfaq/ for more information.
//
// Permission granted to use, republish, sell and otherwise
// benefit from this code as you see fit, provided you keep
// this notice intact. You may remove comments below this line.
//
// END OF NOTICE
//
// INSTRUCTIONS: this WON'T WORK unless you do the following in the
// document that includes it.
//
// 1. Specify the right doctype at the top of your page:
//
// <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
// "http://www.w3.org/TR/html4/strict.dtd">
//
// 2. In the <head> element of your page, bring in this code:
//
// <script src="resizing_background.js">
// </script>
//
// 3. Set the right event handlers in your body element
// (you may call other functions too, use semicolons to separate):
//
// <body onload="rbInit()" onresize="rbResize()">
//
// 4. Call rbOpen() immediately after your <body> element:
//
// <script>
// // For a centered image that scales up but keeps its proportions
// // (be sure to also set a background-color style on body):
// rbOpen(true);
// // For an image that fills the entire window, distorting if necessary:
// rbOpen(false);
// </script>
//
// 5. If you have any absolutely positioned divs, put them
// BEFORE rbOpen(), and make VERY SURE you set z-index explicitly
// to 1 or higher for them, or the background will appear over
// them. Hint: use a style sheet to make that less painful.
//
// 6. Call rbClose() with the URL of YOUR background image,
// just before your </body> element (relative URLs are fine):
//
// <script>
// rbClose("background.jpg");
// </script>
//
// And that's all it takes!
//
// WARNINGS:
//
// 1. Internet Explorer versions prior to 7 will scroll jumpily.
// IE 7 beta 2 scrolls smoothly, just like Firefox, Safari, and Opera.
//
// 2. There's a very small "fudge factor" in use for Opera, because
// Opera doesn't support my Firefox trick to get the real size
// of the usable client area OR the Internet Explorer clientWidth
// method (Opera returns offsetWidth for clientWidth - that's
// not right, Opera). So I assume a 16 pixel scrollbar vertically
// and no scrollbar horizontally. Makes a very small difference.
//
// 3. Users with JavaScript disabled won't see a background.
// Set a reasonable background color in your <body> element
// as a fallback measure.
function rbIsIE()
{
if (navigator.appName == 'Microsoft Internet Explorer') {
return true;
}
return false;
}
function rbIsOpera()
{
if (navigator.appName == 'Opera') {
return true;
}
return false;
}
function rbSupportsFixed()
{
if (navigator.appName == 'Microsoft Internet Explorer') {
var agent = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
var version;
if (re.exec(agent) != null) {
version = parseFloat(RegExp.$1);
}
if (version < 7.0) {
return false;
}
}
return true;
}
var rbCenter = false;
function rbInit()
{
if (rbSupportsFixed()) {
div = document.getElementById('rbBackgroundDiv');
div.style.position = 'fixed';
}
// I'd use onScroll, but that
// doesn't exist in standards mode
setTimeout("rbReposition()", 50);
rbResize();
}
var rbLastScrollTop = null;
var rbSimulateTop = 0;
function rbResize()
{
// We're in "standards mode," so we must use
// document.documentElement, not document.body, in IE.
var width;
var height;
var x, y, w, h;
if (rbIsIE()) {
// All modern versions of IE, including 7, give the
// usable page dimensions here.
width = parseInt(document.documentElement.clientWidth);
height = parseInt(document.documentElement.clientHeight);
} else if (rbIsOpera()) {
// This is slightly off: the width and height will include
// scrollbar space we can't really use. Compensate by
// subtracting 16 pixels of scrollbar space from the width
// (standard in Opera). Firefox has an equivalent but
// more serious problem because such a mistake in Firefox
// will break mouse clicks on the scrollbar in
// Mac Firefox (yes, really!). Fortunately, in Firefox,
// we can use a third method that gives accurate results
// (see below).
width = parseInt(window.innerWidth) - 16;
// If there is a horizontal scrollbar this will be
// 16 pixels off in Opera. I can live with that.
// You don't design layouts with
// horizontal scrollbars, do you? (Shudder)
height = parseInt(window.innerHeight);
} else {
// Other non-IE browsers give the usable page dimensions here.
// We grab the info by discovering the visible dimensions
// of a hidden 100% x 100% div. Opera doesn't like this
// method any more than IE does. Fun!
testsize = document.getElementById('rbTestSizeDiv');
width = testsize.scrollWidth;
height = testsize.scrollHeight;
}
div = document.getElementById('rbBackgroundDiv');
img = document.getElementById('rbBackground');
if (rbCenter) {
if (img.width == 0) {
// We don't know the width yet, the image
// hasn't loaded. Set a timer to try again.
setTimeout("rbResize()", 1000);
return;
}
w = width;
h = width * (img.height / img.width);
x = 0;
y = (height - h) / 2;
if (y < 0) {
h = height;
w = height * (img.width / img.height);
y = 0;
x = (width - w) / 2;
}
} else {
x = 0;
y = 0;
w = width;
h = height;
}
// HTML 4.0 Strict makes the px suffix mandatory
// We have floating point numbers, trim them and add px
div.style.left = parseInt(x) + "px";
if (rbSupportsFixed()) {
div.style.top = parseInt(y) + "px";
} else {
rbSimulateTop = parseInt(y);
}
img.style.width = parseInt(w) + "px";
img.style.height = parseInt(h) + "px";
div.style.visibility = 'visible';
rbLastScrollTop = null;
rbReposition();
}
function rbReposition()
{
if (rbSupportsFixed()) {
return;
}
// Make sure we do this again
setTimeout("rbReposition()", 50);
// Standards mode, must use documentElement
body = document.documentElement;
var scrollTop = body.scrollTop;
// No scroll since last check
if (scrollTop == rbLastScrollTop) {
return;
}
rbLastScrollTop = scrollTop;
div = document.getElementById('rbBackgroundDiv');
var rbBodyDiv = document.getElementById('rbBodyDiv');
var pos = 0;
// Don't make the user scroll just to see the background itself
var max = rbBodyDiv.offsetHeight - rbBodyDiv.clientHeight;
if (max < 0) {
max = 0;
}
if (scrollTop <= max)
{
pos = scrollTop;
} else {
pos = max;
}
if (pos < 0) {
pos = 0;
}
div.style.top = pos + rbSimulateTop;
}
function rbOpen(center)
{
rbCenter = center;
document.write("<div id='rbBodyDiv' style='position: relative; z-index: 2'>\n");
}
function rbClose(image)
{
document.write("
\n");
str = "<div " +
"id='rbBackgroundDiv' " +
"style='position: absolute; " +
" visibility: hidden; " +
" top: 0px; " +
" left: 0px; " +
" z-index: 0'>" +
" <img src='" + image + "' id='rbBackground'>" +
"
\n";
document.write(str);
document.write("<div " +
"id='rbTestSizeDiv' " +
"style='width: 100%; " +
" height: 100%; " +
" position: fixed; " +
" left: 0; " +
" top: 0; " +
" visibility: hidden; " +
" z-index: -1'>
\n");
}
call it in header, and put this in my body (.aspx) desktop<body onload="rbInit()" onresize="rbResize()">
<script type="text/javascript" >
rbOpen(true);
</script>
<script type="text/javascript" >
rbClose("images/wallpaper/empresa.jpg");
</script>
work fine too...have this property in the <ext:desktop for make the background resizable??, i don´t use the member wallpaper of the desktop...
tks