import bpy

class VIEW3D_PT_CameraSwitcherPanel(bpy.types.Panel):
    bl_label = "Camera Switcher"
    bl_idname = "VIEW3D_PT_camera_switcher"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "Camera Tools"

    def draw(self, context):
        layout = self.layout
        scene = context.scene
        
        # Liste des caméras disponibles
        cameras = [obj for obj in scene.objects if obj.type == 'CAMERA']

        # Ajouter un bouton pour chaque caméra
        for i, cam in enumerate(cameras):
            layout.operator("object.activate_camera", text=f"Activer {cam.name}").camera_name = cam.name

class OBJECT_OT_ActivateCamera(bpy.types.Operator):
    bl_label = "Activer Caméra"
    bl_idname = "object.activate_camera"
    bl_description = "Active la caméra spécifiée"
    bl_options = {'REGISTER', 'UNDO'}

    camera_name: bpy.props.StringProperty()

    def execute(self, context):
        scene = context.scene
        cam = scene.objects.get(self.camera_name)
        
        if cam and cam.type == 'CAMERA':
            scene.camera = cam
            self.report({'INFO'}, f"Caméra active : {cam.name}")
        else:
            self.report({'ERROR'}, "Caméra non trouvée ou type incorrect.")
        
        return {'FINISHED'}

def register():
    bpy.utils.register_class(VIEW3D_PT_CameraSwitcherPanel)
    bpy.utils.register_class(OBJECT_OT_ActivateCamera)

def unregister():
    bpy.utils.unregister_class(VIEW3D_PT_CameraSwitcherPanel)
    bpy.utils.unregister_class(OBJECT_OT_ActivateCamera)

if __name__ == "__main__":
    register()
