NS_IMETHODIMP
nsXULTreeItemAccessible::GetName(nsAString& aName)
{
  aName.Truncate();

  if (IsDefunct())
    return NS_ERROR_FAILURE;

  GetCellName(mColumn, aName);
  return NS_OK;
}
Esempio n. 2
0
BOOL CPropVolume::PropPageProc( HWND hwnd, UINT uMessage, WPARAM wParam, LPARAM lParam )
{
    switch(uMessage)
    {
    case WM_INITDIALOG:
        {
            CPropVolume * sheetpage = (CPropVolume*) ((LPPROPSHEETPAGE) lParam)->lParam;
            SetWindowLongPtr (hwnd, GWLP_USERDATA, (LONG_PTR) sheetpage);
            sheetpage->SetHwnd(hwnd);
            AfxSetResourceHandle(m_hInst);

            BOOL bFollow = (filenames.GetCount() == 1 && m_bIsMountpoint);

            if(filenames.GetCount() >= 1) {
                CString sText;

                SetDlgItemText(hwnd, IDC_PROP_VOLUMENAME, filenames.GetAt(0));
                sText = GetCellName(filenames.GetAt(0), bFollow);
                SetDlgItemText(hwnd, IDC_PROP_CELL, sText);
                sText = GetServer(filenames.GetAt(0), bFollow);
                SetDlgItemText(hwnd, IDC_PROP_FILESERVER, sText);

                TCHAR buf[100];
                CVolInfo volInfo;

                if (GetVolumeInfo(filenames.GetAt(0), volInfo, bFollow)) {
                    SetDlgItemText(hwnd, IDC_PROP_VOLUMENAME, volInfo.m_strName);

                    SetDlgItemText(hwnd, IDC_PROP_VOLUME_STATUS, volInfo.m_strAvail);

                    sText.Format(_T("%u"), volInfo.m_nID);
                    SetDlgItemText(hwnd, IDC_PROP_VID, sText);

                    if (volInfo.m_nQuota == 0) {
                        SetDlgItemText(hwnd, IDC_QUOTA_MAX, _T("unlimited"));
                        SetDlgItemText(hwnd, IDC_QUOTA_PERCENT, _T("0.00%"));
                    } else {
                        StrFormatByteSize64(volInfo.m_nQuota*1024, buf, 100);
                        SetDlgItemText(hwnd, IDC_QUOTA_MAX, buf);

                        sText.Format(_T("%.2f%%"), ((double)volInfo.m_nUsed / (double)volInfo.m_nQuota) * 100);
                        SetDlgItemText(hwnd, IDC_QUOTA_PERCENT, sText);
                    }

                    StrFormatByteSize64(volInfo.m_nUsed*1024, buf, 100);
                    SetDlgItemText(hwnd, IDC_QUOTA_USED, buf);

                    StrFormatByteSize64(volInfo.m_nPartSize*1024, buf, 100);
                    SetDlgItemText(hwnd, IDC_PARTITION_SIZE, buf);
                    StrFormatByteSize64(volInfo.m_nPartFree*1024, buf, 100);
                    SetDlgItemText(hwnd, IDC_PARTITION_FREE, buf);

                    sText.Format(_T("%.2f%%"), ((double)volInfo.m_nPartFree / (double)volInfo.m_nPartSize) * 100);
                    SetDlgItemText(hwnd, IDC_PARTITION_PERCENT, sText);
                }
                else
                {
                    SetDlgItemText(hwnd, IDC_PROP_VOLUMENAME, volInfo.m_strErrorMsg);
                }

                // "where is" info
                CStringArray servers;
                GetServers(filenames.GetAt(0), servers, bFollow);
                int tabstops[1] = {118};
                SendDlgItemMessage(hwnd, IDC_SERVERS, LB_SETTABSTOPS, 1, (LPARAM)&tabstops);
                for (int i=0;i<servers.GetCount();++i){
                    SendDlgItemMessage(m_hwnd, IDC_SERVERS, LB_ADDSTRING, 0, (LPARAM)(LPCTSTR)servers.GetAt(i));
                }
            }
            return TRUE;
        }
        break;
    case WM_NOTIFY:
        {
            LPNMHDR point = (LPNMHDR)lParam;
            int code = point->code;
            BOOL bRet = FALSE;
            switch (code)
            {
            case PSN_APPLY:
                {
                    // Return PSNRET_NOERROR to allow the sheet to close if the user clicked OK.
                    SetWindowLongPtr(m_hwnd, DWLP_MSGRESULT, PSNRET_NOERROR);
                }
                break;
            }
            SetWindowLongPtr(m_hwnd, DWLP_MSGRESULT, FALSE);
            return bRet;
        }
        break;
    case WM_COMMAND:
        switch (HIWORD(wParam))
        {
        case BN_CLICKED:
            switch (LOWORD(wParam))
            {
            case IDC_FLUSH:
                FlushVolume(filenames);
                return TRUE;
            }
            break;
        }
        break;
    }

    return FALSE;
}
Esempio n. 3
0
static int
PrintCacheEntries64(struct rx_connection *aconn, int aint32)
{
    int i;
    afs_int32 code;
    struct AFSDBCacheEntry64 centry;
    char *cellname;

    for (i = 0; i < 1000000; i++) {
	code = RXAFSCB_GetCE64(aconn, i, &centry);
	if (code) {
	    if (code == 1)
		break;
	    printf("cmdebug: failed to get cache entry %d (%s)\n", i,
		   afs_error_message(code));
	    return code;
	}

	if (centry.addr == 0) {
	    /* PS output */
	    printf("Proc %4d sleeping at %08x, pri %3d\n",
		   centry.netFid.Vnode, centry.netFid.Volume,
		   centry.netFid.Unique - 25);
	    continue;
	}

	if ((aint32 == 0 && !IsLocked(&centry.lock)) ||
            (aint32 == 2 && centry.refCount == 0) ||
            (aint32 == 4 && centry.callback == 0))
	    continue;

	/* otherwise print this entry */
	printf("** Cache entry @ 0x%08x for %d.%d.%d.%d", centry.addr,
	       centry.cell, centry.netFid.Volume, centry.netFid.Vnode,
	       centry.netFid.Unique);

	cellname = GetCellName(aconn, centry.cell);
	if (cellname)
	    printf(" [%s]\n", cellname);
	else
	    printf("\n");

	if (IsLocked(&centry.lock)) {
	    printf("    locks: ");
	    PrintLock(&centry.lock);
	    printf("\n");
	}
#ifdef AFS_NT40_ENV
	printf("    %12I64d bytes  DV %12d  refcnt %5d\n", centry.Length,
	       centry.DataVersion, centry.refCount);
#else
	printf("    %12llu bytes  DV %12d  refcnt %5d\n", centry.Length,
	       centry.DataVersion, centry.refCount);
#endif
        if (print_ctime) {
            time_t t = centry.cbExpires;
            printf("    callback %08x\texpires %s\n", centry.callback,
                    ctime(&t));
        } else
            printf("    callback %08x\texpires %u\n", centry.callback,
                   centry.cbExpires);
	printf("    %d opens\t%d writers\n", centry.opens, centry.writers);

	/* now display states */
	printf("    ");
	if (centry.mvstat == 0)
	    printf("normal file");
	else if (centry.mvstat == 1)
	    printf("mount point");
	else if (centry.mvstat == 2)
	    printf("volume root");
	else if (centry.mvstat == 3)
	    printf("directory");
	else if (centry.mvstat == 4)
	    printf("symlink");
	else if (centry.mvstat == 5)
	    printf("microsoft dfs link");
	else if (centry.mvstat == 6)
	    printf("invalid link");
        else
	    printf("bogus mvstat %d", centry.mvstat);
	printf("\n    states (0x%x)", centry.states);
	if (centry.states & 1)
	    printf(", stat'd");
	if (centry.states & 2)
	    printf(", backup");
	if (centry.states & 4)
	    printf(", read-only");
	if (centry.states & 8)
	    printf(", mt pt valid");
	if (centry.states & 0x10)
	    printf(", pending core");
	if (centry.states & 0x40)
	    printf(", wait-for-store");
	if (centry.states & 0x80)
	    printf(", mapped");
	printf("\n");
    }
    return 0;
}
Esempio n. 4
0
BOOL CPropFile::PropPageProc( HWND hwnd, UINT uMessage, WPARAM wParam, LPARAM lParam )
{
    switch(uMessage)
    {
    case WM_INITDIALOG:
        {
            CPropFile * sheetpage = (CPropFile*) ((LPPROPSHEETPAGE) lParam)->lParam;
            SetWindowLongPtr (hwnd, GWLP_USERDATA, (LONG_PTR) sheetpage);
            sheetpage->SetHwnd(hwnd);
            AfxSetResourceHandle(m_hInst);

            CString sText;

            if (filenames.GetCount() <= 0) {

                ShowWindow(GetDlgItem(m_hwnd, IDC_REMOVEMOUNTPOINT), SW_HIDE);
                ShowWindow(GetDlgItem(m_hwnd, IDC_SYMLINK_LABEL), SW_HIDE);
                ShowWindow(GetDlgItem(m_hwnd, IDC_MOUNTPOINT_LABEL), SW_HIDE);
                EnableUnixMode(FALSE);

            }
            else if(filenames.GetCount() > 1) {
                // multiple items selected
                LoadString(sText, IDS_PROP_MULTIPLEITEMS);
                SetDlgItemText(hwnd, IDC_PROP_TYPE, sText);

                ShowWindow(GetDlgItem(m_hwnd, IDC_REMOVEMOUNTPOINT), SW_HIDE);
                ShowWindow(GetDlgItem(m_hwnd, IDC_SYMLINK_LABEL), SW_HIDE);
                ShowWindow(GetDlgItem(m_hwnd, IDC_MOUNTPOINT_LABEL), SW_HIDE);
                EnableUnixMode(FALSE);

                sText = GetCellName(filenames.GetAt(0), FALSE);
                m_cellName = sText;
                SetDlgItemText(hwnd, IDC_PROP_CELL, sText);

            } else {
                if (m_bIsMountpoint)
                    LoadString(sText, IDS_PROP_TYPEMOUNTPOINT);
                else if (m_bIsSymlink)
                    LoadString(sText, IDS_PROP_TYPESYMLINK);
                else if (m_bIsDir)
                    LoadString(sText, IDS_PROP_TYPEDIRECTORY);
                else
                    LoadString(sText, IDS_PROP_TYPEFILE);

                SetDlgItemText(hwnd, IDC_PROP_TYPE, sText);

                if (m_bIsMountpoint) {
                    ShowWindow(GetDlgItem(m_hwnd, IDC_REMOVEMOUNTPOINT), SW_SHOW);
                }
                if (!m_bIsSymlink) {
                    ShowWindow(GetDlgItem(m_hwnd, IDC_SYMLINK_LABEL), SW_HIDE);
                }
                if (!m_bIsMountpoint) {
                    ShowWindow(GetDlgItem(m_hwnd, IDC_MOUNTPOINT_LABEL), SW_HIDE);
                }

                if (!m_bIsMountpoint && !m_bIsSymlink) {
                    ShowWindow(GetDlgItem(m_hwnd, IDC_EDIT), SW_HIDE);
                }

                if (m_bIsSymlink) {
                    ShowWindow(GetDlgItem(m_hwnd, IDC_REMOVESYMLINK), SW_SHOW);
                }

                CString user, group, other, suid;
                EnableUnixMode(TRUE);
                GetUnixModeBits(filenames.GetAt(0), user, group, other, suid);
                ShowUnixMode(user, group, other, suid);

                SetDlgItemText(hwnd, IDC_PROP_FILENAME, filenames.GetAt(0));
                if (!GetFID(filenames.GetAt(0), sText, TRUE))
                    sText = _T("(unknown)");
                SetDlgItemText(hwnd, IDC_PROP_FID, sText);
                sText = GetOwner(filenames.GetAt(0));
                SetDlgItemText(hwnd, IDC_PROP_OWNER, sText);
                sText = GetGroup(filenames.GetAt(0));
                SetDlgItemText(hwnd, IDC_PROP_GROUP, sText);

                if (m_bIsMountpoint){
                    sText = GetMountpoint(filenames.GetAt(0));
                    sText = sText.Mid(sText.Find('\t')+1);
                    SetDlgItemText(hwnd, IDC_PROP_SMINFO, sText);
                }
                if (m_bIsSymlink){
                    sText = GetSymlink(filenames.GetAt(0));
                    sText = sText.Mid(sText.Find('\t')+1);
                    SetDlgItemText(hwnd, IDC_PROP_SMINFO, sText);
                }

                sText = GetCellName(filenames.GetAt(0));
                m_cellName = sText;
                SetDlgItemText(hwnd, IDC_PROP_CELL, sText);
            }
            return TRUE;
        }
        break;
    case WM_NOTIFY:
        {
            LPNMHDR point = (LPNMHDR)lParam;
            int code = point->code;
            BOOL bRet = FALSE;
            switch (code)
            {
            case PSN_APPLY:
                {
                    CString user, group, other, suid;
                    MakeUnixModeString(user, group, other, suid);
                    SetUnixModeBits(filenames, user, group, other, suid);
                    // Return PSNRET_NOERROR to allow the sheet to close if the user clicked OK.
                    SetWindowLongPtr(m_hwnd, DWLP_MSGRESULT, PSNRET_NOERROR);
                }
                break;
            }
            SetWindowLongPtr(m_hwnd, DWLP_MSGRESULT, FALSE);
            return bRet;
        }
        break;
    case WM_COMMAND:
        switch (HIWORD(wParam))
        {
        case BN_CLICKED:
            switch (LOWORD(wParam))
            {
            case IDC_FLUSH:
                Flush(filenames);
                return TRUE;
            case IDC_REMOVESYMLINK:
                {
                    int nChoice = ShowMessageBox(IDS_REALLY_REMOVE_SYMLINK, MB_ICONQUESTION | MB_YESNO, IDS_REALLY_REMOVE_SYMLINK);
                    if (nChoice == IDYES)
                        RemoveSymlink(filenames.GetAt(0));
                    return TRUE;
                }
            case IDC_REMOVEMOUNTPOINT:
                {
                    int nChoice = ShowMessageBox(IDS_REALLY_DEL_MOUNT_POINTS, MB_ICONQUESTION | MB_YESNO, IDS_REALLY_DEL_MOUNT_POINTS);
                    if (nChoice == IDYES)
                        RemoveMount(filenames);
                    return TRUE;
                }
            case IDC_EDIT:
                {
                    if (m_bIsMountpoint){
                        CMakeMountPointDlg dlg;
                        dlg.SetDir(filenames.GetAt(0));
                        dlg.SetCell(m_cellName);
                        dlg.SetVol(m_volName);
                        dlg.DoModal();
                    }
                    if (m_bIsSymlink){
                        CMakeSymbolicLinkDlg dlg;
                        CStringA msg(filenames.GetAt(0));
                        int i;
                        if ((i=msg.ReverseFind('\\'))>0)
                            msg=msg.Left(i+1);
                        else if ((i=msg.ReverseFind(':'))>0)
                            msg=msg.Left(i+1)+"\\";
                        dlg.Setbase(msg);
                        dlg.m_strDir = filenames.GetAt(0);
                        dlg.m_strName = GetSymlink(filenames.GetAt(0));
                        dlg.DoModal();
                    }
                }
            case IDC_ATTR_USER_READ:
            case IDC_ATTR_USER_WRITE:
            case IDC_ATTR_USER_EXECUTE:
            case IDC_ATTR_GROUP_READ:
            case IDC_ATTR_GROUP_WRITE:
            case IDC_ATTR_GROUP_EXECUTE:
            case IDC_ATTR_OTHER_READ:
            case IDC_ATTR_OTHER_WRITE:
            case IDC_ATTR_OTHER_EXECUTE:
                SendMessage(GetParent(m_hwnd), PSM_CHANGED, (WPARAM)m_hwnd, 0);     // enable the "apply" button
                return TRUE;
            }
            break;
        }
        break;
    }

    return FALSE;
}