Popup学习笔记

实例

实例1

(defun showElement ()
	mypopup = axlUIPopupDefine( 
			nil
			(list 
				(list "Done" 'axlFinishEnterFun)
				(list "Cancel" 'axlCancelEnterFun)
			)
	)
	axlUIPopupSet( mypopup)
	axlSetFindFilter( ?enabled list( "NOALL" "ALLTYPES" "NAMEFORM") ?onButtons "ALLTYPES")
	while( axlSelect()
		axlShowObject( axlGetSelSet() )
	)
)

实例2

(defun DelElement ()
	let ((mypopup)
		"Delete selected Objects"
		mypopup = axlUIPopupDefine(
			nil
			'(
				("Done" axlFinishEnterFun)
				("Cancel" axlCancelEnterFun)
			)
		)
		axlUIPopupSet(mypopup)
		axlSetFindFilter(?enabled '("ALL" "EQUIVLOGIC") ?onButtons '("ALL"))
		while( axlSelect() 
			axlDeleteObject(axlGetSelSet())
		)
		axlUIPopupSet( axlUIPopupDefine(nil nil))
	)
)

实例3

(defun showText ()
	"Print text of selected objects"
	mypopup = axlUIPopupDefine( nil
		(list 
			(list "Done" 'axlFinishEnterFun)
			(list "Cancel" 'axlCancelEnterFun)
		)
	)
	axlUIPopupSet( mypopup)
	axlSetFindFilter( 
			?enabled list("noall")
			?onButtons "noall"
	)
	axlSetFindFilter( 
			?enabled list("symbols")
			?onButtons "symbols"
	)
	axlOpenFindFilter()
	(while (axlSelect)
		progn(
			alltext = axlDBGetAttachedText(car(axlGetSelSet())
		)
		foreach(thistext alltext
			printf( "Text on this symbol is : '%s'\n", thistext->text)
		)
	)
	axlCloseFindFilter()
)

实例4

(defun showPad ()
mypopup = axlUIPopupDefine( 
	nil
	(list 
		(list "Done" 'axlFinishEnterFun)
		(list "Cancel" 'axlCancelEnterFun)
	)
)
axlUIPopupSet( mypopup)
axlSetFindFilter( 
	?enabled list("noall")
	?onButtons "noall"
)
axlSetFindFilter( 
	?enabled list("pins" "vias")
	?onButtons list("pins" "vias")
)
(while axlSelect()
	progn(
		mypad = axlDBGetPad(
			car(axlGetSelSet())
			"etch/top" 
			"regular"
		)
		printf( "Pad figure type : %s\n", mypad->figureName)
	)
)

实例5

(defun showPad ()
	mypopup = axlUIPopupDefine( 
		nil
		(list 
			(list "Done" 'axlFinishEnterFun)
			(list "Cancel" 'axlCancelEnterFun)
		)
	)
	axlUIPopupSet( mypopup)
	axlSetFindFilter( 
		?enabled list("noall")
		?onButtons "noall"
	)
	axlSetFindFilter( 
		?enabled list("pins" "vias")
		?onButtons list("pins" "vias")
	)
	(while axlSelect()
		progn(
			mypad = axlDBGetPad(
				car(axlGetSelSet())
				"etch/top" 
				"regular"
			)
		printf( "Pad figure type : %s\n",mypad->figureName)
	)
)

实例6

(defun axlMyCancel ()
	axlClearDynamics()
	axlCancelEnterFun()
	axlUIPopupSet(nil)
)
(defun axlMyDone ()
	axlClearDynamics()
	axlFinishEnterFun()
	axlUIPopupSet(nil)
)
mypopup = axlUIPopupDefine( 
	nil
	(list 
		(list "MyCancel" 'axlMyCancel)
		(list "MyDone" 'axlMyDone)
	)
)
axlUIPopupSet( mypopup)
; Clear the dynamic buffer
axlClearDynamics()
; Clear mypath to nil, then loop gathering user picks:
mypath = nil
while( (mypath = axlEnterPath(?lastPath mypath))
	progn(
		axlDBCreatePath(mypath, "etch/top")
	)
)

实例7

(defun highlightLoop ()
	mypopup = axlUIPopupDefine( 
		nil
		(list 
			(list "Done" 'axlFinishEnterFun)
		(list "Cancel" 'axlCancelEnterFun)
		)
	)
	axlUIPopupSet( mypopup)
	axlSetFindFilter( 
		?enabled '("noall" "alltypes" "nameform")
		?onButtons "alltypes"
	)
	(while (axlSelect)
		progn(
		axlHighlightObject( axlGetSelSet())
		; Just a dummy delay to see what happens
		sum = 0
		for( i 1 10000 sum = sum + i)
		axlDehighlightObject( axlGetSelSet())
	)
)

POPUP API

创建POPUP菜单ID

axlUIPopupDefine(
r_popup
ts_pairs
) ⇒
r_popup/nil
; skill load( "sgDynamicDemo.il" )

defun(myCompleteFun ()
	axlUICmdPopupSet( nil )
	axlFinishEnterFun()
)

defun(myCancelFun ()
	axlUICmdPopupSet( nil )
	axlCancelEnterFun()
)

defun(axlMyRotate ()
	println( "it is rotate operation" )
)

defun(axlMySomething ()
	println( "it is something operation" )
)
defun(sgPopupDemo ()

	parent = myPopUp = axlUIPopupDefine(
		nil
		(list 
			(list "ParentComplete" 'myCompleteFun)
			(list "ParentRotate" 'axlMyRotate)
			(list "ParentSomething" 'axlMySomething)
			(list "ParentCancel" 'myCancelFun)
		)
	)
	; 在父亲基础上新增item
	myPopUp = axlUIPopupDefine(
		parent
		(list 
			(list "Complete" 'myCompleteFun)
			(list "Rotate" 'axlMyRotate)
			(list "Something" 'axlMySomething)
			(list "Cancel" 'myCancelFun)
		)
	)
	
	axlUICmdPopupSet( myPopUp )
)

设置POPUP菜单

创建POPUP菜单,使用该函数可以修改axlUIPopupSet行为。

axlUICmdPopupSet(
	r_popup	; 由axlUIPopupDefine创建
) ⇒
r_prevPopup

事件设置

axlEnterEvent(
l_eventMask
t_prompt
g_snap
) ⇒
r_eventId

设置Popup回调函数

在Popup显示前设置回调函数,允许AXL应用程序复位Popup。回调函数是一个列表,与axlEnterEvent类似。当AXL应用程序启动时,设置回调函数;结束时,移除回调函数。

axlEventSetStartPopup(
	[s_callback]
) ⇒
t/nil

实例

(defun startpopupcallback (event)
	...
	newpopup = get a new popup based on event x,y values
	axlUIPopupSet(newpopup)
)
axlEventSetStartPopup('startpopupcallback)
	...
	let( (eventMask event, loop)
		eventMask = list( 'PICK 'DBLPICK )
		loop = t
		while( loop
			event = axlEnterEvent(eventMask, nil)
			case(event->type
				('PICK
					... 
				)
				
				('DBLPICK
					... 
				)
				
				('DONE
					loop = nil
				)
				
				('CANCEL
					loop = nil
				)
	)
)
...
axlEventSetStartPopup()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值