// Text of project Thumbnail written on 11/25/95 at 3:55 PM
// Beginning of file EditView Thumbnail.t

// Before Script for "remoteApp"
/*
**      Newton Developer Technical Support Sample Code
**
**      Thumbnail-1, Shows how to use clRemoteView with a "live" clEditView
**
**      by Bob Ebert, Newton Developer Technical Support
**
**      Copyright  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.
*/

remoteApp :=
    {title: "EditView Thumbnail",
     viewBounds: {top: 0, left: 0, right: 240, bottom: 320},
     viewFlags: 134217733,
     viewFormat: nil,
     declareSelf: 'base,
     viewSetupFormScript:
       func()
       begin
       	local b := GetAppParams();
       	constant kMaxWidth := 240;
       	constant kMaxHeight := 336;
       	self.viewBounds := RelBounds(b.appAreaLeft, b.appAreaTop,
       		MIN(b.appAreaWidth, kMaxWidth), MIN(b.appAreaHeight, kMaxHeight));
       end,
     debug: "remoteApp",
     viewClass: 74
    };

theEditView :=
    {viewFlags: 33553953,
     viewFormat: 8529,
     viewBounds: {top: 16, left: 8, right: -8, bottom: -24},
     viewLineSpacing: 28,
     viewChangedScript:
       func(slot, view)
       if call kViewIsOpenFunc with (theFloater) then
       	begin
       		// this may be overkill, some changes may not
       		// cause changes in the children, or could be
       		// handled by theFloater.theRemoteView:Dirty(),
       		// but performance doesn't seem bad, so why bother?
       		theFloater.theRemoteView:Close();
       		theFloater.theRemoteView:Open();
       	end,
     viewDropChildScript:
       func(oldOne)
       begin
       	AddDeferredAction(func(v) v:viewChangedScript('viewChildren, v), [self]);
       	nil;
       end,
     viewAddChildScript:
       func(newOne)
       begin
       	AddDeferredAction(func(v) v:viewChangedScript('viewChildren, v), [self]);
       	nil;
       end,
     viewJustify: 240,
     debug: "theEditView",
     viewClass: 77
    };
AddStepForm(remoteApp, theEditView);
StepDeclare(remoteApp, theEditView, 'theEditView);



theFloater :=
    {viewBounds: {top: -118, left: -62, right: -7, bottom: -32},
     viewClickScript:
       func(unit)
       begin
       	:Drag(unit, :Parent():GlobalBox());
       	theRemoteView:Close();
       	theRemoteView:Open();
       end,
     viewFlags: 609,
     viewJustify: 160,
     debug: "theFloater",
     _proto: @180
    };
AddStepForm(remoteApp, theFloater);
StepDeclare(remoteApp, theFloater, 'theFloater);

theRemoteView :=
    {viewBounds: {left: 1, top: 1, right: 57, bottom: 71},
     viewFlags: 49,
     viewFormat: nil,
     viewSetupChildrenScript:
       func()
       begin
       	local box := theEditView:LocalBox();
       	self.viewChildren := [
       		{	// wrapper layer 2
       			viewClass: clView,
       			viewBounds: box,
       			viewFlags: vVisible,
       			viewChildren: [
       				{	// wrapper layer 1
       					viewClass: clView,
       					viewBounds: box,
       					viewFlags: vVisible,
       					viewChildren: [
       						{	// this is the "real" container for the edit view stuff
       							viewClass: clView,
       							viewBounds: box,
       							viewFlags: vVisible,
       							viewFormat: theEditView.viewFormat,
       							viewLineSpacing: theEditView.viewLineSpacing,
       							viewChildren: theEditView.viewChildren,	// OK because remote view is read only
       						}
       					]
       				}
       			]
       		}
       	];
       end,
     viewJustify: 0,
     debug: "theRemoteView",
     viewClass: 88
    };
AddStepForm(theFloater, theRemoteView);
StepDeclare(theFloater, theRemoteView, 'theRemoteView);





_view000 := {_proto: @229};
AddStepForm(remoteApp, _view000);



_view001 := {_proto: @220};
AddStepForm(remoteApp, _view001);

_view002 := {_proto: @163};
AddStepForm(_view001, _view002);



_view003 :=
    {
     buttonClickScript:
       func()
       	theFloater:Toggle();,
     text: "Thumbnail",
     viewBounds: {top: 0, left: -69, right: -7, bottom: 13},
     viewJustify: 8390662,
     _proto: @226
    };
AddStepForm(_view001, _view003);



_view004 := {_proto: @234};
AddStepForm(_view001, _view004);






constant |layout_EditView Thumbnail.t| := remoteApp;
// End of file EditView Thumbnail.t



