344 lines
14 KiB
Python
344 lines
14 KiB
Python
# Comprehensive UI Element Method Documentation
|
|
# This can be inserted into generate_api_docs_html.py in the method_docs dictionary
|
|
|
|
ui_method_docs = {
|
|
# Base Drawable methods (inherited by all UI elements)
|
|
'Drawable': {
|
|
'get_bounds': {
|
|
'signature': 'get_bounds()',
|
|
'description': 'Get the bounding rectangle of this drawable element.',
|
|
'returns': 'tuple: (x, y, width, height) representing the element\'s bounds',
|
|
'note': 'The bounds are in screen coordinates and account for current position and size.'
|
|
},
|
|
'move': {
|
|
'signature': 'move(dx, dy)',
|
|
'description': 'Move the element by a relative offset.',
|
|
'args': [
|
|
('dx', 'float', 'Horizontal offset in pixels'),
|
|
('dy', 'float', 'Vertical offset in pixels')
|
|
],
|
|
'note': 'This modifies the x and y position properties by the given amounts.'
|
|
},
|
|
'resize': {
|
|
'signature': 'resize(width, height)',
|
|
'description': 'Resize the element to new dimensions.',
|
|
'args': [
|
|
('width', 'float', 'New width in pixels'),
|
|
('height', 'float', 'New height in pixels')
|
|
],
|
|
'note': 'Behavior varies by element type. Some elements may ignore or constrain dimensions.'
|
|
}
|
|
},
|
|
|
|
# Caption-specific methods
|
|
'Caption': {
|
|
'get_bounds': {
|
|
'signature': 'get_bounds()',
|
|
'description': 'Get the bounding rectangle of the text.',
|
|
'returns': 'tuple: (x, y, width, height) based on text content and font size',
|
|
'note': 'Bounds are automatically calculated from the rendered text dimensions.'
|
|
},
|
|
'move': {
|
|
'signature': 'move(dx, dy)',
|
|
'description': 'Move the caption by a relative offset.',
|
|
'args': [
|
|
('dx', 'float', 'Horizontal offset in pixels'),
|
|
('dy', 'float', 'Vertical offset in pixels')
|
|
]
|
|
},
|
|
'resize': {
|
|
'signature': 'resize(width, height)',
|
|
'description': 'Set text wrapping bounds (limited support).',
|
|
'args': [
|
|
('width', 'float', 'Maximum width for text wrapping'),
|
|
('height', 'float', 'Currently unused')
|
|
],
|
|
'note': 'Full text wrapping is not yet implemented. This prepares for future multiline support.'
|
|
}
|
|
},
|
|
|
|
# Entity-specific methods
|
|
'Entity': {
|
|
'at': {
|
|
'signature': 'at(x, y)',
|
|
'description': 'Get the GridPointState at the specified grid coordinates relative to this entity.',
|
|
'args': [
|
|
('x', 'int', 'Grid x offset from entity position'),
|
|
('y', 'int', 'Grid y offset from entity position')
|
|
],
|
|
'returns': 'GridPointState: State of the grid point at the specified position',
|
|
'note': 'Requires entity to be associated with a grid. Raises ValueError if not.'
|
|
},
|
|
'die': {
|
|
'signature': 'die()',
|
|
'description': 'Remove this entity from its parent grid.',
|
|
'returns': 'None',
|
|
'note': 'The entity object remains valid but is no longer rendered or updated.'
|
|
},
|
|
'index': {
|
|
'signature': 'index()',
|
|
'description': 'Get the index of this entity in its grid\'s entity collection.',
|
|
'returns': 'int: Zero-based index in the parent grid\'s entity list',
|
|
'note': 'Raises RuntimeError if not associated with a grid, ValueError if not found.'
|
|
},
|
|
'get_bounds': {
|
|
'signature': 'get_bounds()',
|
|
'description': 'Get the bounding rectangle of the entity\'s sprite.',
|
|
'returns': 'tuple: (x, y, width, height) of the sprite bounds',
|
|
'note': 'Delegates to the internal sprite\'s get_bounds method.'
|
|
},
|
|
'move': {
|
|
'signature': 'move(dx, dy)',
|
|
'description': 'Move the entity by a relative offset in pixels.',
|
|
'args': [
|
|
('dx', 'float', 'Horizontal offset in pixels'),
|
|
('dy', 'float', 'Vertical offset in pixels')
|
|
],
|
|
'note': 'Updates both sprite position and entity grid position.'
|
|
},
|
|
'resize': {
|
|
'signature': 'resize(width, height)',
|
|
'description': 'Entities do not support direct resizing.',
|
|
'args': [
|
|
('width', 'float', 'Ignored'),
|
|
('height', 'float', 'Ignored')
|
|
],
|
|
'note': 'This method exists for interface compatibility but has no effect.'
|
|
}
|
|
},
|
|
|
|
# Frame-specific methods
|
|
'Frame': {
|
|
'get_bounds': {
|
|
'signature': 'get_bounds()',
|
|
'description': 'Get the bounding rectangle of the frame.',
|
|
'returns': 'tuple: (x, y, width, height) representing the frame bounds'
|
|
},
|
|
'move': {
|
|
'signature': 'move(dx, dy)',
|
|
'description': 'Move the frame and all its children by a relative offset.',
|
|
'args': [
|
|
('dx', 'float', 'Horizontal offset in pixels'),
|
|
('dy', 'float', 'Vertical offset in pixels')
|
|
],
|
|
'note': 'Child elements maintain their relative positions within the frame.'
|
|
},
|
|
'resize': {
|
|
'signature': 'resize(width, height)',
|
|
'description': 'Resize the frame to new dimensions.',
|
|
'args': [
|
|
('width', 'float', 'New width in pixels'),
|
|
('height', 'float', 'New height in pixels')
|
|
],
|
|
'note': 'Does not automatically resize children. Set clip_children=True to clip overflow.'
|
|
}
|
|
},
|
|
|
|
# Grid-specific methods
|
|
'Grid': {
|
|
'at': {
|
|
'signature': 'at(x, y) or at((x, y))',
|
|
'description': 'Get the GridPoint at the specified grid coordinates.',
|
|
'args': [
|
|
('x', 'int', 'Grid x coordinate (0-based)'),
|
|
('y', 'int', 'Grid y coordinate (0-based)')
|
|
],
|
|
'returns': 'GridPoint: The grid point at (x, y)',
|
|
'note': 'Raises IndexError if coordinates are out of range. Accepts either two arguments or a tuple.',
|
|
'example': 'point = grid.at(5, 3) # or grid.at((5, 3))'
|
|
},
|
|
'get_bounds': {
|
|
'signature': 'get_bounds()',
|
|
'description': 'Get the bounding rectangle of the entire grid.',
|
|
'returns': 'tuple: (x, y, width, height) of the grid\'s display area'
|
|
},
|
|
'move': {
|
|
'signature': 'move(dx, dy)',
|
|
'description': 'Move the grid display by a relative offset.',
|
|
'args': [
|
|
('dx', 'float', 'Horizontal offset in pixels'),
|
|
('dy', 'float', 'Vertical offset in pixels')
|
|
],
|
|
'note': 'Moves the entire grid viewport. Use center property to pan within the grid.'
|
|
},
|
|
'resize': {
|
|
'signature': 'resize(width, height)',
|
|
'description': 'Resize the grid\'s display viewport.',
|
|
'args': [
|
|
('width', 'float', 'New viewport width in pixels'),
|
|
('height', 'float', 'New viewport height in pixels')
|
|
],
|
|
'note': 'Changes the visible area, not the grid dimensions. Use zoom to scale content.'
|
|
}
|
|
},
|
|
|
|
# Sprite-specific methods
|
|
'Sprite': {
|
|
'get_bounds': {
|
|
'signature': 'get_bounds()',
|
|
'description': 'Get the bounding rectangle of the sprite.',
|
|
'returns': 'tuple: (x, y, width, height) based on texture size and scale',
|
|
'note': 'Bounds account for current scale. Returns (x, y, 0, 0) if no texture.'
|
|
},
|
|
'move': {
|
|
'signature': 'move(dx, dy)',
|
|
'description': 'Move the sprite by a relative offset.',
|
|
'args': [
|
|
('dx', 'float', 'Horizontal offset in pixels'),
|
|
('dy', 'float', 'Vertical offset in pixels')
|
|
]
|
|
},
|
|
'resize': {
|
|
'signature': 'resize(width, height)',
|
|
'description': 'Resize the sprite by adjusting its scale.',
|
|
'args': [
|
|
('width', 'float', 'Target width in pixels'),
|
|
('height', 'float', 'Target height in pixels')
|
|
],
|
|
'note': 'Calculates and applies uniform scale to best fit the target dimensions.'
|
|
}
|
|
},
|
|
|
|
# Collection methods (shared by EntityCollection and UICollection)
|
|
'EntityCollection': {
|
|
'append': {
|
|
'signature': 'append(entity)',
|
|
'description': 'Add an entity to the end of the collection.',
|
|
'args': [
|
|
('entity', 'Entity', 'The entity to add')
|
|
]
|
|
},
|
|
'remove': {
|
|
'signature': 'remove(entity)',
|
|
'description': 'Remove the first occurrence of an entity from the collection.',
|
|
'args': [
|
|
('entity', 'Entity', 'The entity to remove')
|
|
],
|
|
'note': 'Raises ValueError if entity is not found.'
|
|
},
|
|
'extend': {
|
|
'signature': 'extend(iterable)',
|
|
'description': 'Add multiple entities from an iterable.',
|
|
'args': [
|
|
('iterable', 'iterable', 'An iterable of Entity objects')
|
|
]
|
|
},
|
|
'count': {
|
|
'signature': 'count(entity)',
|
|
'description': 'Count occurrences of an entity in the collection.',
|
|
'args': [
|
|
('entity', 'Entity', 'The entity to count')
|
|
],
|
|
'returns': 'int: Number of times the entity appears'
|
|
},
|
|
'index': {
|
|
'signature': 'index(entity)',
|
|
'description': 'Find the index of the first occurrence of an entity.',
|
|
'args': [
|
|
('entity', 'Entity', 'The entity to find')
|
|
],
|
|
'returns': 'int: Zero-based index of the entity',
|
|
'note': 'Raises ValueError if entity is not found.'
|
|
}
|
|
},
|
|
|
|
'UICollection': {
|
|
'append': {
|
|
'signature': 'append(drawable)',
|
|
'description': 'Add a drawable element to the end of the collection.',
|
|
'args': [
|
|
('drawable', 'Drawable', 'Any UI element (Frame, Caption, Sprite, Grid)')
|
|
]
|
|
},
|
|
'remove': {
|
|
'signature': 'remove(drawable)',
|
|
'description': 'Remove the first occurrence of a drawable from the collection.',
|
|
'args': [
|
|
('drawable', 'Drawable', 'The drawable to remove')
|
|
],
|
|
'note': 'Raises ValueError if drawable is not found.'
|
|
},
|
|
'extend': {
|
|
'signature': 'extend(iterable)',
|
|
'description': 'Add multiple drawables from an iterable.',
|
|
'args': [
|
|
('iterable', 'iterable', 'An iterable of Drawable objects')
|
|
]
|
|
},
|
|
'count': {
|
|
'signature': 'count(drawable)',
|
|
'description': 'Count occurrences of a drawable in the collection.',
|
|
'args': [
|
|
('drawable', 'Drawable', 'The drawable to count')
|
|
],
|
|
'returns': 'int: Number of times the drawable appears'
|
|
},
|
|
'index': {
|
|
'signature': 'index(drawable)',
|
|
'description': 'Find the index of the first occurrence of a drawable.',
|
|
'args': [
|
|
('drawable', 'Drawable', 'The drawable to find')
|
|
],
|
|
'returns': 'int: Zero-based index of the drawable',
|
|
'note': 'Raises ValueError if drawable is not found.'
|
|
}
|
|
}
|
|
}
|
|
|
|
# Additional property documentation to complement the methods
|
|
ui_property_docs = {
|
|
'Drawable': {
|
|
'visible': 'bool: Whether this element is rendered (default: True)',
|
|
'opacity': 'float: Transparency level from 0.0 (invisible) to 1.0 (opaque)',
|
|
'z_index': 'int: Rendering order, higher values appear on top',
|
|
'name': 'str: Optional name for finding elements',
|
|
'x': 'float: Horizontal position in pixels',
|
|
'y': 'float: Vertical position in pixels',
|
|
'click': 'callable: Click event handler function'
|
|
},
|
|
'Caption': {
|
|
'text': 'str: The displayed text content',
|
|
'font': 'Font: Font used for rendering',
|
|
'fill_color': 'Color: Text color',
|
|
'outline_color': 'Color: Text outline color',
|
|
'outline': 'float: Outline thickness in pixels',
|
|
'w': 'float: Read-only computed width based on text',
|
|
'h': 'float: Read-only computed height based on text'
|
|
},
|
|
'Entity': {
|
|
'grid_x': 'float: X position in grid coordinates',
|
|
'grid_y': 'float: Y position in grid coordinates',
|
|
'sprite_index': 'int: Index of sprite in texture atlas',
|
|
'texture': 'Texture: Texture used for rendering',
|
|
'gridstate': 'list: Read-only list of GridPointState objects'
|
|
},
|
|
'Frame': {
|
|
'w': 'float: Width in pixels',
|
|
'h': 'float: Height in pixels',
|
|
'fill_color': 'Color: Background fill color',
|
|
'outline_color': 'Color: Border color',
|
|
'outline': 'float: Border thickness in pixels',
|
|
'children': 'UICollection: Child drawable elements',
|
|
'clip_children': 'bool: Whether to clip children to frame bounds'
|
|
},
|
|
'Grid': {
|
|
'grid_size': 'tuple: Read-only (width, height) in tiles',
|
|
'grid_x': 'int: Read-only width in tiles',
|
|
'grid_y': 'int: Read-only height in tiles',
|
|
'tile_width': 'int: Width of each tile in pixels',
|
|
'tile_height': 'int: Height of each tile in pixels',
|
|
'center': 'tuple: (x, y) center point for viewport',
|
|
'zoom': 'float: Scale factor for rendering',
|
|
'texture': 'Texture: Tile texture atlas',
|
|
'background_color': 'Color: Grid background color',
|
|
'entities': 'EntityCollection: Entities in this grid',
|
|
'points': 'list: 2D array of GridPoint objects'
|
|
},
|
|
'Sprite': {
|
|
'texture': 'Texture: The displayed texture',
|
|
'sprite_index': 'int: Index in texture atlas',
|
|
'scale': 'float: Scaling factor',
|
|
'w': 'float: Read-only computed width (texture width * scale)',
|
|
'h': 'float: Read-only computed height (texture height * scale)'
|
|
}
|
|
} |