\section{\module{aetypes} ---
         AppleEvent オブジェクト}
% AppleEvent objects

\declaremodule{standard}{aetypes}
  \platform{Mac}
%\moduleauthor{Jack Jansen?}{email}
\modulesynopsis{Apple Event オブジェクトモデルの Python 表現}
% Python representation of the Apple Event Object Model.
\sectionauthor{Vincent Marchetti}{vincem@en.com}

%% The \module{aetypes} defines classes used to represent Apple Event data
%% descriptors and Apple Event object specifiers.

\module{aetypes} では、 Apple Event データデスクリプタ
(data descriptor) や Apple Eventオブジェクト指定子
(object specifier) を表現するクラスを定義しています。


%% Apple Event data is is contained in descriptors, and these descriptors
%% are typed. For many descriptors the Python representation is simply the
%% corresponding Python type: \code{typeText} in OSA is a Python string,
%% \code{typeFloat} is a float, etc. For OSA types that have no direct
%% Python counterpart this module declares classes. Packing and unpacking
%% instances of these classes is handled automatically by \module{aepack}.

Apple Event データはデスクリプタに含まれていて、これらのデスクリプタは
片付けされています。多くのデスクリプタは、単に対応するPython の型で
表現されています。例えば、OSA 中の \code{typeText} は Python 文字
列型で、\code{typeFloat} は 浮動小数点型になる、といった具合です。
このモジュールでは、OSA の型のうち、直接的に対応する Python の型がない
もののためにクラスを定義しています。そのようなクラスのインスタンスに対
するパックやアンパック操作は、 \module{aepack} モジュール自動的に処理
します。


%% An object specifier is essentially an address of an object implemented
%% in a Apple Event server. An Apple Event specifier is used as the direct
%% object for an Apple Event or as the argument of an optional parameter.
%% The \module{aetypes} module contains the base classes for OSA classes
%% and properties, which are used by the packages generated by
%% \module{gensuitemodule} to populate the classes and properties in a
%% given suite.

オブジェクト指定子は、本質的には Apple Event サーバ中に実装されている
オブジェクトへのアドレスです。Apple Event 指定子は、Apple Event の
オブジェクトそのものとして、あるいはオプションパラメタの引数として
使われます。
\module{aetypes} モジュールには OSA クラスやプロパティを表現するための
基底クラスが入っています。これらのクラスは、\module{gensuitemodule}
が生成するパッケージ内で、目的に応じてクラスやプロパティを増やす
際に使われます。

%% For reasons of backward compatibility, and for cases where you need to
%% script an application for which you have not generated the stub package
%% this module also contains object specifiers for a number of common OSA
%% classes such as \code{Document}, \code{Window}, \code{Character}, etc.

以前のバージョンとの互換性や、スタブパッケージを生成していないような
アプリケーションをスクリプトで書く必要がある場合のために、
このモジュールには\code{Document} 、\code{Window}、\code{Character}、
といったよく使われる OSA クラスのいくつかを指定できるオブジェクト
指定子も入っています。

%% The \module{AEObjects} module defines the following classes to represent
%% Apple Event descriptor data:

\module{AEObjects} モジュールでは、以下のようなクラスを定義して、
Apple Event デスクリプタデータを表現しています:

\begin{classdesc}{Unknown}{type, data}
%% The representation of OSA descriptor data for which the \module{aepack}
%% and \module{aetypes} modules have no support, i.e. anything that is not
%% represented by the other classes here and that is not equivalent to a
%% simple Python value.

\module{aepack} や \module{aetypes} がサポートしていない OSA の
デスクリプタデータ、すなわち、このモジュールで扱っている他のクラスや、
Python の組み込み型の値で表現されていないようなデータを表現するクラスです。
\end{classdesc}

\begin{classdesc}{Enum}{enum}
%% An enumeration value with the given 4-character string value.

列挙値 (enumeration value) を表すクラスです。
値は 4 文字の文字列型になります。
\end{classdesc}

\begin{classdesc}{InsertionLoc}{of, pos}
%% Position \code{pos} in object \code{of}.

オブジェクト \code{of} の中の \code{pos} の位置を表すクラスです。
\end{classdesc}

\begin{classdesc}{Boolean}{bool}
%% A boolean.

ブール値 (真偽値) を表すクラスです。
\end{classdesc}

\begin{classdesc}{StyledText}{style, text}
%% Text with style information (font, face, etc) included.

スタイル情報 (フォント、タイプフェイスなど) つきのテキストを表す
クラスです。
\end{classdesc}

\begin{classdesc}{AEText}{script, style, text}
%% Text with script system and style information included.

スクリプトシステム (script system) およびスタイル情報の入った
テキストを表すクラスです。
\end{classdesc}

\begin{classdesc}{IntlText}{script, language, text}
%% Text with script system and language information included.

スクリプトシステムと言語情報 (language information) の入った
テキストを表すクラスです。
\end{classdesc}

\begin{classdesc}{IntlWritingCode}{script, language}
%% Script system and language information.

スクリプトシステムと言語情報を表すクラスです。
\end{classdesc}

\begin{classdesc}{QDPoint}{v, h}
%% A quickdraw point.

QuickDrawの点を表すクラスです。
\end{classdesc}

\begin{classdesc}{QDRectangle}{v0, h0, v1, h1}
%% A quickdraw rectangle.

QuickDrawの矩形を表すクラスです。
\end{classdesc}

\begin{classdesc}{RGBColor}{r, g, b}
%% A color.

色を表すクラスです。
\end{classdesc}

\begin{classdesc}{Type}{type}
%% An OSA type value with the given 4-character name.

OSA の型 (type value) を表すクラスです。
4 文字からなる名前を値に持ちます。
\end{classdesc}

\begin{classdesc}{Keyword}{name}
%% An OSA keyword with the given 4-character name.

OSA のキーワードです。
4 文字からなる名前を値に持ちます。
\end{classdesc}

\begin{classdesc}{Range}{start, stop}
%% A range.

範囲を表すクラスです。
\end{classdesc}

\begin{classdesc}{Ordinal}{abso}
%% Non-numeric absolute positions, such as \code{"firs"}, first, or \code{"midd"},
%% middle.

先頭を表す \code{"firs"} や中央を表す\code{"midd"} のように、
数値でない絶対位置指定子を表すクラスです。
\end{classdesc}

\begin{classdesc}{Logical}{logc, term}
%% The logical expression of applying operator \code{logc} to
%% \code{term}.

演算子 \code{logc} を\code{term} に適用したときの論理式を
表すクラスです。
\end{classdesc}

\begin{classdesc}{Comparison}{obj1, relo, obj2}
%% The comparison \code{relo} of \code{obj1} to \code{obj2}.

\code{obj1} と \code{obj2} の \code{relo} による比較を表すクラスです。
\end{classdesc}

%% The following classes are used as base classes by the generated stub
%% packages to represent AppleScript classes and properties in Python:

以下のクラスは、生成されたスタブパッケージが、
AppleScript のクラスやプロパティを Python で表現する上で
基底クラスとして利用します。

\begin{classdesc}{ComponentItem}{which\optional{, fr}}
%% Abstract baseclass for an OSA class. The subclass should set the class
%% attribute \code{want} to the 4-character OSA class code. Instances of
%% subclasses of this class are equivalent to AppleScript Object
%% Specifiers. Upon instantiation you should pass a selector in
%% \code{which}, and optionally a parent object in \code{fr}.

OSA クラス用の抽象基底クラスです。サブクラスでは、クラス属性
\code{want} を 4 文字の OSA クラスコードに設定せねばなりません。
このクラスのサブクラスのインスタンスは AppleScript オブジェクト指定子
と同じになります。インスタンス化を行う最には、\code{which} にセレクタを
渡さねばなりません。また、任意で親オブジェクトを\code{fr} に渡せます。
\end{classdesc}

\begin{classdesc}{NProperty}{fr}
%% Abstract basclass for an OSA property. The subclass should set the class
%% attributes \code{want} and \code{which} to designate which property we
%% are talking about. Instances of subclasses of this class are Object
%% Specifiers.

OSA プロパティ用の抽象基底クラスです。サブクラスでは、クラス属性
\code{want} と \code{which} を設定して、どのプロパティを表しているかを
指定せねばなりません。このクラスのサブクラスのインスタンスは
オブジェクト指定子と同じになります。
\end{classdesc}

\begin{classdesc}{ObjectSpecifier}{want, form, seld\optional{, fr}}
%% Base class of \code{ComponentItem} and \code{NProperty}, a general
%% OSA Object Specifier. See the Apple Open Scripting Architecture
%% documentation for the parameters. Note that this class is not abstract.

\code{ComponentItem} と \code{NProperty} の基底クラスで、汎用の OSA 
オブジェクト指定子を表します。パラメタの説明は
Apple Open Scripting Architecture のドキュメントを参照してください。
このクラスは抽象クラスではないので注意してください。
\end{classdesc}