+ HWND tabs;\r
+ HWND combo;\r
+ tabs = GetDlgItem(window, IDC_TAB1);\r
+ if (! tabs) return 0;\r
+\r
+ /* Set up tabs. */\r
+ TCITEM tab;\r
+ ZeroMemory(&tab, sizeof(tab));\r
+ tab.mask = TCIF_TEXT;\r
+\r
+ /* Application tab. */\r
+ tab.pszText = message_string(NSSM_GUI_TAB_APPLICATION);\r
+ tab.cchTextMax = (int) strlen(tab.pszText);\r
+ SendMessage(tabs, TCM_INSERTITEM, NSSM_TAB_APPLICATION, (LPARAM) &tab);\r
+ tablist[NSSM_TAB_APPLICATION] = CreateDialog(0, MAKEINTRESOURCE(IDD_APPLICATION), window, tab_dlg);\r
+ ShowWindow(tablist[NSSM_TAB_APPLICATION], SW_SHOW);\r
+\r
+ /* Shutdown tab. */\r
+ tab.pszText = message_string(NSSM_GUI_TAB_SHUTDOWN);\r
+ tab.cchTextMax = (int) strlen(tab.pszText);\r
+ SendMessage(tabs, TCM_INSERTITEM, NSSM_TAB_SHUTDOWN, (LPARAM) &tab);\r
+ tablist[NSSM_TAB_SHUTDOWN] = CreateDialog(0, MAKEINTRESOURCE(IDD_SHUTDOWN), window, tab_dlg);\r
+ ShowWindow(tablist[NSSM_TAB_SHUTDOWN], SW_HIDE);\r
+\r
+ /* Set defaults. */\r
+ SendDlgItemMessage(tablist[NSSM_TAB_SHUTDOWN], IDC_METHOD_CONSOLE, BM_SETCHECK, BST_CHECKED, 0);\r
+ SetDlgItemInt(tablist[NSSM_TAB_SHUTDOWN], IDC_KILL_CONSOLE, NSSM_KILL_CONSOLE_GRACE_PERIOD, 0);\r
+ SendDlgItemMessage(tablist[NSSM_TAB_SHUTDOWN], IDC_METHOD_WINDOW, BM_SETCHECK, BST_CHECKED, 0);\r
+ SetDlgItemInt(tablist[NSSM_TAB_SHUTDOWN], IDC_KILL_WINDOW, NSSM_KILL_WINDOW_GRACE_PERIOD, 0);\r
+ SendDlgItemMessage(tablist[NSSM_TAB_SHUTDOWN], IDC_METHOD_THREADS, BM_SETCHECK, BST_CHECKED, 0);\r
+ SetDlgItemInt(tablist[NSSM_TAB_SHUTDOWN], IDC_KILL_THREADS, NSSM_KILL_THREADS_GRACE_PERIOD, 0);\r
+ SendDlgItemMessage(tablist[NSSM_TAB_SHUTDOWN], IDC_METHOD_TERMINATE, BM_SETCHECK, BST_CHECKED, 0);\r
+\r
+ /* Restart tab. */\r
+ tab.pszText = message_string(NSSM_GUI_TAB_EXIT);\r
+ tab.cchTextMax = (int) strlen(tab.pszText);\r
+ SendMessage(tabs, TCM_INSERTITEM, NSSM_TAB_EXIT, (LPARAM) &tab);\r
+ tablist[NSSM_TAB_EXIT] = CreateDialog(0, MAKEINTRESOURCE(IDD_APPEXIT), window, tab_dlg);\r
+ ShowWindow(tablist[NSSM_TAB_EXIT], SW_HIDE);\r
+\r
+ /* Set defaults. */\r
+ SetDlgItemInt(tablist[NSSM_TAB_EXIT], IDC_THROTTLE, NSSM_RESET_THROTTLE_RESTART, 0);\r
+ combo = GetDlgItem(tablist[NSSM_TAB_EXIT], IDC_APPEXIT);\r
+ SendMessage(combo, CB_INSERTSTRING, NSSM_EXIT_RESTART, (LPARAM) message_string(NSSM_GUI_EXIT_RESTART));\r
+ SendMessage(combo, CB_INSERTSTRING, NSSM_EXIT_IGNORE, (LPARAM) message_string(NSSM_GUI_EXIT_IGNORE));\r
+ SendMessage(combo, CB_INSERTSTRING, NSSM_EXIT_REALLY, (LPARAM) message_string(NSSM_GUI_EXIT_REALLY));\r
+ SendMessage(combo, CB_INSERTSTRING, NSSM_EXIT_UNCLEAN, (LPARAM) message_string(NSSM_GUI_EXIT_UNCLEAN));\r
+ SendMessage(combo, CB_SETCURSEL, NSSM_EXIT_RESTART, 0);\r
+\r
+ /* I/O tab. */\r
+ tab.pszText = message_string(NSSM_GUI_TAB_IO);\r
+ tab.cchTextMax = (int) strlen(tab.pszText) + 1;\r
+ SendMessage(tabs, TCM_INSERTITEM, NSSM_TAB_IO, (LPARAM) &tab);\r
+ tablist[NSSM_TAB_IO] = CreateDialog(0, MAKEINTRESOURCE(IDD_IO), window, tab_dlg);\r
+ ShowWindow(tablist[NSSM_TAB_IO], SW_HIDE);\r
+\r
+ selected_tab = 0;\r
+\r