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.

Funciones

Generales

Retorno

Función

void

customizeWindowHint( Number nFlags )

Number

void

Boolean

Boolean

Boolean

Boolean

void

move( Number x, Number y )

void

resize( Number nWidth, Number nHeight )

void

setStyleSheet( String szCssText )

void

setTitle( String szTitle )

void

void

void

void

void

String

String

Number

Number

x()

Number

y()

De docks

Retorno

Función

dockDataView( String szIdPrimarioDock )

VToolbar

dockToolbar( String szIdPrimarioDock )

void

hideDock( String szIdPrimarioDock )

Boolean

isDockFloating( String szIdPrimarioDock )

Boolean

isDockVisible( String szIdPrimarioDock )

void

setDockFeatures( String szIdPrimarioDock, Number nFeatures )

void

setDockFloating( String szIdPrimarioDock, Boolean bSet )

void

showDock( String szIdPrimarioDock )

De barra de menú (MenuBar)

Retorno

Función

void

addActionToMenuBar( String idRefAction )

void

addMenuToMenuBar( String idRefMenu )

void

void

addStockMenuToMenuBar( Number stockmenu )

void

void

void

insertActionToMenuBar( Number pos, String idRefAction )

void

insertMenuToMenuBar( Number pos, String idRefMenu )

void

void

insertStockMenuToMenuBar( Number pos, Number stockmenu )

Boolean

void

De acciones

Retorno

Función

void

runAction( String szIdRefAction )

De barra de estado (StatusBar)

Retorno

Función

void

String

void

Boolean

Boolean

void

void

showMessageStatusBar( String szMsg, Number nMiliSegsTimeout = 0 )

void

De Widget

Retorno

Función

addDataView( Number tipoObj, String idRefObj, VRegisterList list )

addDataView( Number tipoObj, String idRefObj, VRegister reg )

addWebView( String url )

addWebViewInspector( String url )

Number

void

void

void

closeView( VMdiView view )

void

closeViewAt( Number index )

getViewAt( Number index )

void

void

void

void

void

setBootMode( Number nMode )

void

setCurrentView( VMdiView view )

Number

Varias

De Widgets

Retorno

Función

Number

widgetType( Widget widget )

De cuadro de diálogo de ficheros

Retorno

Función

String

fileDialogGetExistingDirectory( String caption, String dir, Number optionFlags = ShowDirsOnly )

String

fileDialogGetOpenFileName( String caption, String dir, String filter, String selectedFilter = 0, Number optionFlags = 0 )

Array de Strings

fileDialogGetOpenFileNames( String caption, String dir, String filter, String selectedFilter = 0, Number optionFlag = 0 )

String

fileDialogGetSaveFileName( String caption, String dir, String filter, String selectedFilter = 0, Number optionFlags = 0 )

Señales

Señal

Inicializado

On Close

Pre inicialización

Pre-vista eliminada

Vista activada

Vista añadida

Vista eliminada

Enumeraciones

Boot modes

  • ModeTab = 0

  • ModeMDI = 1

  • ModeSDI = 2

Flags de características del dock

  • Cerrable = 0x01

  • Movible = 0x02

  • Flotable = 0x04

  • Barra de titulo vertical = 0x08

Flags de personalización de la barra de título

  • HintTitle = 0x01 - Sin título

  • HintSystemMenu = 0x02 - Sin menú del sistema

  • HintMinimizeButton = 0x04 - Sin botón minimizar

  • HintMaximizeButton = 0x08 - Sin botón maximizar

  • HintCloseButton = 0x10 - Sin botón cerrar

Flags del cuadro de diálogo de ficheros

  • ShowDirsOnly = 0x01 - Solo directorios, por defecto se incluyen directorios y ficheros

  • DontResolveSymlinks = 0x02 - No se resuelven los enlaces simbólicos

  • DontConfirmOverwrite = 0x04 - No se confirma la sobreescritura de ficheros

  • DontUseNativeDialog = 0x10 - No usar el cuadro de diálogo nativo del sistema operativo

  • ReadOnly = 0x20 - Modo solo lectura

  • HideNameFilterDetails = 0x40 - Indica si se ocultan o no los detalles del filtro de nombre de fichero

  • DontUseSheet = 0x08 - No se permite el uso de hojas

  • DontUseCustomDirectoryIcons = 0x80 - No usar los iconos personalizados en los directorios

Menús en stock

  • StockMenuRecord = 0

  • StockMenuList = 1

  • StockMenuNavigator = 2

  • StockMenuWindow = 3

  • StockMenuView = 4

  • StockMenuPersonalize = 5

  • StockMenuPersonalizeStyle = 6

  • StockMenuPersonalizeLanguages = 7

  • StockMenuPersonalizeTools = 8

  • StockMenuAlternativeViews = 9 (No válido en MenuBar)

  • StockMenuBaskets = 10 (No válido en MenuBar)

  • StockMenuListExt = 11

  • StockMenusCount = 12

Widget Types

  • WTypeDataView = 0

  • WTypeMdiView = 1

  • WTypeWebView = 2

  • WTypeLineEdit = 3

  • WTypeTextEdit = 4

  • WTypeDateTimeEdit = 5

  • WTypeDateEdit = 6

  • WTypeTimeEdit = 7

  • WTypeNumberSpinBox = 8

  • WTypeBoundFieldEdit = 9

  • WTypePushButton = 10

  • WTypeCheckBox = 11

  • WTypeRadioButton = 12

  • WTypeTabWidget = 13

  • WTypeStackedWidget = 14

  • WTypeToolBox = 15

  • WTypeSplitter = 16

  • WTypeAbstractBrowser = 17

  • WTypeImageWidget = 18

  • WTypeImageEdit = 19

  • WTypeLineEditBrowser = 20

  • WTypeFilePathEditBrowser = 21

  • WTypeFormulaEditBrowser = 22

  • WTypeProgressBar = 23

  • WTypeSlider = 24

  • WTypeDial = 25

  • WTypeLabel = 26

  • WTypeComboBox = 27

  • WTypeListBox = 28

  • WTypeBoundFieldComboBox = 29

  • WTypeBoundFieldListBox = 30

  • WTypeGroupBox = 31

  • WTypeClockWidget = 32

  • WTypeGaugeWidget = 33

  • WTypeThermometerWidget = 34

  • WTypeThumbWheel = 35

  • WTypeTreeMenu = 36

  • WTypeSvgWidget = 37

  • WTypeSvgButton = 38

  • WTypeSvgSlideSwitch = 39

  • WTypeSvgToggleSwitch = 40

  • WTypeDataCatcherEdit = 41

  • WTypeBoundFieldEditBrowser = 42

  • WTypeDataCatcherEditBrowser = 43

  • WTypeNumberSpinBoxBrowser = 44

  • WTypeDateTimeEditBrowser = 45

  • WTypeDateEditBrowser = 46

  • WTypeTimeEditBrowser = 47

  • WTypeTreeWidget = 48

Documentación de funciones

Funciones generales

void customizeWindowHint( Number nFlags )

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. Los valores con combinables mediante el uso del operador bitwise or booleano "|".

Number height()

Devuelve el alto en píxeles de la ventana.

void hide()

Oculta la ventana.

Boolean isFullScreen()

Devuelve true si la ventana está a pantalla completa.

Boolean isMaximized()

Devuelve true si la ventana está maximizada.

Boolean isMinimized()

Devuelve true si la ventana está minimizada.

Boolean isVisible()

Devuelve true si la ventana es visible.

void move( Number x, Number y )

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 )

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 )

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 )

Cambia el título de la ventana.

Parámetros:

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

void show()

Muestra la ventana si está oculta.

void showFullScreen()

Visualiza la ventana en modo a pantalla completa.

void showMaximized()

Visualiza la ventana en modo maximizada.

void showMinimized()

Visualiza la ventana en modo minimizada.

void showNormal()

Visualiza la ventana en modo normal.

String styleSheet()

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

String title()

Devuelve el título de la ventana.

Number width()

Devuelve el ancho en píxeles de la ventana.

Number x()

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

Number y()

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

Funciones de docks

VAbstractDataView dockDataView( String szIdPrimarioDock )

Devuelve el objeto que está dentro del dock especificado, de una de las clases derivadas de VAbstractDataView.

Parámetros:

  • szIdPrimarioDock: identificador del dock.

VToolbar dockToolbar( String szIdPrimarioDock )

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 )

Oculta el dock.

Parámetros:

  • szIdPrimarioDock: identificador del dock.

Boolean isDockFloating( String szIdPrimarioDock )

Devuelve true si el dock está flotante.

Parámetros:

  • szIdPrimarioDock: identificador del dock.

Boolean isDockVisible( String szIdPrimarioDock )

Devuelve true si el dock está visible.

Parámetros:

  • szIdPrimarioDock: identificador del dock.

void setDockFeatures( String szIdPrimarioDock, Number nFeatures )

Modifica las características del dock.

Parámetros:

  • szIdPrimarioDock: identificador del dock.

  • nFeatures: ver enum de características del dock. Los valores con combinables mediante el uso del operador bitwise or booleano "|".

void setDockFloating( String szIdPrimarioDock, Boolean bSet )

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 )

Muestra el dock.

Parámetros:

  • szIdPrimarioDock: identificador del dock.

Funciones de barra de menú (MenuBar)

void addActionToMenuBar( String idRefAction )

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

Parámetros:

  • idRefAction: idRef del objeto Acción.

void addMenuToMenuBar( String idRefMenu )

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

Parámetros:

  • idRefMenu: idRef del objeto Menú.

void addSeparatorToMenuBar()

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

void addStockMenuToMenuBar( Number stockmenu )

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

Ver enum "Menús 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.

void clearMenuBar()

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

void hideMenuBar()

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 )

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 )

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 )

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 )

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

Ver enum "Menús 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.

Boolean isMenuBarVisible()

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()

Muestra la barra de menú.

Funciones de acciones

void runAction( String szIdRefAction )

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()

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

String currentMessageStatusBar()

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

void hideStatusBar()

Oculta la barra de estado si está visible.

Boolean isSizeGripEnabledStatusBar()

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

Boolean isStatusBarVisible()

Devuelve true si la barra de estado está visible.

void setSizeGripEnabledStatusBar( Boolean bSet )

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 )

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()

Muestra la barra de estado si está oculta.

Funciones de Widget

VMdiView addDataView( Number tipoObj, String idRefObj, VRegisterList list )

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 en la clase VObjectInfo.

  • idRefObj: idRef (Proyecto/Identificador) del objeto a visualizar.

  • list: objeto de tipo 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 en la clase VObjectInfo.

  • idRefObj: idRef (Proyecto/Identificador) del objeto a visualizar.

  • reg: objeto de tipo VRegister que contiene el registro a visualizar.

VMdiView addWebView( String url )

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 )

Number bootMode()

Devuelve el modo de interfaz de documento de la ventana. Ver enum de Boot modes.

void closeAllViews()

Cierra todas las vistas.

void closeCurrentView()

Cierra la vista en curso.

void closeView( VMdiView view )

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

Parámetros:

  • view: objeto con la vista a cerrar.

void closeViewAt( Number index )

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()

Devuelve el objeto VMdiView con la vista en curso.

VMdiView getViewAt( Number index )

Devuelve el objeto 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.

void mdiCascade()

Aplica el interfaz MDI en cascada.

void mdiTile()

Aplica el interfaz MDI en mosaico.

void nextView()

Hace visible la siguiente vista a la vista en curso.

void prevView()

Hace visible la vista previa a la vista en curso.

void setBootMode( Number nMode )

Fijar el modo de interfaz de documento de la ventana.

Parámetros:

  • nMode: ver enum de boot modes.

void setCurrentView( VMdiView view )

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()

Devuelve el número de vistas abiertas.

Funciones varias

void dialogChangeUserPassword()

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

void hideDockBackgroundProcesses()

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

void showDockBackgroundProcesses()

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

void toggleDockBackgroundProcesses()

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 )

Devuelve el tipo de Widget que contiene la vista. Ver enum de widget types.

Funciones de cuadro de diálogo de ficheros

String fileDialogGetExistingDirectory( String caption, String dir, Number optionFlags = ShowDirsOnly )

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, por defecto se muestran solo directorios.

String fileDialogGetOpenFileName( String caption, String dir, String filter, String selectedFilter = 0, Number optionFlags = 0 )

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.

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

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.

String fileDialogGetSaveFileName( String caption, String dir, String filter, String selectedFilter = 0, Number optionFlags = 0 )

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.

Ejemplo:

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

// 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

theMainWindow.setBootMode(1);

3. Cambiar features de un dock

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

4. Ver/Ocultar un dock

// -----------------------------------------------------------
// 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

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

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

// --------------------------------------------------------------------------------
// 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

/**
 * --------------------------------------------------------------------------------
 * 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;
                };
            };
        };
    };
};

Última actualización