|
|
You should bring up the main form as soon as possible
so the user has a timely response when starting the manager.
You can then do checks and fetch data and keep the user
apprised of the startup process with status messages
while the main form is in a locked state.
Template startup procedure: UiStart
proc UiStart {} {
global appvals
# Open/connect to widget server
set vtApp [VtOpen $appvals(client)]
set appvals(vtApp) $vtApp
VtSetAppValues $vtApp \
-versionString "$appvals(title) $appvals(version)" \
-errorCallback {SaUnexpectedErrorCB {}}
if {$appvals(openhost)} {
set title \
"$appvals(title) on [SaHostExtractSystemName $appvals(managedhost)]"
} else {
set title "$appvals(title)"
}
# Create main dialog
set vtMain [VtFormDialog $vtApp.main \
-title $title \
-wmShadowThickness 0 \
-wmCloseCallback UiCloseCB]
set appvals(vtMain) $vtMain
UiWidgetSet vtMain $vtMain
UiDefaultFormSpacingSet $vtMain
SaCharmSetMaxFormDimensions $vtMain
# Build pulldown menus
set menuBar [UiBuildMenus $vtMain]
UiWidgetSet menuBar $menuBar
# Build the toolbar
if {[VtInfo -charm]} {
set topSide $menuBar
} else {
if {$appvals(toolbar)} {
set toolbar [UiBuildToolBar $vtMain $menuBar]
#VtSetValues $toolbar -topSide $menuBar
set topSide $toolbar
}
}
# Main form label (vs. title)
set mainlabel [VtLabel $vtMain.mainlabel \
-label "$appvals(title) on $appvals(managedhost)"]
UiWidgetSet mainlabel $mainlabel
# TODO: build main screen widgets here.
# Basic drawnlist is provided as a sample
# Pass main form and widget just above for attachments
set mainList [UiBuildMainList $vtMain $mainlabel]
# Build the status bar
# Standard SCOadmin status bar pixmap
set logofile {}
# Full pathname for non-SCOadmin status bar pixmap
# set logofile "?"
if {[lempty $logofile]} {
set statusBar [SaStatusBar $vtMain.statusBar 1]
} else {
set statusBar [SaStatusBar $vtMain.statusBar 1 $logofile]
}
UiWidgetSet statusBar $statusBar
# Connect main screen widget bottom to statusbar
VtSetValues $mainList -bottomSide $statusBar
# Display the main form and lock it
VtShow $vtMain
UiLock
}