Modernisez vos Applications PowerBuilder

Système de Docking

Le système de "Docking" remplace le système multi-fenêtrages classique de PowerBuilder. Il implémente une interface de navigation entre fenêtres ouvertes basé sur des onglets. Il permet également de caler les fonctions les plus utilisées sur les côtés de la fenêtre.

Autres fonctionnalités :

  • Des onglets mobiles
  • Changement dynamique des dimensions d’un « dock panel » et de la position « attaché/détaché ».
  • Evénements déclencheurs sur le document actif ou tous les documents.
  • Utilisation du MDI au lieu de l’interface avec des onglets.

docking system

Implémentation

Note : toute fenêtre ouverte en « Docking system » doit être activée en mode invisible. Pensez à décocher la propriété Visible dans l’IDE pour toutes les fenêtres ouvertes en « Docking system ». Le fonctionnement sera également meilleur si la fenêtre ouverte est de type « child ».

//Resize Event of window that contains the control
//Manually size the control in the MDI frame window
uo_PowerDock.Resize(THIS.WorkSpaceWidth() - 8,
THIS.WorkSpaceHeight() - MDI_1.MicroHelpHeight - 
uo_toolbarstrip.Height + 4)

//Move event of window that contains the control    
//Notify Docking System that the window has moved
uo_PowerDock.of_FrameMoved()

//Open Event of window that contains the control
//Set the menu that will display all open documents (and the "More Windows" window if needed)
uo_PowerDock.of_SetMenu(m_main.m_window)
   
//Open documents in the new container
uo_PowerDock.of_OpenDocument(iuo_5, "About", 'Help!')
uo_PowerDock.of_OpenDocument(iw_windowtest, "My Window", 'Window!')
     
//Activate a document
uo_PowerDock.of_ActivateDocument(iuo_5)

//Add items to the dock windows
uo_PowerDock.of_AddDockItem(uo_PowerDock.RIGHT, uo_mle1, "My Right Pane", 'ListBox!')
uo_PowerDock.of_AddDockItem(uo_PowerDock.LEFT, uo_xplistbar, "XPListBar", 'TreeView!')
uo_PowerDock.of_AddDockItem(uo_PowerDock.BOTTOM, uo_mle3, "Output", 'ListBox!')
uo_PowerDock.of_AddDockItem(uo_PowerDock.TOP, uo_mle5, "Top Pane", 'ListBox!')

//Set focus to specific dock items
uo_PowerDock.of_SetDockItemFocus(uo_xplistbar)

//Auto dock the left dock window
uo_PowerDock.of_SetDock(uo_PowerDock.LEFT, TRUE)

//Set some initial sizes
uo_PowerDock.of_SetDockSize(uo_PowerDock.LEFT, 875)
uo_PowerDock.of_SetDockSize(uo_PowerDock.RIGHT, 875)
uo_PowerDock.of_SetDockSize(uo_PowerDock.TOP, 500)
uo_PowerDock.of_SetDockSize(uo_PowerDock.BOTTOM, 500)