在Dock图标上画进度条
来源:互联网 发布:2017国二c语言题库 编辑:程序博客网 时间:2024/05/22 03:36
如果你用过Toast这个刻录软件,你会发现在刻录的时候,Dock图标上会有一个进度条,表示刻录的进度。如果你在用XCode,编译的时候图标上也会有一个进度条表示编译的进度。
其实在Dock图标上画进度条是很简单的事情,你只需要做如下工作即可:
要在Dock上显示图标,最简单的方法是使用NSApp的setApplicationIconImage:方法。我们只要创建一个NSImage,将应用程序的图标贴上,再在上面画上一个进度条,接着使用NSApp setApplicationIconImage:方法。
在需要更新进度的时候,重新画出相应长度的进度条,再重新设置一下应用程序的图标,就可以了。
大致的代码如下:
- -(void) updateDockTile
- {
- NSImage* dockIcon = [[[NSImage alloc] initWithSize: NSMakeSize(128,128)] autorelease];
- [dockIcon lockFocus];
- NSRect box = { {4, 4}, {120, 16} };
- // App icon:
- [[NSImage imageNamed: @"NSApplicationIcon"] dissolveToPoint: NSZeroPoint fraction: 1.0];
- // Track & Outline:
- [[NSColor whiteColor] set];
- [NSBezierPath fillRect: box];
- [[NSColor blackColor] set];
- [NSBezierPath strokeRect: box];
- // State fill:
- box = NSInsetRect( box, 1, 1 );
- [[NSColor knobColor] set];
- box.size.width = (box.size.width / (max -min)) * (current -min);
- NSImage* prImg = [NSImage imageNamed: @"MiniProgressGradient"];
- NSRect picBox = { { 0,0 }, { 0,0 } };
- if( prImg )
- {
- picBox.size = [prImg size];
- [prImg drawInRect: box fromRect: picBox operation: NSCompositeCopy fraction: 1.0];
- }
- else
- NSRectFill( box );
- [dockIcon unlockFocus];
- [NSApp setApplicationIconImage: dockIcon];
- }
你可以在这里下载例子。源码作者是Uli Kusterer。
- 在Dock图标上画进度条
- 类似chrome在dock图标上添加任务进度圆饼
- 解决Ubuntu下chrome总是在Dock上留两个图标
- 强迫症犯了!修改Mac OS X的便笺在Dock上的图标!
- Mac系统如何隐藏Dock上的图标
- [Mac OS X] 在Dock上增加文件夹,存放APP -- 堆栈@dock
- [MAC]在Dock上添加最近使用的应用程序
- OSX脚本:禁止系统自动添加AppStore图标到用户Dock上
- MAC 如何隐藏dock栏上你不想看见的图标
- 在菜单上增加图标
- OSX: 私人定制Dock默认程序图标
- Ubuntu上在启动器上放图标
- Ubuntu上在启动器上放图标
- 如何在网页上实现进度条
- 在WEB页面上实现进度条
- 在WEB页面上显示进度条
- 在activity的title上显示进度条
- 显示在标题上的进度条
- 日志类
- python hide语句作用
- 存储管理
- 显示消息提示对话框,不输出页面内容,并返回上一页
- 查询IP所在地
- 在Dock图标上画进度条
- openswan klips数据加解密过程
- QEvent postEvent/sendEvent
- 怎样才是一名好的DBA——战略和战术
- 图片操作:生成缩略图、添加水印、截取图片等
- 输出整数n的二进制形式
- 查找最小的K个元素
- 文本文件从磁盘读取、写入
- cvQueryFrame