Archive@2008/03
Twitter Updates for 2008-03-31
- reviewboardやっと理解してきた。アップロードしたdiffがバージョン管理されて、diffのdiffがとれるって文字にするとわかりにくいw #
- とりあえずmonologista用にreviewboardワークフローでも書いてみますか #
- スクリーンショットを領域選択してそこにもコメントつけれるのかー #
- Djbletsのソース読んでみよーっと #
- Adiumの開発はやたらと活発だなあ #
- ソースチェックアウトにかかる時間が半端じゃない #
Powered by Twitter Tools.
- Posted at:
- 2008/03/31 23:59:59
- 0 Comments
- 0 TrackBacks
- Tags:
- Trackback:
- http://blog.monospace.jp/2008/03/31/twitter-updates-for-2008-03-31/trackback/
Twitter Updates for 2008-03-30
- ReviewBoardに送ったパッチが採用された! #
- これからスタジオ入り #
- ひそかにfreeHg にPyObjCのサンプルあげてます http://tinyurl.com/3bofrf #
- reviewboardに大きな変更があったけど変更手順に明らかな間違いがあったから報告したんだけど、自分が間違ってたらどうしようw #
- 空気が読めない日本人というテーマで攻めていこう #
Powered by Twitter Tools.
- Posted at:
- 2008/03/30 23:59:59
- 0 Comments
- 0 TrackBacks
- Tags:
- Trackback:
- http://blog.monospace.jp/2008/03/30/twitter-updates-for-2008-03-30/trackback/
Twitter Updates for 2008-03-29
Powered by Twitter Tools.
- Posted at:
- 2008/03/29 23:59:59
- 0 Comments
- 0 TrackBacks
- Tags:
- Trackback:
- http://blog.monospace.jp/2008/03/29/twitter-updates-for-2008-03-29/trackback/
Twitter Updates for 2008-03-28
Powered by Twitter Tools.
- Posted at:
- 2008/03/28 23:59:59
- 0 Comments
- 0 TrackBacks
- Tags:
- Trackback:
- http://blog.monospace.jp/2008/03/28/twitter-updates-for-2008-03-28/trackback/
PyObjCでメニューバーアプリ〜Color Pickerを作る4〜
今回の課題は、「メニューバーのメニューにカラーサンプルと16進数値を表示する」です。 こんな感じで、
別に簡単そうな話なんですが、ちょっと技が必要でした。
単純にメニューの一番上にメニュー項目を追加していくだけであれば、
[python]
newitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(
colorDict.keys()[0], objc.nil, '')
self.statusMenu.insertItem_atIndex_(newitem, 0)[/python]
こんな感じで、NSMenuItemのインスタンスをNSMenu(ここではself.statusMenu)に突っ込むだけですが、
左側にサラーサンプルを表示したい場合ちょっとやっかいです。
実は、左に表示するのが、画像ファイルなら簡単にできるんです。
[python]# newitemImageはあらかじめ作ったNSImageのインスタンス
newitem.setImage_(newitemImage)[/python]
という風にNSMenuに突っ込む前に、setImage_で画像を指定します。
今回は、画像ではなくて、その色で塗りつぶされた四角形を表示したいです。
画像が指定できるんであれば、四角形を画像っぽいものにしたらいいというわけで、
ここで使えるのが、NSCustomImageRepというクラス。
[python]
customRep = NSCustomImageRep.alloc().initWithDrawSelector_delegate_(self.drawImage, self)
newitemImage = NSImage.alloc().initWithSize_((16.0, 16.0)) # サイズだけ指定してNSImageをつくる
newitemImage.addRepresentation_(customRep)
newitem.setImage_(newitemImage)
def drawImage(self, sender):
"""
CumtomImageRepが使用する描画メソッド
"""
### 塗る色を指定(self.colorはNSColorクラスのインスタンス)
self.color.setFill()
### 上で指定した色で塗る
NSBezierPath.fillRect_(((0.0, 0.0), (16.0, 16.0)))
[/python]
NSBezierPathを使って塗りつぶされた四角形を作ってそれを画像として使います。
これでNSMenuに突っ込めるようになりました。
Cocoaはほんと便利です。
次回に続く。多分次はクリップボードにコピーするあたり。
- Posted at:
- 2008/03/28 01:43:22
- 0 Comments
- 0 TrackBacks
- Tags:
- Trackback:
- http://blog.monospace.jp/2008/03/28/pyobjc_color_picker04/trackback/
Twitter Updates for 2008-03-27
- こくきんいってくる #
- パッチをチケットのとこにあげたらReviewBoardのReviewBoardにあげてっていわれたのであげた #
- 動画共有サイト的な話が来たなあ #
- PyMediaっていうのがあるのかあ http://pymedia.org/faq.html #
- pyffmpeg とりあえず検索しなくてもありそうな気がしたw http://code.google.com/p/pyffmpeg/ #
Powered by Twitter Tools.
- Posted at:
- 2008/03/27 23:59:59
- 0 Comments
- 0 TrackBacks
- Tags:
- Trackback:
- http://blog.monospace.jp/2008/03/27/twitter-updates-for-2008-03-27/trackback/
PyObjCでメニューバーアプリ〜Color Pickerを作る3〜
Color Pickerを作るの続きです。ここからは重要そうなとこを中心に書いていきます。 今回は、カラーパネルを閉じたときに色の履歴に追加するという処理をいれるというあたりです。 システムのカラーパネルを開くのは、Interface Builder (IB)からでもできたんですが、 Color Pickerを閉じたときに保存という処理がそれではできないような気がしたので、オープン処理から行ってみました。 カラーパネルを開くには、こんなアクションを書きます。 [python] @objc.IBAction def openColorPanel_(self, sender): self.colorPanel = NSColorPanel.sharedColorPanel() self.colorPanel.orderFront_(objc.nil) self.colorPanel.setDelegate_(self) self.app.activateIgnoringOtherApps_(objc.YES) [/python] これを、メニューのShow ColorsとIBでつなぎます。 NSColorPanel.sharedColorPanel()でカラーパネルは開きます。 このときに画面の一番手前に持ってきたいので、orderFront_メッセージを送ります。 setDelete_(self)でカラーパネルから受け取るdelegateを自分自身のクラスに設定します。 あとは、self.app.activateIgnoringOtherApps_(objc.YES)で、このアプリケーションが、 他のアプリケーションを差し置いて最前面に現れるようにします。 ちなみにこれをしないと、カラーパネルの外でマウスをクリックした場合にカラーパネルが消失してしまい、 再表示できなくなってしまったりしました。 delegateメソッドはこんな感じです。 [python]def changeColor_(self, sender): color = sender.color() #senderはNSColorPanel try: self.colorDict = self.convertFromColorToHex(color) except: self.colorDict = {'#FFFFFF': NSColor.whiteColor()} def windowShouldClose_(self, sender): if len(self.historyColors) == self.maxHistoryNum: self.historyColors = self.historyColors[1:] if len(self.colorDict) > 0: self.historyColors.append(self.colorDict) self.rebuildMenu() self.colorPanel.orderOut_(objc.nil) [/python] changeColor_はカラーパネル上で色をクリックしたときに毎回呼ばれます。 クリックしたときに取得できるのは、NSColorPanelクラスなので、 sender.color()でNSColorのインスタンスを取得します。 今回、#FFFFFFという16進数値が欲しいので、これに変換します。 後々、NSColorも必要になるので、dictの値として入れておきました。 WindowShoudClose_はカラーパネルが閉じられたときに呼ばれます。 このときに最後にクリックされていた色を履歴として保存します。履歴は、あらかじめ設定した最大履歴表示数分まで残します。 あとは、メニューを再構築して、履歴を表示します。最後にorderOut_でカラーパネルを閉じる処理をします。 カラーパネル部分はこんな感じです。 次はメニューの再構築部分です。 つづく。- Posted at:
- 2008/03/27 01:29:18
- 0 Comments
- 0 TrackBacks
- Tags:
- Trackback:
- http://blog.monospace.jp/2008/03/27/pyobjc_color_picker03/trackback/
Twitter Updates for 2008-03-26
- 法務局にきた。大変混雑しておりますよ。 #
- しかし1000円分で6リットルしかガソリンはいらんかった #
- 法務局のスピーカーが無駄にBose #
- HP ProLiant ML115 を2台買ってみた #
- 今買う音楽たまってるのにー。edIT, Venetian Snares, PlatにMatryoshkaが追加 #
- Reviewboardの翻訳用のパッチができた。とりあえずこれ提出しよ #
Powered by Twitter Tools.
- Posted at:
- 2008/03/26 23:59:59
- 0 Comments
- 0 TrackBacks
- Tags:
- Trackback:
- http://blog.monospace.jp/2008/03/26/twitter-updates-for-2008-03-26/trackback/
ReviewBoard翻訳中−Djangoの国際化に関するメモ
最近はReviewBoardをいじってるんですが、なんとなく日本語化してみようと思って作業をしてます。 Djangoには国際化を簡単にできるシステムがあって、ReviewBoardもそれに従って作られているので割と簡単にできています。 ちなみに、部分的に翻訳文字列としてマークされてない部分があって(かなり)、 勢いでチケットを切ってパッチを送りつけてみました。 人生初パッチだけど、使ってもらえるんかな。 ところで、ちょっとはまったのでメモなんですが、 国際化用のファイルは、日本語の場合だと、 [code]<プロジェクトルート>/locale/ja/LC_MESSAGES/django.(po|mo)[/code] こういう感じに配置するんですが、ReviewBoardの場合は、 [code]<プロジェクトルート>/conf/locale/ja/LC_MESSAGES/django.(po|mo)[/code] というように置かれています。 あらかじめ、localeもしくはconf/localeというディレクトリがプロジェクトルートにある状態で、 make-messages.pyを実行すると翻訳文字列の解析をしてdjango.poが作ってくれて、django.poを編集後、 compile-message.pyで、いずれの場合もdjango.moファイルが出来上がるんですが、 conf/localeに置いた場合、デフォルトではdjango.moを見に行ってくれません。つまり日本語化されません。 localeに置いた場合はちゃんと見てくれますので、日本語化されます。 ちゃんと.moファイルまでできたんだからうまくいってそうなイメージだったのでちょっとはまりました。 conf/localeなどデフォルトでDjangoが見に行かない場所に置く場合は、settings.pyなどに [python]LOCALE_PATHS = ( '/path/to/project/conf/locale/', )[/python] を書く必要があります。 案外常識なのかもしれないですけど、一応メモです。 ちなみにDjangoの国際化については、和訳ドキュメントをご覧ください。 国際化:Django オンラインドキュメント和訳 http://michilu.com/django/doc-ja/i18n/- Posted at:
- 2008/03/26 23:42:02
- 0 Comments
- 0 TrackBacks
- Tags:
- Trackback:
- http://blog.monospace.jp/2008/03/26/django_i18n/trackback/
Twitter Updates for 2008-03-25
- 便乗してMercurial1.0にアップデート #
- LDR注目度ランキング11位だーとおもったら一個上にHIGEがいた件。http://reader.livedoor.com/ranking/hot.html #
- 次はアルファロメオ買おうかな http://journal.mycom.co.jp/news/2008/03/25/011/index.html #
- Review Boardのバグ発見。SITE_ROOTのcontextがどっかで欠落しとるぞ #
- どうやら昨日報告されているバグっぽい #
- ReviewBoardはコード行単位でコメントがつけれることが今頃判明 #
- とりあえず翻訳文字列になってないとこがあるよってチケットきっといた #
- しばらくはソース書き換えよー #
Powered by Twitter Tools.
- Posted at:
- 2008/03/25 23:59:59
- 7 Comments
- 0 TrackBacks
- Tags:
- Trackback:
- http://blog.monospace.jp/2008/03/25/twitter-updates-for-2008-03-25/trackback/