Skip to content

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

Scfreenshot


// 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

Clone this wiki locally