Use native BTabView with slight modifications.

* Add "left" and "right" tabs orientation.
* Remove dependency on BControlLook which is private API.
This commit is contained in:
Kacper Kasper
2017-08-30 17:08:52 +02:00
parent 1d61d43b0a
commit 3c7f07d931
7 changed files with 63 additions and 825 deletions

View File

@@ -390,7 +390,7 @@ int YabInterface::CloseWindow(const char* view)
{
for(int i = 0; i<((YabTabView*)child)->CountTabs(); i++)
{
YabView *t = (YabView*)((YabTabView*)child)->TabAt(i);
YabView *t = (YabView*)((YabTabView*)child)->TabAt(i)->View();
RemoveView(t);
viewList->DelView(t->Name());
}
@@ -407,7 +407,7 @@ int YabInterface::CloseWindow(const char* view)
{
for(int i = 0; i<((YabTabView*)subchild)->CountTabs(); i++)
{
YabView *t = (YabView*)((YabTabView*)subchild)->TabAt(i);
YabView *t = (YabView*)((YabTabView*)subchild)->TabAt(i)->View();
RemoveView(t);
viewList->DelView(t->Name());
}
@@ -601,12 +601,16 @@ void YabInterface::BoxViewSet(const char* id, const char* option, const char* va
}
void YabInterface::Tab(BRect frame, const char* id, const char* mode, const char* view)
{
tab_orientation side;
BTabView::tab_side side;
BString option(mode);
if(option.IFindFirst("top")!=B_ERROR)
side = B_TAB_TOP;
else if(option.IFindFirst("bottom")!=B_ERROR)
side = B_TAB_BOTTOM;
if(option.IFindFirst("top") != B_ERROR)
side = BTabView::kTopSide;
else if(option.IFindFirst("bottom") != B_ERROR)
side = BTabView::kBottomSide;
else if(option.IFindFirst("left") != B_ERROR)
side = BTabView::kLeftSide;
else if(option.IFindFirst("right") != B_ERROR)
side = BTabView::kRightSide;
else ErrorGen("Invalid Option");
YabView *myView = cast_as((BView*)viewList->GetView(view), YabView);
@@ -626,7 +630,7 @@ void YabInterface::Tab(BRect frame, const char* id, const char* mode, const char
myTabView->SetFlags(B_WILL_DRAW|B_FULL_UPDATE_ON_RESIZE|B_NAVIGABLE|B_NAVIGABLE_JUMP);
myTabView->SetOrientation(side);
myTabView->SetTabSide(side);
myTabView->SetTabWidth(B_WIDTH_FROM_LABEL);
myView->AddChild(myTabView);
@@ -3378,7 +3382,7 @@ void YabInterface::WindowClear(const char* window)
{
for(int i = 0; i<((YabTabView*)child)->CountTabs(); i++)
{
YabView *t = (YabView*)((YabTabView*)child)->TabAt(i);
YabView *t = (YabView*)((YabTabView*)child)->TabAt(i)->View();
RemoveView(t);
viewList->DelView(t->Name());
}
@@ -3393,7 +3397,7 @@ void YabInterface::WindowClear(const char* window)
{
for(int i = 0; i<((YabTabView*)subchild)->CountTabs(); i++)
{
YabView *t = (YabView*)((YabTabView*)subchild)->TabAt(i);
YabView *t = (YabView*)((YabTabView*)subchild)->TabAt(i)->View();
RemoveView(t);
viewList->DelView(t->Name());
}
@@ -3458,7 +3462,7 @@ void YabInterface::RemoveView(BView *myView)
{
for(int i = 0; i<((YabTabView*)child)->CountTabs(); i++)
{
YabView *t = (YabView*)((YabTabView*)child)->TabAt(i);
YabView *t = (YabView*)((YabTabView*)child)->TabAt(i)->View();
RemoveView(t);
viewList->DelView(t->Name());
}
@@ -3473,7 +3477,7 @@ void YabInterface::RemoveView(BView *myView)
{
for(int i = 0; i<((YabTabView*)subchild)->CountTabs(); i++)
{
YabView *t = (YabView*)((YabTabView*)subchild)->TabAt(i);
YabView *t = (YabView*)((YabTabView*)subchild)->TabAt(i)->View();
RemoveView(t);
viewList->DelView(t->Name());
}