Программирование на языке Ruby
Шрифт:
@text_field = FXTextField.new(self, 20, nil, 0,
text_options)
@text_field.text = ""
layout_options = LAYOUT_SIDE_TOP | FRAME_NONE |
LAYOUT_FILL_X | LAYOUT_FILL_Y |
РАСK_UNIFORM_WIDTH
layout = FXHorizontalFrame.new(self, layout_options)
options = FRAME_RAISED | FRAME_THICK |
LAYOUT_RIGHT | LAYOUT_CENTER_Y
hide_btn = FXButton.new(layout, "&Hide", nil, nil, 0,
options)
hide_btn.connect(SEL_COMMAND) { hide }
end
def text
@text_field.text
end
end
class ModalDialogBox < FXDialogBox
def initialize(owner)
#
Сначала вызвать инициализатор базового класса.
super(owner, "Test of Dialog Box",
DECOR_TITLE|DECOR_BORDER)
text_options = JUSTIFY_RIGHT | FRAME_SUNKEN |
FRAME_THICK | LAYOUT_SIDE_TOP
@text_field = FXTextField.new(self, 20, nil, 0,
text_options)
@text_field.text = ""
layout.options = LAYOUT_SIDE_TOP | FRAME_NONE |
LAYOUT_FILL_X | LAYOUT_FILL_Y |
PACK_UNIFORM_WIDTH
layout = FXHorizontalFrame.new(self, layout_options)
options = FRAME_RAISED | FRAME_THICK |
LAYOUT_RIGHT | LAYOUT_CENTER_Y
cancel_btn = FXButton.new(layout, "&Cancel", nil,
self, 0, options)
cancel_btn.connect(SEL_COMMAND) do
app.stopModal(self, 0)
hide
end
accept_btn = FXButton.new(layout, "&Accept", nil,
self, 0, options)
accept_btn.connect(SEL_COMMAND) do
app.stopModal(self, 1)
hide
end
end
def text
@text_field.text
end
end
class DialogTestWindow < FXMainWindow
def initialize(app)
#
Сначала инициализировать базовый класс.
super(app, "Dialog Test", nil, nil,
DECOR_ALL, 0, 0, 400, 200)
layout_options = LAYOUT_SIDE_TOP | FRAME_NONE |
LAYOUT_FILL_X | LAYOUT_FILL_Y |
PACK_UNIFORM_WIDTH
layout = FXHorizontalFrame.new(self, layout_options)
button_options = FRAME_RAISED | FRAME_THICK |
LAYOUT_CENTER_X | LAYOUT_CENTER_Y
nonmodal_btn = FXButton.new(layout, "&Non-Modal Dialog...", nil,
nil, 0, button_options)
nonmodal_btn.connect(SEL_COMMAND) do
@non_modal_dialоg.show(PLACEMENT_OWNER)
end
modal_btn = FXButton.new(layout, "&Modal Dialog...", nil,
nil, 0, button_options)
modal_btn.connect(SEL_COMMAND) do
dialog = ModalDialogBox.new(self)
if dialog.execute(PLACEMENT_OWNER) == 1
puts dialog.text
end
end
getApp.addTimeout(1000, method(:onTimer))
@non_modal_dialog = NonModalDialogBox.new(self)
end
def onTimer(sender, sel, ptr)
text = @non_modal_dialog.text
unless text == @previous
@previous = text
puts @previous
end
getApp.addTimeout(1000, method(:onTimer))
end
def create
super
show(PLACEMENT_SСREEN)
end
end
application = FXApp.new
DialogTestWindow.new(application)
application.create
application.run
Перед началом длинного вычисления в FXRuby следует заменить текущий курсор курсором ожидания, а по завершении восстановить исходный. В классе
FXApp
есть два удобных метода, позволяющих изменить курсор без явного запоминания предыдущего: beginWaitCursor
и endWaitCursor
. Если метод beginWaitCursor
вызывается в блоке, то по выходе из блока будет автоматически вызван метод endWaitCursor
:
Поделиться:
Популярные книги
Корона Тафелона
3. Ведьмина дорога
Фантастика:
фэнтези
5.00
рейтинг книги
Некромант . Трилогия
Перстень некромансера
Фантастика:
фэнтези
7.64
рейтинг книги
Будаг — мой современник
Проза:
советская классическая проза
5.00
рейтинг книги
Искатель, 2011 №5
388. Искатель
Приключения:
прочие приключения
5.00
рейтинг книги
Собрание сочинений. Том 45
Научно-образовательная:
философия
5.00
рейтинг книги
Ермак. Регент
10. Ермак
Фантастика:
попаданцы
альтернативная история
4.80
рейтинг книги
Сёгун
Азиатская сага
Приключения:
исторические приключения
прочие приключения
9.41
рейтинг книги
Тот, кто знает. Книга вторая. Перекресток
1. Преступления правильной жизни
Детективы:
прочие детективы
7.91
рейтинг книги
3ds Max 2008. Секреты мастерства
Компьютеры и Интернет:
программное обеспечение
5.00
рейтинг книги
Справедливость для всех
6. Ойкумена
Фантастика:
эпическая фантастика
попаданцы
фэнтези
5.00
рейтинг книги
Разбуди в себе исполина
Научно-образовательная:
психология
5.00
рейтинг книги
1001 заговор сибирской целительницы / Наталья Ивановна Степанова
Дом и Семья:
прочее домоводство
7.86
рейтинг книги
Кровь, слезы и лавры
Исторические миниатюры
Проза:
историческая проза
5.00
рейтинг книги
Последний реанорец. Том V
4. Высшая Речь
Фантастика:
аниме
фэнтези
попаданцы
5.00