From 900b020733fb198aae751107680f8a75957bb1c3 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sun, 25 Sep 2005 05:16:35 +0000 Subject: [PATCH] missing file --- library/ui/outliner.factor | 45 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 library/ui/outliner.factor diff --git a/library/ui/outliner.factor b/library/ui/outliner.factor new file mode 100644 index 0000000000..fd90840db8 --- /dev/null +++ b/library/ui/outliner.factor @@ -0,0 +1,45 @@ +! Copyright (C) 2005 Slava Pestov. +! See http://factor.sf.net/license.txt for BSD license. +IN: gadgets-outliner +USING: arrays gadgets gadgets-buttons gadgets-labels +gadgets-layouts gadgets-panes gadgets-presentations generic io +kernel sequences ; + +! Outliner widget. + +TUPLE: outliner gadget quot pile expanded? ; + +: add-outliner-node ( outliner -- ) + dup outliner-gadget + swap outliner-pile add-gadget ; + +: setup-outliner ( quot outliner -- ) + dup outliner-pile clear-gadget + dup outliner-gadget over outliner-pile add-gadget + over [ >r make-pane r> outliner-pile add-gadget ] [ 2drop ] if ; + +: collapse-outliner ( outliner -- ) + f over set-outliner-expanded? f swap setup-outliner ; + +: expand-outliner ( outliner -- ) + t over set-outliner-expanded? + dup outliner-quot swap setup-outliner ; + +: toggle-outliner ( outliner -- ) + dup outliner-expanded? + [ collapse-outliner ] [ expand-outliner ] if ; + +: find-outliner [ outliner? ] find-parent ; + +: ( -- gadget ) + "+"