static define skinMainColor = Color { 0, 71, 128 };
static define skinBackground = Color { 255, 255, 255 };
static define skinTextColor = skinMainColor;
-static define skinInactiveTextColor = Color { skinMainColor.r - 20, skinMainColor.g - 20, skinMainColor.b - 20 };
+static define skinInactiveTextColor = Color { 0, 51, 108 };
#define CAPTION 14
#define NAME_OFFSET 2
bool NotifyClicked(Button button, int x, int y, Modifiers mods)
{
- if(curTab == (Tab)button.id)
+ if(curTab == (Tab)(intptr)button.id)
return true;
//curButton.Activate();
curButton.MakeActive();
{
curButton.checked = false;
button.checked = true;
- curTab = (Tab)button.id;
+ curTab = (Tab)(intptr)button.id;
if(curButton)
PlaceButton(curButton, placement, false, buttonsOffset);
public void AddTab(Tab tab)
{
- tab.parent = this;
+ if(tab.parent != this)
+ {
+ tab.parent = this;
+ return;
+ }
tab.autoCreate = false;
tab.id = numTabs;
- tab.button = TabButton
+ if(!tab.button)
{
- parent = tabButtons,
- master = this, stayDown = true,
- text = tab.text, id = (int64)tab, NotifyClicked = NotifyClicked,
- tab = tab,
- background = background;
- };
- incref tab.button;
+ tab.button = TabButton
+ {
+ parent = tabButtons,
+ master = this, stayDown = true,
+ text = tab.text, id = (int64)(intptr)tab, NotifyClicked = NotifyClicked,
+ tab = tab,
+ background = background;
+ };
+ incref tab.button;
+ }
if(created)
{
{
Window child;
Tab fallbackTab = null;
- tab.parent = null;
+ // tab.parent = null;
for(child = tabButtons.children.first; child; child = child.next)
{
if(child._class == class(TabButton))
{
TabButton button = (TabButton)child;
- if(button.id == (int64)tab)
+ if(button.id == (int64)(intptr)tab)
{
if(button.created)
+ {
button.Destroy(0);
+ numTabs--;
+ }
break;
}
else
fallbackTab = tabButtons.children.first ? ((TabButton)tabButtons.children.first).tab : null;
if(fallbackTab)
fallbackTab.SelectTab();
+ else
+ curTab = null;
/*curTab = fallbackTab;
curButton = curTab.button;
curButton.checked = true;
curTab.autoCreate = true;*/
}
- numTabs--;
}
~TabControl()