Probleme webos

cs_superpl Messages postés 2 Date d'inscription mercredi 27 février 2008 Statut Membre Dernière intervention 14 août 2009 - 12 août 2009 à 12:08
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 - 14 août 2009 à 14:06
Bonjour. Je programme un webos, dont le noyeau est inspiré d'un tutoriel sur "le site du zero", mais je rencontre un probleme : j'ai mis une icone, et depuis j'ai un soucis : quand je bouge la fenetre, il y a a un decalage avec la souris, dépendant de la taille de l'icone . J'ai caché le problème en corrigeant le décalage
( dX (x+3) - eX; dY (y+67) - eY : 3 et 63 sont le décalage), mais la fenetre ne s'agrandit pas !

voici le code principal :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML ><HEAD><TITLE>Fenêtre</TITLE>
<META http-equiv=Content-type content="text/html; charset=utf-8">

<script type="text/javascript">var dragged = null;
<!--
function Open(){
document.getElementById("Windows").style.display = "block";
}
var dX, dY;

function start_drag(objet,event)
{
if( objet.max) return; //on quitte la fonction
  dragged = objet;

event.returnValue = false;
if( event.preventDefault ) event.preventDefault();

//Coordonnées de la souris
  var x = event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
  var y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);


//Coordonnées de l'élément
  var eX = 0;
  var eY = 0;
  var element = objet;
  do
  {
    eX += element.offsetLeft;
    eY += element.offsetTop;
    element = element.offsetParent;
} while( element && getCssStyleValue(element, 'position') != 'absolute');

//Calcul du décallage
  dX = (x+3) - eX;
  dY = (y+67) - eY;



}

function min_max(fenetre)
{
  if( ! fenetre.max )
  {
    fenetre.max = true;
    fenetre.oldTop = fenetre.style.top;
    fenetre.oldLeft = fenetre.style.left;
    fenetre.oldWidth = fenetre.style.width;
    fenetre.oldHeight = fenetre.style.height;
     
    fenetre.style.top = 0;
    fenetre.style.left = 0;
    fenetre.style.width = '100%';
    fenetre.style.height = '100%';
  }
  else
  {
    fenetre.max = false;
    fenetre.style.top = fenetre.oldTop;
    fenetre.style.left = fenetre.oldLeft;
    fenetre.style.width = fenetre.oldWidth;
    fenetre.style.height = fenetre.oldHeight;
  }
}

function close(fenetre)
{
  //fenetre.parentNode.removeChild(fenetre);
  //fenetre.style.display = 'none';
document.getElementById("Windows").style.display = "none";
}

function drag_onmousemove(event) 
{
  if( dragged ) 
  {
    var x = event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
    var y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);

//On applique le décalage
x -= dX;
y -= dY;

    dragged.style.position = 'absolute';
    dragged.style.left = x + 'px';
    dragged.style.top = y + 'px';
  }
}

function drag_onmouseup(event) 
{
  dragged = null; //On arrête le drag&drop
}

function addEvent(obj,event,fct)
{
  if( obj.attachEvent)
     obj.attachEvent('on' + event,fct);
  else
     obj.addEventListener(event,fct,true);
}

function getCssStyleValue(element /*element html*/, style/*style recherché*/)
{
  if( element.currentStyle )
  {
    return element.currentStyle[style];
  }
  else
  {
    return window.getComputedStyle(element,null).getPropertyValue(style);
  }
}

function drag_onmousedown (event)
{
  var target = event.target || event.srcElement;
  
  //On commence par trouver la fenêtre elle-même
  var fenetre = target;
  while( fenetre)
  {
    if( fenetre.className && fenetre.className.match(/\bwindow-base\b/g) )
    {
       break; //On arrête la boucle
    }
fenetre = fenetre.parentNode;
  }
  if( !fenetre) //Si on est sorti de la boucle mais qu'on a trouvé aucune fenêtre, on abandonne
    return;

  //Maintenant, on part à la recherche d'un bouton déclencheur
  var element = target;
  while(element)
  {
    if( element.className)
    {
      if( element.className.match(/\bwindow-close\b/g))
      {
        close(fenetre);
        break;
      }
      else if( element.className.match(/\bwindow-min-max\b/g) )
      {
        min_max(fenetre);
        break;
}
      else if( element.className.match(/\bwindow-move\b/g) )
      {
        start_drag(fenetre, event);
        break;
      }
    }
element = element.parentNode;
  }

//Mettre au premier plan
var elements = document.getElementsByTagName('*'); //On récupère tous les éléments de la page
var zIndex = 0;
for( var i=0; i < elements.length; i++)
{
zIndex = Math.max(zIndex,elements[i].style.zIndex);
}
fenetre.style.zIndex = zIndex + 1; //toujours plus haut que le plus haut 

}
addEvent(document,'mousedown',drag_onmousedown);
addEvent(document,'mousemove',drag_onmousemove);
addEvent(document,'mouseup',drag_onmouseup);
a=0;

-->


</script>







<STYLE type=text/css>.window-base {
BORDER-RIGHT: #000 1px solid; BORDER-TOP: #000 1px solid; BORDER-LEFT: #000 1px solid; WIDTH: 400px; BORDER-BOTTOM: #000 1px solid; POSITION: absolute; HEIGHT: 200px; BACKGROUND-COLOR: #ddd; CURSOR: url("curseurs/Blue Obsession/normal.cur"), auto
}
.window-close {
FLOAT: right; BACKGROUND-COLOR: #00d ;
CURSOR: url("curseurs/Blue Obsession/main.cur"), auto
}
.window-min-max {
FLOAT: right; BACKGROUND-COLOR: #00d= ; CURSOR: url("curseurs/Blue Obsession/main.cur"), auto
}
.window-move {
WIDTH: 100%;CURSOR: url("curseurs/Blue Obsession/deplacements.cur"), auto; background-image:url("move.bmp"); HEIGHT: 30px; BACKGROUND-COLORe: #00d; color:white;
}
body{
CURSOR: url("curseurs/Blue Obsession/normal.cur"), auto;
background-image:url("fonds d'ecran/1.jpg");
}


html, html *
{
CURSOR: url("curseurs/Blue Obsession/normal.cur"), auto;
position:relative;
}

.img_fond
{
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
#background{position:absolute; z-index:1; width:100%; heigth:100%;}
#scroller{position:absolute; z-index:2; width:100%; heigth:100%; top:0; left:0; overflow:auto;}
#content{padding:5px 300px 20px 200px}
</STYLE>


<META content="MSHTML 6.00.2900.3395" name=GENERATOR></HEAD>







<script type="text/javascript">document.getElementById("Windows").style.display = "block";</script>









 apparence 

</OBJECT>










</HTML>





pour voir tous les fichiers, telechargez-les ici .

PS : Désolé s'il y a des div et des classes en trop, ils ont été supprimés, mais pas quand j'ai fait l'enregistrement .

3 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
12 août 2009 à 13:39
Bonjour,

>>Je programme un webos
ça doit être bien.
même je ne sais pas ce que c'est !

>>pour voir tous les fichiers, telechargez-les
parce qu'en plus de ce que vous nous mettez
il manque des choses ?

ne vous étonnez pas de ne pas avoir de réponses
cernez un ch'tiot poil mieux votre souci
là, vous donnez l'impression d'avoir
récupérer je ne sais quoi je ne sais où
et de nous dire : tiens voilà tout et démerdez-vous

Cordialement [mon Site] [M'écrire] Bul
0
cs_superpl Messages postés 2 Date d'inscription mercredi 27 février 2008 Statut Membre Dernière intervention 14 août 2009
14 août 2009 à 13:27
1/ un webos est comme un os, c'est à dire qu'il imite un windows .
2/ je ne peut pas tout mettre : les seuls codes externes sont helloworld (le corps de l'application ouverte grace à l'icone), qui inclut un autre code js .
Les autres fichiers sont des fonds d'écrans, des packs d'icones et des images utilisés (ou non mais vont etre utilisé: je n'ai pas enlevé les fichiers jusque là inutilisés), que je ne peut pas mettre.
Mais on peut tester le code en mettant une icone 50x50, et toutes les autres images citéés dans le code principal (on s'en fiche de helloworld)

Merci de vos reponses
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
14 août 2009 à 14:06
>>un webos est comme un os, c'est à dire
>>qu'il imite un windows
sur le web ??? ???
vous êtes trop fort pour moi :
vous êtes en concurrence avec google ?
( qui n'est en fait pas en concurrence avec un
OS au sens strict, d'après ce que je lis !!!! )
mais franchement, vous vous trompez de langage !!!!!
assembleur, c[++] ... me semblent indispensables

>>je ne peut pas tout mettre
ah ben alors, vous allez avoir du mal à ce qu'on
corrige vos erreurs
handicapé nasal (**) faites donc l'extrait
de ce qui pose problème, on devrait pouvoir
vous aider à aller plus loin !

(**) néanmoins
0
Rejoignez-nous