@@ -17,7 +17,8 @@ If (False:C215)
1717End if
1818
1919C_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 )
2122C_BOOLEAN:C305 ($skip ;$firstSectionWithArrow )
2223C_PICTURE:C286 ($pict )
2324C_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
276307End if
0 commit comments