ETHZ_Logo RAMSES_Logo_Right   RAMSES   RAMSES_Logo_Left Systems Ecology  
Start    search button      Modules:   A-Z   Function   Layer        QuickRefs:   DM   AuxLib   AuxLibE   SciLib   EasyMW   MW   ISIS   RMSLib

DEFINITION MODULE  DMLanguage;

  (*******************************************************************

    Module  DMLanguage     ('Dialog Machine' DM_V3.0)

      Copyright (c) 1986-2006 by Andreas Fischlin and ETH Zurich.

    Purpose   Provides basic routines required for
              the 'Dialog Machine', such as the
              default language and generally used
              strings depending on the current
              language.

    Remarks   This module is distributed in source
              and its implementation can be easily
              adapted to any other languages currently
              not supported by using the language
              designators MyLanguage1 or MyLanguage2.

              This module belongs to the 'Dialog Machine'.


    Programming

      o Design
        Andreas Fischlin          28/07/1986

      o Implementation
        Andreas Fischlin          28/07/1986


    ETH Zurich
    Systems Ecology
    CHN E 35.1
    Universitaetstrasse 16
    8092 Zurich
    SWITZERLAND

    URLs:
        <mailto:RAMSES@env.ethz.ch>
        <http://www.sysecol.ethz.ch>
        <http://www.sysecol.ethz.ch/SimSoftware/RAMSES>


    Last revision of definition:  24/08/1997  AF

  *******************************************************************)


  TYPE
    Language = (English, German, French, Italian,
                MyLanguage1, MyLanguage2);


  PROCEDURE DefltAboutProc;
    (*default about procedure adjusted to the current language*)


  PROCEDURE SetLanguage(l: Language);
    (* Sets language l to display "Dialog Machine" messages, like
    about and error messages. Note that SetLanguage clears any
    eventually already installed about messages (see
    DMMenus.InstallAbout).  Hence, always call this procedure as
    early as possible in your Dialog Machine program. *)


  PROCEDURE CurrentLanguage(): Language;
    (*returns language currently in use*)




  (*
    The following objects are only for internal usage by the
    "Dialog Machine":
  *)

  VAR
    defltControlMenu, defltQuitCommand, defltAboutCommand,
    defltQuitSubCommand, defltAboutSubCommand: ARRAY [0..255] OF CHAR;

    okButtonText, cancelButtonText: ARRAY [0..15] OF CHAR;


  (* The following constants may be used to denote a particular message
  to be returned by routine GetMsgString (see below).  This supports
  a convenient error message display. Ex.: to display an error condition
  with unsufficient memory use from module DMMessages the routine DoInform
  similar to this statement:

     DoInform(insuffMem,"MyModule","MyProcedure","");

  By default DMMessages uses routine GetMsgString from this module to
  retrieve the actual message. Another typical usage is after attempting
  to open a file with module DMFiles:

    IF myFile.res<>done THEN
      errCode := fileResBase+ORD(myFile.res);
      DoInform(errCode,"MyModule","MyProcedure",myFile.filename);
    ELSE
      ...

   *)

  CONST
    allOk = 0;

    (* General ('Dialog Machine' and other software layers) *)
    badProgState (* should not occurr *) = -4;
    onlyAnInsert = -3;
    unknownErr = -2;
    insuffMem = -1;
    tooOldMac = 9;
    tooManyTermProc = 10;
    notImplemented = 100;

    (* DMWindIO arithmetic *)
    intOverflow = 1;
    lowUpSame = 2;

    (* User Input (DMEntryForms etc.) *)
    numExpected = 5;
    outOfRange = 7;
    wrongChar = 3;
    wrongCharOrNone = 14;
    only1Char = 4;
    only1CharOrNone = 15;
    stringTooLong = 16;

    (* Object access *)
    unknownWindow = 8;
    unknownEditField = 6;
    unknownGraph = 11;

    (* DM2DGraphs *)
    noLogScale = 12;
    graphTooSmall = 17;

    (* DMFiles: Subsequent message order fits DMFiles.Response,
    i.e. code = fileResBase+ORD(f.res) *)
    fileResBase = 20;
    fileNotFound = 21;
    volNotFound = 22;
    fileDlgCancelled = 23;
    unknownFile = 24;
    tooManyFiles = 25;
    diskFull = 26;
    insuffMemForFileFct = 27;
	fileAlreadyOpen = 28;
	fileIsBusy = 29;
	fileIsLocked = 30;
	fileFctNotDone = 31;
	
	(* Error constants beyond userBase may be used freely and
	do not conflict with any constants used by the 'Dialog Machine' *)
	userBase = 300;


  PROCEDURE GetMsgString(msgNr: INTEGER; VAR str: ARRAY OF CHAR);


END DMLanguage.

  Contact RAMSES@env.ethz.ch Last updated: 25-Jul-2011 [Top of page]