青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

逛奔的蝸牛

我不聰明,但我會很努力

   ::  :: 新隨筆 ::  ::  :: 管理 ::
NSWindow的風格一直只有兩種,很難看。Panel倒是有種HUD風格的,但window沒有,畢竟window和panel的titile大小還
是不一樣的,網上有關于HUDWindow的代碼,不過那是把window的titlebar給隱藏掉,自己畫上三個button和右下角可以
resize的東東,如果用這個window來彈出sheet的話會很詭異的出現……    就是sheet從window的最上面彈出來了,底層window看不到titlebar了~
NSWindow在設置成Texture模式之后可以設置背景色,不過這是單色,漸進色設置不了。最簡單的方法就是先給window設置背景色,再覆蓋上一層NSView來填充content的顏色,不過這樣不是渾然一體的,每個window都要這樣搞的話還是很麻煩的。
所以只能從被apple隱藏起來的方法里找辦法了~所以class-dump出來看看~
你會發現在NSWindow.h中繪制界面的函數幾乎沒有,不想那些繼承與NSView的控件一樣,那么多私有的繪制方法。那window是怎樣繪制的呢。

細觀察,你會發現NSWindow有很多擴展類,而且window功能性的東西是非常多的,所以它的重繪肯定是委托給別人來做了(這一點通過獲取
NSWindow的closebutton可以知道,那三個button都不是標準的NSButton,而是
NSThemeButton?記不太清楚了)。經過查找可以發現函數
+(Class)frameViewClassForStyleMask:(unsigned int)styleMask
非常可疑,而且dump出來的類有一個叫做NSThemeFrame的,查看它的類方法,哈哈,發現了吧,全是跟window有關的繪制方法。

所以接下來的事情就很簡單了,寫一個類繼承 NSThemeFrame
#import <Cocoa/Cocoa.h>
#import "NSThemeFrame.h"
@interface KAThemeFrame : NSThemeFrame
{
}
@end


那么需要重寫哪些函數呢~我們的目標是重畫TitleBar,具體窗體的內容不需要重畫,因為反正有一個NSView要覆蓋在上面的,所以一個方法就足夠了,廢話少說,上代碼
#import "KAThemeFrame.h"
 
@implementation KAThemeFrame
 
- (id)contentFill
{
// This color is used only when dragging.
// Please don't try to modify the value.
return [NSColor colorWithCalibratedWhite:.13 alpha:1];
}
 
- (id)frameColor
{
return [NSColor redColor];
}
 
- (void)_drawTitleBar:(NSRect)rect
{
NSRect titleRect = [self titlebarRect];
 
// Panel style
if([self _isUtility])
{
KAGradient *titleGradient = [KAGradient gradientWithStartingColor: [NSColor colorWithCalibratedRed:0.423f green:0.423f blue:0.423f alpha:1.0]
endingColor: [NSColor colorWithCalibratedRed:0.365f green:0.365f blue:0.365f alpha:1.0]];
[titleGradient drawInRect:titleRect angle:-90];
}
// Window style
else
{
float radius = 4;
NSBezierPath *borderPath = [NSBezierPath bezierPathWithRoundedRect:titleRect cornerRadius:radius inCorners:(OSTopLeftCorner | OSTopRightCorner)];
NSBezierPath *titlebarPath = [NSBezierPath bezierPathWithRoundedRect:NSInsetRect(titleRect, 1, 1) cornerRadius:radius-1 inCorners:(OSTopLeftCorner | OSTopRightCorner)];
 
KAGradient *titleGradient = [KAGradient gradientWithStartingColor: [NSColor colorWithCalibratedRed:0.423f green:0.423f blue:0.423f alpha:1.0]
endingColor: [NSColor colorWithCalibratedRed:0.365f green:0.365f blue:0.365f alpha:1.0]];
KAGradient *borderGradient = [KAGradient gradientWithStartingColor: [NSColor colorWithCalibratedRed:0.423f green:0.423f blue:0.423f alpha:1.0]
endingColor: [NSColor colorWithCalibratedRed:0.365f green:0.365f blue:0.365f alpha:1.0]];
 
 
[[NSColor clearColor] set];
NSRectFill(titleRect);
 
[borderGradient drawInBezierPath:borderPath angle:-90];
[titleGradient drawInBezierPath:titlebarPath angle:-90];
 
}
[self _drawTitleStringIn:[self _titlebarTitleRect] withColor:[NSColor colorWithDeviceWhite:.75 alpha:1]];

具體請看:http://www.cocoachina.com/macdev/cocoa/2010/0122/352.html

@import url(http://www.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
posted on 2011-12-09 04:17 逛奔的蝸牛 閱讀(2995) 評論(0)  編輯 收藏 引用 所屬分類: Cocoa
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩黄色一区二区| 91久久久久久国产精品| 亚洲国产精品尤物yw在线观看| 国产精品久久久久av免费| 欧美电影资源| 尹人成人综合网| 亚洲欧美制服另类日韩| 99热在这里有精品免费| 另类综合日韩欧美亚洲| 久久精品综合网| 国产精品日韩欧美综合| 日韩午夜电影av| 日韩午夜av在线| 欧美黄色网络| 亚洲国产高潮在线观看| 亚洲激情女人| 久久综合色88| 欧美激情第二页| 亚洲国产激情| 猛干欧美女孩| 亚洲国产1区| 亚洲精品韩国| 欧美电影在线| 亚洲经典三级| 中文av一区特黄| 欧美日韩在线精品| 99视频超级精品| 亚洲一区二区三区在线看| 欧美日韩精品一区二区三区四区| 亚洲经典三级| 亚洲一二三区精品| 欧美性猛交一区二区三区精品| 99精品久久免费看蜜臀剧情介绍| 在线亚洲精品| 国产精品久久久久久久久婷婷| 在线综合亚洲欧美在线视频| 亚洲香蕉视频| 国产欧美一区二区精品忘忧草| 欧美一区高清| 欧美xx69| 中国女人久久久| 国产精品日韩| 久久久综合香蕉尹人综合网| 欧美韩日一区| 亚洲午夜精品国产| 国产精品日韩一区| 久久裸体艺术| 亚洲毛片av在线| 午夜久久资源| 影音先锋成人资源站| 欧美激情一二三区| 亚洲一区二区三区欧美 | 亚洲性视频网址| 国产伦精品一区二区三区高清版| 久久精品电影| 亚洲日本免费| 久久久久久久久久久久久女国产乱| 亚洲成人原创| 国产精品久久7| 久久露脸国产精品| 中文在线不卡视频| 蜜桃av一区二区三区| 一本色道久久88精品综合| 国产欧美韩日| 欧美福利专区| 欧美在线视频播放| 亚洲人妖在线| 久久综合网色—综合色88| 99精品福利视频| 国产一区视频网站| 欧美日韩在线一区| 久久综合免费视频影院| 国产精品99久久久久久www| 欧美91大片| 久久精品国亚洲| 亚洲视频在线一区观看| 一区二区在线观看视频在线观看 | 欧美精品v国产精品v日韩精品| 亚洲一区二区三区在线看 | 免费成人高清| 午夜精品久久久久| 亚洲精品在线三区| 精品av久久久久电影| 国产精品一区二区久久精品| 欧美精品免费播放| 久久久久国产免费免费| 亚洲在线视频一区| 亚洲精品日本| 亚洲激情精品| 欧美刺激午夜性久久久久久久| 午夜精品在线观看| 亚洲一区二区三区影院| 亚洲精品影院在线观看| 在线观看国产精品网站| 国产精品丝袜久久久久久app| 欧美日本在线播放| 欧美成人免费全部| 另类激情亚洲| 久久裸体视频| 老司机免费视频一区二区| 久久精品国产亚洲一区二区三区| 亚洲天堂黄色| 亚洲一区二区3| 夜夜爽www精品| 日韩网站在线观看| 日韩网站在线| 一卡二卡3卡四卡高清精品视频| 91久久精品国产91久久| 亚洲国产成人久久综合| 亚洲国产精选| 日韩视频三区| 亚洲一本大道在线| 亚洲欧美另类国产| 亚洲欧美视频一区| 欧美在线播放| 久久久久久网| 免费视频一区二区三区在线观看| 免费成人在线观看视频| 欧美二区视频| 欧美日韩国产91| 国产精品va| 国产日韩精品综合网站| 狠狠色噜噜狠狠狠狠色吗综合| 黄色精品一区二区| 亚洲高清视频在线| 99re热精品| 性欧美8khd高清极品| 久久精视频免费在线久久完整在线看| 久久久精品日韩欧美| 欧美+日本+国产+在线a∨观看| 亚洲国产专区| 中文亚洲字幕| 久久美女性网| 欧美日韩在线观看视频| 国产裸体写真av一区二区| 影院欧美亚洲| 一区二区久久| 久久久国产午夜精品| 欧美激情网站在线观看| 亚洲毛片在线| 欧美在线视频在线播放完整版免费观看 | 久久综合久久综合这里只有精品| 欧美/亚洲一区| 欧美视频中文字幕在线| 黄色欧美成人| 亚洲视频在线一区| 狂野欧美一区| 99成人精品| 久久久精品免费视频| 欧美日韩成人网| 国外成人免费视频| 亚洲视频一二三| 久久亚洲美女| 一区二区三区国产精华| 久久青草欧美一区二区三区| 欧美色精品在线视频| 在线不卡免费欧美| 亚洲欧美清纯在线制服| 欧美激情亚洲视频| 香蕉成人久久| 国产精品成人一区二区网站软件 | 国产精品国产三级国产a| 在线观看av不卡| 亚洲男人的天堂在线| 亚洲电影免费在线| 久久精品91久久久久久再现| 欧美小视频在线观看| 最新成人av在线| 久久中文字幕一区| 午夜视频久久久久久| 欧美日韩视频专区在线播放| 依依成人综合视频| 久久久久久有精品国产| 在线亚洲精品| 欧美连裤袜在线视频| 亚洲激情女人| 你懂的视频欧美| 久久精品综合一区| 国产亚洲欧美日韩在线一区| 亚洲欧美变态国产另类| 亚洲精品影院| 欧美精品免费视频| 91久久国产精品91久久性色| 久久日韩精品| 久久黄色网页| 激情自拍一区| 免费观看30秒视频久久| 久久精视频免费在线久久完整在线看| 国产伦一区二区三区色一情| 亚洲欧美日本伦理| 亚洲影音先锋| 国产亚洲福利| 久久一区二区三区四区| 久久国产66| 在线观看日韩| 欧美国产日韩精品| 欧美精品www| 中文国产成人精品久久一| 亚洲卡通欧美制服中文| 欧美日韩一区二区视频在线观看|