btrfs: Attempt to fix GCC2 build.
[haiku.git] / src / apps / cortex / DiagramView / DiagramBox.h
blob6228b62ae393da19c20fe7bd92fd06f79e95ab79
1 /*
2 * Copyright (c) 1999-2000, Eric Moon.
3 * All rights reserved.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
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)
34 // * HISTORY
35 // c.lenz 25sep99 Begun
37 #ifndef DIAGRAM_BOX_H
38 #define DIAGRAM_BOX_H
40 #include "cortex_defs.h"
41 #include "DiagramItem.h"
42 #include "DiagramItemGroup.h"
44 #include <Region.h>
45 #include <Window.h>
48 __BEGIN_CORTEX_NAMESPACE
51 class DiagramBox : public DiagramItem, public DiagramItemGroup {
52 public:
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
68 BRect Frame() const
70 return fFrame;
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);
84 enum flag_t {
85 M_DRAW_UNDER_ENDPOINTS = 0x1
88 private:
89 void _SetOwner(DiagramView *owner);
91 private:
92 BRect fFrame;
93 // the boxes' frame rectangle
95 // flags:
96 // M_DRAW_UNDER_ENDPOINTS - don't remove EndPoint frames from
97 // the clipping region
98 uint32 fFlags;
101 __END_CORTEX_NAMESPACE
103 #endif // DIAGRAM_BOX_H