1*c284bb0fSMatt Madia /* 2*c284bb0fSMatt Madia * Copyright (c) 1999-2000, Eric Moon. 3*c284bb0fSMatt Madia * All rights reserved. 4*c284bb0fSMatt Madia * 5*c284bb0fSMatt Madia * Redistribution and use in source and binary forms, with or without 6*c284bb0fSMatt Madia * modification, are permitted provided that the following conditions 7*c284bb0fSMatt Madia * are met: 8*c284bb0fSMatt Madia * 9*c284bb0fSMatt Madia * 1. Redistributions of source code must retain the above copyright 10*c284bb0fSMatt Madia * notice, this list of conditions, and the following disclaimer. 11*c284bb0fSMatt Madia * 12*c284bb0fSMatt Madia * 2. Redistributions in binary form must reproduce the above copyright 13*c284bb0fSMatt Madia * notice, this list of conditions, and the following disclaimer in the 14*c284bb0fSMatt Madia * documentation and/or other materials provided with the distribution. 15*c284bb0fSMatt Madia * 16*c284bb0fSMatt Madia * 3. The name of the author may not be used to endorse or promote products 17*c284bb0fSMatt Madia * derived from this software without specific prior written permission. 18*c284bb0fSMatt Madia * 19*c284bb0fSMatt Madia * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR 20*c284bb0fSMatt Madia * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 21*c284bb0fSMatt Madia * OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22*c284bb0fSMatt Madia * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 23*c284bb0fSMatt Madia * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24*c284bb0fSMatt Madia * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25*c284bb0fSMatt Madia * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 26*c284bb0fSMatt Madia * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 27*c284bb0fSMatt Madia * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28*c284bb0fSMatt Madia * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29*c284bb0fSMatt Madia */ 30*c284bb0fSMatt Madia 31*c284bb0fSMatt Madia 32a0795c6fSMarcus Overhagen // DormantNodeView.h 33a0795c6fSMarcus Overhagen // c.lenz 22oct99 34a0795c6fSMarcus Overhagen // 35a0795c6fSMarcus Overhagen // RESPONSIBILITIES 36a0795c6fSMarcus Overhagen // - simple extension of BListView to support 37a0795c6fSMarcus Overhagen // drag & drop 38a0795c6fSMarcus Overhagen // 39a0795c6fSMarcus Overhagen // HISTORY 40a0795c6fSMarcus Overhagen // c.lenz 22oct99 Begun 41a0795c6fSMarcus Overhagen // c.lenz 27oct99 Added ToolTip support 42a0795c6fSMarcus Overhagen 43a0795c6fSMarcus Overhagen #ifndef __DormantNodeView_H__ 44a0795c6fSMarcus Overhagen #define __DormantNodeView_H__ 45a0795c6fSMarcus Overhagen 46a0795c6fSMarcus Overhagen // Interface Kit 47a0795c6fSMarcus Overhagen #include <ListView.h> 48a0795c6fSMarcus Overhagen 49a0795c6fSMarcus Overhagen #include "cortex_defs.h" 50a0795c6fSMarcus Overhagen __BEGIN_CORTEX_NAMESPACE 51a0795c6fSMarcus Overhagen 52a0795c6fSMarcus Overhagen class DormantNodeView : 53a0795c6fSMarcus Overhagen public BListView { 54a0795c6fSMarcus Overhagen typedef BListView _inherited; 55a0795c6fSMarcus Overhagen 56a0795c6fSMarcus Overhagen public: // *** messages 57a0795c6fSMarcus Overhagen 58a0795c6fSMarcus Overhagen enum message_t { 59a0795c6fSMarcus Overhagen // OUTBOUND: 60a0795c6fSMarcus Overhagen // B_RAW_TYPE "which" dormant_node_info 61a0795c6fSMarcus Overhagen M_INSTANTIATE_NODE = 'dNV0' 62a0795c6fSMarcus Overhagen }; 63a0795c6fSMarcus Overhagen 64a0795c6fSMarcus Overhagen public: // *** ctor/dtor 65a0795c6fSMarcus Overhagen 66a0795c6fSMarcus Overhagen DormantNodeView( 67a0795c6fSMarcus Overhagen BRect frame, 68a0795c6fSMarcus Overhagen const char *name, 69a0795c6fSMarcus Overhagen uint32 resizeMode); 70a0795c6fSMarcus Overhagen 71a0795c6fSMarcus Overhagen virtual ~DormantNodeView(); 72a0795c6fSMarcus Overhagen 73a0795c6fSMarcus Overhagen public: // *** BListView impl. 74a0795c6fSMarcus Overhagen 75a0795c6fSMarcus Overhagen virtual void AttachedToWindow(); 76a0795c6fSMarcus Overhagen 77a0795c6fSMarcus Overhagen virtual void DetachedFromWindow(); 78a0795c6fSMarcus Overhagen 79a0795c6fSMarcus Overhagen virtual void GetPreferredSize( 80a0795c6fSMarcus Overhagen float* width, 81a0795c6fSMarcus Overhagen float* height); 82a0795c6fSMarcus Overhagen 83a0795c6fSMarcus Overhagen virtual void MessageReceived( 84a0795c6fSMarcus Overhagen BMessage *message); 85a0795c6fSMarcus Overhagen 86a0795c6fSMarcus Overhagen virtual void MouseDown( 87a0795c6fSMarcus Overhagen BPoint point); 88a0795c6fSMarcus Overhagen 89a0795c6fSMarcus Overhagen virtual void MouseMoved( 90a0795c6fSMarcus Overhagen BPoint point, 91a0795c6fSMarcus Overhagen uint32 transit, 92a0795c6fSMarcus Overhagen const BMessage *message); 93a0795c6fSMarcus Overhagen 94a0795c6fSMarcus Overhagen virtual bool InitiateDrag( 95a0795c6fSMarcus Overhagen BPoint point, 96a0795c6fSMarcus Overhagen int32 index, 97a0795c6fSMarcus Overhagen bool wasSelected); 98a0795c6fSMarcus Overhagen 99a0795c6fSMarcus Overhagen private: // *** internal operations 100a0795c6fSMarcus Overhagen 101a0795c6fSMarcus Overhagen void _populateList(); 102a0795c6fSMarcus Overhagen 103a0795c6fSMarcus Overhagen void _freeList(); 104a0795c6fSMarcus Overhagen 105a0795c6fSMarcus Overhagen void _updateList( 106a0795c6fSMarcus Overhagen int32 addOnID); 107a0795c6fSMarcus Overhagen 108a0795c6fSMarcus Overhagen private: // *** data 109a0795c6fSMarcus Overhagen 110a0795c6fSMarcus Overhagen BListItem *m_lastItemUnder; 111a0795c6fSMarcus Overhagen }; 112a0795c6fSMarcus Overhagen 113a0795c6fSMarcus Overhagen __END_CORTEX_NAMESPACE 114a0795c6fSMarcus Overhagen #endif /*__DormantNodeView_H__*/ 115