// // CPT operator / SondeerGame // This source file is (c) by Deltares. // - October 2014 // /// jln - 03-11-2008 /// Just a wrapper for future stuff. class GeoGUITabControl extends GUITabControl; /// jln - 17-11-2008 We need these two functions so that we can use our own tab button class instead of the default GUITabButton function GUITabPanel AddTab(string Caption, string PanelClass, optional GUITabPanel ExistingPanel, optional string Hint, optional bool bForceActive) { local class NewPanelClass; local GUITabButton NewTabButton; local GUITabPanel NewTabPanel; local int i; // Make sure this doesn't exist first for (i=0;i(DynamicLoadObject(PanelClass,class'class')); if ( (ExistingPanel!=None) || (NewPanelClass != None) ) { if (ExistingPanel != None) NewTabPanel = GUITabPanel(AppendComponent(ExistingPanel)); else if (NewPanelClass != None) NewTabPanel = GUITabPanel(AddComponent(PanelClass)); if (NewTabPanel == None) { log("Could not create panel for"@NewPanelClass); return None; } if (NewTabPanel.MyButton != None) NewTabButton = NewTabPanel.MyButton; else { NewTabButton = new class'GeoGUITabButton'; if (NewTabButton==None) { log("Could not create tab for"@NewPanelClass); return None; } NewTabButton.InitComponent(Controller, Self); NewTabPanel.MyButton = NewTabButton; } NewTabPanel.MyButton .Hint = Hint; NewTabPanel.MyButton .Caption = Caption; NewTabPanel.MyButton .OnClick = InternalTabClick; NewTabPanel.MyButton .MyPanel = NewTabPanel; NewTabPanel.MyButton .FocusInstead = self; NewTabPanel.MyButton .bNeverFocus = true; NewTabPanel.InitPanel(); NewTabPanel.Hide(); // Add the tab to controls TabStack[TabStack.Length] = NewTabPanel.MyButton; if ( (TabStack.Length==1) || (bForceActive) ) { ActivateTab(NewTabPanel.MyButton,true); NewTabPanel.FocusFirst(none); } Return NewTabPanel; } else return none; } function GUITabPanel InsertTab(int Pos, string Caption, string PanelClass, optional GUITabPanel ExistingPanel, optional string Hint, optional bool bForceActive) { local class NewPanelClass; local GUITabPanel NewTabPanel; local GUITabButton NewTabButton; if (ExistingPanel == None) NewPanelClass = class(DynamicLoadObject(PanelClass,class'Class')); if ( ExistingPanel != None || NewPanelClass != None) { if (ExistingPanel != None) NewTabPanel = GUITabPanel(AppendComponent(ExistingPanel)); else if (NewPanelClass != None) NewTabPanel = GUITabPanel(AddComponent(PanelClass)); if (NewTabPanel == None) { log("Could not create panel for"@NewPanelClass); return None; } if (NewTabPanel.MyButton != None) NewTabButton = NewTabPanel.MyButton; else { NewTabButton = new class'GeoGUITabButton'; if (NewTabButton==None) { log("Could not create tab for"@NewPanelClass); return None; } NewTabButton.InitComponent(Controller, Self); NewTabPanel.MyButton = NewTabButton; } NewTabPanel.MyButton.Caption = Caption; NewTabPanel.MyButton.Hint = Hint; NewTabPanel.MyButton.OnClick = InternalTabClick; NewTabPanel.MyButton.FocusInstead = self; NewTabPanel.MyButton.bNeverFocus = true; NewTabPanel.InitPanel(); NewTabPanel.Hide(); TabStack.Insert(Pos, 1); TabStack[Pos] = NewTabPanel.MyButton; if ( (TabStack.Length==1) || (bForceActive) ) { ActivateTab(NewTabPanel.MyButton,true); NewTabPanel.FocusFirst(none); } Return NewTabPanel; } return None; }