"""
传统函数式语法 - 向前兼容的原始语法风格
使用方式：函数调用风格
"""

from 方圆.核心 import (
    # 基础函数
    创建主窗口, 为窗口设置中央区域和布局, 为控件设置布局,
    应用全局样式, 使控件具有样式,

    # 控件创建
    添加标签到布局, 添加按钮到布局, 添加输入框到布局,
    添加文本框到布局, 添加列表框到布局, 添加复选框到布局,

    # 布局管理
    在布局中添加弹性空间, 在布局中添加间距,

    # 对话框
    显示信息, 显示警告, 显示错误, 询问是或否,

    # 高级效果
    添加带阴影的框架到布局,

    # 列表操作
    向列表添加可勾选项目, 切换列表项目状态,

    # 工具函数
    简单居中窗口, 启动应用程序_说明性,

    # 上下文管理器（保持兼容）
    创建窗口上下文, _布局上下文
)

# 简写别名（向前兼容）
创建窗口 = 创建主窗口
设置布局 = 为窗口设置中央区域和布局
控件布局 = 为控件设置布局
全局样式 = 应用全局样式
控件样式 = 使控件具有样式
添加标签 = 添加标签到布局
添加按钮 = 添加按钮到布局
添加输入框 = 添加输入框到布局
添加文本框 = 添加文本框到布局
添加列表 = 添加列表框到布局
添加复选框 = 添加复选框到布局
弹性空间 = 在布局中添加弹性空间
添加间距 = 在布局中添加间距
信息框 = 显示信息
警告框 = 显示警告
错误框 = 显示错误
确认框 = 询问是或否
阴影框架 = 添加带阴影的框架到布局
列表项 = 向列表添加可勾选项目
切换状态 = 切换列表项目状态
居中窗口 = 简单居中窗口
运行应用 = 启动应用程序_说明性


# 传统语法的使用示例函数
def 示例应用():
    """
    传统语法的使用示例
    """
    # 创建窗口
    窗口 = 创建窗口("传统语法示例", 800, 600)

    # 设置全局样式
    全局样式(窗口, 背景颜色="#F5F5F7")

    # 设置中央布局
    中央区域, 主布局 = 设置布局(窗口, "垂直", 内边距=20, 间距=15)

    # 添加标题
    标题 = 添加标签(主布局, "传统语法示例", "居中")
    控件样式(标题, {"字体大小": "24px", "字体粗细": "bold"})

    # 添加水平布局
    水平容器 = QWidget()
    水平布局 = QHBoxLayout(水平容器)
    水平布局.setContentsMargins(0, 0, 0, 0)
    水平布局.setSpacing(10)
    主布局.addWidget(水平容器)

    # 添加输入框和按钮
    输入框 = 添加输入框(水平布局, "请输入内容...")
    按钮 = 添加按钮(水平布局, "点击我", lambda: 信息框(窗口, "提示", "按钮被点击了"))
    控件样式(按钮, {"背景颜色": "#007AFF", "文字颜色": "white", "圆角": "8px"})

    # 添加弹性空间
    弹性空间(主布局)

    # 添加带阴影的卡片
    卡片, 卡片布局 = 阴影框架(主布局, 背景颜色="#FFFFFF", 圆角=8)
    添加标签(卡片布局, "卡片内容", "居中")

    # 添加列表
    列表 = 添加列表(卡片布局)
    列表项(列表, "项目1")
    列表项(列表, "项目2", True)

    # 居中窗口
    居中窗口(窗口)

    return 窗口


# 导出列表
__all__ = [
    # 原函数名
    '创建主窗口', '为窗口设置中央区域和布局', '为控件设置布局',
    '应用全局样式', '使控件具有样式', '添加标签到布局',
    '添加按钮到布局', '添加输入框到布局', '添加文本框到布局',
    '添加列表框到布局', '添加复选框到布局', '在布局中添加弹性空间',
    '在布局中添加间距', '显示信息', '显示警告', '显示错误',
    '询问是或否', '添加带阴影的框架到布局', '向列表添加可勾选项目',
    '切换列表项目状态', '简单居中窗口', '启动应用程序_说明性',
    '创建窗口上下文', '_布局上下文',

    # 简写别名
    '创建窗口', '设置布局', '控件布局', '全局样式', '控件样式',
    '添加标签', '添加按钮', '添加输入框', '添加文本框', '添加列表',
    '添加复选框', '弹性空间', '添加间距', '信息框', '警告框',
    '错误框', '确认框', '阴影框架', '列表项', '切换状态',
    '居中窗口', '运行应用',

    # 示例函数
    '示例应用'
]

# 确保导入必要的模块
from PySide6.QtWidgets import QWidget, QHBoxLayout