Use the new header view. Not quite fitting yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31879 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -22,6 +22,7 @@
|
|||||||
|
|
||||||
#include "Array.h"
|
#include "Array.h"
|
||||||
|
|
||||||
|
#include "HeaderView.h"
|
||||||
#include "Model.h"
|
#include "Model.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -775,11 +776,22 @@ public:
|
|||||||
FontInfo& fontInfo)
|
FontInfo& fontInfo)
|
||||||
:
|
:
|
||||||
BaseView("viewport", fontInfo),
|
BaseView("viewport", fontInfo),
|
||||||
|
fHeaderView(NULL),
|
||||||
fThreadsView(threadsView),
|
fThreadsView(threadsView),
|
||||||
fSchedulingView(schedulingView)
|
fSchedulingView(schedulingView)
|
||||||
{
|
{
|
||||||
|
AddChild(fHeaderView = new HeaderView);
|
||||||
AddChild(threadsView);
|
AddChild(threadsView);
|
||||||
AddChild(schedulingView);
|
AddChild(schedulingView);
|
||||||
|
|
||||||
|
Header* header = new Header(100, 100, 10000, 200);
|
||||||
|
header->SetValue("Thread");
|
||||||
|
fHeaderView->Model()->AddHeader(header);
|
||||||
|
|
||||||
|
header = new Header(100, 100, 10000, 200);
|
||||||
|
header->SetValue("Activity");
|
||||||
|
fHeaderView->Model()->AddHeader(header);
|
||||||
|
// TODO: Set header width correctly!
|
||||||
}
|
}
|
||||||
|
|
||||||
void TargetedByScrollView(BScrollView* scrollView)
|
void TargetedByScrollView(BScrollView* scrollView)
|
||||||
@@ -789,7 +801,7 @@ public:
|
|||||||
|
|
||||||
virtual BSize MinSize()
|
virtual BSize MinSize()
|
||||||
{
|
{
|
||||||
return BSize(10, 10);
|
return BSize(10, fHeaderView->MinSize().Height());
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual BSize MaxSize()
|
virtual BSize MaxSize()
|
||||||
@@ -799,25 +811,33 @@ public:
|
|||||||
|
|
||||||
BSize PreferredSize()
|
BSize PreferredSize()
|
||||||
{
|
{
|
||||||
|
BSize headerViewSize(fHeaderView->PreferredSize());
|
||||||
BSize threadsViewSize(fThreadsView->PreferredSize());
|
BSize threadsViewSize(fThreadsView->PreferredSize());
|
||||||
BSize schedulingViewSize(fSchedulingView->PreferredSize());
|
BSize schedulingViewSize(fSchedulingView->PreferredSize());
|
||||||
return BSize(BLayoutUtils::AddDistances(
|
BSize size(BLayoutUtils::AddDistances(
|
||||||
threadsViewSize.width + kViewSeparationMargin,
|
threadsViewSize.width + kViewSeparationMargin,
|
||||||
schedulingViewSize.width),
|
schedulingViewSize.width),
|
||||||
std::max(threadsViewSize.height, schedulingViewSize.height));
|
std::max(threadsViewSize.height, schedulingViewSize.height));
|
||||||
|
|
||||||
|
return BSize(std::max(size.width, headerViewSize.width),
|
||||||
|
BLayoutUtils::AddDistances(size.height, headerViewSize.height));
|
||||||
}
|
}
|
||||||
|
|
||||||
void DoLayout()
|
void DoLayout()
|
||||||
{
|
{
|
||||||
|
float headerHeight = fHeaderView->MinSize().Height();
|
||||||
float width = Bounds().Width();
|
float width = Bounds().Width();
|
||||||
float height = fThreadsView->MinSize().Height();
|
float height = fThreadsView->MinSize().Height();
|
||||||
float threadsViewWidth = fThreadsView->MinSize().width;
|
float threadsViewWidth = fThreadsView->MinSize().width;
|
||||||
float schedulingViewLeft = threadsViewWidth + 1 + kViewSeparationMargin;
|
float schedulingViewLeft = threadsViewWidth + 1 + kViewSeparationMargin;
|
||||||
|
|
||||||
fThreadsView->MoveTo(0, 0);
|
fHeaderView->MoveTo(0, 0);
|
||||||
|
fHeaderView->ResizeTo(width, headerHeight);
|
||||||
|
|
||||||
|
fThreadsView->MoveTo(0, headerHeight + 1);
|
||||||
fThreadsView->ResizeTo(threadsViewWidth, height);
|
fThreadsView->ResizeTo(threadsViewWidth, height);
|
||||||
|
|
||||||
fSchedulingView->MoveTo(schedulingViewLeft, 0);
|
fSchedulingView->MoveTo(schedulingViewLeft, headerHeight + 1);
|
||||||
fSchedulingView->ResizeTo(width - schedulingViewLeft, height);
|
fSchedulingView->ResizeTo(width - schedulingViewLeft, height);
|
||||||
|
|
||||||
_UpdateScrollBars();
|
_UpdateScrollBars();
|
||||||
@@ -846,6 +866,7 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
HeaderView* fHeaderView;
|
||||||
ThreadsView* fThreadsView;
|
ThreadsView* fThreadsView;
|
||||||
SchedulingView* fSchedulingView;
|
SchedulingView* fSchedulingView;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user