Foundation > グラフィック・オブジェクト > IlvGraphic:グラフィック・オブジェクト・クラス > コールバック
 
コールバック
オブジェクトに動作を実行するように指定した場合、自分で定義した特定の関数であるコールバックを呼び出す必要が起こる場合もあります。これらの関数は、通常オブジェクトの handleEvent メソッドにより呼び出されます。
アクションがトリガーされたときに特定のコールバックを呼び出すように設定するには、次の 2 つの方法があります。
*ユーザー定義の関数へのポインターとしてコールバックを登録します。
この関数は、IlvGraphicCallback タイプである必要があります。
IlvGraphicCallback タイプは、<ilviews/graphic.h >ファイルで定義されます。
#include <ilviews/graphic.h>
typedef void (* IlvGraphicCallback)(IlvGraphic* obj, IlAny arg);
最初の引数 (obj) はコールバックを呼び出したグラフィック・オブジェクトであり、2 つ目の引数 (arg) はユーザー・データです。ユーザー・データは、コールバックを特定のガジェットに設定する際に定義できます。データが何も定義されないと、パラメーターは IlvGraphic::setClientData で設定できるグラフィック・オブジェクトのクライアント・データになります。
*グラフィック・オブジェクト・コンテナーにより呼び出される関数に関連付けられているコールバック名を登録します。コールバック関数とその名前の関連付けは、特定のコンテナーに固有でなければなりません。
コールバックの登録
コンテナーでコールバックを登録するために使用するメソッドは、次の通りです。
#include <ilviews/contain.h>
 
void registerCallback(const char* callbackName,
IlvGraphicCallback callback);
void unregisterCallback(const char* callbackName);
IlvGraphicCallback getCallback(const IlSymbol* callbackName) const;
コールバック・タイプ
オブジェクトは複数のコールバック・タイプを定義できます。各コールバック・タイプは特定のアクションに対応します。たとえば、イベント・ガジェットには、ガジェットがキーボード・フォーカスを受け取ったときに呼び出されるコールバックである「Focus In (フォーカス・イン) 」というコールバック・タイプがあります。
各コールバック・タイプは、関連するイベントが発生したときに呼び出されるコールバックのリストを格納しています。IlvGraphic クラスには、特定のコールバック・タイプでコールバックを追加または削除できる汎用メソッドがあります。
#include <ilviews/graphic.h>
 
void addCallback(const IlSymbol* callbackType,
IlvGraphicCallback callback);
void addCallback(const IlSymbol* callbackType,
const IlSymbol* callbackName);
void addCallback(const IlSymbol* callbackType,
IlvGraphicCallback callback,
IlAny data);
void addCallback(const IlSymbol* callbackType,
const IlSymbol* callbackName,
IlAny data);
void removeCallback(const IlSymbol* callbackType,
IlvGraphicCallback callback);
void removeCallback(const IlSymbol* callbackType,
const IlSymbol* callbackName);
コールバックを追加するときに渡すことができる引数 data は、コールバックに送られます。これは、IlvGraphicCallback 定義の arg という引数に対応しています。
メイン・コールバック
メイン・コールバック・タイプは、オブジェクトのメイン・アクションを実行するために使用できます。メイン・アクションは、複数のアクションを実行するようになっています。たとえば、ボタン・オブジェクをアクティブにするときや文字列リストのアイテムをダブルクリックするときに使用できます。
次のメソッドでは、オブジェクトのメイン・コールバックを容易に設定できます。
#include <ilviews/graphic.h>
 
IlvGraphicCallback getCallback() const;
IlSymbol* getCallbackName() const;
void setCallback(IlvGraphicCallback callback);
void addCallback(IlvGraphicCallback callback);
void setCallback(IlvGraphicCallback callback, IlAny data);
void addCallback(IlvGraphicCallback callback, IlAny data);
void setCallback(const IlSymbol* callbackName);
void setCallback(const IlSymbol* callbackName, IlAny data);
void setCallbackName(const IlSymbol* callbackName);

Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.