REBOL [ Title: "VID TAB-VIEW Face" Author: ["Henrik Mikael Kristensen"] Copyright: "2006 - HMK Design" Filename: %tab-view.r Version: 0.0.2 Created: 07-Mar-2006 Date: 07-Mar-2006 License: { BSD (www.opensource.org/licenses/bsd-license.php) Use at your own risk. } Purpose: {General Purpose tab view with specialized BTN-like look} History: [ See: http://www.hmkdesign.dk/rebol/tab-view/tab-view-history.html ] ] ; ---------- Button Images do decompress #{ 789CED58516FDA30107EBF5FC1B4E74E0402217D2304FF89690FADCA285A41D5 D44993A6FEF7D93E879C7D3EDBA8DD84A6F924875C3EE310DFF77D0EF72FA79B 1FCF374FBBAF2F9F9E4FFBDBC9F1EEDB6E7238DEED771F269F9B9F553DF9F80B A6A4D5C94631CA3650ACAD2B1314A4D6F180569970504C36F1687B130E693350 0E55B330000F6D6702A1DB646B6D4324F857C2689726DC97B2AB90812EE2D1D6 26C041AB54B4331388EC6763003DC1587526E8AA76F37840D399282F157835A5 A5D4468D23F0B3576F43BB9224BD5B9DF46F1F5EBF00DC6B4A3D9CFE0CA5DCA3 E64F9F524A5A213798528A5EE08B4F79E206739004E5183798524A823A24A554 064A78C29190868ABF9F522A333FA11422916AC0D9C729C535C029C17F4A8D94 D22E753C3C241855AF4A833B52CCA4E6262463F24C0AC927B98DE73C967B3423 9B14429931C54CCA922F6D4FCE8A2CF7223E1331A99509B1342350C1983C93B2 DC8B90226252967CA28A7826D59B48CBDE6052BD89F25231E5E704FDBDAA2F72 57929E17FD242C144998B848671EA604CDE879D1FCB66566A6229D99B904EA21 51CF8BA03678558A7A9E2693A7E797579FD6BEEF87FD636A3F51B287C096513F 3A20A37C28603840D43CAB50A83E1CE9A91FDD2E3BA8A07B8306D9E7EF3C546A 16838B4ADD36A67E0234A67E1C2A691E438AEA47EB0FA162E55301E03B191E6E 665CD5F252C1FDC478BED1F5E1993775EAABD94F78497F2BA46B7D14F437526A 6DC3B68CA4D30145922EAD3E06AD198E847228474239942323C25A3E3FD00169 28E78928E97C7E59D28906A4D94F150A7055CB4BE51FA6D4E3E19297DEF2A694 DE0D6E000FB4E720A5FABA097A3B58820E99111A9DB9043ACE4933DEE0E1C2A6 5D2EB09732D8CCABDCD4FC4566FA3334C848F9C8E001DA2DE71DF65206CAA13C 0FF48443B16D55DB560BDE5F5C24C34B6FD8C88F50F48572381D7A87A4A77806 FE299E4138D41C211C6A937C1AEF96C69B62377F7EE9D5944ABF76943F265DB2 7A574F7BE0291FDA2F9A686F0773A83FDB08E548C841C7D93812E8055DDDEB65 83BD0F0DF3FA73B5A8000F015467689E67CEEBC4A15D33DF62EF7F6998877228 CD600F3CE5A075AB5F14D3FDBB30CA5D196E30782C98A405FF976826DF92CCA8 DCBEAFFC41714B82CBFD89B914F7A7211F5A0F45869C62D0D09F683EB0B8B81B 457D4B7B0B94B8916446518BCB5BCC797029945B92E852923361EF669E5ED832 9CF23DEA0A3915F98FD470EA37753B4C50401C0000 } ; ---------- Style stylize/master [ left-tog: TOG with [ size: 100x24 images: copy reduce [ btn-up-left.png btn-dn-left.png btn-hi-left.png ] ] mid-tog: TOG with [ size: 100x24 images: copy reduce [ btn-up-mid.png btn-dn-mid.png btn-hi-mid.png ] ] right-tog: TOG with [ size: 100x24 images: copy reduce [ btn-up-right.png btn-dn-right.png btn-hi-right.png ] ] tab-view: BOX with [ tabs: none panes: none panel: none pane: copy [across space 0] size: 100x20 set-default: has [def-value] [ def-value: none repeat i length? tabs [if pane/:i/data [def-value: i]] repeat i length? tabs [ set-face pane/:i either i = 1 [true][false] if i = 1 [do-face pane/:i none] ] ] switch-action: none init-code: has [token] [ token: join 'a checksum to-string now/precise if tabs [ repeat i length? tabs [ either 1 = tab-length: length? tabs [ append pane reduce ['tog 100 tabs/:i] ][ append pane reduce [ either i = length? tabs ['right-tog][ either i = 1 ['left-tog]['mid-tog] ] tabs/:i 'of to-lit-word token ] append/only pane compose/deep [ do switch-action if all [panel value? panel pick panes (i)] [ set in get panel 'pane get pick panes (i) show get panel ] ] ] ] pane: layout/tight pane size: pane/size pane: pane/pane ] ] init: [init-code] ] ] a: layout/tight [button "hello1"] b: layout/tight [button "hello2"] c: layout/tight [button "hello3"] view/new layout [ across space 0 origin 4 d: tab-view with [ default: "Recovery" panel: 'y tabs: ["Recovery" "Manage" "Debug"] panes: [a b c] ] return pad 0x8 y: panel 300x100 [] ] d/set-default do-events