Apple Developer Connection
Advanced Search
Member Login Log In | Not a Member? Contact ADC


ウィジェットイベント

ウィジェットは、特定のイベントに反応しなければならないことがあります。ウィジェットは、プロセッサを集中的に使用する場合、Dashboardを隠したときには動作するべきではありません。フォーカスが当たったことを明るくなることで示す場合、ウィジェットはフォーカスが当たったことを認識できる必要があります。こうしたイベントは、ウィジェットイベントとDashboardイベントを検出したいウィジェット開発者には有用です。

In this section:

Dashboardのアクティブ化イベント
ウィジェットのフォーカスイベント
ウィジェットのドラッグイベント
ウィジェットの削除イベント


Dashboardのアクティブ化イベント

ウィジェットは、Dashboardがアクティブになったときを知ることができます。Dashboardが隠れているとき、ウィジェットはCPU時間やネットワークリソースを消費するべきではありません。Dashboardがアクティブであることをウィジェットに通知するには、プロパティwidget.onshowおよびwidget.onhideにメソッドを割り当てます。たとえば、「世界時計」ウィジェットでは、時間表示の開始と停止のための関数を割り当てています。

if (window.widget)
{
 
    widget.onshow = onshow;
    widget.onhide = onhide;
 
}

Dashboardが表示されると、onshowが呼び出されます。この関数は、タイマーを開始します。

function onshow () {
    if (timer == null) {
        updateTime();
        timer = setInterval("updateTime();", 1000);
    }
}

Dashboardが隠されると、onhideが呼び出されます。

function onhide () {
    if (timer != null) {
        clearInterval(timer);
        timer = null;
    }
}

これらのプロパティは、ウィジェットがリソースを集中的に使用する場合に使用します。インターネットからデータを継続的に取得するウィジェット(たとえば、「Stocks」ウィジェット、「Weather」ウィジェットなど)の場合や、常にデータを描画するウィジェット(たとえば、時計など)の場合、Dashboardが隠されているときにウィジェットをアクティブにしておく必要はありません。

ウィジェットのフォーカスイベント

ウィジェットは、フォーカスが当たったことを知ることもできます。そして、最前面のウィジェットのときに動作を変えるということが可能です。このような動作を示す例として、「計算機」ウィジェットがあります。「計算機」ウィジェットは最前面のウィジェットになると、Figure 18のように、計算機の画面の色がグレーからブルーに変わります。


Figure 18  「計算機」ウィジェットのアクティブな状態と非アクティブな状態

The Calculator widget, active and inactive

このイベントは、ウィジェットウインドウの2つのプロパティ、window.onfocusおよびwindow.onblurが処理します。次のコードは、「計算機」ウィジェットが、それぞれのイベントのときに呼び出す関数を指定するコードです。

    window.onfocus = focus;
    window.onblur = blur;

focus関数は、ブルーのLCDを可視にします。

function focus()
{
    document.getElementById("lcd-backlight").style.visibility =  "block";
    document.getElementById("calcDisplay").setAttribute("class", "backlightLCD");
}

blur 関数は、ブルーのLCDを不可視にします。

function blur()
{
    document.getElementById("lcd-backlight").style.visibility = "none";
    document.getElementById("calcDisplay").setAttribute("class", "nobacklightLCD");
}

ウィジェットのドラッグイベント

ウィジェットにおいて、Dashboardの中をドラッグされていることを認識できると都合がよい場合があります。ドラッグの開始と終了を通知する2つのプロパティが用意されています。

widget.ondragstart

ウィジェットのドラッグが開始されるときに呼び出されます。

widget.ondragend

ウィジェットのドラッグが終了するときに呼び出されます。

この2つのリスナのそれぞれに、ウィジェットによってイベントが検出されたときに実行するハンドラを割り当てます。

widget.ondragstart = widgetDragStartHandler;
widget.ondragend = widgetDragEndHandler;

ハンドラには、パラメータは一切渡されません。

ウィジェットの削除イベント

ウィジェットは、Dashboardから取り除かれたときに、そのことの通知を受け取ることができます。これは、ウィジェットを閉じるときに維持したくないウィジェット環境設定を削除する場合や、ウィジェットを閉じるに当たって何らかの処理を実行したい場合に便利です。

onremoveリスナは、ウィジェットが閉じられるときに呼び出すハンドラを引数として受け取ります。

widget.onremove = removalHandler;




Last updated: 2006-08-07




Did this document help you?
Yes: Tell us what works for you.

It’s good, but: Report typos, inaccuracies, and so forth.

It wasn’t helpful: Tell us what would have helped.
Get information on Apple products.
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Copyright © 2007 Apple Inc.
All rights reserved. | Terms of use | Privacy Notice