.CM  SCRIPT , Version - 1.1 , last edited by barbara
.ad 8
.bm 8
.fm 4
.bt $Copyright (c) 2000-2004 SAP AG$$Page %$
.tm 12
.hm 6
.hs 3
.TT 1 $SQL$Project Distributed Database System$VIN26$
.tt 2 $$$
.TT 3 $$Logonscreen$1999-11-01$
***********************************************************
.nf
 
.nf
 
 
    ========== licence begin  GPL
    Copyright (c) 2000-2004 SAP AG
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    as published by the Free Software Foundation; either version 2
    of the License, or (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    ========== licence end
 
.fo
 
 
.fo
.nf
.sp
MODULE  : Logonscreen
=========
.sp
Purpose : Layout of DDB/4 mask
          (without input lines for user, password and so on)
.CM *-END-* purpose -------------------------------------
.sp
.cp 3
Define  :
 
        PROCEDURE
              i26centered_logon_screen (
                    VAR cl          : tin_comp_label;
                    VAR line_offset : integer;
                    VAR col_offset  : integer);
 
        PROCEDURE
              i26upper_left_logon_screen (
                    VAR cl          : tin_comp_label);
 
        FUNCTION
              in2630 : tsp00_Int4;
 
.CM *-END-* define --------------------------------------
.sp;.cp 3
Use     :
 
        FROM
              logical_screen : VIN50;
 
        PROCEDURE
              i50put1field (
                    VAR field  : tin_screenline;
                    length     : tin_natural;
                    field_pos  : tin_ls_position;
                    field_type : tin_ls_fieldtype);
 
      ------------------------------ 
 
        FROM
              logical_screen_layout: VIN51;
 
        PROCEDURE
              i51size (
                    screen_part    : tin_ls_part;
                    VAR partlength : tin_natural;
                    VAR partwidth  : tin_natural);
 
      ------------------------------ 
 
        FROM
              Kernel_move_and_fill : VGG101;
 
        PROCEDURE
              SAPDB_PascalForcedMove (
                    source_upb  : tsp00_Int4;
                    destin_upb  : tsp00_Int4;
                    source      : tsp00_MoveObjPtr;
                    source_pos  : tsp00_Int4;
                    destin      : tsp00_MoveObjPtr;
                    destin_pos  : tsp00_Int4;
                    length      : tsp00_Int4);
 
        PROCEDURE
              s10mv (
                    source_upb  : tsp00_Int4;       
                    destin_upb  : tsp00_Int4;
                    source      : tsp00_MoveObjPtr;    
                    source_pos  : tsp00_Int4;
                    destin      : tsp00_MoveObjPtr;    
                    destin_pos  : tsp00_Int4;
                    length      : tsp00_Int4);
 
.CM *-END-* use -----------------------------------------
.sp;.cp 3
Synonym :
 
        PROCEDURE
              i50put1field;
 
              tsp00_MoveObj tin_screenline
 
.CM *-END-* synonym -------------------------------------
.sp;.cp 3
Author  :
.sp
.cp 3
Created : 1988-08-30
.sp
.cp 3
.sp
.cp 3
Release :      Date : 1999-11-01
.sp
***********************************************************
.sp
.cp 10
.fo
.oc _/1
Specification:
 
 
.CM *-END-* specification -------------------------------
.sp 2
***********************************************************
.sp
.cp 10
.fo
.oc _/1
Description:
 
.CM *-END-* description ---------------------------------
.sp 2
***********************************************************
.sp
.cp 10
.nf
.oc _/1
Structure:
 
.CM *-END-* structure -----------------------------------
.sp 2
**********************************************************
.sp
.cp 10
.nf
.oc _/1
.CM -lll-
Code    :
 
 
TYPE
      logon_mask = ARRAY [ 1..2, 1..16 ] OF tsp00_C40;
 
 
(*------------------------------*) 
 
FUNCTION
      in2630 : tsp00_Int4;
 
BEGIN
(* linkcheck function *)
in2630 := 219020414;
END;
 
&ifdef WINDOWS
(*------------------------------*) 
 
PROCEDURE
      i26centered_logon_screen (
            VAR cl          : tin_comp_label;
            VAR line_offset : integer;
            VAR col_offset  : integer);
 
BEGIN
line_offset := 0;
col_offset  := 0;
END; (* i26centered_logon_screen *)
 
&else
(*------------------------------*) 
 
PROCEDURE
      i26centered_logon_screen (
            VAR cl          : tin_comp_label;
            VAR line_offset : integer;
            VAR col_offset  : integer);
 
VAR
      n            : logon_mask;
      i            : integer;
      num_of_lines : tin_natural;
      num_of_cols  : tin_natural;
      field_pos    : tin_ls_position;
      field_type   : tin_ls_fieldtype;
      line         : tin_screenline;
 
BEGIN
get_normal_mask(n);
WITH field_pos DO
    BEGIN
    screen_part := cin_ls_basic_window; (* B.M. Rel 3.0 20 Feb 1991 *)
    (* center logon mask on the screen (M.Rathmann 3.6.93) *)
    i51size (screen_part, num_of_lines, num_of_cols);
    line_offset := (num_of_lines - 24) DIV 2;
    col_offset  := (num_of_cols - 80) DIV 2;
    IF  line_offset < - 2
    THEN
        line_offset := - 2;
    (*ENDIF*) 
    IF  col_offset < 0
    THEN
        col_offset := 0;
    (*ENDIF*) 
    scol := col_offset + 1;
    END;
(*ENDWITH*) 
WITH field_type DO
    BEGIN
    field_att  := cin_ls_normal; (*cin_ls_enhanced;*)
    fieldmode  := [  ] ;
    END;
(*ENDWITH*) 
FOR i := 1 TO 12 DO
    BEGIN
    field_pos.sline := line_offset + i + 2; (* B.M. Rel 3.0 20 Feb 1991 *)
    s10mv (40,mxin_screenline,
          @n  [1]   [i] ,1,
          @line,1,40);
    s10mv (40,mxin_screenline,
          @n  [2]   [i] ,1,
          @line,41,40);
    i50put1field (line, 79, field_pos, field_type);
    END;
(*ENDFOR*) 
FOR i := 13 TO 16 DO
    BEGIN
    field_pos.sline := line_offset + i + 2; (* B.M. Rel 3.0 20 Feb 1991 *)
    s10mv (40,mxin_screenline,
          @n  [1]   [i] ,1,
          @line,1,40);
    s10mv (40,mxin_screenline,
          @n  [2]   [i] ,1,
          @line,41,40);
    (* complabel pos: line=line_offset+14 col=col_offset+34 *)
    IF  i = 14
    THEN
        s10mv (20,mxin_screenline,
              @cl,1,
              @line,34,20);
    (*ENDIF*) 
    i50put1field (line, 79, field_pos, field_type);
    END;
(*ENDFOR*) 
END; (* i26centered_logon_screen *)
 
&endif
(*------------------------------*) 
 
PROCEDURE
      i26upper_left_logon_screen (
            VAR cl          : tin_comp_label);
 
VAR
      n            : logon_mask;
      i            : integer;
      field_pos    : tin_ls_position;
      field_type   : tin_ls_fieldtype;
      line         : tin_screenline;
 
BEGIN
get_normal_mask(n);
WITH field_pos DO
    BEGIN
    screen_part := cin_ls_basic_window; (* B.M. Rel 3.0 20 Feb 1991 *)
    scol := 1;
    END;
(*ENDWITH*) 
WITH field_type DO
    BEGIN
    field_att  := cin_ls_enhanced;
    fieldmode  := [  ] ;
    END;
(*ENDWITH*) 
FOR i := 1 TO 16 DO
    BEGIN
    field_pos.sline := i + 2;
    s10mv (40,mxin_screenline,
          @n  [1]   [i] ,1,
          @line,1,40);
    s10mv (40,mxin_screenline,
          @n  [2]   [i] ,1,
          @line,41,40);
    (* complabel pos: line=line_offset+14 col=col_offset+34 *)
    IF  i = 14
    THEN
        s10mv (20,mxin_screenline,
              @cl,1,
              @line,34,20);
    (*ENDIF*) 
    i50put1field (line, 79, field_pos, field_type);
    END;
(*ENDFOR*) 
END; (* i26upper_left_logon_screen *)
 
(*------------------------------*) 
 
PROCEDURE
      get_normal_mask (
            VAR n : logon_mask);
 
BEGIN
n [1]  [1]  := '                                        ';
n [1]  [2]  := '            /SSSSSSS     /A     /PPPPPPP';
n [1]  [3]  := '           /SS//////    /AAA    /PP////P';
n [1]  [4]  := '           /SS         /AA AA   /PP   /P';
n [1]  [5]  := '            /SSSSSS   /AA  /AA  /PPPPPPP';
n [1]  [6]  := '             /////SS  /AAAAAAA  /PP//// ';
n [1]  [7]  := '                 /SS  /AA  /AA  /PP     ';
n [1]  [8]  := '           /SSSSSSS/  /AA  /AA  /PP     ';
n [1]  [9]  := '           ////////   ///  ///  ///     ';
n [1]  [10] := '                                        ';
n [1]  [11] := '                                        ';
n [1]  [12] := '                                        ';
n [1]  [13] := '                         /SSSSSSSSSSSSSS';
n [1]  [14] := '                  /SSSSSSSS          U T';
n [1]  [15] := '           /SSSSSSSSSSSSSSSSSSSSSSSSSSSS';
n [1]  [16] := '           /////////////////////////////';
(**)
n [2]  [1]  := '                                        ';
n [2]  [2]  := '           /DDDDDDDD   /BBBBBBBB        ';
n [2]  [3]  := 'P          /DD/////DD  /BB/////BB       ';
n [2]  [4]  := 'P          /DD    /DD  /BB    /BB       ';
n [2]  [5]  := '/  /SSSSS  /DD    /DD  /BBBBBBBB/       ';
n [2]  [6]  := '   //////  /DD    /DD  /BB/////BB       ';
n [2]  [7]  := '           /DD    /DD  /BB    /BB       ';
n [2]  [8]  := '           /DDDDDDDD/  /BBBBBBBB/       ';
n [2]  [9]  := '           /////////   /////////        ';
n [2]  [10] := '                                        ';
n [2]  [11] := '                                        ';
n [2]  [12] := '                                        ';
n [2]  [13] := 'SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS     ';
n [2]  [14] := ' I L I T Y          SSSSSSSS//////      ';
n [2]  [15] := 'SSSSSSSSSSSSSSSSSSSSS//////             ';
n [2]  [16] := '////////////////////                    ';
END; (* get_normal_mask *)
 
.CM *-END-* code ----------------------------------------
.SP 2 
***********************************************************
.PA 
