// Text of project PeoplePicker written on 11/25/95 at 5:03 PM // Beginning of text file projectData /* ** Newton Developer Technical Support Sample Code ** ** PeoplePicker, Demostrates the basic People picker. ** ** by Stephen Harris, Newton Developer Technical Support ** ** Copyright © 1993-1995 by Apple Computer, Inc. All rights reserved. ** ** You may incorporate this sample code into your applications without ** restriction. This sample code has been provided "AS IS" and the ** responsibility for its operation is 100% yours. You are not ** permitted to modify and redistribute the source as "DTS Sample Code." ** If you are going to re-distribute the source, we require that you ** make it clear in the source that the code was descended from ** Apple-provided sample code, but that you've made changes. */ /*This PeoplePicker demonstrates the basic peoplePicker. */ constant kAppTitle:= "The People Picker"; // constants for the type of people picker constant kTypePickerArray := '[ {item: "People", dataClass: |NameRef.People|}, {item: "Phone numbers", dataClass: |NameRef.Phone|}, {item: "Fax numbers", dataClass: |NameRef.Fax|}, {item: "Email addresses", dataClass: |NameRef.email|}, {item: "Meeting places", dataClass: |NameRef.meetingPlace|}, ] ; // End of text file projectData // Beginning of file peoplePicker.t // Before Script for "appBase" // ©1993-1995 Apple Computer, Inc. All rights reserved. appBase := {viewBounds: {left: 0, top: 0, right: 240, bottom: 336}, viewFlags: 1, viewFormat: 0, declareSelf: 'base, title: kAppTitle, viewSetupFormScript: func() begin // set up the display local b:= GetAppParams(); self.ViewBounds:= RelBounds(b.appAreaLeft,b.appAreaTop,b.appAreaWidth,b.appAreaHeight); end, ReorientToScreen: func() begin :syncView(); :RedoChildren(); end, viewQuitScript: func() begin //memory reclaim project peoplePicker.selected:= nil; end, debug: "appBase", viewClass: 74 }; _view000 := {viewBounds: {left: 0, top: 0, right: 240, bottom: 16}, _proto: @229}; AddStepForm(appBase, _view000); peoplePicker := {viewFlags: 1, selected: nil, dataClass: //set this slot to either nameRef.fax, nameRef.people,nameRef.meetingPlace, or nameRef.email '|nameRef.people|, viewBounds: {left: 0, top: 30, right: 0, bottom: -55}, suppressCloseBox: true, debug: "peoplePicker", viewClass: 74 }; AddStepForm(appBase, peoplePicker); StepDeclare(appBase, peoplePicker, 'peoplePicker); // After Script for "peoplePicker" thisView := peoplePicker; // make the template a peoplePicker // NOTE: this is only because the current platform file // does not have protoPeoplePicker defined yet RemoveSlot(thisView, 'viewClass); RemoveSlot(thisView, 'viewFlags); thisView._proto:= protoPeoplePicker; _view001 := { buttonClickScript: func() begin whatSelected:open(); end, text: "What is selected", viewBounds: {left: -100, top: 10, right: -10, bottom: 24}, viewJustify: 8396966, _proto: @226 }; AddStepForm(appBase, _view001); _view002 := {text: " DataClass", viewBounds: {left: 10, top: 0, right: 75, bottom: 0}, viewFlags: 515, currentType: 0, buttonClickScript: func() begin self.popup := Clone(kTypePickerArray) ; popup[currentType] := Clone(popup[currentType]) ; popup[currentType].mark := kCheckMarkChar ; inherited:ButtonClickScript(); // call the inherited version to unhilite the button end, pickActionScript: func(itemSelected) begin currentType := itemSelected ; inherited:?pickActionScript(itemSelected); // call the inherited version to unhilite the button // NOTE: the following code will NOT update the cursor // for the listPicker, it will not "filter" out // items (e.g. changing to meetingPlace will not remove just people) peoplePicker:ChangeDataClass(popup[itemSelected].dataClass) ; peoplePicker:Update() ; end, viewJustify: 8401094, _proto: @386 }; AddStepForm(appBase, _view002); _view003 := {_proto: @401}; AddStepForm(appBase, _view003); whatSelected := {viewBounds: {left: -1, top: 72, right: 106, bottom: 188}, debug: "whatSelected", _proto: @180 }; AddStepForm(appBase, whatSelected); StepDeclare(appBase, whatSelected, 'whatSelected); _view004 := { buttonClickScript: func(textIndex) begin print("selected index " & textIndex); end, viewBounds: {left: 0, top: 0, right: 0, bottom: 116}, viewFont: ROM_fontSystem9, viewLines: 6, viewSetupFormScript: func() begin //call the getSelected fucntion with true to return only the items that are currently selected' //note: as items are selected nameRef's are created and put in the selected array. The //getSelected function returns an array of the selected items and removes all other nameRef's local myArray := []; foreach item in peoplePicker:getSelected(true) do begin if item.company then AddArraySlot(myArray,(item.company)); if item.name then AddArraySlot(myArray,(item.name.first && item.name.last)); if item.group then AddArraySlot(myArray,(item.group)); end; self.listItems := myArray; :SetupList(); end, listItems: nil, viewJustify: 48, viewFormat: 1, useScrollers: true, _proto: @228 }; AddStepForm(whatSelected, _view004); constant |layout_peoplePicker.t| := appBase; // End of file peoplePicker.t