#!/usr/cogent/bin/phgamma /* * This example is similar to the previous one, in that it pulls * specified widgets out of an existing widget, named readtestfile.wgtw. * Enter the name for the widget of your choice on the command * line. The possible names are: MyTestFile (brings the whole * widget), MainWindowButton, PaneOne, PaneOneButtonA, * PaneOneButtonB, PaneTwo, and PaneTwoButtonC. */ PtInit(nil); require_lisp("PhotonWidgets"); require_lisp("PhabTemplate"); /* * Read the widget definitions, and access them. */ file = string(_os_, "-WidgetFiles/wgt/readtestfile.wgtw"); defs = PhabReadWidgetFile(file); treewin = car(defs); /* * Make a function that walks a widget tree and finds the widget * you want. (The same as in the previous example.) */ function PhabLookupTree(tree,name) { local return = nil; local trees; if (caddr(car(tree)) == name) return = tree; else { for (trees = cdr(tree); trees && !return; trees = cdr(trees)){ return = PhabLookupTree(car(trees),name); } } return; } /* * Make a new window to hold the widget. */ win = new(PtWindow); win.SetDim(500,450); exitbut = new(PtButton); exitbut.SetPos(220, 420); exitbut.text_string = " Exit "; PtAttachCallback(exitbut,Pt_CB_ACTIVATE,#exit_program(-1)); if (cadr(argv)) { /* * Call the PhabLookupTree function on a widget from the command line. */ read_name = symbol(cadr(argv)); wgtdef = PhabLookupTree(treewin,read_name); /* * Transform the widget tree into a widget definition. */ wgtdef = cons(wgtdef,nil); /* * Create the widget. */ wgt = PhabCreateWidgets(wgtdef,nil,nil); /* * Realize the widget by realizing the window. */ PtRealizeWidget(win); PtMainLoop(); } else princ("\nYou must enter one of the following as a command-line argument: \n", "MyTestFile (brings the whole widget), MainWindowButton, PaneOne, \n", "PaneOneButtonA, PaneOneButtonB, PaneTwo, and PaneTwoButtonC\n\n");
Copyright © 1995-2010 by Cogent Real-Time Systems, Inc. All rights reserved.