#ifndef GENERALINFOVIEW_H
#define GENERALINFOVIEW_H
#include <fs_info.h>
#include <GroupView.h>
#include <MenuField.h>
#include <Message.h>
#include <Rect.h>
#include <TextView.h>
#include "DialogPane.h"
#include "Model.h"
namespace BPrivate {
enum track_state {
no_track = 0,
link_track,
path_track,
size_track,
};
class GeneralInfoView : public BGroupView {
public:
GeneralInfoView(Model*);
~GeneralInfoView();
void ModelChanged(Model*, BMessage*);
void ReLinkTargetModel(Model*);
float CurrentFontHeight();
off_t LastSize() const;
void SetLastSize(off_t);
void SetSizeString(const char*);
protected:
virtual void MouseDown(BPoint where);
virtual void MouseMoved(BPoint where, uint32, const BMessage* dragMessage);
virtual void MouseUp(BPoint where);
virtual void MessageReceived(BMessage* message);
virtual void AttachedToWindow();
virtual void FrameResized(float, float);
virtual void Draw(BRect);
virtual void Pulse();
virtual void WindowActivated(bool active);
private:
void InitStrings(const Model*);
void CheckAndSetSize();
void OpenLinkSource();
void OpenLinkTarget();
BString fPathStr;
BString fLinkToStr;
BString fSizeString;
BString fModifiedStr;
BString fCreatedStr;
BString fKindStr;
BString fDescStr;
BString fFileSystemStr;
off_t fFreeBytes;
off_t fLastSize;
BRect fPathRect;
BRect fLinkRect;
BRect fDescRect;
BRect fSizeRect;
float fDivider;
BMenuField* fPreferredAppMenu;
Model* fModel;
bool fMouseDown;
track_state fTrackingState;
BWindow* fPathWindow;
BWindow* fLinkWindow;
BWindow* fDescWindow;
color_which fCurrentLinkColorWhich;
color_which fCurrentPathColorWhich;
typedef BGroupView _inherited;
};
}
const uint32 kPermissionsSelected = 'sepe';
const uint32 kRecalculateSize = 'resz';
const uint32 kSetLinkTarget = 'link';
#endif