home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 16 / CD_ASCQ_16_0994.iso / news / 4611 / fw16d.ins / IDE / SOURCE / PROJECT.PRG < prev    next >
Text File  |  1994-06-08  |  3KB  |  119 lines

  1. // FiveWin Project management
  2. // FiveWin visual-make tools
  3.  
  4. #include "FiveWin.ch"
  5.  
  6. static aPrjBmps
  7.  
  8. //----------------------------------------------------------------------------//
  9.  
  10. function PrjNew()
  11.  
  12.    local cPrjName := cGetNewFileName( "PROJECT", "prj" )
  13.  
  14.    if ! File( cPrjName )
  15.       DbCreate( cPrjName, { { "TYPE",     "N",  2, 0 },;
  16.                             { "NAME",     "C", 50, 0 },;
  17.                             { "DESCRIPT", "C", 50, 0 } } )
  18.    endif
  19.  
  20.    PrjOpen( cPrjName )
  21.  
  22. return nil
  23.  
  24. //----------------------------------------------------------------------------//
  25.  
  26. function PrjOpen( cPrjName )
  27.  
  28.    local oIco, oWndPrj, oBrw, oBar, oFont, oHand, oWndAreas := GetWndAreas()
  29.    local cNtxName, cAlias
  30.    local nType
  31.    FIELD Type, Name, Descript
  32.  
  33.    DEFAULT cPrjName := cGetFile( "FiveWin IDE Project ( *.prj ) | *.prj",;
  34.                                  "Select a Project" ),;
  35.            aPrjBmps := GetPrjBmps()
  36.  
  37.    if ! File( cPrjName )
  38.       MsgStop( "I can't find " + cPrjName )
  39.       return nil
  40.    endif
  41.  
  42.    if ! Empty( cPrjName )
  43.       USE ( cPrjName ) NEW SHARED
  44.       If RecCount() == 0
  45.          APPEND BLANK
  46.          Type     := 0
  47.          Name     := "UnDefined"
  48.          Descript := "No description available"
  49.       endif
  50.       cNtxName = cNoExt( cPrjName )
  51.       INDEX ON Type TO ( cNtxName )
  52.       SET INDEX TO ( cNtxName )
  53.    else
  54.       return nil
  55.    endif
  56.  
  57.    cAlias = Alias()
  58.  
  59.    DEFINE ICON oIco RESOURCE "Project"
  60.  
  61.    DEFINE WINDOW oWndPrj FROM 1, 35 TO 23, 79 ;
  62.       TITLE "Project: " + cNoPath( cNoExt( cPrjName ) ) MDICHILD ;
  63.       ICON oIco
  64.  
  65.    DEFINE FONT oFont NAME "Arial" SIZE 6, 15 BOLD
  66.  
  67.    DEFINE CURSOR oHand RESOURCE "Hand"
  68.  
  69.    @  0, 0 LISTBOX oBrw ;
  70.       FIELDS aPrjBmps[ Min( Max( ( cAlias )->Type + 1, 1 ),;
  71.                             Len( aPrjBmps ) ) ],;
  72.                        Upper( cNoPath( ( cAlias )->Name ) ),;
  73.                        ( cAlias )->Descript ;
  74.       FIELDSIZES 16, 110, 500 ;
  75.       HEADERS " ", "Name", "Description" ;
  76.       OF oWndPrj ;
  77.       ON DBLCLICK ItemOpen( oBrw ) ;
  78.       ON CHANGE If( oWndAreas != nil, oWndAreas:oControl:Refresh(),) ;
  79.       FONT oFont CURSOR oHand ;
  80.       SIZE 400, 400 ;
  81.       MESSAGE "Visual make of all the project elements"
  82.  
  83.    DEFINE BUTTONBAR oBar OF oWndPrj
  84.  
  85.    DEFINE BUTTON OF oBar RESOURCE "New" ;
  86.       ACTION oBrw:RecAdd() ;
  87.       MESSAGE "Add a new item to the project"
  88.  
  89.    DEFINE BUTTON OF oBar RESOURCE "Edit" ;
  90.       ACTION ItemNew( oBrw ) ;
  91.       MESSAGE "Edit the current project item"
  92.  
  93.    DEFINE BUTTON OF oBar RESOURCE "Del" ;
  94.       MESSAGE "Delete the current project item" ;
  95.       ACTION ItemDel( oBrw )
  96.  
  97.    DEFINE BUTTON OF oBar RESOURCE "InspSma" ;
  98.       ACTION ItemOpen( oBrw ) ;
  99.       MESSAGE "Inspect the current project item"
  100.  
  101.    DEFINE BUTTON RESOURCE "Font" GROUP OF oBar ACTION oBrw:SelFont() ;
  102.       MESSAGE "Selects a different font and Text Color"
  103.  
  104.    DEFINE BUTTON RESOURCE "Clr" OF oBar ACTION oBrw:SelColor() ;
  105.       MESSAGE "Selects the Background Color"
  106.  
  107.    oWndPrj:SetControl( oBrw )
  108.  
  109.    ACTIVATE WINDOW oWndPrj ;
  110.       VALID If( MsgYesNo( "Close project ?" ), oBrw:lCloseArea(), .f. )
  111.  
  112.    if oWndAreas != nil
  113.       oWndAreas:oControl:Refresh()  // We updates the info on the WorkAreas
  114.    endif                            // inspector
  115.  
  116. return nil
  117.  
  118. //----------------------------------------------------------------------------//
  119.