読者です 読者をやめる 読者になる 読者になる

KOYAMA Yoshiaki のブログ

プログラミングについての試行錯誤をつらつら書き溜めていきます。

xshogi.app

Cocoa 自作 公開 プログラム

Mac OS X Leopard 上でコンピュータと対戦できる将棋ソフト (X11ベースの アプリケーション xshogi をバンドルしたアプリケーション。)

xshogi.app [ http://kyoshiaki.sakura.ne.jp/osx/leopard.html ] 

を公開します。

キーワード 'mac 将棋' で検索してくる人が結構多いので、需要があるかもしれないと思い作成しました。

話は変わりますが、以前は

GIMP.app
http://gimp-app.sourceforge.net/

からダウンロードした Gimp を利用していたのですが、Leopard には対応していないようです。

それで VMware 上に Ubuntu をインストールし、Ubuntu 上の Gimp を使用していました。 (VMware Tools をインストールすれば、ファイルのドラッグ・ドロップにも対応しています。)

最近、 Leopard に対応した Gimp.app を

Wilber loves Apple
http://www.wilber-loves-apple.org/

Download
http://www.wilber-loves-apple.org/pages/download.html

で見つけました。早速、インストールして利用しています。

ソースを

SourceForge.net: Wilber loves Apple
http://sourceforge.net/projects/darwingimp

の中央の 'code' タブをクリックして表示されている説明通りに、ターミナル上でコマンド

svn co https://darwingimp.svn.sourceforge.net/svnroot/darwingimp darwingimp

を使ってダウンロードしました。

GIMP.app
http://gimp-app.sourceforge.net/

で説明されているビルド方法と基本的に同じなので、 Leopard に対応した xshogi.app を作成してみました。

以前は gimp.app/Contents/Resources/script ファイル内でコマンド open-x11 を使って The X Window System を起動していたのですが、

今回は ScriptExec 内で起動しているようです。

プロジェクトファイル ScriptExec.xcodeproj の main.c

170行目
    // compile "icon clicked" script so it's ready to execute
    SimpleCompileAppleScript("tell application \"X11\" to activate");

507行目
static OSStatus CompileAppleScript(const void* text, long textLength,                  
                                  AEDesc *resultData) {
533行目
/* runs the compiled applescript */
static void runScript()
{
    /* run the script */
    err = OSAExecute(theComponent, scriptID, kOSANullScript,
                     kOSAModeNull, &resultID);
    return err;
}

543行目
/* Simple shortcut to the function that actually compiles the applescript. */
static OSStatus SimpleCompileAppleScript(const char* theScript) {

の 171 行目

"tell application \"X11\" to activate"

X11.app を起動するアップルスクリプトそのものだと思います。

xshogi.app も同じ仕組みです。