{ name = "Thread & Correspondence"; rootViewer = { viewerType = "MmSplitView"; orientation = "horizontal"; children = ( // Mailboxes { viewerType = "MmBoxView"; orientation = "vertical"; defaultSize = 200; minWidth = 100; autoresize = 0; toggleMenuTitle = "Mailboxes"; toggleKeyEquivalent = "^~@d"; dragRect = { width = 16.0; height = 16.0; location = "bottomRight"; }; children = ( { identifier = "mailboxesOutline"; viewerType = "MmMailboxesOutlineView"; stickyMessages = 1; }, { viewerType = "MmMailboxesStatusBar"; }, ); }, // These are all the panels to the right of the mailboxes. { viewerType = "MmSplitView"; orientation = "vertical"; collapsibleSubview = 2; // Incomplete support -- no way to get it back (1 = first, 2 = last) children = ( // This contains the main message outline { identifier = "pathOutlineBox"; viewerType = "MmBoxView"; orientation = "vertical"; defaultSize = 250; autoresize = 0; children = ( { identifier = "pathControl"; viewerType = "MmPathControlView"; sources = ( { sourceIdentifier = "mailboxesOutline"; } ); }, { viewerType = "MmSeparatorView"; showWithViews = ( "pathControl" ); }, { viewerType = "MmSplitView"; minHeight = 50; orientation = "horizontal"; children = ( // This is the main message outline { identifier = "mainOutline"; viewerType = "MmMessagesOutlineView"; // columnSettings = "outlineColumns"; sources = ( { sourceIdentifier = "pathControl"; } ); defaultSize = 350; }, ); }, ); }, // And below it, the correspondence/thread outlines and message view { viewerType = "MmSplitView"; orientation = "horizontal"; children = ( // Left Splitview containing the thread outline and the correspondence outline { viewerType = "MmSplitView"; orientation = "vertical"; defaultSize = 200; autoresize = 0; children = ( // Thread list. Need to put views with labels in a MmBoxView { viewerType = "MmBoxView"; children = ( { viewerType = "MmLabelView"; label = "Thread"; }, { viewerType = "MmSeparatorView"; }, { identifier = "threadOutline"; viewerType = "MmMessagesOutlineView"; minWidth = 100; sources = ( { sourceIdentifier = "mainOutline"; } ); selectionSources = ( { sourceIdentifier = "mainOutline"; } ); transformation = "$ALL_MESSAGES.filter(#thread-id =[c] $mainOutline.#thread-id)"; defaultColumns = ( "relativeDate", "subject", "from", "mailbox" ); outlineColumn = "relativeDate"; }, // end message list ); // end of MmBoxView children (label + outline) }, // end of MmBoxView // Correspondence list. Need to put views with labels in a MmBoxView { viewerType = "MmBoxView"; children = ( { viewerType = "MmLabelView"; label = "Correspondence"; }, { viewerType = "MmSeparatorView"; }, { identifier = "correspondenceOutline"; viewerType = "MmMessagesOutlineView"; minWidth = 100; sources = ( { sourceIdentifier = "threadOutline"; } ); selectionSources = ( { sourceIdentifier = "threadOutline"; } ); // FIXME: The transformation does not work 'per' message, i.e., it tries to combine any 'from' with any 'to' in $mainOutline. transformation = "$ALL_MESSAGES.filter((from.address = $threadOutline.from.address and #recipient.address = $threadOutline.#recipient.address) or (from.address = $threadOutline.#recipient.address and #recipient.address = $threadOutline.from.address))"; defaultColumns = ( "relativeDate", "subject", "from", "mailbox" ); outlineColumn = "relativeDate"; }, // end message list ); // end of MmBoxView children (label + outline) }, // end of MmBoxView ); // end of left splitview children //toggleMenuTitle = "Correspondence View"; //toggleKeyEquivalent = "^~@c"; }, // end of lower left MmSplitView that contains both message outlines + labels // This is the lower right panel { viewerType = "MmBoxView"; orientation = "vertical"; children = ( { identifier = "headersView"; viewerType = "MmHeadersView"; sources = ( { sourceIdentifier = "correspondenceOutline"; } ); inject = ( "headersFormatting.plist" ); }, { viewerType = "MmSeparatorView"; showWithViews = ( "headersView" ); }, { identifier = "tagsEditor"; viewerType = "MmTagsEditor"; sources = ( { sourceIdentifier = "correspondenceOutline"; } ); }, { viewerType = "MmSeparatorView"; showWithViews = ( "tagsEditor" ); }, { identifier = "blockingView"; viewerType = "MmImageBlockingView"; sources = ( { sourceIdentifier = "correspondenceOutline"; } ); transformation = "$correspondenceOutline.filter(##blocked-count exists)"; }, { viewerType = "MmSeparatorView"; showWithViews = ( "blockingView" ); }, { identifier = "securityView"; viewerType = "MmSecurityView"; sources = ( { sourceIdentifier = "correspondenceOutline"; } ); transformation = "$correspondenceOutline.filter(##security-problem exists)"; }, { viewerType = "MmSeparatorView"; showWithViews = ( "securityView" ); }, { identifier = "messageView"; viewerType = "MmWebView"; sources = ( { sourceIdentifier = "correspondenceOutline"; } ); minWidth = 175; minHeight = 50; }, ); } ); toggleMenuTitle = "Message View"; toggleKeyEquivalent = "^~@h"; }, ); }, ); }; }