Программирование на языке 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
:
Поделиться:
Популярные книги
Фурцева
1303. Жизнь замечательных людей
Документальная литература:
биографии и мемуары
4.25
рейтинг книги
Преисподняя
54. Книга-загадка, книга-бестселлер
Фантастика:
научная фантастика
8.29
рейтинг книги
Палач
Фантастика:
ужасы и мистика
8.49
рейтинг книги
Имперец. Том 1 и Том 2
1. Имперец
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Первый среди равных
1. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Жажда ночи
3. В ритме танго
Любовные романы:
любовно-фантастические романы
эро литература
8.43
рейтинг книги
Билет на ладью Харона
2. Дырка для ордена
Фантастика:
альтернативная история
8.95
рейтинг книги
Понюшка (Snuff)
39. Плоский мир
Фантастика:
юмористическая фантастика
8.71
рейтинг книги
Монстр из прошлого тысячелетия
5. Соприкосновение миров
Фантастика:
попаданцы
аниме
фэнтези
4.75
рейтинг книги
Уго Чавес
1432. Жизнь замечательных людей
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Неучтенный элемент. Том 9
9. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Первопроходцы
638. Жизнь замечательных людей
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Итальянский фашизм
Научно-образовательная:
история
политика
5.00
рейтинг книги
Пляска смерти
Проза:
историческая проза
6.25