Currently, there are two implementations of "Tabs" in Anagame:
Anaface's AnafaceUI which uses a TLayoutEx to hold TControl's as "tabs"
Tap's IDEPage has the IDEPageHolder to manage child pages and allows them to be moved around the window
Of the two, the second is more advanced as it was written recently (late 2019-early 2020) while the former was written either in 2017 or 2018. Therefore, the second Implementation has features absent in the first, such as:
Ability to drag the tab from one bar to another
ability to shrink the width to the size of the text it holds
Goal: Export this functionality into a dedicated Tab Bar Class and (possible Tab Class)
Tabs come in multiple styles and flavors and Anagame only supports basic text (and a fixed width in the case of the AnafaceUI class). Because there are two unique scenarios where tabs are used (and I don't want to declare that were won't be a third scenario) and that some functionality in the IDEPage tabs should also be present in the AnafaceUI implementation.
As a result, the functionality should be exported to a dedicated TabBar class in Anaface and should support the following features:
Ability to adjust it's width based off of the length of the text it was given and the max (and possible min width)
Ability to allow itself to be dragged around the window (should be disabled by default, especially for AnafaceUI
Have a means of providing an X functionality (meaning the user can close the tab)
The ability to specify the response if the tabs become crowded
Should tabs shrink and if so, by how much?
Once Tabs can shrink no more, how to set up the arrows
(Bonus) Allow for the option of using icons instead of text (similar to the Windows 7+ taskbar)
(Bonus) Pin functionality
Security: Dragging support should be disabled in the AnafaceUI. The reason for this is if a control with an event is placed under a new Page, then it's likely that second page will have a different handler type than the previous one. As a result, the Control would end up sending the event to the wrong Handler and the wrong event handler will run.
Pull Requests made for this issue should be directed to the tabs branch
Currently, there are two implementations of "Tabs" in Anagame:
Of the two, the second is more advanced as it was written recently (late 2019-early 2020) while the former was written either in 2017 or 2018. Therefore, the second Implementation has features absent in the first, such as:
Goal: Export this functionality into a dedicated Tab Bar Class and (possible Tab Class)
Tabs come in multiple styles and flavors and Anagame only supports basic text (and a fixed width in the case of the AnafaceUI class). Because there are two unique scenarios where tabs are used (and I don't want to declare that were won't be a third scenario) and that some functionality in the IDEPage tabs should also be present in the AnafaceUI implementation.
As a result, the functionality should be exported to a dedicated TabBar class in Anaface and should support the following features:
Security: Dragging support should be disabled in the AnafaceUI. The reason for this is if a control with an event is placed under a new Page, then it's likely that second page will have a different handler type than the previous one. As a result, the Control would end up sending the event to the wrong Handler and the wrong event handler will run.
Pull Requests made for this issue should be directed to the tabs branch