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)'
 | 
						|
    }
 | 
						|
} |