ホーム > 製品情報 > SophiaFramework UNIVERSE > SophiaFramework UNIVERSE リリースノート

SophiaFramework UNIVERSE リリースノート

SophiaFramework UNIVERSE 5.3.0 リリース ノート

新機能

描画エンジン (SFYRenderer クラス) による描画がより効率的になりました。

具体的には、姉妹レスポンダ間における順番の入れ替えと、描画終了間際における描画内容のデバイス画面ビットマップへの保存に効率化が図られました。

サスペンド時に描画エンジンを終了することで、デバイス画面ビットマップをメモリから解放できるようになりました。

SFXHTTPConnection クラスに接続タイムアウト機能、証明書ファイル読み込み機能、Basic 認証情報設定機能を追加しました。

簡易なウェブブラウズ機能を提供する SFYWebBrowserWiget クラスを追加しました。SFZWebBrowserControl クラスは内部でそれを使用します。

上記と関連するものも含めて、以下のメンバ関数を追加しました。

関数 解説
SFCApplication::RenderDeviceScreen() デバイス画面を再描画します。
SFCApplication::IsHandlingEvent() イベント処理中かどうかを判定します。
SFXHTTPConnection::GetState() HTTP/HTTPS 接続の状態を取得します。
SFXHTTPConnection::SetTimeoutCallback() 接続タイムアウトコールバックを設定します。
SFXHTTPConnection::SetTimeoutMillisecond() 接続タイムアウト時間を設定します。
SFXHTTPConnection::GetTimeoutMillisecond() 接続タイムアウト時間を取得します。
SFXHTTPConnection::LoadCertificate() ASN.1/DER 形式の証明書ファイルまたはバッファを読み込みます。
SFXHTTPConnection::SetAuthorizeData() Basic 認証の情報を設定します。
SFXHTTPConnection::GetUser() Basic 認証のユーザー名を取得します。
SFXHTTPConnection::GetPassword() Basic 認証のパスワードを取得します。
SFXHTTPConnection::GetBaseUrl() Basic 認証の基準 URL を取得します。
SFXSOAPServiceProxy::GetResultValues() Web サービスのメソッドレスポンスのパラメータリストを取得します。
SFYRenderer::IsRendering() 描画エンジンが描画処理中かどうかを判定します。
SFYResponder::Snapshot() デバイス画面保存用ビットマップからこのレスポンダとレスポンダ空間との交差領域のスナップショットを取得します。
SFYResponder::Recover() デバイス画面保存用ビットマップを使用してこのレスポンダとレスポンダ空間との交差領域を復元します。
SFYApplication::SetRendererIntermissive() サスペンド時に描画エンジンを終了させるかを設定します。
SFYApplication::IsRendererIntermissive() サスペンド時に描画エンジンを終了させるかどうかを判定します。
SFZTableView::Select() フォーカスが当たっているセルを選択します。
SFZTableView::SetFocusedCellIndex() 指定された行番号と列番号のセルにフォーカスを当てます。
SFZTableView::GetFocusedCellColumnIndex() 現在フォーカスが当たっているセルの列番号を取得します。
SFZTableView::GetFocusedCellRowIndex() 現在フォーカスが当たっているセルの行番号を取得します。
SFZWebBrowserControl::Open() HTTP/HTTPS 接続を開きます。
SFZWebBrowserControl::Close() HTTP/HTTPS 接続を閉じます。
SFZWebBrowserControl::Cancel() Web サーバーへの接続をキャンセルします。
SFZWebBrowserControl::GetContentEncoding() HTTP レスポンスヘッダーの Content-Encoding フィールドの値を取得します。
SFZWebBrowserControl::GetContentLength() HTTP レスポンスヘッダーの Content-Length フィールドを取得します。
SFZWebBrowserControl::GetContentType() HTTP レスポンスヘッダーの Content-Type フィールドを取得します。
SFZWebBrowserControl::GetCurrentTitle() 現在表示しているページのタイトル取得します。
SFZWebBrowserControl::GetCurrentURL() 現在表示しているページの URL を取得します。
SFZWebBrowserControl::GetDate() HTTP レスポンスヘッダーの Date フィールドの値を取得します。
SFZWebBrowserControl::GetExpires() HTTP レスポンスヘッダーの Expires フィールドの値を取得します。
SFZWebBrowserControl::GetLastModified() HTTP レスポンスヘッダーの Last-Modified フィールドの値を取得します。
SFZWebBrowserControl::SetMethod() HTTP リクエストメソッドを設定します。
SFZWebBrowserControl::GetMethod() HTTP リクエストメソッドを取得します。
SFZWebBrowserControl::SetProxyServer() プロキシサーバーを設定します。
SFZWebBrowserControl::GetProxyServer() プロキシサーバーを取得します。
SFZWebBrowserControl::SetRequestContent() HTTP リクエストボディにストレージまたはソースを設定します。
SFZWebBrowserControl::GetRequestContent() HTTP リクエストボディを管理する SFBSource インスタンスを取得します。
SFZWebBrowserControl::SetRequestFlag() HTTP リクエストフラグを設定します。
SFZWebBrowserControl::GetRequestFlag() HTTP リクエストフラグを取得します。
SFZWebBrowserControl::SetRequestHeader() HTTP リクエストヘッダーを設定します。
SFZWebBrowserControl::GetRequestHeader() HTTP リクエストヘッダーを取得します。
SFZWebBrowserControl::GetResponseContent() HTTP レスポンスボディを管理する SFBSource インスタンスを取得します。
SFZWebBrowserControl::GetResponseFlag() HTTP レスポンスフラグを取得します。
SFZWebBrowserControl::GetResponseHeader() HTTP レスポンスヘッダーを取得します。
SFZWebBrowserControl::GetResultCode() HTTP ステータスコードを取得します。
SFZWebBrowserControl::GetSFBWeb() SFBWeb インスタンスを取得します。
SFZWebBrowserControl::GetSFBWebResp() 内部で管理する SFBWebResp インスタンスを取得します。
SFZWebBrowserControl::GetStreamReader() HTTP レスポンスボディを読み込むためのデータ受信用ストリームを取得します。
SFZWebBrowserControl::GetStreamWriter() HTTP レスポンスボディを読み込むためのデータ受信用ストリームを取得します。
SFZWebBrowserControl::SetTimeoutCallback() 接続タイムアウトコールバックを設定します。
SFZWebBrowserControl::SetTimeoutMillisecond() 接続タイムアウト時間を設定します 。[単位: ミリ秒]
SFZWebBrowserControl::GetTimeoutMillisecond() 接続タイムアウト時間を取得します。 [単位: ミリ秒]
SFZWebBrowserControl::SetTrustMode() HTTPS 通信の SSL 認証モードを設定します。
SFZWebBrowserControl::GetTrustMode() HTTPS 通信の SSL 認証モードを取得します。
SFZWebBrowserControl::SetUserAgent() ユーザーエージェントを設定します。
SFZWebBrowserControl::GetUserAgent() ユーザーエージェントを取得します。
SFZWebBrowserControl::SetWebClassId() HTTP/HTTPS 接続を開く際の Web クラス ID を設定します。
SFZWebBrowserControl::GetWebClassId() HTTP/HTTPS 接続を開く際の Web クラス ID を取得します。
SFZWebBrowserControl::LoadCertificate() ASN.1/DER 形式の証明書のファイルまたはバッファを読み込みます。
SFZWebBrowserControl::GetUser() Basic 認証のユーザー名を取得します。
SFZWebBrowserControl::GetPassword() Basic 認証のパスワードを取得します。
SFZWebBrowserControl::GetBaseUrl() Basic 認証の基準 URL を取得します。
SFZWebBrowserControl::AdjustViewer() 内部で保持する IHTMLViewer オブジェクトの領域を調整します。
SFZWebBrowserControl::GetWidget() 内部で保持する SFYWebBrowserWidget ウィジェットを取得します。
SFZWebBrowserControl::HandleError() 致命的なエラーが発生したときに呼び出されます。

仕様変更

グローバル領域イベント (SFP16_BOUND_GLOBAL) 及び、SFYWidget::HandleBoundGlobal() 関数は廃止予定となりました。

SFCApplication::HandleRender() 関数の実装を変更しました。

IsRenderable() 関数による画面描画可能性の判定を外に移動しました。

SFYApplication::HandleEvent() 関数の実装を変更しました。

アプリの終了時とサスペンド時は描画しないようになり、サスペンド時に IsRendererIntermissive() 関数呼び出しの戻り値が true であれば描画エンジンを終了します。

SFYApplication::HandleRender() 関数の実装を変更しました。

デバイス画面保存ビットマップから画面を復元できる場合は、復元することにより描画の効率化を図りました。

優先的イベントハンドラを登録して利用するクラスは、そのハンドラのコールバック後に、SFCApplication::RenderDeviceScreen() 関数を呼び出すことにより、デバイス画面を自身で責任を持って再描画するようにする規律を設けました。

例えば、SFXEditor クラスは FEP から復帰後、自身で再描画するようになったため、 SFYSingleEditWidget クラスなどの SFXEditor クラスを使用するクラスが明示的にデバイス画面を再描画する必要がなくなっています。

SFOTableCellVisitor クラスの機能を SFOTableCellReactor クラスに統合しました。

SFOTableCellVisitor クラスは廃止となります。

SFZWebBrowserControl クラスのアクセス履歴のサイズは必要に応じて自動拡張されるようになりました。

その他、以下のメンバ関数の仕様を変更しました。

関数 変更内容
SFCApplication::RegisterBypass() 引数のコールバック関数ポインタに null を設定できないようにしました。
SFOTableCellReactor::GetFont() 廃止しました。
SFOTableCellReactor::GetForegroundColor() 廃止しました。
SFOTableCellReactor::GetSelectedForegroundColor() 廃止しました。
SFOTableCellReactor::GetAlignment() アクセス修飾子を public から protected に変更しました。
SFOTableCellReactor::GetMargin() アクセス修飾子を public から protected に変更しました。
SFOTableCellReactor::IsEditable() アクセス修飾子を public から protected に変更しました。
SFOTableCellReactor::Align() アクセス修飾子を public から protected に変更しました。
SFOTableCellTextReactor::NewInstance() 引数のルートレスポンダ root を削除しました。
SFXEventBypass::Register() 引数のコールバック関数ポインタに null を設定できないようにしました。
SFXSOAPServiceProxy::Invoke() 引数として、通知コールバック関数ポインタと参照値を受け取れるように拡張しました。
SFYRenderer::Initialize() 引数を Void 型に変更しました。
SFYScrollBarControl::GetThumbTop() アクセス修飾子を public から protected に変更しました。
SFYScrollBarControl::GetThumbLength() アクセス修飾子を public から protected に変更しました。
SFYScrollBarControl::GetScrollRange() アクセス修飾子を public から protected に変更しました。
SFYScrollBarControl::RelocateTrackAndArrow() 矢印ラベル領域の計算方法を変更しました。
SFZTextMenu::SetItemEnable() 戻り値を Void 型から SFCError 型に変更しました。
SFZWebBrowserControl::UnsetAuthorizeData() 廃止しました。
SFZWebBrowserControl::GetCurrentHistory() GetCurrentURL(), GetCurrentTitle() に変更しました。
SFZWebBrowserControl::GetCurrentHistoryIndex() 廃止しました。
SFZWebBrowserControl::SetHistorySize() 廃止しました。
SFZWebBrowserControl::GetHistorySize() 廃止しました。
SFZWebBrowserControl::GetHistoryList() 廃止しました。
SFZWebBrowserControl::GetHistory() 廃止しました。
SFZWebBrowserControl::Move() 廃止しました。
SFZWebBrowserControl::GetWeb() GetSFBWeb() に名称変更しました。
SFZWebBrowserControl::SetWeb() 廃止しました。
SFZWebBrowserControl::UnsetWeb() 廃止しました。
SFZWebBrowserControl::ResponseNotifyHandler() 引数を NotifyRef 型、返り値の型を Void 型に変更しました。
SFZWebBrowserControl::JumpNotifyHandler() 引数を NotifyRef 型に変更しました。
SFZWebBrowserControl::DoneNotifyHandler() 引数を NotifyRef 型に変更しました。
SFZWebBrowserControl::FocusNotifyHandler() 引数を NotifyRef 型に変更しました。
SFZWebBrowserControl::Stop() レンダリングのみ中止に変更しました。通信を中止するには Cancel() を呼び出します。
SFZWebBrowserControl::Navigate() 引数を url のみに変更しました。SetMethod(), SetRequestContent() と合わせて使用します。
SFZWebBrowserControl::Load() オーバーロード関数を追加しました。

不具合修正

SFYResponder クラス及びその継承クラスにおいて、SetParent() 関数より先に、SetState() 関数もしくは SetStateFocus() 関数を呼び出してフォーカス状態を設定したときに、その状態が反映されない場合がある不具合を修正しました。

SFZWebBrowserControl クラスで描画されるテキストコントロールがテキスト入力後に表示されなくなる不具合を修正しました。

SFZWebBrowserControl クラスがキーリピートを正常に扱えない不具合を修正しました。

その他

リファレンスを改訂しました(リファレンスだけのダウンロードも可能です)。

AppWizard で生成される HandleRender() 関数の実装コードとコメントを変更しました。

Tutorial/Example フォルダ内のサンプルコードにおける HandleRender() 関数の実装を変更しました。

Example フォルダ内の tabbrowser_sfy アプリを https 通信と Basic 認証に対応させました。

SophiaFramework UNIVERSE 5.2.0 リリース ノート

新機能

Brew MP SDK 1.0.x の新規インターフェイスに対応しました。

Brew MP SDK 1.0.3.800 までの BREW インターフェイスに対応します。

テーブルビューなどのクラスを追加しました。

クラス名 解説
SFXAny あらゆる型の格納と取得を行うための記憶域を提供するクラスです。
SFXTypeInfo 型情報を提供するクラスです。
SFXHierarchyProperty 階層プロパティクラスです。
SFORefObject 参照機能を備えたオブジェクトクラスです。
SFOTableModelBase SFZTableView クラスで使用する抽象テーブルモデルクラスです。
SFOTableModel SFZTableView クラスで使用する具象テーブルモデルクラスです。
SFOTableViewColumn テーブルビューの列を表すクラスです。
SFOTableCellVisitor テーブルセルに訪問する Visitor クラスです。
SFOTableCellReactor テーブルセルを描画するインターフェイスや、セレクトされたときに振る舞いを行うインターフェイスを提供するクラスです。
SFOTableCellImageReactor テーブルセルに画像を描画する機能を提供するクラスです。
SFOTableCellTextReactor テーブルセルにテキストの描画、編集機能を提供するクラスです。
SFOTableCellToggleReactor テーブルセルにチェックボックス機能を提供するクラスです。
SFZTableView 行と列で指定される要素から構成されるテーブル状の概観 (テーブルビュー) を提供するレスポンダです。
SFXTableItemBase テーブル項目 [行] を表す抽象クラスです。
SFXTableItem テーブル項目 [行] を表すテンプレートクラスです。

仕様変更

SFXLinkedHashMap::Get() 関数と SFXFlatHashMap::Get() 関数にキーが見つかったかどうかを判定するための found 引数を追加しました。

SFXMailMessage::Parse() 関数のエラー値を変更しました。

SFXPOP3Receiver::GetReceivdUidlArray() 関数を廃止しました。

この関数は常に空の配列を返していました。UIDL の値を取得するには代わりに GetReceivedMailArray() 関数を呼びだしてください。

不具合修正

SFXSOAPServiceProxy::SetNotifyHadler() 関数によるコールバックの設定が無効化されてしまう不具合を修正しました。

この不具合は SophiaFramework UNIVERSE 5.1.12 においてのみ発生します。

その他

リファレンスを改訂しました(リファレンスだけのダウンロードも可能です)。

xmlexplainer アプリの SOAP サービス使用例を弊社の Web Service の利用に変更しました。

SophiaFramework UNIVERSE 5.1.12 リリース ノート

新機能

イベントを優先的に処理するハンドラを設定・解除するユーティリティクラス SFXEventBypass を追加しました。

KDDI 社 BREW 拡張インターフェース用 C++ ラッパークラス最新版をリリースしました (UIを伴うAPIの拡張機能とストリームによるファイルアクセス機能が大幅に強化されています)。

仕様変更

優先的イベントハンドラの解除後に SophiaFramework 側で行われていた再描画処理を省略しました。

これは、解除のタイミングによってまれに再描画されないケースがあるためで、変更後は一律アプリ側で再描画処理を行う必要があります。

不具合修正

SFXXMLDOMParser / SFXXMLSAXParser クラスにて XML 文書の解析時に発生したエラーを正常に取得できない不具合を修正しました。

SFXXMLDocument::Save() 関数にて XML 文書ファイルを上書き保存する際、更新後ファイルが更新前ファイルよりサイズが小さいときに、更新前ファイルの内容が更新後ファイルの末尾に残ってしまう不具合を修正しました。

その他、XML 文書を扱うクラスのコードを全般的に見直しました。

その他

リファレンスを改訂しました(リファレンスだけのダウンロードも可能です)。

KDDI 社 BREW 拡張インターフェイス用 C++ ラッパークラスおよびそのユーティリティクラスの説明を含んだリファレンスを新規作成しました。

SophiaFramework UNIVERSE 5.1.11 リリース ノート

新機能

SFXFile クラスにファイルへのパスを取得するための関数 GetFilePath() を追加しました。

仕様変更

SFXHTTPConnection::SetRequestContent() 関数の引数仕様を見直しました。

HTTP リクエストのコンテンツとして、ファイルなどのストレージを直接指定することができるようになります。

bool 型の定義をコンパイラ環境に委ねるように変更しました。

具体的には以下のような変更になります。

// (*) boolean 型は BREW (AEEStdDef.h) で以下のように定義されています。
typedef unsigned char   boolean;

// [旧定義]
#undef  bool
#define bool            boolean
SFMTYPEDEFALIAS(bool, Bool)

// [新定義]
SFMTYPEDEFALIAS(boolean, Bool)

結果として Bool 型の取り扱いに変更はありません。

不具合修正

Sharp 製携帯端末 (SH009/SH010/SH011) において、FEP 切り替え前に不意にテキストコントロールの文字列が描画される不具合を修正しました。

なお、この現象は SophiaFramework UNIVERSE 5.1.10 のみで発生します。

その他

リファレンスを改訂しました(リファレンスだけのダウンロードも可能です)。

SophiaFramework UNIVERSE 5.1.10 リリース ノート

新機能

乱数生成クラスに 64 ビット整数型の乱数を生成する関数を追加しました。

関数 解説
SFXBrewRandom::GetSInt64() BREW の乱数生成関数により、SInt64 型の乱数を生成します。
SFXBrewRandom::GetUInt64() BREW の乱数生成関数により、UInt64 型の乱数を生成します。
SFXLCGRandom::GetSInt64() 線形合同法により、SInt64 型の乱数を生成します。
SFXLCGRandom::GetUInt64() 線形合同法により、UInt64 型の乱数を生成します。
SFXMTRandom::GetSInt64() メルセンヌツイスター法により、SInt64 型の乱数を生成します。
SFXMTRandom::GetUInt64() メルセンヌツイスター法により、UInt64 型の乱数を生成します。

仕様変更

SFXEditor クラスの内部処理を簡略化しました。

SophiaFramework のアプレット構造体を AEEApplet 準互換にしました。

これは、端末の辞書機能などの一部のエクステンションが AEEApplet 構造体の m_pIShell や m_pIDisplay などのメンバ変数にアクセスしていることに対応するための仕様変更です。

SFXUDPSocket クラスにて Bind() 関数を呼び出さなくても、UDP 通信が開始できるようにしました。

SFXBrewRandom クラスにて生成される 32 ビット未満の整数型や Bool 型の乱数について、内部的に必要なバイト分だけ乱数を生成するように変更しました。

不具合修正

SFXSOAPWriter::SetBody("NONE") を呼び出して SOAP メッセージの Body 要素を "NONE" に設定すると、端末がリセットする不具合を修正しました。

この不具合は、RealView Compilation Tools for BREW 1.2 用ライブラリだけで発生していました。

以下の関数を使用して生成した浮動小数乱数に 1.0 が含まれる不具合を修正しました。 同時に、浮動小数乱数の一様性が向上するように修正しました。

その他

Tutorial フォルダに以下のサンプルアプレットを追加しました。

リファレンスを改訂しました(リファレンスだけのダウンロードも可能です)。

SophiaFramework UNIVERSE 5.1.9 リリース ノート

新機能

以下のフレームを装着するための SFYResponder::SetFrame 関数などの導入により、 フレームが透過的に利用できるようになりました。

関数 解説
SetFrame() フレームを装着します。
GetFrame() 装着されているフレームを取得します。
HasFrame() フレームが装着されているかどうかを判定します。
IsFrame() このレスポンダが他のレスポンダに装着されたフレームであるかどうかを判定します。

ヒント領域内でレスポンダの最適な領域のアラインメントを指定するための引数を持つ SFYResponder::GetSuitableBound 関数を追加しました。

追加項目の順番を保持するハッシュマップクラス SFXLinkedHashMap と要素のインスタンスを事前にヒープに確保するハッシュマップクラス SFXFlatHashMap を追加しました。

シミュレータ利用時のメモリ追跡機能を高速化しました。 特に、アプレット終了時のパフォーマンスを改善しました。

仕様変更

テキスト入力コントロールエディタクラス SFXEditor の実装を SFXBaseEditor / SFXEditor / SFXEditProperty の 3 クラスに分離しました(SFXBaseEditor は SFXEditor の基底クラスです)。 また、SFZSingleEditBoxControl などで内部的に管理していた、 SFXEditor をアプリケーションクラスで管理するようにし、 アプリケーションインスタンス生成時に SFXBaseEditor を継承するユーザー定義テキスト入力コントロールエディタを引数に指定することにより置き換え可能にしました。

SophiaFramework UNIVERSE 5.1.8 以前のハッシュマップクラス SFXHashmap は、 SFXOldHashmap クラスに名称変更されました。 現在の SFXHashmap は SFXLinkedHashMap の別名です。 互換性が保たれているため、旧 SFXHashmap クラスの API はそのまま使用できます。

SFZTabPage インスタンス終了時に必要であった "SetState(false, false, false, false);" が省略可能になりました。

配信エンジンが接続されていないレスポンダツリー上のレスポンダは状態イベントを受信しなくなりました。

不具合修正

タイマー描画時に本来描画する必要のないレスポンダが描画されてしまうことがある不具合を修正しました。

その他

Tutorial/Example フォルダ内のサンプルコードを新しいフレームの使用方法に対応させました。

リファレンスを改訂しました(リファレンスだけのダウンロードも可能です)。

SophiaFramework UNIVERSE 5.1.8 リリース ノート

新機能

RealView Compilation Tools for BREW 3.0 をサポートしました。

仕様変更

SInt32 SFBSource::Read(SFXBufferPtr buf) に関して、 buf 引数に null が指定されたときに、ISOURCE_ERROR (-1) を返却するようにしました。 これまでの仕様では、SFERR_INVALID_PARAM (14) を返却するため、 正常に読み込んだときのサイズが 14 である場合と重なっていました。

SFBPort::Write 関数が定義済みで不要であるため、 SFBFilePort::Write 関数を削除しました。

不具合修正

SFXXMLDOMParser クラスとSFXXMLSAXParser クラスを使用して XML ドキュメントを解析する際に発生する以下の不具合を修正しました。

以下の Sharp 製 BREW 3.1 機種のテキスト入力コントロール(ITextCtl) の実装上の不具合に対応しました。

これらの機種では、 テキストコントロールへの IsActive() による問合せに対してアクティブの状態であるにも関わらず false を返す端末実装上のバグが確認されています。

その他

リファレンスを改訂しました(リファレンスだけのダウンロードも可能です)。

SophiaFramework UNIVERSE 5.1.7 リリース ノート

新機能

BMP 1.0 に対応しました。

SFZTextMenu クラスに以下のサブメニュー処理用関数を追加しました。

関数 解説
GetRootMenu() ルートメニューを取得します。
HasParentMenu() 親メニューを持つかどうかを判定します。
デフォルトの結果ハンドラ(ユーザー定義の結果イベントのハンドラを登録しなかったときに呼び出されるハンドラ) テキストメニューを終了します。テキストメニューがサブメニューの場合、すべての親メニューも終了します。

SFZTextMenu クラスと SFZGridMenu クラスに以下の項目追加・削除用関数を追加しました。

関数 解説
Insert() 項目を挿入します。
InsertFirst() 項目を先頭に挿入します。
InsertLast() 項目を末尾に挿入します。
Remove() 項目を削除します。
RemoveFirst() 先頭の項目を削除します。
RemoveLast() 末尾の項目を削除します。

SFZListBoxControl クラスと SFZComboBoxControl クラスに以下の項目削除用関数を追加しました。

関数 解説
RemoveFirst() 先頭の項目を削除します。
RemoveLast() 末尾の項目を削除します。

仕様変更

SFZTextMenu クラスの以下の関数について仕様変更を行いました。

関数名 内容
SetItemSubMenu() エラー値を返すようにしました。
HandleOperateKey() この関数内で親メニューを閉じないようにしました。
HandleEscapeKey() HasParentMenu()を使って親メニューの処理を厳密に行うように再実装しました。
HandleSelectLeftKey() HasParentMenu()を使って親メニューの処理を厳密に行うように再実装しました。

SFZTextMenu クラス、SFZGridMenu クラスの AppendItem() 関数を廃止予定にしました(互換性維持のためバージョン 6.0 までは利用可能)。 これからは InsertLast() 関数を使用してください。

廃止関数 代替関数
SFZTextMenu::AppendItem() SFZTextMenu::InsertLast()
SFZGridMenu::AppendItem() SFZGridMenu::InsertLast()

SFZTextMenu クラス、SFZGridMenu クラスの RemoveItem() 関数を廃止予定にしました(互換性維持のためバージョン 6.0 までは利用可能)。 これからは Remove() 関数を使用してください。

廃止関数 代替関数
SFZTextMenu::RemoveItem() SFZTextMenu::Remove()
SFZGridMenu::RemoveItem() SFZGridMenu::Remove()

不具合修正

東芝製 T004 に関して、 SFZSingleEditBoxControl などのコントロールにおいて FEP に遷移しない不具合を修正しました。

SFXGraphics::SetClip() 関数に関してある条件下でクリッピングが働かない不具合を修正しました。

SFYFlexListControl クラスについて、選択中の項目より 小さい index の項目を削除したときに、 項目を正常に表示できなくなる不具合を修正しました。

この不具合は、上記クラスを継承する下記の具象クラスに影響を及ぼします。

SFYVerticalFlexListControl, SFYHorizontalFlexListControl, SFZFlexListBoxControl, SFZFlexListMenu, SFZComboBoxControl

その他

リファレンスを改訂しました(リファレンスだけのダウンロードも可能です)。

Tutorial/Example 内のサンプルコードに使用している AppendItem()/Append() を InsertLast() に置き換えました。

SophiaFramework UNIVERSE 5.1.6 リリース ノート

新機能

Tutorial フォルダに以下のサンプルアプレットを追加しました。

httpsapp: ルート証明書を追加して https 接続を行うアプレット

仕様変更

SFR アプリケーションにおいて SFEVT_DYNAMIC_CLASS に属するイベントを状態に関係なくレスポンダに配信する規則をトレーサに登録しました。

不具合修正

SFYMenu クラスと SFZDialog クラスにおけるサスペンド・レジューム時のタイマー処理が省略されていた不具合を修正しました。

この不具合は、上記クラスを継承する下記の具象クラスに影響を及ぼします。

SFZFlexListMenu, SFZGridMenu, SFZTextMenu, SFZMessageDialog, SFZQuestionDialog

Sony Ericsson 製 BREW 3.1 端末に関して、SFZSingleEditBoxControl などのコントロールにおいて FEP から制御が戻らない不具合を修正しました。

その他

リファレンスを改訂しました(リファレンスだけのダウンロードも可能です)。

SophiaFramework UNIVERSE 5.1.5 リリース ノート

新機能

SFZSoftKeyControl クラスに Bind() 関数と UnBind() 関数のオーバーロードをそれぞれ追加しました。

関数名 引数
SFCError Bind (SFYResponderSmpConstRef, UInt32)
Void UnBind (SFYResponderSmpConstRef)

不具合修正

SFXXMLDOMParser / SFXXMLSAXParser クラスを用いて XML ファイルをパースする際、XML ファイルにエンティティ参照が含まれているとフリーズする不具合を修正しました (5.1.3 より前のバージョンにはこの不具合は含まれません)。

SFYTabControl / SFZTabControl クラスにおいてタブループを無効にしているとき、最後のページから次のページへ進もうとするとページのフォーカスが失われる不具合を修正しました。

SFXTextEncoding クラスで文字エンコードを変換する際、変換元の文字列が空の場合にフリーズする不具合を修正しました。

その他

リファレンスを改訂しました(リファレンスだけのダウンロードも可能です)。

SophiaFramework UNIVERSE 5.1.4 リリース ノート

新機能

YAGARTO 4.4.2 for Windows (20091018) [GCC] での開発が可能になりました。

YAGARTO による開発については、こちらをご覧ください。

不具合修正

Visual Studio 用ライブラリに SFR クラスが含まれていない不具合 (5.1.3 のみ) を修正しました。

その他

リファレンスを改訂しました(リファレンスだけのダウンロードも可能です)。

SophiaFramework UNIVERSE 5.1.3 リリース ノート

不具合修正

SFXXMLDOMParser / SFXXMLSAXParser クラスを用いて XML ファイルをパースする際に発生する以下の不具合を修正しました。

  1. 要素タグに ASCII 以外の文字が含まれるとき、フリーズすることがある不具合。
  2. 名前空間を有効にすると、フリーズすることがある不具合。

その他

リファレンスを改訂しました(リファレンスだけのダウンロードも可能です)。

SophiaFramework UNIVERSE 5.1.2 リリース ノート

新機能

KDDI 社 BREW 拡張インターフェース用 C++ ラッパークラス最新版をリリースしました。

  1. KDDI 社 BREW 日本拡張パッケージ最新版に対応しました。
  2. E05SH/E06SH 限定インターフェースに対応しました。

RealView Compilation Tools for BREW 1.2 と GNUARM 4.1.1 [GCC] 用 の Thumb ライブラリを追加しました。

Thumb ライブラリを使用することにより、従来より省スペースかつ省電力なアプリケーションを開発することができます。

利用方法については、「RealView Compilation Tools for BREW 1.2 の場合」 及び 「GNUARM 4.1.1 の場合」 をご覧ください。

GNUARM 4.1.1 [GCC] で Thumb を利用する場合、"arm-elf-ld.exe" を改変版の GNU ld 2.19 に置き換える必要があります。

高機能なリストメニュークラスとして SFZFlexListMenu クラスを追加しました。

詳細については、こちらをご覧ください。

不具合修正

SFZComboBoxControl クラスと SFZFlexListBoxControl クラスに関して、以下の不具合を修正しました。

  1. アクセスキーの登録と削除に失敗する不具合。
  2. FirstIndexOfCommandId 関数で不正な ID (-1) が取得されてしまう不具合。

SophiaFramework UNIVERSE 5.1.1 リリース ノート

新機能

GNUARM 4.1.1 [GCC] による開発において、クラス内の未使用関数を削除することにより mod ファイルサイズの縮小化が可能になりました。

未使用関数を削除するには、GNUARM 4.1.1 [GCC] 内の "arm-elf-ld.exe" を version 2.19 以降の GNU ld に置き換える必要があります。 使用方法に関しては、こちらをご覧ください。

不具合修正

GNUARM 4.1.1 [GCC] による開発において、以下の4つのマクロが未定義になる不具合を修正しました。

SINT64_MAXIMUM

SINT64_MINIMUM

UINT64_MAXIMUM

UINT64_MINIMUM

SophiaFramework UNIVERSE 5.1.0 リリース ノート

新機能

GNUARM 4.1.1 [GCC] での開発が可能になりました。

GNUARM 4.1.1 [GCC] による開発については、こちらをご覧ください。

SophiaFramework UNIVERSE 5.0.5 リリース ノート

新機能

高機能なリストボックスコントロールクラスとして SFZFlexListBoxControl クラスを追加しました。

SFZListBoxControl クラスにはなかった以下の特徴を備えます。

  1. ページスクロール機能
  2. スナップスクロール機能
  3. アライメント機能
  4. アイコン画像
  5. アイテム構造体 (ItemRec) や配列による追加機能
  6. 項目固有のID
  7. 複数行テキスト表示機能 (選択時のみ)
  8. 非選択時と選択時の項目内容切り替え (自動的に項目の高さが調整されます)

※項目数が数百オーダーの用途には適しません(クラス終了時にシミュレータが重くなる現象が発生します)

SFZFlexListBoxControl::ItemRec 構造体の要素

要素名 機能
SFXWideString normal.header.text 通常時のヘッダ文字列
SFXWideString normal.body.text 通常時のボディ文字列
SFBImageSmp normal.body.icon 通常時のボディアイコン画像
SFBImageSmp normal.footer.icon 通常時のフッタアイコン画像
SFXWideString select.header.text 選択時のヘッダ文字列
SFXWideString select.body.text 選択時のボディ文字列
SFBImageSmp select.body.icon 選択時のボディアイコン画像
SFBImageSmp select.footer.icon 選択時のフッタアイコン画像
UInt32 property.id 固有の ID
AVKType property.key アクセスキー
Bool property.enable 有効フラグ

仕様変更

SFYBandControl クラスを廃止しました。

SFYScrollBarControl クラスの一部仕様と API を変更しました。

  1. スクロールバーがスクロール可能及び不可能の状態に変化した時に起動されるハンドラ HandleScrollable を追加しました。 デフォルトの実装はスクロール可能イベント (SFEVT_RESPONDER_SCROLL) を送信します。
  2. SetAlwaysVisible / GetAlwaysVisible 関数を廃止しました。 (同等の機能はスクロール可能イベントハンドラで開発者が振る舞いを定義します。)
  3. DrawTrack / DrawDecrement / DrawIncrement / DrawThumb 関数の virtual 属性を省きオーバーライド禁止にしました。
  4. UpdateScrollBar 関数を廃止しました。(呼び出す必要がなくなったため。)
  5. RelocateTrackAndArrow 関数を追加しました。トラック領域と矢印ラベル領域を変更するにはこの関数をオーバーライドします。(サム領域は自動的に計算されます。)
  6. トラック領域、矢印ラベル領域の設定/取得とサム領域の取得を行うプロテクト関数を追加しました。

スクロールバークラスの名称やクラス構成を変更しました。

従来の SFZScrollBarControl クラスは SFZContainerScrollBarControl クラスに名称変更されます。

新規の SFZScrollBarControl クラスは SFYScrollBarControl クラスにインスタンス化機能を付加したクラスとなります。

SFYBandControl クラスの廃止に伴い、SFZBandScrollBarControl クラスも廃止されます。

スクロールバークラスの名称と役割は以下のようになります。

クラス名 役割
SFYScrollBarControl 抽象スクロールバークラス
SFZScrollBarControl SFYScrollBarControl クラスにインスタンス化機能のみを追加した具象スクロールバークラス
SFZContainerScrollBarControl コンテナクラス (SFYContainer) に特化された具象スクロールバークラス

従来の SFZListBoxControl クラスの機能強化を行い、一部仕様を変更しました。

  1. SFYBandControl クラスの廃止に伴い、親クラスを SFYControl クラスに変更しました。
  2. 項目数を取得する関数 GetItemCount を追加しました。(将来的には最大値が項目数を意味しなくなります。)
  3. 項目のマージンを設定できるようにしました。
  4. 項目間のグリッド線を設定できるようにしました。
  5. 項目の高さはフォントに応じて自動的に計算されるようにしました。
  6. 項目に有効フラグが追加しました。
  7. 項目の追加 / 削除の関数を拡張しました。
  8. 連続スクロール機能を追加しました。
  9. 項目削除時の現在値は項目数以上になる時のみ変更するようにしました。
  10. スクロールバーの幅を変更できるようにしました。
  11. 最適化領域 (GetSuitableBound) を計算できるようにしました。
旧関数 新関数
GetScrollBar GetScrollBarControl
SetItemHeight 廃止 (SetListMargin を使用します。)
public SetTopValue private SetTopValue
public SetFieldValue private SetFieldValue
新関数名称 機能
Insert / InsertFirst / InsertLast 項目を挿入します。
Remove(SInt32 begin, SInt32 end) 指定した範囲の項目を削除します。(end は削除対象に含まれません。)
GetScrollRepeat / SetScrollRepeat 上下のスクロールを行う際に境界を越えて反対側に移動する状態を取得/設定します。
GetScrollBarWidth / SetScrollBarWidth スクロールバーの幅を取得/設定します。
GetGridLineEnable / SetGridLineEnable 項目間のグリッド線の有効フラグ値を取得/設定します。
GetGridLineColor / SetGridLineColor 項目間のグリッド線の色を取得/設定します。
GetListMargin / SetListMargin 項目のマージンを取得/設定します。
GetItemEnable / SetItemEnable 項目ごとの有効フラグの値を取得/設定します。

SFZComboBoxControl クラスの機能強化行い、一部仕様を変更しました。

  1. 内部でリストボックスコントロール SFZFlexListBoxControl (前述の新クラス) を使用します。
  2. 項目数を取得する関数 GetItemCount を追加しました。(将来的には最大値が項目数を意味しなくなります。)
  3. SetCurrentValue 関数の呼び出しで SFP16_RESULT_OK イベントを送信しないようにしました。
  4. リストボックスコントロールを表示する際の領域計算ロジックを変更しました。
  5. 1つの項目が「ヘッダ / ボディ / フッタ」の3つの部分で構成されるようになりました。
  6. ヘッダは文字列で構成され、文字列の色やフォントを指定することができます。
  7. ボディはアイコン画像と文字列で構成され、文字列の色やフォントを指定することができます。
  8. フッタはアイコン画像で構成されます。
  9. 項目の追加 / 削除の関数を拡張しました。
旧関数 新関数
SetItemText SetItemText (拡張)
GetItemText GetItemText (拡張)
SetFont SetFont (拡張)
GetFont GetFont (拡張)
SetListFont SetListFont (拡張)
GetListFont GetListFont (拡張)
SetTitleColor SetTitleColor (拡張)
GetTitleColor GetTitleColor (拡張)
GetListBox GetListBoxControl (返り値: SFZFlexListBoxControlSmpConstRef)
GetTextWidget GetWidget (現在未実装。5.0.6 で実装予定。)
新関数名称 機能
Insert / InsertFirst / InsertLast 項目を挿入します。
Remove(SInt32 begin, SInt32 end) 指定した範囲の項目を削除します。(end は削除対象に含まれません。)
GetSpaceSize / GetSpaceSize 項目のパート (ヘッダ、ボディ、フッタ) 間の余白値を取得 / 設定します。
GetItemIconImage / SetItemIconImage 項目ごとのアイコン画像を取得/設定します。

SFYTabControl クラスの仕様を一部変更しました。

  1. タブのデザインを変更しました。
  2. SFYBandControl クラスの廃止に伴い、親クラスを SFYControl クラスに変更しました。
  3. ページ数を取得する関数 GetPageCount を拡張しました。(将来的には最大値がページ数を意味しなくなるのでこの関数を呼び出します。)
  4. 現在値が不正な場合やページが存在しない場合に表示するページ (セーフページ) を追加しました。
  5. 選択中のタブの上境界フォーカス線を描画する機能を追加しました。
  6. タブをインデックスで直接選択する関数は FocusPage 関数のみに限定となります。
  7. FocusPage 関数呼び出しは、SFYTabControl クラスが視覚的フォーカス状態にあるときのみ有効とします。
  8. タブページの順序変更関数 (ToFront など) 呼び出しは禁止とします。
  9. タブページを終了させたり親を変更する際はページの状態を一度全てオフにする必要があります。
  10. パディングのデフォルト値を 4 に変更しました。

SFZSoftKeyControl クラスのソフトキーイベントの仕様を変更しました。

32ビット値が常に0だったのが、対応する BREW キーイベントの32ビット値を参照するようになりました。

不具合修正

非透過で可視状態にある同サイズのレスポンダが5つ以上重なっているときに、本来描画されない裏側にあるレスポンダが描画されてしまう不具合を修正しました。

タブコントロール(SFYTabControl / SFZTabControl) クラスの選択タブが状態変更に伴い変更されてしまう不具合を修正しました。

ソフトキーコントロール (SFZSoftKeyControl) クラスの次の不具合を修正しました。

ソフトキーコントロールに関連付けられた2つのレスポンダが祖母-孫 (一世代を超える親子) 関係を持っていて孫がアクティブだとします。

この状況下で、祖母がアクティブになった (孫がフォーカスを失っても祖母にはまだフォーカスがあった) 場合に、祖母のソフトメニューが表示されない不具合。

SophiaFramework UNIVERSE 5.0.4 リリース ノート

新機能

プレーンフレームの影、フラットフレームのフレーム枠、ベベルフレームのベベル枠の ON/OFF が切り替えられるようになりました。 それに伴い以下の関数が追加されます。これらを継承するクラスの関数も同様に追加となります。

クラス 関数 解説
SFYPlainFrame GetShadowEnable()/SetShadowEnable() 影の ON/OFF を取得/設定します。
SFYFlatFrame GetFrameEnable()/SetFrameEnable() フレームの ON/OFF を取得/設定します。
SFYBevelFrame GetBevelEnable()/SetBevelEnable() ベベルの ON/OFF を取得/設定します。

SFZListBoxControl クラスの項目のスクロール機能に、方向を指定する関数 SetScrollDirection() が追加されました。

SFZSoftKeyControl クラスに以下の関数が追加されました。主に継承して利用するための追加となります。

パブリック関数 解説
GetDefaultFrameColor()/SetDefaultFrameColor() ラベルのデフォルトのフレーム色を取得/設定します。
GetDefaultFrontColor()/SetDefaultFrontColor() ラベルのデフォルトの前景色を取得/設定します。
GetDefaultBackColor()/SetDefaultBackColor() ラベルのデフォルトの背景色を取得/設定します。
GetActiveMenuKey() アクティブメニューのキーを取得します。
プロテクト関数 解説
virtual HandleCreatedMenu() メニューが作成された直後に起動されるハンドラです。
virtual HandleDestroyedMenu() メニューが破棄される直前に起動されるハンドラです。
virtual HandleStyle() スタイルが変更されたときに起動されるハンドラです。
GetLabelRectangle()/SetLabelRectangle() ラベルの領域を取得/設定します。
DrawRectangularFrame() ラベルの長方形状フレームを描画します。
DrawImage() 画像を中心に描画します。
RebuildCache() アクティブメニューのキャッシュを再構築します。
IsCacheValid() アクティブメニューのキャッシュの有効性をチェックします。
GetCacheText() アクティブメニューのキャッシュからアクティブラベルの文字列を取得します。
GetCacheImage() アクティブメニューのキャッシュからアクティブラベルの画像を取得します。
GetCacheFrameColor() アクティブメニューのキャッシュからアクティブラベルのフレーム色を取得します。
GetCacheForeColor() アクティブメニューのキャッシュからアクティブラベルの前景色を取得します。
GetCacheBackColor() アクティブメニューのキャッシュからアクティブラベルの背景色を取得します。
GetCacheLabelEnable() アクティブメニューのキャッシュからアクティブラベルの有効状態を取得します。
GetCachePress() アクティブメニューのキャッシュからアクティブラベルのプレス状態を取得します。

仕様変更

フレームの新機能追加に伴い、以下の関数の static 属性がなくなりました。

これらを継承するクラスの関数も同様に変更となります。

クラス 関数
SFYPlainFrame GetShadowMargin()
SFYFlatFrame GetFrameMargin()
SFYBevelFrame GetBevelMargin()

不具合修正

SFXMailMessage::AttachFile() にてファイルを添付したメールを送信する際に、ある条件下で端末がリセットする不具合を修正しました。

その他

SophiaFramework UNIVERSE 5.0 リファレンスを最新版にしました。

Example フォルダに customsoftkey アプリを追加しました。

SophiaFramework UNIVERSE 5.0.3 リリース ノート

新機能

最新の BREW 日本拡張パッケージに対応しました。 ( 2009 年 01 月 28 日 現在 )

SFYRadiobuttonControl、SFYCheckboxControl、SFYLabelControl において活性状態やフォーカス状態が変化した時、およびボタン押下時の色計算式を変更しました。

この変更で色の明度 (0x7F より大きいかどうか) に応じてレスポンダの明暗が決定されるようになります。 これらのクラスを使用する具象クラスもこのロジックで色計算されます。

不具合修正

W64SA / W62SH 端末で SFZSingleEditBoxControl などのテキスト入力コントロールでテキスト編集中にサスペンドした時にリセットする機種依存の不具合を修正しました。

SophiaFramework UNIVERSE を上書きインストールしたときに、Visual C++ 6.0 用アドインの名称が更新されないインストーラーの不具合を修正しました。

その他

SophiaFramework UNIVERSE 5.0 リファレンスを最新版にしました。 『SophiaFramework UNIVERSE アプレットの開発手順』、『トラブルシューティング』、 『BREW 日本拡張パッケージ C++ ラッパークラスの使用方法』、『コントロール系レスポンダの描画』などの説明が追加・更新されています。

Tutorial フォルダ内 helloworld アプレットの内容を最新版に更新しました。

SophiaFramework UNIVERSE 5.0.2 リリース ノート

新機能

色の明度を取得する関数 SFXRGBColor::GetBrightness() を追加しました。

SFZComboBoxControl クラスにタイトル文字のアライメントやスクロールなどの関数を追加しました。

関数 解説
GetHorizontalAlign()/SetHorizontalAlign() タイトルの水平アラインメントの値を取得/設定します(デフォルトは「中央揃え」になります)。
GetVerticalAlign()/SetVerticalAlign() タイトルの垂直アラインメントの値を取得/設定します(デフォルトは「中央揃え」になります)。
GetScrollDirection()/SetScrollDirection() タイトルのスクロール移動方向を取得/設定します。
GetScrollInterval()/SetScrollInterval() タイトルのスクロール移動時間を取得/設定します。
GetScrollStep()/SetScrollStep() タイトルのスクロール移動量を取得/設定します。
GetWaitInterval()/SetWaitInterval() タイトルのスクロール開始までの待ち時間を取得/設定します。
StartScroll()/StopScroll() タイトルのスクロールを開始/停止します。
GetArrowColor()/SetArrowColor() 矢印の色を取得/設定します。
GetListFont()/SetListFont() リストボックス項目のフォントを取得/設定します。
DrawTab() コンボボックスの矢印を描画します。

SFZTextMenu、SFZGridMenu、SFZListBoxControl の項目のデフォルト色について以下の関数を追加しました。

関数 解説
SetDefaultItemForeColor() 項目のデフォルトの前景色を設定します。
GetDefaultItemForeColor() 項目のデフォルトの前景色を取得します。
SetDefaultItemBackColor() 項目のデフォルトの背景色を設定します。
GetDefaultItemBackColor() 項目のデフォルトの背景色を取得します。

SFZTextMenu について以下の関数を追加しました。

関数 解説
GetItemMargin()/SetItemMargin() メニュー項目内のマージンを取得/設定します。

SFZSoftKeyControl について以下の関数を追加しました。

関数 解説
GetBaseSpace()/SetBaseSpace() ソフトキーコントロールの境界線とラベル間のスペース値を取得/設定します。
GetArrowHeight()/SetArrowHeight() 矢印の高さを取得/設定します。
GetArrowBaseLength()/SetArrowBaseLength() 矢印の底辺の長さを取得/設定します。

SFZSoftKeyControl / SFZComboBoxControl / SFZGridMenu / SFZTextMenu / SFZListBoxControl クラスがスモールフォントに対応しました。

仕様変更

ウィジェット、フレーム、コントロールにおいて活性状態やフォーカス状態が変化した時、およびボタン押下時の色計算式を変更しました。

この変更で色の明度 (0x7F より大きいかどうか) に応じてレスポンダの明暗が決定されるようになります。 SFYSingleTextWidget、SFYMultipleTextWidget、SFYPlainFrame、SFYFlatFrame、SFYBoxControl、SFYButtonControl、 及びこれらのクラスを使用する具象クラスがこのロジックで色計算されます。

SFZTextMenu の項目のデフォルト色を以下のように変更しました。

項目
項目のデフォルトの背景色 白色 : SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00)
選択している項目の背景色 青色 : SFXRGBColor(0x11, 0x22, 0xBB, 0x00)
メニュータイトルの前景色 黒色 : SFXRGBColor(0x00, 0x00, 0x00, 0x00)
メニュータイトルの背景色 灰色 : SFXRGBColor(0xDD, 0xDD, 0xDD, 0x00)
メニューのベベルカラーのライトカラー 白色 : SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00)
メニューのベベルカラーのベースカラー 薄い灰色 : SFXRGBColor(0xEE, 0xEE, 0xEE, 0x00)
メニューのベベルカラーのダークカラー色 灰色 : SFXRGBColor(0x88, 0x88, 0x88, 0x00)

SFZTabPage クラスに存在する下記の関数を廃止し、 SFZTabControl クラスに同名の関数を追加しました。 これにより、タブページのタイトルとヒントテキストのフォントはタブコントロール内で一元管理されることになりました。

関数 解説
GetFont()/SetFont() タブコントロールのタイトルとヒントテキストのフォントを取得/設定します。

SFZGridMenu の項目のデフォルト色を以下のように変更しました。

項目
項目のデフォルトの背景色 白色 : SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00)
選択している項目の背景色 白色 : SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00)
選択している項目の境界線の色 青色 : SFXRGBColor(0x11, 0x22, 0xBB, 0x00)
メニュータイトルの前景色 黒色 : SFXRGBColor(0x00, 0x00, 0x00, 0x00)
メニュータイトルの背景色 灰色 : SFXRGBColor(0xDD, 0xDD, 0xDD, 0x00)

SFZListBoxControl の項目のデフォルト色を以下のように変更しました。

項目
選択している項目の背景色 青色 : SFXRGBColor(0x11, 0x22, 0xBB, 0x00)

SFZTextMenu、SFZGridMenu の RemoveAll() 関数の名前を Clear() に変更しました。

SFZComboBoxControl クラスの GetButtonColor() / SetButtonColor() / GetOperateKey() / SetOperateKey() / GetStatePress() / SetStatePress() を廃止し、 その代わり SFYButtonControl の GetOperateKey() / SetOperateKey() / GetStatePress() / SetStatePress() を継承するように変更しました。

SFZComboBoxControl / SFZListBoxControl クラスの GetCurrentValue() / SetCurrentValue() を廃止し、 その代わり SFYControl の GetCurrentValue() / SetCurrentValue() を継承するように変更しました。

SFZComboBoxControl / SFZListBoxControl クラスの SetItemText() / GetItemText() の引数、戻り値の型を SFXAnsiString から SFXWideString に変更しました。

SFXPOP3Receiver::ReceiveAndDelete 関数を廃止し、代わりに SFXPOP3Receiver::SetAutoDelete / SFXPOP3Receiver::GetAutoDelete 関数を追加しました。

廃止関数 代替関数
SFXPOP3Receiver::ReceiveAndDelete() SFXPOP3Receiver::SetAutoDelete() / SFXPOP3Receiver::GetAutoDelete()

SFXPOP3Receiver::Receive 関数を呼び出す前に SFXPOP3Receiver::SetAutoDelete 関数で true を指定すると、受信したメールは POP3 サーバーから削除されます。 デフォルト(SFXPOP3Receiver::SetAutoDelete 関数で false を指定)では、受信したメールは POP3 サーバーから削除されません。

不具合修正

SFZDialog::ScheduleTimer 関数でメモリリークが発生する不具合を修正しました。

SFZListBoxControl クラスで実領域を設定する前に項目を追加したときに1番目の項目が正しく表示されない不具合を修正しました。

SFZSoftKeyControl クラスでスモールフォント使用時の描画に関する不具合を修正しました。

SFY/SFR/SFC 選択のラジオボタンが2つ同時に選択できてしまう AppWizard の不具合を修正しました。

下記の SFZSoftKeyControl クラスのインライン関数がリンクされない不具合を修正しました。

  1. GetStyle() 関数
  2. ContainsResponder() 関数
  3. ContainsMenuKey() 関数
  4. ContainsTextKey() 関数
  5. ContainsImageKey() 関数
  6. ContainsColorKey() 関数

SFXSMTPSender クラスで SMTP 認証するときに改行コード(CRLF)が2重に送信される不具合を修正しました。

Tutorial コード修正

cartoon_sfy / simplemailer_sfy / syncscheduler_sfy / rssreader_sfy に関して、 コーディングスタイルを全面的に見直し、書き直しました。

コンストラクタ、デストラクタ内の rerurn 文を削除しました。コールバック関連マクロの名称を SophiaFramework UNIVERSE 5.0 の新しい名称(XALLBACK_******)に変更しました。

[Tutorial フォルダに格納されているサンプルアプレットについて]
SophiaFramework UNIVERSE 6.0 で廃止予定の SFR GUI フレームワークを使って実装された cartoon / simplemailer / syncscheduler / rssreader / standardcontrol は利用せず、 その代わりに cartoon_sfy / simplemailer_sfy / syncscheduler_sfy / rssreader_sfy を利用することを推奨します。

Example コード修正

standardcontrol_sfy がタブコントロールに対応していない不具合を修正しました。

[Example フォルダに格納されているサンプルアプレットについて]
SophiaFramework UNIVERSE 6.0 で廃止予定の SFR GUI フレームワークを使って実装された rhelloworld / templateapp / standardcontrol / customwindow / standardcontrol / custombutton / tabbrowser / screensaver は利用せず、 その代わりに yhelloworld / standardcontrol_sfy / customwindow_sfy / standardcontrol_sfy / custombutton_sfy / tabbrowser_sfy / screensaver_sfy を利用することを推奨します。

仕様上の制約(次期リリースで修正予定)

不可視状態であるタブコントロールの子レスポンダにタブページを指定したとき、正常にタブコントロールにタブページが設定されません。 タブコントロールにタブページを設定するときは、状態を可視状態にしてください。

その他

SophiaFramework UNIVERSE 5.0 リファレンスを最新版にしました。コールバック関数登録用マクロやアプリケーションクラス内のグローバル変数のアクセス方法などの説明が修正されています。

SophiaFramework UNIVERSE 5.0.1 リリース ノート

新機能

フレーム機能やソフトキーコントロールなどのクラスを追加しました

クラス 解説
SFYPlainFrame プレーンフレームの抽象クラスです。
SFYFlatFrame フラットフレームの抽象クラスです。
SFYBevelFrame ベベルフレームの抽象クラスです。
SFZPlainFrame プレーンフレームです。
SFZFlatFrame フラットフレームです。
SFZBevelFrame ベベルフレームです。
SFZTitlePlainFrame タイトル付きプレーンフレームです。
SFZTitleFlatFrame タイトル付きフラットフレームです。
SFYZTitleBevelFrame タイトル付きベベルフレームです。
SFZSoftKeyControl ソフトキーコントロールです。
SFZWebBrowserControl 簡易ウェブブラウザコントロールです。
SFYTabControl タブを表すコントロールの抽象クラスです。
SFYBandControl 帯コントロールの抽象クラスです。
SFZBandScrollBarControl 帯コントロール用のスクロールバーコントロールです。
SFYScrollBarControl スクロールバーを表すコントロールの抽象クラスです。

仕様変更

下記のクラスについて、API 仕様が全面的に変更になり再実装しました。

  1. SFZTabControl
  2. SFZTabPage
  3. SFZListBoxControl
  4. SFZComboBoxControl
  5. SFZScrollBarControl
  6. SFZTextMenu
  7. SFZGridMenu

SFXHashmap で、要素数が閾値を超えて増えたときにハッシュマップのサイズが奇数値で自動的に拡張されるように修正しました。

AppWizard のデフォルト値を下記のようにしました。

項目 デフォルト値
BREW SDK のバージョン BREW SDK 4.0
GUI フレームワークの使用 使用する( SFY バージョン)

SFXRectangle クラスに以下の関数を追加しました。

関数 解説
GetCenter() 長方形の中央点の X 座標を取得します。
GetMiddle() 長方形の中央点の Y 座標を取得します。
GetCenterTop() 上辺の中央点のグリッド座標を取得します。
GetCenterBottom() 下辺の中央点のグリッド座標を取得します。
GetLeftMiddle() 左辺の中央点のグリッド座標を取得します。
GetCenterMiddle() 長方形の中央点のグリッド座標を取得します。
GetRightMiddle() 右辺の中央点のグリッド座標を取得します。
SnapCenter() 長方形の中央点の X 座標を指定した値に設定し、長方形を移動します。
SnapMiddle() 長方形の中央点の Y 座標を指定した値に設定し、長方形を移動します。
SnapCenterTop() 上辺の中央点を指定した値に設定し、長方形を移動します。
SnapCenterBottom() 下辺の中央点を指定した値に設定し、長方形を移動します。
SnapLeftMiddle() 左辺の中央点を指定した値に設定し、長方形を移動します。
SnapRightMiddle() 左辺の中央点を指定した値に設定し、長方形を移動します。
SnapCenterMiddle() 長方形の中央点を指定した値に設定し、長方形を移動します。

不具合修正

SFXHashmap で、ハッシュ値が衝突した要素を削除したときに発生する不具合を修正しました。

サンプルコードなど

チュートリアルアプレットにフレーム機能とソフトキーコントロールを搭載しました。

タブブラウザを SFY フレームワークを使用して再実装しました。

BREW プログラミング入門のサンプルコードを SophiaFramework UNIVERSE 5.0 を使用して再実装しました。

リファレンスアップグレード

下記の章について内容を中心にリファレンスの内容を充実化しました。 ラッパークラスの作成方法についてもリファレンスに記載しました。

  1. 第3章 SFY GUI フレームワークを使う開発(新レスポンダシステム)
  2. 第9章 SFY レスポンダシステム(新レスポンダシステム)
  3. 第20章2節 ラッパークラスの作成方法
  4. SFYResponder と SFYApplication、および新規クラスのクラスリファレンス

既知の不具合(未修正)

SFZDialog::ScheduleTimer 関数にメモリリークの不具合があることが確認されています。この不具合は次のリリースで修正される予定です。

SophiaFramework UNIVERSE 5.0.0 リリース ノート

新機能

BREW 4.0 に対応しました。

GUI フレームワークを構成するレスポンダの設計が見直され、新しく新レスポンダ システムが搭載されました。高性能なコンポーネントの搭載、処理の最適化、仕様の明確化などが行われ、より分かりやすく記述しやすい GUI フレームワークとなりました。

クラス 解説
SFYApplication レスポンダ システムを利用するときのアプリケーション クラスの雛型です。
SFYResponder レスポンダを表す抽象クラスです。
SFZRoot ウィンドウ、ダイアログやメニューなどを配置する汎用ルートです。
SFZContainer コントロールやコンテナなどを配置する汎用コンテナです。
SFYContainer コンテナを表す抽象クラスです。
SFZWindow コントロールやコンテナなどを配置する汎用ウィンドウです。
SFZDialog コントロールやコンテナなどを配置する汎用ダイアログです。
SFZMessageDialog 通知メッセージを表示するダイアログです。
SFZQuestionDialog 選択メッセージを表示するダイアログです。
SFZTextMenu テキスト メニューです。
SFZGridMenu グリッド メニューです。
SFYMenu メニューを表す抽象クラスです。
SFZSingleTextLabelControl 単一行の編集不可能なテキストを表示するラベル コントロールです。
SFZSingleEditLabelControl 単一行の編集可能なテキストを表示するラベル コントロールです。
SFZMultipleTextLabelControl 複数行の編集不可能なテキストを表示するラベル コントロールです。
SFZMultipleEditLabelControl 複数行の編集可能なテキストを表示するラベル コントロールです。
SFZImageLabelControl イメージを表示するラベル コントロールです。
SFZSingleTextBoxControl 単一行の編集不可能なテキストを表示するボックス コントロールです。
SFZSingleEditBoxControl 単一行の編集可能なテキストを表示するボックス コントロールです。
SFZMultipleTextBoxControl 複数行の編集不可能なテキストを表示するボックス コントロールです。
SFZMultipleEditBoxControl 複数行の編集可能なテキストを表示するボックス コントロールです。
SFZImageBoxControl イメージを表示するボックス コントロールです。
SFZTextButtonControl テキストを表示するボタン コントロールです。
SFZImageButtonControl イメージを表示するボタン コントロールです。
SFZCheckboxControl チェックボックス コントロールです。
SFZRadiobuttonControl ラジオボタン コントロールです。
SFZComboBoxControl コンボボックス コントロールです。
SFZListBoxControl リストボックス コントロールです。
SFZTabControl タブ コントロールです。
SFZTabPage タブ ページです。
SFZScrollBarControl スクロールバー コントロールです。
SFYControl コントロールを表す抽象クラスです。
SFYLabelControl ラベル コントロールを表す抽象クラスです。
SFYBoxControl ボックス コントロールを表す抽象クラスです。
SFYButtonControl ボタン コントロールを表す抽象クラスです。
SFYCheckboxControl チェックボックス コントロールを表す抽象クラスです。
SFYRadiobuttonControl ラジオボタン コントロールを表す抽象クラスです。
SFYSingleTextWidget 単一行の編集不可能なテキストを表示するウィジェットです。
SFYSingleEditWidget 単一行の編集可能なテキストを表示するウィジェットです。
SFYMultipleTextWidget 複数行の編集不可能なテキストを表示するウィジェットです。
SFYMultipleEditWidget 複数行の編集可能なテキストを表示するウィジェットです。
SFYImageWidget イメージを表示するウィジェットです。
SFYWidget ウィジェットを表す抽象クラスです。
SFYFrame フレームを表す抽象クラスです。
SFYTracer トレーサの機能を提供します。
SFYHandler ハンドラの機能を提供します。
SFYDistributer 配信エンジンの機能を提供します。
SFYRenderer 描画エンジンの機能を提供します。
旧レスポンダ 代替新レスポンダ
SFRResponder SFYResponder
SFRToolbox 廃止
SFRApplication SFYApplication
SFRWindow SFZWindow
SFRPlainWindow SFZWindow
SFRFrameWindow 今後のバージョンアップでサポート予定
SFRTitleWindow 今後のバージョンアップでサポート予定
SFRDialog SFZDialog
SFRPlainDialog SFZDialog
SFRFrameDialog 今後のバージョンアップでサポート予定
SFRTitleDialog 今後のバージョンアップでサポート予定
SFRMessageDialog SFZMessageDialog
SFRMultiDialog SFZQuestionDialog
SFRMenu SFYMenu
SFRPlainMenu SFYMenu
SFRFrameMenu 今後のバージョンアップでサポート予定
SFRTitleMenu 今後のバージョンアップでサポート予定
SFRTextMenu SFZTextMenu
SFRPane SFYContainer
SFRPlainPane SFZContainer
SFRTabPane SFZTabPage
SFRControl SFYControl
SFRLabelBase SFYLabelControl
SFRLabelControl SFZMultipleTextLabelControl
SFRButtonBase SFYButtonControl
SFRButtonControl SFZTextButtonControl
SFRComboboxControl SFZComboBoxControl
SFRCheckboxBase SFYCheckboxControl
SFRCheckboxControl SFZCheckboxControl
SFRRadiobuttonBase SFYRadiobuttonControl
SFRRadiobuttonControl SFZRadiobuttonControl
SFREditboxControl SFZMultipleEditBoxControl
SFRTabControl SFZTabControl
SFRBrowserControl 廃止(SFBHTMLViewer クラスを直接利用して代用)
SFRFrame SFYFrame
SFRPlainFrame 廃止
SFRFrameFrame 今後のバージョンアップでサポート予定
SFRTitleFrame 今後のバージョンアップでサポート予定

ネイピア数を表す FLOAT64_E マクロを追加しました。

コンパイラのバージョンを表す TARGET_COMPILER_VERSION マクロを追加しました。

全ラッパー クラスの NewInstance() 関数で明示的にクラス ID を指定できるようになりました。

各ラッパー クラスの NewInstance() 関数でエラー値を取得できるようになりました。

新レスポンダ システムのスマート ポインタを提供するための SFXResponderPointer クラスを追加しました。

新レスポンダ システムでハンドラ登録時のイベントを指定するための SFXEventRange クラスを追加しました。

ネイティブ テキスト入力を簡単に扱うための SFXEditor クラスを追加しました。

SFCApplication クラスに以下の関数を追加しました。

関数 解説
RegisterBypass() イベントを優先的に処理するためのコールバックを登録します。
UnregisterBypass() イベントを優先的に処理するためのコールバックを登録解除します。
IsRenderable() 画面の描画が可能かどうかを判定します。
HandleEvent() イベントの処理が必要なときに呼び出される仮想関数です。
HandleRender() 全画面の再描画が必要なときに呼び出される仮想関数です。
HandleError() 致命的なエラーが発生した場合に呼び出される仮想関数です。

XALLBACK_DECLARE_SFCAPPLICATION / XALLBACK_IMPLEMENT_SFCAPPLICATION マクロを追加しました。

SFXShiftJIS クラスに以下の関数を追加しました。

関数 解説
IsPassword() パスワード入力時に使用する伏字かどうかを判定します。
ToPassword() パスワード入力時に使用する伏字に変換します。

SFXBuffer クラスに以下の関数を追加しました。

関数 解説
Attach(SFXBufferPtr buffer) 別の SFXBuffer クラスが管理しているデータを委譲します。
Detach(SFXBufferPtr buffer) 別の SFXBuffer クラスに管理しているデータを譲渡します。

SFXAnsiString クラスに以下の関数を追加しました。

関数 解説
Attach(SFXAnsiStringPtr string) 別の SFXAnsiString クラスが管理しているデータを委譲します。
Detach(SFXAnsiStringPtr string) 別の SFXAnsiString クラスに管理しているデータを譲渡します。

SFXWideString クラスに以下の関数を追加しました。

関数 解説
Attach(SFXWideStringPtr string) 別の SFXWideString クラスが管理しているデータを委譲します。
Detach(SFXWideStringPtr string) 別の SFXWideString クラスに管理しているデータを譲渡します。

SFXGraphics クラスに以下の関数を追加しました。

関数 解説
MeasureMultipleText() 複数行文字列を描画した際の大きさを計算します。
DrawMultipleTextLeft() 複数行文字列を左揃えで描画します。
DrawMultipleTextCenter() 複数行文字列を中央揃えで描画します。
DrawMultipleTextRight() 複数行文字列を右揃えで描画します。

SFXFile クラスに GetSFBFileMgr() 関数を追加しました。

関数 解説
GetSFBFileMgr() 内部に保持しているファイル マネージャ インターフェースを取得します。

SFXTCPSocket クラス、SFXSSLSocket クラス、SFXUDPSocket クラスに GetSFBNetMgr() 関数を追加しました。

関数 解説
GetSFBNetMgr() 内部で管理するネット マネージャ インターフェースを取得します。

仕様変更

πを表すマクロの名称を変更しました。

旧名称 新名称
PI FLOAT64_PI

SFCApplication クラスの Invoke() 関数を廃止しました(互換性維持のためバージョン 6.0 までは利用可能)。 これからは HandleEvent() 関数を使用してください。

廃止関数 代替関数
SFCApplication::Invoke() SFCApplication::HandleEvent()

SFXArray クラス、SFXList クラス、SFXStack クラスの Append() 関数を廃止しました(互換性維持のためバージョン 6.0 までは利用可能)。 これからは InsertLast() 関数を使用してください。

廃止関数 代替関数
SFXArray::Append() SFXArray::InsertLast()
SFXList::Append() SFXList::InsertLast()
SFXStack::Append() SFXStack::InsertLast()

SFXBuffer クラスの以下の関数の名称を変更しました(互換性維持のためバージョン 6.0 までは利用可能)。 これからは新しい名称の関数を使用してください。

旧名称 新名称
AttachSFXAnsiString(SFXAnsiStringPtr string) Attach(SFXAnsiStringPtr string)
DetachSFXAnsiString(SFXAnsiStringPtr string) Detach(SFXAnsiStringPtr string)
AttachSFXWideString(SFXWideStringPtr string) Attach(SFXWideStringPtr string)
DetachSFXWideString(SFXWideStringPtr string) Detach(SFXWideStringPtr string)

SFXAnsiString クラスの以下の関数の名称を変更しました(互換性維持のためバージョン 6.0 までは利用可能)。 これからは新しい名称の関数を使用してください。

旧名称 新名称
AttachSFXBuffer(SFXBufferPtr buffer) Attach(SFXBufferPtr buffer)
DetachSFXBuffer(SFXBufferPtr buffer) Detach(SFXBufferPtr buffer)

SFXWideString クラスの以下の関数の名称を変更しました(互換性維持のためバージョン 6.0 までは利用可能)。 これからは新しい名称の関数を使用してください。

旧名称 新名称
AttachSFXBuffer(SFXBufferPtr buffer) Attach(SFXBufferPtr buffer)
DetachSFXBuffer(SFXBufferPtr buffer) Detach(SFXBufferPtr buffer)

SFXGraphics クラスの以下の関数の名称を変更しました(互換性維持のためバージョン 6.0 までは利用可能)。 これからは新しい名称の関数を使用してください。

旧名称 新名称
MeasureText() MeasureSingleText()
DrawText() DrawSingleText()
DrawBevelHorizontal() DrawBevelCenter()
DrawBevelVertical() DrawBevelMiddle()
FillBevelHorizontal() FillBevelCenter()
FillBevelVertical() FillBevelMiddle()

SFXGraphics クラスの以下の関数を廃止しました(互換性維持のためバージョン 6.0 までは利用可能)。 これからは代替の関数を使用してください。

廃止関数 代替関数
MeasureString() MeasureMultipleText()
DrawString() DrawMultipleTextLeft(), DrawMultipleTextCenter(), DrawMultipleTextRight()

SFXGraphics::DrawImage() 関数がエラー値を返すようになりました。

旧宣言 新宣言
Void DrawImage(SFBImageSmpConstRef image, SFXGridConstRef grid) SFCError DrawImage(SFBImageSmpConstRef image, SFXGridConstRef grid)
Void DrawImage(SFBImageSmpConstRef image, SFXGridConstRef grid, AEERasterOp raster) SFCError DrawImage(SFBImageSmpConstRef image, SFXGridConstRef grid, AEERasterOp raster)

SFXTCPSocket クラス、SFXSSLSocket クラス、SFXUDPSocket クラスの Open() 関数にリンガー時間を設定できるようになりました。

旧宣言 新宣言
SFCError Open(Void) SFCError Open(SInt32 linger = -1)

以下のマクロの名称を変更しました(互換性維持のためバージョン 6.0 までは利用可能)。

旧名称 新名称
CALLBACK_ENTRY XALLBACK_FUNCTION
CALLBACK_NULL XALLBACK_NULL
CALLBACK_FUNCTION XALLBACK_INTERNAL
CALLBACK_EXTENDED XALLBACK_EXTERNAL
CALLBACK_DECLARE_* (* はクラス名) XALLBACK_DECLARE_* (* はクラス名)
CALLBACK_IMPLEMENT_* (* はクラス名) XALLBACK_IMPLEMENT_* (* はクラス名)

不具合修正

'〜' と '−' の文字を UTF8 から ShiftJIS に正しく変換できない SFXTextEncoding::UTF8ToShiftJIS() 関数の不具合を修正しました。

SophiaFramework 4.1.7 リリース ノート

新機能

BREW 4.0 新規プロジェクトが作成可能になりました。BREW 4.0 API 用 C++ ラッパーは次回リリース時に提供される予定です。

AtomRec 構造体に関する型変換演算子 atomic_cast を追加しました。

仕様変更

SophiaFramework のヘッダ ファイルとライブラリ ファイルのパスを環境変数を利用して明示的に指定するようにアプリウィザードを改良しました。

SophiaFramework のインストール パスを絶対パスではなく環境変数から取得するように SophiaFramework に付属するアドインを改良しました。

SFXXMLNode::SetNodeValue() / SFXXMLAttribute::SetNodeValue() / SFXXMLEntity::SetNodeValue() 関数の引数の型を変更しました。

その他

リファレンス

リファレンス II 部、III部、IV 部の解説を追加・改善しました。

主な追加項目 :

クラス名 解説
SFRPlainMenu タイトルやフレームのないメニューを表すレスポンダ
SFRFrameMenu フレーム付きのメニューを表すレスポンダ
SFRTitleMenu タイトル付きのメニューを表すレスポンダ
SFRPlainFrame 枠やタイトルのない単純なフレームの機能を提供するクラス
SFRFrameFrame 単純な枠のあるフレームの機能を提供するクラス
SFRTitleFrame タイトルのあるフレームの機能を提供するクラス
関数名 解説
inet_pton() 文字列を与えられたアドレス ファミリに応じたアドレス構造体に変換します。
inet_ntop() アドレス構造体を与えられたアドレス ファミリに応じた文字列に変換します。
getalscontext() 現在実行中のアプレットのアプリケーション ローカル ストレージ コンテキストを取得します。

主な改善項目 :

詳細情報 : SophiaFramework リファレンス

チュートリアル

BREW 4.0 対応に伴い、スケジューラー のサンプル コードを変更しました。

サンプル アプリ

BREW 4.0 対応に伴い、サンプル アプリのクラス名のプリフィックスを変更しました。

BREW 4.0 対応に伴い、ScreenSaverTemplateApp のサンプル コードを変更しました。

不具合修正

関数宣言に関する不具合を修正しました。

static SFCError SFBGetLine::EOLSize(SInt32 code) static SInt32 SFBGetLine::EOLSize(SInt32 code)
SFCError SFBGetLine::GetLine(GetLine* line, SInt32 type) SInt32 SFBGetLine::GetLine(::GetLine* line, SInt32 type)
SFCError SFBSocket::DbgMark(ACharConstPtr file, UInt32 line) Void SFBSocket::DbgMark(ACharConstPtr file, UInt32 line)
SFCError SFBRscPool::ReleaseRsc(SFBBaseSmpConstRef resource) UInt32 SFBRscPool::ReleaseRsc(SFBBaseSmpConstRef resource)
SFCError SFBQoSList::Find(SFBQuerySmpConstRef query) SInt32 SFBQoSList::Find(SFBQuerySmpConstRef query)
SFCError SFXSMTP::SetSSLMode(Bool isSSL) Void SFXSMTP::SetSSLMode(Bool isSSL)
SFCError SFXSMTPSender::SetSSLMode(Bool isSSL) Void SFXSMTPSender::SetSSLMode(Bool isSSL)
SFCError SFXSMTPSender::SetTrustMode(UInt32 sslTrustMode) Void SFXSMTPSender::SetTrustMode(UInt32 sslTrustMode)
SFCError SFXPOP3::SetSSLMode(Bool isSSL) Void SFXPOP3::SetSSLMode(Bool isSSL)
SFCError SFXPOP3Receiver::SetSSLMode(Bool isSSL) Void SFXPOP3Receiver::SetSSLMode(Bool isSSL)
SFCError SFXPOP3Receiver::SetTrustMode(UInt32 sslTrustMode) Void SFXPOP3Receiver::SetTrustMode(UInt32 sslTrustMode)

SophiaFramework 4.1.6 リリース ノート

その他

リファレンス

リファレンス II 部、III部、IV 部の解説を追加・改善しました。

主な追加項目 :

主な改善項目 :

詳細情報 : SophiaFramework リファレンス

チュートリアル

RssReader サンプル コードを修正しました。

SophiaFramework 4.1.5 リリース ノート

仕様変更

イベントを表す定数 SFEVT_APPLICATION_CLASS_BEGINSFEVT_APPLET_CLASS_BEGIN に変更しました。

イベントを表す定数 SFEVT_APPLICATION_CLASS_ENDSFEVT_APPLET_CLASS_END に変更しました。

SFCApplication::Invoke() 関数のアクセス指定子を public から protected へ変更しました。

SFCErrorEnum のエラー コードを更新しました。

その他

リファレンス

リファレンス II 部、III部、IV 部の解説を追加・改善しました。

主な追加項目 :

主な改善項目 :

詳細情報 : SophiaFramework リファレンス

SophiaFramework 4.1.4 リリース ノート

その他

リファレンス

リファレンス III部の解説を追加・改善しました。

主な追加項目 :

主な改善項目 :

詳細情報 : SophiaFramework リファレンス

不具合修正

SFXSOAPRPC::Invoke() 関数に関して、大きなデータを受信できない不具合を修正しました。

SophiaFramework 4.1.3 リリース ノート

その他

リファレンス

リファレンス II 部、III部、IV 部、V 部の解説を追加・改善しました。

主な追加項目 :

主な改善項目 :

詳細情報 : SophiaFramework リファレンス

最新の BREW 日本拡張パッケージに対応しました。 ( 2007 年 05 月 15 日 現在 )

SophiaFramework 4.1.2 リリース ノート

その他

リファレンス

リファレンスの I 部、II 部、III部、 IV 部、VI 部の解説を追加・改善しました。

主な追加項目 :

主な改善項目 :

詳細情報 : SophiaFramework リファレンス

サンプル コード

SFXXMLExplainer サンプル コードのコメントを修正しました。

SophiaFramework 4.1.1 リリース ノート

新機能

SFXMail パッケージのクラスに SSL 機能を追加しました。

SFXSMTP クラス、SFXSMTPSender クラス、SFXPOP3 クラス、SFXPOP3Receiver クラスに以下の関数を追加しました。

関数 解説
SetSSLMode() SSL 機能の有効 / 無効の設定
GetSSLMode() SSL 機能の有効 / 無効の取得
SetTrustMode() 証明書の検証モードの設定
GetTrustMode() 証明書の検証モードの取得

SFXArray クラス、SFXList クラス、SFXStack クラスに以下の関数を追加しました。

関数 解説
SetFirst() 最初の要素の設定
SetLast() 最後の要素の設定

最新の BREW 日本拡張パッケージに対応しました。 ( 2007 年 03 月 20 日 現在 )

仕様変更

SFXTextEncoding クラスのスタック使用量を削減しました。

SFXEvent クラスのイベントタイプ型を SFCEventEnum 型から AEEEvent 型へ変更しました。

ユーザ定義イベントを設定するときに SFCEventEnum 型へキャストしなくてもよくなりました。

SFXConfig::Move() 関数を廃止しました。

HANDLER_DECLARE_BOOLRENDER / HANDLER_IMPLEMENT_BOOLRENDER マクロを廃止しました。

代替マクロとして HANDLER_DECLARE_VOIDRENDER / HANDLER_IMPLEMENT_VOIDRENDER マクロが利用可能です。

アプリウィザード使用時にデフォルトで KDDI 拡張インターフェースを使用しないように変更しました。

SophiaFramework 4.1.0 リリース ノート

新機能

SFXHashmap クラスの設計を改良し、キーイテレータと値イテレータを追加しました。

以下のイテレータクラスが追加されました。

クラス 解説
SFXHashmap::KeyIterator キーイテレータ
SFXHashmap::KeyEnumerator キーイテレータ(列挙のみ)
SFXHashmap::ValueIterator 値イテレータ
SFXHashmap::ValueEnumerator 値イテレータ(列挙のみ)

以下の関数が SFXHashmap クラスに追加されました。

関数 解説
GetKeyIterator() キーイテレータの取得
GetKeyEnumerator() キーイテレータ(列挙のみ)の取得
GetValueIterator() 値イテレータの取得
GetValueEnumerator() 値イテレータ(列挙のみ)の取得

SFXHashmap クラスの改良に伴い、文字列キーを用いる場合の文字列のコピー回数の半減、内部エラー発生時の状態保存への対応も行われました。

SFXList クラスと SFXHashmap クラスに EmptyInstace() 関数を追加しました。

SFXArray クラス、SFXList クラス、SFXStack クラスに以下の関数を追加しました。

関数 解説
GetFirstIterator() 最初の要素に対するイテレータの取得
GetLastIterator() 最後の要素に対するイテレータの取得
GetFirstEnumerator() 最初の要素に対するイテレータ(列挙のみ)の取得
GetLastEnumerator() 最後の要素に対するイテレータ(列挙のみ)の取得

Microsoft Visual C++ 6.0, Microsoft Visual C++ .NET 2003 用のデバッガ定義ファイル (autoexp.dat) に最新のクラス定義を追加しました。

デバッガを使用し変数トレースを行うときに SophiaFramework のクラスを解析しやすくなります。

テンプレートクラスのコンパイル時に型が条件に適うことを審査する SFMCONCEPT マクロを追加しました。

仕様変更

すべてのクラスにおいて IndexOf() 関数を FirstIndexOf() 関数に変更しました。

SFXArray クラス、SFXList クラス、SFXStack クラスの以下の関数のデフォルト引数を廃止しました。

旧宣言 新宣言
GetIterator(SInt32 index = SINT32_MINIMUM) GetIterator(SInt32 index)
GetEnumerator(SInt32 index = SINT32_MINIMUM) GetEnumerator(SInt32 index)

引数を省略した関数呼び出しは、新しく追加された GetFirstIterator() 関数や GetFirstEnumerator() 関数に置換できます。

一部のテンプレートクラスでテンプレート引数に const 型を指定できないように仕様を変更しました。

影響を受けるクラスは SFXBrewPointer, SFXHeap, SFXClusterHeap, SFXArray, SFXHashmap, SFXList, SFXStack です。

SophiaFramework 2.x, SophiaFramework 3.x, SophiaFramework 4.0.x に関連する非推奨クラスと API を廃止しました。

SFXConfig::GetEntry() 関数を廃止しました。

SFRResponder クラスの以下の未使用 API と定数を廃止しました。

GetAppearanceShadow(), GetAppearanceFloating(), APPEARANCE_SHADOW, APPEARANCE_FLOATING

不具合修正

キーの要素が重複する SFXHashmap::Merge() 関数の不具合を修正しました。

W43SA 上でネイティブテキスト入力画面への移行時に端末がフリーズする SFREditboxControl クラスの不具合を修正しました。

コンボボックスメニューの表示中に SFRComboboxControl クラスのインスタンスを解放するとフリーズする、SFRComboboxControl クラスの不具合を修正しました。

SophiaFramework 4.0.4 リリース ノート

新機能

テキスト入力コントロールとして SFREditboxControl クラスを追加しました。

※ BREW 日本拡張パッケージの機能拡張を利用したり、色設定を変更できます。

SFXAnsiString クラスと SFXWideString クラスに以下の関数を追加しました。

関数 解説
TrimLeft() 文字列の先頭のトリム
TrimRight() 文字列の終端のトリム

SFXAnsiString クラスと SFXWideString クラスの以下の関数に sensitive 引数を追加しました。

IndexOf(), LastIndexOf(), StartsWith(), EndsWith(), Replace(), Trim()

※ sensitive 引数に false を設定すると、大文字と小文字の区別を行いません。

SFXBuffer クラスに以下の関数を追加しました。

関数 解説
SFXBuffer(Byte byte) バイト値によるクラス作成
operator+=(Byte byte) バイト値の追加
Set(Byte byte) バイト値の設定
Add(Byte byte) バイト値の追加
IndexOf() 先頭から検索してバイナリ列が一致するインデックス
LastIndexOf() 終端から検索してバイナリ列が一致するインデックス
StartsWith() 先頭のバイナリ列が一致するかの検査
EndsWith() 終端のバイナリ列が一致するかの検査
Insert(UInt32 index, Byte byte) バイト値の挿入

最新の BREW 日本拡張パッケージに対応しました。( 2006 年 12 月 15 日 現在 )

仕様変更

GETAPPINSTANCE() 関数を使用する BREW エクステンションも利用可能になりました。

※ SophiaFramework から GETAPPINSTANCE() 関数を使用する BREW エクステンションを呼び出すための変換コードが不要になりました。 ( 例 : 一部の KDDI 社提供の BREW エクステンション )

IndexOf() 関数と LastIndexOf() 関数のデフォルト引数の値を変更しました。

旧宣言 新宣言
IndexOf(..., SInt32 index = -1) IndexOf(..., SInt32 index = SINT32_MINIMUM)
LastIndexOf(..., SInt32 index = -1) LastIndexOf(..., SInt32 index = SINT32_MAXIMUM)

LastIndexOf() 関数の定義を JAVA API と一致するように変更しました。

※ index 引数が 0 未満の場合は -1 を返します。

SFXBuffer::Slice() 関数の定義を変更しました。

廃止関数 代替関数
SFXBuffer Slice(UInt32 begin, UInt32 end) const Void Slice(UInt32 begin, UInt32 end)

Slice() 関数は値を返していましたが、変更後は自分自身に作用します。

SFRBrewControl クラスとSFRBrewTextControl クラスを廃止しました。

SFREditboxControl クラスは、廃止された SFRBrewTextControl クラスの機能を引き継ぎます。

SFRBrewTextControl クラスに関する以下の名称は SFREditboxControl クラスの別名として利用できます。

SFRBrewTextControl, TYPE_SFRBREWTEXTCONTROL, ATTRIBUTE_SFRBREWTEXTCONTROL, BEHAIVOR_SFRBREWTEXTCONTROL

アプリ起動時に発生したエラー処理を BREW ネイティブに近くなるように変更しました。

すべてのサンプルコードに関して、BREW 日本拡張パッケージを使わないように変更しました。

不具合修正

メモリ確保に失敗したときにフリーズする SFXTextEncoding クラスの不具合を修正しました。

E02SA 上でテキスト入力画面を表示中にサスペンドした時に発生する、SFRBrewTextControl クラスの不具合を修正しました。

SFREditboxControl クラスとして採用されています。

携帯端末上で SMTP コマンドが無くなる SFXSMTP::SendCommand() 関数の不具合を修正しました。

本文の無いメッセージの解析に失敗する SFXMailMessage::Parse() 関数の不具合を修正しました。

SetDestination() 関数と ResetDestination() 関数の利用時にトランスレート値とクリッピング領域の情報が失なわれる SFXGraphics クラスの不具合を修正しました。

SophiaFramework 4.0.3 リリースノート

新機能

テキストエンコーディングを相互変換する SFXTextEncoding クラスを追加しました。

UTF-8, UTF-16, UTF-32, EUC-JP, EUC-CN, Shift_JIS のエンコーディングとそれらのエンコーディング変換に対応しています。

リングバッファサイズを意識せずに読み書きできるようにストリームを機能拡張しました.

※ リングバッファサイズを指定せずにストリームを取得すると、リングバッファは自動的に管理されます。

この変更に伴い SFXStorage パッケージの全ストレージクラスに対して GetStreamWriter() 関数と GetStreamReader() 関数のオーバーロード関数が追加されました。

SFXStreamWriter 系クラスと SFXStreamReader 系クラスに以下の関数を追加しました。

関数 解説
SetTrigger() サイズやバイナリ一致など、コールバック条件の設定
ResetTrigger() コールバック条件のリセット
Triggers() 設定された条件によりコールバックされたかの判定

SFXStreamWriter 系クラスと SFXStreamReader 系クラスのエラー処理を強化しました。

初期化する前や初期化に失敗した時、ストリームの操作をしてもフリーズしなくなりました。

SFXOutputStream インターフェースクラスと SFXInputStream インターフェースクラスの抽象クラスとして SFXStream インターフェースクラスを追加しました。

コールバック関数を記述する場合に使用するコールバックマクロを追加しました。

宣言マクロ 実装マクロ
CALLBACK_DECLARE_SFXSTREAM CALLBACK_IMPLEMENT_SFXSTREAM
CALLBACK_DECLARE_ SFXELASTICSTREAMWRITER CALLBACK_IMPLEMENT_ SFXELASTICSTREAMWRITER
CALLBACK_DECLARE_ SFXELASTICSTREAMREADER CALLBACK_IMPLEMENT_ SFXELASTICSTREAMREADER

最新の BREW 日本拡張パッケージに対応しました。( 2006 年 11 月 10 日 現在 )

仕様変更

SFXStreamWriter 系クラスの Flush() 関数の下記のオーバーロード関数を廃止し、SetTrigger() 関数に委譲しました。

廃止関数 代替関数
Flush(UInt32 size) SetTrigger(UInt32 size) + Flush(Void)
Flush(SFXBufferConstRef buffer) SetTrigger(SFXBufferConstRef buffer) + Flush(Void)
Flush(VoidConstPtr buffer, UInt32 size) SetTrigger(VoidConstPtr buffer, UInt32 size) + Flush(Void)
Flush(UInt32 size, CallbackSPP spp, VoidPtr reference) SetTrigger(UInt32 size) + Flush(CallbackSPP spp, VoidPtr reference)
Flush(SFXBufferConstRef buffer, CallbackSPP spp, VoidPtr reference) SetTrigger(SFXBufferConstRef buffer) + Flush(CallbackSPP spp, VoidPtr reference)
Flush(VoidConstPtr buffer, UInt32 size, CallbackSPP spp, VoidPtr reference) SetTrigger(VoidConstPtr buffer, UInt32 size) + Flush(CallbackSPP spp, VoidPtr reference)

SFXStreamReader 系クラスの Fetch() 関数の下記のオーバーロード関数を廃止し、SetTrigger() 関数に委譲しました。

廃止関数 代替関数
Fetch(UInt32 size) SetTrigger(UInt32 size) + Fetch(Void)
Fetch(SFXBufferConstRef buffer) SetTrigger(SFXBufferConstRef buffer) + Fetch(Void)
Fetch(VoidConstPtr buffer, UInt32 size) SetTrigger(VoidConstPtr buffer, UInt32 size) + Fetch(Void)
Fetch(UInt32 size, CallbackSPP spp, VoidPtr reference) SetTrigger(UInt32 size) + Fetch(CallbackSPP spp, VoidPtr reference)
Fetch(SFXBufferConstRef buffer, CallbackSPP spp, VoidPtr reference) SetTrigger(SFXBufferConstRef buffer) + Fetch(CallbackSPP spp, VoidPtr reference)
Fetch(VoidConstPtr buffer, UInt32 size, CallbackSPP spp, VoidPtr reference) SetTrigger(VoidConstPtr buffer, UInt32 size) + Fetch(CallbackSPP spp, VoidPtr reference)

SFXStreamWriter 系クラスと SFXStreamReader 系クラスの IsValid() 関数を廃止しました。

不具合修正

W42SA 上で正常にディレクトリが削除されないことがある SFXDirectory::Remove() 関数の不具合を修正しました。

W42SA 上でファイル終端時に EFILENOEXISTS エラーが返される SFXStreamReader 系クラスの不具合を修正しました。

SophiaFramework 4.0.2 リリースノート

新機能

SOAP-RPC プロトコルを扱うクラス ( SFXSOAPRPC ) と WSDL を利用してプロキシを作成し、ダイナミックバイディングを行うクラス ( SFXSOAPServiceProxy ) が HTTPS に対応しました。

BREW SDK インターフェイスを C++ のクラスでラップする SFBWrapper パッケージのいくつかのクラスで SFBAStreamSmp クラス( IAStream インターフェースのラッパークラス ) や SFBSourceSmp クラス( ISource インターフェイスのラッパークラス ) を引数に取る関数に対して、ストレージを表す抽象クラス( SFXStorage ) を引数に取るオーバーロード関数を追加しました。

新しいファイルパスを自動的に生成する GetUniquePath() 関数を SFXDirectory クラスと SFXFile クラスに追加しました。

SFBImage クラスと SFBViewer クラスに NewInstance() 関数を追加しました。

SFXHTTPConnection クラスを利用する SFXProtocolExplainer サンプルコードを追加しました。

BREW 開発ツール Camulator が BREW 3.1 に対応しました。

最新の BREW 日本拡張パッケージに対応しました。( 2006 年 10 月 6 日 現在 )

仕様変更

SFXDirectory クラスと SFXFile クラスの GetTemporaryPath() 関数から prefix と suffix パラメータを削除しました。

prefix と suffix パラメータを明示的に指定する必要がある場合は、GetUniquePath() 関数を利用してください。

レスポンダの以下のマクロ名を新しい規則に変更しました。

旧名称も互換性維持のため利用できます。

旧名称 新名称
TYPE_コンポーネント名(例:TYPE_BUTTONCONTROL) TYPE_クラス名(例:TYPE_SFRBUTTONCONTROL)
ATTRIBUTE_コンポーネント名 ATTRIBUTE_クラス名
BEHAVIOR_コンポーネント名 BEHAVIOR_クラス名

不具合修正

SFXStorage パッケージの全てのクラスで、内部の初期化不良により読み書きできなくなることがある不具合を修正しました。

SFXXML パッケージの幾つかのクラスで、メモリ解放忘れが発生することがある不具合を修正しました。

存在しないファイルパスを設定した場合にエラー値を取得できない、SFXXMLDOMParser クラスの不具合を修正しました。

"/./././" や "a/b/c///../../" などのパスが正常に正規化されない SFXPath::Normalize() 関数の不具合を修正しました。

特定の条件下で不正な描画が行われる SFXGraphics::DrawString() 関数の不具合を修正しました。

SFXXMLExplainer サンプルコードが W31T 上でフリーズする不具合を修正しました。

ステップの途中で操作を完了すると不正なソースコードが出力される、Microsoft Visual C++ 6.0 用アプリウィザードの不具合を修正しました。

SophiaFramework 4.0.1 リリースノート

新機能

SSL 通信を実現する SFXSSLSocket クラスを追加しました。

SFXTCPSocket クラスとほぼ同じ方法で SSL 通信を記述できます。

SFBUnzipAStream クラスをラップした SFXZIPDecoder クラスを追加しました。

ZIP 形式のデータを SFXStreamReader 系クラスを利用して効率良く解凍できます。

SFBSource クラスを設定 / 取得するための関数を SFXHTTPConnection クラスに追加しました。

関数 解説
SetRequestContent() 送信データを管理する SFBSource クラスの設定
GetRequestContent() 送信データを管理する SFBSource クラスの取得
GetResponseContent() 受信データを管理する SFBSource クラスの取得

コールバック関数を記述するためのコールバックマクロを追加しました。

宣言マクロ 実装マクロ
CALLBACK_DECLARE_SFXSSLSOCKET CALLBACK_IMPLEMENT_SFXSSLSOCKET
CALLBACK_DECLARE_SFXZIPDECODER CALLBACK_IMPLEMENT_SFXZIPDECODER

XML パーサや WSDL を使う SFXXMLExplainer サンプルコードを追加しました。

NTP(Network Time Protocol) を使う NetworkTime サンプルコードを追加しました。

仕様変更

SFXPath::SetName() 関数や SFXPath::SetExtension() 関数などでディレクトリパスに対する挙動を変更しました。

変更後はディレクトリパスもファイルパスと同等に扱われるようになりました。

SFXStorage パッケージに含まれるクラスを利用した場合のコンパイル後のコードを削減しました。

GUI フレームワークを利用する場合に使用するいくつかのハンドラマクロを削除しました。

以下のハンドラマクロは、最新の最適化規約と競合するため削除されました。

これらのかわりに、HANDLER_DECLARE_VOIDEVENT / HANDLER_IMPLEMENT_VOIDEVENT などのマクロを使用してください。

宣言マクロ 実装マクロ
HANDLER_DECLARE_VOIDPARAMZERO HANDLER_IMPLEMENT_VOIDPARAMZERO
HANDLER_DECLARE_BOOLPARAMZERO HANDLER_IMPLEMENT_BOOLPARAMZERO
HANDLER_DECLARE_VOIDPARAMONE HANDLER_IMPLEMENT_VOIDPARAMONE
HANDLER_DECLARE_BOOLPARAMONE HANDLER_IMPLEMENT_BOOLPARAMONE
HANDLER_DECLARE_VOIDPARAMTWO HANDLER_IMPLEMENT_VOIDPARAMTWO
HANDLER_DECLARE_BOOLPARAMTWO HANDLER_IMPLEMENT_BOOLPARAMTWO
HANDLER_DECLARE_VOIDPARAMTHREE HANDLER_IMPLEMENT_VOIDPARAMTHREE
HANDLER_DECLARE_BOOLPARAMTHREE HANDLER_IMPLEMENT_BOOLPARAMTHREE

不具合修正

携帯端末上でファイル終端の場合に、SFXFile::Write() 関数と SFXFile::Read() 関数が SFERR_FAILED エラーを返していた不具合を修正しました。

修正後は EFILEEOF エラーを返すようにしました。

SFBSSL::NegotiateV() 関数と SFBSSL::RenegotiateV() 関数の関数宣言の不具合を修正しました。

BREW 3.1 で SFXPath::IsRootDirectory() 関数が "/" をルートパスとして解釈していた不具合を修正しました。

SophiaFramework 4.0.0 リリースノート

概要

ファイルやネットワークを扱うユーティリティークラスの設計が見直され、いくつかの新しいクラスが追加されました。また、XML / SOAP を簡単に扱える高機能クラスの搭載や、POP3 / SMTP を扱うクラスの利便性の向上などもおこなわれました。

クラス 解説
SFXCallback AEECallback 構造体が使いやすくラップされました。
SFXTask ISHELL_Resume() 関数を簡単に利用できます。
SFXTimer ISHELL_SetTimer() 関数を簡単に利用できるようにします。
SFXStorage メモリ、ファイルやネットワークなどのストレージを表すインターフェースクラスです。
SFXMemory メモリを利用したストレージクラスです。メモリの読み書き機能を提供します。
SFXSource SFBSource クラスをラップしたストレージクラスです。SFBSource クラスからの読み込み機能を提供します。
SFXFile ファイルを利用したストレージクラスです。ファイルの読み書き機能を提供します。また、ファイルの作成や削除、リネームなどのファイル操作機能を提供します。
SFXDirectory ディレクトリの作成や削除、ファイルの列挙などのファイル操作機能を提供します。
SFXPath ファイルパスを表すクラスです。複雑な文字列処理をせずにパスを編集できます。
SFXTCPSocket TCP/IP ソケットを利用したストレージクラスです。ソケットの読み書き機能を提供します。
SFXUDPSocket UDP ソケットをもちいた通信機能を提供します。
SFXInetAddress ホスト名を表すクラスです。ホスト名と IP アドレスの変換を自動的に行えます。
SFXSocketAddress ホスト名と IP アドレスに加えてポート番号を表すクラスです。ホスト名と IP アドレスの変換を自動的に行えます。
SFXOutputStream 書き込みストリームを表すインターフェースクラスです。
SFXInputStream 読み込みストリームを表すインターフェースクラスです。
SFXStreamWriter 書き込みストリームへのリングバッファをもちいた書き込み機能を提供します。
SFXStreamReader 読み込みストリームからのリングバッファをもちいた読み込み機能を提供します。
SFXBinaryStream バイナリストリームを表す抽象クラスです。
SFXBinaryStreamWriter 書き込みストリームへのエンディアン変換などの高機能な書き込み機能を提供します。
SFXBinaryStreamReader 読み込みストリームからのエンディアン変換などの高機能な読み込み機能を提供します。
SFXStringStream 文字列ストリームを表す抽象クラスです。
SFXAnsiStringStreamWriter 書き込みストリームを ANSI 文字列として処理し、高機能な書き込み機能を提供します。
SFXAnsiStringStreamReader 読み込みストリームを ANSI 文字列として処理し、高機能な読み込み機能を提供します。
SFXWideStringStreamWriter 書き込みストリームを WIDE 文字列として処理し、高機能な書き込み機能を提供します。
SFXWideStringStreamReader 読み込みストリームを WIDE 文字列として処理し、高機能な読み込み機能を提供します。
SFXHTTPConnection SFBWeb クラスを利用した HTTP / HTTPS 通信を提供します。通信中の各種リソースの管理などは自動的に行われます。
SFXSMTP SMTP プロトコルを処理するための各種機能を提供します。
SFXSMTPSender SMTP プロトコルをもちいてメールを送信します。
SFXPOP3 POP3 プロトコルを処理するための各種機能を提供します。
SFXPOP3Receiver POP3 プロトコルをもちいてメールを受信します。
SFXMailbox メールボックス機能を提供します。
SFXMailField メールのヘッダ部分を処理するための各種機能を提供します。
SFXMailMessage メールの本文部分を処理するための各種機能を提供します。
SFXMailUtility ShiftJIS と JIS の変換、Base64, QuotedPrintable, MD5 のエンコードやデコードなどの機能を提供します。
SFXXMLGrammer DTD や XML スキーマなどのスキーマ言語を表す抽象クラスです。
SFXDTDGrammer スキーマ言語の一つである DTD を表すクラスです。
SFXSchemaGrammer スキーマ言語の一つである XML スキーマを表すクラスです。
SFXSOAPWriter SOAP メッセージの作成機能を提供します。
SFXSOAPParser SOAP メッセージの解析機能を提供します。
SFXSOAPRPC RPC をもちいて SOAP メッセージを送受信します。
SFXSOAPServiceProxy WSDL を読み込み、解釈して実行します。
SFXXSDDOMParser DOM 方式でスキーマ付き XML 文章を解析します。
SFXXMLDOMParser DOM 方式で XML 文章を解析します。
SFXXMLSAXParser SAX 方式で XML 文章を解析します。
SFXXMLDefaultHandler SAX パーサのイベント通知を処理する抽象クラスです。
SFXXMLNode DOM の各種ノードを表す抽象クラスです。
SFXXMLAttribute Attr (属性) ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。
SFXXMLCDATASection CDATASection ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。
SFXXMLComment Comment ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。
SFXXMLDocument Document ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。
SFXXMLDocumentFragment DocumentFragment ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。
SFXXMLDocumentType DocumentType ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。
SFXXMLElement Element ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。
SFXXMLEntity Entity ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。
SFXXMLEntityReference EntityReference ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。
SFXXMLNotation Notation ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。
SFXXMLProcessingInstruction ProcessingInstruction ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。
SFXXMLText Text ノードを表すクラスです。ノードの名前や値、各種要素を取得・設定します。
廃止クラス 代替クラス
SFUIPEndpoint SFXInetSocket
SFUHostResolver SFXInetAddress
SFUStream SFXStorage
SFUMemoryStream SFXMemory
SFUSourceStream SFXSource
SFUFileStream SFXFile
SFUNetworkStream SFXTCPSocket, SFXUDPSocket
SFUHttpConnection SFXHTTPConnection
SFUSmtp SFXSMTP
SFUSmtpSender SFXSMTPSender
SFUPop3 SFXPOP3
SFUPop3Receiver SFXPOP3Receiver
SFUMailField SFXMailField
SFUMailMessage SFXMailMessage
SFUMailUtil SFXMailUtility
SFUBase64 SFXMailUtility
SFUQuotedPrintable SFXMailUtility

仕様変更

HANDLER_DECLARE_XXX マクロを使用するときのクラス名部分のパラメータを削除しました。

alignof マクロの種類が追加され、align08of, align16of, align32of, align64of マクロに変更しました。

clusterof マクロの種類が追加され、cluster08of, cluster16of, cluster32of, cluster64of マクロに変更しました。

SFXDate クラスの表す秒が 0 の時に Format() 関数や ToJulianType() 関数が "0000/00/00 00:00:00" を表すように動作を変更しました。

大きな値を保持できるように SFXDateDuration クラスの内部変数を SInt64 型に変更しました。

新機能

SophiaFramework 用の ARM メイクファイル生成ツールを追加しました。

BREW の基準時である "1980/01/06 00:00:00" と ANSI の基準時である "1970/01/01 00:00:00" の差を表すOffset19700101() 関数を SFXDateDuration クラスに追加しました。

BREW の基準時である "1980/01/06 00:00:00" と NTP の基準時である "1900/01/01 00:00:00" の差を表すOffset19000101() 関数を SFXDateDuration クラスに追加しました。

日・時・分・秒を用いて値を設定するコンストラクタと Set() 関数を SFXDateDuration クラスに追加しました。

コールバック関数を記述する場合に使用する幾つかのコールバックマクロを追加しました。

宣言マクロ 実装マクロ
CALLBACK_DECLARE_SFXCALLBACK CALLBACK_IMPLEMENT_SFXCALLBACK
CALLBACK_DECLARE_SFXTASK CALLBACK_IMPLEMENT_SFXTASK
CALLBACK_DECLARE_SFXTIMER CALLBACK_IMPLEMENT_SFXTIMER
CALLBACK_DECLARE_SFXSTORAGE CALLBACK_IMPLEMENT_SFXSTORAGE
CALLBACK_DECLARE_SFXMEMORY CALLBACK_IMPLEMENT_SFXMEMORY
CALLBACK_DECLARE_SFXSOURCE CALLBACK_IMPLEMENT_SFXSOURCE
CALLBACK_DECLARE_SFXFILE CALLBACK_IMPLEMENT_SFXFILE
CALLBACK_DECLARE_SFXINETADDRESS CALLBACK_IMPLEMENT_SFXINETADDRESS
CALLBACK_DECLARE_SFXSOCKETADDRESS CALLBACK_IMPLEMENT_SFXSOCKETADDRESS
CALLBACK_DECLARE_SFXTCPSOCKET CALLBACK_IMPLEMENT_SFXTCPSOCKET
CALLBACK_DECLARE_SFXUDPSOCKET CALLBACK_IMPLEMENT_SFXUDPSOCKET
CALLBACK_DECLARE_SFXOUTPUTSTREAM CALLBACK_IMPLEMENT_SFXOUTPUTSTREAM
CALLBACK_DECLARE_SFXINPUTSTREAM CALLBACK_IMPLEMENT_SFXINPUTSTREAM
CALLBACK_DECLARE_SFXSTREAMWRITER CALLBACK_IMPLEMENT_SFXSTREAMWRITER
CALLBACK_DECLARE_SFXSTREAMREADER CALLBACK_IMPLEMENT_SFXSTREAMREADER
CALLBACK_DECLARE_ SFXBINARYSTREAMWRITER CALLBACK_IMPLEMENT_ SFXBINARYSTREAMWRITER
CALLBACK_DECLARE_ SFXBINARYSTREAMREADER CALLBACK_IMPLEMENT_ SFXBINARYSTREAMREADER
CALLBACK_DECLARE_ SFXANSISTRINGSTREAMWRITER CALLBACK_IMPLEMENT_ SFXANSISTRINGSTREAMWRITER
CALLBACK_DECLARE_ SFXANSISTRINGSTREAMREADER CALLBACK_IMPLEMENT_ SFXANSISTRINGSTREAMREADER
CALLBACK_DECLARE_ SFXWIDESTRINGSTREAMWRITER CALLBACK_IMPLEMENT_ SFXWIDESTRINGSTREAMWRITER
CALLBACK_DECLARE_ SFXWIDESTRINGSTREAMREADER CALLBACK_IMPLEMENT_ SFXWIDESTRINGSTREAMREADER
CALLBACK_DECLARE_SFXHTTPCONNECTION CALLBACK_IMPLEMENT_SFXHTTPCONNECTION
CALLBACK_DECLARE_SFXSMTP CALLBACK_IMPLEMENT_SFXSMTP
CALLBACK_DECLARE_SFXSMTPSENDER CALLBACK_IMPLEMENT_SFXSMTPSENDER
CALLBACK_DECLARE_SFXPOP3 CALLBACK_IMPLEMENT_SFXPOP3
CALLBACK_DECLARE_SFXPOP3RECEIVER CALLBACK_IMPLEMENT_SFXPOP3RECEIVER

不具合修正

SFXRingBuffer クラスが 0 バイトの読み書きで SFERR_INVALID_PARAM を返していた不具合を修正しました。

SophiaFramework 3.0.8 リリースノート

不具合修正

インライン関数のリンクに失敗する SFBLogger クラスと SFBBTSIOPort クラスの不具合を修正しました。

SFUFileStream::Flush() 関数がリンクできない不具合を修正しました。

関数の戻り値に余分な文字列が含まれる SFBShell::LoadResString() 関数の不具合を修正しました。

"Month", "Mth" などのフォーマット指定文字列を利用したときに、1ヶ月進んで計算される SFXDate::Format() 関数の不具合を修正しました。

送信するデータの末尾が RFC2821 に準拠していなかった SFUSmtp::SendDataText() 関数の不具合を修正しました。

日本語の曜日を出力する 'y' フォーマット指定文字を SFXDate::Format() 関数に追加しました。

フォーマット指定文字以外の文字をそのまま出力する機能を SFXDate::Format() 関数に追加しました。

フォーマット指定文字に予約されている文字を出力したい場合は、'%' エスケープ文字を利用できます。

任意の文字列から日付インスタンスを生成できる Parse() 関数を SFXDate クラスに追加しました。

利用できるフォーマット指定文字列は Format() 関数と同じです。

UTC 時間との差を計算する LocalTimeOffset() 関数を SFXDateDuration クラスに追加しました。

ヌル文字かどうかを判定する IsNull() 関数を SFXAscii クラスに追加しました。

文字列中の文字の種類を判定する以下の関数を SFXAnsiString クラスと SFXWideString クラスに追加しました。

関数 解説
IsAlpha() 文字列が英文字であるかを判定
IsDigit() 文字列が数字であるかを判定
IsAlphaDigit() 文字列が英数字であるかを判定
IsHexDigit() 文字列が 16 進数で使用される文字であるかを判定
IsUpper() 文字列が大文字であるかを判定
IsLower() 文字列が小文字であるかを判定
IsSpace() 文字列が空白文字または改行文字であるかを判定
IsPunct() 文字列が空白文字、英数字以外の印字文字であるかを判定
IsControl() 文字列が制御文字であるかを判定
IsPrint() 文字列が印字文字であるかを判定
IsGraph() 文字列が図形文字であるかを判定
IsAscii() 文字列が ASCII 文字であるかを判定
IsNull() 文字列がヌル文字であるかを判定

角度、ラジアン、グラジアンを相互に変換する以下の関数を SFXTrigonometric クラスに追加しました。

関数 解説
RadianToGradian() ラジアンからグラジアン
RadianToDegree() ラジアンから角度
GradianToRadian() グラジアンからラジアン
GradianToDegree() グラジアンから角度
DegreeToRadian() 角度からラジアン
DegreeToGradian() 角度からグラジアン

予約語 CALLBACK_EXTENDED, CALLBACK_FUNCTION, CALLBACK_NULL を新しく追加しました。

コールバック関数を記述する場合に使用する幾つかのコールバックマクロを予約しました。

これらの名前は SophiaFramework 3.1 以降で予約されています。開発者は同じ名前を使用しないでください。

宣言マクロ 実装マクロ
CALLBACK_DECLARE_SFXCALLBACK CALLBACK_IMPLEMENT_SFXCALLBACK
CALLBACK_DECLARE_SFXTASK CALLBACK_IMPLEMENT_SFXTASK
CALLBACK_DECLARE_SFXTIMER CALLBACK_IMPLEMENT_SFXTIMER
CALLBACK_DECLARE_SFXFILE CALLBACK_IMPLEMENT_SFXFILE
CALLBACK_DECLARE_SFXINETADDRESS CALLBACK_IMPLEMENT_SFXINETADDRESS
CALLBACK_DECLARE_SFXSOCKETADDRESS CALLBACK_IMPLEMENT_SFXSOCKETADDRESS
CALLBACK_DECLARE_SFXTCPSOCKET CALLBACK_IMPLEMENT_SFXTCPSOCKET
CALLBACK_DECLARE_SFXUDPSOCKET CALLBACK_IMPLEMENT_SFXUDPSOCKET
CALLBACK_DECLARE_SFXOUTPUTSTREAM CALLBACK_IMPLEMENT_SFXOUTPUTSTREAM
CALLBACK_DECLARE_SFXINPUTSTREAM CALLBACK_IMPLEMENT_SFXINPUTSTREAM

最新の BREW 日本拡張パッケージに対応しました。( 2006 年 06 月 30 日 現在 )

SophiaFramework 3.0.7

不具合修正

特定の条件下で同じキーを持つ要素が重複してしまう SFXProperty::Set() 関数の不具合を修正しました。

SFXList クラスの Iterator::Remove() 関数の動作が不安定だった不具合を修正しました。

RealView Compilation Tools for BREW 1.2 コンパイラを利用し、最適化オプションを -Ospace にしてアプリをコンパイルする場合に、SelectHandler() などの一部のハンドラが見つからずにリンクエラーになる不具合を修正しました。

テキスト入力部分の背景色が正確に白色に設定されていなかった SFRBrewTextControl クラスの不具合を修正しました。

初期化不良により動作が不安定だった SFRBrowserControl クラスの不具合を修正しました。

SFXGraphics クラスの MeasureString() 関数の動作速度が向上しました。

BREW やエクステンション内などで確保されたヒープの Reallocate()Free() 時の安定性が向上しました。

仕様変更

一部の GUI コンポーネントで全てのキーイベントをブロックしていた仕様を、実際に処理するキーイベントのみをブロックするように変更しました。

影響を受けるクラスは SFRMenu, SFRPlainMenu, SFRFrameMenu, SFRTitleMenu, SFRTextMenu, SFRComboboxMenu, SFRDialog, SFRPlainDialog, SFRFrameDialog, SFRTitleDialog, SFRMessageDialog, SFRMultiDialog です。

SREVT_CONTROL イベントを表す定数を 0x7500 から 0x7600 に変更しました。

SFDWatcher クラスの不正メモリ確保 / 解放時の警告表示をデフォルトで有効に変更しました。

RealView Compilation Tools for BREW 1.2 コンパイラを利用して携帯端末向けにコンパイルする場合でも SFDWatcher クラスの記述を利用できるように変更しました。

SFDWatcher クラスに関連する記述は適切に置換、もしくは、無視されるようになりました。

サンプルアプリの携帯端末向けのコンパイルオプションを、-Ospace から -Otime に変更しました。

新機能

SFRMessageDialog クラスと SFRMultiDialog クラスに、ボタンなしのダイアログを表示する機能を追加しました。

AEECLSID_KDDI_SMALL_FONT などの拡張フォントを利用し易くするための RegisterFont() 関数と UnregisterFont() 関数を SFXGraphics クラスに追加しました。

エミュレータ上でのメモリ確保時に、割り当てられたメモリ領域を乱数で初期化する機能を追加しました。

この機能を利用すると、変数の初期化忘れを携帯端末上での動作により近い形でデバッグすることができます。この機能の追加に伴い SFDWatcher クラスに setrandomize() 関数が追加されました。

SREVT_PANE( = 0x7500) イベントを新しく追加しました。

SREVT_APPLICATION, SREVT_WINDOW, SREVT_PANE イベントに対応するトレーサをそれぞれ SFRApplication, SFRWindow, SFRPane クラスに追加しました。

予約語 MemoryAttachMemoryDetach を新しく追加しました。

SophiaFramework 3.0.6

不具合修正

SFRTextMenu クラス生成後に SetBaseBound() 関数を利用して大きさを再設定した場合に、タイトル部分の描画が崩れる不具合を修正しました。

SFRControl パッケージと SFRMenu パッケージの一部のクラスにおいて、SetBaseBound() 関数を利用して大きさを再設定した場合に、仮想領域の大きさが正確に再設定されていなかった不具合を修正しました。

この修正により、影響を受けるクラスは SFRButtonControl, SFRCheckboxControl, SFRRadiobuttonControl, SFRComboboxControl, SFRTabControl, SFRLabelControl, SFRBrewTextControl, SFRTextMenu です。

メニューをクリアキーでエスケープしたときに、コントロールハンドラが起動されていなかった SFRComboboxControl クラスの不具合を修正しました。

SFXConfig クラスがヘッダ部分を 5 バイトで処理していた不具合を修正しました。

ヘッダ部分は 4 バイトで処理されるようになりました。この修正によりファイルの互換性が失われましたので、以前に書き出したファイルは一旦削除してください。

ハッシュテーブルが永久に拡張されなかった SFXHashmap クラスの不具合を修正しました。

初期化処理の失敗により SFUPop3Receiver クラスが携帯端末上でフリーズすることがある不具合を修正しました。

RealView Compilation Tools for BREW 1.2 コンパイラを利用する場合に、SFBWrapper パッケージの子クラスから親クラスへの暗黙の変換が見つからないことがある不具合を修正しました。

以下のコードを正常にコンパイルできるようになりました。

SFBSocketSmp socket;
SFBAStreamSmp stream = socket;

仕様変更

ハッシュテーブルのスレッショルド値の扱い方を "要素数 / ハッシュテーブル数" から "ハッシュテーブル数 / 要素数" に変更しました。

この変更に伴い、デフォルトのスレッショルド値が 5 から 10 に変更されました。

新機能

GUI フレームワークを利用する場合に使用する幾つかのハンドラマクロを追加しました。

宣言マクロ: 実装マクロ:
HANDLER_DECLARE_VOIDDIALOG HANDLER_IMPLEMENT_VOIDDIALOG
HANDLER_DECLARE_BOOLDIALOG HANDLER_IMPLEMENT_BOOLDIALOG
HANDLER_DECLARE_VOIDMENU HANDLER_IMPLEMENT_VOIDMENU
HANDLER_DECLARE_BOOLMENU HANDLER_IMPLEMENT_BOOLMENU
HANDLER_DECLARE_VOIDCONTROL HANDLER_IMPLEMENT_VOIDCONTROL
HANDLER_DECLARE_BOOLCONTROL HANDLER_IMPLEMENT_BOOLCONTROL

SFXDate クラスに、日付を任意のフォーマットの文字列に変換できる Format() 関数を追加しました。

SFXHashmap クラスに 、DEFAULT_THRESHOLDDEFAULT_RATIO 定数を追加しました。

サンプルアプリに TemplateApp と ScreenSaver を追加しました。

リファレンスの GUI フレームワーク部分の記述を大幅に強化しました。

最新の BREW 日本拡張パッケージに対応しました。( 2006 年 03 月 13 日 現在 )

SophiaFramework 3.0.5

不具合修正

SFRBrewTextControl クラスを利用したテキスト入力を行う場合に、W32SA 端末上でマルチ入力モードでの入力ができなかった不具合を修正しました。

SophiaFramework 3.0.4

不具合修正

SFXDate クラスの CurrentUTCDate() 関数が、BREW 3.1 端末上で JST 時間を返していた不具合を修正しました。

SFXConfig クラスが BREW 3.1 上で正常に動作しない不具合を修正しました。

仕様変更

SFCCondition.h.hpp ファイルで errno.h ファイルをインクルードするように変更しました。

SophiaFramework 3.0.3

不具合修正

特定の条件下で SFAStreamManipulator クラスの一部の関数がリンクエラーになる不具合を修正しました。

コンストラクタの配列引数部分に null ポインタを渡したときに、メニューの表示がおかしくなる SFRTextMenu クラスの不具合を修正しました。

SFRTextMenu クラスのメニュー項目の描画時の不具合を修正しました。

アプリウィザードが生成するテンプレートコードのコンストラクタに explicit 修飾子を追加しました。

仕様変更

static_exception クラスの static_throw() 関数を const な関数に変更しました。

この変更により、開発者は const な関数の内部から例外を設定できるようになりました。

SFRComboboxControl のメニューの色を SFRTextMenu と同色に変更しました。

新機能

ユーザエラー番号の範囲を新しく定義しました。

最新の BREW 日本拡張パッケージに対応しました。( 2006 年 01 月 05 日 現在 )

SophiaFramework 3.0.2

不具合修正

シミュレータ上でデバッグ起動を行う場合に、ヒープ解放時にフリーズすることがある SFDWatcher クラスの不具合を修正しました。

BREW 3.1 端末上で、SFRBrewTextControl クラスの描画が正常に行われない不具合を修正しました。

携帯端末上で、SFRBrewTextControl クラスの SetInputMode() 関数でセットした値が有効にならない不具合を修正しました。

Microsoft Visual C++ .NET 2003 用アプリウィザードが生成するプロジェクトファイルのデバッグモード時の設定で、最適化が有効になっていた不具合を修正しました。

新機能

最新の BREW 日本拡張パッケージに対応しました。( 2005 年 11 月 25 日 現在 )

SophiaFramework 3.0.1

不具合修正

インストーラが Microsoft Visual C++ .NET 2003 のファイルパスやライブラリパスの環境設定を破壊することがある不具合を修正しました。

SophiaFramework 内部で AEECallback 構造体を使用したコールバック部分が、携帯端末上でフリーズする不具合を修正しました。

この修正により、影響を受けるクラスは SFUHttpConnection, SFUSourceStream, SFUHostResolver, SFRBrowserControl です。

SFRComboboxControl のメニュー表示位置を修正しました。

メニューを表示させたときにメニュー項目が最大限表示されるようになりました。

SFXAscii::IsPrintable()SFXAscii::IsPrint() に修正しました。

CamulatorSetup ツールのウィンドウクローズボタンの挙動を修正しました。

新機能

SFXAscii クラスに IsSpace(), IsPunct() 関数を追加しました。

SophiaFramework 3.0.0

ライセンスの変更

ライセンスシステムを変更しました。

ライセンスコードをソースコードの中に埋め込む方式、または、任意のリソースファイルに格納する方式を選択できるようになりました。

詳細情報 : SophiaFramework リファレンス

開発環境への対応

BREW SDK 3.1 に対応しました。

RealView Compilation Tools for BREW 1.2 に対応しました。

Microsoft Visual C++ .NET 2003 に対応しました。

全般的な変更

クラス分類方法を変更しました。

詳細情報 : SophiaFramework リファレンス

クラス名とメソッド名を変更しました。

SFX... クラスは再設計され、メソッド名や役割が変更されたクラスです。

詳細情報 : Deprecated.h.hpp ファイル / SophiaFramework リファレンス

ヘッダファイル構成を変更しました。

前方宣言・クラス宣言・インライン実装の3つのファイルに分割され、ヘッダファイルの競合を回避できるようになりました。

ヘッダファイルを改良しました。

使用する BREW SDK のバージョンを自動的に判別してコンパイルを行うようになり、コンパイル時に BREW SDK のバージョンを指定する必要がなくなりました。

警告を追加しました。

RealView Compilation Tools for BREW 1.2 コンパイラでのコンパイル時に、BREW で使用禁止の API ( ANSI の malloc() 関数など)を使用した場合、リンク時に警告が出るようになりました。

コア

GUI フレームワーク(レスポンダ)を使用しない SophiaFramework アプリ開発を正式にサポートしました。

SFCApplication クラスを利用することで、イベントや描画の処理の流れを標準的な BREW アプリと同様の感覚で記述できるようになりました。

マクロやクラスを追加しました。

携帯端末上での一般的な浮動小数点演算が利用可能になりました。

メモリの確保や解放を行う手段の改良しました。

旧バージョン: 新バージョン:
MALLOC MemoryAllocate
REALLOC MemoryReallocate
FREE MemoryFree
new new
delete delete
new [] new []
delete[] delete[]

新バージョンではBREW API の MALLOC, REALLOC, FREE, STRDUP, WSTRDUP, ERR_MALLOC, ERR_REALLOC, ERR_STRDUP を利用できなくなりました。これらはSophiaFramework の API を利用するスタイルに変更されました。

また、new[], delete[] の不具合は解消されました。

携帯端末上でのメモリ割り当て時の初期化処理を廃止しました。

C++ 言語では一般的にメモリ割り当て時の自動初期化は不要なため、この最適化により実機での動作速度を向上させることができます。

デバッグ

デバッグ用マクロを追加します。

これらのマクロは携帯端末上でも使用できます。

シミュレータ上での実行時に、メモリ割り当てや解放を追跡する機能を再設計しました。

new[], delete[] の不具合は解消され、機能が強化されました。

ポインタ

スマートポインタ使用時にスマートポインタに null を代入した場合、Microsoft Visual C++ 6.0 コンパイラがコードを抹消してしまう不具合に対応しました。

開発者は null を代入することができなくなりました。

キャスト演算子を追加しました。

スマートポインタのキャストを適切に行えるようになり、操作性が向上しました。

スマートポインタ使用時に RealView Compilation Tools for BREW 1.2 コンパイラのシリアスエラーに遭遇する可能性を軽減しました。

バッファ

単純なヒープ管理クラス (SFXHeap) とブロックアロケーションをサポートしたヒープ管理クラス (SFXClusterHeap) の追加しました。

簡単にメモリの解放忘れの回避やブロックアロケーションの実装ができるようになりました。

バッファクラスの機能を強化しました。

ブロックアロケーションをサポートし、簡単に文字列との相互変換やバッファの演算ができるようになりました。

文字列

char 型文字列と AECHAR 型文字列を扱う文字列クラスを改良しました。

クラスを追加しました。

シェイプ

座標クラス (SFUPoint) を格子点座標クラス (SFXGrid) とピクセル座標クラス (SFXPixel) に分割しました。

多角形クラスと折れ線クラスを改良しました。

設計上の問題点であったスライス現象は、多角形クラスと折れ線クラスを BREW 標準の構造体本来の定義にあわせることで解決されました。

多角形クラスと折れ線クラスでクラスに座標を管理させることはできなくなりました。

全てのシェイプクラスで関数実装方針を変更しました。

コードサイズと速度の面でクラスが最適化されました。

全てのシェイプクラスで POD 構造体が各クラスごとに定義され、純粋な定数構造体を使用可能に

実行時の初期化が必要なくなるため、シェイプの動作速度の向上が期待できます。

コレクション

テンプレートを使用した実装を変更しました。

新しいコレクションクラスでは仮想関数呼び出しが行われないため、以前のコレクションクラスよりも動作速度が向上しました。また、テンプレートを使用しているため、コンパイル時に型に対してより厳密なチェックが行われるようになりました。

数学

乱数クラスを追加しました。

ネットワーク

POP3 / SMTP プロトコルをサポートするメールクラス群を追加しました。

メールの送受信処理を簡単に記述できるようになりました。

汎用

クラスを追加しました。

日付の管理や演算ができるようになりました。

コードサイズを削減できるようになりました。

エンディアン変換クラスに64ビット型整数や浮動小数点用関数を追加しました。

*この他にも非常に数多くの変更点があります。旧バージョンとのクラス名の対応関係などは Deprecated.h.hpp ファイルを参照してください。