// // Copyright (c) 2008, Brian Frank and Andy Frank // Licensed under the Academic Free License version 3.0 // // History: // 21 Jul 08 Brian Frank Creation // using fwt ** ** SideBar is a plugin used along side the main views. SideBars ** are registered in the type database via the '@fluxSideBar' facet. ** abstract class SideBar : ContentPane { ////////////////////////////////////////////////////////////////////////// // State ////////////////////////////////////////////////////////////////////////// ** ** Get the top level flux window. ** Frame? frame { internal set } ** ** Get this sidebar's preferred alignment which is used to ** determine its default position. Valid values are: ** - Halign.left (default) ** - Halign.right ** - Valign.bottom ** virtual Obj prefAlign() { return Halign.left } ** ** Is the sidebar currently shown in the frame? ** Bool showing := false { internal set } ** ** Show this sidebar in the frame. ** This show() { if (showing) return this showing=true frame.sideBarPane.show(this) content?.relayout return this } ** ** Hide this sidebar in the frame. ** This hide() { if (!showing) return this showing=false frame.sideBarPane.hide(this) return this } ////////////////////////////////////////////////////////////////////////// // Eventing ////////////////////////////////////////////////////////////////////////// ** ** Callback when sidebar is first loaded into memory. ** This is the time to load persistent state. ** virtual Void onLoad() {} ** ** Callback when sidebar is being unloaded from memory. ** This is the time to save persistent state. This is ** called no matter whether the sidebar is shown or hidden. ** virtual Void onUnload() {} ** ** Callback when sidebar is shown in the frame. ** virtual Void onShow() {} ** ** Callback when sidebar is hidden in the frame. ** virtual Void onHide() {} ** ** Callback when specified view is selected as the ** active tab. This callback is invoked only if showing. ** virtual Void onActive(View view) {} ** ** Callback when specified view is unselected as the ** active tab. This callback is invoked only if showing. ** virtual Void onInactive(View view) {} ** ** Callback when the frame's list of marks is updated. ** virtual Void onMarks(Mark[] marks) {} ** ** Callback before the current view is jumped to ** the specified mark. ** virtual Void onGotoMark(Mark mark) {} }