2 * Copyright (c) 1999-2000, Eric Moon.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions, and the following disclaimer.
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.
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.
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.
32 // DiagramBox.h (Cortex/DiagramView.h)
35 // c.lenz 25sep99 Begun
40 #include "cortex_defs.h"
41 #include "DiagramItem.h"
42 #include "DiagramItemGroup.h"
48 __BEGIN_CORTEX_NAMESPACE
51 class DiagramBox
: public DiagramItem
, public DiagramItemGroup
{
53 DiagramBox(BRect frame
, uint32 flags
= 0);
54 virtual ~DiagramBox();
56 virtual void DrawBox() = 0;
57 // a hook functions that
58 // is called from Draw() to do the actual drawing
60 // derived from DiagramItemGroup
62 virtual bool AddItem(DiagramItem
*item
);
63 virtual bool RemoveItem(DiagramItem
*item
);
65 // derived from DiagramItem
67 // returns the Boxes frame rectangle
73 void Draw(BRect updateRect
);
75 virtual void MouseDown(BPoint point
, uint32 buttons
, uint32 clicks
);
76 virtual void MouseOver(BPoint point
, uint32 transit
);
78 virtual void MessageDragged(BPoint point
, uint32 transit
, const BMessage
*message
);
79 virtual void MessageDropped(BPoint point
, BMessage
*message
);
81 void MoveBy(float x
, float y
, BRegion
*updateRegion
);
82 virtual void ResizeBy(float horizontal
, float vertical
);
85 M_DRAW_UNDER_ENDPOINTS
= 0x1
89 void _SetOwner(DiagramView
*owner
);
93 // the boxes' frame rectangle
96 // M_DRAW_UNDER_ENDPOINTS - don't remove EndPoint frames from
97 // the clipping region
101 __END_CORTEX_NAMESPACE
103 #endif // DIAGRAM_BOX_H