Почему настройки, а затем Dock / Undock ломают этот гаджет рабочего стола Win 7? - PullRequest
0 голосов
/ 14 октября 2011

Я сузил его до настройки параметров, затем отменил или все в порядке (пока нет событий настройки кода), а затем попытался нажать на кнопку закрепления, что предсказуемо уничтожило элементы управления гаджетом. До сих пор я пробовал все предложения в комментариях, включая настройку класса, который, как я чувствовал, полностью сломал эту вещь.

Что меня действительно беспокоит, так это то, что он ведет себя одинаково, независимо от аргументов, передаваемых в метод endTransition или от того, существуют ли методы end и beginTrans. Это определенно не займет 5 полных секунд для перехода. Это было установлено в 1 раньше. Все еще никакой разницы. Ничего в документах об этих типах transition, которые я могу найти.

HTML-файл:

<!doctype html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=Unicode" />
    <title>Time Tracker Gadget</title>
    <link type="text/css" rel="stylesheet" media="screen" href="css/main.css" />
</head>

<body id="gadget">

<!-- pure HTML here, no linked scripts, inline JS, or styles -->

<script type="text/jscript" src="js/main.js"></script>

</body>

</html>

JS файл:

System.Gadget.settingsUI = "settings.html";

var docked = {width:"161px", height:"110px"},
undocked = {width:"295px", height:"390px"},
gadgetEl = document.getElementById('gadget'),

addStyles = function(el,newStyles){
    var elStyle = el.style;
    for(var x in newStyles){ elStyle[x] = newStyles[x]; }
},

swapDockStates = function(){

    System.Gadget.beginTransition();

    if(System.Gadget.docked){
        addStyles(gadgetEl,undocked);
    }
    else {
        addStyles(gadgetEl,docked);
    }

    System.Gadget.endTransition(System.Gadget.TransitionType.morph, 5);

};

System.Gadget.onDock = swapDockStates;
System.Gadget.onUndock = swapDockStates;

XML-файл:

<?xml version="1.0" encoding="utf-8" ?>
<gadget>
  <name>BigTime Gadget</name>
  <version>1.0.0.0</version>
  <author name="BigTime Software">
    <info url="www.bigtime.net" />
  </author>
  <copyright>&#169; BigTime Software Inc.</copyright>
  <description>Time tracking gadget</description>
  <hosts>
    <host name="sidebar">
      <base type="HTML" apiVersion="1.0.0" src="bigtime.html" />
      <permissions>Full</permissions>
      <platform minPlatformVersion="1.0" />
    </host>
  </hosts>
</gadget>

Ответы [ 2 ]

0 голосов
/ 27 сентября 2012

Вы должны изменить высоту тела, чтобы избежать этой проблемы:

swapDockStates = function(){

    System.Gadget.beginTransition();

    if(System.Gadget.docked){
        document.body.style.height = '110px';
        addStyles(gadgetEl,undocked);
    }
    else {
        document.body.style.height = '390px';
        addStyles(gadgetEl,docked);
    }
    System.Gadget.endTransition(System.Gadget.TransitionType.morph, 5);
};
0 голосов
/ 14 октября 2011

Тьфу ... как неловко.Не связывайте один и тот же файл JS с обработчиками событий и местоположением настроек как в файле настроек, так и в файле гаджета.Это объяснило бы некоторые из видимого поведения вещей, независимо от того, присутствуют они или удалены.Хотелось бы, чтобы было более подробное объяснение того, что происходит с точки зрения глобального охвата.

...