Программирование на языке 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
:
Поделиться:
Популярные книги
Базис
7. Глэрд
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Отмороженный 12.0
12. Отмороженный
Фантастика:
боевая фантастика
попаданцы
рпг
фантастика: прочее
5.00
рейтинг книги
Кодекс Охотника. Книга XXXIII
33. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Матабар VIII
8. Матабар
Проза:
магический реализм
5.00
рейтинг книги
Бастард Императора. Том 12
12. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Мой муж – чудовище! Изгнанная жена дракона
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Группа крови на рукаве. Том 2
2. ГК
Фантастика:
боевая фантастика
альтернативная история
постапокалипсис
5.00
рейтинг книги
Черный Маг Императора 19
19. Черный маг императора
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XV
15. Кодекс Охотника
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Сборник коротких эротических рассказов
Любовные романы:
эро литература
love action
7.25
рейтинг книги
Гранит науки. Том 4
4. Герой Империи
Фантастика:
боевая фантастика
городское фэнтези
попаданцы
5.00
рейтинг книги
Наследие Маозари 5
5. Наследие Маозари
Фантастика:
фэнтези
юмористическое фэнтези
5.00
рейтинг книги
Палач
4. Викс
Фантастика:
фэнтези
7.27
рейтинг книги
На границе империй. Том 9. Часть 3
16. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00