Title:
Feature: Implement TabControl class and SAGE engine properties
Description:
We need to support the TabControl UI element based on the original SAGE engine C++ source code . Unlike standard User controls, a Tab Control handles an array of sub-panes and specific layout orientations.
Tasks:
- Create a new
TabControl class inheriting from UserControl (or Window).
- Inject specific default properties into the initialization:
TABORIENTATION (default: 'TOPLEFT')
TABWIDTH and TABHEIGHT
NUMTABS (default: 1)
- Create a
TABS array property capable of holding up to 8 tab dictionaries. Each dictionary must contain: NAME (label), SUBPANE (associated window name), and DISABLED (boolean).
- Update the
textures dictionary to include exactly 3 slots for ENABLEDDRAWDATA: Background, Active Tab, Inactive Tab.
- Update the saving logic to ensure
TABORIENTATION is written to the file before the TABS list.
Acceptance Criteria:
Title:
Feature: Implement TabControl class and SAGE engine propertiesDescription:
We need to support the
TabControlUI element based on the original SAGE engine C++ source code . Unlike standard User controls, a Tab Control handles an array of sub-panes and specific layout orientations.Tasks:
TabControlclass inheriting fromUserControl(orWindow).TABORIENTATION(default: 'TOPLEFT')TABWIDTHandTABHEIGHTNUMTABS(default: 1)TABSarray property capable of holding up to 8 tab dictionaries. Each dictionary must contain:NAME(label),SUBPANE(associated window name), andDISABLED(boolean).texturesdictionary to include exactly 3 slots forENABLEDDRAWDATA: Background, Active Tab, Inactive Tab.TABORIENTATIONis written to the file before theTABSlist.Acceptance Criteria:
TabControlobject generates the correct Python dictionary structure..wndgenerates the syntax exactly as the game engine expects it (strict order of properties).