Fork me on GitHub

Clie Uxの仮想シルク

  • Jun 02, 2006

categoryプラグインは存在しません。

CLIE UXの仮想シルクは、仮想シルクAPIのバージョン3のみ利用可能。バージョン1のAPIでは、リサイズもできない。

仮想シルクAPIの有無は以下のように調べる。

#include <SonyCLIE.h>
Err error = errNone;
if ((error = SysLibFind(sonySysLibNameSilk, &refNum)))\{
 if (error == sysErrLibNotFound) \{
  /* couldn't find lib */
  error = SysLibLoad( 'libr', sonySysFileCSilkLib, &refNum );
 \}
\}
if (!error) \{
 error = FtrGet(sonySysFtrCreator, sonySysFtrNumVskVersion, &vskVersion);
 if (error) \{
  /* SilkMgr is not installed */
 \} else if (vskVersion == vskVersionNum1) \{
  /* Version 1 is installed
  only resize is available */
 \} else if (vskVersion == vskVersionNum2) \{
  /* Version 2 is installed
  Some added features are available */
 \} else \{
  /* Version 3 or up is installed
  Horizontal screen is available */
 \}

追記:バージョン1APIのみがサポートされたNRなどでは、FtrGetが失敗するため、上記コードでは仮想シルクの有無が正しく調べられない。正しくは、SysLibLoadが成功した時点でバージョン1APIは存在する。

VskSetState(refNum, vskStateEnable, vskResizeHorizontally);

というコードで、横方向のリサイズが可能になる。これは、バージョン3APIをサポートしていないと使えないので注意。

リサイズは

VskSetState(refNum, vskStateResize, vskResizeMin);

などというコードで行う。

画面がリサイズされると

sysNotifyDisplayChangeEvent

という Notification が発行される。

WinGetDisplayExtent()

で描画可能な画面のサイズが取得できる。この辺りはNR,NXと同じ。