/*
* Copyright (c)1998 by Angry Red Planet.
*
* This code is distributed under a modified form of the
* Artistic License. A copy of this license should have
* been included with it; if this wasn't the case, the
* entire package can be obtained at
* .
*
* A logical GUI layout engine: the programmer describes
* high-level relationships between the different user interface
* object through formal container classes, which then take care
* of their physical placement. The system is completely
* font-sensitive and resizeable.
*
* ----------------------------------------------------------------------
*
* ArpLView.h
*
* A basic BView that is also an ArpLayoutable.
*
* ----------------------------------------------------------------------
*
* Known Bugs
* ~~~~~~~~~~
*
* ----------------------------------------------------------------------
*
* To Do
* ~~~~~
*
* ----------------------------------------------------------------------
*
* History
* ~~~~~~~
*
* Dec 6, 1998:
* First public release.
*
*/
#pragma once
#ifndef ARPLAYOUT_ARPLVIEW_H
#define ARPLAYOUT_ARPLVIEW_H
#ifndef ARPLAYOUT_ARPVIEWWRAPPER_H
#include
#endif
#ifndef _VIEW_H
#include
#endif
class ArpLView : public BView, public ArpViewWrapper {
public:
ArpLView(const char* name,
uint32 flags=B_WILL_DRAW|B_FULL_UPDATE_ON_RESIZE);
ArpLView(BMessage* data);
// Almost all users will not want this form -- the initial
// frame and resizing behavior are entirely handled by the
// ArpLayoutable classes.
ArpLView(BRect frame, const char* name, uint32 resizeMask,
uint32 flags=B_WILL_DRAW|B_FULL_UPDATE_ON_RESIZE);
static BArchivable* Instantiate(BMessage* archive);
virtual status_t Archive(BMessage* data, bool deep=TRUE);
// Inplement some standard BView<->ArpLayoutable interaction.
virtual void Draw(BRect updateRect);
virtual void MakeFocus(bool focusState = true);
virtual void GetPreferredSize(float* width, float* height);
virtual void ResizeToPreferred();
protected:
void ComputeDimens(void);
private:
};
#endif