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:
Ingo Weinhold
2009-07-29 00:13:48 +00:00
parent c97796c267
commit c654cca5b4
@@ -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;
}; };