Cocoa

Image Kit

id:eccoHowling:20071123:p1の続き。CGImageRefを直接描画する方法は何があるかとInterface Builderを弄っていて見つけた。 http://developer.apple.com/documentation/GraphicsImaging/Conceptual/ImageKitProgrammingGuide/index.html IKImageViewにsetIma…

スクリーンのキャプチャ

Son of Grab スクリーンを左右反転して表示するアプリケーションを作ろうとキャプチャ用のコードを探して見つけた。LeopardでQuartzにAPIが追加されたらしい。 以下コード。多分、Core ImageでCGImageを直接描画した方が早いのだろうけど。

iPhone SDK

http://macapper.com/2007/06/27/exclusive-third-party-cocoa-iphone-apps-coming/ http://www.ohmiyapatriots.com/blog/2007/06/28/iphone%E3%81%AEcocoa%E3%82%B5%E3%83%BC%E3%83%89%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%A2%E3%83%97%E3%83%AA/ iP…

NSTextFieldの補完

IE5:macっぽいアドレスバーのオートコンプリートを実装。NSComboBoxを使うのが普通っぽいのを、敢えてNSTextFieldのままCocoaの単語補完機構を利用してみた。 最初はDelegateをちょこっと書くだけでどうにかなるかと思っていたのだけど、所謂単語の補完とは…

InputManagerの是非

名目がセキュリティホールを潰すという事ならば、InputManagerは何でも自動的に読み込んでしまうのが問題なんでしょ。なら、ユーザが明示的にプラグイン(というかバンドル)を読み込めるような機構を作るべきじゃないかな。バンドルの動的な読み込みが、Coc…

日本語のオートコンプリート

どっかのブログエントリを読みながら思いついた話だけど、どこだったか忘れた。 そもそも、かな漢字変換システム自体がオートコンプリート機能の一種だ。 ことえりとCocoaの組み合わせの場合、まず未変換時に確定後に頻出する文節を候補として表示する。次い…

半透明なウインドウの合成

二つの半透明なウインドウを重ねた場合、ウインドウのアルファをそれぞれx,yとおくと、最終的な背景の不透過率zは以下となる。z=x+y-xy以上から、アルファがxのウインドウに重ねることで背景の不透過率をzにしたい場合のアルファの値yは以下となる。y=(z-x)/…

固定ツールバー項目

古いシステム環境設定なんかの左端に固定されているツールバー項目を作りたくなった*1。HIToolbarにはそれっぽいものがあるのに、NSToolbar/NSToolbarItemにはそれっぽいものが見当たらない。全然別の実装なのかなとヘッダを見てみたらそれっぽいフラグが@pr…

とあるゲームにハマっていたので、タイトルも前フリも思いつかないくらい余裕が無い。レビューも書きたいし。

ブラウザ作成にトライ中

完全に五里霧中。WebKitでかなりの部分がショートカットされているとは言え、UIをかぶせるだけの話がここまで面倒とは。

任意のURLをSpotlightデータベースに読み込み

delimport Spotlight関連のAPIを調べた時は、ファイルの更新をメタデータ抽出のトリガにしているからSearch Kitのデータベースを直接触るようなわけにはいかないだろうと思ったのだけど、これは任意のURLをプールしているように見える。

NSSegmentedControl

癖強すぎ! sizeToFitしたものをヘルプビューワみたいなUnified title/toolbar lookのツールバーに置くと上辺が切れる。 仕方無いので目分量でToolbarItemのminSizeとmaxSizeのheightを25に。 NSUserInterfaceValidatioinで扱えないのでsetEnabled:forSegmen…

QTKitに触ってみた

野暮用途に使ってみたものの、結局肝心の処理はQuickTimeを直接叩いてファイルの読み書きにだけQTMovieを使う形になってしまった。 メモリ上に編集用の空ムービーを用意することすら出来ないのは、流石に未完成過ぎる気が。

実現可能性の見極め

Cocoa-Javaは非推奨に 大分前からその気配はあったんでObjective-Cの勉強は一通りしたのだけど、とうとう来るべき時が来たか。try-catch構文は導入済みだしガーベジコレクタの導入も見えてきたから無理にJava Bridgeにリソースを割く必要は無いと判断したの…

Cocoa vs Dashboard

自作のノートパッドをCore Data用に書き直して検索やらを楽に済ませようと思っていたのだけど、ノートパッドならDashboard Wighetにしてしまった方がいいのかと考え中。ただそれだと、AquaなLnFは設定画面以外で使うなと言うお達しがあるのでインターフェイ…

ありゃ、Xcode 2.1には「Core Data Document-based Application with Spotlight Importer」なんてテンプレートが付いていたのか。2.0には無かったはず。

Core Data入門(してます)の3

さしあたって関係ないと思ってたNSPersistentDocumentのチュートリアルに簡単操作でモデルからUIを自動生成する方法が載ってた。標準的なMaster-Detailインターフェイスに検索フィールドを付けてコントローラをインスタンス化しバインディングを一通り揃える…

Core Data入門(してます)の2

CoreData.dtdを読んでみる。全体で45行しか無く、26行目からはplistの定義が書かれているだけなので実質的に24行しか無い小さなDTDだ。ルートのdatabase要素中にdatabaseInfo要素があり、それに続けてobject要素が並ぶ。中心となるのはこのobject要素とその…

Core Data入門(してます)

どうやらCore Data用のプロジェクトテンプレートにApplication Supportフォルダの生成とかManaged Object Contextの管理とかをやってくれるコードが入っているらしく*1、簡単なリストを作るだけならコードを一切書かずにいけそうだった。 まずxcdatamodelフ…

Unified title/toolbar look

CoreServices/Search.bundleのversion.plistを見てみたらProjectNameがMatadorになってる。Spotlightのメインインターフェイスってそんなコードネームだったのか。 この検索結果ウインドウに加えてDictionary、システム環境設定、ヘルプビューワがUnified ti…

Tree-Based XML Programming

NSXMLがXPath/XQuery/XSLTに対応している。CFXMLには見当たらないし、他にHTMLパーサも付いているところを見ると本格的にlibxml/libxsltをラップしたのかも。

Core Data

なんでCocoa Bindingと一緒に出なかったのかと思ってたけど、こりゃ遅れてもしょうがない。僕のつたない英語力では概念の把握すら難しい。 と言うかCocoa-Javaがどんどん取り残されていくんですけど(涙)。

ToolbarItem

CocoaでkHIToolbarItemNoAttributes以下に相当するものってallowsDuplicatesInToolbarしか無いのか? コードはどこかで再利用されている筈だからHIToolbarItemRefとNSToolbarItemを変換するような方法があると思うんだけど、公開はされていないらしい。 kEve…

Stroquake/Cocoa

Cocoaにしました。 giflibでアニメーションする方法を探してもまとまった文書が見つからず面倒になったのでMingでSWFを書き出す事に。 SVGもJava2DもQuartzもSWFもシェイプオブジェクトの造りがそっくりなんで和むなぁ……PostScriptの掌の上で踊っている気も…

タイトルバーにカスタムプロクシアイコン

NSWindowからCarbon用のWindowRefを貰ってSetWindowProxyIconで好きなIconRefを渡せばいい事まではわかった。のに、NSImageをIconRefに変換する方法がわからず。どうもIconRefを提供するIcon Services自体がファイルシステムにがっちり張り付いているっぽい。…

WebViewとResponder Chain

ヘルプビューアでもサンプルのMiniBrowserもそうなんだけど、WebView内でリンクを辿った直後は矢印などのキーボード操作を受け付けなくなる。一旦クリックすれば問題無いのだがリンクを辿る度にこれでは鬱陶しい。 調べてみたらどうもジャンプの時点で内部の…

ヘルプビューア

ミニマムなWebKitブラウザアプリケーションの例としてヘルプビューアを調べているんだけど、じっくり見渡すと元々そんなにヘビーに使うようなアプリケーションでもないので気にならなかったUI上の不満点がぼろぼろと出て来る。例えば文字サイズ変更コマンド…

JavaからWebKit

RSSOwlの中身を見ていたら、libswt-webkit-carbonなるjnilibが。Cocoaよりも早くAWTヘビーコンポーネントベースで攻めてくるとは。Screen SaverとかAddress BookとかPreference Paneとか、早くJavaに橋渡しされないかなぁ。

NSImageと解像度

ううむ、どうやらbatikが出す96dpiのラスターイメージを真正直に判断して自動的にビットマップをリサイズしてくれるらしい。いらんのだけど。

java.awt.headless

1.4を使うサブのJVMにjava.awt.headlessを設定してやるとちゃんと前面に出て来なくなった。……と、ここまでやって気付く。本体のJVMにこれを設定してヘッドレスモードでAWTをロードさせたらウインドウイベントがバッディングせずに済むのじゃないかと。 正解…