home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l391 / 2.ddi / CONTDRAW.BA$ / CONTDRAW.bin
Encoding:
Text File  |  1992-08-19  |  9.9 KB  |  249 lines

  1. ' ------------------------------------------------------------------------
  2. ' Visual Basic for MS-DOS Control Panel Program Support Module
  3. '
  4. ' Provides desktop drawing routine for custom ASCII
  5. ' desktop images in Control Panel program.
  6. '
  7. ' Copyright (C) 1982-1992 Microsoft Corporation
  8. '
  9. ' You have a royalty-free right to use, modify, reproduce
  10. ' and distribute the sample applications and toolkits provided with
  11. ' Visual Basic for MS-DOS (and/or any modified version)
  12. ' in any way you find useful, provided that you agree that
  13. ' Microsoft has no warranty, obligations or liability for
  14. ' any of the sample applications or toolkits.
  15. ' ------------------------------------------------------------------------
  16.  
  17. CONST DESKTOP_PATTERN = 7              ' Definition for ControlPanel array element.
  18.  
  19. DEFINT A-Z
  20. ' Desktop drawing routine for Control Panel Program.
  21. '
  22. ' Creates custom text-mode (ASCII) picture to be displayed
  23. ' on the application desktop.  Add code here to create the
  24. ' additional pictures you want to be able to display.
  25. ' Use COLOR, LOCATE and PRINT statements to display characters.
  26. '
  27. SUB DrawDesktopPicture (pictnum AS INTEGER)
  28.     ' Output to desktop (screen) only allowed when forms
  29.     ' are not showing.
  30.     SCREEN.HIDE
  31.     x = DOEVENTS()
  32.  
  33.     ' Define constants corresponding to different pictures.
  34.     CONST LOGO = 1
  35.     CONST BRICKS = 2
  36.     CONST WINDOWS = 3
  37.  
  38.     ' Draw selected picture.  Add new pictures within
  39.     ' the SELECT CASE/END SELECT statements.
  40.     SELECT CASE pictnum
  41.     CASE LOGO:
  42.         COLOR 7, 0
  43.         CLS
  44.         COLOR 0, 7
  45.         IF SCREEN.Height < 50 THEN
  46.             LOCATE 2, 20
  47.         ELSE
  48.             LOCATE 4, 20
  49.         END IF
  50.  
  51.         IF SCREEN.Height > 25 THEN
  52.             PRINT "                                      ": LOCATE , 20
  53.         END IF
  54.         PRINT " ┌──────────────────────────────────┐ ": LOCATE , 20
  55.         PRINT " │                                  │ ": LOCATE , 20
  56.         IF SCREEN.Height > 25 THEN
  57.             PRINT " │                                  │ ": LOCATE , 20
  58.             PRINT " │                                  │ ": LOCATE , 20
  59.         END IF
  60.         PRINT " │       ████████████████████       │ ": LOCATE , 20
  61.         IF SCREEN.Height > 25 THEN
  62.             PRINT " │       ████████████████████       │ ": LOCATE , 20
  63.         END IF
  64.         PRINT " │       ██       ██       ██       │ ": LOCATE , 20
  65.         IF SCREEN.Height > 25 THEN
  66.             PRINT " │       ██       ██       ██       │ ": LOCATE , 20
  67.             PRINT " │       ██       ██       ██       │ ": LOCATE , 20
  68.             PRINT " │       ██       ██       ██       │ ": LOCATE , 20
  69.         END IF
  70.         PRINT " │       ██       ██       ██       │ ": LOCATE , 20
  71.         PRINT " │       ██       ██       ██       │ ": LOCATE , 20
  72.         PRINT " │       ██       ██       ██       │ ": LOCATE , 20
  73.         PRINT " │       ██       ██       ██       │ ": LOCATE , 20
  74.         PRINT " │       ████████████████████       │ ": LOCATE , 20
  75.         IF SCREEN.Height > 25 THEN
  76.             PRINT " │       ████████████████████       │ ": LOCATE , 20
  77.         END IF
  78.         PRINT " │       ██       ██       ██       │ ": LOCATE , 20
  79.         IF SCREEN.Height > 25 THEN
  80.             PRINT " │       ██       ██       ██       │ ": LOCATE , 20
  81.             PRINT " │       ██       ██       ██       │ ": LOCATE , 20
  82.             PRINT " │       ██       ██       ██       │ ": LOCATE , 20
  83.         END IF
  84.         PRINT " │       ██       ██       ██       │ ": LOCATE , 20
  85.         PRINT " │       ██       ██       ██       │ ": LOCATE , 20
  86.         PRINT " │       ██       ██       ██       │ ": LOCATE , 20
  87.         PRINT " │       ██       ██       ██       │ ": LOCATE , 20
  88.         PRINT " │       ████████████████████       │ ": LOCATE , 20
  89.         IF SCREEN.Height > 25 THEN
  90.             PRINT " │       ████████████████████       │ ": LOCATE , 20
  91.         END IF
  92.         PRINT " │                                  │ ": LOCATE , 20
  93.         IF SCREEN.Height > 25 THEN
  94.             PRINT " │                                  │ ": LOCATE , 20
  95.         END IF
  96.         PRINT " │      Visual Basic for MS-DOS     │ ": LOCATE , 20
  97.         IF SCREEN.Height > 25 THEN
  98.             PRINT " │                                  │ ": LOCATE , 20
  99.         END IF
  100.         PRINT " │        C h a r a c t e r         │ ": LOCATE , 20
  101.         IF SCREEN.Height > 25 THEN
  102.             PRINT " │                                  │ ": LOCATE , 20
  103.         END IF
  104.         PRINT " │          W i n d o w s           │ ": LOCATE , 20
  105.         PRINT " │                                  │ ": LOCATE , 20
  106.         IF SCREEN.Height > 25 THEN
  107.             PRINT " │                                  │ ": LOCATE , 20
  108.             PRINT " │                                  │ ": LOCATE , 20
  109.             PRINT " │                                  │ ": LOCATE , 20
  110.             PRINT " │                                  │ ": LOCATE , 20
  111.         END IF
  112.         PRINT " └──────────────────────────────────┘ ": LOCATE , 20
  113.         IF SCREEN.Height > 25 THEN
  114.             PRINT "                                      ";
  115.         END IF
  116.  
  117.         IF SCREEN.Height = 25 THEN
  118.             TopWindow = 4
  119.             LowerWindow = 5
  120.             LeftWindow = 31
  121.             SizeWindow = 5
  122.         ELSEIF SCREEN.Height = 43 THEN
  123.             TopWindow = 8
  124.             LowerWindow = 10
  125.             LeftWindow = 31
  126.             SizeWindow = 8
  127.         ELSE
  128.             TopWindow = 10
  129.             LowerWindow = 12
  130.             LeftWindow = 31
  131.             SizeWindow = 8
  132.         END IF
  133.  
  134.         COLOR 4
  135.         FOR i% = 1 TO SizeWindow
  136.             LOCATE TopWindow + i%, LeftWindow
  137.             PRINT "███████";
  138.         NEXT i%
  139.  
  140.         COLOR 2
  141.         FOR i% = 1 TO SizeWindow
  142.             LOCATE TopWindow + i%, LeftWindow + 9
  143.             PRINT "███████";
  144.         NEXT i%
  145.  
  146.         COLOR 1
  147.         FOR i% = 1 TO SizeWindow
  148.             LOCATE LowerWindow + SizeWindow + i%, LeftWindow
  149.             PRINT "███████";
  150.         NEXT i%
  151.  
  152.         COLOR 14
  153.         FOR i% = 1 TO SizeWindow
  154.             LOCATE LowerWindow + SizeWindow + i%, LeftWindow + 9
  155.             PRINT "███████";
  156.         NEXT i%
  157.  
  158.     CASE BRICKS:
  159.         COLOR 7, 0
  160.         CLS
  161.         COLOR 0, 4
  162.         BrickTop$ = "──────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬─────"
  163.         BrickBottom$ = "┴"
  164.         FOR i% = 1 TO SCREEN.Height - 1 STEP 2
  165.             LOCATE i%, 1
  166.             PRINT LEFT$(BrickTop$, 80);
  167.             LOCATE i% + 1, 1
  168.             PRINT RIGHT$(BrickTop$, 80);
  169.  
  170.             FOR j% = 3 TO 80 STEP 8
  171.             LOCATE i%, j%
  172.             PRINT BrickBottom$;
  173.             NEXT j%
  174.  
  175.             FOR j% = 7 TO 80 STEP 8
  176.             LOCATE i% + 1, j%
  177.             PRINT BrickBottom$;
  178.             NEXT j%
  179.         NEXT i%
  180.  
  181.         IF SCREEN.Height < 50 THEN
  182.             LOCATE SCREEN.Height, 1
  183.             PRINT LEFT$(BrickTop$, 80);
  184.  
  185.             FOR j% = 3 TO 80 STEP 8
  186.             LOCATE SCREEN.Height, j%
  187.             PRINT BrickBottom$;
  188.             NEXT j%
  189.         END IF
  190.  
  191.     CASE WINDOWS:
  192.         COLOR 7, 0
  193.         CLS
  194.         COLOR 14, 0
  195.         IF SCREEN.Height = 25 THEN
  196.             LOCATE 4, 20
  197.         ELSEIF SCREEN.Height = 43 THEN
  198.             LOCATE 10, 20
  199.         ELSE
  200.             LOCATE 12, 20
  201.         END IF
  202.  
  203.         PRINT "┌───────┐┌───────┐": LOCATE , 20
  204.         PRINT "│███████││███████│██": LOCATE , 20
  205.         PRINT "│███████││███████│█████": LOCATE , 20
  206.         IF SCREEN.Height > 25 THEN
  207.             PRINT "│███████││███████│███████": LOCATE , 20
  208.         END IF
  209.         PRINT "│███████││███████│███████████": LOCATE , 20
  210.         PRINT "│███████││███████│██████████████": LOCATE , 20
  211.         PRINT "│███████││███████│██████████████████": LOCATE , 20
  212.         PRINT "└───────┘└───────┘█████████████████████": LOCATE , 20
  213.         PRINT "┌───────┐┌───────┐████████████████████████": LOCATE , 20
  214.         PRINT "│███████││███████│███████████████████████████": LOCATE , 20
  215.         PRINT "│███████││███████│██████████████████████████████": LOCATE , 20
  216.         IF SCREEN.Height > 25 THEN
  217.             PRINT "│███████││███████│████████████████████████████████": LOCATE , 20
  218.         END IF
  219.         PRINT "│███████││███████│███████████████████████████████████": LOCATE , 20
  220.         PRINT "│███████││███████│█████████████████████████████████████": LOCATE , 20
  221.         PRINT "│███████││███████│████████████████████████████████████████": LOCATE , 20
  222.         PRINT "└───────┘└───────┘██████████████████████████████████████████": LOCATE , 20
  223.         PRINT " ████████████████████████████████████████████████████████████": LOCATE , 20
  224.         PRINT "   ██████████████████████████████████████████████████████████": LOCATE , 20
  225.         PRINT "     ████████████████████████████████████████████████████████": LOCATE , 20
  226.         PRINT "      ███████████████████████████████████████████████████████": LOCATE , 20
  227.         PRINT "        █████████████████████████████████████████████████████": LOCATE , 20
  228.         PRINT "          ███████████████████████████████████████████████████": LOCATE , 20
  229.         IF SCREEN.Height > 25 THEN
  230.             PRINT "           ██████████████████████████████████████████████████": LOCATE , 20
  231.             PRINT "              ███████████████████████████████████████████████": LOCATE , 20
  232.             PRINT "                █████████████████████████████████████████████": LOCATE , 20
  233.             PRINT "                   ██████████████████████████████████████████": LOCATE , 20
  234.         END IF
  235.  
  236.     END SELECT
  237.  
  238.     ' Preserve picture by setting element 7 (DESKTOP_PATTERN)
  239.     ' of ControlPanel array to 0 (nul).  Note, a redraw buffer
  240.     ' is used to save the image and will reduce the amount of
  241.     ' available memory in your application.
  242.     SCREEN.ControlPanel(DESKTOP_PATTERN) = 0
  243.  
  244.     ' Show forms on top of desktop.
  245.     SCREEN.SHOW
  246.     x = DOEVENTS()
  247. END SUB
  248.  
  249.