home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 16 / CD_ASCQ_16_0994.iso / news / 4611 / fw16d.ins / SAMPLES / FIVEGURU.PRG < prev    next >
Text File  |  1994-05-20  |  7KB  |  301 lines

  1. // Warning: Under construction. Not available yet!
  2. // FiveGuru 1.0  - Our Guru for building applications in FiveWin!
  3.  
  4. // Visual Design tools
  5.  
  6. // Some have 'experts' and others have 'wizards...", but here
  7. // we have a real Guru!!!  <g>
  8.  
  9. #include "FiveWin.ch"
  10. #include "FiveGuru.ch"
  11.  
  12. static oWnd, oBar, oMsg, oMenu
  13. static nBrushStyle := 1
  14.  
  15. //----------------------------------------------------------------------------//
  16.  
  17. function Main()
  18.  
  19.    local oBmp
  20.  
  21.    SET 3DLOOK ON
  22.  
  23.    DEFINE WINDOW oWnd FROM 1, 1 TO 20, 70 TITLE "FiveGuru 1.0"
  24.  
  25.    @ 6, 24 BITMAP oBmp FILENAME "..\bitmaps\FiveGuru.bmp" OF oWnd
  26.  
  27.    ACTIVATE WINDOW oWnd MAXIMIZED ;
  28.       ON RIGHT CLICK MainQuery()
  29.  
  30. return nil
  31.  
  32. //----------------------------------------------------------------------------//
  33.  
  34. function MainQuery()
  35.  
  36.    local oDlg
  37.    local cTitle     := PadR( oWnd:cTitle, 50 )
  38.    local lButtonBar := ( oBar  != nil )
  39.    local lMsgBar    := ( oMsg  != nil )
  40.    local lMenu      := ( oMenu != nil )
  41.    local lBrush     := .f.
  42.  
  43.    DEFINE DIALOG oDlg RESOURCE "AppInspect"
  44.  
  45.    REDEFINE GET cTitle ID 110 OF oDlg ;
  46.       VALID ( oWnd:cTitle := AllTrim( cTitle ), .t. )
  47.  
  48.    REDEFINE CHECKBOX lButtonBar ID 120 OF oDlg ;
  49.       ON CHANGE ToggleButtonBar()
  50.  
  51.    REDEFINE CHECKBOX lMsgBar ID 130 OF oDlg ;
  52.       ON CHANGE ToggleMessageBar()
  53.  
  54.    REDEFINE CHECKBOX lMenu ID 150 OF oDlg ;
  55.       ON CHANGE ToggleMenu()
  56.  
  57.    REDEFINE CHECKBOX lBrush ID ID_BRUSH OF oDlg ;
  58.       ON CHANGE BrushInspect()
  59.  
  60.    REDEFINE BUTTON ID ID_ADDCONTROL OF oDlg ACTION ( oDlg:End(), AddControl() )
  61.  
  62.    REDEFINE BUTTON ID ID_GEN OF oDlg ;
  63.       ACTION ( oWnd:cGenPRG( "GuruCode.prg" ),;
  64.                MsgInfo( "Ok, See GuruCode.prg" ) )
  65.  
  66.    ACTIVATE DIALOG oDlg CENTERED
  67.  
  68. return nil
  69.  
  70. //----------------------------------------------------------------------------//
  71.  
  72. function AddControl()
  73.  
  74.    local oDlg, oCtrl
  75.    local nControl  := 1
  76.    local lCheckBox := .f.
  77.    local cItem     := ""
  78.  
  79.    DEFINE DIALOG oDlg RESOURCE "Controls"
  80.  
  81.    REDEFINE RADIO nControl ID ID_PUSHBUTTON, ID_CHECKBOX, ID_LISTBOX OF oDlg
  82.  
  83.    ACTIVATE DIALOG oDlg CENTERED
  84.  
  85.    if oDlg:nResult == ID_OK
  86.       do case
  87.          case nControl == 1
  88.               @ 3, 3 BUTTON oCtrl PROMPT "&PushButton" SIZE 100, 30 OF oWnd
  89.               oCtrl:lDrag = .t.
  90.  
  91.          case nControl == 2
  92.               @ 3, 3 CHECKBOX oCtrl VAR lCheckBox PROMPT "&CheckBox" SIZE 100, 30 OF oWnd
  93.               oCtrl:lDrag = .t.
  94.  
  95.          case nControl == 3
  96.               @ 3, 3 LISTBOX oCtrl VAR cItem ;
  97.                 ITEMS { "This", "is", "a", "listbox" } ;
  98.                 SIZE 150, 150 OF oWnd
  99.               oCtrl:lDrag = .t.
  100.  
  101.       endcase
  102.    endif
  103.  
  104. return nil
  105.  
  106. //----------------------------------------------------------------------------//
  107.  
  108. function ToggleButtonBar()
  109.  
  110.    if oBar == nil
  111.       DEFINE BUTTONBAR oBar OF oWnd
  112.       oBar:bRClicked = { || BarInspect() }
  113.    else
  114.       oBar:End()
  115.       oBar = nil
  116.    endif
  117.  
  118. return nil
  119.  
  120. //----------------------------------------------------------------------------//
  121.  
  122. function ToggleMessageBar()
  123.  
  124.    if oMsg == nil
  125.       DEFINE MESSAGE BAR oMsg OF oWnd
  126.       oMsg:bRClicked = { || MsgInspect() }
  127.    else
  128.       oMsg:End()
  129.       oMsg = nil
  130.    endif
  131.  
  132. return nil
  133.  
  134. //----------------------------------------------------------------------------//
  135.  
  136. function ToggleMenu()
  137.  
  138.    if oMenu == nil
  139.       MENU oMenu
  140.          MENUITEM "&MenuItem..." ACTION MenuItemInspect()
  141.          MENU
  142.             MENUITEM "&One..."
  143.             MENUITEM "&Two..."
  144.             MENUITEM "&Three..."
  145.          ENDMENU
  146.  
  147.          MENUITEM RESOURCE "MenuInsp" ACTION MenuInspect()
  148.       ENDMENU
  149.       oWnd:SetMenu( oMenu )
  150.    else
  151.       oMenu:End()
  152.       oMenu = nil
  153.    endif
  154.  
  155. return nil
  156.  
  157. //----------------------------------------------------------------------------//
  158.  
  159. function MsgInspect()
  160.  
  161.    local oDlg
  162.    local cMessage := PadR( oMsg:cMsgDef, 60 )
  163.  
  164.    DEFINE DIALOG oDlg RESOURCE "MsgInspect"
  165.  
  166.    REDEFINE GET cMessage ID 110 OF oDlg
  167.  
  168.    ACTIVATE DIALOG oDlg CENTERED
  169.  
  170.    if oDlg:nResult == ID_OK
  171.       oMsg:cMsgDef = AllTrim( cMessage )
  172.       oMsg:Refresh()
  173.    endif
  174.  
  175. return nil
  176.  
  177. //----------------------------------------------------------------------------//
  178.  
  179. function BarInspect()
  180.  
  181.    local oDlg
  182.    local lGroup := .f.
  183.  
  184.    DEFINE DIALOG oDlg RESOURCE "BarInspect"
  185.  
  186.    REDEFINE CHECKBOX lGroup ID 110 OF oDlg
  187.  
  188.    REDEFINE BUTTON ID 120 OF oDlg ACTION AddBarButton( lGroup )
  189.  
  190.    REDEFINE BUTTON ID ID_SELCOLOR OF oDlg ;
  191.       ACTION oBar:SetColor( oBar:nClrText, ChooseColor( oBar:nClrPane ) )
  192.  
  193.    ACTIVATE DIALOG oDlg CENTERED
  194.  
  195. return nil
  196.  
  197. //----------------------------------------------------------------------------//
  198.  
  199. function AddBarButton( lGroup )
  200.  
  201.    local oBtnBmp
  202.  
  203.    if lGroup
  204.       DEFINE BUTTON oBtnBmp OF oBar ACTION MsgInfo( "Button" ) GROUP ;
  205.          MESSAGE "I am a button"
  206.    else
  207.       DEFINE BUTTON oBtnBmp OF oBar ACTION MsgInfo( "Button" ) ;
  208.          MESSAGE "I am a button"
  209.    endif
  210.  
  211.    oBtnBmp:bRClicked = { || BtnBmpInspect( oBtnBmp ) }
  212.  
  213. return nil
  214.  
  215. //----------------------------------------------------------------------------//
  216.  
  217. function BtnBmpInspect( oBtnBmp )
  218.  
  219.    local oDlg
  220.    local cBmpUp   := Space( 40 )
  221.    local cBmpDown := Space( 40 )
  222.    local lUp      := .t.
  223.    local cFile
  224.  
  225.    DEFINE DIALOG oDlg RESOURCE "BtnBmpInspect"
  226.  
  227.    REDEFINE GET cBmpUp ID ID_BITMAPUP OF oDlg ;
  228.       VALID ( lUp := .t., oBtnBmp:SetFile( cBmpUp ), .t. )
  229.  
  230.    REDEFINE BUTTON ID ID_FIND OF oDlg ;
  231.       ACTION If( ! Empty( cFile := cGetFile( "*.bmp", "Select a BMP file" ) ),;
  232.              oBtnBmp:SetFile( If( lUp, cFile, "" ), If( ! lUp, cFile, "" ) ),)
  233.  
  234.    ACTIVATE DIALOG oDlg CENTERED
  235.  
  236. return nil
  237.  
  238. //----------------------------------------------------------------------------//
  239.  
  240. function MenuInspect()
  241.  
  242.    local oDlg
  243.  
  244.    DEFINE DIALOG oDlg RESOURCE "MenuInspect"
  245.  
  246.    ACTIVATE DIALOG oDlg CENTERED NOWAIT
  247.  
  248. return nil
  249.  
  250. //----------------------------------------------------------------------------//
  251.  
  252. function MenuItemInspect()
  253.  
  254.    local oDlg
  255.    local cAction := ""
  256.  
  257.    DEFINE DIALOG oDlg RESOURCE "MenuItemInspect"
  258.  
  259.    REDEFINE COMBOBOX cAction ITEMS { "DialogBox", "Window", "PopMenu" } ;
  260.       ID ID_ACTION OF oDlg
  261.  
  262.    REDEFINE BUTTON ID ID_EXECUTE OF oDlg ACTION NewWindow()
  263.  
  264.    ACTIVATE DIALOG oDlg CENTERED
  265.  
  266. return nil
  267.  
  268. //----------------------------------------------------------------------------//
  269.  
  270. function BrushInspect()
  271.  
  272.    local oDlg
  273.  
  274.    DEFINE DIALOG oDlg RESOURCE "BrushInspect"
  275.  
  276.    REDEFINE RADIO nBrushStyle ID ID_BORLAND, ID_TILED, ID_BRICKS OF oDlg ;
  277.       ON CLICK oWnd:SetBrush( TBrush():New( { "BORLAND",;
  278.          "TILED", "BRICKS" }[ nBrushStyle ] ) )
  279.  
  280.    REDEFINE BUTTON ID ID_COLORSELECT OF oDlg ;
  281.       ACTION oWnd:SetBrush( TBrush():New(,ChooseColor()) )
  282.  
  283.    ACTIVATE DIALOG oDlg CENTERED
  284.  
  285. return nil
  286.  
  287. //----------------------------------------------------------------------------//
  288.  
  289. function NewWindow()
  290.  
  291.    local oWndChild
  292.  
  293.    DEFINE WINDOW oWndChild FROM 2, 2 TO 12, 40 TITLE "Child Window" ;
  294.       STYLE WS_OVERLAPPEDWINDOW
  295.  
  296.    ACTIVATE WINDOW oWndChild
  297.  
  298. return nil
  299.  
  300. //----------------------------------------------------------------------------//
  301.