タグ

ブックマーク / psychs.hatenablog.com (3)

  • InputSwitcher - Psychs's blog

    Leopard で、アプリケーションごとにインプットマネージャの状態を保持してくれないのが微妙に不便だったので、別々に保持するのを作ってみた。要 SIMBL。 http://limechat.net/inputswitcher/index_ja.html 詳しい仕組みはこんな感じ。(ドキュメントより抜粋) InputSwitcherClient.bundle は、SIMBL 経由で各アプリケーションのプロセスに潜り込み、アプリケーションの activate と、deactivate の2つのイベントを、あらかじめ起動しておいた InputSwitcher.app に通知します。 InputSwitcher.app は、各アプリケーションごとに入力ソースの状態を保持しています。activate イベントの通知を受け取ったときに、入力ソースをオン・オフして、以前の入力ソースの状態に復元します。

    InputSwitcher - Psychs's blog
  • Windchase - GUI のイベントスクリプティング

    http://subtech.g.hatena.ne.jp/secondlife/20070813/1186999047 より まずイベントドリブンなプログラミングに慣れてないのが一つで。Flex のイベントや自前イベントやをただ単に投げまくってると、とりあえずは動くけど後からメンテし辛いスパゲッティコードができあがる。このスパゲッティコードは goto 文が乱立するコードよりも酷く、goto だったら割と行き先は把握できるけど、イベントを投げまくってるだけだと、どこでどのオブジェクトがこのイベントを受け取るかが解らない。解りづらい。いちいちソースコード grep ですね、おめでたいですね。あのイベントが発生してから、そのイベントが終了したら発生するイベントが終了したらウィンドウ閉じて、その間は別のイベントはブロックして/発生しないようにして、とかもうわけわかんない。これも GUI プログ

    Windchase - GUI のイベントスクリプティング
  • JavaScript で幅に合わせて文字列を切りつめる - Psychs's blog

    デスクトップアプリを開発してると、ListView のカラム幅が足りなくなったときに「My Docume...」のように自動的に末尾を「...」で埋めて切りつめてくれる機能がある。ウェブでも同じことをやりたかったので、作ってみた。 まず、文字列の幅を測定するには、 <span id="ruler" style="visibility:hidden;position:absolute;"> </span> みたいな隠しエレメントを用意しておいて、 String.prototype.getExtent = function(ruler) { var e = $(ruler); var c; while (c = e.lastChild) e.removeChild(c); var text = e.appendChild(document.createTextNode(this)); var

    JavaScript で幅に合わせて文字列を切りつめる - Psychs's blog
  • 1