Ticket #16088

簡易レスポップアップ

Open Date: 2009-04-11 00:49 Last Update: 2009-04-29 02:39

Reporter:
Owner:
Status:
Closed
Component:
(None)
MileStone:
v0.3 (deleted)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
None
File:
None

Details

v0.2ではあったけどその後消えたレスポップアップ。そのうちやる。

Ticket History (3/6 Histories)

2009-04-11 00:49 Updated by: aiwotaprog
  • New Ticket "簡易レスポップアップ" created
2009-04-11 03:40 Updated by: aiwotaprog
  • Milestone Update from (None) to v0.3 (deleted)
2009-04-11 19:11 Updated by: aiwotaprog
Comment

gtk.WINDOW_POPUPを使う。 この中にThreadViewを入れてあげる。 表示について アンカー(>>1 的なやつ)の上にポインターが来たら出す。 motion-notify-eventで捕まえる。 位置はポインターの近く。 既に表示しているpopupがある場合は何もしない。 popupを消すタイミングはタイマーを使う。 100msごとにポインターの位置を調べる。 ポインターがpopupの上にある場合は何もせず、タイマー続行。 ポインターがpopup元のアンカーの上にある場合も何もせず、タイマー続行。 それ以外はpopupを破壊して、タイマーを止める。 タイマーはgobject.timeout_addで良い。 ポインターの位置はWidgetのget_pointer methodで取得。 GDK Windowのget_origin methodから座標変換してPopupの位置を指定。

2009-04-18 23:12 Updated by: aiwotaprog
Comment

多段ポップアップにしてみました。

表示

表示するタイミングはカーソルがアンカーの上にきたとき。 既にそのアンカーからポップアップが表示されている場合は何もしない。

消去

タイマーを使ってカーソルの位置をトラッキング。このタイマーのコールバックでポップアップを消す。以下がポップアップを消す条件。

  • カーソルがどのポップアップ上にもない場合は全てのポップアップを消す。
  • カーソルが一番上のポップアップにある時は何もしない。
  • カーソルの下のアンカーからポップアップが出ている場合でない場合、カーソルがあるポップアップより上のポップアップを全て消す。

タイマーを止めるのはポップアップが全て消えたとき。

ThreadView

ポップアップに入れるThreadViewはThreadWindowで使っているものと同じものを用いる。 ThreadWindowのThreadViewのResLayoutをcloneして使う。Elementをcopy.copyする。 ElementTextは横幅に応じた折り返し情報を持つため、同じオブジェクトは使ってはならない。

commit

http://git.sourceforge.jp/view?p=fukui-no-namari/fukui-no-namari.git;a=commit;h=558ea9cebfc7dc1dca74961b5deeafbc4cc34c37

2009-04-26 21:49 Updated by: aiwotaprog
Comment

ポップアップが画面からはみ出ないようにしたい。

2009-04-29 02:39 Updated by: aiwotaprog
  • Status Update from Open to Closed
  • Ticket Close date is changed to 2009-04-29 02:39
Comment

ポップアップのサイズ

幅300で固定、縦は200以下になるようにした。

ポップアップの位置

基本的にカーソルの右下、画面からはみ出す場合は左に出したり上に出したりする。

空の行

文字がない行はカット。

commit

http://git.sourceforge.jp/view?p=fukui-no-namari/fukui-no-namari.git;a=commit;h=97d8cb40f5d4517e08e7381becea0fb05ee53533

Attachment File List

No attachments

Edit

Please login to add comment to this ticket » Login