home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 March / Chip_1998-03_cd.bin / zkuste / SVET_GEO / TEXTDESK / TEXTDESK.ZIP / APPUI.GOC < prev    next >
Text File  |  1996-05-19  |  20KB  |  593 lines

  1. /********************************************************************
  2.  *
  3.  * Copyright (C) 1996 Blue Marsh Softworks -- All Rights Reserved.
  4.  * Portions Copyright (c) Geoworks 1992 -- All Rights Reserved
  5.  *
  6.  * PROJECT:      Text Editor
  7.  * MODULE:       Static Objects Module
  8.  * FILE:         appUI.goc
  9.  *
  10.  * AUTHORS:      Lawrence Hosken
  11.  *               Nathan Fiedler
  12.  *
  13.  * REVISION HISTORY:
  14.  *      Name     Date      Description
  15.  *      ----     ----      -----------
  16.  *       LH      09/21/92  Initial version
  17.  *       EB      12/16/93  Fixed up scrolling, default focus, and
  18.  *                         targeting Text object for EditControl.
  19.  *       NF      04/01/95  Started work on Zoomer Text File Editor
  20.  *       NF      06/06/95  Started desktop version
  21.  *
  22.  * DESCRIPTION:
  23.  *      This is a text file editor for GEOS-based devices.
  24.  *      This module contains the objects of Texted.
  25.  *
  26.  *******************************************************************/
  27.  
  28. /********************************************************************
  29.  *                 Headers
  30.  *******************************************************************/
  31.     @include <stdapp.goh>
  32.     @include <objects/vltextc.goh>     /* VisLargeText definitions */
  33.     @include <objects/text/tctrlc.goh> /* SearchReplaceControlClass */
  34.     @include <spool.goh>               /* Spool library */
  35.     #include <print.h>                 /* Printer definitions */
  36.  
  37. /* XXX - MUST COMMENT OUT WHEN COMPILING FOR
  38.  * NON-DESKTOP VERSIONS. IFDEF WON'T WORK. */
  39.     @include <spell.goh>               /* SpellControlClass */
  40.  
  41.     #include <gstring.h>               /* For icon definitions. */
  42.     @include "app.goh"                 /* Our classes and constants. */
  43.     @include "art/tfeicon.goh"         /* Icon definitions. */
  44.  
  45. /********************************************************************
  46.  *                 Global Definitions
  47.  *******************************************************************/
  48.        /* Current point size of text. */
  49.     WWFixed pointSize_g;
  50.        /* Current font ID of text. */
  51.     FontID fontID_g;
  52.  
  53. /********************************************************************
  54.  *                 Class Declarations
  55.  *******************************************************************/
  56.     @classdecl TFEProcessClass, neverSaved;
  57.     @classdecl TFEPrimaryClass;
  58.     @classdecl TFEDocumentClass;
  59.     @classdecl TFETextClass;
  60.  
  61. /********************************************************************
  62.  *                 Method Declarations
  63.  *******************************************************************/
  64.     @extern method TFEProcessClass, MSG_GEN_PROCESS_OPEN_APPLICATION;
  65.     @extern method TFEProcessClass, MSG_META_SAVE_OPTIONS;
  66.  
  67.     @extern method TFEPrimaryClass, MSG_GEN_DISPLAY_CLOSE;
  68.  
  69.     @extern method TFEDocumentClass,
  70.                        MSG_GEN_DOCUMENT_INITIALIZE_DOCUMENT_FILE;
  71.     @extern method TFEDocumentClass,
  72.                        MSG_GEN_DOCUMENT_ATTACH_UI_TO_DOCUMENT;
  73.     @extern method TFEDocumentClass,
  74.                        MSG_GEN_DOCUMENT_DETACH_UI_FROM_DOCUMENT;
  75.     @extern method TFEDocumentClass, MSG_GEN_DOCUMENT_ATTACH_FAILED;
  76.     @extern method TFEDocumentClass, MSG_GEN_DOCUMENT_OPEN;
  77.     @extern method TFEDocumentClass, MSG_GEN_DOCUMENT_PHYSICAL_REVERT;
  78.     @extern method TFEDocumentClass, MSG_GEN_DOCUMENT_PHYSICAL_SAVE,
  79.                                      MSG_GEN_DOCUMENT_PHYSICAL_UPDATE;
  80.     @extern method TFEDocumentClass,
  81.                        MSG_GEN_DOCUMENT_PHYSICAL_SAVE_AS_FILE_HANDLE;
  82.  
  83.     @extern method TFETextClass, MSG_META_TEXT_USER_MODIFIED;
  84.     @extern method TFETextClass, MSG_PRINT_START_PRINTING;
  85.     @extern method TFETextClass, MSG_VIS_TEXT_SET_POINT_SIZE;
  86.     @extern method TFETextClass, MSG_VIS_TEXT_SET_FONT_ID;
  87.     @extern method TFETextClass, MSG_VIS_TEXT_FREE_ALL_STORAGE;
  88.     @extern method TFETextClass, MSG_VIS_TEXT_REPLACE_WITH_HWR;
  89.  
  90. /********************************************************************
  91.  *                 GOC Static Objects
  92.  ********************************************************************
  93.  *       AppResource
  94.  *******************************************************************/
  95. @start AppResource;
  96.  
  97.    /* System communicates with this object. */
  98. @object GenApplicationClass TFEApp = {
  99.   GI_visMoniker = list { @TFETextMoniker,
  100.                          @TFELCMoniker,
  101.                          @TFELMMoniker };
  102.   GI_comp = @TFEPrimary;
  103.   gcnList( MANUFACTURER_ID_GEOWORKS, GAGCNLT_WINDOWS ) =
  104.            @TFEPrimary;
  105.   gcnList( MANUFACTURER_ID_GEOWORKS, MGCNLT_ACTIVE_LIST ) =
  106. @ifdef DESKTOP
  107.            @TFEDisplayControl,
  108. @endif
  109.            @TFEPrintControl,
  110.            @TFEDocumentControl;
  111.   gcnList( MANUFACTURER_ID_GEOWORKS, MGCNLT_APP_STARTUP ) =
  112.            @TFEDocumentControl;
  113.   gcnList( MANUFACTURER_ID_GEOWORKS, GAGCNLT_STARTUP_LOAD_OPTIONS ) =
  114.            @TFEToolControl;
  115.   gcnList( MANUFACTURER_ID_GEOWORKS, GAGCNLT_SELF_LOAD_OPTIONS ) =
  116.            @TFEDocumentControl,
  117.            @TFEEditControl,
  118.            @TFESearchReplaceControl,
  119.            @TFEPrintControl,
  120.            @TFEPtSizeControl,
  121. @ifdef DESKTOP
  122.            @TFEDisplayControl,
  123.            @TFESpellControl,
  124. @endif
  125.            @TFEToolControl,
  126.            @TFEFontControl;
  127.   ATTR_GEN_INIT_FILE_CATEGORY = INI_CATEGORY;
  128.   ATTR_GEN_APPLICATION_PRINT_CONTROL = @TFEPrintControl;
  129.   HINT_APP_IS_PRODUCTIVITY_ORIENTED;
  130. }
  131.  
  132. @visMoniker TFETextMoniker = "Text Editor";
  133. @localize { "This name appears on the main title bar." };
  134.  
  135. @end AppResource;
  136.  
  137. /********************************************************************
  138.  *       Interface
  139.  *******************************************************************/
  140. @start Interface;
  141.  
  142.    /* Primary window */
  143. @object GenPrimaryClass TFEPrimary = {
  144.   GI_attrs = @default | GA_KBD_SEARCH_PATH;
  145.   GI_comp = @TFEFileGroup,
  146.             @TFEEditGroup,
  147.             @TFEOptionsGroup,
  148.             @TFEFontControl,
  149.             @TFEPtSizeControl,
  150. @ifdef DESKTOP
  151.             @TFEDisplayControl,
  152. @endif
  153.             @TFEToolbar,
  154.             @TFEDisplayGroup;
  155.   ATTR_GEN_HELP_CONTEXT = "TOC";
  156. @ifdef DESKTOP
  157.   HINT_SIZE_WINDOW_AS_RATIO_OF_FIELD = { SWSS_RATIO | PCT_70,
  158.                                          SWSS_RATIO | PCT_70 };
  159. @endif
  160. }
  161.  
  162.    /* File menu */
  163. @object GenInteractionClass TFEFileGroup = {
  164.   GI_attrs = @default | GA_KBD_SEARCH_PATH;
  165.   GI_comp = @TFEDocumentControl,
  166. @ifndef DESKTOP
  167.             @TFESaveTrigger,
  168. @endif
  169.             @TFEPrintControl,
  170.             @TFEAboutBox;
  171. @ifdef OMNIGO
  172.   GI_visMoniker = "File";
  173.   @localize { "Name of the menu containing the document controls, \
  174. like Switch Document and Close, etc." };
  175. @endif
  176.   GII_visibility = GIV_POPUP;
  177. @ifndef OMNIGO
  178.   ATTR_GEN_INTERACTION_GROUP_TYPE = ( GIGT_FILE_MENU );
  179. @endif
  180.   HINT_SEEK_MENU_BAR;
  181. }
  182.  
  183.    /* Document control UI */
  184. @object GenDocumentControlClass TFEDocumentControl = {
  185.   GDCI_noNameText = "No Document";
  186.   @localize { "This means no file has been opened yet." };
  187.   GDCI_documentGroup = @TFEDocumentGroup;
  188.   GDCI_attrs = ( @default
  189.                  | GDCA_MULTIPLE_OPEN_FILES
  190.                  | GDCA_NATIVE )
  191.                & ~GDCA_VM_FILE;
  192.   GDCI_features = @default &
  193.                   ~( GDCF_SUPPORTS_TEMPLATES |
  194.                      GDCF_SUPPORTS_USER_SETTABLE_EMPTY_DOCUMENT |
  195.                      GDCF_SUPPORTS_USER_MAKING_SHARED_DOCUMENTS |
  196.                      GDCF_NAME_ON_PRIMARY );
  197.   GDCI_enableDisableList = @TFEDocEnableList;
  198. }
  199.  
  200.    /* These objects become enabled when a document is opened. */
  201. @chunk optr TFEDocEnableList[] = {
  202. @ifdef DESKTOP
  203.   @TFESpellControl,
  204. @else
  205.   @TFESaveTrigger,
  206. @endif
  207.   @TFEPrintControl,
  208.   @TFESearchReplaceControl
  209. };
  210.  
  211. @ifndef DESKTOP
  212.      /* Causes open files to be saved. */
  213.   @object GenTriggerClass TFESaveTrigger = {
  214.     GI_states = @default & ~GS_ENABLED;
  215.     GI_visMoniker = "Save";
  216.     @localize { "Causes current document to be saved." };
  217.     GTI_destination = @TFEDocumentControl;
  218.     GTI_actionMsg = MSG_GEN_DOCUMENT_CONTROL_INITIATE_SAVE_DOC;
  219.   }
  220. @endif
  221.  
  222.    /* Print control UI */
  223. @object PrintControlClass TFEPrintControl = {
  224.   PCI_attrs = @default & ~( PCA_PAGE_CONTROLS | PCA_VERIFY_PRINT ) |
  225.               PCA_MARK_APP_BUSY | PCA_SHOW_PROGRESS |
  226.               PCA_PROGRESS_PAGE;
  227.   PCI_output = ( TO_APP_TARGET );
  228.   PCI_docNameOutput = @TFEDocumentGroup;
  229.   PCI_docSizeInfo = { ( 7.5 * 72 ), ( 10 * 72 ), PT_PAPER,
  230.                       { ( 0.5 * 72 ), ( 0.5 * 72 ),
  231.                         ( 0.5 * 72 ), ( 0.5 * 72 ) } };
  232. }
  233.  
  234.    /* Credits and copyright messages */
  235. @object GenInteractionClass TFEAboutBox = {
  236.   GI_visMoniker = "About";
  237.   @localize { "Name of dialog containing author and copyright \
  238. information." };
  239.   GI_comp = @TFEAboutText1,
  240.             @TFEAboutText2,
  241.             @TFEAboutText3,
  242.             @TFEAboutText4,
  243.             @TFEAboutText5,
  244.             @TFEAboutOkayTrigger;
  245.   GII_type = GIT_ORGANIZATIONAL;
  246.   GII_visibility = GIV_DIALOG;
  247.   ATTR_GEN_HELP_CONTEXT = "dbCredits";
  248.   HINT_CENTER_CHILDREN_HORIZONTALLY;
  249. }
  250.  
  251. @object GenGlyphClass TFEAboutText1 = {
  252.   GI_visMoniker = "BMS Text Editor";
  253. }
  254.  
  255. @object GenGlyphClass TFEAboutText2 = {
  256.   GI_visMoniker = "Copyright ⌐ Blue Marsh Softworks 1996";
  257. }
  258.  
  259. @object GenGlyphClass TFEAboutText3 = {
  260.   GI_visMoniker = "Portions of this program are";
  261. }
  262.  
  263. @object GenGlyphClass TFEAboutText4 = {
  264.   GI_visMoniker = "Copyright ⌐ Geoworks 1993, 1994";
  265. }
  266.  
  267. @object GenGlyphClass TFEAboutText5 = {
  268.   GI_visMoniker = "and used by permission.";
  269. }
  270.  
  271.    /* Makes About box go away. */
  272. @object GenTriggerClass TFEAboutOkayTrigger = {
  273.   GI_attrs = @default | GA_SIGNAL_INTERACTION_COMPLETE;
  274.   ATTR_GEN_TRIGGER_INTERACTION_COMMAND = { IC_OK };
  275.   HINT_SEEK_REPLY_BAR;
  276. }
  277.  
  278.    /* Edit menu */
  279. @object GenInteractionClass TFEEditGroup = {
  280.   GI_attrs = @default | GA_KBD_SEARCH_PATH;
  281.   GI_comp = @TFEEditControl,
  282. @ifdef DESKTOP
  283.             @TFESpellControl,
  284. @endif
  285.             @TFESearchReplaceControl;
  286.   GII_visibility = GIV_POPUP;
  287.   ATTR_GEN_INTERACTION_GROUP_TYPE = ( GIGT_EDIT_MENU );
  288.   HINT_SEEK_MENU_BAR;
  289. }
  290.  
  291.    /* Provides editing tools */
  292. @object GenEditControlClass TFEEditControl = {
  293.   GI_attrs = @default | GA_KBD_SEARCH_PATH;
  294.   GII_visibility = GIV_SUB_GROUP;
  295. }
  296.  
  297.    /* Provides Find and Replace functions. */
  298. @object SearchReplaceControlClass TFESearchReplaceControl = {
  299.   GI_visMoniker = 'F', "Find and Replace";
  300.   @localize { "Title of dialog for finding and replacing text." };
  301.   GI_states = @default & ~GS_ENABLED;
  302.   GII_visibility = GIV_DIALOG;
  303.   ATTR_SEARCH_CONTROL_INTERACT_ONLY_WITH_TARGETED_TEXT_OBJECTS;
  304.   ATTR_GEN_DESTINATION_CLASS = { (ClassStruct*)&TFETextClass };
  305. }
  306.  
  307. @ifdef DESKTOP
  308.      /* Spell checker UI */
  309.   @object SpellControlClass TFESpellControl = {
  310.     GI_visMoniker = 'S', "Check Spelling";
  311.     @localize { "Title of dialog to check spelling of text." };
  312.     GI_states = @default & ~GS_ENABLED;
  313.     GII_visibility = GIV_DIALOG;
  314.     ATTR_GEN_DESTINATION_CLASS = { (ClassStruct*)&TFETextClass };
  315.   }
  316. @endif
  317.  
  318.    /* Options menu */
  319. @object GenInteractionClass TFEOptionsGroup = {
  320.   GI_comp = @TFEToolControl,
  321.             @TFESaveOptsTrigger,
  322.             @TFEToolbox;
  323.   GII_visibility = GIV_POPUP;
  324.   ATTR_GEN_INTERACTION_GROUP_TYPE = (GIGT_OPTIONS_MENU);
  325. }
  326.  
  327.    /* Toolbar controller */
  328. @object GenToolControlClass TFEToolControl = {
  329.   GI_visMoniker = 'C', "Customize Toolbars";
  330.   @localize { "Title of dialog that allows user to rearrange tools." };
  331.   GII_visibility = GIV_DIALOG;
  332.   GTCI_toolboxList = @TFEToolboxList;
  333.   GTCI_toolGroupList = @TFEToolGroupList;
  334. }
  335.  
  336.    /* Save options */
  337. @object GenTriggerClass TFESaveOptsTrigger = {
  338.   GI_visMoniker = 'S', "Save Configuration";
  339.   @localize { "Tells ZTE to save the settings to the GEOS.INI file." };
  340.   GTI_destination = process;
  341.   GTI_actionMsg = MSG_META_SAVE_OPTIONS;
  342. }
  343.  
  344.    /* Floating toolbox. */
  345. @object GenInteractionClass TFEToolbox = {
  346.   GI_visMoniker = "Floating Toolbox";
  347. @ifndef DESKTOP
  348.   GI_comp = @TFEPrintToolGroup,
  349.             @TFEFontToolGroup,
  350.             @TFEPtSizeToolGroup;
  351. @endif
  352.   GII_visibility = GIV_DIALOG;
  353.   HINT_TOOLBOX;
  354.   HINT_EXPAND_WIDTH_TO_FIT_PARENT;
  355.   HINT_ALLOW_CHILDREN_TO_WRAP;
  356.   HINT_ORIENT_CHILDREN_HORIZONTALLY;
  357.   HINT_FULL_JUSTIFY_CHILDREN_HORIZONTALLY;
  358.   HINT_INTERACTION_MAKE_RESIZABLE;
  359. }
  360.  
  361.    /* Pointer to toolbars and toolbar names. */
  362. @chunk ToolboxInfo TFEToolboxList[] = {
  363.   { @TFEToolbar, @TFEToolbarName },
  364.   { @TFEToolbox, @TFEToolboxName }
  365. };
  366.  
  367.    /* List of tool groups. */
  368. @chunk ToolGroupInfo TFEToolGroupList[] = {
  369.   { @TFEDocumentToolGroup },
  370.   { @TFEFindToolGroup },
  371.   { @TFEEditToolGroup },
  372. @ifdef DESKTOP
  373.   { @TFESpellToolGroup },
  374. @endif
  375.   { @TFEPrintToolGroup },
  376.   { @TFEFontToolGroup },
  377.   { @TFEPtSizeToolGroup }
  378. };
  379.  
  380.    /* Allows change of text font. */
  381. @object FontControlClass TFEFontControl = {
  382.   GI_visMoniker = 'F', "Fonts";
  383.   @localize { "Menu that lists available fonts." };
  384.   GII_visibility = GIV_POPUP;
  385.   HINT_SEEK_MENU_BAR;
  386. }
  387.  
  388.    /* Allows change of text size. */
  389. @object PointSizeControlClass TFEPtSizeControl = {
  390.   GI_visMoniker = 'S', "Sizes";
  391.   @localize { "Menu that lists available point sizes." };
  392.   GII_visibility = GIV_POPUP;
  393.   ATTR_GEN_CONTROL_PROHIBIT_UI = { PSCF_SMALLER |
  394.                                    PSCF_LARGER };
  395.   ATTR_GEN_CONTROL_PROHIBIT_TOOLBOX_UI = { PSCTF_SMALLER |
  396.                                            PSCTF_LARGER
  397. @ifndef OMNIGO
  398.                                            | PSCTF_CUSTOM_SIZE
  399. @endif
  400.                                          };
  401.   HINT_SEEK_MENU_BAR;
  402. }
  403.  
  404. @ifdef DESKTOP
  405.      /* Window menu, manages multiple displays */
  406.   @object GenDisplayControlClass TFEDisplayControl = {
  407.     GII_visibility = GIV_POPUP;
  408.     ATTR_GEN_INTERACTION_GROUP_TYPE = ( GIGT_WINDOW_MENU );
  409.   }
  410. @endif
  411.  
  412.    /* Toolbar object, contains tool groups */
  413. @object GenInteractionClass TFEToolbar = {
  414.   GI_comp = @TFEDocumentToolGroup,
  415.             @TFEFindToolGroup,
  416.             @TFEEditToolGroup
  417. @ifndef DESKTOP
  418.             ;
  419. @else
  420.             ,
  421.             @TFESpellToolGroup,
  422.             @TFEPrintToolGroup,
  423.             @TFEFontToolGroup,
  424.             @TFEPtSizeToolGroup;
  425. @endif
  426.   HINT_TOOLBOX;
  427.   HINT_EXPAND_WIDTH_TO_FIT_PARENT;
  428.   HINT_ALLOW_CHILDREN_TO_WRAP;
  429.   HINT_ORIENT_CHILDREN_HORIZONTALLY;
  430.   HINT_FULL_JUSTIFY_CHILDREN_HORIZONTALLY;
  431. }
  432.  
  433. @chunk char TFEToolbarName[] = "Toolbar below menu";
  434. @localize { "Name of toolbar, could be anything." };
  435. @chunk char TFEToolboxName[] = "Floating Toolbox";
  436. @localize { "Name of toolbox, could be anything." };
  437.  
  438.    /* DocumentControl tools */
  439. @object GenToolGroupClass TFEDocumentToolGroup = {
  440.   GTGI_controller = @TFEDocumentControl;
  441.   HINT_MINIMIZE_CHILD_SPACING;
  442.   HINT_SAME_ORIENTATION_AS_PARENT;
  443. }
  444.  
  445.    /* EditControl tools */
  446. @object GenToolGroupClass TFEEditToolGroup = {
  447.   GTGI_controller = @TFEEditControl;
  448.   HINT_MINIMIZE_CHILD_SPACING;
  449.   HINT_SAME_ORIENTATION_AS_PARENT;
  450. }
  451.  
  452.    /* SearchReplaceControl tools */
  453. @object GenToolGroupClass TFEFindToolGroup = {
  454.   GTGI_controller = @TFESearchReplaceControl;
  455.   HINT_MINIMIZE_CHILD_SPACING;
  456.   HINT_SAME_ORIENTATION_AS_PARENT;
  457. }
  458.  
  459.    /* PrintControl tools */
  460. @object GenToolGroupClass TFEPrintToolGroup = {
  461.   GTGI_controller = @TFEPrintControl;
  462.   HINT_MINIMIZE_CHILD_SPACING;
  463.   HINT_SAME_ORIENTATION_AS_PARENT;
  464. }
  465.  
  466. @ifdef DESKTOP
  467.      /* SpellControl tools */
  468.   @object GenToolGroupClass TFESpellToolGroup = {
  469.     GTGI_controller = @TFESpellControl;
  470.     HINT_MINIMIZE_CHILD_SPACING;
  471.     HINT_SAME_ORIENTATION_AS_PARENT;
  472.   }
  473. @endif
  474.  
  475.    /* PointSizeControl tools */
  476. @object GenToolGroupClass TFEPtSizeToolGroup = {
  477.   GTGI_controller = @TFEPtSizeControl;
  478.   HINT_MINIMIZE_CHILD_SPACING;
  479.   HINT_SAME_ORIENTATION_AS_PARENT;
  480. }
  481.  
  482.    /* FontControl tools */
  483. @object GenToolGroupClass TFEFontToolGroup = {
  484.   GTGI_controller = @TFEFontControl;
  485.   HINT_MINIMIZE_CHILD_SPACING;
  486.   HINT_SAME_ORIENTATION_AS_PARENT;
  487. }
  488.  
  489.    /* Keeps track of multiple displays */
  490. @object GenDisplayGroupClass TFEDisplayGroup = {
  491.   ATTR_GEN_DESTINATION_CLASS = { (ClassStruct*)&TFEDocumentClass };
  492.   HINT_DEFAULT_FOCUS;
  493.   HINT_DEFAULT_TARGET;
  494. }
  495.  
  496. @end Interface;
  497.  
  498. /********************************************************************
  499.  *       DocGroupResource
  500.  *******************************************************************/
  501. @start DocGroupResource;
  502.  
  503.    /* This manages the documents and sends messages. */
  504. @object GenDocumentGroupClass TFEDocumentGroup = {
  505.   GDGI_attrs = ( @default | GDGA_NATIVE ) &
  506.                ~( GDGA_VM_FILE |
  507.                   GDGA_SUPPORTS_AUTO_SAVE |
  508.                   GDGA_AUTOMATIC_CHANGE_NOTIFICATION |
  509.                   GDGA_AUTOMATIC_DIRTY_NOTIFICATION );
  510.   GDGI_untitledName = "BLANK";
  511.   @localize { "Name of a newly created text file." };
  512.   GDGI_documentControl = @TFEDocumentControl;
  513.   GDGI_genDisplayGroup = @TFEDisplayGroup;
  514.   GDGI_documentClass = (ClassStruct*)&TFEDocumentClass;
  515.   GDGI_genDisplay = @TFEDisplay;
  516.   GDGI_genView = @TFEView;
  517. }
  518.  
  519. @end DocGroupResource;
  520.  
  521. /********************************************************************
  522.  *       DisplayResource
  523.  *     This entire resource is duplicated by the GenDocumentGroup each
  524.  *     time it creates a new GenDocument object.
  525.  *     Each GenDocument is linked to the GenView that is the display's
  526.  *     child and is displayed within that GenView.
  527.  *******************************************************************/
  528. @start DisplayResource;
  529.  
  530.    /* Holds GenView */
  531. @object GenDisplayClass TFEDisplay = {
  532.   GI_states = @default & ~GS_USABLE;
  533.   GI_comp = @TFEView;
  534.   ATTR_GEN_DISPLAY_NOT_MINIMIZABLE;
  535. @ifdef OMNIGO
  536.   ATTR_GEN_DISPLAY_MAXIMIZED_STATE;
  537. @endif
  538. }
  539.  
  540.    /* Displays the text and handles ink input. */
  541. @object GenViewClass TFEView = {
  542.   GVI_attrs = @default | GVA_WINDOW_COORDINATE_MOUSE_EVENTS
  543.                        | GVA_FOCUSABLE
  544.                        | GVA_DRAG_SCROLLING;
  545. @ifdef OMNIGO
  546.   GVI_horizAttrs = ( @default | GVDA_NO_SMALLER_THAN_CONTENT
  547.                               | GVDA_DONT_DISPLAY_SCROLLBAR )
  548.                  & ~GVDA_SCROLLABLE;
  549. @endif
  550.   GVI_vertAttrs = @default | GVDA_SCROLLABLE;
  551. @ifndef DESKTOP
  552.   GVI_inkType = GVIT_INK_WITH_STANDARD_OVERRIDE;
  553. @endif
  554.   HINT_EXPAND_WIDTH_TO_FIT_PARENT;
  555.   HINT_DEFAULT_TARGET;
  556.   HINT_DEFAULT_FOCUS;
  557. }
  558.  
  559. @end DisplayResource;
  560.  
  561. /********************************************************************
  562.  *       DocumentResource
  563.  *     This entire resource is duplicated by the GenDocument each
  564.  *     time a new GenDocument object is created.
  565.  *     It contains the text object, the heart of the document.
  566.  *******************************************************************/
  567. @start DocumentResource;
  568.  
  569.    /* Main component of the document */
  570. @object TFETextClass TFEText = {
  571.   VTI_state = ( @default |
  572.                 VTS_EDITABLE |
  573.                 VTS_SELECTABLE |
  574.                 VTS_TARGETABLE );
  575.   VTI_features = @default | VTF_ALLOW_UNDO;
  576.   VTI_output = process;
  577.   VTI_charAttrRuns = ( VTDF_URW_MONO << VTDCA_FONT_OFFSET );
  578.   VLTI_displayMode = VLTDM_DRAFT_WITH_STYLES;
  579.   VLTI_attrs = VLTA_EXACT_HEIGHT;
  580.   VLTI_regionArray = @TFETextRegionArray;
  581.   TFETI_allowChanges = TRUE;
  582. }
  583.  
  584. @chunk ChunkArrayHeader TFETextRegionArray = {
  585.   0,
  586.   sizeof( VisLargeTextRegionArrayElement ),
  587.   0,
  588.   sizeof( ChunkArrayHeader )
  589. };
  590.  
  591. @end DocumentResource;
  592.  
  593.