' 'Class description: ' !short:Info class structure: Class Info: ~~~~~~~~~~~ This class can produce an object for viewing of the text variable (memo field). Common use: ~~~~~~~~~~~ LOCAL OBJECT Info OF Info Info:Buff:=cBigText //the vieved text is stored to buffer Info:Init(...) //or Info:GoodInit(...) The initialistion only adds this object to task stack as a task (look at the class Task). The activation of virtual process for this object or its finishing is job for the task swapper. Source code is in C_Info.prg !seealso: c_task.ngo:Task c_box.ngo:Box c_finfo.ngo:FInfo c_color.ngo:Color ob_class.ngo:"Class hierarchy" !short:~~~~~~~~~~~~~~~~~~~~~ !short:create class Info from Task !short: export: !short: var Wrap //true ^BInfo:Wrap^N: public: logical Sets the "wrap" property for clipper function Memo Edit, which is used as the own dispalyer for the objects of this class. !short: var FName //"" ^BInfo:FName^N: private: character The file name to which is the viewed text (contet of instvar variable Buff) written is stored here, when the user decides to print the viewed text. Printing is done by dos command PRINT in the background. For correct printing should the resident part of PRINT command be loaded before the starting of the program. !short: var CanPrint //true ^BInfo:CanPrint^N: public: logical If true, the printing of the viewed text is enabled. !short: var CanEdit //false ^BInfo:CanEdit^N: public: logical If true the viewed text can be edited. !short: var RecNo //0 ^BInfo:RecNo^N: public: numeric Abstract variable for the function HelpField(), used for storing of the current record number of database cHelp. (Interactive help database, System3.dbf) !short: var CanErase //false ^BInfo:CanErase^N: public: logical If true and the viewed text was sent to print (i.e. if Info:Printed is true), the system by finishing of this task asks for validation if the file can be erased and if yes it is erased. If the file was sent to print it was written to temporary file and this file was printed by Print command. This instvar variable refers if the file should be erased or no. !short: var Printed //false ^BInfo:Printed^N: private: logical If the file was sent to print it is true. Library is informed about the creation of the temporary file for its further erasing after the end of the task. !short: var SeeTop //true ^BInfo:SeeTop^N: private: logical This is only the help instvar variable for unnecessary defining of the whole method Process() in the class FInfo. With the instvar private variable SeeBottom it is used for finishing of MemoEdit function when is there a need of reading of next part of the text from the file to instvar variable Buff. !short: var SeeBottom //true ^BInfo:SeeBottom^N: private: logical This is a help instvar variable used for unnecessary defining of the whole method Process() in the class FInfo. See the instvar variable SeeTop. !short: var TextRow //1 ^BInfo:TextRow^N: public: numeric Sets the text row (Instvar variable Buff), which will be by method Process() displayed as first line of the window. Its change can set the text view begining. !short: var TextMax //0 ^BInfo:TextMax^N: private: numeric It is the number of rows for the display mode of MemoEdit function (window wrap). !short: var Buff //"" ^BInfo:Buff^N: public: character This instvar variable is the viewed text stored to. !short: method New=InfoNew //o:New() --> self ^BInfo:New()^N: public: return self The object is filled by default values, the following predcessor variables are modified: ^UInfo:Color^N: public: character Color definition of the window of this task. ^UInfo:DoneBlock^N: public: character This instvar variable is stored a code block to, which by finishing of the task does the erasing of the temporary work file. The workfile is created when the user sends the text to print. If you dislike this code block, you can replace it by own one just after the creation of the object of this class, for example: LOCAL OBJECT Inf OF Info Inf:Buff:=.... Inf:DoneBlock:={|Self|NewDoneFunction(Self)} Inf:Init(...) Where NewDoneFunction(Self) should be user defined function, which is processed by atempt of finishing of this object. As parameter obtains self object ^UInf^N. It should return true if the object could be finished and false if it couldn't and must stay active. (to stay active means that the object is on the top of the stack of the task, its window is repainted with active window colors and the method VProcess() is activated for this object. All this job is done by task swapper (method Task:Process()).) !short: method Init=InfoInit //o:Init(Name,R,C,Rs,Cs,Clr,Shd) --> true ^BInfo:Init(Name,R,C,Rs,Cs,Clr,Shadow)^N: public: return true The object is initialised, all parameters are not compulsory, if used they are passed to predcessor method Box:Init(...). For detailed decription use look at the class ^UBox^ method ^UInit(...)^N. !short: method GoodInit=InfoGoodInit //o:GoodInit(Name,R,C,Rs,Cs,CurSize,Clr,Shd) --> true ^BInfo:GoodInit(Name,R,C,Rs,Cs,CurSize,Clr,Shadow)^N: public: return true The object is initialised, all parameters are not compulsory, if used they are passed to predcessor method Box:GoodInit(...). For detailed decription use look at the class ^UBox^ method ^UGoodInit(...)^N. !short: method Print=InfoPrint //o:Print() --> true/false ^BInfo:Print()^N: public: return true/false Tries to send the text to file for printing, if fails returns false, otherwise the file is sent to print, printed by PRINT command and returns true. !short: method VPaint=InfoVPaint //o:VPaint() --> true ^BInfo:VPaint()^N: private: return true This method is used for painting of the content of the window to the screen. If you want to paint the object, use the method Info:Paint(), herited from class ^UWindow^N. !short: method VProcess=InfoVProcess //o:VProcess() --> true ^BInfo:VProcess()^N: private: return true The text view by using of the function MemoEdit or by activating of the method Print() and printing is processed herewith. !short: endclass