KOYAMA Yoshiaki のブログ

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

Wordbook2

前回の日記で宣言したように VMware について書くつもりでいたのですが、今回は Wordbook2 に関する内容です。


2007/12/09 [ id:KYoshiaki:20071209 ] で書いたように、Universal Binary 化した Wordbook.mdimporter は正しく動作しませんでした。 Wordbook で作成した書類に UTI*1 が宣言されていないとだめなようです。 UTI は、小文字で宣言するみたいです。


折角なので Wordbook を作り直してみました。機能も少し追加しました。いずれ Wordbook2 として公開する予定です。

ついでに Spotlight Importer だけでなくQuick Look にも対応してみました。


まず最初に

Quick Look Programming Guide: Introduction to Quick Look Programming Guide
http://developer.apple.com/documentation/UserExperience/Conceptual/Quicklook_Programming_Guide/Introduction/chapter_1_section_1.html


を読みました。


Thumbnail、Preview の違いは、Thumbnail が Finder 上の Cover Flow で表示されるそれぞれの画像で、Quick Look アイコンをクリックするかスペースバーを押すと表示される画像やファイルが Preview のようです。あまり自信がありませんが!


早速作成してみました。Xcode で新規プロジェクトQuick Look Plug-In を選び、Cocoa.framework、CoreFoundation.framework を追加しました。言語に Objective-C を利用したいので、作成されるファイルの拡張子を m に変更しました。

GenerateThumbnailForURL.m
GeneratePreviewForURL.m


HTML を利用して Preview したいので

Quick Look Programming Guide: Generating Enriched HTML
http://developer.apple.com/documentation/UserExperience/Conceptual/Quicklook_Programming_Guide/QLDynamicGeneration/chapter_7_section_3.html#//apple_ref/doc/uid/TP40005020-CH15-SW2


を参考にコードを追加しました。

Quick Look Programming Guide: Project Configuration
http://developer.apple.com/documentation/UserExperience/Conceptual/Quicklook_Programming_Guide/QLProjectConfig/chapter_4_section_3.html#//apple_ref/doc/uid/TP40005020-CH5-DontLinkElementID_9


を参照して Info.plist を設定するとWordbook2 の書類を Quick Look で表示できるようになりました。


また、 Xcode で 'ビルドして進行' を選ぶと Preview するように

Quick Look Programming Guide: Debugging and Testing a Generator
Quick Look Programming Guide: Debugging Facilities
http://developer.apple.com/documentation/UserExperience/Conceptual/Quicklook_Programming_Guide/QLDebugTest/chapter_11_section_2.html#//apple_ref/doc/uid/TP40005020-CH14-SW3


を参考に Xcode のメニュー 'プロジェクト/新規カスタム実行可能ファイル...' を選択して、設定しました。

引数は

-p -c jp.koyama.wordbook2.ywrd2 -g QuickLookWordbook2.qlgenerator "$(SRCROOT)/Sample1.ywrd2"


としました。


Wordbook2 の書類 Sample1.ywrd2 の UTI を確認するには

/Wordbook2 $ mdimport -d2 Sample1.ywrd2 
(Info) Import: Import '/Users/XXXX/Wordbook2/Sample1.ywrd2' type 'jp.koyama.wordbook2.ywrd2' 


のように mdimport コマンドで確認できます。

Quartz 2D Programming Guide: Introduction to Quartz 2D Programming Guide
http://developer.apple.com/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_intro/chapter_1_section_1.html#//apple_ref/doc/uid/TP30001066-CH201-TPXREF101


は、まだ読んでいる途中ですが、参考になると思います。私の英語の読解力は乏しいので、間違ったことを言っている可能性もあります。


最後に Xcode で 'ビルドして進行' を実行した画像を添付しておきます。



追記。すでに日本語に翻訳したものがありました。

Quick Lookプログラミングガイド: Quick Lookプログラミングガイドの紹介
http://developer.apple.com/jp/documentation/UserExperience/Conceptual/QuickLook_Programming_Guide/Introduction/chapter_1_section_1.html#//apple_ref/doc/uid/TP40005020-CH1-DontLinkElementID_14

*1:Uniform Type Identifier