![]() ![]() ![]()
|
SophiaFramework 2.2 |
#include <SFRBrowserControl.hpp>
class SFRBrowserControl : public SFRControl;
typedef SFRBrowserControl& SFRBrowserControlRef; typedef SFRBrowserControl* SFRBrowserControlPtr; typedef SFRBrowserControl** SFRBrowserControlHandle; typedef const SFRBrowserControl ConstSFRBrowserControl; typedef const SFRBrowserControl& ConstSFRBrowserControlRef; typedef const SFRBrowserControl* ConstSFRBrowserControlPtr; typedef const SFRBrowserControl** ConstSFRBrowserControlHandle;
簡易ウェブブラウザーを実現するコントロールクラスです。 このコントロールは、
を備えており、このコントロールを張り付けるだけで簡単なウェブブラウザを作成出来ます。
BREW API の IHtmlViewer を基に実装されています。 HTML のレンダリングに関する制限は IHtmlViewer とほぼ同じとなります。
エラー値
SFRBrowserControl クラスのいくつかのメンバ関数は、 エラーが発生すると内部的にその状態を記録します。 直前のメンバ関数呼び出しで発生したエラーは、 Exception 関数により取得することができます。 エラーが発生しなかった場合は、 SFERR_NO_ERROR が返されます。
| コンストラクタ/デストラクタ | ||
|---|---|---|
| public |
SFRBrowserControl | SFRBrowserControl クラスのコンストラクタです。 |
| public |
~SFRBrowserControl | SFRBrowserControl クラスのデストラクタです。 |
| パブリック関数 | ||
|---|---|---|
| public |
ClearHistory | 履歴リストを空にします。 |
| public |
FindElement | 表示中のページから、特定の要素を検索します。 |
| public |
FocusDown (SFRResponder から継承) | 座標上で自分より下に存在するレスポンダにフォーカスを移動します。 |
| public |
FocusLeft (SFRResponder から継承) | 座標上で自分より左に存在するレスポンダにフォーカスを移動します。 |
| public |
FocusNext (SFRResponder から継承) | フォーカスを一つ次に進めます。 |
| public |
FocusPrevious (SFRResponder から継承) | フォーカスを一つ前に戻します。 |
| public |
FocusRight (SFRResponder から継承) | 座標上で自分より右に存在するレスポンダにフォーカスを移動します。 |
| public |
FocusUp (SFRResponder から継承) | 座標上で自分より上に存在するレスポンダにフォーカスを移動します。 |
| public |
GetAttribute (SFRResponder から継承) | アトリビュートを取得します。 |
| public |
GetBack (SFRResponder から継承) | 子階層のレスポンダのうち検索条件に一致するレスポンダを 後ろから検索します。 |
| public |
GetBaseBound (SFRResponder から継承) | ベース領域を親レスポンダのコンテント座標系で取得します。 |
| public |
GetBaseWorld (SFRResponder から継承) | ベース領域を取得します。 |
| public |
GetContentBound (SFRResponder から継承) | コンテント領域をベース領域の座標系で取得します。 |
| public |
GetContentWorld (SFRResponder から継承) | コンテント領域を取得します。 |
| public |
GetCurrentHistory | 現在表示しているページの URL とタイトルを取得します。 |
| public |
GetCurrentHistoryIndex | 現在の履歴番号を取得します。 |
| public |
GetDirector (SFRResponder から継承) | 親レスポンダを取得します。 |
| public |
GetElementAttribute | 指定の要素の属性値を取得します。 |
| public |
GetElementText | 指定の要素の内容を取得します。 |
| public |
GetFocus (SFRResponder から継承) | 子階層のレスポンダのうちフォーカスされているレスポンダを取得します。 |
| public |
GetFront (SFRResponder から継承) | 子階層のレスポンダのうち検索条件に一致するレスポンダを前から検索します。 |
| public |
GetHistory | ある履歴番号の履歴内容を取得します。 |
| public |
GetHistoryList | 履歴リストを取得します。 |
| public |
GetHistorySize | 履歴リストのエントリ数を取得します。 |
| public |
GetIndent | インデントの幅を取得します。 |
| public |
GetIndexBackward (SFRResponder から継承) | 同階層のレスポンダのうち自分が背面から数えて何番目かを返します。 |
| public |
GetIndexForward (SFRResponder から継承) | 同階層のレスポンダのうち自分が前面から数えて何番目かを返します。 |
| public |
GetLeft (SFRResponder から継承) | グループ化されているレスポンダのうち 自分より前にあるレスポンダで検索条件に一致するレスポンダを検索します。 |
| public |
GetLinkColor | リンクの文字の表示色を取得します。 |
| public |
GetMoveInterval (SFRResponder から継承) | MoveUpHandler, MoveDownHandler, MoveLeftHandler, MoveRightHandler に よりレスポンダが移動されるときの移動量を取得します。 |
| public |
GetMoveMargin (SFRResponder から継承) | Move 関数によりレスポンダが移動されるときに、仮想領域の端から 何ピクセル内側まで移動可能かのマージンを取得します。 またこの設定は、MoveUpHandler, MoveDownHandler, MoveLeftHandler, MoveRightHandler にも 適応されています。 |
| public |
GetNext (SFRResponder から継承) | 自分より後にあるレスポンダで検索条件に一致するレスポンダを 検索します。 |
| public |
GetNthBackward (SFRResponder から継承) | 子階層のレスポンダのうち検索条件に一致するレスポンダで 後ろから数えてN番目にあるレスポンダを検索します。 |
| public |
GetNthForward (SFRResponder から継承) | 子階層のレスポンダのうち検索条件に一致するレスポンダで 前から数えてN番目にあるレスポンダを検索します。 |
| public |
GetParagraphSpacing | 段落間の行間の長さを取得します。 |
| public |
GetPrevious (SFRResponder から継承) | 自分より前にあるレスポンダで検索条件に一致するレスポンダを 検索します。 |
| public |
GetReference (SFRResponder から継承) | ユーザが自由に設定できるリファレンス値を取得します。 |
| public |
GetRight (SFRResponder から継承) | グループ化されているレスポンダのうち 自分より後にあるレスポンダで検索条件に一致するレスポンダを検索します。 |
| public |
GetScrollInterval (SFRResponder から継承) | ScrollUpHandler, ScrollDownHandler, ScrollLeftHandler, ScrollRightHandler によりレスポンダの仮想領域がスクロールされるときのスクロール量を取得します。 |
| public |
GetScrollbarWidth | スクロールバーの幅を取得します。 |
| public |
GetStatusEnable (SFRResponder から継承) | 応答可能/不可能フラグを取得します。 |
| public |
GetStatusFocus (SFRResponder から継承) | フォーカス/非フォーカス フラグを取得します。 |
| public |
GetStatusTarget (SFRResponder から継承) | ターゲット/非ターゲット フラグを取得します。 |
| public |
GetStatusVisible (SFRResponder から継承) | 可視/不可視フラグを取得します。 |
| public |
GetTextColor | HTML の本文の表示色を取得します。 |
| public |
GetTranslate (SFRResponder から継承) | コンテント座標系での仮想領域の原点座標を取得します。 |
| public |
GetTravelMargin (SFRResponder から継承) | フォーカスされたレスポンダを自動的にコンテント領域内に 移動させるときに、コンテント領域の端から何ピクセル内側に 移動させるかのマージンを取得します。 |
| public |
GetType (SFRResponder から継承) | タイプを取得します。 |
| public |
GetVirtualBound (SFRResponder から継承) | 仮想領域をコンテント領域の座標系で取得します。 |
| public |
GetVirtualWorld (SFRResponder から継承) | 仮想領域を取得します。 |
| public |
GetWeb | 通信に使用する IWeb インターフェースを取得します。 |
| public |
Group (SFRResponder から継承) | 他のレスポンダとグループ化します。 |
| public |
GroupMove (SFRResponder から継承) | グループ化されているレスポンダすべてを移動します。 |
| public |
GroupScroll (SFRResponder から継承) | グループ化されているレスポンダすべての仮想領域をスクロールします。 |
| public |
GroupSelect (SFRResponder から継承) | グループ化されているレスポンダすべてを最前面に移動させます。 |
| public |
GroupStatusEnable (SFRResponder から継承) | グループ化されているレスポンダすべてに対して、応答可能/不可能フラグを設定します。 |
| public |
GroupStatusVisible (SFRResponder から継承) | グループ化されているレスポンダすべてに対して、可視/不可視フラグを設定します。 |
| public |
InvalidateBase (SFRResponder から継承) | ベース領域内のアップデート領域を登録します。 |
| public |
InvalidateContent (SFRResponder から継承) | コンテント領域内のアップデート領域を登録します。 |
| public |
InvalidateVirtual (SFRResponder から継承) | 仮想領域内のアップデート領域を登録します。 |
| public |
Invoke (SFRResponder から継承) | イベントを送信します。 |
| public |
IsBusy | 現在、ネットワークアクセス中、もしくはレンダリング中かどうかを調べます。 |
| public |
IsInlineEditEnable | 文字をインラインで入力する設定かどうか調べます。 |
| public |
IsScrollbarEnable | スクロールバーの設定を調べます。 |
| public |
Load | 文字列データを HTML とみなして、レンダリングを開始します。 |
| public |
Move | 履歴内の任意のページに飛んで、ページの再取得と再レンダリングを行います。 |
| public |
Next | 履歴を進み、ページの再取得と再レンダリングを行います。 |
| public |
Open | 指定された URL のページを取得して、レンダリングを開始します。 |
| public |
Previous | 履歴を戻り、ページの再取得と再レンダリングを行います。 |
| public |
RegisterHandler (SFRHandler から継承) | ハンドラを登録します。 |
| public |
RegisterIntelligentHandler (SFRResponder から継承) | SelectHandler, ClearHandler, FocusUpHandler, FocusDownHandler, FocusLeftHandler, FocusRightHandler をそれぞれ AVK_SELECT, AVK_CLR, AVK_UP, AVK_DOWN, AVK_LEFT, AVK_RIGHT に登録します。 |
| public |
RegisterManipulateHandler (SFRResponder から継承) | SelectHandler, ClearHandler, FocusNextHandler, FocusPreviousHandler を それぞれ AVK_SELECT, AVK_CLR, AVK_DOWN, AVK_UP に登録します。 |
| public |
RegisterMoveHandler (SFRResponder から継承) | MoveUpHandler, MoveDownHandler, MoveLeftHandler, MoveRightHandler を それぞれ AVK_2, AVK_8, AVK_4, AVK_6 に登録します。 |
| public |
RegisterScrollHandler (SFRResponder から継承) | ScrollUpHandler, ScrollDownHandler, ScrollLeftHandler, ScrollRightHandler を それぞれ AVK_2, AVK_8, AVK_4, AVK_6 に登録します。 |
| public |
RegisterTracer (SFRTracer から継承) | トレーサを登録します。 |
| public |
Reload | 現在表示しているページを再取得して再描画します。 |
| public |
Scroll (SFRResponder から継承) | 仮想領域をスクロールします。 |
| public |
Select (SFRResponder から継承) | レスポンダを最前面に移動させます。 |
| public |
SetAuthorizeData | HTTP ベーシック認証の情報を設定します。 |
| public |
SetBaseBound (SFRResponder から継承) | ベース領域を親レスポンダのコンテント座標系で設定します。 |
| public |
SetContentBound (SFRResponder から継承) | コンテント領域をベース領域の座標系で設定します。 |
| public |
SetHistorySize | 履歴リストの大きさを設定します。 |
| public |
SetIndent | インデントの幅を設定します。 |
| public |
SetInlineEditEnable | 文字をインライン入力するかどうか設定します。 |
| public |
SetLinkColor | リンクの文字列の表示色を設定します。 |
| public |
SetMoveInterval (SFRResponder から継承) | MoveUpHandler, MoveDownHandler, MoveLeftHandler, MoveRightHandler に よりレスポンダが移動されるときの移動量を設定します。 |
| public |
SetMoveMargin (SFRResponder から継承) | Move 関数によりレスポンダが移動されるときに、仮想領域の端から 何ピクセル内側まで移動可能かのマージンを設定します。 またこの設定は、MoveUpHandler, MoveDownHandler, MoveLeftHandler, MoveRightHandler にも 適応されます。 |
| public |
SetParagraphSpacing | 段落間の行間を設定します。 |
| public |
SetReference (SFRResponder から継承) | ユーザが自由に設定できるリファレンス値を設定します。 |
| public |
SetScrollInterval (SFRResponder から継承) | ScrollUpHandler, ScrollDownHandler, ScrollLeftHandler, ScrollRightHandler によりレスポンダの仮想領域がスクロールされるときのスクロール量を設定します。 |
| public |
SetScrollbarEnable | スクロールバーの有無を設定します。 |
| public |
SetScrollbarWidth | スクロールバーの幅を設定します。 |
| public |
SetStatusEnable (SFRResponder から継承) | 応答可能/不可能フラグを設定します。 |
| public |
SetStatusFocus (SFRResponder から継承) | フォーカス/非フォーカス フラグを設定します。 |
| public |
SetStatusTarget (SFRResponder から継承) | ターゲット/非ターゲット フラグを設定します。 |
| public |
SetStatusVisible (SFRResponder から継承) | 可視/不可視フラグを設定します。 |
| public |
SetTextColor | HTML 本文の表示色を設定します。 |
| public |
SetTranslate (SFRResponder から継承) | コンテント座標系での仮想領域の原点座標を設定します。 |
| public |
SetTravelMargin (SFRResponder から継承) | フォーカスされたレスポンダを自動的にコンテント領域内に 移動させるときに、コンテント領域の端から何ピクセル内側に 移動させるかのマージンを設定します。 |
| public |
SetVirtualBound (SFRResponder から継承) | 仮想領域をコンテント領域の座標系で設定します。 |
| public |
SetWeb | 通信に使用する IWeb インターフェースを設定します。 |
| public |
Stop | 現在行っているネットワークアクセス、レンダリング動作を中断します。 |
| public |
Travel (SFRResponder から継承) | 設定された長方形が可視領域に入るように、レスポンダの 仮想領域をスクロールします。 |
| public |
Ungroup (SFRResponder から継承) | グループ化を解除します。 |
| public |
UnregisterHandler (SFRHandler から継承) | 登録されているハンドラを削除します。 |
| public |
UnregisterTracer (SFRTracer から継承) | 登録されているトレーサを削除します。 |
| public |
UnsetAuthorizeData | HTTP ベーシック認証の情報を設定を取り消します。 |
| public |
UnsetWeb | の設定を取り消します。 |
| プロテクト関数 | ||
|---|---|---|
| protected |
ClearHandler (SFRResponder から継承) | クリアキーが押されたときのハンドラです。 |
| protected |
DoneNotifyHandler | レンダリングが終了時に呼び出されるハンドラです。 |
| protected |
FocusDownHandler (SFRResponder から継承) | 下矢印キーが押されたときのハンドラです。 座標上で自分より下に存在するレスポンダにフォーカスを移動します。 |
| protected |
FocusLeftHandler (SFRResponder から継承) | 左矢印キーが押されたときのハンドラです。 座標上で自分より左に存在するレスポンダにフォーカスを移動します。 |
| protected |
FocusNextHandler (SFRResponder から継承) | 下矢印キーが押されたときのハンドラです。 フォーカスを一つ後に移動します。 |
| protected |
FocusNotifyHandler | カーソルが移動した際に呼び出されるハンドラです。 |
| protected |
FocusPreviousHandler (SFRResponder から継承) | 上矢印キーが押されたときのハンドラです。 フォーカスを一つ前に移動します。 |
| protected |
FocusRightHandler (SFRResponder から継承) | 右矢印キーが押されたときのハンドラです。 座標上で自分より右に存在するレスポンダにフォーカスを移動します。 |
| protected |
FocusUpHandler (SFRResponder から継承) | 上矢印キーが押されたときのハンドラです。 座標上で自分より上に存在するレスポンダにフォーカスを移動します。 |
| protected |
GetAppearanceTransparent (SFRResponder から継承) | APPEARANCE_TRANSPARENT フラグが設定されているかどうかを取得します。 |
| protected |
GetInheriteEnable (SFRResponder から継承) | 現在の応答可能/不可能の状態を取得します。 |
| protected |
GetInheriteFocus (SFRResponder から継承) | 現在のフォーカス/非フォーカスの状態を取得します。 |
| protected |
GetInheriteTarget (SFRResponder から継承) | 現在のターゲット/非ターゲットの状態を取得します。 |
| protected |
GetInheriteVisible (SFRResponder から継承) | 現在の可視/不可視の状態を取得します。 |
| protected |
GetPropertyClosable (SFRResponder から継承) | PROPERTY_CLOSABLE フラグが設定されているかどうかを取得します。 |
| protected |
GetPropertyDirect (SFRResponder から継承) | PROPERTY_DIRECT フラグが設定されているかどうかを取得します。 |
| protected |
GetPropertyMovable (SFRResponder から継承) | PROPERTY_MOVABLE フラグが設定されているかどうかを取得します。 |
| protected |
GetPropertyScrollable (SFRResponder から継承) | PROPERTY_SCROLLABLE フラグが設定されているかどうかを取得します。 |
| protected |
GetPropertySelect (SFRResponder から継承) | PROPERTY_SELECT フラグが設定されているかどうかを取得します。 |
| protected |
GetPropertyTravel (SFRResponder から継承) | PROPERTY_TRAVEL フラグが設定されているかどうかを取得します。 |
| protected |
JumpNotifyHandler | リンクが押された際に呼び出されるハンドラです。 |
| protected |
MoveDownHandler (SFRResponder から継承) | 数字の8キーが押されたときのハンドラです。 |
| protected |
MoveLeftHandler (SFRResponder から継承) | 数字の4キーが押されたときのハンドラです。 |
| protected |
MoveRightHandler (SFRResponder から継承) | 数字の6キーが押されたときのハンドラです。 |
| protected |
MoveUpHandler (SFRResponder から継承) | 数字の2キーが押されたときのハンドラです。 |
| protected |
ResponseNotifyHandler | サーバへの接続が完了した時に呼び出されるハンドラです。 |
| protected |
ScrollDownHandler (SFRResponder から継承) | 数字の8キーが押されたときのハンドラです。 |
| protected |
ScrollLeftHandler (SFRResponder から継承) | 数字の4キーが押されたときのハンドラです。 |
| protected |
ScrollRightHandler (SFRResponder から継承) | 数字の6キーが押されたときのハンドラです。 |
| protected |
ScrollUpHandler (SFRResponder から継承) | 数字の2キーが押されたときのハンドラです。 |
| protected |
SelectHandler (SFRResponder から継承) | セレクトキーが押されたときのハンドラです。 |
| protected |
UnregisterIntelligentHandler (SFRResponder から継承) | AVK_SELECT, AVK_CLR, AVK_UP, AVK_DOWN, AVK_LEFT, AVK_RIGHT に登録されているハンドラを 削除します。 |
| protected |
UnregisterManipulateHandler (SFRResponder から継承) | AVK_SELECT, AVK_CLR, AVK_DOWN, AVK_UP に登録されているハンドラを 削除します。 |
| protected |
UnregisterMoveHandler (SFRResponder から継承) | AVK_2, AVK_8, AVK_4, AVK_6 に登録されているハンドラを 削除します。 |
| protected |
UnregisterScrollHandler (SFRResponder から継承) | AVK_2, AVK_8, AVK_4, AVK_6 に登録されているハンドラを 削除します。 |
| 型 | ||
|---|---|---|
| BehaviorEnum (SFRControl から継承) | コントロールのデフォルトのビヘイビアを表します。 | |
| DEFAULT | 各パラメータの初期値を納めた列挙型です。 | |
| DoneNotify | レンダリング終了時の情報を保持するクラスです。 | |
| FocusNotify | ブラウザのフォーカス移動情報を保持するクラスです。 | |
| HandlerEnum (SFRHandler から継承) | ハンドラの呼び出されるタイミングを表します。 | |
| HistoryEntry | 履歴の項目を表す構造体です。 | |
| JumpNotify | 利用者がブラウザ上で押したリンクの情報を保持するクラスです。 | |
| ResponseNotify | レンダリング終了時の情報を保持するクラスです。 | |
| TracerEnum (SFRTracer から継承) | トレース順序を表します。 | |
[ public ]
SFRBrowserControl(
SFRResponderPtr director // 親のレスポンダ
ConstSFURectRef rect // コントロールのサイズ
BehaviorType behavior = BEHAVIOR_BROWSERCONTROL // コントロールの挙動
SFCType attribute = ATTRIBUTE_BROWSERCONTROL // コントロールのアトリビュート
);このコントロールの親となるレスポンダを指定します。
このコントロールの描画領域を指定します。
このコントロールの挙動を指定します。省略可能です。
このコントロールのアトリビュートを指定します。省略可能です。
コンストラクタです。データメンバの初期化を行い、ページのレンダリングに使用する IHtmlViewer インスタンスを生成します。 通信に使用する IWeb インターフェースはここでは生成されません。 初期化に失敗した場合は、エラー値 SFERR_FAILED が Exception に設定されます。 初期化に成功した場合は、エラー値 SFERR_NO_ERROR が Exception に設定されます。
[ public, virtual ] ~SFRBrowserControl(Void);
デストラクタです。 通信、HTML のレンダリングを中断し、内部で確保した全てのリソースを解放します。
[ public ] SFCError ClearHistory(Void);
エラー情報です。エラーなしなら SFERR_NO_ERROR が返ります。
履歴リストを空にします。現在の履歴番号も 0 に戻ります。
[ protected, virtual ] Void DoneNotifyHandler( ConstDoneNotifyRef notify // 通知情報 );
通知情報です。 HTTP のレスポンス コード、BREW のエラーコードを取得できます。
レンダリングが全て終了したときに呼び出されるハンドラです。 標準の実装では、何もしません。 標準以外の処理を行いたいときは、この関数をオーバーロードしてください。
SFRBrowserControl::ResponseNotifyHandlerとは 呼び出されるタイミングが異なることに注意してください。
オーバーロードの例です。
#include <SFRResponder/SFRControl/SFRBrowserControl.hpp>
class MyBrowserControl : public SFRBrowserControl {
public:
MyBrowserControl(SFRResponderPtr director, ConstSFURectRef rect)
: SFRBrowserControl(director, rect) {
}
protected:
virtual Void DoneNotifyHandler(ConstDoneNotifyRef notify) {
if (notify.GetErrorCode() != SFERR_NO_ERROR) {
// 通信エラーならエラーダイアログを表示する。
ErrorDialog(notify.GetErrorCode());
}
else if (WEB_SUCCEEDED(notify.GetDoneCode())) {
// HTTP エラーなら警告ダイアログを表示する。
WarningDialog(notify.GetResposenCode());
}
}
};
SFRBrowserControl::DoneNotify | SFRBrowserControl::FocusNotifyHandler | SFRBrowserControl::JumpNotifyHandler | SFRBrowserControl::ResponseNotifyHandler
[ public, const ] SInt32 FindElement( ConstACharPtr element // 検索する要素名 SInt32 no // 取得する要素の番号 );
検索する要素名を設定します。
検索する要素の内、何番目の物の位置を取得するかを設定します。 0 を指定すると、element と一致する要素の内、始めに見付かったものの位置を、 n を指定すると n+1 番目に見付かった要素の位置が戻ります。
見つかった要素の位置です。 見つからなければ負の値となります。
現在表示しているページから、特定の要素を検索し、その位置を取得します。 取得した位置は、 GetElementText GetElementAttribute で使用します。
[ protected, virtual ] Void FocusNotifyHandler( notify // 通知情報 );
通知情報です。 現在カーソルがあたっているタグの位置、種類、状態を取得できます。
ブラウザのカーソルが移動した際に呼び出されるハンドラです。 標準の関数では、何もしません。 標準以外の処理を行いたいときは、この関数をオーバーロードしてください。
SFRBrowserControl::FocusNotify | SFRBrowserControl::DoneNotifyHandler | SFRBrowserControl::JumpNotifyHandler | SFRBrowserControl::ResponseNotifyHandler
[ public, const ] HistoryEntry GetCurrentHistory(Void);
履歴内容です。
現在表示しているページの履歴内容を取得します。 この関数は、 GetHistory(GetCurrentHistoryIndex()) と同じです。
[ public, const ] UInt32 GetCurrentHistoryIndex(Void);
現在表示しているページの履歴番号です。
現在表示しているページの履歴番号を取得します。 この値は、 Move, Previous, Next で増減し、 ClearHistory で 0 に初期化されます。
SFRBrowserControl::Move | SFRBrowserControl::Previous | SFRBrowserControl::Next | SFRBrowserControl::ClearHistory
[ public, const ] SFUAnsiString GetElementAttribute( SInt32 elementIndex // 要素の位置 ConstACharPtr attr // 属性名 );
取得したいデータをもつ要素の位置を指定します。 この引数には、 FindElement の戻り値を指定します。
内容を取得したい属性を指定します。
属性の内容が返ります。指定の属性が見付からなければ空文字列になります。
現在表示しているページから、指定の要素の属性を取得します。 要素に属性が無い場合は、空文字列が戻ります。
![]() |
値がない属性の取扱い |
|---|---|
<HR NOSHADE> のように、値が設定されていない属性がある要素で、 本関数を使用して NOSHADE 属性の内容を取得すると、 戻り値は属性名と同じ "NOSHADE" 文字列となります。 | |
[ public, const ] SFUAnsiString GetElementText( SInt32 elementIndex // 要素の位置 );
取得したいデータをもつ要素の位置を指定します。 この引数には、 FindElement の戻り値を指定します。
要素の内容が戻ります。要素の中身がない場合は空文字列です。
現在表示しているページから、指定の要素の内容を取得します。
[ public, const ]
HistoryEntry GetHistory(
UInt32 historyIndex = 0 // 履歴番号
);履歴内容を取得したい履歴番号を指定します。 指定しなかった場合は、履歴番号 0 番、 つまりもっとも最後に訪れた履歴内容を指定したことになります。
履歴内容です。 履歴情報がない、 もしくは無効な履歴番号を指定した場合は、 戻り値の url メンバが空文字列となります。
指定された履歴番号の履歴内容を取得します。 指定した履歴内容がなかったり、 履歴リストの大きさより大きな履歴番号を指定した場合は、 履歴情報の url メンバが空文字列の履歴情報が返ります。
[ public, const ] ConstHistoryEntryPtr GetHistoryList(Void);
履歴リストへのポインタです。 履歴リストは HistoryEntry 構造体の配列で、 大きさは GetHistorySize で取得できる大きさとなります。
履歴リストを取得します。 取得できる値は HistoryEntry 構造体の配列で、大きさは GetHistorySize で取得できる大きさです。 配列の先頭が一番新しい履歴となっており、 履歴番号と配列のインデックスは一致することが保証されます。 まだ履歴情報が設定さていない部分は、 履歴構造体の url メンバが空文字列になります。
![]() |
使用上の注意 |
|---|---|
この関数で取得した配列を書き換えてはいけません。 | |
下記のコードは、 デバッグ用に全履歴のタイトルと URL を表示する関数です。
void PrintHistoryList(ConstSFBrowserControlRef browser)
{
int i;
SFBrowserControl::ConstHistoryEntryPtr historyList = browser.GetHistoryList();
for (i=0; i<browser.GetHistorySize(); i++) {
DBGPRINTF("title '%s' url %s",
(ConstACharPtr)historyList[i].title, (ConstACharPtr)historyList[i].url);
}
}
[ public, const ] UInt32 GetHistorySize(Void);
現在の履歴リストのエントリ数が返ります。
現在の履歴リストのエントリ数を取得します。 Move, GetHistory 等で使用する履歴番号は、この関数で取得できるエントリ数未満でなくてはなりません。 また、 GetHistoryList で取得できる履歴リストは、ここで取得した大きさの配列となります。
SFRBrowserControl::GetHistory | SFRBrowserControl::GetHistoryList | SFRBrowserControl::Move | SFRBrowserControl::SetHistorySize
[ public, const ] SInt32 GetIndent(Void);
設定されているインデントの幅が返ります。単位はピクセルです。
HTML 表示のインデントの幅を取得します。 取得した数値の単位は単位はピクセルです。
[ public, const ] SFUColor GetLinkColor(Void);
リンクの文字の表示色が返ります。
HTML 表示のリンクの文字の表示色を取得します。
[ public, const ] SInt32 GetParagraphSpacing(Void);
設定されている段落間の行間の長さが返ります。単位はピクセルです。
HTML 表示の段落間の行間の長さを取得します。 取得した値の単位はピクセルです。
[ public, const ] SInt32 GetScrollbarWidth(Void);
設定されているスクロールバーの幅が返ります。単位はピクセルです。
HTML 表示のスクロールバーの幅を取得します。 取得した数値の単位は単位はピクセルです。
[ public, const ] SFUColor GetTextColor(Void);
地の文の表示色が返ります。
HTML 表示の本文の表示色を取得します。
[ public, const ] SFUBrewPtr<SFBWeb> GetWeb(Void);
通信に使用する IWeb インターフェースです。 SetWeb で使用する IWeb インターフェースを設定しておらず、 内部でまだ IWeb インターフェースを生成していない場合は、 NULL が返ります。
通信に使用する IWeb インターフェースを取得します。
![]() |
WebOpt 指定時の注意 |
|---|---|
取得した IWeb インターフェースに対して、 任意の WebOpt を設定することができますが、 ユーザが設定した WebOpt のデータは、 他の IWeb インターフェイスを使うように設定するまで、 ユーザが保持しなくてはなくてはなりません。 詳しくは、BREW API リファレンス、 IWeb インターフェースの「WEBOPT の寿命に関する注意事項」を参照してください。 | |
![]() |
サスペンド時の挙動 |
|---|---|
サスペンドが起こったときは、 デフォルト状態の IWeb インターフェースを内部で作成する設定に戻ります。 この際に、指定していた WebOpt の情報もリセットされます。 続けてユーザオリジナルの IWeb インターフェイスを使用したいときは、 レジューム ハンドラで設定しなおしてください。 | |
[ public, const ] Bool IsBusy(Void);
現在ネットワークアクセス中、もしくはレンダリング中ならば TRUE。
現在、ネットワークアクセスかレンダリング中かどうかを取得します。
[ public, const ] Bool IsInlineEditEnable(Void);
設定がインライン入力ならば TRUE、 全画面入力なら FALSE が返ります。
HTML 表示で、文字をインラインで入力する設定か、全画面で入力する設定かを調べます。 インライン入力ならば TRUE、全画面入力なら FALSE となります。
[ public, const ] Bool IsScrollbarEnable(Void);
スクロールバーありなら TRUE、 なしなら FALSE が返ります。
HTML 表示のスクロールバーの設定を調べます。 スクロールバーありなら TRUE、 なしなら FALSE となります。
[ protected, virtual ] Void JumpNotifyHandler( ConstJumpNotifyRef notify // 通知情報 );
通知情報です。 押されたリンクのリンク先 URL、 HTTP メソッド、 POST データを保持しています。
コントロール内の HTML のリンクが押された際に呼び出されるハンドラです。 この関数では、リンク先の url を自動的に Open します。 リンクが http://、https://、file://、res: 以外のスキームのときは何もしません。 標準以外の処理を行いたいときは、この関数をオーバーライドしてください。
下記のコードは、オーバーライドの例です。
#include <SFRResponder/SFRControl/SFRBrowserControl.hpp>
class MyBrowserControl : public SFRBrowserControl {
public:
MyBrowserControl(SFRResponderPtr director, ConstSFURectRef rect)
: SFRBrowserControl(director, rect) {
}
protected:
virtual Void JumpNotifyHandler(ConstJumpNotifyRef notify) {
if (notify.GetUrl().StartWith("mailto:)) {
// mailto:ならメーラを呼び出す
Mailer(notify.GetUrl());
}
else {
// それ以外なら標準ハンドラを呼ぶ
SFRBrowserControl::JumpNotifyHandler(notify);
}
}
};
SFRBrowserControl::JumpNotify | SFRBrowserControl::Open | SFRBrowserControl::DoneNotifyHandler | SFRBrowserControl::FocusNotifyHandler | SFRBrowserControl::ResponseNotifyHandler
[ public ] SFCError Load( ConstSFUAnsiStringRef data // HTML データ );
[ public ] SFCError Load( ConstSFUAnsiStringRef data // HTML データ ConstSFUAnsiStringRef url // 基準となる URL );
HTML とみなす文字列です。
基準となる URL です。 HTML データ内にある相対 URL 表記は、 この引数で指定された URL からの相対パスと解釈されます。
エラー情報です。 エラーがないなら SFERR_NO_ERROR、 処理中にメモリが足りなくなったときは SFERR_NO_MEMORY、 指定した url が正しくないときは SFERR_INVALID_PARAM が返ります。
文字列データを HTML とみなして、レンダリングを開始します。 インライン画像の読み込みは任意のタイミングで行われ、取得できしだい表示に反映されます。
![]() |
通信に関するエラー |
|---|---|
通信に関するエラーは返値では取得できません。 レンダリングの終了や、通信に関するエラーを取得したい場合は、 本クラスを継承して、 DoneNotifyHandler をオーバロードするクラスを作成してください。 | |
ジャンプ先の履歴番号です。 省略時は、履歴番号 0、つまり最新の履歴に飛びます。
エラー情報です。 エラーがないなら SFERR_NO_ERROR、 履歴番号が大きすぎるときは SFERR_INVALID_PARAM、 メモリ不足ならば SFERR_NO_MEMOERY が返ります。
任意の履歴番号のページに飛んで、ページの再取得と再レンダリングを行います。 指定した履歴番号が履歴リストのサイズより大きかったり、 指定した履歴番号の履歴がまだない場合はエラーとなり、 返値として SFERR_INVALID_PARAM が返ります。
![]() |
通信に関するエラー |
|---|---|
通信に関するエラーは返値では取得できません。 レンダリングの終了や、通信に関するエラーを取得したい場合は、 本クラスを継承して、 DoneNotifyHandler をオーバロードするクラスを作成してください。 | |
SFRBrowserControl::DoneNotifyHandler | SFRBrowserControl::Open | SFRBrowserControl::Previous | SFRBrowserControl::Next | SFRBrowserControl::Reload
履歴をいくつ進むかを指定します。 省略時は履歴を一つ戻ります。
エラー情報です。 エラーがないなら SFERR_NO_ERROR、 指定した数が大きすぎるか小さすぎる時は SFERR_INVALID_PARAM、 メモリ不足ならば SFERR_NO_MEMOERY が返ります。
指定の数だけ履歴を進み、ページの再取得と再レンダリングを行います。 引数に負の値を指定すると、絶対値の数だけ履歴を前に戻ります。 指定した数が履歴リストから外れる場合はエラーとなり、 返値として SFERR_INVALID_PARAM が返ります。
![]() |
通信に関するエラー |
|---|---|
通信に関するエラーは返値では取得できません。 レンダリングの終了や、通信に関するエラーを取得したい場合は、 本クラスを継承して、 DoneNotifyHandler をオーバロードするクラスを作成してください。 | |
SFRBrowserControl::DoneNotifyHandler | SFRBrowserControl::Open | SFRBrowserControl::Move | SFRBrowserControl::Previous | SFRBrowserControl::Reload
[ public ] SFCError Open( ConstSFUAnsiStringRef url // 開く URL );
[ public ] SFCError Open( ConstSFUAnsiStringRef url // 開く URL ConstSFUAnsiStringRef method // HTTP メソッド );
[ public ] SFCError Open( ConstSFUAnsiStringRef url // 開く URL ConstSFUAnsiStringRef method // HTTP メソッド ConstSFUAnsiStringRef data // POST メソッドでサーバに送るデータ );
[ public ] SFCError Open( ConstSFUAnsiStringRef url // 開く URL ConstSFUAnsiStringRef method // HTTP メソッド ConstSFUBufferRef data // POST メソッドでサーバに送るデータ );
[ public ] SFCError Open( const SFUBrewPtr<SFBSource>& source // HTML のソース );
[ public ] SFCError Open( const SFUBrewPtr<SFBSource>& source // HTML のソース ConstSFUAnsiStringRef basdUrl // 基準となる URL );
[ public ] SFCError Open( const SFUBrewPtr<SFBAStream>& stream // HTML のストリーム );
[ public ] SFCError Open( const SFUBrewPtr<SFBAStream>& src // HTML のストリーム ConstSFUAnsiStringRef baseUrl // 基準となる URL );
アクセスする URL を指定します。 指定した URL で取得できるデータを読み取ってレンダリングします。 現在サポートしているスキームは、http、https、file、res です。
HTTP でページにアクセスする際に用いるメソッドを指定します。 現在、BREW でサポートされている GET、POST が使用可能です。 省略した際は、GET が指定された物として扱われます。
メソッドが POST の際に、サーバに送るデータを指定します。
基準となる URL です。 HTML データ内にある相対 URL 表記は、 この引数で指定された URL からの相対パスと解釈されます。
HTML データを保持した ISource インターフェースです。 指定したインターフェースから HTML データを読み出してレンダリングします。
HTML データを保持した IAStream インターフェースです。 指定したインターフェースから HTML データを読み出してレンダリングします。
エラー情報です。 エラーがないなら SFERR_NO_ERROR、 処理中にメモリが足りなくなったときは SFERR_NO_MEMORY、 指定した url が正しくないときは SFERR_INVALID_PARAM が返ります。
ある URL のページを取得して、レンダリングを開始します。 HTML データとインライン画像の読み込みは任意のタイミングで行われ、 取得できしだい表示に反映されます。
![]() |
通信に関するエラー |
|---|---|
通信に関するエラーは返値では取得できません。 レンダリングの終了や、 通信に関するエラーを取得したい場合は、 本クラスを継承して、 DoneNotifyHandler をオーバロードするクラスを作成してください。 | |
履歴をいくつ戻るかを指定します。 省略時は履歴を一つ戻ります。
エラー情報です。 エラーがないなら SFERR_NO_ERROR、 指定した数が大きすぎるか小さすぎる時は SFERR_INVALID_PARAM、 メモリ不足ならば SFERR_NO_MEMOERY が返ります。
指定の数だけ履歴を戻り、ページの再取得と再レンダリングを行います。 引数に負の値を指定すると、絶対値の数だけ履歴を前に進みます。 指定した数が履歴リストから外れる場合はエラーとなり、 返値として SFERR_INVALID_PARAM が返ります。
![]() |
通信に関するエラー |
|---|---|
通信に関するエラーは返値では取得できません。 レンダリングの終了や、通信に関するエラーを取得したい場合は、 本クラスを継承して、 DoneNotifyHandler をオーバロードするクラスを作成してください。 | |
SFRBrowserControl::DoneNotifyHandler | SFRBrowserControl::Open | SFRBrowserControl::Move | SFRBrowserControl::Next | SFRBrowserControl::Reload
[ public ] Void Reload(Void);
現在表示しているページを再取得して再描画します。 もし、現在表示しているページが、 SFRBrowserControl::Load か、IAStream、ISource を引数にした SFRBrowserControl::Open によるものだった場合、 引数の url が適切に設定されていないと再描画に失敗します。
[ protected, virtual ] Bool ResponseNotifyHandler( notify // 通知情報 );
通知情報です。 HTTP のレスポンス コード、BREW のエラーコードを取得できます。
ハンドラから戻った後、続けて HTML のレンダリングに入りたいときは false を、HTML のレンダリングをせずに処理を終えたい時は true を戻します。
サーバへの接続が完了した時に呼び出されるハンドラです。 このハンドラは、レンダリングが始まる前に呼び出されます。 標準の実装では、何もせずに false を戻します。 標準以外の処理を行いたいときは、この関数をオーバーロードしてください。
SFRBrowserControl::DoneNotifyHandlerとは 呼び出されるタイミングが異なることに注意してください。
オーバーロードの例です。
#include <SFRResponder/SFRControl/SFRBrowserControl.hpp>
class MyBrowserControl : public SFRBrowserContorl {
public:
MyBrowserControl(SFRResponderPtr director, ConstSFURectRef rect)
: SFRBrowserControl(director, rect) {
}
protected:
virtual Void ResponseNotifyHandler(ConstResponseNotifyRef notify) {
if (notify.GetErrorCode() != SFERR_NO_ERROR) {
// 通信エラーならエラーダイアログを表示し、レンダリングしない。
ErrorDialog(notify.GetErrorCode());
return true;
}
else if (WEB_SUCCEEDED(notify.GetDoneCode())) {
// HTTP エラーなら警告ダイアログを表示する。
WarningDialog(notify.GetResposenCode());
}
return false; // 正常、警告ならば HTML のレンダリングをする
}
};
SFRBrowserControl::ResponseNotify | SFRBrowserControl::DoneNotifyHandler | SFRBrowserControl::FocusNotifyHandler | SFRBrowserControl::JumpNotifyHandler
[ public ] SFCError SetAuthorizeData( ConstSFUAnsiStringRef user // ユーザ名 ConstSFUAnsiStringRef passwd // パスワード ConstSFUAnsiStringRef url // 認証をつかう URL );
認証に使用するユーザ名を設定します。
認証に使用するパスワードを設定します。
認証を行う URL を設定します。 これ以降、この URL で始まるページが、認証の対象となります。
エラー情報です。 エラーがないならば SFERR_NO_ERRORが、 内部でメモリが足りなくなった場合は SFERR_NO_MEMORY が返ります。 SFERR_NO_ERROR 以外が返った場合は、ベーシック認証は行いません。
HTTP ベーシック認証の情報を設定します。 設定を行った後、url で始まるページのアクセスにはすべて指定した認証情報を持つヘッダをつけて行います。 url で始まらないページをアクセスした場合、この認証情報は解除されます。 認証を解除したい時は、 UnsetAuthorizeData を使用してください。
新しい履歴リストのサイズです。 0 や、現在の履歴番号より小さい値を指定してはなりません。
エラー情報です。 エラーがないなら SFERR_NO_ERROR、 メモリが足りない場合は SFERR_NO_MEMORY、 引数として 0 をあたえたり、 現在表示中の履歴よりも小さい値をあたえた場合は SFERR_INVALID_PARAM が返ります。 SFERR_NO_ERROR 以外が返った場合は、履歴リストの大きさは変更されません。
履歴リストの大きさを設定します。 現在より小さい値を設定した場合、履歴の大きさが指定したサイズに収まるまで古い履歴情報が捨てられます。 GetCurrentHistoryIndex で取得できる、 現在表示しているページの履歴番号よりも小さな値を設定することはできません。
SFRBrowserControl::GetCurrentHistoryIndex | SFRBrowserControl::GetHistory | SFRBrowserControl::GetHistoryList | SFRBrowserControl::Move | SFRBrowserControl::SetHistorySize
インデントの幅を指定します。単位はピクセルです。
エラー情報が返ります。エラーがないなら SFERR_NO_ERROR が返ります。
HTML 表示のインデントの幅を設定します。設定する単位はピクセルです
フォームでの文字入力をインライン入力にする場合は TRUE を、 フルスクリーン入力にする場合は FALSE を指定します。
エラー情報が返ります。エラーがないなら SFERR_NO_ERROR が返ります。
HTML 表示で、文字入力をインラインでするか、全画面でするかの設定をします。
[ public ] SFCError SetLinkColor( ConstSFUColorRef color // リンク色 );
リンク文字列の表示色を指定します。
エラー情報が返ります。エラーがないなら SFERR_NO_ERROR が返ります。
HTML 表示のリンクの文字の表示色を設定します。
段落間の行間を指定します。単位はピクセルです。
エラー情報が返ります。エラーがないなら SFERR_NO_ERROR が返ります。
HTML 表示の段落間の行間を設定します。 設定する単位はピクセルです。
スクロールバーを有にしたければ TRUE を、無しにしたければ FALSE を指定します。
エラー情報が返ります。エラー無しなら SFERR_NO_ERROR が返ります。
HTML 表示のスクロールバーの有無を設定します。 この設定で表示されるスクロールバーは、 SophiaFramework で実装されているものではなく、 BREW が用意しているスクロールバーになります。
スクロールバーの幅を指定します。 設定する単位はピクセルです
エラー情報が返ります。エラー無しなら SFERR_NO_ERROR が返ります。
HTML 表示のスクロールバーの幅を設定します。 設定する単位はピクセルです
[ public ] SFCError SetTextColor( ConstSFUColorRef color // 表示色 );
地の文の文字色を指定します。
エラー情報が返ります。エラーなしなら SFERR_NO_ERROR が返ります。
HTML 表示の本文の表示色を設定します。
[ public ] Void SetWeb( const SFUBrewPtr<SFBWeb>& web // IWeb インターフェース );
通信に使用する IWeb インターフェースです。
通信に使用する IWeb インターフェースを設定します。 以降、本関数で設定した IWeb インターフェースを使用して、HTTP アクセスを行うようになります。 現在通信中、レンダリング中だった場合は、それらの処理を中断します。
![]() |
WebOpt 指定時の注意 |
|---|---|
設定する IWeb インターフェースには任意の WebOpt を設定することができますが、WebOpt のデータは他の IWeb インターフェイスを使うように設定するまで、ユーザが保持しなくてはなくてはなりません。 詳しくは、BREW API リファレンス、IWeb インターフェースの「WEBOPT の寿命に関する注意事項」を参照してください。 | |
![]() |
サスペンド時の挙動 |
|---|---|
また、サスペンドが起こったときは、デフォルト状態の、IWeb インターフェースを内部で作成する設定に戻ります。 続けてユーザオリジナルの IWeb インターフェイスを使用したいときは、レジューム ハンドラで設定しなおしてください。 | |
この関数で指定した値は、 GetWeb で取り出せます。
ユーザエージェント名を設定します。 端末がサスペンドすると設定が無効になるので、 レジュームハンドラー内で再設定する必要があります。
SCError SetUserAgent(SFRBrowserControlRef browser) {
SFUBrewPtr<SFBWeb> web;
web = browser.GetWeb();
if (web == NULL) {
web = SFBWeb::Instance();
}
WebOpt opts[2];
opts[0].nId = WEB_HEADER;
// 設定する文字列をヒープに確保する場合、設定が有効な間は開放してはならない。
opts[0].pVal = "User-Agent: ibROWSE/0.1 (SophiaFramework; I; BREW 2.1)\r\n";
opts[1].nId = WEBOPT_END;
opts[1].pVal = NULL;
int s = web->AddOpt(opts);
if (s != SFERR_NO_ERROR) {
return s;
}
browser.SetWeb(web);
return SFERR_NO_ERROR;
}
[ public ] Void Stop(Void);
現在行っているネットワークアクセス、レンダリング動作を中断します。 ネットワークアクセス中、レンダリング中以外ならば何も行いません。 表示済みの部分に対しては、なんら影響を与えません。
[ public ] SFCError UnsetAuthorizeData(Void);
エラー情報です。エラーがないなら SFERR_NO_ERROR が返ります。
SetAuthorizeData で設定した HTTP ベーシック認証の設定を取り消します。 以降、認証情報を持つヘッダは使用しません。
[ public ] Void UnsetWeb(Void);
通信に使用する IWeb インターフェイスを、コントロール内部で作成するように指示します。 現在通信中、レンダリング中だった場合は、それらの処理を中断します。
enum DEFAULT {
HISTORY_SIZE = 30
};
各パラメータの初期値を納めた列挙型です。 現在は、履歴リストの大きさのデフォルト値を示す HISTORY_SIZE のみ定義されています。
[ public ]
SFMTYPEDEFCLASS(DoneNotify)
class DoneNotify : public Notify {
public:
DoneNotify (ConstSFBHtmlViewerRef hv, int done_code);
SInt32 GetDoneCode (Void) const;
SFCError GetErrorCode (Void) const;
UInt32 GetResponseCode(Void) const;
};
レンダリング終了時の情報を保持するクラスです。 BREW API の HVNotify から派生しています。 このクラスは、主に SFRBrowserControl::DoneNotifyHandler の引数として使われます。
以下のメンバ関数を持ちます。
| GetDoneCode | 通信/レンダリングの終了コードを取得します。 戻り値は WEB_ERROR_SUCCEEDED() に渡すことで通信の成功判定ができます。 通信が成功した時はサーバのレスポンスコードになります。 通信でエラーが発生した場合はエラーコードの負の値になり、 戻り値は WEB_ERROR_MAP() に渡すことで BREW のエラーコードに変換できます。 |
| GetErrorCode | 通信/レンダリングで発生したエラーコードを取得します。 エラーがない場合は SFERR_NO_ERROR が返ります。 |
| GetResponseCode | サーバのレスポンスコードを取得します。 通信エラーなどで HTTP セッションが失敗している場合は 0 が戻ります。 |