Ejemplo n.º 1
0
static VOID
MainWndCommand(PMAIN_WND_INFO Info,
               WORD CmdId,
               HWND hControl)
{
    UNREFERENCED_PARAMETER(hControl);

    switch (CmdId)
    {
        case IDC_PROP:
        {
            HTREEITEM hSelected = TreeView_GetSelection(Info->hTreeView);
            OpenPropSheet(Info->hTreeView,
                          hSelected);
        }
        break;

        case IDC_REFRESH:
        {
            OnRefresh(Info);
        }
        break;

        case IDC_PROGHELP:
        {
            DisplayString(_T("Help is not yet implemented\n"));
            SetFocus(Info->hTreeView);
        }
        break;

        case IDC_EXIT:
        {
            PostMessage(Info->hMainWnd,
                        WM_CLOSE,
                        0,
                        0);
        }
        break;

        case IDC_ABOUT:
        {
            DialogBox(hInstance,
                      MAKEINTRESOURCE(IDD_ABOUTBOX),
                      Info->hMainWnd,
                      AboutDialogProc);

            SetFocus(Info->hTreeView);
        }
        break;

        case IDC_DEVBYTYPE:
        {
            Info->Display = DevicesByType;
            UpdateViewMenu(Info);
            OnRefresh(Info);
        }
        break;

        case IDC_DEVBYCONN:
        {
            Info->Display = DevicesByConnection;
            UpdateViewMenu(Info);
            OnRefresh(Info);
        }
        break;

        case IDC_SHOWHIDDEN:
        {
            Info->bShowHidden = !Info->bShowHidden;
            UpdateViewMenu(Info);
            OnRefresh(Info);
        }
        break;
    }
}
Ejemplo n.º 2
0
static VOID
MainWndCommand(PMAIN_WND_INFO Info,
               WORD CmdId,
               HWND hControl)
{
    UNREFERENCED_PARAMETER(hControl);

    switch (CmdId)
    {
        case ID_PROP:
        {
            if (Info->SelectedItem != NO_ITEM_SELECTED)
            {
                Info->bDlgOpen = TRUE;
                OpenPropSheet(Info);
                Info->bDlgOpen = FALSE;
                SetMenuAndButtonStates(Info);
            }
        }
        break;

        case ID_REFRESH:
        {
            RefreshServiceList(Info);
            Info->SelectedItem = NO_ITEM_SELECTED;

            /* disable menus and buttons */
            SetMenuAndButtonStates(Info);

            /* clear the service in the status bar */
            SendMessage(Info->hStatus,
                        SB_SETTEXT,
                        1,
                        _T('\0'));
        }
        break;

        case ID_EXPORT:
        {
            ExportFile(Info);
            SetFocus(Info->hListView);
        }
        break;

        case ID_CREATE:
        {
            INT ret;

            ret = DialogBoxParam(hInstance,
                                 MAKEINTRESOURCE(IDD_DLG_CREATE),
                                 Info->hMainWnd,
                                 CreateDialogProc,
                                 (LPARAM)Info);
            if (ret == IDOK)
                RefreshServiceList(Info);

            SetFocus(Info->hListView);
        }
        break;

        case ID_DELETE:
        {
            if (Info->pCurrentService->ServiceStatusProcess.dwCurrentState != SERVICE_RUNNING)
            {
                DialogBoxParam(hInstance,
                               MAKEINTRESOURCE(IDD_DLG_DELETE),
                               Info->hMainWnd,
                               DeleteDialogProc,
                               (LPARAM)Info);
            }
            else
            {
                TCHAR Buf[60];
                LoadString(hInstance,
                           IDS_DELETE_STOP,
                           Buf,
                           sizeof(Buf) / sizeof(TCHAR));
                DisplayString(Buf);
            }

            SetFocus(Info->hListView);

        }
        break;

        case ID_START:
        {
            if (DoStart(Info, NULL))
            {
                UpdateServiceStatus(Info->pCurrentService);
                ChangeListViewText(Info, Info->pCurrentService, LVSTATUS);
                SetMenuAndButtonStates(Info);
                SetFocus(Info->hListView);
            }
        }
        break;

        case ID_STOP:
            if (DoStop(Info))
            {
                UpdateServiceStatus(Info->pCurrentService);
                ChangeListViewText(Info, Info->pCurrentService, LVSTATUS);
                SetMenuAndButtonStates(Info);
                SetFocus(Info->hListView);
            }
        break;

        case ID_PAUSE:
            DoPause(Info);
        break;

        case ID_RESUME:
            DoResume(Info);
        break;

        case ID_RESTART:
            if (DoStop(Info))
            {
                DoStart(Info, NULL);
                UpdateServiceStatus(Info->pCurrentService);
                ChangeListViewText(Info, Info->pCurrentService, LVSTATUS);
                SetMenuAndButtonStates(Info);
                SetFocus(Info->hListView);
            }
        break;

        case ID_HELP:
            MessageBox(NULL,
                       _T("Help is not yet implemented\n"),
                       _T("Note!"),
                       MB_OK | MB_ICONINFORMATION);
            SetFocus(Info->hListView);
        break;

        case ID_EXIT:
            PostMessage(Info->hMainWnd,
                        WM_CLOSE,
                        0,
                        0);
        break;

        case ID_VIEW_LARGE:
            SetListViewStyle(Info->hListView,
                             LVS_ICON);
            CheckMenuRadioItem(GetMenu(Info->hMainWnd),
                               ID_VIEW_LARGE,
                               ID_VIEW_DETAILS,
                               ID_VIEW_LARGE,
                               MF_BYCOMMAND);
        break;

        case ID_VIEW_SMALL:
            SetListViewStyle(Info->hListView,
                             LVS_SMALLICON);
            CheckMenuRadioItem(GetMenu(Info->hMainWnd),
                               ID_VIEW_LARGE,
                               ID_VIEW_DETAILS,
                               ID_VIEW_SMALL,
                               MF_BYCOMMAND);
        break;

        case ID_VIEW_LIST:
            SetListViewStyle(Info->hListView,
                             LVS_LIST);
            CheckMenuRadioItem(GetMenu(Info->hMainWnd),
                               ID_VIEW_LARGE,
                               ID_VIEW_DETAILS,
                               ID_VIEW_LIST,
                               MF_BYCOMMAND);
        break;

        case ID_VIEW_DETAILS:
            SetListViewStyle(Info->hListView,
                             LVS_REPORT);
            CheckMenuRadioItem(GetMenu(Info->hMainWnd),
                               ID_VIEW_LARGE,
                               ID_VIEW_DETAILS,
                               ID_VIEW_DETAILS,
                               MF_BYCOMMAND);
        break;

        case ID_VIEW_CUST:
        break;

        case ID_ABOUT:
            DialogBox(hInstance,
                      MAKEINTRESOURCE(IDD_ABOUTBOX),
                      Info->hMainWnd,
                      AboutDialogProc);
            SetFocus(Info->hListView);
        break;

    }
}
Ejemplo n.º 3
0
static LRESULT
OnNotify(PMAIN_WND_INFO Info,
         LPARAM lParam)
{
    LPNMHDR pnmhdr = (LPNMHDR)lParam;
    LRESULT ret = 0;

    switch (pnmhdr->code)
    {
        case TVN_SELCHANGED:
        {
            LPNM_TREEVIEW pnmtv = (LPNM_TREEVIEW)lParam;

            if (Info->Display == DevicesByType)
            {
                if (!TreeView_GetChild(Info->hTreeView,
                                       pnmtv->itemNew.hItem))
                {
                    SendMessage(Info->hTool,
                                TB_SETSTATE,
                                IDC_PROP,
                                (LPARAM)MAKELONG(TBSTATE_ENABLED, 0));

                    EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_ENABLED);
                    EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_ENABLED);
                }
                else
                {
                    SendMessage(Info->hTool,
                                TB_SETSTATE,
                                IDC_PROP,
                                (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0));

                    EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_GRAYED);
                    EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_GRAYED);
                }
            }
            else if (Info->Display == DevicesByConnection)
            {
                if (pnmtv->itemNew.hItem == TreeView_GetRoot(Info->hTreeView))
                {
                    SendMessage(Info->hTool,
                                TB_SETSTATE,
                                IDC_PROP,
                                (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0));

                    EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_GRAYED);
                    EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_GRAYED);
                }
                else
                {
                    SendMessage(Info->hTool,
                                TB_SETSTATE,
                                IDC_PROP,
                                (LPARAM)MAKELONG(TBSTATE_ENABLED, 0));

                    EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_ENABLED);
                    EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_ENABLED);
                }
            }
        }
        break;

        case NM_DBLCLK:
        {
            HTREEITEM hSelected = TreeView_GetSelection(Info->hTreeView);
            TV_HITTESTINFO HitTest;

            if (Info->Display == DevicesByType)
            {
                if (!TreeView_GetChild(Info->hTreeView,
                                       hSelected))
                {
                    if (GetCursorPos(&HitTest.pt) &&
                        ScreenToClient(Info->hTreeView, &HitTest.pt))
                    {
                        if (TreeView_HitTest(Info->hTreeView, &HitTest))
                        {
                            if (HitTest.hItem == hSelected)
                            {
                                OpenPropSheet(Info->hTreeView,
                                              hSelected);
                                ret = TRUE;
                            }
                        }
                    }
                }
            }
            else if (Info->Display == DevicesByConnection)
            {
                if (hSelected != TreeView_GetRoot(Info->hTreeView))
                {
                    if (GetCursorPos(&HitTest.pt) &&
                        ScreenToClient(Info->hTreeView, &HitTest.pt))
                    {
                        if (TreeView_HitTest(Info->hTreeView, &HitTest))
                        {
                            if (HitTest.hItem == hSelected)
                            {
                                OpenPropSheet(Info->hTreeView,
                                              hSelected);
                                ret = TRUE;
                            }
                        }
                    }
                }
            }
        }
        break;

        case NM_RCLICK:
        {
            TV_HITTESTINFO HitTest;

            if (GetCursorPos(&HitTest.pt) &&
                ScreenToClient(Info->hTreeView, &HitTest.pt))
            {
                if (TreeView_HitTest(Info->hTreeView, &HitTest))
                    (void)TreeView_SelectItem(Info->hTreeView, HitTest.hItem);
            }
        }
        break;

        case TTN_GETDISPINFO:
        {
            LPTOOLTIPTEXT lpttt;
            UINT idButton;

            lpttt = (LPTOOLTIPTEXT)lParam;

            idButton = (UINT)lpttt->hdr.idFrom;
            switch (idButton)
            {
                case IDC_PROP:
                    lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_PROP);
                break;

                case IDC_REFRESH:
                    lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_REFRESH);
                break;

                case IDC_PROGHELP:
                    lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_HELP);
                break;

                case IDC_EXIT:
                    lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_EXIT);
                break;
            }
        }
        break;
    }

    return ret;
}