⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 preferencewindowcontroller.mm

📁 lumaqq
💻 MM
📖 第 1 页 / 共 2 页
字号:
					break;				case kSoundIdSystemMessage:					[cache setSystemMessageSoundFile:file];					break;				case kSoundIdGoodSystemMessage:					[cache setGoodSystemMessageSoundFile:file];					break;				case kSoundIdBadSystemMessage:					[cache setBadSystemMessageSoundFile:file];					break;				case kSoundIdUserOnline:					[cache setUserOnlineSoundFile:file];					break;				case kSoundIdLogin:					[cache setLoginSoundFile:file];					break;				case kSoundIdLogout:					[cache setLogoutSoundFile:file];					break;				case kSoundIdKickedOut:					[cache setKickedOutSoundFile:file];					break;				case kSoundIdMessageBlocked:					[cache setMessageBlockedSoundFile:file];					break;			}		}	}		// save window setting	NSEnumerator* e = [[m_mxWindow cells] objectEnumerator];	while(NSCell* cell = [e nextObject]) {		switch([cell tag]) {			case _kTagAlwaysOnTop:				[cache setAlwaysOnTop:[cell state]];				[[m_mainWindowController window] setLevel:([cache alwaysOnTop] ? NSScreenSaverWindowLevel : NSNormalWindowLevel)];				break;			case _kTagAutoEjectMessage:				[cache setAutoEjectMessage:[cell state]];				break;			case _kTagAutoHideMainWindow:				[cache setAutoHideMainWindow:[cell state]];				break;			case _kTagUseTabStyleIMWindow:				[cache setUseTabStyleIMWindow:[cell state]];				break;			case _kTagHideMainWindowWhenClose:				[cache setHideOnClose:[cell state]];				break;			case _kTagDisableOutlineTooltip:				[cache setDisableOutlineTooltip:[cell state]];				break;		}	}		// save overall setting	e = [[m_mxOverall cells] objectEnumerator];	while(NSCell* cell = [e nextObject]) {		switch([cell tag]) {			case _kTagRejectStrangerMessage:				[cache setRejectStrangerMessage:[cell state]];				break;			case _kTagDisableUserOnlineTip:				[cache enableUserOnlineTip:![cell state]];				break;			case _kTagDisplayUnreadCountOnDock:				[cache setDisplayUnreadCountOnDock:[cell state]];				break;			case _kTagJumpIconWhenReceivedIM:				[cache setJumpIconWhenReceivedIM:[cell state]];				break;			case _kTagDisableDockIconAnimation:				[cache setDisableDockIconAnimation:[cell state]];				break;		}	}		// save friend group setting	[cache setUploadFriendGroupMode:[m_mxUpload selectedTag]];		// save recent contact setting	[cache setKeepStrangerInRecentContact:[m_chkKeepStrangerInRecentContactList state]];	[cache setMaxRecentContact:[[m_txtMaxRecentContact stringValue] intValue]];		// remove old key and register new key	NSString* oldKey = [cache extractMessageHotKey];	[cache setExtractMessageHotKey:[m_hotKeyExtractMessage string]];	[[HotKeyManager sharedHotKeyManager] unregisterHotKeyByString:oldKey owner:[[m_mainWindowController me] QQ]];	[m_mainWindowController registerExtractMessageHotKey];		oldKey = [cache screenscrapHotKey];	[cache setScreenscrapHotKey:[m_hotKeyScreenscrap string]];	[[HotKeyManager sharedHotKeyManager] unregisterHotKeyByString:oldKey owner:[[m_mainWindowController me] QQ]];	[m_mainWindowController registerScreenscrapHotKey];}- (void)setupToolbar {	[self addView:m_basicView label:L(@"LQBasic", @"Preference") image:[NSImage imageNamed:kImageBasic]];	[self addView:m_hotKeyView label:L(@"LQHotKey", @"Preference") image:[NSImage imageNamed:kImageHotKey]];	[self addView:m_soundView label:L(@"LQSound", @"Preference") image:[NSImage imageNamed:kImageSound]];	[self addView:m_recentContactView label:L(@"LQRecentContact", @"Preference") image:[NSImage imageNamed:kImageRecentContact]];}#pragma mark -#pragma mark actions- (IBAction)onEnableSound:(id)sender {	[self enableSoundBox:[m_chkEnableSound state]];}- (IBAction)onSoundSchemaChanged:(id)sender {	// get plugin	int schema = [m_pbSoundSchema indexOfSelectedItem];	id<SoundSchemaPlugin> plugin = schema > 0 ? [[m_mainWindowController pluginManager] soundPluginAtIndex:(schema - 1)] : nil;	if(plugin) {		[m_soundFiles removeAllObjects];		for(int i = kSoundIdUserMessage; i <= kSoundIdMessageBlocked; i++)			[m_soundFiles setObject:[plugin soundPath:i] forKey:[NSNumber numberWithInt:i]];		[self onSoundTypeChanged:m_pbSoundType];	} }- (IBAction)onSoundTypeChanged:(id)sender {	// get preference	PreferenceCache* cache = [PreferenceCache cache:[[m_mainWindowController me] QQ]];		NSString* file = [m_soundFiles objectForKey:[NSNumber numberWithInt:[[m_pbSoundType selectedItem] tag]]];	if(file)		[m_txtSoundFile setString:file];	else {		switch([[m_pbSoundType selectedItem] tag]) {			case kSoundIdUserMessage:				[m_txtSoundFile setString:[cache userMessageSoundFile]];				break;			case kSoundIdClusterMessage:				[m_txtSoundFile setString:[cache clusterMessageSoundFile]];				break;			case kSoundIdMobileMessage:				[m_txtSoundFile setString:[cache mobileMessageSoundFile]];				break;			case kSoundIdSystemMessage:				[m_txtSoundFile setString:[cache systemMessageSoundFile]];				break;			case kSoundIdGoodSystemMessage:				[m_txtSoundFile setString:[cache goodSystemMessageSoundFile]];				break;			case kSoundIdBadSystemMessage:				[m_txtSoundFile setString:[cache badSystemMessageSoundFile]];				break;			case kSoundIdUserOnline:				[m_txtSoundFile setString:[cache userOnlineSoundFile]];				break;			case kSoundIdLogin:				[m_txtSoundFile setString:[cache loginSoundFile]];				break;			case kSoundIdLogout:				[m_txtSoundFile setString:[cache logoutSoundFile]];				break;			case kSoundIdKickedOut:				[m_txtSoundFile setString:[cache kickedOutSoundFile]];				break;			case kSoundIdMessageBlocked:				[m_txtSoundFile setString:[cache messageBlockedSoundFile]];				break;		}	}}- (IBAction)onOK:(id)sender {	// validate	NSString* error = [self validate];	if(error) {		[AlertTool showWarning:[self window] message:error];	} else {		[self savePreference];		[self close];	}}- (IBAction)onCancel:(id)sender {	[self close];}- (IBAction)onBrowse:(id)sender {	// get container path	NSString* file = [m_txtSoundFile string];	file = [file stringByDeletingLastPathComponent];	if([file isEmpty]) {		file = @"~";		file = [file stringByExpandingTildeInPath];	}		// open open file panel	NSOpenPanel* panel = [NSOpenPanel openPanel];	[panel setCanChooseDirectories:NO];	[panel setAllowsMultipleSelection:NO];	[panel beginSheetForDirectory:file							 file:nil				   modalForWindow:[self window]					modalDelegate:self				   didEndSelector:@selector(openPanelDidEnd:returnCode:contextInfo:)					  contextInfo:nil];}- (IBAction)onPlay:(id)sender {	NSSound* sound = [[[NSSound alloc] initWithContentsOfFile:[m_txtSoundFile string] byReference:YES] autorelease];	[sound play];}#pragma mark -#pragma mark text field delegate- (void)textDidChange:(NSNotification *)aNotification {	id control = [aNotification object];	if(control == m_txtSoundFile)		[m_soundFiles setObject:[m_txtSoundFile string] forKey:[NSNumber numberWithInt:[[m_pbSoundType selectedItem] tag]]];		}#pragma mark -#pragma mark open panel delegate- (void)openPanelDidEnd:(NSOpenPanel*)panel returnCode:(int)returnCode contextInfo:(void*)contextInfo {	if(returnCode = NSOKButton) {		[m_txtSoundFile setString:[panel filename]];		[m_soundFiles setObject:[panel filename] forKey:[NSNumber numberWithInt:[[m_pbSoundType selectedItem] tag]]];	}}@end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -