📄 defaultbuttondemo.pro
字号:
/*****************************************************************************
Copyright (c) Prolog Development Center A/S
******************************************************************************/
implement defaultButtonDemo
inherits dialog
open core, vpiDomains, resourceIdentifiers, stdio
constants
className = "DefaultButtonDemo/defaultButtonDemo".
classVersion = "".
clauses
classInfo(className, classVersion).
clauses
new(Parent) :-
dialog::new(Parent),
generatedInitialize(),
listBox_ctl:addList([
"Button #1",
"Button #2",
"Button #3",
"Another Button #1",
"Another Button #2",
"One More Button #1",
"One More Button #2"]),
listBox_ctl:selectAt(0, true).
predicates
onListBoxSelectionChanged : listControl::selectionChangedListener.
clauses
onListBoxSelectionChanged(LB) :-
NewDefaultButton = index_defaultButton(LB:tryGetSelectedIndex()),
!,
writef("Setting <%s> as the default button in the dialog\n", NewDefaultButton:getText()),
setDefaultButton(NewDefaultButton).
onListBoxSelectionChanged(_).
predicates
index_defaultButton : (integer Index) -> button Button determ.
clauses
index_defaultButton(0) = button1_ctl.
index_defaultButton(1) = button2_ctl.
index_defaultButton(2) = button3_ctl.
index_defaultButton(3) = anotherButton1_ctl.
index_defaultButton(4) = anotherButton2_ctl.
index_defaultButton(5) = oneMoreButton1_ctl.
index_defaultButton(6) = oneMoreButton2_ctl.
predicates
onButton1 : button::clickResponder.
clauses
onButton1(Source) = button::defaultAction() :-
writef("I am %s click responder. Button caption = %s\n", predicate_name(), Source:getText()).
predicates
onButton2 : button::clickResponder.
clauses
onButton2(Source) = button::defaultAction() :-
writef("I am %s click responder. Button caption = %s\n", predicate_name(), Source:getText()).
predicates
onButton3 : button::clickResponder.
clauses
onButton3(Source) = button::defaultAction() :-
writef("I am %s click responder. Button caption = %s\n", predicate_name(), Source:getText()).
predicates
onAnotherButton1 : button::clickResponder.
clauses
onAnotherButton1(Source) = button::defaultAction() :-
writef("I am %s click responder. Button caption = %s\n", predicate_name(), Source:getText()).
predicates
onAnotherButton2 : button::clickResponder.
clauses
onAnotherButton2(Source) = button::defaultAction() :-
writef("I am %s click responder. Button caption = %s\n", predicate_name(), Source:getText()).
predicates
onOneMoreButton1 : button::clickResponder.
clauses
onOneMoreButton1(Source) = button::defaultAction() :-
writef("I am %s click responder. Button caption = %s\n", predicate_name(), Source:getText()).
predicates
onOneMoreButton2 : button::clickResponder.
clauses
onOneMoreButton2(Source) = button::defaultAction() :-
writef("I am %s click responder. Button caption = %s\n", predicate_name(), Source:getText()).
% This code is maintained by the VDE do not update it manually, 19:52:25-21.10.2004
facts
close_ctl : button.
listBox_ctl : listBox.
button1_ctl : button.
button2_ctl : button.
button3_ctl : button.
anotherButton1_ctl : button.
anotherButton2_ctl : button.
edit1_ctl : editControl.
oneMoreButton1_ctl : button.
oneMoreButton2_ctl : button.
edit_ctl : editControl.
edit2_ctl : editControl.
predicates
generatedInitialize : ().
clauses
generatedInitialize():-
setFont(vpi::fontCreateByName("MS Sans Serif", 8)),
setText("Default Button Demo"),
setRect(rct(50,40,334,271)),
setModal(true),
setDecoration(titlebar([closebutton()])),
close_ctl := button::newCancel(This),
close_ctl:setText("&Close"),
close_ctl:setPosition(228, 208),
listBox_ctl := listBox::new(This),
listBox_ctl:setPosition(8, 8),
listBox_ctl:setSize(72, 188),
listBox_ctl:setSort(false),
button1_ctl := button::new(This),
button1_ctl:setText("Button #1"),
button1_ctl:setPosition(88, 64),
setDefaultButton(button1_ctl),
button2_ctl := button::new(This),
button2_ctl:setText("Button #2"),
button2_ctl:setPosition(144, 64),
button3_ctl := button::new(This),
button3_ctl:setText("Button #3"),
button3_ctl:setPosition(200, 64),
Container_ctl = groupBox::new(This),
Container_ctl:setText("Container"),
Container_ctl:setPosition(88, 84),
Container_ctl:setSize(188, 112),
Container_ctl:setBorderStyle(groupbox::simpleBorder()),
anotherButton1_ctl := button::new(Container_ctl),
anotherButton1_ctl:setText("Another Button #1"),
anotherButton1_ctl:setPosition(4, 20),
anotherButton1_ctl:setSize(61, 12),
anotherButton2_ctl := button::new(Container_ctl),
anotherButton2_ctl:setText("Another Button #2"),
anotherButton2_ctl:setPosition(72, 20),
anotherButton2_ctl:setSize(61, 12),
NestedContainer_ctl = groupBox::new(Container_ctl),
NestedContainer_ctl:setText("Nested Container"),
NestedContainer_ctl:setPosition(4, 40),
NestedContainer_ctl:setSize(172, 56),
NestedContainer_ctl:setBorderStyle(groupbox::simpleBorder()),
edit1_ctl := editControl::new(NestedContainer_ctl),
edit1_ctl:setText(""),
edit1_ctl:setPosition(8, 4),
oneMoreButton1_ctl := button::new(NestedContainer_ctl),
oneMoreButton1_ctl:setText("One More Button #1"),
oneMoreButton1_ctl:setPosition(8, 24),
oneMoreButton1_ctl:setSize(68, 12),
oneMoreButton2_ctl := button::new(NestedContainer_ctl),
oneMoreButton2_ctl:setText("One More Button #2"),
oneMoreButton2_ctl:setPosition(80, 24),
oneMoreButton2_ctl:setSize(68, 12),
edit_ctl := editControl::new(Container_ctl),
edit_ctl:setText(""),
edit_ctl:setPosition(4, 4),
edit2_ctl := editControl::new(This),
edit2_ctl:setText(""),
edit2_ctl:setPosition(88, 48),
Description = textControl::new(This),
Description:setText("Please select the button to be default for the dialog from the listbox. You can inspect which button is currently default by pressing <Enter> when staying on any of the edit controls"),
Description:setPosition(84, 8),
Description:setSize(196, 36),
Description:setAlignBaseline(false),
listBox_ctl:addSelectionChangedListener(onListBoxSelectionChanged),
button1_ctl:setClickResponder(onButton1),
button2_ctl:setClickResponder(onButton2),
button3_ctl:setClickResponder(onButton3),
anotherButton1_ctl:setClickResponder(onAnotherButton1),
anotherButton2_ctl:setClickResponder(onAnotherButton2),
oneMoreButton1_ctl:setClickResponder(onOneMoreButton1),
oneMoreButton2_ctl:setClickResponder(onOneMoreButton2).
% end of automatic code
end implement defaultButtonDemo
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -