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