Adium

Changeset 22662

Show
Ignore:
Timestamp:
02/21/2008 07:04:08 PM (9 months ago)
Author:
evands
Message:

Use RBSplitView instead of NSSplitView for the splitview containing the message view and the text entry AIMessageEntryTextView. This allows us to have more reliable control over its subviews' positioning. Fixes #8701.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Adium.xcodeproj/project.pbxproj

    r22620 r22662  
    3131                                34611CCF09B67ABC00870036 /* PBXTargetDependency */, 
    3232                                346637760D41547F006C9034 /* PBXTargetDependency */, 
     33                                34D1AC840D69958000470520 /* PBXTargetDependency */, 
    3334                        ); 
    3435                        name = "External Frameworks"; 
     
    665666                34D0FDD80956187700DCB678 /* ESPersonalPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = 34D0FDD60956187700DCB678 /* ESPersonalPreferences.m */; }; 
    666667                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 */; }; 
    667670                34D8329007CBD5E2006466F2 /* Contact Info List Theme.plist in Resources */ = {isa = PBXBuildFile; fileRef = 34D8328E07CBD5E2006466F2 /* Contact Info List Theme.plist */; }; 
    668671                34D8329107CBD5E2006466F2 /* Contact Info List Layout.plist in Resources */ = {isa = PBXBuildFile; fileRef = 34D8328F07CBD5E2006466F2 /* Contact Info List Layout.plist */; }; 
     
    14481451                        remoteInfo = AdiumLibpurple; 
    14491452                }; 
     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                }; 
    14501488                34D834DC07CBE7BB006466F2 /* PBXContainerItemProxy */ = { 
    14511489                        isa = PBXContainerItemProxy; 
     
    15521590                        dstSubfolderSpec = 10; 
    15531591                        files = ( 
     1592                                34D1AC880D69959700470520 /* RBSplitView.framework in CopyFiles */, 
    15541593                                11EE1CCF0CDD01120097F246 /* libglib.framework in CopyFiles */, 
    15551594                                346637690D415457006C9034 /* FriBidi.framework in CopyFiles */, 
     
    32233262                34D1897E076114C00075A380 /* AILocalizationButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AILocalizationButton.m; path = "Frameworks/Adium Framework/Source/AILocalizationButton.m"; sourceTree = "<group>"; }; 
    32243263                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>"; }; 
    32253267                34D2E8670758BB0B0054C56D /* ESFileTransferPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ESFileTransferPreferences.h; path = Source/ESFileTransferPreferences.h; sourceTree = "<group>"; }; 
    32263268                34D2E8680758BB0B0054C56D /* ESFileTransferPreferences.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ESFileTransferPreferences.m; path = Source/ESFileTransferPreferences.m; sourceTree = "<group>"; }; 
     
    41494191                                346636AC0D415440006C9034 /* FriBidi.framework in Frameworks */, 
    41504192                                F51BCEEA0A15793E000FDC06 /* AIHyperlinks.framework in Frameworks */, 
     4193                                34D1AC850D69958900470520 /* RBSplitView.framework in Frameworks */, 
    41514194                                34D835D907CBED8F006466F2 /* AIUtilities.framework in Frameworks */, 
    41524195                                3448758E06D1EBDF00DA778C /* Cocoa.framework in Frameworks */, 
     
    43754418                                815D37460A765E83009338C2 /* CoreServices.framework */, 
    43764419                                638392F609D4D67A0067B9B7 /* Sparkle.framework */, 
     4420                                34D1AB510D693DEB00470520 /* RBSplitView.xcodeproj */, 
    43774421                                3496A8E707CE6CA30055BBAB /* AIHyperlinks.framework.xcodeproj */, 
    43784422                                3448717006D1E57700DA778C /* AIUtilities.framework.xcodeproj */, 
     
    44344478                                340C1A330BD58F9000D09235 /* DiskImageUtilities.h */, 
    44354479                                340C1A320BD58F9000D09235 /* DiskImageUtilities.m */, 
     4480                                34D1AC5B0D69450200470520 /* RBSplitSubview.h */, 
     4481                                34D1AC5C0D69450200470520 /* RBSplitView.h */, 
    44364482                        ); 
    44374483                        name = Other; 
     
    55385584                        ); 
    55395585                        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; 
    55405597                        sourceTree = "<group>"; 
    55415598                }; 
     
    81788235                                        ProjectRef = 346636860D41541A006C9034 /* FriBidi.xcodeproj */; 
    81798236                                }, 
     8237                                { 
     8238                                        ProductGroup = 34D1AB520D693DEB00470520 /* Products */; 
     8239                                        ProjectRef = 34D1AB510D693DEB00470520 /* RBSplitView.xcodeproj */; 
     8240                                }, 
    81808241                        ); 
    81818242                        projectRoot = ""; 
     
    82318292                        path = AIHyperlinks.framework; 
    82328293                        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 */; 
    82338322                        sourceTree = BUILT_PRODUCTS_DIR; 
    82348323                }; 
     
    95049593                        targetProxy = 34C7C62C09EC4EBE0060FB4A /* PBXContainerItemProxy */; 
    95059594                }; 
     9595                34D1AC840D69958000470520 /* PBXTargetDependency */ = { 
     9596                        isa = PBXTargetDependency; 
     9597                        name = Framework; 
     9598                        targetProxy = 34D1AC830D69958000470520 /* PBXContainerItemProxy */; 
     9599                }; 
    95069600                34F3B9AB0BDF177C0011AB34 /* PBXTargetDependency */ = { 
    95079601                        isa = PBXTargetDependency; 
     
    1147511569                                ); 
    1147611570                                HEADER_SEARCH_PATHS = ( 
     11571                                        Frameworks/RBSplitView/Source, 
    1147711572                                        "$(HEADER_SEARCH_PATHS_QUOTED_1)", 
    1147811573                                        "$(HEADER_SEARCH_PATHS_QUOTED_2)", 
     
    1210412199                                ); 
    1210512200                                HEADER_SEARCH_PATHS = ( 
     12201                                        Frameworks/RBSplitView/Source, 
    1210612202                                        "$(HEADER_SEARCH_PATHS_QUOTED_1)", 
    1210712203                                        "$(HEADER_SEARCH_PATHS_QUOTED_2)", 
     
    1213212228                                ); 
    1213312229                                HEADER_SEARCH_PATHS = ( 
     12230                                        Frameworks/RBSplitView/Source, 
    1213412231                                        "$(HEADER_SEARCH_PATHS_QUOTED_1)", 
    1213512232                                        "$(HEADER_SEARCH_PATHS_QUOTED_2)", 
     
    1216012257                                ); 
    1216112258                                HEADER_SEARCH_PATHS = ( 
     12259                                        Frameworks/RBSplitView/Source, 
    1216212260                                        "$(HEADER_SEARCH_PATHS_QUOTED_1)", 
    1216312261                                        "$(HEADER_SEARCH_PATHS_QUOTED_2)", 
  • trunk/Plugins/Dual Window Interface/AIMessageViewController.h

    r22314 r22662  
    2222@class AIAccount, AIListContact, AIListObject, AIAccountSelectionView, AIMessageTabSplitView, AIMessageEntryTextView; 
    2323@class AIMessageWindowController, AIMessageWindowOutgoingScrollView; 
     24@class RBSplitView; 
    2425 
    2526@interface AIMessageViewController : AIObject <AIListControllerDelegate> { 
     
    2728         
    2829        //Split views 
    29         IBOutlet        AIMessageTabSplitView *splitView_textEntryHorizontal; 
     30        IBOutlet        RBSplitView   *splitView_textEntryHorizontal; 
    3031         
    3132 
  • trunk/Plugins/Dual Window Interface/AIMessageViewController.m

    r22639 r22662  
    5353 
    5454#import <PSMTabBarControl/NSBezierPath_AMShading.h> 
     55 
     56#import "RBSplitView.h" 
    5557 
    5658//Heights and Widths 
     
    147149                                                                                   name:@"toggleUserlist" 
    148150                                                                                 object:nil]; 
    149                  
    150                 [splitView_textEntryHorizontal setDividerThickness:3]; //Default is 9 
    151                 [splitView_textEntryHorizontal setDrawsDivider:NO]; 
    152                  
     151 
    153152                //Observe general preferences for sending keys 
    154153                [[adium preferenceController] registerPreferenceObserver:self forGroup:PREF_GROUP_GENERAL]; 
     
    253252 
    254253        [view_accountSelection setLeftColor:leftColor rightColor:rightColor]; 
    255         [splitView_textEntryHorizontal setLeftColor:leftColor rightColor:rightColor]; 
     254        //XXX 
     255//      [splitView_textEntryHorizontal setLeftColor:leftColor rightColor:rightColor]; 
    256256} 
    257257 
     
    825825        [scrollView_outgoing setHasVerticalScroller:(height < [textView_outgoing desiredSize].height)]; 
    826826 
    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; 
    851835} 
    852836 
     
    11221106} 
    11231107 
    1124  
    11251108//Split Views -------------------------------------------------------------------------------------------------- 
    11261109#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); 
    11381125#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); 
    11451127#endif 
    11461128                 
    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 pane 
    1157  * 
    1158  * For both splitpanes, we prevent the message view from dropping below 50% of the window's width and height 
    1159  */ 
    1160 - (float)splitView:(NSSplitView *)sender constrainMinCoordinate:(float)proposedMin ofSubviewAt:(int)offset 
    1161 { 
    1162         if (sender == splitView_textEntryHorizontal) { 
    1163 #ifdef TEXTVIEW_HEIGHT_DEBUG 
    1164                 AILogWithSignature(@"Constraining min to %i", (int)([sender frame].size.height * MESSAGE_VIEW_MIN_HEIGHT_RATIO)); 
    1165 #endif 
    1166                 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 changed 
    1176  * 
    1177  * Remember the user's choice of text entry view height. 
    1178  */ 
    1179 - (float)splitView:(NSSplitView *)sender constrainSplitPosition:(float)proposedPosition ofSubviewAt:(int)index 
    1180 { 
    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                 else 
    1188                         return 10; 
    1189 #ifdef TEXTVIEW_HEIGHT_DEBUG 
    1190                 AILogWithSignature(@"After constraining the split position, entryMinHeight is now %i (proposed position %f).", entryMinHeight, proposedPosition); 
    1191 #endif 
    1192         } else { 
    1193                 NSLog(@"Unknown split view %@",sender); 
    1194                 return 0; 
    1195         } 
    1196          
    1197         return proposedPosition; 
    1198 } 
    1199 #endif 
    1200  
    1201 /*  
    1202  * @brief Returns YES if the passed subview can be collapsed 
    1203  */ 
    1204 - (BOOL)splitView:(NSSplitView *)sender canCollapseSubview:(NSView *)subview 
    1205 { 
    1206         if (sender == splitView_textEntryHorizontal) { 
    1207                 return NO; 
    1208                  
    1209         } else { 
    1210                 NSLog(@"Unknown split view %@",sender); 
    1211                 return 0; 
    12121129        } 
    12131130} 
  • trunk/Plugins/Dual Window Interface/MessageView.nib/classes.nib

    r22314 r22662  
    7272                "nibrootView_shelfVew" = NSView; 
    7373                "nibrootView_userList" = NSView; 
    74                 "scrollView_messages" = NSScrollView; 
     74                "scrollView_messages" = AIMessageWindowOutgoingScrollView; 
    7575                "scrollView_outgoing" = NSScrollView; 
    7676                "scrollView_userList" = AIAutoScrollView; 
    7777                shelfView = KNShelfSplitView; 
    78                 "splitView_textEntryHorizontal" = AIMessageTabSplitView; 
     78                "splitView_textEntryHorizontal" = RBSplitView; 
    7979                "textView_outgoing" = AIMessageEntryTextView; 
    8080                userListView = AIListOutlineView; 
  • trunk/Plugins/Dual Window Interface/MessageView.nib/info.nib

    r22314 r22662  
    77        <key>IBEditorPositions</key> 
    88        <dict> 
    9                 <key>122</key> 
    10                 <string>520 439 399 316 0 0 1440 878 </string> 
    119                <key>355</key> 
    1210                <string>459 433 521 324 0 0 1440 878 </string> 
    1311                <key>358</key> 
    1412                <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> 
    1515        </dict> 
    1616        <key>IBFramework Version</key> 
     
    1818        <key>IBOpenObjects</key> 
    1919        <array> 
     20                <integer>376</integer> 
     21                <integer>355</integer> 
    2022                <integer>358</integer> 
    21                 <integer>122</integer> 
    22                 <integer>355</integer> 
    2323        </array> 
    2424        <key>IBSystem Version</key> 
    25         <string>9B18</string> 
     25        <string>9C31</string> 
    2626        <key>IBUsesTextArchiving</key> 
    2727        <true/> 
  • trunk/Plugins/Dual Window Interface/MessageView.nib/keyedobjects.nib

    r22314 r22662  
    1212                        <dict> 
    1313                                <key>CF$UID</key> 
    14                                 <integer>199</integer> 
     14                                <integer>220</integer> 
    1515                        </dict> 
    1616                        <key>NSAccessibilityConnectors</key> 
    1717                        <dict> 
    1818                                <key>CF$UID</key> 
    19                                 <integer>196</integer> 
     19                                <integer>217</integer> 
    2020                        </dict> 
    2121                        <key>NSAccessibilityOidsKeys</key> 
    2222                        <dict> 
    2323                                <key>CF$UID</key> 
    24                                 <integer>197</integer> 
     24                                <integer>218</integer> 
    2525                        </dict> 
    2626                        <key>NSAccessibilityOidsValues</key> 
    2727                        <dict> 
    2828                                <key>CF$UID</key> 
    29                                 <integer>198</integer> 
     29                                <integer>219</integer> 
    3030                        </dict> 
    3131                        <key>NSClassesKeys</key> 
    3232                        <dict> 
    3333                                <key>CF$UID</key> 
    34                                 <integer>161</integer> 
     34                                <integer>176</integer> 
    3535                        </dict> 
    3636                        <key>NSClassesValues</key> 
    3737                        <dict> 
    3838                                <key>CF$UID</key> 
    39                                 <integer>162</integer> 
     39                                <integer>177</integer> 
    4040                        </dict> 
    4141                        <key>NSConnections</key> 
     
    5757                        <dict> 
    5858                                <key>CF$UID</key> 
    59                                 <integer>151</integer> 
     59                                <integer>166</integer> 
    6060                        </dict> 
    6161                        <key>NSNamesValues</key> 
    6262                        <dict> 
    6363                                <key>CF$UID</key> 
    64                                 <integer>152</integer> 
     64                                <integer>167</integer> 
    6565                        </dict> 
    6666                        <key>NSNextOid</key> 
    67                         <integer>376</integer> 
     67                        <integer>402</integer> 
    6868                        <key>NSObjectsKeys</key> 
    6969                        <dict> 
    7070                                <key>CF$UID</key> 
    71                                 <integer>148</integer> 
     71                                <integer>163</integer> 
    7272                        </dict> 
    7373                        <key>NSObjectsValues</key> 
    7474                        <dict> 
    7575                                <key>CF$UID</key> 
    76                                 <integer>150</integer> 
     76                                <integer>165</integer> 
    7777                        </dict> 
    7878                        <key>NSOidsKeys</key> 
    7979                        <dict> 
    8080                                <key>CF$UID</key> 
    81                                 <integer>163</integer> 
     81                                <integer>178</integer> 
    8282                        </dict> 
    8383                        <key>NSOidsValues</key> 
    8484                        <dict> 
    8585                                <key>CF$UID</key> 
    86                                 <integer>164</integer> 
     86                                <integer>179</integer> 
    8787                        </dict> 
    8888                        <key>NSRoot</key> 
     
    143143                        <dict> 
    144144                                <key>CF$UID</key> 
    145                                 <integer>19</integer> 
     145                                <integer>57</integer> 
    146146                        </dict> 
    147147                        <key>NS.objects</key> 
     
    153153                                <dict> 
    154154                                        <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> 
    172168                                </dict> 
    173169                                <dict> 
     
    181177                                <dict> 
    182178                                        <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