@@ -212,6 +212,8 @@ constant kDefaultSegmentLabel is "Label"
212212constant kDefaultSegmentMinExtent is 50
213213constant kDefaultSelectedLabelColor is [1,1,1]
214214
215+ constant kPostMessage is true
216+ constant kDontPostMessage is false
215217--
216218
217219public handler OnSave(out rProperties as Array)
@@ -252,12 +254,11 @@ public handler OnLoad(in pProperties as Array)
252254 put pProperties["segmentMinExtent"] into mSegmentMinExtent
253255 end if
254256 put pProperties["showFrameBorder"] into mShowFrameBorder
255- setSelected(pProperties["selectedSegment"])
257+ setSelected(pProperties["selectedSegment"], kDontPostMessage )
256258
257259 if "selectedLabelColor" is among the keys of pProperties then
258260 put stringToColor(pProperties["selectedLabelColor"]) into mSelectedLabelColor
259261 end if
260-
261262
262263end handler
263264
@@ -270,10 +271,10 @@ public handler OnCreate()
270271 put ["Label 1","Label 2","Label 3"] into mSegmentLabels
271272 put ["align left","align center","align right"] into mSegmentIcons
272273 put ["align left","align center","align right"] into mSelectedIcons
274+ put [false, false, false] into mSegmentSelected
273275
274276 put "text" into mSegmentDisplay
275277 put [kDefaultSegmentMinExtent, kDefaultSegmentMinExtent, kDefaultSegmentMinExtent] into mSegmentMinExtent
276- setSelected([])
277278
278279 put true into mShowFrameBorder
279280 put true into mIsHorizontal
@@ -355,9 +356,9 @@ public handler OnClick() returns nothing
355356 -- deselect the currently selected segment. If the clicked-on segment is
356357 -- already selected, then act according to toggleHilites property
357358 if mSegmentSelected[tSegmentIndex] and mToggleHilites then
358- setSelected([])
359+ setSelected([], kPostMessage )
359360 else if not mSegmentSelected[tSegmentIndex] then
360- setSelected([tSegmentIndex])
361+ setSelected([tSegmentIndex], kPostMessage )
361362 end if
362363 else
363364 -- If can multiselect, then select the clicked-on segment if it is
@@ -668,7 +669,7 @@ private handler setSelectedLabelColor(in pColor as String)
668669 redraw all
669670end handler
670671
671- handler setSelected(in pIndices as List) returns nothing
672+ handler setSelected(in pIndices as List, in pPostMessage as Boolean ) returns nothing
672673 variable tState as List
673674 variable tIndex as Number
674675
@@ -697,7 +698,9 @@ handler setSelected(in pIndices as List) returns nothing
697698
698699 put tState into mSegmentSelected
699700 redraw all
700- post "hiliteChanged"
701+ if pPostMessage then
702+ post "hiliteChanged"
703+ end if
701704end handler
702705
703706handler getSelected() returns List
@@ -714,7 +717,7 @@ handler getSelected() returns List
714717end handler
715718
716719handler updateSelected()
717- setSelected(getSelected())
720+ setSelected(getSelected(), kPostMessage )
718721end handler
719722
720723----------------------------------------------------------------
@@ -1104,7 +1107,7 @@ private handler setMultiSelect(in pCanMultiSelect as Boolean)
11041107 -- the selection
11051108 if not pCanMultiSelect and \
11061109 the number of elements in getSelected() > 1 then
1107- setSelected([])
1110+ setSelected([], kPostMessage )
11081111 end if
11091112end handler
11101113
@@ -1226,7 +1229,7 @@ private handler setSelectedSegmentIndices(in pIndices as String) returns nothing
12261229 end if
12271230 end repeat
12281231
1229- setSelected(tIndices)
1232+ setSelected(tIndices, kPostMessage )
12301233end handler
12311234
12321235private handler getSelectedSegmentIndices() returns String
@@ -1276,7 +1279,7 @@ private handler setSelectedSegmentNames(in pItemNames as String) returns nothing
12761279 end if
12771280 end repeat
12781281
1279- setSelected(tIndices)
1282+ setSelected(tIndices, kPostMessage )
12801283end handler
12811284
12821285private handler getSelectedSegmentNames() returns String
0 commit comments