Annotation of os232sdk/toolkt20/c/samples/template/readme.doc, revision 1.1

1.1     ! root        1:     SAMPLE PRESENTATION MANAGER APPLICATION TEMPLATE
        !             2:     ================================================
        !             3: 
        !             4: The sources contained here are designed to serve as a template for
        !             5: your PM application.  These source files contain the overhead
        !             6: routines necessary to create a PM application as well as stubs
        !             7: for the basic menu items that all applications should have.  The
        !             8: source files are organized so that only a few of the files need to
        !             9: be modified; most of the source files can be left alone.  All of
        !            10: standard initialization and general functionality routines are placed
        !            11: in separate source files.  Since most applications will not need to
        !            12: change these routines, these files do not need to be changed.
        !            13: 
        !            14: 
        !            15:     ORGANIZATION OF SOURCE FILES
        !            16:     ============================
        !            17: 
        !            18: Here is list of the source files included in the template application
        !            19: and their general purpose.  All filenames have been limited to four
        !            20: characters so that you may add a prefix to the filenames to delineate
        !            21: which ones have been modified for you application.
        !            22: 
        !            23:     main.h - application constants
        !            24:     xtrn.h - external variable and function declarations
        !            25:     help.h - help panel ids
        !            26:     dlg.h  - dialog box constants and item ids.  This file is designed
        !            27:              to be used with the dialog editor.
        !            28: 
        !            29:     main.c - main function, main window procedure, basic menu handler
        !            30:     init.c - initialization and Exit List processing routines
        !            31:     file.c - routines for processing File menu items
        !            32:     edit.c - routines for processing Edit menu items
        !            33:     user.c - functions for processing menu items and messages
        !            34:              specific to the application
        !            35:     dlg.c  - application specific dialog boxes
        !            36:     help.c - help manager functions
        !            37:     pnt.c  - routines for painting the main window
        !            38:     prnt.c - routines for printing
        !            39: 
        !            40:     main.rc - main resource file containing menus, stringtable, etc.
        !            41:     help.rc - resource file for help panels
        !            42: 
        !            43:     main.ipf - main help text file, contains the link to the others
        !            44:     file.ipf - help text file for the file menu items
        !            45:     edit.ipf - help text file for the edit menu items
        !            46:     menu.ipf - help text file for the application defined menu items
        !            47:     dlg.ipf  - help text file for the dialog boxes
        !            48:     help.ipf - help text file for the help menu
        !            49: 
        !            50:     sample.mak - make file for the sample application
        !            51:     sample.def - module definition file for the sample application
        !            52: 
        !            53: 
        !            54: Also included are two blank headers for use in your source files.
        !            55: 
        !            56:     funchead.c - blank header used before each function
        !            57:     head.c     - blank header used at the beginning of each source file
        !            58: 
        !            59: 
        !            60:     ORGANIZATION OF THE SAMPLE TEMPLATE
        !            61:     ===================================
        !            62: 
        !            63: Most of the general setup and overhead code is located in the main.c
        !            64: file.  Since this code is standard for all PM applications, you
        !            65: will probably not need to modify main.c at all.  Main.c
        !            66: contains the window procedure for the main window (MainWndProc())
        !            67: as well as the routine for processing the WM_COMMAND message
        !            68: received by the main window (MainCommand()).  MainWndProc() handles
        !            69: all the messages that every window must handle.  MainCommand()
        !            70: handles all of the WM_COMMAND messages posted by all of the standard
        !            71: menu items and by calling the appropriate routine to process the
        !            72: command.  There is one routine for each standard menu item and
        !            73: they are located in separate source files, one file for each menu.
        !            74: 
        !            75: While these two routines handle all of the standard messages and
        !            76: menus, some additions will be required to one or both when you add
        !            77: your own menus or other features. Rather than have you modifying the
        !            78: file that shouldn't need to be changed, the parts you can modify have
        !            79: been moved into their own file, user.c.
        !            80: 
        !            81: User.c contains the user defined version of the window procedure
        !            82: (UserWndProc()) and the WM_COMMAND message handler (UserCommand()).
        !            83: These two routines are called by the main routines if the message was
        !            84: not one of the standard messages or menu.  For example, the user window
        !            85: WM_COMMAND processor is called if the message was not posted by one of
        !            86: the standard menu items.  By placing UserWndProc() and UserCommand()
        !            87: into their own file, you can now add the processing necessary for your
        !            88: application without the having the standard processing code cluttering
        !            89: up the routine.
        !            90: 
        !            91: 
        !            92: 
        !            93:     USING THE SAMPLE TEMPLATE
        !            94:     =========================
        !            95: 
        !            96: If you compile and link the sample application now, it will create an
        !            97: application that will run.  Although the application will not do
        !            98: anything, it is worth building the application in order to test your
        !            99: build environment and to see what a basic PM application looks like.
        !           100: 
        !           101: The sample application has only three menu items, File, Edit, and Help.
        !           102: The File menu contains commands for use on documents, e.g. opening a
        !           103: document or saving it to disk. The Edit menu contains commands for
        !           104: processing data in a document, namely cutting, copying, and pasting
        !           105: data to and from the clipboard.  The Help menu contains the standard
        !           106: commands for dealing with the help manager.
        !           107: 
        !           108: The routines for processing the standard menu commands are located in the
        !           109: *.c source files, where * is the name of the menu (e.g. File.c for the
        !           110: File menu).  The source file contains one routine for each
        !           111: menu item and the routine is named with the menu item name prefaced
        !           112: by the menu name.  For example, the routine that processes the New
        !           113: menu item of the File menu is FileNew().  The routines currently
        !           114: perform any actions which most applications will also take and then
        !           115: leave it up to you to add any application specific code.  The
        !           116: FileOpen() routine, for instance, calls the standard File Open dialog
        !           117: to retrieve a file name and opens the file for reading.  All you need
        !           118: to do is supply the code to read in the file.  You will need to
        !           119: supply routines to process all of the menu items whose commands are
        !           120: in these files.  Consult your CUA Style Guide if you have any questions
        !           121: as to the function of these menus.
        !           122: 
        !           123: You will also need to add any other menus which your application will
        !           124: use.  First add the menu item id values in the main.h file.  Next add
        !           125: the menu resource to the main.rc file. Now, add the code to process
        !           126: the WM_COMMAND messages posted by the menus to the UserCommand() routine
        !           127: in user.c.  Add the menu item id values to the switch statement and
        !           128: include any menu item processing code there.
        !           129: 
        !           130: Should you wish to process any of the messages sent to the main
        !           131: window which are not processed by the standard window procedure, you
        !           132: can add these to the UserWndProc() routine in user.c.  Add the
        !           133: message id to the switch statement along with the routines for
        !           134: processing the message.  Make sure that the default case calls
        !           135: WinDefWindowProc().
        !           136: 
        !           137: Any other initalization, such as command line processing, can be done
        !           138: by adding code to the Init() routine in init.c.  If there is additional
        !           139: processing you want done when the main window is created, add these
        !           140: routines to the InitMainWindow() function of init.c.
        !           141: 
        !           142: Remember to add new help screens for any menu items you add to menu.ipf
        !           143: and for any new dialog boxes you create to dialog.ipf.
        !           144: 
        !           145: Finally, change the the name of the source files you modified to reflect
        !           146: the name of your application.  If you use this template for more than
        !           147: one application, you will need an easy way to tell which source files
        !           148: belong to which application.  Embedding the identification of the
        !           149: application within the name of a source file will help you keep
        !           150: track of which application that source file is a part. Now if you use
        !           151: this template for more than one application you will be able to quickly
        !           152: discern the sources for each application, even if you have copies
        !           153: of the sources to more than one application on the same disk.
        !           154: 
        !           155: To tag the source files with an identifier for each application but
        !           156: still retain the identity of the source file, you should implement
        !           157: a prefix_suffix naming scheme for your source files.  The prefix
        !           158: should be a three letter abbreviation for your application name
        !           159: while the suffix should be the current name of the file.  All
        !           160: source files of the same application will then begin with the same
        !           161: three letters. Yet they will still contain the original name of
        !           162: the file so that the contents of the file can easily be determined
        !           163: by name.  For example, suppose you have two applications,
        !           164: APP1.EXE and APP2.EXE. You would know that the files AP1_INIT.C and
        !           165: AP1_DLG.C both are part of application 1.  You also know that
        !           166: AP1_PRNT.C and AP2_PRNT.C contain the print routines for each
        !           167: application.
        !           168: 
        !           169: The make file and module definition file should be changed to use the
        !           170: name of your application, not just an abbreviation.  Using the
        !           171: above example, your make file for application 1 would be APP1.MAK and
        !           172: the module definition file would be APP1.DEF.
        !           173: 
        !           174: Remember to change all references to files in your make file to
        !           175: match the name changes you make.  If you change header file names,
        !           176: also make sure to change all #include statements in the source
        !           177: and resource files that reference those header files.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.