-
Notifications
You must be signed in to change notification settings - Fork 4
NineButtons type Buttons
George Karras edited this page Dec 4, 2024
·
2 revisions
This is an example of 30 buttons of type NineButtons. Code for Ninebuttons was from Vladimir Vissoultchev, user wqweto in vbforoums

// updated (now form has some code to support better this buttons - see the hovet function)
Enum UcsNineButtonStateEnum {
ucsBstNormal = 0
ucsBstHover = 1
ucsBstPressed = 2
ucsBstHoverPressed = 3
ucsBstDisabled = 4
ucsBstFocused = 8
}
Enum UcsNineButtonTextFlagsEnum {
ucsBflHorLeft = 0
ucsBflHorCenter = 1
ucsBflHorRight = 2
ucsBflVertTop = 0
ucsBflVertCenter = 4
ucsBflVertBottom = 8
ucsBflCenter = binary.or(ucsBflHorCenter, ucsBflVertCenter)
ucsBflDirectionRightToLeft = 0x10&
ucsBflDirectionVertical = 0x20&
ucsBflNoFitBlackBox = 0x40&
ucsBflDisplayFormatControl = 0x200&
ucsBflNoFontFallback = 0x4000&
ucsBflMeasureTrailingSpaces = 0x8000&
ucsBflNoWrap = 0x10000&
ucsBflLineLimit = 0x20000&
ucsBflNoClip = 0x40000&
}
Enum UcsNineButtonStyleEnum {
ucsBtyNone =0
ucsBtyButtonDefault
ucsBtyButtonGreen
ucsBtyButtonRed
ucsBtyButtonTurnGreen
ucsBtyButtonTurnRed
ucsBtyFlatPrimary
ucsBtyFlatSecondary
ucsBtyFlatSuccess
ucsBtyFlatDanger
ucsBtyFlatWarning
ucsBtyFlatInfo
ucsBtyFlatLight
ucsBtyFlatDark
ucsBtyOutlinePrimary
ucsBtyOutlineSecondary
ucsBtyOutlineSuccess
ucsBtyOutlineDanger
ucsBtyOutlineWarning
ucsBtyOutlineInfo
ucsBtyOutlineLight
ucsBtyOutlineDark
ucsBtyCardDefault
ucsBtyCardPrimary
ucsBtyCardSuccess
ucsBtyCardOrange
ucsBtyCardDanger
ucsBtyCardWarning
ucsBtyCardPurple
ucsBtyCardFocus
}
declare FORM1 FORM
declare Button(30) TYPE "M2000.CTXNINEBUTTON" FORM FORM1
Method FORM1,"move", 1000, 1000, 14000, 12000
z=Button(0)
With z,"ButtonTextFlags" as ButtonTextFlags()
for i=0 to 14
Method Button(i), "move", 1000,1000+630*i, 4000, 600
With Button(i), "Style", i+1, "ManualFocus",true, "AnimationDuration", 1.2~, "AutoRedraw",True,
With Button(i+15), "ButtonTextFlags", ucsBstNormal @ ucsBflHorRight
z=Button(i)
ButtonTextFlags(ucsBstPressed)=2^random(1, 6)
Method Button(i+15), "move", 6000,1000+630*i, 4000, 600
With Button(i+15), "Style", i+16, "ButtonTextFlags", ucsBstNormal @ ucsBflHorRight
Next i
Layer Form1 {Gradient 11, #7777aa}
function form1.click {
layer form1 {
Gradient random(7,14), #7777aa
refresh
}
}
function Button.click(index) {
Print "Click "; index
refresh
}
method FORM1 "SHOW", 1
declare FORM1 nothing