1*d734a8ceSbeveloper /******************************************************************************* 2*d734a8ceSbeveloper / 3*d734a8ceSbeveloper / File: ScrollView.h 4*d734a8ceSbeveloper / 5*d734a8ceSbeveloper / Description: BScrollView provides scrolling machinery for its contents 6*d734a8ceSbeveloper / (where the "contents" is some other view). 7*d734a8ceSbeveloper / 8*d734a8ceSbeveloper / Copyright 1993-98, Be Incorporated, All Rights Reserved 9*d734a8ceSbeveloper / 10*d734a8ceSbeveloper *******************************************************************************/ 11*d734a8ceSbeveloper 12*d734a8ceSbeveloper #ifndef _SCROLL_VIEW_H 13*d734a8ceSbeveloper #define _SCROLL_VIEW_H 14*d734a8ceSbeveloper 15*d734a8ceSbeveloper #include <BeBuild.h> 16*d734a8ceSbeveloper #include <ScrollBar.h> /* For convenience */ 17*d734a8ceSbeveloper #include <View.h> 18*d734a8ceSbeveloper 19*d734a8ceSbeveloper /*----------------------------------------------------------------*/ 20*d734a8ceSbeveloper /*----- BScrollView class ----------------------------------------*/ 21*d734a8ceSbeveloper 22*d734a8ceSbeveloper class BScrollView : public BView { 23*d734a8ceSbeveloper 24*d734a8ceSbeveloper public: 25*d734a8ceSbeveloper BScrollView(const char *name, 26*d734a8ceSbeveloper BView *target, 27*d734a8ceSbeveloper uint32 resizeMask = B_FOLLOW_LEFT | 28*d734a8ceSbeveloper B_FOLLOW_TOP, 29*d734a8ceSbeveloper uint32 flags = 0, 30*d734a8ceSbeveloper bool horizontal = false, 31*d734a8ceSbeveloper bool vertical = false, 32*d734a8ceSbeveloper border_style border = B_FANCY_BORDER); 33*d734a8ceSbeveloper BScrollView(BMessage *data); 34*d734a8ceSbeveloper virtual ~BScrollView(); 35*d734a8ceSbeveloper static BArchivable *Instantiate(BMessage *data); 36*d734a8ceSbeveloper virtual status_t Archive(BMessage *data, bool deep = true) const; 37*d734a8ceSbeveloper 38*d734a8ceSbeveloper virtual void Draw(BRect updateRect); 39*d734a8ceSbeveloper virtual void AttachedToWindow(); 40*d734a8ceSbeveloper BScrollBar *ScrollBar(orientation flag) const; 41*d734a8ceSbeveloper 42*d734a8ceSbeveloper virtual void SetBorder(border_style border); 43*d734a8ceSbeveloper border_style Border() const; 44*d734a8ceSbeveloper 45*d734a8ceSbeveloper virtual status_t SetBorderHighlighted(bool state); 46*d734a8ceSbeveloper bool IsBorderHighlighted() const; 47*d734a8ceSbeveloper 48*d734a8ceSbeveloper void SetTarget(BView *new_target); 49*d734a8ceSbeveloper BView *Target() const; 50*d734a8ceSbeveloper 51*d734a8ceSbeveloper virtual void MessageReceived(BMessage *msg); 52*d734a8ceSbeveloper virtual void MouseDown(BPoint pt); 53*d734a8ceSbeveloper virtual void WindowActivated(bool state); 54*d734a8ceSbeveloper virtual void MouseUp(BPoint pt); 55*d734a8ceSbeveloper virtual void MouseMoved(BPoint pt, uint32 code, const BMessage *msg); 56*d734a8ceSbeveloper virtual void DetachedFromWindow(); 57*d734a8ceSbeveloper virtual void AllAttached(); 58*d734a8ceSbeveloper virtual void AllDetached(); 59*d734a8ceSbeveloper virtual void FrameMoved(BPoint new_position); 60*d734a8ceSbeveloper virtual void FrameResized(float new_width, float new_height); 61*d734a8ceSbeveloper 62*d734a8ceSbeveloper virtual BHandler *ResolveSpecifier(BMessage *msg, 63*d734a8ceSbeveloper int32 index, 64*d734a8ceSbeveloper BMessage *specifier, 65*d734a8ceSbeveloper int32 form, 66*d734a8ceSbeveloper const char *property); 67*d734a8ceSbeveloper 68*d734a8ceSbeveloper virtual void ResizeToPreferred(); 69*d734a8ceSbeveloper virtual void GetPreferredSize(float *width, float *height); 70*d734a8ceSbeveloper virtual void MakeFocus(bool state = true); 71*d734a8ceSbeveloper virtual status_t GetSupportedSuites(BMessage *data); 72*d734a8ceSbeveloper 73*d734a8ceSbeveloper /*----- Private or reserved -----------------------------------------*/ 74*d734a8ceSbeveloper virtual status_t Perform(perform_code d, void *arg); 75*d734a8ceSbeveloper 76*d734a8ceSbeveloper private: 77*d734a8ceSbeveloper 78*d734a8ceSbeveloper friend class BView; 79*d734a8ceSbeveloper 80*d734a8ceSbeveloper virtual void _ReservedScrollView1(); 81*d734a8ceSbeveloper virtual void _ReservedScrollView2(); 82*d734a8ceSbeveloper virtual void _ReservedScrollView3(); 83*d734a8ceSbeveloper virtual void _ReservedScrollView4(); 84*d734a8ceSbeveloper 85*d734a8ceSbeveloper BScrollView &operator=(const BScrollView &); 86*d734a8ceSbeveloper 87*d734a8ceSbeveloper static BRect CalcFrame(BView *, bool, bool, border_style); 88*d734a8ceSbeveloper int32 ModFlags(int32, border_style); 89*d734a8ceSbeveloper void InitObject(); 90*d734a8ceSbeveloper 91*d734a8ceSbeveloper BView *fTarget; 92*d734a8ceSbeveloper BScrollBar *fHSB; 93*d734a8ceSbeveloper BScrollBar *fVSB; 94*d734a8ceSbeveloper border_style fBorder; 95*d734a8ceSbeveloper uint16 fPrevWidth; 96*d734a8ceSbeveloper uint16 fPrevHeight; 97*d734a8ceSbeveloper 98*d734a8ceSbeveloper uint32 _reserved[3]; /* was 4 */ 99*d734a8ceSbeveloper 100*d734a8ceSbeveloper bool fHighlighted; 101*d734a8ceSbeveloper }; 102*d734a8ceSbeveloper 103*d734a8ceSbeveloper /*-------------------------------------------------------------*/ 104*d734a8ceSbeveloper /*-------------------------------------------------------------*/ 105*d734a8ceSbeveloper 106*d734a8ceSbeveloper #endif /* _SCROLL_VIEW_H */ 107