value__ntID __ntTemplate viewBounds labelCommandsAddLabelEditOptionArrayEditorChangedArrayEditorCountertextviewSetupDoneScriptRemoveEditOptionlabelActionScriptlabelviewSetupFormScriptoldText textSetupUpdateCurLabelCommand  __ntDatatype __ntFlagsÿø PROT@    RECT 9YÉ   ["one", "two"] EVAL   ÿXfunc(theArray) begin AddArraySlot(theArray,'pickseparator); AddArraySlot(theArray,"Edit"); // self:setLabelCommands(theArray); labelCommands := Clone(theArray); end SCPT   ÿŒfunc(action,newArray,oldItem,newItem,status) /* NewArray has already added or removed the item. Added items get placed in the NewArray in alphabetical order. */ begin if action = 'Change then begin // need to change olditem to newitem SetValue(status,'text,status.text&&"changed"); end; /* 'Remove and 'Add can be removed if you do not need to do any special processing */ if action = 'Remove then begin // do not need to do anything end; if action = 'Add then begin // do not need to do anything end; // have to update the display that uses array // if array is of label commands then update labels self:AddLabelEditOption(newArray); end SCPT   Zfunc(item) begin return Random(0,3); end SCPT   &set label not text TEXT   „func() begin self:AddLabelEditOption(Clone(labelCommands)); end SCPT   Èfunc(theArray) begin ArrayRemoveCount(theArray,Length(theArray) - 2,2); return(theArray); end SCPT   ÿªfunc(command) begin print(command && length(labelCommands)); if command + 1 = Length(labelCommands) then begin print("Editing"); // protLablePicker is very screwed up so we must change the entryline manually. entryLine.text := Clone(oldText); entryLine:Dirty(); arrayEditorVtHick:Open(); arrayEditorVtHick:Setup(self,label,self:RemoveEditOption(Clone(labelCommands))); return true; end; else begin print("default action"); curLabelCommand := command; // save new value of entryline.text to oldText oldText := Clone(entryline.text); // do default processing for normal picklist items //theEntry.octane := Clone(labelCommands[command]); return nil; end; end SCPT   my label TEXT   ÿ@func() begin text := Clone(label); // finaly, call inherited method to make sure // everything gets setup correctly inherited:?viewSetupFormScript() ; end SCPT  nil EVAL   ÿ~func() // return first one as default // oldText must also be set to the initialized item oldText := Clone( if labelCommands then labelCommands[0] else "" ) SCPT   ”func() // don't do anything it is taken care of by protoLabelPicker nil  SCPTprotoLabelPicker