Changeset 22662
- Timestamp:
- 02/21/2008 07:04:08 PM (9 months ago)
- Files:
-
- trunk/Adium.xcodeproj/project.pbxproj (modified) (16 diffs)
- trunk/Frameworks/RBSplitView (added)
- trunk/Frameworks/RBSplitView/Documentation (added)
- trunk/Frameworks/RBSplitView/Documentation/Programming Topics.rtfd (added)
- trunk/Frameworks/RBSplitView/Documentation/Programming Topics.rtfd/1__#$!@%!#__Pasted Graphic.tiff (added)
- trunk/Frameworks/RBSplitView/Documentation/Programming Topics.rtfd/Pasted Graphic 1.tiff (added)
- trunk/Frameworks/RBSplitView/Documentation/Programming Topics.rtfd/Pasted Graphic 3.tiff (added)
- trunk/Frameworks/RBSplitView/Documentation/Programming Topics.rtfd/Pasted Graphic.tiff (added)
- trunk/Frameworks/RBSplitView/Documentation/Programming Topics.rtfd/TXT.rtf (added)
- trunk/Frameworks/RBSplitView/Documentation/RBSplitSubview.rtf (added)
- trunk/Frameworks/RBSplitView/Documentation/RBSplitView.rtf (added)
- trunk/Frameworks/RBSplitView/English.lproj (added)
- trunk/Frameworks/RBSplitView/English.lproj/RBSplitSubviewInspector.nib (added)
- trunk/Frameworks/RBSplitView/English.lproj/RBSplitSubviewInspector.nib/classes.nib (added)
- trunk/Frameworks/RBSplitView/English.lproj/RBSplitSubviewInspector.nib/keyedobjects.nib (added)
- trunk/Frameworks/RBSplitView/English.lproj/RBSplitSubviewSizeInspector.nib (added)
- trunk/Frameworks/RBSplitView/English.lproj/RBSplitSubviewSizeInspector.nib/classes.nib (added)
- trunk/Frameworks/RBSplitView/English.lproj/RBSplitSubviewSizeInspector.nib/keyedobjects.nib (added)
- trunk/Frameworks/RBSplitView/English.lproj/RBSplitViewInspector.nib (added)
- trunk/Frameworks/RBSplitView/English.lproj/RBSplitViewInspector.nib/classes.nib (added)
- trunk/Frameworks/RBSplitView/English.lproj/RBSplitViewInspector.nib/keyedobjects.nib (added)
- trunk/Frameworks/RBSplitView/English.lproj/RBSplitViewPalette.nib (added)
- trunk/Frameworks/RBSplitView/English.lproj/RBSplitViewPalette.nib/classes.nib (added)
- trunk/Frameworks/RBSplitView/English.lproj/RBSplitViewPalette.nib/keyedobjects.nib (added)
- trunk/Frameworks/RBSplitView/English.lproj/SampleApp.nib (added)
- trunk/Frameworks/RBSplitView/English.lproj/SampleApp.nib/classes.nib (added)
- trunk/Frameworks/RBSplitView/English.lproj/SampleApp.nib/keyedobjects.nib (added)
- trunk/Frameworks/RBSplitView/Framework-Info.plist (added)
- trunk/Frameworks/RBSplitView/Palette (added)
- trunk/Frameworks/RBSplitView/Palette/Palette-Info.plist (added)
- trunk/Frameworks/RBSplitView/Palette/palette.table (added)
- trunk/Frameworks/RBSplitView/Palette/RBSplitSubview.ibclassdescription (added)
- trunk/Frameworks/RBSplitView/Palette/RBSplitView.ibclassdescription (added)
- trunk/Frameworks/RBSplitView/Palette/RBSplitViewPalette.h (added)
- trunk/Frameworks/RBSplitView/Palette/RBSplitViewPalette.m (added)
- trunk/Frameworks/RBSplitView/Palette/RBSplitViewPalette.png (added)
- trunk/Frameworks/RBSplitView/Palette/SplitImage.png (added)
- trunk/Frameworks/RBSplitView/Palette/Thumb8.png (added)
- trunk/Frameworks/RBSplitView/Palette/Thumb9.png (added)
- trunk/Frameworks/RBSplitView/RBSplitView.xcodeproj (added)
- trunk/Frameworks/RBSplitView/RBSplitView.xcodeproj/project.pbxproj (added)
- trunk/Frameworks/RBSplitView/RB.xcconfig (added)
- trunk/Frameworks/RBSplitView/Read Me.rtfd (added)
- trunk/Frameworks/RBSplitView/Read Me.rtfd/rb.png (added)
- trunk/Frameworks/RBSplitView/Read Me.rtfd/TXT.rtf (added)
- trunk/Frameworks/RBSplitView/Source (added)
- trunk/Frameworks/RBSplitView/Source/RBSplitSubview.h (added)
- trunk/Frameworks/RBSplitView/Source/RBSplitSubview.m (added)
- trunk/Frameworks/RBSplitView/Source/RBSplitView.h (added)
- trunk/Frameworks/RBSplitView/Source/RBSplitView.m (added)
- trunk/Frameworks/RBSplitView/Source/RBSplitView_Prefix.pch (added)
- trunk/Frameworks/RBSplitView/Source/RBSplitViewPrivateDefines.h (added)
- trunk/Plugins/Dual Window Interface/AIMessageViewController.h (modified) (2 diffs)
- trunk/Plugins/Dual Window Interface/AIMessageViewController.m (modified) (5 diffs)
- trunk/Plugins/Dual Window Interface/MessageView.nib/classes.nib (modified) (1 diff)
- trunk/Plugins/Dual Window Interface/MessageView.nib/info.nib (modified) (2 diffs)
- trunk/Plugins/Dual Window Interface/MessageView.nib/keyedobjects.nib (modified) (60 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/Adium.xcodeproj/project.pbxproj
r22620 r22662 31 31 34611CCF09B67ABC00870036 /* PBXTargetDependency */, 32 32 346637760D41547F006C9034 /* PBXTargetDependency */, 33 34D1AC840D69958000470520 /* PBXTargetDependency */, 33 34 ); 34 35 name = "External Frameworks"; … … 665 666 34D0FDD80956187700DCB678 /* ESPersonalPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = 34D0FDD60956187700DCB678 /* ESPersonalPreferences.m */; }; 666 667 34D0FF8509569FE500DCB678 /* PersonalPreferencesDefaults.plist in Resources */ = {isa = PBXBuildFile; fileRef = 34D0FF8409569FE500DCB678 /* PersonalPreferencesDefaults.plist */; }; 668 34D1AC850D69958900470520 /* RBSplitView.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34D1AB5C0D693DEB00470520 /* RBSplitView.framework */; }; 669 34D1AC880D69959700470520 /* RBSplitView.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 34D1AB5C0D693DEB00470520 /* RBSplitView.framework */; }; 667 670 34D8329007CBD5E2006466F2 /* Contact Info List Theme.plist in Resources */ = {isa = PBXBuildFile; fileRef = 34D8328E07CBD5E2006466F2 /* Contact Info List Theme.plist */; }; 668 671 34D8329107CBD5E2006466F2 /* Contact Info List Layout.plist in Resources */ = {isa = PBXBuildFile; fileRef = 34D8328F07CBD5E2006466F2 /* Contact Info List Layout.plist */; }; … … 1448 1451 remoteInfo = AdiumLibpurple; 1449 1452 }; 1453 34D1AB590D693DEB00470520 /* PBXContainerItemProxy */ = { 1454 isa = PBXContainerItemProxy; 1455 containerPortal = 34D1AB510D693DEB00470520 /* RBSplitView.xcodeproj */; 1456 proxyType = 2; 1457 remoteGlobalIDString = 8D1AC9740486D14A00FE50C9; 1458 remoteInfo = Palette; 1459 }; 1460 34D1AB5B0D693DEB00470520 /* PBXContainerItemProxy */ = { 1461 isa = PBXContainerItemProxy; 1462 containerPortal = 34D1AB510D693DEB00470520 /* RBSplitView.xcodeproj */; 1463 proxyType = 2; 1464 remoteGlobalIDString = D5E002A107328E1100594182; 1465 remoteInfo = Framework; 1466 }; 1467 34D1AB5D0D693DEB00470520 /* PBXContainerItemProxy */ = { 1468 isa = PBXContainerItemProxy; 1469 containerPortal = 34D1AB510D693DEB00470520 /* RBSplitView.xcodeproj */; 1470 proxyType = 2; 1471 remoteGlobalIDString = D5E003B9073298FC00594182; 1472 remoteInfo = Library; 1473 }; 1474 34D1AB5F0D693DEB00470520 /* PBXContainerItemProxy */ = { 1475 isa = PBXContainerItemProxy; 1476 containerPortal = 34D1AB510D693DEB00470520 /* RBSplitView.xcodeproj */; 1477 proxyType = 2; 1478 remoteGlobalIDString = D5EA8A09074CF5AB00AE807E; 1479 remoteInfo = SampleApp; 1480 }; 1481 34D1AC830D69958000470520 /* PBXContainerItemProxy */ = { 1482 isa = PBXContainerItemProxy; 1483 containerPortal = 34D1AB510D693DEB00470520 /* RBSplitView.xcodeproj */; 1484 proxyType = 1; 1485 remoteGlobalIDString = D5E002A007328E1100594182; 1486 remoteInfo = Framework; 1487 }; 1450 1488 34D834DC07CBE7BB006466F2 /* PBXContainerItemProxy */ = { 1451 1489 isa = PBXContainerItemProxy; … … 1552 1590 dstSubfolderSpec = 10; 1553 1591 files = ( 1592 34D1AC880D69959700470520 /* RBSplitView.framework in CopyFiles */, 1554 1593 11EE1CCF0CDD01120097F246 /* libglib.framework in CopyFiles */, 1555 1594 346637690D415457006C9034 /* FriBidi.framework in CopyFiles */, … … 3223 3262 34D1897E076114C00075A380 /* AILocalizationButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AILocalizationButton.m; path = "Frameworks/Adium Framework/Source/AILocalizationButton.m"; sourceTree = "<group>"; }; 3224 3263 34D189B1076131850075A380 /* AILocalizationAssistance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AILocalizationAssistance.h; path = "Frameworks/Adium Framework/Source/AILocalizationAssistance.h"; sourceTree = "<group>"; }; 3264 34D1AB510D693DEB00470520 /* RBSplitView.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RBSplitView.xcodeproj; path = Frameworks/RBSplitView/RBSplitView.xcodeproj; sourceTree = "<group>"; }; 3265 34D1AC5B0D69450200470520 /* RBSplitSubview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RBSplitSubview.h; path = Frameworks/RBSplitView/Source/RBSplitSubview.h; sourceTree = "<group>"; }; 3266 34D1AC5C0D69450200470520 /* RBSplitView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RBSplitView.h; path = Frameworks/RBSplitView/Source/RBSplitView.h; sourceTree = "<group>"; }; 3225 3267 34D2E8670758BB0B0054C56D /* ESFileTransferPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ESFileTransferPreferences.h; path = Source/ESFileTransferPreferences.h; sourceTree = "<group>"; }; 3226 3268 34D2E8680758BB0B0054C56D /* ESFileTransferPreferences.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ESFileTransferPreferences.m; path = Source/ESFileTransferPreferences.m; sourceTree = "<group>"; }; … … 4149 4191 346636AC0D415440006C9034 /* FriBidi.framework in Frameworks */, 4150 4192 F51BCEEA0A15793E000FDC06 /* AIHyperlinks.framework in Frameworks */, 4193 34D1AC850D69958900470520 /* RBSplitView.framework in Frameworks */, 4151 4194 34D835D907CBED8F006466F2 /* AIUtilities.framework in Frameworks */, 4152 4195 3448758E06D1EBDF00DA778C /* Cocoa.framework in Frameworks */, … … 4375 4418 815D37460A765E83009338C2 /* CoreServices.framework */, 4376 4419 638392F609D4D67A0067B9B7 /* Sparkle.framework */, 4420 34D1AB510D693DEB00470520 /* RBSplitView.xcodeproj */, 4377 4421 3496A8E707CE6CA30055BBAB /* AIHyperlinks.framework.xcodeproj */, 4378 4422 3448717006D1E57700DA778C /* AIUtilities.framework.xcodeproj */, … … 4434 4478 340C1A330BD58F9000D09235 /* DiskImageUtilities.h */, 4435 4479 340C1A320BD58F9000D09235 /* DiskImageUtilities.m */, 4480 34D1AC5B0D69450200470520 /* RBSplitSubview.h */, 4481 34D1AC5C0D69450200470520 /* RBSplitView.h */, 4436 4482 ); 4437 4483 name = Other; … … 5538 5584 ); 5539 5585 name = "Localization Assistance"; 5586 sourceTree = "<group>"; 5587 }; 5588 34D1AB520D693DEB00470520 /* Products */ = { 5589 isa = PBXGroup; 5590 children = ( 5591 34D1AB5A0D693DEB00470520 /* RBSplitView.palette */, 5592 34D1AB5C0D693DEB00470520 /* RBSplitView.framework */, 5593 34D1AB5E0D693DEB00470520 /* libRBSplitView.a */, 5594 34D1AB600D693DEB00470520 /* SampleApp.app */, 5595 ); 5596 name = Products; 5540 5597 sourceTree = "<group>"; 5541 5598 }; … … 8178 8235 ProjectRef = 346636860D41541A006C9034 /* FriBidi.xcodeproj */; 8179 8236 }, 8237 { 8238 ProductGroup = 34D1AB520D693DEB00470520 /* Products */; 8239 ProjectRef = 34D1AB510D693DEB00470520 /* RBSplitView.xcodeproj */; 8240 }, 8180 8241 ); 8181 8242 projectRoot = ""; … … 8231 8292 path = AIHyperlinks.framework; 8232 8293 remoteRef = 3496A8ED07CE6CCB0055BBAB /* PBXContainerItemProxy */; 8294 sourceTree = BUILT_PRODUCTS_DIR; 8295 }; 8296 34D1AB5A0D693DEB00470520 /* RBSplitView.palette */ = { 8297 isa = PBXReferenceProxy; 8298 fileType = wrapper.cfbundle; 8299 path = RBSplitView.palette; 8300 remoteRef = 34D1AB590D693DEB00470520 /* PBXContainerItemProxy */; 8301 sourceTree = BUILT_PRODUCTS_DIR; 8302 }; 8303 34D1AB5C0D693DEB00470520 /* RBSplitView.framework */ = { 8304 isa = PBXReferenceProxy; 8305 fileType = wrapper.framework; 8306 path = RBSplitView.framework; 8307 remoteRef = 34D1AB5B0D693DEB00470520 /* PBXContainerItemProxy */; 8308 sourceTree = BUILT_PRODUCTS_DIR; 8309 }; 8310 34D1AB5E0D693DEB00470520 /* libRBSplitView.a */ = { 8311 isa = PBXReferenceProxy; 8312 fileType = archive.ar; 8313 path = libRBSplitView.a; 8314 remoteRef = 34D1AB5D0D693DEB00470520 /* PBXContainerItemProxy */; 8315 sourceTree = BUILT_PRODUCTS_DIR; 8316 }; 8317 34D1AB600D693DEB00470520 /* SampleApp.app */ = { 8318 isa = PBXReferenceProxy; 8319 fileType = wrapper.application; 8320 path = SampleApp.app; 8321 remoteRef = 34D1AB5F0D693DEB00470520 /* PBXContainerItemProxy */; 8233 8322 sourceTree = BUILT_PRODUCTS_DIR; 8234 8323 }; … … 9504 9593 targetProxy = 34C7C62C09EC4EBE0060FB4A /* PBXContainerItemProxy */; 9505 9594 }; 9595 34D1AC840D69958000470520 /* PBXTargetDependency */ = { 9596 isa = PBXTargetDependency; 9597 name = Framework; 9598 targetProxy = 34D1AC830D69958000470520 /* PBXContainerItemProxy */; 9599 }; 9506 9600 34F3B9AB0BDF177C0011AB34 /* PBXTargetDependency */ = { 9507 9601 isa = PBXTargetDependency; … … 11475 11569 ); 11476 11570 HEADER_SEARCH_PATHS = ( 11571 Frameworks/RBSplitView/Source, 11477 11572 "$(HEADER_SEARCH_PATHS_QUOTED_1)", 11478 11573 "$(HEADER_SEARCH_PATHS_QUOTED_2)", … … 12104 12199 ); 12105 12200 HEADER_SEARCH_PATHS = ( 12201 Frameworks/RBSplitView/Source, 12106 12202 "$(HEADER_SEARCH_PATHS_QUOTED_1)", 12107 12203 "$(HEADER_SEARCH_PATHS_QUOTED_2)", … … 12132 12228 ); 12133 12229 HEADER_SEARCH_PATHS = ( 12230 Frameworks/RBSplitView/Source, 12134 12231 "$(HEADER_SEARCH_PATHS_QUOTED_1)", 12135 12232 "$(HEADER_SEARCH_PATHS_QUOTED_2)", … … 12160 12257 ); 12161 12258 HEADER_SEARCH_PATHS = ( 12259 Frameworks/RBSplitView/Source, 12162 12260 "$(HEADER_SEARCH_PATHS_QUOTED_1)", 12163 12261 "$(HEADER_SEARCH_PATHS_QUOTED_2)", trunk/Plugins/Dual Window Interface/AIMessageViewController.h
r22314 r22662 22 22 @class AIAccount, AIListContact, AIListObject, AIAccountSelectionView, AIMessageTabSplitView, AIMessageEntryTextView; 23 23 @class AIMessageWindowController, AIMessageWindowOutgoingScrollView; 24 @class RBSplitView; 24 25 25 26 @interface AIMessageViewController : AIObject <AIListControllerDelegate> { … … 27 28 28 29 //Split views 29 IBOutlet AIMessageTabSplitView *splitView_textEntryHorizontal;30 IBOutlet RBSplitView *splitView_textEntryHorizontal; 30 31 31 32 trunk/Plugins/Dual Window Interface/AIMessageViewController.m
r22639 r22662 53 53 54 54 #import <PSMTabBarControl/NSBezierPath_AMShading.h> 55 56 #import "RBSplitView.h" 55 57 56 58 //Heights and Widths … … 147 149 name:@"toggleUserlist" 148 150 object:nil]; 149 150 [splitView_textEntryHorizontal setDividerThickness:3]; //Default is 9 151 [splitView_textEntryHorizontal setDrawsDivider:NO]; 152 151 153 152 //Observe general preferences for sending keys 154 153 [[adium preferenceController] registerPreferenceObserver:self forGroup:PREF_GROUP_GENERAL]; … … 253 252 254 253 [view_accountSelection setLeftColor:leftColor rightColor:rightColor]; 255 [splitView_textEntryHorizontal setLeftColor:leftColor rightColor:rightColor]; 254 //XXX 255 // [splitView_textEntryHorizontal setLeftColor:leftColor rightColor:rightColor]; 256 256 } 257 257 … … 825 825 [scrollView_outgoing setHasVerticalScroller:(height < [textView_outgoing desiredSize].height)]; 826 826 827 NSRect tempFrame, newFrame; 828 BOOL changed = NO; 829 830 //Size the outgoing text view to the desired height 831 tempFrame = [scrollView_outgoing frame]; 832 newFrame = NSMakeRect(tempFrame.origin.x, 833 [splitView_textEntryHorizontal frame].size.height - height - [splitView_textEntryHorizontal dividerThickness], 834 tempFrame.size.width, 835 height); 836 if (!NSEqualRects(tempFrame, newFrame)) { 837 #ifdef TEXTVIEW_HEIGHT_DEBUG 838 AILogWithSignature(@"Old %@, new %@", NSStringFromRect(tempFrame), NSStringFromRect(newFrame)); 839 #endif 840 [scrollView_outgoing setFrame:newFrame]; 841 [scrollView_outgoing setNeedsDisplay:YES]; 842 changed = YES; 843 } 844 845 if (changed) { 846 [splitView_textEntryHorizontal adjustSubviews]; 847 #ifdef TEXTVIEW_HEIGHT_DEBUG 848 AILogWithSignature(@"Final result %@", NSStringFromRect([scrollView_outgoing frame])); 849 #endif 850 } 827 ignorePositionChangesForMinimumHeight = YES; 828 //First, set the text entry subview to the exact height we want 829 [[splitView_textEntryHorizontal subviewAtPosition:1] setMinDimension:height andMaxDimension:height]; 830 [splitView_textEntryHorizontal adjustSubviews]; 831 832 //Now, allow it to be resized again between the text view's minimum size and the max size which is based on the splitview's height 833 [[splitView_textEntryHorizontal subviewAtPosition:1] setMinDimension:[self _textEntryViewProperHeightIgnoringUserMininum:YES] andMaxDimension:([splitView_textEntryHorizontal frame].size.height * MESSAGE_VIEW_MIN_HEIGHT_RATIO)]; 834 ignorePositionChangesForMinimumHeight = NO; 851 835 } 852 836 … … 1122 1106 } 1123 1107 1124 1125 1108 //Split Views -------------------------------------------------------------------------------------------------- 1126 1109 #pragma mark Split Views 1127 #if 1 1128 /* 1129 * @brief Returns the maximum constraint of the split pane 1130 * 1131 * For the horizontal split, we prevent the message view from growing so large that the text entry view 1132 * is forced below its desired height. 1133 */ 1134 - (float)splitView:(NSSplitView *)sender constrainMaxCoordinate:(float)proposedMax ofSubviewAt:(int)offset 1135 { 1136 if (sender == splitView_textEntryHorizontal) { 1137 float height = [self _textEntryViewProperHeightIgnoringUserMininum:YES]; 1110 1111 // This method will be called after a RBSplitView is resized with setFrameSize: but before 1112 // adjustSubviews is called on it. 1113 - (void)splitView:(RBSplitView*)sender wasResizedFrom:(float)oldDimension to:(float)newDimension 1114 { 1115 [[sender subviewAtPosition:0] setDimension:[[sender subviewAtPosition:0] dimension] + (newDimension - oldDimension)]; 1116 } 1117 1118 // This method will be called whenever a subview's frame is changed, usually from inside adjustSubviews' final loop. 1119 // You'd normally use this to move some auxiliary view to keep it aligned with the subview. 1120 - (void)splitView:(RBSplitView*)sender changedFrameOfSubview:(RBSplitSubview*)subview from:(NSRect)fromRect to:(NSRect)toRect 1121 { 1122 if ([sender subviewAtPosition:1] == subview) { 1123 if (!ignorePositionChangesForMinimumHeight) 1124 entryMinHeight = NSHeight(toRect); 1138 1125 #ifdef TEXTVIEW_HEIGHT_DEBUG 1139 AILogWithSignature(@"Proposed %f. Constraining max to %f: %f - %f + %f. My reported max is %f", proposedMax, ([sender frame].size.height - (height+ 1140 [sender dividerThickness])), 1141 [sender frame].size.height, height , 1142 [sender dividerThickness], 1143 ([sender respondsToSelector:@selector(maxPossiblePositionOfDividerAtIndex:)] ? [sender maxPossiblePositionOfDividerAtIndex:0] : 0.0) 1144 ); 1126 AILogWithSignature(@"After constraining the split position, entryMinHeight is now %i", entryMinHeight); 1145 1127 #endif 1146 1128 1147 return ([sender frame].size.height - (height + [sender dividerThickness]));1148 1149 } else {1150 NSLog(@"Unknown split view %@",sender);1151 return 0;1152 }1153 }1154 1155 /*1156 * @brief Returns the mininum constraint of the split pane1157 *1158 * For both splitpanes, we prevent the message view from dropping below 50% of the window's width and height1159 */1160 - (float)splitView:(NSSplitView *)sender constrainMinCoordinate:(float)proposedMin ofSubviewAt:(int)offset1161 {1162 if (sender == splitView_textEntryHorizontal) {1163 #ifdef TEXTVIEW_HEIGHT_DEBUG1164 AILogWithSignature(@"Constraining min to %i", (int)([sender frame].size.height * MESSAGE_VIEW_MIN_HEIGHT_RATIO));1165 #endif1166 return (int)([sender frame].size.height * MESSAGE_VIEW_MIN_HEIGHT_RATIO);1167 1168 } else {1169 NSLog(@"Unknown split view %@",sender);1170 return 0;1171 }1172 }1173 1174 /*!1175 * @brief A split view had its divider position changed1176 *1177 * Remember the user's choice of text entry view height.1178 */1179 - (float)splitView:(NSSplitView *)sender constrainSplitPosition:(float)proposedPosition ofSubviewAt:(int)index1180 {1181 if (sender == splitView_textEntryHorizontal) {1182 // float trueMax = [self splitView:sender constrainMaxCoordinate:proposedPosition ofSubviewAt:index];1183 // if (trueMax < proposedPosition) proposedPosition = trueMax;1184 1185 if (!ignorePositionChangesForMinimumHeight)1186 entryMinHeight = (int)([sender frame].size.height - proposedPosition - [sender dividerThickness]);1187 else1188 return 10;1189 #ifdef TEXTVIEW_HEIGHT_DEBUG1190 AILogWithSignature(@"After constraining the split position, entryMinHeight is now %i (proposed position %f).", entryMinHeight, proposedPosition);1191 #endif1192 } else {1193 NSLog(@"Unknown split view %@",sender);1194 return 0;1195 }1196 1197 return proposedPosition;1198 }1199 #endif1200 1201 /*1202 * @brief Returns YES if the passed subview can be collapsed1203 */1204 - (BOOL)splitView:(NSSplitView *)sender canCollapseSubview:(NSView *)subview1205 {1206 if (sender == splitView_textEntryHorizontal) {1207 return NO;1208 1209 } else {1210 NSLog(@"Unknown split view %@",sender);1211 return 0;1212 1129 } 1213 1130 } trunk/Plugins/Dual Window Interface/MessageView.nib/classes.nib
r22314 r22662 72 72 "nibrootView_shelfVew" = NSView; 73 73 "nibrootView_userList" = NSView; 74 "scrollView_messages" = NSScrollView;74 "scrollView_messages" = AIMessageWindowOutgoingScrollView; 75 75 "scrollView_outgoing" = NSScrollView; 76 76 "scrollView_userList" = AIAutoScrollView; 77 77 shelfView = KNShelfSplitView; 78 "splitView_textEntryHorizontal" = AIMessageTabSplitView;78 "splitView_textEntryHorizontal" = RBSplitView; 79 79 "textView_outgoing" = AIMessageEntryTextView; 80 80 userListView = AIListOutlineView; trunk/Plugins/Dual Window Interface/MessageView.nib/info.nib
r22314 r22662 7 7 <key>IBEditorPositions</key> 8 8 <dict> 9 <key>122</key>10 <string>520 439 399 316 0 0 1440 878 </string>11 9 <key>355</key> 12 10 <string>459 433 521 324 0 0 1440 878 </string> 13 11 <key>358</key> 14 12 <string>631 457 178 292 0 0 1440 878 </string> 13 <key>376</key> 14 <string>108 432 404 323 0 0 1440 878 </string> 15 15 </dict> 16 16 <key>IBFramework Version</key> … … 18 18 <key>IBOpenObjects</key> 19 19 <array> 20 <integer>376</integer> 21 <integer>355</integer> 20 22 <integer>358</integer> 21 <integer>122</integer>22 <integer>355</integer>23 23 </array> 24 24 <key>IBSystem Version</key> 25 <string>9 B18</string>25 <string>9C31</string> 26 26 <key>IBUsesTextArchiving</key> 27 27 <true/> trunk/Plugins/Dual Window Interface/MessageView.nib/keyedobjects.nib
r22314 r22662 12 12 <dict> 13 13 <key>CF$UID</key> 14 <integer> 199</integer>14 <integer>220</integer> 15 15 </dict> 16 16 <key>NSAccessibilityConnectors</key> 17 17 <dict> 18 18 <key>CF$UID</key> 19 <integer> 196</integer>19 <integer>217</integer> 20 20 </dict> 21 21 <key>NSAccessibilityOidsKeys</key> 22 22 <dict> 23 23 <key>CF$UID</key> 24 <integer> 197</integer>24 <integer>218</integer> 25 25 </dict> 26 26 <key>NSAccessibilityOidsValues</key> 27 27 <dict> 28 28 <key>CF$UID</key> 29 <integer> 198</integer>29 <integer>219</integer> 30 30 </dict> 31 31 <key>NSClassesKeys</key> 32 32 <dict> 33 33 <key>CF$UID</key> 34 <integer>1 61</integer>34 <integer>176</integer> 35 35 </dict> 36 36 <key>NSClassesValues</key> 37 37 <dict> 38 38 <key>CF$UID</key> 39 <integer>1 62</integer>39 <integer>177</integer> 40 40 </dict> 41 41 <key>NSConnections</key> … … 57 57 <dict> 58 58 <key>CF$UID</key> 59 <integer>1 51</integer>59 <integer>166</integer> 60 60 </dict> 61 61 <key>NSNamesValues</key> 62 62 <dict> 63 63 <key>CF$UID</key> 64 <integer>1 52</integer>64 <integer>167</integer> 65 65 </dict> 66 66 <key>NSNextOid</key> 67 <integer> 376</integer>67 <integer>402</integer> 68 68 <key>NSObjectsKeys</key> 69 69 <dict> 70 70 <key>CF$UID</key> 71 <integer>1 48</integer>71 <integer>163</integer> 72 72 </dict> 73 73 <key>NSObjectsValues</key> 74 74 <dict> 75 75 <key>CF$UID</key> 76 <integer>1 50</integer>76 <integer>165</integer> 77 77 </dict> 78 78 <key>NSOidsKeys</key> 79 79 <dict> 80 80 <key>CF$UID</key> 81 <integer>1 63</integer>81 <integer>178</integer> 82 82 </dict> 83 83 <key>NSOidsValues</key> 84 84 <dict> 85 85 <key>CF$UID</key> 86 <integer>1 64</integer>86 <integer>179</integer> 87 87 </dict> 88 88 <key>NSRoot</key> … … 143 143 <dict> 144 144 <key>CF$UID</key> 145 <integer> 19</integer>145 <integer>57</integer> 146 146 </dict> 147 147 <key>NS.objects</key> … … 153 153 <dict> 154 154 <key>CF$UID</key> 155 <integer>24</integer> 156 </dict> 157 <dict> 158 <key>CF$UID</key> 159 <integer>44</integer> 160 </dict> 161 <dict> 162 <key>CF$UID</key> 163 <integer>62</integer> 164 </dict> 165 <dict> 166 <key>CF$UID</key> 167 <integer>64</integer> 168 </dict> 169 <dict> 170 <key>CF$UID</key> 171 <integer>71</integer> 155 <integer>17</integer> 156 </dict> 157 <dict> 158 <key>CF$UID</key> 159 <integer>19</integer> 160 </dict> 161 <dict> 162 <key>CF$UID</key> 163 <integer>72</integer> 164 </dict> 165 <dict> 166 <key>CF$UID</key> 167 <integer>74</integer> 172 168 </dict> 173 169 <dict> … … 181 177 <dict> 182 178 <key>CF$UID</key> 183 <integer>124</integer> 184 </dict> 185 <dict> 186 <key>CF$UID</key> 187 <integer>126</integer> 188 </dict> 189 <dict> 190 <key>CF$UID</key> 191 <integer>128</integer> 192 </dict> 193 <dict> 194 <key>CF$UID</key> 195 <integer>130</integer> 196 </dict> 197 <dict> 198 <key>CF$UID</key> 199 <integer>132</integer> 200 </dict> 201 <dict> 202 <key>CF$UID</key> 203 <integer>133</integer> 204 </dict> 205 <dict> 206 <key>CF$UID</key> 207 <integer>137</integer> 208 </dict> 209 <dict> 210 <key>CF$UID</key> 211 <integer>139</integer> 212 </dict> 213 <dict> 214 <key>CF$UID</key> 215 <integer>141</integer> 216 </dict> 217 <dict> 218 <key>CF$UID</key> 219 <integer>146</integer> 220 </dict> 221 </array> 222 </dict> 223 <dict> 224 <key>$class</key> 225 <dict> 226 <key>CF$UID</key> 227 <integer>23</integer> 179 <integer>80</integer> 180 </dict> 181 <dict> 182 <key>CF$UID</key> 183 <integer>82</integer> 184