94 lines
2.5 KiB
C++
94 lines
2.5 KiB
C++
/*******************************************************
|
|
* SplitPane©
|
|
*
|
|
* SplitPane is a usefull UI component. It alows the
|
|
* use to ajust two view Horizontaly or Vertacly so
|
|
* that they are a desired size. This type of Pane
|
|
* shows up most comonly in Mail/News Readers.
|
|
*
|
|
* @author YNOP (ynop@acm.org)
|
|
* @version beta
|
|
* @date Dec. 10 1999
|
|
*******************************************************/
|
|
#ifndef _SPLIT_PANE_VIEW_H
|
|
#define _SPLIT_PANE_VIEW_H
|
|
|
|
#include <Application.h>
|
|
#include <AppKit.h>
|
|
// #include <InterfaceKit.h>
|
|
#include <iostream>
|
|
#include <ScrollView.h>
|
|
#define SPLITPANE_STATE 'spst'
|
|
|
|
class SplitPane : public BView {
|
|
public:
|
|
SplitPane(BRect,const char*,BView*,BView*,uint32);
|
|
void AddChildOne(BView*);
|
|
void AddChildTwo(BView* v,bool IsAdded,bool ShowAfterHide);
|
|
void SetAlignment(uint);
|
|
uint GetAlignment();
|
|
void SetBarPosition(int);
|
|
int GetBarPosition();
|
|
void SetBarThickness(int);
|
|
int GetBarThickness();
|
|
void SetJump(int);
|
|
int GetJump();
|
|
bool HasViewOne();
|
|
bool HasViewTwo();
|
|
void SetViewOneDetachable(bool);
|
|
void SetViewTwoDetachable(bool);
|
|
bool IsViewOneDetachable();
|
|
bool IsViewTwoDetachable();
|
|
void SetEditable(bool);
|
|
bool IsEditable();
|
|
void SetViewInsetBy(int);
|
|
int GetViewInsetBy();
|
|
void SetMinSizeOne(int);
|
|
int GetMinSizeOne();
|
|
void SetMinSizeTwo(int);
|
|
int GetMinSizeTwo();
|
|
BMessage* GetState();
|
|
void SetBarLocked(bool);
|
|
bool IsBarLocked();
|
|
void SetBarAlignmentLocked(bool);
|
|
bool IsBarAlignmentLocked();
|
|
void SetState(BMessage*);
|
|
virtual void Draw(BRect);
|
|
virtual void AttachedToWindow();
|
|
virtual void FrameResized(float,float);
|
|
virtual void MouseDown(BPoint);
|
|
virtual void MouseUp(BPoint);
|
|
virtual void MouseMoved(BPoint,uint32,const BMessage*);
|
|
virtual void MessageReceived(BMessage*);
|
|
//void MakePaneTwoFocus();
|
|
private:
|
|
void Update();
|
|
BView *PaneOne;
|
|
BView *PaneTwo;
|
|
|
|
//State info
|
|
bool VOneDetachable;
|
|
bool VTwoDetachable;
|
|
uint align;
|
|
int pos;
|
|
int thickness;
|
|
int jump;
|
|
int pad;
|
|
int MinSizeOne;
|
|
int MinSizeTwo;
|
|
bool poslocked;
|
|
bool alignlocked;
|
|
//end State info
|
|
|
|
bool Draggin;
|
|
BPoint here;
|
|
bool attached;
|
|
|
|
BWindow *WinOne;
|
|
BWindow *WinTwo;
|
|
|
|
BWindow *ConfigWindow;
|
|
};
|
|
#endif
|
|
|