/* Functions.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Enrico Sersale * Date: October 2003 * * This file is part of the GNUstep ClipBook application * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "Functions.h" #include #define ONE_KB 1024 #define ONE_MB (ONE_KB * ONE_KB) #define ONE_GB (ONE_KB * ONE_MB) NSString *fileSizeDescription(unsigned long size) { NSString *sizeStr; char *sign = ""; if(size == 1) { sizeStr = @"1 byte"; } else if(size < 0) { sign = "-"; size = -size; } if(size == 0) { sizeStr = @"0 bytes"; } else if(size < (10 * ONE_KB)) { sizeStr = [NSString stringWithFormat:@"%s %d bytes", sign, (long)size]; } else if(size < (100 * ONE_KB)) { sizeStr = [NSString stringWithFormat:@"%s %3.2fKB", sign, ((double)size / (double)(ONE_KB))]; } else if(size < (100 * ONE_MB)) { sizeStr = [NSString stringWithFormat:@"%s %3.2fMB", sign, ((double)size / (double)(ONE_MB))]; } else { sizeStr = [NSString stringWithFormat:@"%s %3.2fGB", sign, ((double)size / (double)(ONE_GB))]; } return sizeStr; } NSMenuItem *addItemToMenu(NSMenu *menu, NSString *str, NSString *comm, NSString *sel, NSString *key) { NSMenuItem *item = [menu addItemWithTitle: NSLocalizedString(str, comm) action: NSSelectorFromString(sel) keyEquivalent: key]; return item; }