class PtFolder PtContainer { folder_panes; // PtWidget array folder_selected_tab; // short folder_tab_height; // short folder_tabs; // PtWidget array }
This widget is a folder that can contain virtual pages, which are accessed by PtFolderTabs. Each page is set up by creating a PtFolderTab, and then immediately assigning a PtPane to that tab. The PtPane and all of its children are displayed when the PtFolderTab is selected.
This widget does not appear in the Photon documentation. |
An array of PtPanes contained in the folder.
An integer specifying the selected tab. Tabs are numbered consecutively, starting with 1. If no tab is selected, or if a tab is reselected, the value of this variable is 0.
A number of pixels specifying the height of the tabs for this folder. Default is 19.
An array of PtFolderTabs contained in the folder.
This example, ex_PtFolder.g, is included in the product distribution.
#!/usr/cogent/bin/phgamma /* This example demonstrates PtFolder and PtFolderTab. * It creates a folder with three tabs. It also includes * a function that de_activates the set/unset toggle * feature of the tabs. */ require_lisp ("PhotonWidgets"); /* Here is the set/unset deactivation function. * It keeps a tab set until another tab is selected. */ function do_not_unset (widget) { local folder = PtWidgetParent (widget); if (folder.folder_selected_tab == 0) widget.flags = Pt_SET; } function main () { init_ipc ("a","a"); PtInit (nil); w = new (PtWindow); f = new (PtFolder); f.SetDim (300,200); /* We anchor the folder to the window to demonstrate how * the PtPane gets resized with the folder automatically. */ f.anchor_flags = cons (0, -1); f.anchor_flags = Pt_BOTTOM_ANCHORED_BOTTOM | Pt_TOP_ANCHORED_TOP | Pt_LEFT_ANCHORED_LEFT | Pt_RIGHT_ANCHORED_RIGHT; /* Each tab must be a child of the folder, and the * pane for each tab should be the first child of that * tab. If the pane is created immediately after the * tab, you don't have to set the parent explicitly. */ PtSetParentWidget (f); tab = new (PtFolderTab); tab.foldertab_text_string = "Tab #1"; tab.flags = Pt_SET; PtAttachCallback (tab, Pt_CB_ACTIVATE, `do_not_unset(@tab)); p1 = new (PtPane); p1.fill_color = 0xffaaaa; PtSetParentWidget (f); tab = new (PtFolderTab); tab.foldertab_text_string = "Tab #2"; PtAttachCallback (tab, Pt_CB_ACTIVATE, `do_not_unset(@tab)); p2 = new (PtPane); p2.fill_color = 0x00ddaa; /* Note: this tab retains the set/unset toggle feature. */ PtSetParentWidget (f); tab = new (PtFolderTab); tab.foldertab_text_string = "Tab #3"; p3 = new (PtPane); p3.fill_color = 0xccaaff; PtSetParentWidget (p1); b = new (PtButton); b.text_string = "Button 1"; b.SetPos (60,50); PtSetParentWidget (p2); b = new (PtButton); b.text_string = "Button 2"; b.SetPos (120,50); PtSetParentWidget (p3); b = new (PtButton); b.text_string = "Button 3"; b.SetPos (180,50); PtRealizeWidget (w); PtMainLoop(); }
Copyright © 1995-2010 by Cogent Real-Time Systems, Inc. All rights reserved.