root/lang/ruby/ruwin/test.rb

Revision 28575, 2.4 kB (checked in by isaisstillalive, 4 years ago)
  • サンプルのエラー修正
Line 
1$LOAD_PATH << File.expand_path("lib")
2require "ruwin"
3
4class MyWindow < Ruwin::Window
5  include Ruwin::Component::Clickable
6 
7  attr_reader :children
8  def initialize *args
9    @children = {}
10    super
11  end
12end
13
14window = MyWindow.new 0, 0, 500, 500 do |window|
15  window.hscroll.visible = true
16  window.vscroll.visible = true
17end
18# サブウィンドウの設定
19window.children[:button] = Ruwin::Button.new window, 0, 0, 100, 30 do |control|
20  control.caption = "Change"
21end
22def (window.children[:button]).clicked
23  @parent.children[:checkbox].indeterminate = !@parent.children[:checkbox].indeterminate
24  @parent.children[:checkbox].caption =
25    if @parent.children[:checkbox].indeterminate
26      "3STATE"
27    else
28      "CHECKBOX"
29    end
30end
31
32def window.on_command msg
33  case msg.lParam
34  when @children[:button].hWnd
35    @children[:button].clicked
36  end
37end
38def window.on_focus msg
39  p :WM_SETFOCUS
40end
41# window.addEvent Ruwin::Message::WM_KEYDOWN
42# window.vscroll.auto_disable = true
43# p window.vscroll.__send__(:get_scroll_info)
44window.vscroll.min       = -100
45window.vscroll.max       =  100
46window.vscroll.page_size = 0
47window.vscroll.position  = 95
48window.hscroll.page_size = 1
49window.hscroll.max       = 100
50
51window.children[:checkbox] = Ruwin::CheckBox.new window, 0, 30, 100, 30 do |control|
52  control.indeterminate = true
53  control.caption = "3STATE"
54end
55=begin
56Ruwin::RadioButton.new window, 0, 60, 100, 30 do |control|
57  control.caption = "caption"
58end
59Ruwin::RadioButton.new window, 0, 90, 100, 30 do |control|
60  control.caption = "caption"
61end
62Ruwin::RadioButton.new window, 0, 120, 100, 30 do |control|
63  control.caption = "caption"
64end
65=end
66
67window.children[:scroll_value] = Ruwin::Static.new window, 200, 200, 100, 30
68control = Ruwin::ScrollBar::Horz.new window, 0, 150, 100, 30
69control.min = -100
70control.max =  100
71control.position = 50
72control.page_size = 10
73def control.changed value
74  @parent.children[:scroll_value].caption = value.to_s
75  p @parent.children[:list_box].position
76  @parent.children[:list_box].selection value
77  p @parent.children[:list_box].position
78end
79
80list_box = window.children[:list_box] = Ruwin::ListBox::Multiple.new(window, 300, 200, 100, 100)
8110.times{|i| list_box.push "text_#{i}" }
8210.times{|i| list_box.insert 0, "text_#{i}" }
83p list_box.each.with_index{|v, i| list_box.selection i if v.match /9$/ }
84
85window.show
86
87SWin::Application.messageloop
Note: See TracBrowser for help on using the browser.