McRogueFace/tests/cookbook/lib/__init__.py

81 lines
2.4 KiB
Python
Raw Normal View History

# McRogueFace Cookbook - Standard Widget Library
"""
Reusable UI widget patterns for game development.
Widgets:
Button - Clickable button with hover/press states
StatBar - Horizontal bar showing current/max value (HP, mana, XP)
ChoiceList - Vertical list of selectable text options
ScrollableList - Scrolling list with arbitrary item rendering
TextBox - Word-wrapped text with typewriter effect
DialogueBox - TextBox with speaker name display
Modal - Overlay popup that blocks background input
ConfirmModal - Pre-configured yes/no modal
AlertModal - Pre-configured OK modal
ToastManager - Auto-dismissing notification popups
GridContainer - NxM clickable cells for inventory/slot systems
Utilities:
AnimationChain - Sequential animation execution
AnimationGroup - Parallel animation execution
delay - Create a delay step for animation chains
callback - Create a callback step for animation chains
fade_in, fade_out - Opacity animations
slide_in_from_* - Slide-in animations
shake - Shake effect animation
"""
from .button import Button, create_button_row, create_button_column
from .stat_bar import StatBar, create_stat_bar_group
from .choice_list import ChoiceList, create_menu
from .text_box import TextBox, DialogueBox
from .scrollable_list import ScrollableList
from .modal import Modal, ConfirmModal, AlertModal
from .toast import Toast, ToastManager
from .grid_container import GridContainer
from .anim_utils import (
AnimationChain, AnimationGroup, AnimationSequence,
PropertyAnimation, DelayStep, CallbackStep,
delay, callback,
fade_in, fade_out,
slide_in_from_left, slide_in_from_right,
slide_in_from_top, slide_in_from_bottom,
pulse, shake
)
__all__ = [
# Widgets
'Button',
'create_button_row',
'create_button_column',
'StatBar',
'create_stat_bar_group',
'ChoiceList',
'create_menu',
'TextBox',
'DialogueBox',
'ScrollableList',
'Modal',
'ConfirmModal',
'AlertModal',
'Toast',
'ToastManager',
'GridContainer',
# Animation utilities
'AnimationChain',
'AnimationGroup',
'AnimationSequence',
'PropertyAnimation',
'DelayStep',
'CallbackStep',
'delay',
'callback',
'fade_in',
'fade_out',
'slide_in_from_left',
'slide_in_from_right',
'slide_in_from_top',
'slide_in_from_bottom',
'pulse',
'shake',
]