tappframe.tpl

来自「在手机操作系统symbina上使用的一个脚本扩展语言的代码实现,可以参考用于自己」· TPL 代码 · 共 395 行

TPL
395
字号
REM tAppFrame.tpl
REM Copyright (c) 1999-2001 Symbian Ltd. All rights reserved.
REM v0.7

APP tAppFrame,065617
ENDA

INCLUDE "Const.oph"
INCLUDE "AppFrame.oxh"

DECLARE EXTERNAL

EXTERNAL UseMain:
EXTERNAL hCBAMain:(aButton&)
EXTERNAL Welcome:
EXTERNAL UseAll:
EXTERNAL hCBAAll:(aButton&)
EXTERNAL UseCBA:
EXTERNAL hCBACBA:(aButton&)
EXTERNAL UseTitle:
EXTERNAL hCBATitle:(aButton&)
EXTERNAL hCloseButton:(aButton&)
EXTERNAL Redraw%:
EXTERNAL Init:
EXTERNAL UseVisible:
EXTERNAL hCBAVisible:(aButton&)
EXTERNAL UseDimmed:
EXTERNAL hCBADimmed:(aButton&)
EXTERNAL UseDefault:
EXTERNAL hCBADefault:(aButton&)
EXTERNAL UseStatus:
EXTERNAL hCBAStatus:(aButton&)



PROC tAppFrame:
	GLOBAL done%
	GLOBAL redraw%
	GLOBAL title$(255)
	LOCAL ev&(16)

	Welcome:
	Init:
	UseMain:
	IF AfCBAMaxButtons%:<>4
		GIPRINT "Unexpected number of buttons"
	ENDIF

	DO
		GETEVENT32 ev&()
		IF AfOfferEvent%:(ev&(1),ev&(3),ev&(4),ev&(5),ev&(6),ev&(7))
			GIPRINT "Event consumed"
		ENDIF
		IF redraw%
			redraw%=0
			Redraw%:
		ENDIF
	UNTIL done%
ENDP




PROC UseMain:
	REM Main CBA menu.
	AfSetCBAButton:(1,"Test all",0,0,"hCBAMain")
	AfSetCBAButton:(2,"Test CBA",0,0,"hCBAMain")
	AfSetCBAButton:(3,"Test title",0,0,"hCBAMain")
	AfSetCBAButton:(4,"Close",0,0,"hCloseButton")
ENDP


PROC hCBAMain:(aButton&)
	IF aButton&=1
		UseALL:
	ELSEIF aButton&=2
		UseCBA:
	ELSEIF aButton&=3
		UseTitle:
	ELSE
		REM Unhandled button!
		GIPRINT "hCBAMain: Unhandled button "+GEN$(aButton&,3)
	ENDIF
ENDP


PROC hCloseButton:(aButton&)
	EXTERNAL燿one%
	IF aButton&=4
		done%=KTrue%
	ELSE
		GIPRINT "hCloseButton: Unhandled button "+GEN$(aButton&,2)
	ENDIF
ENDP


PROC Init:
	EXTERNAL title$
	AfSetStatus%:(KAfStatusPaneTypeWide%)
	title$="tAppFrame - ApplicationFrame OPX test code"
	AfSetTitle:(title$)
	AfSetStatusVisible%:(KTrue%)
	AfSetTitleVisible%:(KTrue%)
	AfSetCBAVisible%:(KTrue%)
	Redraw%:
ENDP


PROC UseAll:
	REM All CBA menu.
	Init:
	AfSetCBAButton:(1,"CBA off",0,0,"hCBAAll")
	AfSetCBAButton:(2,"Test"+CHR$(10)+"status",0,0,"hCBAAll")
	AfSetCBAButton:(3,"Title off",0,0,"hCBAAll")
	AfSetCBAButton:(4,"Close",0,0,"hCBAAll")
ENDP


PROC hCBAAll:(aButton&)
	EXTERNAL done%
	EXTERNAL redraw%

	IF aButton&=1 					REM Toggle CBA
		IF AfCBAVisible%:
			redraw%=AfSetCBAVisible%:(KFalse%)
			AfSetCBAButton:(1,"CBA on",0,0,"hCBAAll")
		ELSE
			rem Change text before showing CBA.
			AfSetCBAButton:(1,"CBA off",0,0,"hCBAAll")
			redraw%=AfSetCBAVisible%:(KTrue%)
		ENDIF

	ELSEIF aButton&=2				REM Test status state...
		UseStatus:

	ELSEIF aButton&=3				REM Toggle title.
		IF AfTitleVisible%:
			redraw%=AfSetTitleVisible%:(KFalse%)
			AfSetCBAButton:(3,"Title on",0,0,"hCBAAll")
		ELSE
			redraw%=AfSetTitleVisible%:(KTrue%)
			AfSetCBAButton:(3,"Title off",0,0,"hCBAAll")
		ENDIF

	ELSEIF aButton&=4:				REM Back
		UseMain:
	ELSE
		REM Unhandled button!
		GIPRINT "hCBAAll: Unhandled button "+GEN$(aButton&,3)
	ENDIF
ENDP



PROC UseTitle:
	REM Title CBA menu.
	AfSetCBAButton:(1,"Edit title",0,0,"hCBATitle")
	AfSetCBAButton:(2,"Grow title",0,0,"hCBATitle")
	AfSetCBAButton:(3,"Toggle title",0,0,"hCBATitle")
	AfSetCBAButton:(4,"Close",0,0,"hCBATitle")
ENDP


PROC hCBATitle:(aButton&)
	EXTERNAL redraw%
	EXTERNAL title$
	IF aButton&=1
		dINIT
		dEDIT title$,"Title",20
		dBUTTONS "Ok",13
		IF DIALOG
			AfSetTitle:(title$)
		ENDIF
	ELSEIF aButton&=2
		title$=title$+CHR$(%a+RND*26)
		AfSetTitle:(title$)
	ELSEIF aButton&=3
		IF AfTitleVisible%:
			redraw%=AfSetTitleVisible%:(KFalse%)
		ELSE
			redraw%=AfSetTitleVisible%:(KTrue%)
		ENDIF
	ELSEIF aButton&=4
		UseMain:
	ELSE
		REM Unhandled button!
		GIPRINT "hCBAMain: Unhandled button "+GEN$(aButton&,3)
	ENDIF
ENDP


PROC UseCBA:
	REM CBA-specific CBA menu.
	AfSetCBAButton:(1,"Test visible",0,0,"hCBACBA")
	AfSetCBAButton:(2,"Test default",0,0,"hCBACBA")
	AfSetCBAButton:(3,"Test dimmed",0,0,"hCBACBA")
	AfSetCBAButton:(4,"Close",0,0,"hCBACBA")
ENDP


PROC hCBACBA:(aButton&)
	IF aButton&=1
		UseVisible:
	ELSEIF aButton&=2
		UseDefault:
	ELSEIF aButton&=3
		UseDimmed:
	ELSEIF aButton&=4
		UseMain:
	ELSE
		GIPRINT "hCBACBA: Unhandled button "+GEN$(aButton&,3)
	ENDIF
ENDP


PROC UseVisible:
	REM Test Visible settings of CBA.
	AfSetCBAButton:(1,"Toggle CBA1"+CHR$(10)+"visibility",0,0,"hCBAVisible")
	AfSetCBAButton:(2,"Toggle CBA2"+CHR$(10)+"visibility",0,0,"hCBAVisible")
	AfSetCBAButton:(3,"Toggle CBA3"+CHR$(10)+"visibility",0,0,"hCBAVisible")
	AfSetCBAButton:(4,"Close",0,0,"hCBAVisible")
ENDP


PROC hCBAVisible:(aButton&)
	LOCAL button&
	IF aButton&>0 AND aButton&<4
		AfSetCBAButtonVisible:(aButton&,NOT AfCBAButtonVisible%:(aButton&))
	ELSEIF aButton&=4
		GIPRINT "Setting all buttons visible"
		DO
			button&=button&+1
			AfSetCBAButtonVisible:(button&,KTrue%)
		UNTIL button&=AfCBAMaxButtons%:
		UseCBA: REM Back to CBA tests.
	ELSE
		GIPRINT "hCBAVisible: Unhandled button "+GEN$(aButton&,3)
	ENDIF
ENDP


PROC UseDimmed:
	REM Test dimmed settings of CBA.
	AfSetCBAButton:(1,"Toggle CBA1"+CHR$(10)+"dimmed",0,0,"hCBADimmed")
	AfSetCBAButton:(2,"Toggle CBA2"+CHR$(10)+"dimmed",0,0,"hCBADimmed")
	AfSetCBAButton:(3,"Toggle CBA3"+CHR$(10)+"dimmed",0,0,"hCBADimmed")
	AfSetCBAButton:(4,"Close",0,0,"hCBADimmed")
ENDP


PROC hCBADimmed:(aButton&)
	LOCAL button&
	IF aButton&>0 AND aButton&<4
		AfSetCBAButtonDimmed:(aButton&,NOT AfCBAButtonDimmed%:(aButton&))
	ELSEIF aButton&=4
		GIPRINT "Setting all buttons undimmed"
		DO
			button&=button&+1
			AfSetCBAButtonDimmed:(button&,KFalse%)
		UNTIL button&=AfCBAMaxButtons%:
		UseCBA: REM Back to CBA tests.
	ELSE
		GIPRINT "hCBADimmed: Unhandled button "+GEN$(aButton&,3)
	ENDIF
ENDP


PROC UseDefault:
	REM Test default settings of CBA.
	AfSetCBAButton:(1,"Set CBA1"+CHR$(10)+"default",0,0,"hCBADefault")
	AfSetCBAButton:(2,"Set CBA2"+CHR$(10)+"default",0,0,"hCBADefault")
	AfSetCBAButton:(3,"Set CBA3"+CHR$(10)+"default",0,0,"hCBADefault")
	AfSetCBAButton:(4,"Close",0,0,"hCBADefault")
ENDP


PROC hCBADefault:(aButton&)
	IF aButton&>0 AND aButton&<4
		AfSetCBAButtonDefault:(aButton&)
		GIPRINT "Setting button "+GEN$(aButton&,1)+" default.",2
		REM Keep this on screen for a second...
		PAUSE 20
	ELSEIF aButton&=4
		UseCBA: REM Back to CBA tests.
	ELSE
		GIPRINT "hCBADefault: Unhandled button "+GEN$(aButton&,3)
	ENDIF
ENDP


PROC Redraw%:
	LOCAL statusPaneState%
	LOCAL xo%,yo%,w%,h%

	AfScreenInfo:(xo%,yo%,w%,h%)
	rem PAUSE 50
	gSetWin xo%,yo%,w%,h%

	GIPRINT "Redraw..."
	gSTYLE KgStyleBold%
	gAT 100,20 :gPRINT "Current dimensions"
	gSTYLE KgStyleNormal%
	
	gAT 100, 60 :gPRINT "X origin"
	gAT 100, 90 :gPRINT "Y origin"
	gAT 100,120 :gPRINT "Width"
	gAT 100,150 :gPRINT "Height"


	gAT 200, 60 :gPRINTB ": "+GEN$(xo%,3),100
	gAT 200, 90 :gPRINTB ": "+GEN$(yo%,3),100
	gAT 200,120 :gPRINTB ": "+GEN$(w%,3),100
	gAT 200,150 :gPRINTB ": "+GEN$(h%,3),100
ENDP


PROC Welcome:
	dINIT "tAppFrame -- testing Button Group OPX"
	dTEXT "","No status pane, title bar or CBA at startup"
	dTEXT "","Hit ESC to continue"
	DIALOG
ENDP


PROC UseStatus:
	REM Status-specific CBA menu.
	AfSetCBAButton:(1,"Status"+CHR$(10)+"off",0,0,"hCBAStatus")
	AfSetCBAButton:(2,"Status"+CHR$(10)+"narrow",0,0,"hCBAStatus")
	AfSetCBAButton:(3,"",0,0,"hCBAStatus")
	AfSetCBAButton:(4,"Close",0,0,"hCBAStatus")
ENDP


PROC hCBAStatus:(aButton&)
	EXTERNAL redraw%
	LOCAL visible%, type%
	REM Get current state...
	visible%=AfStatusVisible%:(type%)

	IF aButton&=1				REM Toggle visibility.
		IF visible%
			visible%=KFalse%
			AfSetCBAButton:(1,"Status"+CHR$(10)+"on",0,0,"hCBAStatus")
		ELSE
			visible%=KTrue%
			AfSetCBAButton:(1,"Status"+CHR$(10)+"off",0,0,"hCBAStatus")
		ENDIF
		redraw%=AfSetStatusVisible%:(visible%)

	ELSEIF aButton&=2			REM Toggle width
		IF type%=KAfStatusPaneTypeNarrow%
			type%=KAfStatusPaneTypeWide%
			AfSetCBAButton:(2,"Status"+CHR$(10)+"narrow",0,0,"hCBAStatus")

		ELSE
			type%=KAfStatusPaneTypeNarrow%
			AfSetCBAButton:(2,"Status"+CHR$(10)+"wide",0,0,"hCBAStatus")
		ENDIF
		redraw%=AfSetStatus%:(type%)

		
	ELSEIF aButton&=3			REM Not used.

	ELSEIF aButton&=4:				REM Back
		UseAll:

	ELSE
		REM Unhandled button!
		GIPRINT "hCBAStatus: Unhandled button "+GEN$(aButton&,3)
	ENDIF
ENDP


rem const KAfStatusPaneTypeNarrow%=1
rem const KAfStatusPaneTypeWide%=2

rem x	AfOfferEvent%:(aEv1&,aEv3&,aEv4&,aEv5&,aEv6&,aEv7&) : 1
rem x	AfSetCBAButton:(aButtonIndex%,aText$,aBitmapId%,aMaskId%,aCallback$) : 2
rem .	AfSetCBAButtonDefault:(aButtonIndex%) : 3
rem .	AfSetCBAButtonDimmed:(aButtonIndex%,aVisibility%) : 4
rem .	AfCBAButtomDimmed%:(aButtonIndex%) : 5
rem .	AfSetCBAButtonVisible:(aButtonIndex%,aVisibility%) : 6
rem .	AfCBAButtonVisible%:(aButtonIndex%) : 7
rem x	AfSetCBAVisible%:(aVisibility%) : 8
rem x	AfCBAVisible%: : 9
rem x	AfCBAMaxButtons%: :10
rem x	AfSetStatus%:(aType%) : 11
rem x	AfSetStatusVisible%:(aVisibility%) : 12
rem x	AfStatusVisible%:(BYREF aType%) : 13
rem x	AfSetTitle:(aTitle$) : 14
rem x	AfSetTitleVisibile%:(aVisibility%) : 15
rem x	AfTitleVisible%: : 16
rem x	AfScreenInfo:(BYREF aXOrigin%, BYREF aYOrigin%, BYREF aWidth%, BYREF aHeight%) : 17

REM End of tAppFrame.tpl

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?