# VMainWindow

Esta clase nos crea un único objeto theMainWindow. Nos da acceso a las funciones de manejo de la ventana principal de la aplicación.

Está disponible en procesos javascript en primer plano, manejadores de eventos javascript y QML.

## Indice de funciones

### **Generales**

void [customizeWindowHint](#customizewindowhint)( Number nFlags )

Number [height](#height)()

void [hide](#hide)()

Boolean [isFullScreen](#isfullscreen)()

Boolean [isMaximized](#ismaximized)()

Boolean [isMinimized](#isminimized)()

Boolean [isVisible](#isvisible)()

void [move](#move)( Number x, Number y )

void [resize](#resize)( Number nWidth, Number nHeight )

void [setStyleSheet](#setstylesheet)( String szCssText )

void [setTitle](#settitle)( String szTitle )

void [show](#show)()

void [showFullScreen](#showfullscreen)()

void [showMaximized](#showmaximized)()

void [showMinimized](#showminimized)()

void [showNormal](#shownormal)()

String [styleSheet](#stylesheet)()

String [title](#title)()

Number [width](#width)()

Number [x](#x)()

Number [y](#y)()

### **De docks**

VAbstractDataView [dockDataView](#dockdataview)( String szIdPrimarioDock )

VToolbar [dockToolbar](#docktoolbar)( String szIdPrimarioDock )

void [hideDock](#hidedock)( String szIdPrimarioDock )

Boolean [isDockFloating](#isdockfloating)( String szIdPrimarioDock )

Boolean [isDockVisible](#isdockvisible)( String szIdPrimarioDock )

void [setDockFeatures](#setdockfeatures)( String szIdPrimarioDock, Number nFeatures )

void [setDockFloating](#setdockfloating)( String szIdPrimarioDock, Boolean bSet )

void [showDock](#showdock)( String szIdPrimarioDock )

### **De barra de menú (MenuBar)**

void [addActionToMenuBar](#addactiontomenubar)( String idRefAction )

void [addMenuToMenuBar](#addmenutomenubar)( String idRefMenu )

void [addSeparatorToMenuBar](#addseparatortomenubar)()

void [addStockMenuToMenuBar](#addstockmenutomenubar)( Number stockmenu )

void [clearMenuBar](#clearmenubar)()

void [hideMenuBar](#hidemenubar)()

void [insertActionToMenuBar](#insertactiontomenubar)( Number pos, String idRefAction )

void [insertMenuToMenuBar](#insertmenutomenubar)( Number pos, String idRefMenu )

void [insertSeparatorToMenuBar](#insertseparatortomenubar)( Number pos )

void [insertStockMenuToMenuBar](#insertstockmenutomenubar)( Number pos, Number stockmenu )

Boolean [isMenuBarVisible](#ismenubarvisible)()

void [showMenuBar](#showmenubar)()

### **De acciones**

void [runAction](#runaction)( String szIdRefAction )

### **De barra de estado (StatusBar)**

void [clearMessageStatusBar](#clearmessagestatusbar)()

String [currentMessageStatusBar](#currentmessagestatusbar)()

void [hideStatusBar](#hidestatusbar)()

Boolean [isSizeGripEnabledStatusBar](#issizegripenabledstatusbar)()

Boolean [isStatusBarVisible](#isstatusbarvisible)()

void [setSizeGripEnabledStatusBar](#setsizegripenabledstatusbar)( Boolean bSet )

void [showMessageStatusBar](#showmessagestatusbar)( String szMsg, Number nMiliSegsTimeout = 0 )

void [showStatusBar](#showstatusbar)()

### **De Widget**

VMdiView [addDataView](#adddataview)( Number tipoObj, String idRefObj, VRegisterList list )

VMdiView [addDataView](#vmdiview-adddataview-number-tipoobj-string-idrefobj-vregister-reg-)( Number tipoObj, String idRefObj, VRegister reg )

VMdiView [addWebView](#addwebview)( String url )

VMdiView [addWebViewInspector](#addwebviewinspector)( String url )

Number [bootMode](#bootmode)()

void [closeAllViews](#closeallviews)()

void [closeCurrentView](#closecurrentview)()

void [closeView](#closeview)( VMdiView view )

void [closeViewAt](#closeviewat)( Number index )

VMdiView [currentView](#currentview)()

VMdiView [getViewAt](#getviewat)( Number index )

void [mdiCascade](#mdicascade)()

void [mdiTile](#mditile)()

void [nextView](#nextview)()

void [prevView](#prevview)()

void [setBootMode](#setbootmode)( Number nMode )

void [setCurrentView](#setcurrentview)( VMdiView view )

Number [viewsCount](#viewscount)()

### **Varias**

void [dialogChangeUserPassword](#dialogchangeuserpassword)()

void [hideDockBackgroundProcesses](#hidedockbackgroundprocesses)()

void [showDockBackgroundProcesses](#showdockbackgroundprocesses)()

void [toggleDockBackgroundProcesses](#toggledockbackgroundprocesses)()

### **De Widgets**

Number [widgetType](#widgettype)( Widget widget )

### **De cuadro de diálogo de ficheros**

String [fileDialogGetExistingDirectory](#filedialoggetexistingdirectory)( String caption, String dir, Number optionFlags = ShowDirsOnly )

String [fileDialogGetOpenFileName](#filedialoggetopenfilename)( String caption, String dir, String filter, String selectedFilter = 0, Number optionFlags = 0 )

Array de Strings [fileDialogGetOpenFileNames](#filedialoggetopenfilenames)( String caption, String dir, String filter, String selectedFilter = 0, Number optionFlag = 0 )

String [fileDialogGetSaveFileName](#filedialoggetsavefilename)( String caption, String dir, String filter, String selectedFilter = 0, Number optionFlags = 0 )

## Señales

Inicializado

On Close

Pre inicialización

Pre-vista eliminada

Vista activada

Vista añadida

Vista eliminada

## Documentación de funciones

### Funciones generales

#### void customizeWindowHint( Number nFlags ) <a href="#customizewindowhint" id="customizewindowhint"></a>

Personaliza los botones y la barra de título de la ventana.

Parámetros:

* nFlags: ver [enum de personalización de la barra de título](vmainwindow-enumeraciones#flags-de-personalizacion-de-la-barra-de-titulo). Los valores con combinables mediante el uso del operador bitwise or booleano "|".

#### Number height() <a href="#height" id="height"></a>

Devuelve el alto en píxeles de la ventana.

#### void hide() <a href="#hide" id="hide"></a>

Oculta la ventana.

#### Boolean isFullScreen() <a href="#isfullscreen" id="isfullscreen"></a>

Devuelve true si la ventana está a pantalla completa.

#### Boolean isMaximized() <a href="#ismaximized" id="ismaximized"></a>

Devuelve true si la ventana está maximizada.

#### Boolean isMinimized() <a href="#isminimized" id="isminimized"></a>

Devuelve true si la ventana está minimizada.

#### Boolean isVisible() <a href="#isvisible" id="isvisible"></a>

Devuelve true si la ventana es visible.

#### void move( Number x, Number y ) <a href="#move" id="move"></a>

Mueve la ventana a la posición especificada.

Parámetros:

* x: posición horizontal en píxeles, contando desde la esquina superior izquierda.
* y: posición vertical en píxeles, contando desde la esquina superior izquierda.

#### void resize( Number nWidth, Number nHeight ) <a href="#resize" id="resize"></a>

Modifica el tamaño de la ventana.

Parámetros:

* nWidth: ancho de la ventana en píxeles.
* nHeight: alto de la ventana en píxeles.

#### void setStyleSheet( String szCssText ) <a href="#setstylesheet" id="setstylesheet"></a>

Cambia la hoja de estilo (CSS) que se aplicará a la ventana.

Parámetros:

* szCssText: texto con el CSS a aplicar.

#### void setTitle( String szTitle ) <a href="#settitle" id="settitle"></a>

Cambia el título de la ventana.

Parámetros:

* szTitle: texto del nuevo título de la ventana.

#### void show() <a href="#show" id="show"></a>

Muestra la ventana si está oculta.

#### void showFullScreen() <a href="#showfullscreen" id="showfullscreen"></a>

Visualiza la ventana en modo a pantalla completa.

#### void showMaximized() <a href="#showmaximized" id="showmaximized"></a>

Visualiza la ventana en modo maximizada.

#### void showMinimized() <a href="#showminimized" id="showminimized"></a>

Visualiza la ventana en modo minimizada.

#### void showNormal() <a href="#shownormal" id="shownormal"></a>

Visualiza la ventana en modo normal.

#### String styleSheet() <a href="#stylesheet" id="stylesheet"></a>

Devuelve la hoja de estilo (CSS) que se está aplicando a la ventana.

#### String title() <a href="#title" id="title"></a>

Devuelve el título de la ventana.

#### Number width() <a href="#width" id="width"></a>

Devuelve el ancho en píxeles de la ventana.

#### Number x() <a href="#x" id="x"></a>

Devuelve la posición x de la ventana, píxeles contados desde la esquina superior izquierda.

#### Number y() <a href="#y" id="y"></a>

Devuelve la posición y de la ventana, píxeels contados desde la esquina superior izquierda.

### Funciones de docks

#### VAbstractDataView dockDataView( String szIdPrimarioDock ) <a href="#dockdataview" id="dockdataview"></a>

Devuelve el objeto que está dentro del dock especificado, de una de las clases derivadas de [VAbstractDataView](vabstractdataview).

Parámetros:

* szIdPrimarioDock: identificador del dock.

#### VToolbar dockToolbar( String szIdPrimarioDock ) <a href="#docktoolbar" id="docktoolbar"></a>

Devuelve un objeto de la clase VToolbar (\*) que está dentro del dock especificado.

Parámetros:

* szIdPrimarioDock: identificador del dock.

(\*) Esta clase todavía no se encuentra disponible

#### void hideDock( String szIdPrimarioDock ) <a href="#hidedock" id="hidedock"></a>

Oculta el dock.

Parámetros:

* szIdPrimarioDock: identificador del dock.

#### Boolean isDockFloating( String szIdPrimarioDock ) <a href="#isdockfloating" id="isdockfloating"></a>

Devuelve true si el dock está flotante.

Parámetros:

* szIdPrimarioDock: identificador del dock.

#### Boolean isDockVisible( String szIdPrimarioDock ) <a href="#isdockvisible" id="isdockvisible"></a>

Devuelve true si el dock está visible.

Parámetros:

* szIdPrimarioDock: identificador del dock.

#### void setDockFeatures( String szIdPrimarioDock, Number nFeatures ) <a href="#setdockfeatures" id="setdockfeatures"></a>

Modifica las características del dock.

Parámetros:

* szIdPrimarioDock: identificador del dock.
* nFeatures: ver [enum de características del dock](vmainwindow-enumeraciones#flags-de-caracteristicas-del-dock). Los valores con combinables mediante el uso del operador bitwise or booleano "|".

#### void setDockFloating( String szIdPrimarioDock, Boolean bSet ) <a href="#setdockfloating" id="setdockfloating"></a>

Fija el dock como flotante.

Parámetros:

* szIdPrimarioDock: identificador del dock.
* bSet = true para activarlo como flotante, false para desactivarlo como flotante.

#### void showDock( String szIdPrimarioDock ) <a href="#showdock" id="showdock"></a>

Muestra el dock.

Parámetros:

* szIdPrimarioDock: identificador del dock.

### Funciones de barra de menú (MenuBar)

#### void addActionToMenuBar( String idRefAction ) <a href="#addactiontomenubar" id="addactiontomenubar"></a>

Añade una acción a la barra de menú.

Parámetros:

* idRefAction: idRef del objeto Acción.

#### void addMenuToMenuBar( String idRefMenu ) <a href="#addmenutomenubar" id="addmenutomenubar"></a>

Añade un menú a la barra de menú.

Parámetros:

* idRefMenu: idRef del objeto Menú.

#### void addSeparatorToMenuBar() <a href="#addseparatortomenubar" id="addseparatortomenubar"></a>

Añade un separador a la barra de menú.

#### void addStockMenuToMenuBar( Number stockmenu ) <a href="#addstockmenutomenubar" id="addstockmenutomenubar"></a>

Añade una opción de menú en stock a la barra de menú.

Ver [enum de menús en stock](vmainwindow-enumeraciones#menus-en-stock).

Son validos todos los menús en stock salvo StockMenuAlternativeViews y StockMenuBaskets.

Parámetros:

* stockMenu: número correspondiente a la opción de menú en stock. Ver [enum de menús en stock](vmainwindow-enumeraciones#menus-en-stock).

#### void clearMenuBar() <a href="#clearmenubar" id="clearmenubar"></a>

Limpia todos los subobjetos que contenga la barra de menús.

#### void hideMenuBar() <a href="#hidemenubar" id="hidemenubar"></a>

Oculta la barra de menú.

En macOS no se puede ocultar la barra de menús ya que la barra de menú no se crea en la aplicación sino que se integra en la propia barra de menú del sistema operativo y ésta sólo se oculta si la oculta el propio sistema, no e posible ocultarla desde la aplicación Velneo.

#### void insertActionToMenuBar( Number pos, String idRefAction ) <a href="#insertactiontomenubar" id="insertactiontomenubar"></a>

Inserta una acción en una posición específica de la barra de menú.

Parámetros:

* pos: número que indica la posición de inserción.
* idRefAction: idRef del objeto Acción.

#### void insertMenuToMenuBar( Number pos, String idRefMenu ) <a href="#insertmenutomenubar" id="insertmenutomenubar"></a>

Inserta un menú en una posición específica de la barra de menú.

Parámetros:

* pos: número que indica la posición de inserción.
* idRefMenu: idRef del objeto Menú.

#### void insertSeparatorToMenuBar( Number pos ) <a href="#insertseparatortomenubar" id="insertseparatortomenubar"></a>

Inserta un separador en una posición específica de la barra de menú.

Parámetros:

* pos: número que indica la posición de inserción.

#### void insertStockMenuToMenuBar( Number pos, Number stockmenu ) <a href="#insertstockmenutomenubar" id="insertstockmenutomenubar"></a>

Inserta una opción de menú en stock en una posición específica de la barra de menú.

Ver [enum de menús en stock](vmainwindow-enumeraciones#menus-en-stock).

Son validos todos los menús en stock salvo StockMenuAlternativeViews y StockMenuBaskets.

Parámetros:

* pos: número que indica la posición de inserción.
* stockMenu: número correspondiente a la opción de menú en stock.Ver [enum de menús en stock](vmainwindow-enumeraciones#menus-en-stock).

#### Boolean isMenuBarVisible() <a href="#ismenubarvisible" id="ismenubarvisible"></a>

Devuelve true si la barra de menú está visible. Solamente es válida para Windows y para Linux; no es válida para el resto de las plataformas por el modo en el que la gestionan.

#### void showMenuBar() <a href="#showmenubar" id="showmenubar"></a>

Muestra la barra de menú.

### Funciones de acciones

#### void runAction( String szIdRefAction ) <a href="#runaction" id="runaction"></a>

Ejecuta la acción especificada en el parámetro.

Parámetros:

* szIdRefAction: identificador de referencia (proyecto/identificador) correspondiente al objeto de tipo acción que será ejecutado.

### Funciones de barra de estado (StatusBar)

#### void clearMessageStatusBar() <a href="#clearmessagestatusbar" id="clearmessagestatusbar"></a>

Limpia el mensaje que se está mostrando en la barra de estado.

#### String currentMessageStatusBar() <a href="#currentmessagestatusbar" id="currentmessagestatusbar"></a>

Devuelve el mensaje que se está mostrando en la barra de estado.

#### void hideStatusBar() <a href="#hidestatusbar" id="hidestatusbar"></a>

Oculta la barra de estado si está visible.

#### Boolean isSizeGripEnabledStatusBar() <a href="#issizegripenabledstatusbar" id="issizegripenabledstatusbar"></a>

Devuelve true si está visible el grip de cambio de tamaño de la ventana.

#### Boolean isStatusBarVisible() <a href="#isstatusbarvisible" id="isstatusbarvisible"></a>

Devuelve true si la barra de estado está visible.

#### void setSizeGripEnabledStatusBar( Boolean bSet ) <a href="#setsizegripenabledstatusbar" id="setsizegripenabledstatusbar"></a>

Habilta o deshabilita el grip de cambio de tamaño de la ventana.

Parámetros:

* bSet: true para habilitar el grip de la cambio de tamaño, false para deshabilitar.

#### void showMessageStatusBar( String szMsg, Number nMiliSegsTimeout = 0 ) <a href="#showmessagestatusbar" id="showmessagestatusbar"></a>

Muestra un mensaje en la barra de estado.

Parámetros:

* szMsg: mensaje de texto a mostrar en la barra de estado.
* nMiliSegsTimeout: tiempo en milisegundos que estará visible, por defecto 0 = no se oculta el mensaje.

#### void showStatusBar() <a href="#showstatusbar" id="showstatusbar"></a>

Muestra la barra de estado si está oculta.

### Funciones de Widget

#### VMdiView addDataView( Number tipoObj, String idRefObj, VRegisterList list ) <a href="#adddataview" id="adddataview"></a>

Abre una nueva vista visualizando la lista de registros especificada en el tipo de objeto con el identificador de referencia especificado en los parámetros y devuelve el objeto de la vista creada.

Parámetros:

* tipoObj: tipo de objeto a crear. Ver [enum de tipos de objetos](../vobjectinfo/vobjectinfo-enumeraciones#tipos-de-objetos) en la clase [VObjectInfo](vobjectinfo).
* idRefObj: idRef (Proyecto/Identificador) del objeto a visualizar.
* list: objeto de tipo [VRegisterList](vregisterlist) que contiene la lista de registros a visualizar.

#### VMdiView addDataView( Number tipoObj, String idRefObj, VRegister reg )

Abre una nueva vista visualizando el registro especificado en el tipo de objeto con el identificador de referencia especificado en los parámetros y devuelve el objeto de la vista creada.

Parámetros:

* tipoObj: tipo de objeto a crear. Ver [enum de tipos de objetos](../vobjectinfo/vobjectinfo-enumeraciones#tipos-de-objetos) en la clase [VObjectInfo](vobjectinfo).
* idRefObj: idRef (Proyecto/Identificador) del objeto a visualizar.
* reg: objeto de tipo [VRegister](vregister) que contiene el registro a visualizar.

#### VMdiView addWebView( String url ) <a href="#addwebview" id="addwebview"></a>

Abre una nueva vista visualizando un control HTML que visualizará la URL pasada en el parámetro y devuelve el objeto de la vista creada.

Parámetros:

* url: senda de la página o fichero a visualizar.

#### VMdiView addWebViewInspector( String url ) <a href="#addwebviewinspector" id="addwebviewinspector"></a>

#### Number bootMode() <a href="#bootmode" id="bootmode"></a>

Devuelve el modo de interfaz de documento de la ventana. Ver [enum de Boot modes](vmainwindow-enumeraciones#boot-modes).

#### void closeAllViews() <a href="#closeallviews" id="closeallviews"></a>

Cierra todas las vistas.

#### void closeCurrentView() <a href="#closecurrentview" id="closecurrentview"></a>

Cierra la vista en curso.

#### void closeView( VMdiView view ) <a href="#closeview" id="closeview"></a>

Cierra la vista correspondiente al objeto pasado en el parámetro.

Parámetros:

* view: objeto con la vista a cerrar.

#### void closeViewAt( Number index ) <a href="#closeviewat" id="closeviewat"></a>

Cierra la vista correspondiente al índice indicado en el parámetro.

Parámetros:

* index: número ordinal de la vista que deseamos cerrar.

#### VMdiView currentView() <a href="#currentview" id="currentview"></a>

Devuelve el objeto [VMdiView](vmdiview) con la vista en curso.

#### VMdiView getViewAt( Number index ) <a href="#getviewat" id="getviewat"></a>

Devuelve el objeto [VMdiView](vmdiview) con la vista correspondiente al índice indicado en el parámetro.

Parámetros:

* index: número ordinal de la vista de la que se desea obtener el objeto [VMdiView](vmdiview).

#### void mdiCascade() <a href="#mdicascade" id="mdicascade"></a>

Aplica el interfaz MDI en cascada.

#### void mdiTile() <a href="#mditile" id="mditile"></a>

Aplica el interfaz MDI en mosaico.

#### void nextView() <a href="#nextview" id="nextview"></a>

Hace visible la siguiente vista a la vista en curso.

#### void prevView() <a href="#prevview" id="prevview"></a>

Hace visible la vista previa a la vista en curso.

#### void setBootMode( Number nMode ) <a href="#setbootmode" id="setbootmode"></a>

Fijar el modo de interfaz de documento de la ventana.

Parámetros:

* nMode: ver [enum de boot modes](vmainwindow-enumeraciones#boot-modes).

#### void setCurrentView( VMdiView view ) <a href="#setcurrentview" id="setcurrentview"></a>

Activa como la vista en curso la vista pasada en el parámetro.

Parámetros:

* view: objeto con la vista en curso a activar.

#### Number viewsCount() <a href="#viewscount" id="viewscount"></a>

Devuelve el número de vistas abiertas.

### Funciones varias

#### void dialogChangeUserPassword() <a href="#dialogchangeuserpassword" id="dialogchangeuserpassword"></a>

Muestra el cuadro de diálogo de cambio de contraseña del usuario.

#### void hideDockBackgroundProcesses() <a href="#hidedockbackgroundprocesses" id="hidedockbackgroundprocesses"></a>

Ocultar el dock que muestra los procesos en ejecución en segundo plano.

#### void showDockBackgroundProcesses() <a href="#showdockbackgroundprocesses" id="showdockbackgroundprocesses"></a>

Mostrar el dock que muestra los procesos en ejecución en segundo plano.

#### void toggleDockBackgroundProcesses() <a href="#toggledockbackgroundprocesses" id="toggledockbackgroundprocesses"></a>

Conmuta el dock que muestra los procesos en ejecución en segundo plano. Si está visible lo oculta o viceversa.

### Funciones de Widgets

#### Number widgetType( Widget widget ) <a href="#widgettype" id="widgettype"></a>

Devuelve el tipo de [Widget](widget) que contiene la vista. Ver [enum de widget types](vmainwindow-enumeraciones#widget-types).

### Funciones de cuadro de diálogo de ficheros

#### String fileDialogGetExistingDirectory( String caption, String dir, Number optionFlags = ShowDirsOnly ) <a href="#filedialoggetexistingdirectory" id="filedialoggetexistingdirectory"></a>

Devuelve el directorio seleccionado en el cuadro de diálogo.

Parámetros:

* caption: nombre del directorio seleccionado que queremos que aparezca escrito por defecto.
* dir: directorio por defecto que visualiza.
* optionFlags: configuración del cuadro de diálogo y del filtrado de ficheros. Ver [enum de flags de cuadro de diálogo de ficheros](vmainwindow-enumeraciones#flags-del-cuadro-de-dialogo-de-ficheros), por defecto se muestran solo directorios.

#### String fileDialogGetOpenFileName( String caption, String dir, String filter, String selectedFilter = 0, Number optionFlags = 0 ) <a href="#filedialoggetopenfilename" id="filedialoggetopenfilename"></a>

Devuelve el fichero seleccionado en el cuadro de diálogo.

Parámetros:

* caption: nombre del fichero seleccionado que queremos que aparezca escrito por defecto.
* dir: directorio por defecto que se visualiza.
* filter: filtro de ficheros o extensiones a mostrar. múltiples filtros se deben separar por ";;". Por ejemplo: "Images (\*.png \*.xpm \*.jpg);;Text files (\*.txt);;XML files (\*.xml)"
* selectedFilter: cuál de los filter aparecerá seleccionado inicialmente en el combobox.
* optionFlags: configuración del cuadro de diálogo y del filtrado de ficheros. Ver [enum de flags de cuadro de diálogo de ficheros](vmainwindow-enumeraciones#flags-del-cuadro-de-dialogo-de-ficheros).

#### Array de Strings fileDialogGetOpenFileNames( String caption, String dir, String filter, String selectedFilter = 0, Number optionFlag = 0 ) <a href="#filedialoggetopenfilenames" id="filedialoggetopenfilenames"></a>

Devuelve una lista de ficheros seleccionados en el cuadro de diálogo.

Parámetros:

* caption: nombre del fichero seleccionado que queremos que aparezca escrito por defecto.
* dir: directorio por defecto que se visualiza.
* filter: filtro de ficheros o extensiones a mostrar. múltiples filtros se deben separar por ";;". Por ejemplo: "Images (\*.png \*.xpm \*.jpg);;Text files (\*.txt);;XML files (\*.xml)"
* selectedFilter: cuál de los filter aparecerá seleccionado inicialmente en el combobox.
* optionFlags: configuración del cuadro de diálogo y del filtrado de ficheros. Ver [enum de flags de cuadro de diálogo de ficheros](vmainwindow-enumeraciones#flags-del-cuadro-de-dialogo-de-ficheros).

#### String fileDialogGetSaveFileName( String caption, String dir, String filter, String selectedFilter = 0, Number optionFlags = 0 ) <a href="#filedialoggetsavefilename" id="filedialoggetsavefilename"></a>

Devuelve el nombre del fichero a guardar especificado en el cuadro de diálogo.

Parámetros:

* caption: nombre del fichero seleccionado que queremos que aparezca escrito por defecto.
* dir: directorio por defecto que se visualiza.
* filter: filtro de ficheros o extensiones a mostrar. múltiples filtros se deben separar por ";;". Por ejemplo: "Images (\*.png \*.xpm \*.jpg);;Text files (\*.txt);;XML files (\*.xml)"
* selectedFilter: cuál de los filter aparecerá seleccionado inicialmente en el combobox.
* optionFlags: configuración del cuadro de diálogo y del filtrado de ficheros. Ver [enum de flags de cuadro de diálogo de ficheros](vmainwindow-enumeraciones#flags-del-cuadro-de-dialogo-de-ficheros).

Ejemplo:

```javascript
theMainWindow.fileDialogGetSaveFileName("Save File", "/home/jana/untitled.png", "Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)", "Images (*.png *.xpm *.jpg)")
```

## Ejemplos

### 1. Cambiar titulo de la ventana principal

```javascript
// Escribiendo el título directamente
theMainWindow.setWindowTitle( "Nuevo título" );

// Usando variables
var szTitulo = "Aplicación " + szAppName;
theMainWindow.setWindowTitle( szAppName );
```

### 2. Cambiar a modo MDI

```javascript
theMainWindow.setBootMode(1);
```

### 3. Cambiar features de un dock

```javascript
// Barra de titulo vertical + Cerrable
theMainWindow.setDockFeatures( "DOCK_MAIN", 0x09 );
```

### 4. Ver/Ocultar un dock

```javascript
// -----------------------------------------------------------
// Muestra u oculta un dock en función de si está visible o no
// -----------------------------------------------------------
if ( theMainWindow.isDockVisible( "DOCK_MAIN" ) )
{
    theMainWindow.hideDock( "DOCK_MAIN" );
}
else
{
    theMainWindow.showDock( "DOCK_MAIN" );
};
```

### 5. Apagar el boton cerrar del marco

```javascript
theMainWindow.customizeWindowHint(0x01|0x02|0x04|0x08);
```

### 6. Tener una opción de menú abierta sólo una vez en una pestaña

```javascript
// --------------------------------------------------------------------------------
// Busca una vista con el título y si la encuentra la habilita
// Si no la encuentra ejecuta la acción
//
// El proceso recibe 2 parámetros a través de las variables locales
// TITULO = Título de la pestaña
// ACCION = Acción a ejecutar
// -------------------------- 
var numVistas = theMainWindow.viewsCount();
var ejecutar = true;

for ( i = 0; i < numVistas + 1; i++ )
{
    var vista = theMainWindow.currentView()
    if ( vista.title() == theRoot.varToString( "TITULO" ) )
    {
        ejecutar = false;
    }
    else
    {
        theMainWindow.nextView();
    };
}

// Si no se ha encontrado se lanza la acción para abrir la vista y se retorna true (para seguir)
if ( ejecutar == true )
{
    theMainWindow.runAction( theRoot.varToString( "ACCION" ) );
};
```

### 7. Deshabilitar los controles de un formulario

```javascript
/**
 * --------------------------------------------------------------------------------
 * Deshabilita los controles del formulario
 *
 * @param {VFormDataView} formularioParam Formulario a procesar
 * --------------------------------------------------------------------------------
 */
var deshabilitaControles = function ( formularioParam )
{
    if ( formularioParam )
    {        
        var tiposEnabled = [ VMainWindow.WTypeDataView, VMainWindow.WTypeMdiView, 
                             VMainWindow.WTypeWebView, VMainWindow.WTypeTabWidget,
                             VMainWindow.WTypeStackedWidget, VMainWindow.WTypeToolBox,
                             VMainWindow.WTypeSplitter, VMainWindow.WTypeGroupBox ];
        var control;

        for ( var numControl = 0; numControl < formulario.controlCount(); numControl++ )
        {
            control = formulario.control( numControl );

            if ( control )
            {
                tipo = theMainWindow.widgetType( control );
                if ( tiposEnabled.indexOf( tipo ) === -1 )
                {
                    control.enabled = false;
                };
            };
        };
    };
};
```
