前回の日記で宣言したように 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