Hatena::ブログ(Diary)

Windchase

2009.10.26

NSImage のサイズ

Cocoa の NSImage の size プロパティは、画像ファイルに DPI 指定が埋め込まれている場合などに、ピクセル単位でない場合があります。

画像のサイズをピクセル単位で取得したい場合には、以下のように pixelsSize プロパティを定義して利用します。

@interface NSImage (NSImagePixelsExtension)
- (NSSize)pixelsSize;
@end

@implementation NSImage (NSImagePixelsExtension)

- (NSSize)pixelsSize
{
    for (NSBitmapImageRep* e in [self representations]) {
        if ([e isKindOfClass:[NSBitmapImageRep class]]) {
            return NSMakeSize(e.pixelsWide, e.pixelsHigh);
        }
    }
    return self.size;
}

@end

2009.10.21

LimeChat 2.36 リリース

http://limechat.net/

64bit Windows で 32bit アプリケーションを動かすと、ウィンドウのリサイズ時に内部のビューが追随しない問題が起きる場合があるようです。これは、WOW64 のバグらしく、アプリ側で回避する方法が見つからなかったので、今回から 64bit版を用意しました。

その他、細かいバグフィクスです。

  • スクリプトの openFile でファイルを開くときに、コードページが反映されない場合があるバグをfixした。

2009.10.14

LimeChat for OSX 1.2 リリース

http://limechat.net/mac/ja.html

Sparkle で自動更新するようにしました。次回の更新から利用できます。

  • DCC ファイル送信を無視するオプションを追加した。
  • ホットキーレコーダをデザインしなおした。
  • Fallback encoding のバグを直した。

2009.10.2

CocoaDystopia リリース

Tokyo Dystopia を Cocoa アプリから使うために framework 化した CocoaDystopia をリリースしました。

http://github.com/psychs/cocoadystopia

特に Objective-C のクラスでラップしたりはしていないので、Tokyo Dystopia の C API をそのまま利用してください。

2009.10.1

TinyGrowl リリース

Growl.framework なしで Objective-C から Growl に通知を送るライブラリ、TinyGrowl をリリースしました。

http://github.com/psychs/tinygrowl

他のアプリに組み込むプラグインから Growl に通知を送りたい場合などに使えると思います。(プラグインで Growl.framework をロードしてしまうと、アプリ本体や他のプラグインで Growl.framework を使えなくなってしまうので)

使い方は、いたって簡単です。

まずは初期化。

growl = [TinyGrowlClient new];
growl.delegate = self;
growl.allNotifications = [NSArray arrayWithObjects:@"Alert", @"Info", nil];

allNotifications には、Growl のプリファレンスに表示される notification の全種類を渡します。

通知を送るには、notifyWith... を呼べば ok です。

id context = @"test info context";
[growl notifyWithType:@"Info"
                title:@"Info title"
          description:@"Info description"
         clickContext:context];

sticky にしたい場合は、もう少しパラメータの多いほうのメソッドを呼びます。

id context = @"test alert context";
[growl notifyWithType:@"Alert"
                title:@"Alert Title"
          description:@"Alert description"
         clickContext:context
               sticky:YES
             priority:1
                 icon:nil];

ユーザが通知をクリックしたとき、あるいはタイムアウトして消えたときに、notifyWith... に渡した context を引数にしてコールバックメソッドが呼ばれます。

- (void)tinyGrowlClient:(TinyGrowlClient*)sender didClick:(id)context
{
    NSLog(@"clicked: %@", context);
}

- (void)tinyGrowlClient:(TinyGrowlClient*)sender didTimeOut:(id)context
{
    NSLog(@"timed out: %@", context);
}

Growl の通知をクリックしたときに、何かアクションを起こしたい場合に便利です。

Echofon for Mac ベータリリース

ぼくが開発している Twitter クライアント、Echofon for Mac がベータリリースされたので、紹介しておきます。

http://echofon.com/twitter/mac/


メインウィンドウ

f:id:Psychs:20091001072534p:image:w228:h316

メインウィンドウは、Twitter の性質上、デスクトップに表示する時間が長いので、コンパクトにまとめました。

複数のアカウントを利用している場合、左下の自分のアバターアイコンをクリックして、アカウントを切り替えることができます。

送信は、画面下のテキストフィールドに入力し、Return キーを押せば ok です (設定で Cmd-Return に変更することも可能)。

Retweet は、コンテキストメニューから送れます。


ユーザプロフィール

f:id:Psychs:20091001073038p:image:w174:h258

タイムライン上のユーザ名やアバターアイコンをクリックすると、ユーザプロフィールをドロワーで表示します。

この画面で、ユーザタイムラインや following、followers を見ることができます。

名前やウェブサイトのURLはリンクになっているので、クリックするとウェブブラウザでリンクを開けます。


Conversation ビュー

f:id:Psychs:20091001072537p:image:w183:h239

タイムライン上で、tweet の右下にあるふきだしリンクをクリックすると Conversation ビューを開くことができます。

この Conversation ビューは、in reply to のリンクをたどり、関係のありそうな tweet をすべて表示するのがいいところです。


キーワードハイライト

f:id:Psychs:20091001072538p:image:w188:h73

プリファレンスの Highlights タブでキーワードを登録しておくと、キーワードにマッチする tweet をハイライト表示してくれます。

たとえば、「echofon」を登録しておくと、「echofon」を含む tweet をすべてハイライトします。

スクロールバーには、どのあたりにハイライトした tweet があるのかを明るい緑の線で表示するので、ハイライトした場所にマウスホイールなどですばやく移動することができます。

なお、デフォルトの空の状態では、自分のユーザ名だけにマッチするようになっています。


iPhone版との既読状態の sync

f:id:Psychs:20091001072539p:image:w171:h57

iPhone の Echofon Pro を利用している場合、Echofon for Mac と既読状態を sync することができます。設定は、プリファレンスでアカウントを選択して、「iPhone Sync」タブから行えます。

設定が完了すると、アカウントのリストに sync マークが表示されます。

この状態でしばらくすると、Echofon Pro と既読状態を同期しはじめます。

この機能により、iPhone とデスクトップで、同じ tweet を未読として2度読むということがほとんどなくなり、非常に快適に Twitter を楽しむことができます。


オートページネータ

f:id:Psychs:20091001075124p:image:w189:h95

タイムラインの一番下に移動すると、自動的に次のページの取得をはじめます。

フィルタバー

f:id:Psychs:20091001072541p:image:w189:h151

タイムラインで Cmd-F を押すと、過去に受信した tweet を検索するフィルタバーを表示できます。

検索したい単語を入力すると、ユーザ名と tweet の本文から検索して、マッチするものを表示してくれます。

検索

f:id:Psychs:20091001072542p:image:w228:h316

Search タブでは、Twitter の検索機能を利用できます。

左の虫メガネのアイコンをクリックすると、検索キーワードの履歴を表示します。

画像つき tweet の送信

f:id:Psychs:20091001080644p:image:w114:h107

画像ファイルをメインウィンドウにドロップすると、tweet に画像を添付することができます。tweet を送信すると、画像は TwitPic にアップロードされ、その URL が末尾に追記されます。


イメージプレビュー

f:id:Psychs:20091001072543p:image:w140:h115

タイムラインで TwitPic や twitgoo などの画像サービスの URL をクリックすると、イメージプレビューのウィンドウを表示します。

オリジナルのサイトを開くには、コンテキストメニューから「View Original」をクリックするか、ダブルクリックしてください。

今後の開発について

Echofon for Mac は、いまのところプレビュー版という扱いでリリースしています。今後、正式版のリリースとともに、有料化される予定になっています。

詳しくは、naan studio の blog を参照してください。

http://blog.naanstudio.com/