Skip to content

Commit 4bbd657

Browse files
author
Gary Criblez
committed
Callback formula
1 parent 4cc2c58 commit 4bbd657

4 files changed

Lines changed: 99 additions & 54 deletions

File tree

Project/Sources/Methods/AJUI_BC_addSection.4dm

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -139,13 +139,8 @@ If ($id#"")
139139
End if
140140

141141
//onClickCB
142-
If ($section_obj.onClickCB=Null:C1517)
143-
$section_obj.onClickCB:=""
144-
Else
145-
If (Value type:C1509($section_obj.onClickCB)#Is text:K8:3)
146-
$section_obj.onClickCB:=""
147-
ALERT:C41("String required for the property onClickCB !")
148-
Else
142+
Case of
143+
: (Value type:C1509($section_obj.onClickCB)=Is text:K8:3)
149144
If ($section_obj.onClickCB#"")
150145
ARRAY TEXT:C222($_methods;0)
151146
METHOD GET NAMES:C1166($_methods;$section_obj.onClickCB;*)
@@ -157,8 +152,16 @@ If ($id#"")
157152
End if
158153
End if
159154
End if
160-
End if
161-
End if
155+
: (Value type:C1509($section_obj.onClickCB)=Is object:K8:27)
156+
//nothing to do
157+
: ($section_obj.onClickCB=Null:C1517)
158+
$section_obj.onClickCB:=""
159+
Else
160+
$section_obj.onClickCB:=""
161+
ALERT:C41("String or formula required for the property onClickCB !")
162+
End case
163+
164+
162165

163166
//onClickCBParams
164167
If ($section_obj.onClickCBParams#Null:C1517)
@@ -169,13 +172,8 @@ If ($id#"")
169172
End if
170173

171174
//onDoubleClickCB
172-
If ($section_obj.onDoubleClickCB=Null:C1517)
173-
$section_obj.onDoubleClickCB:=""
174-
Else
175-
If (Value type:C1509($section_obj.onDoubleClickCB)#Is text:K8:3)
176-
$section_obj.onDoubleClickCB:=""
177-
ALERT:C41("String required for the property onDoubleClickCB !")
178-
Else
175+
Case of
176+
: (Value type:C1509($section_obj.onDoubleClickCB)=Is text:K8:3)
179177
If ($section_obj.onDoubleClickCB#"")
180178
ARRAY TEXT:C222($_methods;0)
181179
METHOD GET NAMES:C1166($_methods;$section_obj.onDoubleClickCB;*)
@@ -187,8 +185,15 @@ If ($id#"")
187185
End if
188186
End if
189187
End if
190-
End if
191-
End if
188+
: (Value type:C1509($section_obj.onDoubleClickCB)=Is object:K8:27)
189+
//nothing to do
190+
: ($section_obj.onDoubleClickCB=Null:C1517)
191+
$section_obj.onDoubleClickCB:=""
192+
Else
193+
$section_obj.onDoubleClickCB:=""
194+
ALERT:C41("String or formula required for the property onDoubleClickCB !")
195+
End case
196+
192197

193198
//onDoubleClickCBParams
194199
If ($section_obj.onDoubleClickCBParams#Null:C1517)

Project/Sources/Methods/AJUI_BC_draw.4dm

Lines changed: 54 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ If (False:C215)
1717
End if
1818

1919
C_OBJECT:C1216($instance_obj;$toDraw_obj;$section)
20-
C_TEXT:C284($name;$callback;$sectionID;$sectionType;$model)
20+
C_TEXT:C284($name;$sectionID;$sectionType;$model)
21+
C_VARIANT:C1683($callback)
2122
C_BOOLEAN:C305($skip;$firstSectionWithArrow)
2223
C_PICTURE:C286($pict)
2324
C_LONGINT:C283($cRadiusLeft;$cRadiusRight;$borderSize;$position;$maxHeight)
@@ -232,22 +233,37 @@ If (Not:C34($skip)) //dont redraw if skip
232233

233234
Case of
234235
: (Form event code:C388=On Mouse Up:K2:58)
235-
236236
$callback:=$instance_obj.breadCrumb.sectionList[$position].onClickCB
237237
//check section disable
238238
If ($position>=0)
239239
If (Not:C34($instance_obj.breadCrumb.sectionList[$position].disable))
240-
If ($callback#"") & ($instance_obj.breadCrumb.internalUse.inCallback=False:C215) //avoids an infinite loop if the draw method recall himself
241-
If (AJUI_BC_checkValidCallback ($callback))
242-
$instance_obj.breadCrumb.internalUse.inCallback:=True:C214
243-
If ($instance_obj.breadCrumb.sectionList[$position].onClickCBParams=Null:C1517)
244-
EXECUTE METHOD:C1007($callback)
245-
Else
246-
EXECUTE METHOD:C1007($callback;*;$instance_obj.breadCrumb.sectionList[$position].onClickCBParams)
240+
241+
Case of
242+
: (Value type:C1509($callback)=Is text:K8:3)
243+
If ($callback#"") & ($instance_obj.breadCrumb.internalUse.inCallback=False:C215) //avoids an infinite loop if the draw method recall himself
244+
If (AJUI_BC_checkValidCallback ($callback))
245+
$instance_obj.breadCrumb.internalUse.inCallback:=True:C214
246+
If ($instance_obj.breadCrumb.sectionList[$position].onClickCBParams=Null:C1517)
247+
EXECUTE METHOD:C1007($callback)
248+
Else
249+
EXECUTE METHOD:C1007($callback;*;$instance_obj.breadCrumb.sectionList[$position].onClickCBParams)
250+
End if
251+
$instance_obj.breadCrumb.internalUse.inCallback:=False:C215
252+
End if
247253
End if
248-
$instance_obj.breadCrumb.internalUse.inCallback:=False:C215
249-
End if
250-
End if
254+
: (Value type:C1509($callback)=Is object:K8:27)
255+
If ($instance_obj.breadCrumb.internalUse.inCallback=False:C215) //avoids an infinite loop if the draw method recall himself
256+
$instance_obj.breadCrumb.internalUse.inCallback:=True:C214
257+
If ($instance_obj.breadCrumb.sectionList[$position].onClickCBParams=Null:C1517)
258+
$callback.call()
259+
Else
260+
C_OBJECT:C1216($params)
261+
$params:=$instance_obj.breadCrumb.sectionList[$position].onClickCBParams
262+
$callback.call(Null:C1517;$params)
263+
End if
264+
$instance_obj.breadCrumb.internalUse.inCallback:=False:C215
265+
End if
266+
End case
251267
End if
252268
End if
253269

@@ -257,20 +273,35 @@ If (Not:C34($skip)) //dont redraw if skip
257273
//check section disable
258274
If ($position>=0)
259275
If (Not:C34($instance_obj.breadCrumb.sectionList[$position].disable))
260-
If ($callback#"") & ($instance_obj.breadCrumb.internalUse.inCallback=False:C215) //avoids an infinite loop if the draw method recall himself
261-
If (AJUI_BC_checkValidCallback ($callback))
262-
$instance_obj.breadCrumb.internalUse.inCallback:=True:C214
263-
If ($instance_obj.breadCrumb.sectionList[$position].onDoubleClickCBParams=Null:C1517)
264-
EXECUTE METHOD:C1007($callback)
265-
Else
266-
EXECUTE METHOD:C1007($callback;*;$instance_obj.breadCrumb.sectionList[$position].onDoubleClickCBParams)
276+
277+
Case of
278+
: (Value type:C1509($callback)=Is text:K8:3)
279+
If ($callback#"") & ($instance_obj.breadCrumb.internalUse.inCallback=False:C215) //avoids an infinite loop if the draw method recall himself
280+
If (AJUI_BC_checkValidCallback ($callback))
281+
$instance_obj.breadCrumb.internalUse.inCallback:=True:C214
282+
If ($instance_obj.breadCrumb.sectionList[$position].onDoubleClickCBParams=Null:C1517)
283+
EXECUTE METHOD:C1007($callback)
284+
Else
285+
EXECUTE METHOD:C1007($callback;*;$instance_obj.breadCrumb.sectionList[$position].onDoubleClickCBParams)
286+
End if
287+
$instance_obj.breadCrumb.internalUse.inCallback:=False:C215
288+
End if
267289
End if
268-
$instance_obj.breadCrumb.internalUse.inCallback:=False:C215
269-
End if
270-
End if
290+
: (Value type:C1509($callback)=Is object:K8:27)
291+
If ($instance_obj.breadCrumb.internalUse.inCallback=False:C215) //avoids an infinite loop if the draw method recall himself
292+
$instance_obj.breadCrumb.internalUse.inCallback:=True:C214
293+
If ($instance_obj.breadCrumb.sectionList[$position].onDoubleClickCBParams=Null:C1517)
294+
$callback.call()
295+
Else
296+
C_OBJECT:C1216($params)
297+
$params:=$instance_obj.breadCrumb.sectionList[$position].onDoubleClickCBParams
298+
$callback.call(Null:C1517;$params)
299+
End if
300+
$instance_obj.breadCrumb.internalUse.inCallback:=False:C215
301+
End if
302+
End case
271303
End if
272304
End if
273-
274305
End case
275306
End if
276307
End if

Project/Sources/Methods/AJUI_BC_info.4dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ End if
2020

2121
C_TEXT:C284($0)
2222

23-
$version_t:="1.2.3-Build39" // Wed, 29 Jul 2020 07:27:21 GMT
23+
$version_t:="1.2.3-Build41" // Thu, 30 Jul 2020 09:39:13 GMT
2424

2525
$0:="AJUI BreadCrumb (v18): "+$version_t

Project/Sources/Methods/AJUI_BC_updateSection.4dm

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,8 @@ If ($pos>=0)
126126
End if
127127

128128
//onClickCB
129-
If ($section_obj.onClickCB#Null:C1517)
130-
If (Value type:C1509($section_obj.onClickCB)#Is text:K8:3)
131-
ALERT:C41("String required for the property onClickCB !")
132-
Else
129+
Case of
130+
: (Value type:C1509($section_obj.onClickCB)=Is text:K8:3)
133131
This:C1470.breadCrumb.sectionList[$pos].onClickCB:=$section_obj.onClickCB
134132
If ($section_obj.onClickCB#"")
135133
ARRAY TEXT:C222($_methods;0)
@@ -142,8 +140,14 @@ If ($pos>=0)
142140
End if
143141
End if
144142
End if
145-
End if
146-
End if
143+
: (Value type:C1509($section_obj.onClickCB)=Is object:K8:27)
144+
This:C1470.breadCrumb.sectionList[$pos].onClickCB:=$section_obj.onClickCB
145+
: ($section_obj.onClickCB=Null:C1517)
146+
//nothing to do
147+
Else
148+
ALERT:C41("String or formula required for the property onClickCB !")
149+
End case
150+
147151

148152
//onClickCBParams
149153
If ($section_obj.onClickCBParams#Null:C1517)
@@ -155,10 +159,9 @@ If ($pos>=0)
155159
End if
156160

157161
//onDoubleClickCB
158-
If ($section_obj.onDoubleClickCB#Null:C1517)
159-
If (Value type:C1509($section_obj.onDoubleClickCB)#Is text:K8:3)
160-
ALERT:C41("String required for the property onDoubleClickCB !")
161-
Else
162+
163+
Case of
164+
: (Value type:C1509($section_obj.onDoubleClickCB)=Is text:K8:3)
162165
This:C1470.breadCrumb.sectionList[$pos].onDoubleClickCB:=$section_obj.onDoubleClickCB
163166
If ($section_obj.onDoubleClickCB#"")
164167
ARRAY TEXT:C222($_methods;0)
@@ -171,8 +174,14 @@ If ($pos>=0)
171174
End if
172175
End if
173176
End if
174-
End if
175-
End if
177+
: (Value type:C1509($section_obj.onDoubleClickCB)=Is object:K8:27)
178+
This:C1470.breadCrumb.sectionList[$pos].onDoubleClickCB:=$section_obj.onDoubleClickCB
179+
: ($section_obj.onDoubleClickCB=Null:C1517)
180+
//nothing to do
181+
Else
182+
ALERT:C41("String or formula required for the property onDoubleClickCB !")
183+
End case
184+
176185

177186
//onDoubleClickCBParams
178187
If ($section_obj.onDoubleClickCBParams#Null:C1517)

0 commit comments

Comments
 (0)