# Propiedades

#### Propiedades comúnes a todos los documentos.

### obj

Solo lectura. Devolver el objeto original pyUNO.

    doc = app.active
    app.debug(type(doc))
    app.debug(type(doc.obj))

    18/08/2022 21:59:05 - DEBUG - <class 'easymacro.easycalc.LOCalc'>
    18/08/2022 21:59:05 - DEBUG - <class 'pyuno'>

### title

Título del documento.

    doc = app.active
    app.debug(doc.title)
    doc.title = 'Nuevo Titulo'
    app.debug(doc.title)

### type

Solo lectura. Devolver el tipo de documento: calc, writer, etc.

    doc = app.active
    app.debug(doc.type)

### uid

Solo lectura. Devolver el valor interno RuntimeUID del documento.

    doc = app.active
    app.debug(doc.uid)

### is_saved

Solo lectura. Si el documento ya ha sido guardado en disco.

    doc = app.active
    app.debug(doc.is_saved)

### is_modified

Solo lectura. Si el documento ha sido modificado.

    doc = app.active
    app.debug(doc.is_modified)

### is_read_only

Solo lectura. Si el documento es de solo lectura.

    doc = app.active
    app.debug(doc.is_read_only)

### path

Solo lectura. Devolver la ruta en disco del documento.

    doc = app.active
    app.debug(doc.path)

### dir

Solo lectura. Devolver solo el directorio de la ruta en disco del documento.

    doc = app.active
    app.debug(doc.dir)

### file_name

Solo lectura. Devolver el nombre con extensión de la ruta del documento.

    doc = app.active
    app.debug(doc.file_name)

### name

Solo lectura. Devolver el nombre sin extensión de la ruta del documento.

    doc = app.active
    app.debug(doc.name)

### visible

Ocultar o mostrar un documento.

    doc = app.active
    doc.visible = False
    app.msgbox(doc.visible)
    doc.visible = True

No es necesario que el documento este visible para manipularse.

### zoom

Devolver o establecer el porcentaje de zoom del documento.

    doc = app.active
    zoom = doc.zoom
    app.msgbox(zoom)
    doc.zoom = zoom * 2
    app.msgbox(doc.zoom)
    doc.zoom = zoom

### status_bar

Controlar la barra de estado, es importante siempre actualizar en otro hilo.

    @app.run_in_thread
    def controlar_barra_estado(sb, texto, limite):
        sb.start(texto, limite)
        for i in range(limite):
            sb.setValue(i)
            app.sleep(1)
        sb.end()
        return

    def main():
        doc = app.active
        controlar_barra_estado(doc.status_bar, 'Línea: ', 10)
        return

Es importante siempre devolver el control de la barra de estado a la aplicación con el método `end`.

### selection

Devolver la selección actual.

    doc = app.active
    selection = doc.selection
    app.debug(selection)

Cuidado, la selección actual pueden ser muchas cosas diferentes.