wxruby

wxRuby におけるスレッドの扱い

実行に時間のかかる処理を GUI をブロックせずに行いたい場合、通常はタイマかスレッドを使ってバックグラウンドで処理を実行します。wxRuby でも Wx::Timer.every を使って擬似的な並列処理をさせることが可能ですが、この場合プログラマがタイマイベントに…

Ubuntu 10.04 LTS での wxRuby のビルド with RVM

現在 Linux向けとして配布されている wxRuby の gem は Ubuntu 9.04上で/9.04向けにビルドされたものであり、9.10以降の Ubuntu では gem install wxruby とやっても wxRuby は動きません。*1 wxruby Installation woes on Ubuntu 9.10 - Ruby Forum http:/…

wxRubyノート - ListCtrl を使ってサムネイル一覧を表示してみる

wxRuby で開発中の個人用ツールにて画像のサムネイル一覧を表示する必要があったため、Wx::ListCtrl を使ってできるか、簡単なサンプルを書いて試してみた。以前 ListCtrl の表示モードについて調べたときに、Wx::ImageList を使ってアイコンの一覧を表示さ…

wxRubyノート - evt_xxx とスコープ

evt_xxx にシンボルを渡す場合のスコープ上の制約について。書いているうちに前置きが長くなってしまった。本題が始まるのはだいぶ下の方です。前置きは適当に飛ばして下さい(;^ω^) 前置き wxRuby ではイベントに対するハンドラの設定(connect)に、一連…

wxRubyノート - Rubyスタイルのアクセサメソッドが使える仕組み

前回のついでというか続き。書き出しがまったく同じだけどご愛嬌で。wxRuby は C++ で書かれたクロスプラットホームなウィジェット・ツールキット、 wxWidgets の Rubyバインディングである。よって、オブジェクトの属性にアクセスするためには、バインド先…

wxRubyノート - Wx::Window.new のハッシュ引数がパースされる仕組み

wxRuby は C++ で書かれたクロスプラットホームなウィジェット・ツールキット、 wxWidgets の Rubyバインディングである。よって、ウィジェットを生成するための new は本来、バインド先の C++ のコンストラクタのインターフェイスに合わせ、 text = Wx::Tex…

wxRubyノート - Dialog いろいろ - caption, title, message まとめ

Common dialogs のそれぞれについて、コンストラクタ(new)の引数上 caption, title あるいは message とされているものの表示位置とデフォルト値についてまとめ。赤で囲っているのが caption, title青で囲っているのが message Wx::ColourDialog caption, …

wxRubyノート - ListCtrl の表示モードまとめ

ListCtrl の4つの表示モードについて、それぞれの外観とアイテムの登録方法の違いを簡単にまとめてみる。 List View Wx::LC_LIST テキストの左に小さなアイコン。アイテムは ListCtrl#insert_item で線形に流し込んでいくイメージ。最初のアイテム(index 0…

wxRubyノート - ArtProvider から取得できるアイコン一覧@GTK

ListCtrl や TreeCtrl では、アイテムに設定するアイコンを ImageList から選択するようになっている。システム標準のアイコンを使って ImageList を手っ取り早く作る方法を調べていて、ArtProvider なるものを発見した。wxRuby のクラスリファレンスには載…

wxRubyノート -- OK と Cancel、どちらが先か? [2] -- StdDialogButtonSizer で万事解決

半年程前に以下のようなことを書いた。 wxRubyノート -- OK と Cancel、どちらが先か? ダイアログで「OK」ボタンと「Cancel」ボタンを作るとき、その順番をどうするか。自分の環境に合わせて決め打ちにすると、作ったプログラムを配布する場合*1に問題にな…

wxRubyノート - Colour を Color にする

wxRuby の、というか wxWidgets の世界では「色」を表す color を colour と表記する。色を表現するためのクラスは Wx::Colour であるし、ウィジェットに色を設定するメソッド名も set_background_colour とか、set_foreground_colour といった具合だ。なん…

Ubuntu 9.10用の wxRuby gem (非公式)

Ubuntu 9.10用にビルドされた wxRuby の gem がこっそりアップされている。 wxruby Installation woes on Ubuntu 9.10 - Ruby Forum RubyForge にアップされたわけではなく、あくまで非公式のものだが「インストールが難しいんだよ!」というユーザーの声に…

wxRubyノート -- StyledTextCtrl で Ruby用スクリプトエディタを作る (1) -- シンタックス・ハイライト

StyledTextCtrl を使って Ruby用のスクリプトエディタを作成中。なぜにそんなものを作る必要があるのかは秘密。 Wx::StyledTextCtrl Wx::StyledTextCtrl It is particularly suited for editing source code of a variety of programming languages. It has …

wxRubyノート -- OK と Cancel、どちらが先か?

自作アプリの UI を作っていて疑問に思ったので調べてみた。 Alertbox: 「OK」「キャンセル」、どちらが先か? -- Jakob Nielsen博士のAlertbox このようなケースでは、どっちにしようが大差はないことが多い。どちらにももっともな根拠があるし、いずれにし…

wxRubyノート -- Segmentation fault に対処する (2)

前回は wxRuby において Segmentation fault が起こる原因とその対処法について、とりあえず調べてみました的な内容だった。 アプリケーションを起動後すぐにクラッシュさせられる状態にしたら、後は地道にコードの怪しい部分をコメントアウトしては起動、コ…

wxRubyノート -- ScrolledWindow の(変てこな)勝手スクロールを抑制する

ScrolledWindow内に Panel をはめ込み、その Panel上に 20〜30 のコントロール(CheckBox や TextCtrl など)を GridSizer にて配置した設定インターフェースを作った。プログラムを走らせるとちゃんと表示されて、スクロールもうまくいくのだが、ひとつ問題…

wxRubyノート -- KeyEvent -- key down/up と char の違い

key down/up と char の違いについて、 Wx::KeyEvent を参考にまとめる。英文は上記リンクよりの引用。 Event Key Code key up/down untranslated key codeThe untranslated code for alphanumeric keys is always an upper case value. For the other keys …

wxRubyノート -- raise が raise を呼ぶ

例外を発生させようとした raise が例外を発生させるという事態が発生。 ./lib/hrex/ui/object-props-grid.rb:227:in `raise': wrong # of arguments(2 for 0) (ArgumentError) 問題の箇所↓ raise TypeError, "unknown value type for `#{prop}' property of…

wxRubyノート -- Segmentation fault に対処する (1)

wxRuby を使って開発中のアプリケーションをテストで動かしていると、突然 Segmentation fault でクラッシュした。 /cygdrive/c/ruby/bin/ruby.exe -Ku -Ilib hrex test/apps/ta_containee_align.yaml ./lib/hrex/runtime.rb:59: [BUG] Segmentation fault r…

wxRuby を使ってみる

Ruby-GNOME2 と人気を二分しているとかいう wxRuby を試してみる。環境は Windows。1 Click Ruby Installer にて Ruby はインストール済み。まずは、GUIツールキット本体である wxWidgets のインストール。本家にて Windows用バイナリ(インストーラ形式)が…