Чтение онлайн

на главную - закладки

Жанры

Программирование на языке 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
:

Поделиться:
Популярные книги

На границе империй. Том 8

INDIGO
12. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 8

Излом

Осадчук Алексей Витальевич
10. Последняя жизнь
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Излом

Барон не признает правила

Ренгач Евгений
12. Закон сильного
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Барон не признает правила

Ночной администратор

Ле Карре Джон
Детективы:
шпионские детективы
7.14
рейтинг книги
Ночной администратор

Наследник

Шимохин Дмитрий
1. Старицкий
Приключения:
исторические приключения
5.00
рейтинг книги
Наследник

Сотник

Ланцов Михаил Алексеевич
4. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Сотник

Войны Наследников

Тарс Элиан
9. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Войны Наследников

Герцог и я

Куин Джулия
1. Бриджертоны
Любовные романы:
исторические любовные романы
8.92
рейтинг книги
Герцог и я

Последний рейд

Сай Ярослав
5. Медорфенов
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Последний рейд

Адвокат

Константинов Андрей Дмитриевич
1. Бандитский Петербург
Детективы:
боевики
8.00
рейтинг книги
Адвокат

Адвокат Империи 4

Карелин Сергей Витальевич
4. Адвокат империи
Фантастика:
городское фэнтези
аниме
дорама
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Адвокат Империи 4

Двойник Короля 6

Скабер Артемий
6. Двойник Короля
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Двойник Короля 6

Ярар. Начало

Грехов Тимофей
1. Ярар
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ярар. Начало

Контуженый

Бакшеев Сергей
Детективы:
боевики
5.00
рейтинг книги
Контуженый