Index: trunk/guitools/smbmon/rc/lang/smbmon_de.mkm
===================================================================
--- trunk/guitools/smbmon/rc/lang/smbmon_de.mkm	(revision 1035)
+++ trunk/guitools/smbmon/rc/lang/smbmon_de.mkm	(revision 1036)
@@ -13,5 +13,5 @@
 SMM0009I: Keines
 ; Main window UI
-SMM0010I: ~Speichern
+SMM0010I: ~Sichern
 SMM0011I: ~Erneuern
 SMM0012I: ~Beenden
@@ -26,5 +26,5 @@
 SMM0021I: Die Leute hinter Samba Server fr OS/2
 SMM0022I: TDB Dateien prfen
-SMM0023?: 
+SMM0023I: Passwort
 SMM0024I: Einstellungen
 SMM0025I: Erneuern alle
@@ -67,13 +67,13 @@
 SMM0059I: Die Netzwerkumgebung dieses Servers anzeigen.
 SMM0060I: Die Einstellungen fr dieses Programm verwalten.
-SMM0061?:
-SMM0062?:
-SMM0063?:
-SMM0064?:
-SMM0065?:
-SMM0066?:
-SMM0067?:
-SMM0068?:
-SMM0069?:
+SMM0061I: Den Server starten
+SMM0062I: Den Server stoppen
+SMM0063I: Den Server neu starten
+SMM0064I: Die Konfigurationsdatei smb.conf neu laden
+SMM0065I: Serverlaufzeit
+SMM0066I: bersicht ber laufende Serverprozesse
+SMM0067I: bersicht ber angemeldete Benutzer
+SMM0068I: bersicht ber geffnete Dateien
+SMM0069I: bersicht ber benutzte Freigaben
 ;Service Context Menu
 SMM0070I: Freigabe schlieáen
@@ -84,7 +84,7 @@
 SMM0075I: Freigabe "%1" wirklich schlieáen?
 SMM0076I: Freigabe "%1" geschlossen.
-SMM0077?:
-SMM0078?:
-SMM0079?:
+SMM0077I: Datei- und Drucker-Serverdienst
+SMM0078I: NETBIOS-Namen-Serverdienst
+SMM0079I: Name Service Switch Dienst
 ; Users context menu
 SMM0080I: Mitteilung senden
@@ -140,5 +140,5 @@
 SMM0129?:
 ; User container columns
-SMM0130I: PID
+SMM0130I: Prozess ID
 SMM0131I: Benutzer
 SMM0132I: Gruppe
Index: trunk/guitools/smbmon/rc/lang/smbmon_en.mkm
===================================================================
--- trunk/guitools/smbmon/rc/lang/smbmon_en.mkm	(revision 1035)
+++ trunk/guitools/smbmon/rc/lang/smbmon_en.mkm	(revision 1036)
@@ -26,5 +26,5 @@
 SMM0021I: Samba Server for OS/2 is brought to you by
 SMM0022I: Check TDB files
-SMM0023I: 
+SMM0023I: Password
 SMM0024I: Settings
 SMM0025I: Refresh every
@@ -67,13 +67,13 @@
 SMM0059I: Show LAN ressources (has to be refreshed manually as it takes some time to complete.)
 SMM0060I: Configurable settings for this program.
-SMM0061?:
-SMM0062?:
-SMM0063?:
-SMM0064?:
-SMM0065?:
-SMM0066?:
-SMM0067?:
-SMM0068?:
-SMM0069?:
+SMM0061I: Start the server
+SMM0062I: Stop the server
+SMM0063I: Restart the server
+SMM0064I: Reload the configurations file smb.conf
+SMM0065I: Server uptime
+SMM0066I: Overview of running server processes
+SMM0067I: Overview of connected users
+SMM0068I: Overview of opened files
+SMM0069I: Overview of used shares
 ;Service Context menu
 SMM0070I: Close share
@@ -84,7 +84,7 @@
 SMM0075I: Really close share "%1"?
 SMM0076I: Closed share "%1".
-SMM0077?:
-SMM0078?:
-SMM0079?:
+SMM0077I: File and printer server
+SMM0078I: NETBIOS name sserver
+SMM0079I: Name Service Switch daemon
 ; User Context menu
 SMM0080I: Send message
Index: trunk/guitools/smbmon/rc/lang/smbmon_es.mkm
===================================================================
--- trunk/guitools/smbmon/rc/lang/smbmon_es.mkm	(revision 1035)
+++ trunk/guitools/smbmon/rc/lang/smbmon_es.mkm	(revision 1036)
@@ -26,5 +26,5 @@
 SMM0021I: Servidor Samba para OS/2 proporcionado por
 SMM0022I: Comprobar los archivos TDB
-SMM0023I: 
+SMM0023I: Contrase€a
 SMM0024I: Preferencias
 SMM0025I: Actualizar cada
@@ -67,13 +67,13 @@
 SMM0059I: Mostrar los recursos de la LAN (debe de ser actualizado manualmente y requiere algo de tiempo para completarse.)
 SMM0060I: Preferencias configurables en este programa.
-SMM0061?:
-SMM0062?:
-SMM0063?:
-SMM0064?:
-SMM0065?:
-SMM0066?:
-SMM0067?:
-SMM0068?:
-SMM0069?:
+SMM0061I: Iniciar el servidor
+SMM0062I: Detener el servidor
+SMM0063I: Reiniciar el servidor
+SMM0064I: Cargar smb.conf de nuevo
+SMM0065I: Tiempo de actividad del servidor
+SMM0066I: Visi¢n general de los procesos del servidor en ejecuci¢n
+SMM0067I: Visi¢n general de los usuarios registrados
+SMM0068I: Descripci¢n general de los archivos abiertos
+SMM0069I: Visi¢n general de los lanzamientos usados
 ;Service Context menu
 SMM0070I: Cerrar recurso compartido
@@ -84,7 +84,7 @@
 SMM0075I: šCerrar realmente el recurso compartido "%1"?
 SMM0076I: Recurso compartido "%1" cerrado.
-SMM0077?:
-SMM0078?:
-SMM0079?:
+SMM0077I: File and printer server
+SMM0078I: NETBIOS name sserver
+SMM0079I: Name Service Switch daemon
 ; User Context menu
 SMM0080I: Enviar mensaje
Index: trunk/guitools/smbmon/rc/lang/smbmon_fr.mkm
===================================================================
--- trunk/guitools/smbmon/rc/lang/smbmon_fr.mkm	(revision 1035)
+++ trunk/guitools/smbmon/rc/lang/smbmon_fr.mkm	(revision 1036)
@@ -28,5 +28,5 @@
 SMM0021I: Serveur Samba pour OS/2 vous est propos par
 SMM0022I: Vrifier fichiers TDB
-SMM0023I: 
+SMM0023I: Mot de passe
 SMM0024I: Paramtres
 SMM0025I: Actualiser toutes les
@@ -69,13 +69,13 @@
 SMM0059I: Affichage des ressources LAN (doit tre actualis manuellement tant donn le temps de traitement !)
 SMM0060I: Paramtres configurables de ce programme.
-SMM0061?:
-SMM0062?:
-SMM0063?:
-SMM0064?:
-SMM0065?:
-SMM0066?:
-SMM0067?:
-SMM0068?:
-SMM0069?:
+SMM0061I: Dmarrez le serveur
+SMM0062I: Arrtez le serveur
+SMM0063I: Redmarrez le serveur
+SMM0064I: Recharger le fichier de configuration smb.conf
+SMM0065I: Temps de disponibilit du serveur
+SMM0066I: Vue d'ensemble des processus du serveur en cours
+SMM0067I: Vue d'ensemble des utilisateurs connects
+SMM0068I: Vue d'ensemble des fichiers ouverts
+SMM0069I: Aperu des versions utilises
 ;Service Context menu
 SMM0070I: Fermeture de partage
@@ -86,7 +86,7 @@
 SMM0075I: Voulez-vous rellement fermer le partage "%1" ?
 SMM0076I: Partage "%1" ferm.
-SMM0077?:
-SMM0078?:
-SMM0079?:
+SMM0077I: File and printer server
+SMM0078I: NETBIOS name sserver
+SMM0079I: Name Service Switch daemon
 ; User Context menu
 SMM0080I: Message envoy
Index: trunk/guitools/smbmon/rc/lang/smbmon_sv.mkm
===================================================================
--- trunk/guitools/smbmon/rc/lang/smbmon_sv.mkm	(revision 1035)
+++ trunk/guitools/smbmon/rc/lang/smbmon_sv.mkm	(revision 1036)
@@ -26,5 +26,5 @@
 SMM0021I: Samba Server fr OS/2 kommer fran
 SMM0022I: Kontrollera TDB filer
-SMM0023?: 
+SMM0023I: Lsenord 
 SMM0024I: Instllningar
 SMM0025I: Uppdatera var
@@ -67,13 +67,13 @@
 SMM0059I: Visa ntverksresurser (uppdatera manuellt, kan ta tid att genomfra!).
 SMM0060I: Hantera instllningar fr detta program.
-SMM0061?:
-SMM0062?:
-SMM0063?:
-SMM0064?:
-SMM0065?:
-SMM0066?:
-SMM0067?:
-SMM0068?:
-SMM0069?:
+SMM0061I: Starta servern
+SMM0062I: Stoppa servern
+SMM0063I: Starta om servern
+SMM0064I: Ladda om konfigurationer fil smb.conf
+SMM0065I: Server upptid
+SMM0066I: versikt ver kra serverprocesser
+SMM0067I: versikt ver inloggade anvndare
+SMM0068I: versikt ver ppna filer
+SMM0069I: versikt ver anvnda utgvor
 ;Service Context Menu
 SMM0070I: Stng av utdelning
@@ -84,7 +84,7 @@
 SMM0075I: Vill du verkligen stnga av utdelningen "%1"?
 SMM0076I: Utdelningen "%1" avstngd.
-SMM0077?:
-SMM0078?:
-SMM0079?:
+SMM0077I: File and printer server
+SMM0078I: NETBIOS name sserver
+SMM0079I: Name Service Switch daemon
 ; Users context menu
 SMM0080I: Skicka meddelande
Index: trunk/guitools/smbmon/smbmon.rc
===================================================================
--- trunk/guitools/smbmon/smbmon.rc	(revision 1035)
+++ trunk/guitools/smbmon/smbmon.rc	(revision 1036)
@@ -30,14 +30,27 @@
 icon 93 .\rc\icons\inf.ico
 icon 94 .\rc\icons\txt.ico
-BITMAP 111 ..\shared\rc\throbber\frame_01.bmp 
-BITMAP 112 ..\shared\rc\throbber\frame_02.bmp 
-BITMAP 113 ..\shared\rc\throbber\frame_03.bmp 
-BITMAP 114 ..\shared\rc\throbber\frame_04.bmp 
-BITMAP 115 ..\shared\rc\throbber\frame_05.bmp 
-BITMAP 116 ..\shared\rc\throbber\frame_06.bmp 
-BITMAP 117 ..\shared\rc\throbber\frame_07.bmp 
-BITMAP 118 ..\shared\rc\throbber\frame_08.bmp 
-BITMAP 119 ..\shared\rc\throbber\frame_09.bmp 
-BITMAP 120 ..\shared\rc\throbber\frame_10.bmp 
-BITMAP 121 ..\shared\rc\throbber\frame_11.bmp 
-BITMAP 122 ..\shared\rc\throbber\frame_12.bmp 
+icon 95 .\rc\icons\font.ico
+icon 96 .\rc\icons\ini.ico
+BITMAP 111 .\rc\icons\frame_01.bmp 
+BITMAP 112 .\rc\icons\frame_02.bmp 
+BITMAP 113 .\rc\icons\frame_03.bmp 
+BITMAP 114 .\rc\icons\frame_04.bmp 
+BITMAP 115 .\rc\icons\frame_05.bmp 
+BITMAP 116 .\rc\icons\frame_06.bmp 
+BITMAP 117 .\rc\icons\frame_07.bmp 
+BITMAP 118 .\rc\icons\frame_08.bmp 
+BITMAP 119 .\rc\icons\frame_09.bmp 
+BITMAP 120 .\rc\icons\frame_10.bmp 
+BITMAP 121 .\rc\icons\frame_11.bmp 
+BITMAP 122 .\rc\icons\frame_12.bmp 
+bitmap 150 .\rc\icons\exit.bmp
+bitmap 151 .\rc\icons\refresh.bmp
+bitmap 152 .\rc\icons\save_all.bmp
+bitmap 153 .\rc\icons\info.bmp
+bitmap 154 .\rc\icons\start.bmp
+bitmap 155 .\rc\icons\stop.bmp
+bitmap 156 .\rc\icons\restart.bmp
+bitmap 157 .\rc\icons\reload.bmp
+bitmap 158 .\rc\icons\button_accept.bmp
+bitmap 159 .\rc\icons\button_cancel.bmp
+
Index: trunk/guitools/smbmon/smbmon.vrp
===================================================================
--- trunk/guitools/smbmon/smbmon.vrp	(revision 1035)
+++ trunk/guitools/smbmon/smbmon.vrp	(revision 1036)
@@ -8,8 +8,9 @@
 VRXWindow: __VREMainWindow,1,2168,3614,1024,6769
 VRXWindow: __VRESectionListWindow,1,3963,14213,10130,5059
-VRXWindow: __VREToolsWindow,1,2879,1975,6989,1659
+VRXWindow: __VREToolsWindow,1,1747,1108,6483,1663
 VRXWindow: __VREWindListWindow,1,952,11708,5372,3150
 UserFile: 1
 UserWindow: Main,1
-UserWindow: SW_SETTINGS,1
+UserWindow: SW_USERS,1
+UserWindow: SW_SERVICE,1
 UserWindow: SW_LOGIN,1
Index: trunk/guitools/smbmon/smbmon.vrx
===================================================================
--- trunk/guitools/smbmon/smbmon.vrx	(revision 1035)
+++ trunk/guitools/smbmon/smbmon.vrx	(revision 1036)
@@ -116,4 +116,5 @@
 */
 return
+
 /*:VRX         _ChkTDB
 */
@@ -283,11 +284,11 @@
     DPidsFH    = VRMethod( "CN_Daemons", "AddField", "String", NLVGetMessage(130) )
 
-    smbdHandle = VRMethod("CN_Daemons", "Addrecord",, ,"smbd.exe","$41")
-    nmbdHandle = VRMethod("CN_Daemons", "Addrecord", ,,"nmbd.exe","$41")
-    winbHandle = VRMethod("CN_Daemons", "Addrecord",, ,"winbindd.exe","$41")
-
-    ok = VRMethod("CN_Daemons", "SetFieldData", smbdHandle, DaemonFH, "smbd.exe")
-    ok = VRMethod("CN_Daemons", "SetFieldData", nmbdHandle, DaemonFH, "nmbd.exe")
-    ok = VRMethod("CN_Daemons", "SetFieldData", winbHandle, DaemonFH, "winbindd.exe")
+    smbdHandle = VRMethod("CN_Daemons", "Addrecord",, ,NLVGetMessage(77),"$41") /* smbd.exe */
+    nmbdHandle = VRMethod("CN_Daemons", "Addrecord", ,,NLVGetMessage(78),"$41") /* nmbd.exe */
+    winbHandle = VRMethod("CN_Daemons", "Addrecord",, ,NLVGetMessage(79),"$41") /* winbindd.exe */
+
+    ok = VRMethod("CN_Daemons", "SetFieldData", smbdHandle, DaemonFH, NLVGetMessage(77)) /* smbd.exe */
+    ok = VRMethod("CN_Daemons", "SetFieldData", nmbdHandle, DaemonFH, NLVGetMessage(78)) /* nmbd.exe */
+    ok = VRMethod("CN_Daemons", "SetFieldData", winbHandle, DaemonFH, NLVGetMessage(79)) /* winbindd.exe */
     ok = (stream(samba.!bin'\winbindd.exe','c','query exists') <> "")
     ok = VRMethod("CN_Daemons", "SetRecordAttr", winbHandle, "Visible", ok)
@@ -338,13 +339,15 @@
 */
 _ContextMenuSelectedSet: 
-    ok = VRSet("ContextMenu_Tree_Tree",        "Visible", 0)
-    ok = VRSet("ContextMenu_Tree_Details",     "Visible", 0)
-    ok = VRSet("ContextMenu_Tree_Icons",       "Visible", 0)
-    ok = VRSet("ContextMenu_Tree_Sort",        "Visible", 0)
-    ok = VRSet("ContextMenu_Tree_MiniIcons",   "Visible", 0)
     ok = VRSet("ContextMenu_Tree_Login",       "Visible", 0)
     ok = VRSet("ContextMenu_Tree_ACLS",        "Visible", 0)
     ok = VRSet("ContextMenu_Tree_SendMsg",     "Visible", 0)
-say SMBObj.udatatype
+    ok = VRSet("ContextMenu_Tree_Logoff",      "Visible", 0)
+    ok = VRSet("ContextMenu_Tree_Sep1",        "Visible", 0)
+    ok = VRSet("ContextMenu_Tree_MiniIcons",   "Visible", 0)
+    ok = VRSet("ContextMenu_Tree_Tree",        "Visible", 1)
+    ok = VRSet("ContextMenu_Tree_Details",     "Visible", 1)
+    ok = VRSet("ContextMenu_Tree_Icons",       "Visible", 1)
+    ok = VRSet("ContextMenu_Tree_Sort",        "Visible", 0) /* FIXME: Crashes */
+    say '  SMBObj.udatatype = "'SMBObj.udatatype'"'
     select
         when SMBObj.udatatype = "WORKGROUP" then do
@@ -354,6 +357,11 @@
             ok = VRSet("ContextMenu_Tree_Login",       "Visible", 1)
             ok = VRSet("ContextMenu_Tree_SendMsg",     "Visible", 1)
+            ok = VRSet("ContextMenu_Tree_Logoff",      "Visible", 1)
+            ok = VRSet("ContextMenu_Tree_Sep1",        "Visible", 1)
+            ok = VRSet("ContextMenu_Tree_MiniIcons",   "Visible", 1)
         end
         when SMBObj.udatatype = "DISK" then do
+            ok = VRSet("ContextMenu_Tree_ACLS",        "Visible", 1)
+            ok = VRSet("ContextMenu_Tree_Sep1",        "Visible", 1)
             ok = VRSet("ContextMenu_Tree_MiniIcons",   "Visible", 1)
         end
@@ -362,8 +370,10 @@
         end
         when SMBObj.udatatype = "DIRECTORY" then do
-            ok = VRSet("ContextMenu_Tree_ACLS",             "Visible", 1)
+            ok = VRSet("ContextMenu_Tree_ACLS",        "Visible", 1)
+            ok = VRSet("ContextMenu_Tree_Sep1",        "Visible", 1)
         end
         when SMBObj.udatatype = "FILE" then do
-            ok = VRSet("ContextMenu_Tree_ACLS",             "Visible", 1)
+            ok = VRSet("ContextMenu_Tree_ACLS",        "Visible", 1)
+            ok = VRSet("ContextMenu_Tree_Sep1",        "Visible", 1)
         end
         otherwise do /* No other value known - default */
@@ -517,7 +527,7 @@
     ok = VRSet("TM_Refresh","Delay", Intervall * 1000)
     
-    ok = VRSet("PB_START",  "Enabled", VRFileExists(samba.!smbcmd))
-    ok = VRSet("PB_Restart","Enabled", VRFileExists(samba.!smbcmd))
-    ok = VRSet("PB_Reload", "Enabled", VRFileExists(samba.!smbcmd))
+    ok = VRSet("ICB_START",  "Enabled", VRFileExists(samba.!smbcmd))
+    ok = VRSet("ICB_REstart","Enabled", VRFileExists(samba.!smbcmd))
+    ok = VRSet("ICB_REload", "Enabled", VRFileExists(samba.!smbcmd))
 
     ok = VRSet("CN_Daemons",      "View", DaemonView)
@@ -625,5 +635,5 @@
 
     DaemonView = VRGetIni( "Settings", "DaemonView", OurINI,'NoClose')
-    if DaemonView = "" then DaemonView = "Detail"
+    if DaemonView = "" then DaemonView = "IconTree"
 
     TreeView = VRGetIni( "Settings", "TreeView", OurINI,'NoClose')
@@ -653,5 +663,5 @@
 
     advanced.!bigicons = VRGetIni( "Settings", "BigIcons", OurINI)
-    if advanced.!bigicons = "" then advanced.!bigicons = 0
+    if advanced.!bigicons = "" then advanced.!bigicons = 1
 
     advanced.!smbconfchanged = 0
@@ -775,39 +785,34 @@
     ok = VRSet("Main","helpFile", settings.!helpfile)
 
-
-
-    CALL NLVSetText 'PB_Refresh',  'Caption', 11
-    CALL NLVSetText 'PB_Apply',    'Caption', 10
-    CALL NLVSetText 'PB_Cancel',   'Caption', 12
-    CALL NLVSetText 'PB_Help',     'Caption', 13
-    CALL NLVSetText 'PB_About',    'Caption', 14
-
-    CALL NLVSetText 'PB_Refresh',  'Hinttext', 51
-    CALL NLVSetText 'PB_Cancel',   'Hinttext', 54
-    CALL NLVSetText 'PB_Help',     'Hinttext', 52
-    CALL NLVSetText 'PB_About',    'Hinttext', 53
-
-/*  CALL NLVSetText 'TAB_1',       'Userdata', 15
-    CALL NLVSetText 'TAB_2',       'Userdata', 16
-    CALL NLVSetText 'TAB_3',       'Userdata', 17
-    CALL NLVSetText 'TAB_4',       'Userdata', 18
-    CALL NLVSetText 'TAB_5',       'Userdata', 19
-    CALL NLVSetText 'TAB_6',       'Userdata', 24
-
-    CALL NLVSetText 'TAB_1',       'Hinttext', 55
-    CALL NLVSetText 'TAB_2',       'Hinttext', 56
-    CALL NLVSetText 'TAB_3',       'Hinttext', 57
-    CALL NLVSetText 'TAB_4',       'Hinttext', 58
-    CALL NLVSetText 'TAB_5',       'Hinttext', 59
-    CALL NLVSetText 'TAB_6',       'Hinttext', 60 */
-
-/*  CALL NLVSetText 'Page_1',      'Hinttext', 55
-    CALL NLVSetText 'Page_2',      'Hinttext', 56
-    CALL NLVSetText 'Page_3',      'Hinttext', 57
-    CALL NLVSetText 'Page_4',      'Hinttext', 58
-    CALL NLVSetText 'Page_5',      'Hinttext', 59
-    CALL NLVSetText 'Page_6',      'Hinttext', 60  */
-
-
+    /* Setup the tabbed dialogue */
+    w = VRLoad( "TDL_1", VRWindowPath(), "SW_DAEMONS" )
+    ok = VRMethod( "TDL_1", "InsertPage", w,"+ "NLVGetMessage(18)" ") 
+    w = VRLoad( "TDL_1", VRWindowPath(), "SW_SMBTREE" )
+    ok = VRMethod( "TDL_1", "InsertPage", w,"+ "NLVGetMessage(19)" ") 
+    w = VRLoad( "TDL_1", VRWindowPath(), "SW_USERS" )
+    ok = VRMethod( "TDL_1", "InsertPage", w,"+ "NLVGetMessage(15)" ") 
+    w = VRLoad( "TDL_1", VRWindowPath(), "SW_FILES" )
+    ok = VRMethod( "TDL_1", "InsertPage", w,"+ "NLVGetMessage(16)" ") 
+    w = VRLoad( "TDL_1", VRWindowPath(), "SW_SERVICE" )
+    ok = VRMethod( "TDL_1", "InsertPage", w,"+ "NLVGetMessage(17)" ") 
+    w = VRLoad( "TDL_1", VRWindowPath(), "SW_CHKTDB" )
+    ok = VRMethod( "TDL_1", "InsertPage", w,"+ "NLVGetMessage(22)" ") 
+    w = VRLoad( "TDL_1", VRWindowPath(), "SW_SETTINGS" )
+    ok = VRMethod( "TDL_1", "InsertPage", w,"+ "NLVGetMessage(24)" ") 
+
+    CALL NLVSetText 'ICB_Refresh',  'Caption', 11
+    CALL NLVSetText 'ICB_Apply',    'Caption', 10
+    CALL NLVSetText 'ICB_About',    'Caption', 14
+    CALL NLVSetText 'ICB_EXIT',     'Caption', 12
+
+    CALL NLVSetText 'ICB_Refresh',  'Hinttext', 51
+/*  CALL NLVSetText 'ICB_APPLY',    'Hinttext', FIXME */
+    CALL NLVSetText 'ICB_ABOUT',    'Hinttext', 53
+    CALL NLVSetText 'ICB_EXIT',     'Hinttext', 54
+
+    CALL VRMethod 'TT_Main', 'Register', 'ICB_REFRESH', NLVGetMessage(51)
+    CALL VRMethod 'TT_Main', 'Register', 'ICB_APPLY',   NLVGetMessage(52) /* FIXME */
+    CALL VRMethod 'TT_Main', 'Register', 'ICB_ABOUT',   NLVGetMessage(53)
+    CALL VRMethod 'TT_Main', 'Register', 'ICB_EXIT',    NLVGetMessage(54)
 return
 
@@ -1057,5 +1062,5 @@
                 end
             end
-            smbdpidhandle.I = VRMethod( "CN_Daemons", "AddRecord", smbdhandle, , 'PID 'word(smbdpids,I)' ('d2x(word(smbdpids,I))'x)', "$48")
+            smbdpidhandle.I = VRMethod( "CN_Daemons", "AddRecord", smbdhandle, , NLVGetMessage(130)' 'word(smbdpids,I)' ('d2x(word(smbdpids,I))'x)', "$48")
             /* we ping all smbd.exe except the first one */
             if DetectZombies = 1 & I > 1 then do
@@ -1098,5 +1103,5 @@
         nmbdpidhandle.0 = words(nmbdpids)
         do I = 1 to words(nmbdpids)
-            nmbdpidhandle.I = VRMethod( "CN_Daemons", "AddRecord", nmbdhandle, , 'PID 'word(nmbdpids,I)' ('d2x(word(nmbdpids,I))'x)', "$48")
+            nmbdpidhandle.I = VRMethod( "CN_Daemons", "AddRecord", nmbdhandle, , NLVGetMessage(130)' 'word(nmbdpids,I)' ('d2x(word(nmbdpids,I))'x)', "$48")
         end
     end
@@ -1111,5 +1116,5 @@
         winbpidhandle.0 = words(winbpids)
         do I = 1 to words(winbpids)
-            winbpidhandle.I = VRMethod( "CN_Daemons", "AddRecord", winbhandle, , 'PID 'word(winbpids,I)' ('d2x(word(winbpids,I))'x)', "$48")
+            winbpidhandle.I = VRMethod( "CN_Daemons", "AddRecord", winbhandle, , NLVGetMessage(130)' 'word(winbpids,I)' ('d2x(word(winbpids,I))'x)', "$48")
         end
     end
@@ -1120,14 +1125,14 @@
 
     if \(smbdrunning|nmbdrunning|winbrunning) then do
-        ok = VRSet("PB_START",  "Enabled", 1)
-        ok = VRSet("PB_STOP",   "Enabled", 0)
-        ok = VRSet("PB_ReStart","Enabled", 0)
-        ok = VRSet("PB_ReLoad", "Enabled", 0)
+        ok = VRSet("ICB_START",  "Enabled", 1)
+        ok = VRSet("ICB_STOP",   "Enabled", 0)
+        ok = VRSet("ICB_REStart","Enabled", 0)
+        ok = VRSet("ICB_RELoad", "Enabled", 0)
     end
     else do
-        ok = VRSet("PB_START",  "Enabled", 0)
-        ok = VRSet("PB_STOP",   "Enabled", 1)
-        ok = VRSet("PB_ReStart","Enabled", 1)
-        ok = VRSet("PB_ReLoad", "Enabled", 1)
+        ok = VRSet("ICB_START",  "Enabled", 0)
+        ok = VRSet("ICB_STOP",   "Enabled", 1)
+        ok = VRSet("ICB_REStart","Enabled", 1)
+        ok = VRSet("ICB_RELoad", "Enabled", 1)
     end
 
@@ -1313,10 +1318,10 @@
     if uS <> 0 | UpTimeStr = ' 'NlvGetMessage(43)':' then UpTimeStr = UpTimeStr' 'uS' 'NlvGetMessage(49)
 
-    loggingfreespace = word(sysdriveinfo(left(samba.!log,2)),2)%1024%1024
-
-    ok = VRset("CN_Daemons", "Caption", UpTimeStr' 'loggingfreespace' MB')
+    loggingfreespace = word(sysdriveinfo(left(samba.!logdir,2)),2)%1024%1024
+    ok = VRSet("DT_FREESPACE", "Caption", loggingfreespace' MB')
+    ok = VRset("CN_Daemons", "Caption", UpTimeStr)
 
     select
-        when loggingfreespace <  50 then ok = VRDeleteFile(samba.!log'\log.*')
+        when loggingfreespace <  50 then ok = VRDeleteFile(samba.!logdir'\log.*')
         when loggingfreespace < 100 then ok = VRset("CN_Daemons","BackColor","Red")
         when loggingfreespace < 200 then ok = VRset("CN_Daemons","BackColor","Yellow")
@@ -1366,33 +1371,4 @@
     address cmd samba.!testparmexe' -v -s -d='log_level' 1>'samba.!shadowsmbconf' 2>'TempDir'testparm.stderr'
     if options.!debug == 1 then say time()' _SmbConfCreateShadowCopy done'
-return
-
-/*:VRX         _TabbedDialogSetup
-*/
-_TabbedDialogSetup: 
-    IF options.!debug == 1 THEN SAY time()' _TabbedDialogSetup started'
-    w = VRLoad( "TDL_1", VRWindowPath(), "SW_DAEMONS" )
-    ok = VRMethod( "TDL_1", "InsertPage", w,"+ "NLVGetMessage(18)" ") 
-
-    w = VRLoad( "TDL_1", VRWindowPath(), "SW_SMBTREE" )
-    ok = VRMethod( "TDL_1", "InsertPage", w,"+ "NLVGetMessage(19)" ") 
-
-    w = VRLoad( "TDL_1", VRWindowPath(), "SW_USERS" )
-    ok = VRMethod( "TDL_1", "InsertPage", w,"+ "NLVGetMessage(15)" ") 
-
-    w = VRLoad( "TDL_1", VRWindowPath(), "SW_FILES" )
-    ok = VRMethod( "TDL_1", "InsertPage", w,"+ "NLVGetMessage(16)" ") 
-
-    w = VRLoad( "TDL_1", VRWindowPath(), "SW_SERVICE" )
-    ok = VRMethod( "TDL_1", "InsertPage", w,"+ "NLVGetMessage(17)" ") 
-
-    w = VRLoad( "TDL_1", VRWindowPath(), "SW_CHKTDB" )
-    ok = VRMethod( "TDL_1", "InsertPage", w,"+ "NLVGetMessage(22)" ") 
-
-    w = VRLoad( "TDL_1", VRWindowPath(), "SW_SETTINGS" )
-    ok = VRMethod( "TDL_1", "InsertPage", w,"+ "NLVGetMessage(24)" ") 
-
-
-    IF options.!debug == 1 THEN SAY time()' _TabbedDialogSetup done'
 return
 
@@ -1642,10 +1618,10 @@
             call _GetSmbObjectProperties RH
             call _ContextMenuSelectedSet
-
-            BrowsePath = _browsebuildpath(SMBObj.rh)
+            if SMBobj.udatatype <> "WORKGROUP" then do
+                BrowsePath = _browsebuildpath(SMBObj.rh)
+                parse var browsepath '\\'machine'\'sharename '\' browsepath
+            end
 
             /* call _BrowseResetObject(SmbObj.rh) */
-
-            parse var browsepath '\\'machine'\'sharename '\' browsepath
 
             CurMachine = SMBObj.Resname
@@ -1653,4 +1629,6 @@
         end
         else do
+            say "nix '"RH"'"
+            drop SMBObj. /* it is invalid */
             call _ContextMenuSelectedSet
         end
@@ -1695,11 +1673,14 @@
             say "  Not connected - trying to connect"
             ok = VRMethod( "CN_SMBTREE", "SetRecordAttr", sharerh, "Selected", 1)
-            call PB_SMBTREE_CONNECT_Click
-            ok = VRMethod( "CN_SMBTREE", "SetRecordAttr", SMBObj.rh, "Selected", 1)
-
-            OpenOk = _browseobjectopen(machine,sharename,browsepath)
-
+            OpenOk = 0
+            if VRIsValidObject("PB_SMBTREE_CONNECT") then do
+                call PB_SMBTREE_CONNECT_Click
+                ok = VRMethod( "CN_SMBTREE", "SetRecordAttr", SMBObj.rh, "Selected", 1)
+                OpenOk = _browseobjectopen(machine,sharename,browsepath)
+            end
             if \OpenOk then do
-                say "  Not connected - cannot open - aborting!"
+                Msg.Text = "Not connected - cannot open - aborting!"
+                Msg.Type = "E"
+                call _ShowMsg
             end
         end
@@ -1974,4 +1955,10 @@
 return
 
+/*:VRX         ContextMenu_Tree_LOGOFF_Click
+*/
+ContextMenu_Tree_LOGOFF_Click: 
+    UserCred = '-N'
+return
+
 /*:VRX         ContextMenu_Tree_MiniIcons_Click
 */
@@ -2056,4 +2043,194 @@
 return
 
+/*:VRX         ICB_ABOUT_Click
+*/
+ICB_ABOUT_Click: 
+    window = VRLoadSecondary( "About", "W" )
+return
+
+/*:VRX         ICB_APPLY_Click
+*/
+ICB_APPLY_Click: 
+    IF options.!debug == 1 then say time()' PB_Apply_Click() started' 
+    options.!Debug = VRGet("CB_Debug","set")
+    if options.!Debug then ok = VRREdirectStdIO("ON")
+                      else ok = VRREdirectStdIO("OFF")
+    Intervall = VRGet("SPIN_Intervall","Value")
+    ok = VRSet("TM_Refresh","Delay", Intervall * 1000)
+    IntervallMin = VRGet("SPIN_IntervallMin","Value")
+
+    NoMsgBox = VRGet("CB_NoMsgBox","set")
+    say 'NoMsgBox = "'NoMsgBox'"'
+
+    WPSStartStop = VRGet("CB_WPSStartStop","set")
+    say 'WPSStartStop = "'WPSStartStop'"'
+
+    DetectZombies = VRGet("CB_DetectZombies","set")
+    say 'DetectZombies = "'DetectZombies'"'
+
+    options.!storecreds = VRGet("CB_STORECREDS","Set")
+    say "options.!storecreds = "options.!storecreds
+
+    if advanced.!smbconfchanged = 1 then do
+        log_level    = VRGet("SPIN_log_level","Value")
+        log_file     = VRGet("EF_log_file","Value")
+        max_protocol = VRGet("SPIN_max_protocol","Value")
+
+        handle = IniOpen('global', samba.!smbconf)
+
+        ok = IniSet('log level',    log_level,    handle)
+        ok = IniSet('log file',     log_file,     handle)
+        ok = IniSet('max protocol', max_protocol, handle)
+
+        ok = IniSave(handle)
+        ok = IniClose(handle)
+        advanced.!smbconfchanged = 0
+    end
+    IF options.!debug == 1 then say time()' PB_Apply_Click() done' 
+return
+
+/*:VRX         ICB_EXIT_Click
+*/
+ICB_EXIT_Click: 
+    say 'start ICB_EXIT_Click'
+    Call Quit
+    say 'done ICB_EXIT_Click'
+return
+
+/*:VRX         ICB_LOGIN_CANCEL_Click
+*/
+ICB_LOGIN_CANCEL_Click: 
+/*  ok = VRSet("EF_USER","Value",VRGet("EF_USER1","Value"))
+    ok = VRSet("EF_PASSWORD","Value",VRGet("EF_PASSWORD1","Value")) */
+    options.!storecreds = VRGet("CB_STORECREDS1","Set")
+    credentials.!entered = 1
+    p_server = SMBObj.resname
+    if p_server <> "" then do
+        ok = _rpcqueryuser(p_server, VRGet("EF_USER1","Value"), VRGet("EF_PASSWORD1","Value"), VRGet("EF_USER1","Value"))
+
+        if word(ok,1) = "1" then do
+            call _StatusBarWrapper NLVGetMessage(107, rpc.queryuser.FULL_NAME)
+            say 'rpc.queryuser.DIR_DRIVE    = "'rpc.queryuser.DIR_DRIVE'"'
+            say 'rpc.queryuser.LOGON_SCRIPT = "'rpc.queryuser.LOGON_SCRIPT'"'
+            call _UserCredUpdate
+        end
+        else do
+            call _StatusBarWrapper VRGet("EF_USER1","Value")" \\"p_server": "rpc.queryuser.LOGONSTATUS
+        end
+    end
+
+    call SW_LOGIN_Close
+return
+
+/*:VRX         ICB_LOGIN_OK_Click
+*/
+ICB_LOGIN_OK_Click: 
+/*  ok = VRSet("EF_USER","Value",VRGet("EF_USER1","Value"))
+    ok = VRSet("EF_PASSWORD","Value",VRGet("EF_PASSWORD1","Value")) */
+    options.!storecreds = VRGet("CB_STORECREDS1","Set")
+    credentials.!entered = 1
+    p_server = SMBObj.resname
+    if p_server <> "" then do
+        ok = _rpcqueryuser(p_server, VRGet("EF_USER1","Value"), VRGet("EF_PASSWORD1","Value"), VRGet("EF_USER1","Value"))
+
+        if word(ok,1) = "1" then do
+            call _StatusBarWrapper NLVGetMessage(107, rpc.queryuser.FULL_NAME)
+            say 'rpc.queryuser.DIR_DRIVE    = "'rpc.queryuser.DIR_DRIVE'"'
+            say 'rpc.queryuser.LOGON_SCRIPT = "'rpc.queryuser.LOGON_SCRIPT'"'
+            call _UserCredUpdate
+        end
+        else do
+            call _StatusBarWrapper VRGet("EF_USER1","Value")" \\"p_server": "rpc.queryuser.LOGONSTATUS
+        end
+    end
+
+    call SW_LOGIN_Close
+return
+
+/*:VRX         ICB_REFRESH_Click
+*/
+ICB_REFRESH_Click: 
+    IF options.!debug == 1 then say time()' ICB_REFRESH_Click() started' 
+    ok = SysSleep(0.3)
+
+    say "  CurrentPageNr = "CurrentPageNr
+    select
+        when CurrentPageNr = 2 then do
+            ok = VRset("Pict_Throbber", "Visible", 1)
+            ok = VRset("TM_Throbber", "Enabled", 1)
+            call _RefreshTree
+        end
+        when CurrentPageNr = 6 then do
+            call _ChkTDB
+        end
+        otherwise call _Refresh
+    end
+    IF options.!debug == 1 then say time()' ICB_REFRESH_Click() done' 
+return
+
+/*:VRX         ICB_RELOAD_Click
+*/
+ICB_RELOAD_Click: 
+    call VRSet VRWindow(), 'Pointer', 'Wait' 
+    if WPSStartStop then do
+        ok = SysOpenObject('<smb_reload>', 'DEFAULT', 1) 
+    end
+    else do
+        call lineout samba.!bin"\smbstart", "reload"
+        ok = stream(samba.!bin"\reload","c","close")
+    end
+    ok = VRSet("TM_Refresh","Delay", 2000)
+    call VRSet VRWindow(), 'Pointer', '<default>' 
+return
+
+/*:VRX         ICB_RESTART_Click
+*/
+ICB_RESTART_Click: 
+    call VRSet VRWindow(), 'Pointer', 'Wait' 
+    if WPSStartStop then do
+        ok = SysOpenObject('<smb_restart>', 'DEFAULT', 1) 
+    end
+    else do
+        call lineout samba.!bin"\restart", "restart"
+        ok = stream(samba.!bin"\restart","c","close")
+    end
+    ok = VRSet("TM_Refresh","Delay", 2000)
+    call VRSet VRWindow(), 'Pointer', '<default>' 
+return
+
+/*:VRX         ICB_START_Click
+*/
+ICB_START_Click: 
+    say "IPB_Start_Click started"
+    call VRSet VRWindow(), 'Pointer', 'Wait' 
+    if WPSStartStop then do
+        ok = SysOpenObject('<smb_start>', 'DEFAULT', 1) 
+    end
+    else do
+        call lineout samba.!bin"\smbstart", "smbstart"
+        ok = stream(samba.!bin"\smbstart","c","close")
+    end
+    ok = VRSet("TM_Refresh","Delay", 2000)
+    call VRSet VRWindow(), 'Pointer', '<default>' 
+    say "IPB_Start_Click done"
+return
+
+/*:VRX         ICB_STOP_Click
+*/
+ICB_STOP_Click: 
+    say "IPB_Stop_Click started"
+    call VRSet VRWindow(), 'Pointer', 'Wait' 
+    if WPSStartStop then do
+        ok = SysOpenObject('<smb_stop>', 'DEFAULT', 1) 
+    end
+    else do
+        call lineout samba.!bin"\smbstop", "smbstop"
+        ok = stream(samba.!bin"\smbstop","c","close")
+    end
+    ok = VRSet("TM_Refresh","Delay", 2000)
+    call VRSet VRWindow(), 'Pointer', '<default>' 
+    say "IPB_Stop_Click done"
+return
+
 /*:VRX         Init
 */
@@ -2101,6 +2278,4 @@
     call _NLVSetup
 
-    call _TabbeddialogSetup
-
     call _SambaInit
     if \WPSStartStop then call _CreateSmbStarter
@@ -2109,13 +2284,5 @@
     call _GUIInit
    
-/*    str = 'call TAB_'CurrentPageNr'_Click'; 
-say str
-interpret str
-say 'Done 'str
-    if CurrentPageNr <> 5 then do
-        ok = VRSet("TM_Throbber", "Enabled", 1)
-        call _RefreshTree
-    end */
-    ok = VRMethod("PB_Refresh","SetFocus")
+    ok = VRMethod("ICB_Refresh","SetFocus")
 
     if options.!debug == 1 then say time()' Main_Create done'
@@ -2142,9 +2309,10 @@
     marginx4     = margin * 4
 
-    pbtn_dist    = 980
-    pbtn_nr      = 5
+    pbtn_width   = 1200
+    pbtn_dist    = 80 + pbtn_width
+    pbtn_nr      = 4
     pbtn_pos     = max((main_iwidth - pbtn_Dist * pbtn_Nr)%2, 0)+ margin
-    pbtn_height  = 400                                          /* Height of the panels' internal button areas */
-    pbtn_width   = 940
+    pbtn_height  = 460                                          /* Height of the panels' internal button areas */
+
 
     pane_height  = main_iheight- sbar_height - pbtn_height - margin * 7                   /* Height of notebook  */
@@ -2168,15 +2336,24 @@
     ok = VRSet("DT_STATUSBAR", "Width", pane_width - 24)
 
-    ok = VRSet("PB_Refresh","top", pane_height + marginx4 )
-    ok = VRSet("PB_Help",   "top", pane_height + marginx4 )
-    ok = VRSet("PB_Cancel", "top", pane_height + marginx4 )
-    ok = VRSet("PB_Apply",  "top", pane_height + marginx4 )
-    ok = VRSet("PB_About",  "top", pane_height + marginx4 )
-
-    ok = VRSet("PB_Refresh","left",pbtn_pos + pbtn_dist * (pbtn_nr - 5))
-    ok = VRSet("PB_Apply",  "left",pbtn_pos + pbtn_dist * (pbtn_nr - 4))
-    ok = VRSet("PB_Help",   "left",pbtn_pos + pbtn_dist * (pbtn_nr - 3))
-    ok = VRSet("PB_About",  "left",pbtn_pos + pbtn_dist * (pbtn_nr - 2))
-    ok = VRSet("PB_Cancel", "left",pbtn_pos + pbtn_dist * (pbtn_nr - 1))
+    ok = VRSet("ICB_REFRESH","top", pane_height + marginx4 )
+    ok = VRSet("ICB_EXIT",   "top", pane_height + marginx4 )
+    ok = VRSet("ICB_Apply",  "top", pane_height + marginx4 )
+    ok = VRSet("ICB_About",  "top", pane_height + marginx4 )
+
+    ok = VRSet("ICB_REFRESH","Width", pbtn_width )
+    ok = VRSet("ICB_EXIT",   "Width", pbtn_width )
+    ok = VRSet("ICB_Apply",  "Width", pbtn_width )
+    ok = VRSet("ICB_About",  "Width", pbtn_width )
+
+    ok = VRSet("ICB_REFRESH","Height", pbtn_Height )
+    ok = VRSet("ICB_EXIT",   "Height", pbtn_Height )
+    ok = VRSet("ICB_Apply",  "Height", pbtn_Height )
+    ok = VRSet("ICB_About",  "Height", pbtn_Height )
+
+
+    ok = VRSet("ICB_REFRESH","left",pbtn_pos + pbtn_dist * (pbtn_nr - 4))
+    ok = VRSet("ICB_Apply",  "left",pbtn_pos + pbtn_dist * (pbtn_nr - 3))
+    ok = VRSet("ICB_About",  "left",pbtn_pos + pbtn_dist * (pbtn_nr - 2))
+    ok = VRSet("ICB_EXIT",   "left",pbtn_pos + pbtn_dist * (pbtn_nr - 1))
 
     ok = VRset("GB_CHKTDB","Top",    margin  )
@@ -2225,15 +2402,24 @@
     ok = VRset("CN_DAEMONS","Height", pane_height- 1020 - marginx2 )
 
-    ok = VRSet("PB_START",  "Top",    pbtn_height*2 - marginx2)
-    ok = VRSet("PB_STOP",   "Top",    pbtn_height*3 - marginx2)
-    ok = VRSet("PB_Restart","Top",    pbtn_height*4 - marginx2)
-    ok = VRSet("PB_Reload", "Top",    pbtn_height*5 - marginx2) 
-    ok = VRSet("PB_DelLogs","Top",    pbtn_height*6 - marginx2) 
-
-    ok = VRSet("PB_START",  "Left",   pane_width -  760 - marginx2 - pbtn_width)
-    ok = VRSet("PB_STOP",   "Left",   pane_width -  760 - marginx2 - pbtn_width)
-    ok = VRSet("PB_Restart","Left",   pane_width -  760 - marginx2 - pbtn_width)
-    ok = VRSet("PB_Reload", "Left",   pane_width -  760 - marginx2 - pbtn_width)
-    ok = VRSet("PB_DelLogs","Left",   pane_width -  760 - marginx2 - pbtn_width)
+    ok = VRSet("ICB_START",  "Top",    pbtn_height*2 - marginx2)
+    ok = VRSet("ICB_STOP",   "Top",    pbtn_height*3 - marginx2)
+    ok = VRSet("ICB_Restart","Top",    pbtn_height*4 - marginx2)
+    ok = VRSet("ICB_REload", "Top",    pbtn_height*5 - marginx2) 
+
+    ok = VRSet("ICB_START",  "Left",   pane_width -  760 - marginx2 - pbtn_width)
+    ok = VRSet("ICB_STOP",   "Left",   pane_width -  760 - marginx2 - pbtn_width)
+    ok = VRSet("ICB_Restart","Left",   pane_width -  760 - marginx2 - pbtn_width)
+    ok = VRSet("ICB_REload", "Left",   pane_width -  760 - marginx2 - pbtn_width)
+
+    ok = VRSet("ICB_START",  "Width",    pbtn_width)
+    ok = VRSet("ICB_STOP",   "Width",    pbtn_width)
+    ok = VRSet("ICB_Restart","Width",    pbtn_width)
+    ok = VRSet("ICB_Reload",  "Width",    pbtn_width) 
+
+    ok = VRSet("ICB_START",  "Height",    pbtn_Height)
+    ok = VRSet("ICB_STOP",   "Height",    pbtn_Height)
+    ok = VRSet("ICB_Restart","Height",    pbtn_Height)
+    ok = VRSet("ICB_Reload", "Height",    pbtn_Height) 
+
 
     ok = VRset("GB_SMBTREE","Top",    margin  )
@@ -2336,10 +2522,4 @@
 return
 
-/*:VRX         PB_About_Click
-*/
-PB_About_Click: 
-    window = VRLoadSecondary( "About", "W" )
-return
-
 /*:VRX         PB_AboutOK1_Click
 */
@@ -2360,60 +2540,16 @@
 return
 
-/*:VRX         PB_Apply_Click
-*/
-PB_Apply_Click:
-    IF options.!debug == 1 then say time()' PB_Apply_Click() started' 
-    options.!Debug = VRGet("CB_Debug","set")
-    if options.!Debug then ok = VRREdirectStdIO("ON")
-                      else ok = VRREdirectStdIO("OFF")
-    Intervall = VRGet("SPIN_Intervall","Value")
-    ok = VRSet("TM_Refresh","Delay", Intervall * 1000)
-    IntervallMin = VRGet("SPIN_IntervallMin","Value")
-
-    NoMsgBox = VRGet("CB_NoMsgBox","set")
-    say 'NoMsgBox = "'NoMsgBox'"'
-
-    WPSStartStop = VRGet("CB_WPSStartStop","set")
-    say 'WPSStartStop = "'WPSStartStop'"'
-
-    DetectZombies = VRGet("CB_DetectZombies","set")
-    say 'DetectZombies = "'DetectZombies'"'
-
-    options.!storecreds = VRGet("CB_STORECREDS","Set")
-    say "options.!storecreds = "options.!storecreds
-
-    if advanced.!smbconfchanged = 1 then do
-        log_level    = VRGet("SPIN_log_level","Value")
-        log_file     = VRGet("EF_log_file","Value")
-        max_protocol = VRGet("SPIN_max_protocol","Value")
-
-        handle = IniOpen('global', samba.!smbconf)
-
-        ok = IniSet('log level',    log_level,    handle)
-        ok = IniSet('log file',     log_file,     handle)
-        ok = IniSet('max protocol', max_protocol, handle)
-
-        ok = IniSave(handle)
-        ok = IniClose(handle)
-        advanced.!smbconfchanged = 0
-    end
-    IF options.!debug == 1 then say time()' PB_Apply_Click() done' 
-return
-
-/*:VRX         PB_Cancel_Click
-*/
-PB_Cancel_Click: 
-    say 'start PB_Cancel_Click'
-    Call Quit
-    say 'done PB_Cancel_Click'
-return
-
 /*:VRX         PB_DELLOGS_Click
 */
 PB_DELLOGS_Click: 
     call VRSet VRWindow(), 'Pointer', 'Wait' 
-
-    /* Fixme - this needs to be read from smb.conf */
-    samba.!logdir = ETC'\samba\log'
+say VRGet("EF_LOG_FILE","Value")
+say translate(VRGet("EF_LOG_FILE","Value"),'\','/')
+    samba.!logdir = VRParseFileName(translate(VRGet("EF_LOG_FILE","Value"),'\','/'),"DP")
+say samba.!logdir
+
+    loggingfreespace = word(sysdriveinfo(left(samba.!logdir,2)),2)%1024%1024
+    ok = VRSet("DT_FREESPACE", "Caption", loggingfreespace' MB') 
+
 
     ok = SysFileTree(samba.!logdir'\log.*', logs.,'FO')
@@ -2425,6 +2561,12 @@
             if pos(CurPID,logs.I) > 0 then KeepLog = 1
         end
-        if KeepLog = 0 then ok = SysFileDelete(logs.I)
-    end
+        if KeepLog = 0 then do
+            say "Delete "logs.I
+            ok = SysFileDelete(logs.I)
+        end
+    end
+
+    loggingfreespace = word(sysdriveinfo(left(samba.!logdir,2)),2)%1024%1024
+    ok = VRSet("DT_FREESPACE", "Caption", loggingfreespace' MB')    
 
     call VRSet VRWindow(), 'Pointer', '<default>'
@@ -2435,87 +2577,4 @@
 PB_Help_Click: 
     ok = VRMethod("Main", "InvokeHelp" ) 
-return
-
-/*:VRX         PB_LOGIN_CANCEL_Click
-*/
-PB_LOGIN_CANCEL_Click: 
-    credentials.!entered = 0
-    call SW_LOGIN_Close
-return
-
-/*:VRX         PB_LOGIN_OK_Click
-*/
-PB_LOGIN_OK_Click: 
-/*  ok = VRSet("EF_USER","Value",VRGet("EF_USER1","Value"))
-    ok = VRSet("EF_PASSWORD","Value",VRGet("EF_PASSWORD1","Value")) */
-    options.!storecreds = VRGet("CB_STORECREDS1","Set")
-    credentials.!entered = 1
-    p_server = SMBObj.resname
-    if p_server <> "" then do
-        ok = _rpcqueryuser(p_server, VRGet("EF_USER1","Value"), VRGet("EF_PASSWORD1","Value"), VRGet("EF_USER1","Value"))
-
-        if word(ok,1) = "1" then do
-            call _StatusBarWrapper NLVGetMessage(107, rpc.queryuser.FULL_NAME)
-            say 'rpc.queryuser.DIR_DRIVE    = "'rpc.queryuser.DIR_DRIVE'"'
-            say 'rpc.queryuser.LOGON_SCRIPT = "'rpc.queryuser.LOGON_SCRIPT'"'
-            call _UserCredUpdate
-        end
-        else do
-            call _StatusBarWrapper VRGet("EF_USER1","Value")" \\"p_server": "rpc.queryuser.LOGONSTATUS
-        end
-    end
-
-    call SW_LOGIN_Close
-return
-
-/*:VRX         PB_Refresh_Click
-*/
-PB_Refresh_Click:
-    IF options.!debug == 1 then say time()' PB_Refresh_Click() started' 
-    ok = SysSleep(0.3)
-
-    say "  CurrentPageNr = "CurrentPageNr
-    select
-        when CurrentPageNr = 2 then do
-            ok = VRset("Pict_Throbber", "Visible", 1)
-            ok = VRset("TM_Throbber", "Enabled", 1)
-            call _RefreshTree
-        end
-        when CurrentPageNr = 6 then do
-            call _ChkTDB
-        end
-        otherwise call _Refresh
-    end
-    IF options.!debug == 1 then say time()' PB_Refresh_Click() done' 
-return
-
-/*:VRX         PB_RELOAD_Click
-*/
-PB_RELOAD_Click: 
-    call VRSet VRWindow(), 'Pointer', 'Wait' 
-    if WPSStartStop then do
-        ok = SysOpenObject('<smb_reload>', 'DEFAULT', 1) 
-    end
-    else do
-        call lineout samba.!bin"\smbstart", "reload"
-        ok = stream(samba.!bin"\reload","c","close")
-    end
-    ok = VRSet("TM_Refresh","Delay", 2000)
-    call VRSet VRWindow(), 'Pointer', '<default>' 
-return
-
-/*:VRX         PB_RESTART_Click
-*/
-PB_RESTART_Click: 
-    call VRSet VRWindow(), 'Pointer', 'Wait' 
-    if WPSStartStop then do
-        ok = SysOpenObject('<smb_restart>', 'DEFAULT', 1) 
-    end
-    else do
-        call lineout samba.!bin"\restart", "restart"
-        ok = stream(samba.!bin"\restart","c","close")
-    end
-    ok = VRSet("TM_Refresh","Delay", 1000)
-    call VRSet VRWindow(), 'Pointer', '<default>' 
 return
 
@@ -2537,36 +2596,4 @@
 return
 
-/*:VRX         PB_START_Click
-*/
-PB_START_Click: 
-    say "IPB_Start_Click started"
-    call VRSet VRWindow(), 'Pointer', 'Wait' 
-    if WPSStartStop then do
-        ok = SysOpenObject('<smb_start>', 'DEFAULT', 1) 
-    end
-    else do
-        call lineout samba.!bin"\smbstart", "smbstart"
-        ok = stream(samba.!bin"\smbstart","c","close")
-    end
-    ok = VRSet("TM_Refresh","Delay", 1000)
-    call VRSet VRWindow(), 'Pointer', '<default>' 
-    say "IPB_Start_Click done"
-return
-/*:VRX         PB_STOP_Click
-*/
-PB_STOP_Click: 
-    say "IPB_Stop_Click started"
-    call VRSet VRWindow(), 'Pointer', 'Wait' 
-    if WPSStartStop then do
-        ok = SysOpenObject('<smb_stop>', 'DEFAULT', 1) 
-    end
-    else do
-        call lineout samba.!bin"\smbstop", "smbstop"
-        ok = stream(samba.!bin"\smbstop","c","close")
-    end
-    ok = VRSet("TM_Refresh","Delay", 1000)
-    call VRSet VRWindow(), 'Pointer', '<default>' 
-    say "IPB_Stop_Click done"
-return
 /*:VRX         PushbackAll
 */
@@ -2627,4 +2654,24 @@
 return
 
+/*:VRX         RB_ACLS_NUMERIC_Click
+*/
+RB_ACLS_NUMERIC_Click: 
+    aclsnumeric = '--numeric'
+    ok = VRSet("DT_REV_CONT","Caption","")
+    ok = VRMethod("CN_ACLS","RemoveRecord","ALL")
+    ok = VRMethod("CN_ACLS","SetFieldAttr", ACL.userFH, "Visible", 0 )
+    call _ACLSBrowse
+return
+
+/*:VRX         RB_ACLS_TEXT_Click
+*/
+RB_ACLS_TEXT_Click: 
+    aclsnumeric = ''
+    ok = VRSet("DT_REV_CONT","Caption","")
+    ok = VRMethod("CN_ACLS","RemoveRecord","ALL")
+    ok = VRMethod("CN_ACLS","SetFieldAttr", ACL.userFH, "Visible", 1 )
+    call _ACLSBrowse
+return
+
 /*:VRX         RB_Sort_Ascending_Click
 */
@@ -2680,41 +2727,13 @@
 SW_ACLS_Create: 
     call SW_ACLS_Init
-
-    ok = VRSet("SW_ACLS","Caption",'ACLS \\'machine'\'sharename' "'browsepath'"')
-
-    ACL.typeFH  = VRMethod( "CN_ACLS", "AddField", "String", "Type" )
-    ACL.valueFH = VRMethod( "CN_ACLS", "AddField", "String", "Value" )
-
-    /* Make sure credentials are usable */
-    if UserCred   = 'USERCRED'   | UserCred = '' | UserCred = '--user=%' then UserCred = '-N'
-
-    /* We have to remove the double % for smbclient.exe - not entirely clear why */
-    OldUserCred = ""
-    if pos('%%',UserCred) > 0 & pos("4OS2", value("COMSPEC",,"OS2ENVIRONMENT")) = 0  then do
-        OldUserCred = UserCred
-        parse var UserCred '--user='username'%%'password
-        UserCred = '--user='username'%'password
-        say "  Strip double %%!!!"
-    end
-
-    say '  'samba.!smbcaclsexe' \\'machine'\'sharename' "'browsepath'" 'UserCred
-    address cmd samba.!smbcaclsexe' \\'machine'\'sharename' "'browsepath'" 'UserCred' 'debuglevel' 2>'samba.!error' 1>'samba.!msg
-
-    ok = file2stem(samba.!error,"aclserror.","DEL")
-
-    if aclserror.0 = 0 then do
-        call _StatusBarWrapper "NT_STATUS_OK"
-
-        ok = file2stem(samba.!msg,"aclsmsg.","DEL")     
-        do I = 1 to aclsmsg.0
-            parse var aclsmsg.I aclstype':'aclsvalue
-            DummyRH = VRMethod('CN_ACLS', 'AddRecord')
-            ok = VRMethod("CN_ACLS", "SetFieldData", DummyRH, ACL.typeFH, aclstype, ACL.valueFH, aclsvalue)
-        end
-    end
-    else do
-        call _StatusBarWrapper aclserror.1
-        call SW_ACLS_close
-    end
+    ACL.typeFH   = VRMethod( "CN_ACLS", "AddField", "String", "Type" )
+    ACL.groupFH  = VRMethod( "CN_ACLS", "AddField", "String", "Group" )
+    ACL.userFH   = VRMethod( "CN_ACLS", "AddField", "String", "User" )
+    ACL.ADFH     = VRMethod( "CN_ACLS", "AddField", "String", "A/D" )
+    ACL.flagsFH  = VRMethod( "CN_ACLS", "AddField", "String", "Flags" )
+    ACL.accessFH = VRMethod( "CN_ACLS", "AddField", "String", "Access" )
+    ok = VRMethod( "CN_ACLS", "RemoveRecord", "ALL")
+    aclsnumeric = ''
+    call _ACLSBrowse
 return
 /*:VRX         SW_ACLS_Fini
@@ -2778,4 +2797,12 @@
 SW_DAEMONS_Create: 
     call SW_DAEMONS_Init
+
+    CALL NLVSetText 'CN_DAEMONS',     'Caption', 65
+    
+    CALL VRMethod 'TT_Main', 'Register', 'ICB_START',   NLVGetMessage(61)
+    CALL VRMethod 'TT_Main', 'Register', 'ICB_STOP',    NLVGetMessage(62)
+    CALL VRMethod 'TT_Main', 'Register', 'ICB_RESTART', NLVGetMessage(63)
+    CALL VRMethod 'TT_Main', 'Register', 'ICB_RELOAD',  NLVGetMessage(64)
+    CALL VRMethod 'TT_DAEMONS', 'Register', 'CN_DAEMONS',  NLVGetMessage(66)
 return
 
@@ -2809,4 +2836,5 @@
 SW_FILES_Create: 
     call SW_FILES_Init
+    CALL VRMethod 'TT_FILES', 'Register', 'CN_FILES',  NLVGetMessage(68)
 return
 
@@ -2840,10 +2868,10 @@
 SW_LOGIN_Create: 
     call SW_LOGIN_Init
-/*  ok = VRSet("SW_LOGIN","Caption",NLVGetMessage(136)' 'strip(p_workgroup' \\'p_server'\'p_share,'T','\'))
-    CALL NLVSetText 'DT_USER1',       "Caption", 25
-    CALL NLVSetText 'DT_PASSWORD1',   "Caption", 26
-    CALL NLVSetText 'CB_STORECREDS1', "Caption", 135
-    CALL NLVSetText 'PB_LOGIN_OK',    "Caption", 2
-    CALL NLVSetText 'PB_LOGIN_CANCEL',"Caption", 3 */
+/*  ok = VRSet("SW_LOGIN","Caption",NLVGetMessage(136)' 'strip(p_workgroup' \\'p_server'\'p_share,'T','\')) */
+    CALL NLVSetText 'DT_USER1',       "Caption", 131
+    CALL NLVSetText 'DT_PASSWORD1',   "Caption", 23
+/*  CALL NLVSetText 'CB_STORECREDS1', "Caption", 135 */
+    CALL NLVSetText 'ICB_LOGIN_OK',    "Caption", 2
+    CALL NLVSetText 'ICB_LOGIN_CANCEL',"Caption", 3
 
     if VRIsValidObject(SMBObj.rh) then do
@@ -2897,4 +2925,5 @@
 SW_SERVICE_Create: 
     call SW_SERVICE_Init
+    CALL VRMethod 'TT_SERVICE', 'Register', 'CN_SERVICE',  NLVGetMessage(69)
 return
 
@@ -2928,4 +2957,12 @@
 SW_SETTINGS_Create: 
     call SW_SETTINGS_Init
+
+    call SW_SETTINGS_Init_Content
+
+say VRGet("EF_LOG_FILE","Value")
+say translate(VRGet("EF_LOG_FILE","Value"),'\','/')
+    samba.!logdir = VRParseFileName(translate(VRGet("EF_LOG_FILE","Value"),'\','/'),"DP")
+say samba.!logdir
+    CALL VRMethod 'TT_SETTINGS', 'Register', 'DT_FREESPACE', samba.!logdir' blums'
 return
 
@@ -3067,4 +3104,5 @@
 SW_USERS_Create: 
     call SW_USERS_Init
+    CALL VRMethod 'TT_USERS', 'Register', 'CN_USERS',  NLVGetMessage(67)
 return
 
@@ -3095,7 +3133,15 @@
     ok = VRSet("TM_RefreshDaemons","Enabled", 0)
     ok = VRSet("DT_STATUSBAR","Caption", VRGet("Main", "HintText"))
-    /* call _TabsStrip */
+    ok = VRSet("CN_DAEMONS","Visible", 0)
+    ok = VRSet("CN_SMBTREE","Visible", 0)
+    ok = VRSet("CN_USERS",  "Visible", 0)
+    ok = VRSet("CN_FILES",  "Visible", 0)
+    ok = VRSet("CN_SERVICE","Visible", 0)
+    ok = VRSet("CN_CHKTDB", "Visible", 0)
+    ok = VRSet("GB_SETTINGS","Visible", 0)
+
     select 
         when page = 1 then do /* daemons */
+            ok = VRSet("CN_DAEMONS","Visible", 1)
             ok = VRSet("Main","WindowIcon","$46")
             ok = VRSet("TM_RefreshDaemons","Enabled", 1)
@@ -3103,19 +3149,24 @@
         end
         when page = 2 then do /* smbtree */
+            ok = VRSet("CN_SMBTREE","Visible", 1)
             ok = VRSet("Main","WindowIcon","$1")
             ok = VRMethod( "CN_SMBTREE", "GetRecordList", "All", "handle." ) 
             /* if the page is empty, populate it */
-            if handle.0 = 0 then call PB_Refresh_Click
+            if handle.0 = 0 then call ICB_REFRESH_Click
         end
         when page = 3 then do /* Users */
+            ok = VRSet("CN_USERS","Visible", 1)
             ok = VRSet("Main","WindowIcon","$44")
         end
         when page = 4 then do /* files */
+            ok = VRSet("CN_FILES",  "Visible", 1)
             ok = VRSet("Main","WindowIcon","$1")
         end
         when page = 5 then do /* service */
+            ok = VRSet("CN_SERVICE","Visible", 1)
             ok = VRSet("Main","WindowIcon","$52")
         end
         when page = 6 then do /* chkTDB */
+            ok = VRSet("CN_CHKTDB", "Visible", 1)
             ok = VRSet("Main","WindowIcon","$53")
             say "ChkTDB"
@@ -3123,4 +3174,5 @@
         end
         when page = 7 then do /* Settings */
+            ok = VRSet("GB_SETTINGS","Visible", 1)
             ok = VRSet("Main","WindowIcon","$53")
             call SW_SETTINGS_Init_Content
@@ -3143,4 +3195,5 @@
     ok = VRSet("TM_RefreshDaemons","Delay", 3000)
     call _RefreshDaemons
+    call _AddSharesDisplay
 return
 
