diff --git a/English.lproj/MainMenu.xib b/English.lproj/MainMenu.xib index a1b57a1..d8e9857 100644 --- a/English.lproj/MainMenu.xib +++ b/English.lproj/MainMenu.xib @@ -1,44 +1,41 @@ - + - 1060 - 11C74 - 1938 - 1138.23 - 567.00 + 1090 + 14A389 + 6245 + 1343.14 + 755.00 com.apple.InterfaceBuilder.CocoaPlugin - 1938 + 6245 - - YES - NSUserDefaultsController + + NSCustomObject + NSMenu + NSMenuItem + NSPopUpButton + NSPopUpButtonCell + NSScrollView + NSScroller + NSTextView NSToolbar NSToolbarFlexibleSpaceItem - NSScroller - NSMenuItem - NSMenu - NSScrollView - NSPopUpButton - NSToolbarSpaceItem + NSToolbarItem NSToolbarSeparatorItem - NSCustomObject - NSTextView + NSToolbarSpaceItem + NSUserDefaultsController NSView NSWindowTemplate - NSPopUpButtonCell - NSToolbarItem - - - YES + + com.apple.InterfaceBuilder.CocoaPlugin - + PluginDependencyRecalculationVersion - - YES + NSApplication @@ -50,8 +47,7 @@ AMainMenu - - YES + Speaker @@ -67,10 +63,10 @@ NSMenuMixedState submenuAction: + Speaker - - YES + About Speaker @@ -119,11 +115,10 @@ submenuAction: + Services - - YES - + _NSServicesMenu @@ -185,7 +180,7 @@ - + _NSAppleMenu @@ -198,10 +193,10 @@ submenuAction: + File - - YES + New @@ -229,10 +224,10 @@ submenuAction: + Open Recent - - YES + Clear Menu @@ -242,7 +237,7 @@ - + _NSRecentDocumentsMenu @@ -305,7 +300,7 @@ - + @@ -317,10 +312,10 @@ submenuAction: + Edit - - YES + Undo @@ -424,10 +419,10 @@ submenuAction: + Find - - YES + Find… @@ -477,7 +472,7 @@ - + @@ -489,10 +484,10 @@ submenuAction: + Spelling and Grammar - - YES + Show Spelling and Grammar @@ -547,7 +542,7 @@ - + @@ -559,10 +554,10 @@ submenuAction: + Substitutions - - YES + Show Substitutions @@ -627,7 +622,7 @@ - + @@ -638,10 +633,10 @@ submenuAction: + Transformations - - YES + Make Upper Case @@ -666,7 +661,7 @@ - + @@ -678,10 +673,10 @@ submenuAction: + Speech - - YES + Start Speaking @@ -700,10 +695,10 @@ - + - + @@ -714,10 +709,10 @@ submenuAction: + Format - - YES + Font @@ -726,10 +721,10 @@ submenuAction: + Font - - YES + Show Fonts @@ -816,10 +811,10 @@ submenuAction: + Kern - - YES + Use Default @@ -852,7 +847,7 @@ - + @@ -863,10 +858,10 @@ submenuAction: + Ligature - - YES + Use Default @@ -891,7 +886,7 @@ - + @@ -902,10 +897,10 @@ submenuAction: + Baseline - - YES + Use Default @@ -946,7 +941,7 @@ - + @@ -996,7 +991,7 @@ - + _NSFontMenu @@ -1008,10 +1003,10 @@ submenuAction: + Text - - YES + Align Left @@ -1065,10 +1060,10 @@ submenuAction: + Writing Direction - - YES + YES @@ -1145,7 +1140,7 @@ - + @@ -1184,10 +1179,10 @@ - + - + @@ -1199,10 +1194,10 @@ submenuAction: + View - - YES + Show Toolbar @@ -1221,7 +1216,7 @@ - + @@ -1233,10 +1228,10 @@ submenuAction: + Window - - YES + Minimize @@ -1275,7 +1270,7 @@ - + _NSWindowsMenu @@ -1287,10 +1282,10 @@ submenuAction: + Help - - YES + Speaker Help @@ -1300,11 +1295,11 @@ - + _NSHelpMenu - + _NSMainMenu @@ -1325,280 +1320,264 @@ NO 1 1 - - YES - - YES - BB31836C-C94C-4C54-B51B-8C9C9A2D1280 - F9630DDC-8BED-4CAE-A33B-D8608E977FA3 - NSToolbarCustomizeToolbarItem - NSToolbarFlexibleSpaceItem - NSToolbarSeparatorItem - NSToolbarShowColorsItem - NSToolbarShowFontsItem - NSToolbarSpaceItem - - - YES - - - BB31836C-C94C-4C54-B51B-8C9C9A2D1280 - - Language - Language - - - - 268 - {{0, 14}, {264, 25}} - - - _NS:868 - YES - - -2080244160 - 2048 - - LucidaGrande - 13 - 1044 - - _NS:868 - - -2038284033 - 163 - - - 400 - 75 - - - Item 1 - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - Item 2 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Item 3 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - -1 - 1 - YES - YES - 2 + + + + BB31836C-C94C-4C54-B51B-8C9C9A2D1280 + + Language + Language + + + + 268 + {{0, 14}, {264, 25}} + + + _NS:868 + YES + + -2080374720 + 2048 + + YES + 13 + 1044 + _NS:868 + + -2038284288 + 163 + + + 400 + 75 + + + Item 1 + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + + + + Item 2 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Item 3 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + -1 + 1 + YES + YES + 2 - - - - {100, 25} - {264, 25} - YES - YES - 0 - YES - 0 + NO - - - F9630DDC-8BED-4CAE-A33B-D8608E977FA3 - - Speak - Speak - - - - NSImage - play-icon - - - - {0, 0} - {0, 0} - YES - YES - -1 - YES - 0 + + + + {100, 25} + {264, 25} + YES + YES + 0 + YES + 0 + + + + F9630DDC-8BED-4CAE-A33B-D8608E977FA3 - - NSToolbarCustomizeToolbarItem - Customize - Customize - Customize Toolbar - - - NSImage - NSToolbarCustomizeToolbarItemImage - - - runToolbarCustomizationPalette: - {0, 0} - {0, 0} - YES - YES - -1 - YES - 0 + Speak + Speak + + + + NSImage + play - - NSToolbarFlexibleSpaceItem - - Flexible Space - - - - - - {1, 5} - {20000, 32} - YES - YES - -1 - YES - 0 - - YES - YES - - - 1048576 - 2147483647 - - - + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + NSToolbarCustomizeToolbarItem + Customize + Customize + Customize Toolbar + + + NSImage + NSToolbarCustomize - - NSToolbarSeparatorItem - - Separator - - - - - - {12, 5} - {12, 1000} - YES - YES - -1 - YES - 0 - - YES - YES - - - 1048576 - 2147483647 - - - - - - NSToolbarShowColorsItem - Colors - Colors - Show Color Panel - - - NSImage - NSToolbarShowColors - - - orderFrontColorPanel: - {0, 0} - {0, 0} - YES - YES - -1 - YES - 0 - - - NSToolbarShowFontsItem - Fonts - Fonts - Show Font Panel - - - NSImage - NSToolbarShowFonts - - - orderFrontFontPanel: - {0, 0} - {0, 0} - YES - YES - -1 - YES - 0 - - - NSToolbarSpaceItem - - Space - - - - - - {32, 5} - {32, 32} - YES - YES - -1 - YES - 0 - - YES - YES - - - 1048576 - 2147483647 - - - + + runToolbarCustomizationPalette: + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + NSToolbarFlexibleSpaceItem + + Flexible Space + + + + + + {1, 5} + {20000, 32} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + - - - YES + + NSToolbarSeparatorItem + + Separator + + + + + + {12, 5} + {12, 1000} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + + + + + NSToolbarShowColorsItem + Colors + Colors + Show Color Panel + + + NSImage + NSToolbarShowColors + + + orderFrontColorPanel: + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + NSToolbarShowFontsItem + Fonts + Fonts + Show Font Panel + + + NSImage + NSToolbarShowFonts + + + orderFrontFontPanel: + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + NSToolbarSpaceItem + + Space + + + + + + {32, 5} + {32, 10000} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + + + + + @@ -1607,62 +1586,52 @@ - - - YES + + - - - YES - + + 256 - - YES + 274 - - YES + - 2304 - - YES + 2322 + 2322 - - YES - - YES - Apple HTML pasteboard type - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - Apple URL pasteboard type - CorePasteboardFlavorType 0x6D6F6F76 - NSColor pasteboard type - NSFilenamesPboardType - NSStringPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT RTFD pasteboard type - NeXT Rich Text Format v1.0 pasteboard type - NeXT TIFF v4.0 pasteboard type - NeXT font pasteboard type - NeXT ruler pasteboard type - WebURLsWithTitlesPboardType - public.url - - - {595, 42} + + Apple HTML pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + Apple URL pasteboard type + CorePasteboardFlavorType 0x6D6F6F76 + NSColor pasteboard type + NSFilenamesPboardType + NSStringPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT RTFD pasteboard type + NeXT Rich Text Format v1.0 pasteboard type + NeXT TIFF v4.0 pasteboard type + NeXT font pasteboard type + NeXT ruler pasteboard type + WebURLsWithTitlesPboardType + public.url + + {580, 351} @@ -1674,15 +1643,14 @@ - - YES + - - 134 + + 166 - 595 + 580 1 @@ -1693,68 +1661,53 @@ 3 MQA - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - 6 - System - selectedTextBackgroundColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - selectedTextColor - - 3 - MAA - + + + 6 + System + selectedTextBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + 6 + System + selectedTextColor + + 3 + MAA + + + + + 6 + System + controlTextColor + - - - YES - - YES - NSColor - NSCursor - NSUnderline + + + 1 + MCAwIDEAA - - YES - - 1 - MCAwIDEAA - - - {8, -8} - 13 - - + + {8, -8} + 13 - + + 1 6 {609, 10000000} - {223, 42} - - {{1, 1}, {595, 351}} + + {{1, 1}, {580, 351}} @@ -1764,10 +1717,8 @@ {4, 5} 12582912 - - YES - - YES + + @@ -1778,8 +1729,8 @@ AAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEAAgAAARYAAwAAAAEAEAAAARcABAAAAAEAAABnARwAAwAA AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - - + + 3 MCAwAA @@ -1787,6 +1738,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 4 + YES @@ -1794,6 +1746,10 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA {{581, 1}, {15, 351}} + + NO + _doScroller: + _doScroller: 0.99248120300751874 @@ -1805,13 +1761,16 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA + NO + _doScroller: + 1 _doScroller: 0.96658711217183757 0.94565218687057495 - + {{-1, -1}, {597, 353}} @@ -1820,14 +1779,17 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA + 0.25 + 4 + 1 - + {595, 351} - {{0, 0}, {2560, 1418}} + {{0, 0}, {2560, 1417}} {10000000000000, 10000000000000} SpeakerWindow YES @@ -1844,10 +1806,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA NSSpeechSynthesizer - + - - YES + terminate: @@ -2552,10 +2513,17 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 588 - + + + speakButton + + + + 595 + + - - YES + 0 @@ -2583,8 +2551,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 29 - - YES + @@ -2592,50 +2559,45 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - + 19 - - YES + - + 56 - - YES + - + 217 - - YES + - + 83 - - YES + - + 81 - - YES + @@ -2645,7 +2607,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - + @@ -2666,10 +2628,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 124 - - YES + - + @@ -2695,10 +2656,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 125 - - YES + - + @@ -2709,8 +2669,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 205 - - YES + @@ -2726,7 +2685,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - + @@ -2777,33 +2736,30 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 218 - - YES + - + 216 - - YES + - + 200 - - YES + - + @@ -2824,14 +2780,13 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 220 - - YES + - + @@ -2862,8 +2817,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 57 - - YES + @@ -2875,7 +2829,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - + @@ -2921,10 +2875,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 131 - - YES + - + @@ -2945,13 +2898,12 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 24 - - YES + - + @@ -2977,20 +2929,18 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 295 - - YES + - + 296 - - YES + - + @@ -3006,20 +2956,18 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 211 - - YES + - + 212 - - YES + - + @@ -3040,17 +2988,15 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 348 - - YES + - + 349 - - YES + @@ -3058,7 +3004,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - + @@ -3079,55 +3025,49 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 371 - - YES + - + 372 - - YES + - + 375 - - YES + - + 376 - - YES + - + 377 - - YES + - + 388 - - YES + @@ -3144,7 +3084,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - + @@ -3190,28 +3130,25 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 397 - - YES + - + 398 - - YES + - + 399 - - YES + - + @@ -3242,14 +3179,13 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 405 - - YES + - + @@ -3280,12 +3216,11 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 411 - - YES + - + @@ -3306,13 +3241,12 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 415 - - YES + - + @@ -3343,21 +3277,19 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 450 - - YES + - + 451 - - YES + - + @@ -3413,19 +3345,17 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 490 - - YES + - + 491 - - YES + - + @@ -3441,17 +3371,15 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 496 - - YES + - + 497 - - YES + @@ -3462,7 +3390,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - + @@ -3493,10 +3421,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 503 - - YES + - + @@ -3522,8 +3449,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 508 - - YES + @@ -3533,7 +3459,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - + @@ -3584,8 +3510,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 533 - - YES + @@ -3594,7 +3519,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - + @@ -3630,12 +3555,11 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 545 - - YES + - + @@ -3666,39 +3590,35 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 564 - - YES + - + 558 - - YES + - + 559 - - YES + - + 560 - - YES + - + @@ -3726,576 +3646,292 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - - - - YES - - YES - -1.IBPluginDependency - -2.IBPluginDependency - -3.IBPluginDependency - 124.IBPluginDependency - 125.IBPluginDependency - 126.IBPluginDependency - 129.IBPluginDependency - 130.IBPluginDependency - 131.IBPluginDependency - 134.IBPluginDependency - 136.IBPluginDependency - 143.IBPluginDependency - 144.IBPluginDependency - 145.IBPluginDependency - 149.IBPluginDependency - 150.IBPluginDependency - 19.IBPluginDependency - 195.IBPluginDependency - 196.IBPluginDependency - 197.IBPluginDependency - 198.IBPluginDependency - 199.IBPluginDependency - 200.IBPluginDependency - 201.IBPluginDependency - 202.IBPluginDependency - 203.IBPluginDependency - 204.IBPluginDependency - 205.IBPluginDependency - 206.IBPluginDependency - 207.IBPluginDependency - 208.IBPluginDependency - 209.IBPluginDependency - 210.IBPluginDependency - 211.IBPluginDependency - 212.IBPluginDependency - 213.IBPluginDependency - 214.IBPluginDependency - 215.IBPluginDependency - 216.IBPluginDependency - 217.IBPluginDependency - 218.IBPluginDependency - 219.IBPluginDependency - 220.IBPluginDependency - 221.IBPluginDependency - 23.IBPluginDependency - 236.IBPluginDependency - 239.IBPluginDependency - 24.IBPluginDependency - 29.IBPluginDependency - 295.IBPluginDependency - 296.IBPluginDependency - 297.IBPluginDependency - 298.IBPluginDependency - 346.IBPluginDependency - 348.IBPluginDependency - 349.IBPluginDependency - 350.IBPluginDependency - 351.IBPluginDependency - 354.IBPluginDependency - 371.IBPluginDependency - 371.IBWindowTemplateEditedContentRect - 371.NSWindowTemplate.visibleAtLaunch - 372.IBPluginDependency - 375.IBPluginDependency - 376.IBPluginDependency - 377.IBPluginDependency - 388.IBPluginDependency - 389.IBPluginDependency - 390.IBPluginDependency - 391.IBPluginDependency - 392.IBPluginDependency - 393.IBPluginDependency - 394.IBPluginDependency - 395.IBPluginDependency - 396.IBPluginDependency - 397.IBPluginDependency - 398.IBPluginDependency - 399.IBPluginDependency - 400.IBPluginDependency - 401.IBPluginDependency - 402.IBPluginDependency - 403.IBPluginDependency - 404.IBPluginDependency - 405.IBPluginDependency - 406.IBPluginDependency - 407.IBPluginDependency - 408.IBPluginDependency - 409.IBPluginDependency - 410.IBPluginDependency - 411.IBPluginDependency - 412.IBPluginDependency - 413.IBPluginDependency - 414.IBPluginDependency - 415.IBPluginDependency - 416.IBPluginDependency - 417.IBPluginDependency - 418.IBPluginDependency - 419.IBPluginDependency - 420.IBPluginDependency - 450.IBPluginDependency - 451.IBPluginDependency - 452.IBPluginDependency - 453.IBPluginDependency - 454.IBPluginDependency - 457.IBPluginDependency - 459.IBPluginDependency - 460.IBPluginDependency - 462.IBPluginDependency - 465.IBPluginDependency - 466.IBPluginDependency - 485.IBPluginDependency - 490.IBPluginDependency - 491.IBPluginDependency - 492.IBPluginDependency - 494.IBPluginDependency - 496.IBPluginDependency - 497.IBPluginDependency - 498.IBPluginDependency - 499.IBPluginDependency - 5.IBPluginDependency - 500.IBPluginDependency - 501.IBPluginDependency - 502.IBPluginDependency - 503.IBPluginDependency - 504.IBPluginDependency - 505.IBPluginDependency - 506.IBPluginDependency - 507.IBPluginDependency - 508.IBPluginDependency - 509.IBPluginDependency - 510.IBPluginDependency - 511.IBPluginDependency - 512.IBPluginDependency - 513.IBPluginDependency - 514.IBPluginDependency - 515.IBPluginDependency - 516.IBPluginDependency - 517.IBPluginDependency - 533.IBPluginDependency - 534.IBPluginDependency - 535.IBPluginDependency - 536.IBPluginDependency - 538.IBPluginDependency - 539.IBPluginDependency - 540.IBPluginDependency - 545.IBPluginDependency - 546.IBPluginDependency - 547.IBPluginDependency - 548.IBPluginDependency - 550.IBPluginDependency - 550.toolbarItem.selectable - 558.IBPluginDependency - 559.IBPluginDependency - 56.IBPluginDependency - 560.IBPluginDependency - 561.IBPluginDependency - 562.IBPluginDependency - 563.IBPluginDependency - 564.IBPluginDependency - 57.IBPluginDependency - 58.IBPluginDependency - 580.IBPluginDependency - 582.IBPluginDependency - 72.IBPluginDependency - 73.IBPluginDependency - 74.IBPluginDependency - 75.IBPluginDependency - 77.IBPluginDependency - 78.IBPluginDependency - 79.IBPluginDependency - 81.IBPluginDependency - 82.IBPluginDependency - 83.IBPluginDependency - 92.IBPluginDependency - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{422, 131}, {500, 371}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - YES - - + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{422, 131}, {500, 371}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + - - YES - - - + - 588 + 595 - - YES + - NSDocument - - YES - - YES - printDocument: - revertDocumentToSaved: - runPageLayout: - saveDocument: - saveDocumentAs: - saveDocumentTo: + SpeakerAppDelegate + NSObject + + id + id + id + + + + seekBack: + id - - YES - id - id - id - id - id - id + + seekForward: + id - - - YES - - YES - printDocument: - revertDocumentToSaved: - runPageLayout: - saveDocument: - saveDocumentAs: - saveDocumentTo: + + speakAction: + id - - YES - - printDocument: - id - - - revertDocumentToSaved: - id - - - runPageLayout: - id - - - saveDocument: - id - - - saveDocumentAs: - id - - - saveDocumentTo: - id - + + + NSMenu + NSPopUpButton + NSToolbarItem + NSTextView + NSWindow + + + + languageMenu + NSMenu - + + languageMenuPopupButton + NSPopUpButton + + + speakButton + NSToolbarItem + + + textView + NSTextView + + + window + NSWindow + + IBProjectSource - ./Classes/NSDocument.h + ../SpeakerAppDelegate.h SpeakerAppDelegate - NSObject - - YES - - YES - seekBack: - seekForward: - speakAction: + + id + id + id + + + + seekBack: + id - - YES - id - id - id + + seekForward: + id - - - YES - - YES - seekBack: - seekForward: - speakAction: + + speakAction: + id - - YES - - seekBack: - id - - - seekForward: - id - - - speakAction: - id - - - - - YES - - YES - languageMenu - languageMenuPopupButton - textView - window - - - YES - NSMenu - NSPopUpButton - NSTextView - NSWindow - - - - YES - - YES - languageMenu - languageMenuPopupButton - textView - window - - - YES - - languageMenu - NSMenu - - - languageMenuPopupButton - NSPopUpButton - - - textView - NSTextView - - - window - NSWindow - - - + IBProjectSource - ./Classes/SpeakerAppDelegate.h + ../SpeakerAppDelegate.m - + 0 IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - + NO com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - + YES 3 - - YES - - YES - NSMenuCheckmark - NSMenuMixedState - NSToolbarCustomizeToolbarItemImage - NSToolbarShowColors - NSToolbarShowFonts - play-icon - - - YES - {9, 8} - {7, 2} - {32, 32} - {32, 32} - {32, 32} - {32, 32} - - + + {12, 12} + {10, 2} + {32, 32} + {32, 32} + {32, 32} + {32, 32} + diff --git a/Speaker.xcodeproj/project.pbxproj b/Speaker.xcodeproj/project.pbxproj index b280ef3..ee2d583 100644 --- a/Speaker.xcodeproj/project.pbxproj +++ b/Speaker.xcodeproj/project.pbxproj @@ -8,6 +8,8 @@ /* Begin PBXBuildFile section */ 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; }; + 1F6C8C521A06A13D004D992E /* pause.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F6C8C501A06A13D004D992E /* pause.png */; }; + 1F6C8C531A06A13D004D992E /* play.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F6C8C511A06A13D004D992E /* play.png */; }; 1FA38C49124D27C8004B8852 /* play-icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 1FA38C48124D27C8004B8852 /* play-icon.png */; }; 1FA38CD3124D4349004B8852 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 1FA38CD2124D4349004B8852 /* Icon.icns */; }; 1FF67B3E12948FDE00CA07A3 /* SpeakerApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FF67B3D12948FDE00CA07A3 /* SpeakerApplication.m */; }; @@ -22,6 +24,8 @@ 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; 1DDD58150DA1D0A300B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; + 1F6C8C501A06A13D004D992E /* pause.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = pause.png; sourceTree = ""; }; + 1F6C8C511A06A13D004D992E /* play.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = play.png; sourceTree = ""; }; 1FA38C48124D27C8004B8852 /* play-icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "play-icon.png"; sourceTree = ""; }; 1FA38CD2124D4349004B8852 /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Icon.icns; sourceTree = ""; }; 1FF67B3C12948FDE00CA07A3 /* SpeakerApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpeakerApplication.h; sourceTree = ""; }; @@ -109,6 +113,8 @@ 29B97317FDCFA39411CA2CEA /* Resources */ = { isa = PBXGroup; children = ( + 1F6C8C501A06A13D004D992E /* pause.png */, + 1F6C8C511A06A13D004D992E /* play.png */, 1FA38CD2124D4349004B8852 /* Icon.icns */, 1FA38C48124D27C8004B8852 /* play-icon.png */, 8D1107310486CEB800E47090 /* Speaker-Info.plist */, @@ -153,6 +159,8 @@ /* Begin PBXProject section */ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; + attributes = { + }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Speaker" */; compatibilityVersion = "Xcode 3.1"; developmentRegion = English; @@ -179,8 +187,10 @@ files = ( 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */, + 1F6C8C521A06A13D004D992E /* pause.png in Resources */, 1FA38C49124D27C8004B8852 /* play-icon.png in Resources */, 1FA38CD3124D4349004B8852 /* Icon.icns in Resources */, + 1F6C8C531A06A13D004D992E /* play.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Speaker.xcodeproj/project.xcworkspace/xcshareddata/Speaker.xccheckout b/Speaker.xcodeproj/project.xcworkspace/xcshareddata/Speaker.xccheckout index 552e15f..d0d73ff 100644 --- a/Speaker.xcodeproj/project.xcworkspace/xcshareddata/Speaker.xccheckout +++ b/Speaker.xcodeproj/project.xcworkspace/xcshareddata/Speaker.xccheckout @@ -10,29 +10,29 @@ Speaker IDESourceControlProjectOriginsDictionary - B3FBBA97-D123-44B8-9654-E8F7B4DE23C0 + 84929CFFB1C126DC09C07F4A0C98501C72BCAF7B ssh://github.com/jeena/Speaker.git IDESourceControlProjectPath Speaker.xcodeproj/project.xcworkspace IDESourceControlProjectRelativeInstallPathDictionary - B3FBBA97-D123-44B8-9654-E8F7B4DE23C0 + 84929CFFB1C126DC09C07F4A0C98501C72BCAF7B ../.. IDESourceControlProjectURL ssh://github.com/jeena/Speaker.git IDESourceControlProjectVersion - 110 + 111 IDESourceControlProjectWCCIdentifier - B3FBBA97-D123-44B8-9654-E8F7B4DE23C0 + 84929CFFB1C126DC09C07F4A0C98501C72BCAF7B IDESourceControlProjectWCConfigurations IDESourceControlRepositoryExtensionIdentifierKey public.vcs.git IDESourceControlWCCIdentifierKey - B3FBBA97-D123-44B8-9654-E8F7B4DE23C0 + 84929CFFB1C126DC09C07F4A0C98501C72BCAF7B IDESourceControlWCCName Speaker diff --git a/Speaker.xcodeproj/project.xcworkspace/xcuserdata/jeena.xcuserdatad/UserInterfaceState.xcuserstate b/Speaker.xcodeproj/project.xcworkspace/xcuserdata/jeena.xcuserdatad/UserInterfaceState.xcuserstate index ca3eebc..9ed71ed 100644 Binary files a/Speaker.xcodeproj/project.xcworkspace/xcuserdata/jeena.xcuserdatad/UserInterfaceState.xcuserstate and b/Speaker.xcodeproj/project.xcworkspace/xcuserdata/jeena.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/SpeakerAppDelegate.h b/SpeakerAppDelegate.h index e677bbf..fb1fbe4 100644 --- a/SpeakerAppDelegate.h +++ b/SpeakerAppDelegate.h @@ -16,12 +16,14 @@ NSSpeechSynthesizer *synth; NSRange oldRange; BOOL isNewLocation; + NSArray *languages; } @property (weak) IBOutlet NSWindow *window; @property (strong, nonatomic) IBOutlet NSTextView *textView; @property (weak) IBOutlet NSMenu *languageMenu; @property (weak) IBOutlet NSPopUpButton *languageMenuPopupButton; +@property (weak) IBOutlet NSToolbarItem *speakButton; -(IBAction)speakAction:(id)sender; -(IBAction)seekForward:(id)sender; @@ -33,4 +35,7 @@ - (void)changeLanguage:(id)sender; - (void)changeVoiceGender:(id)sender; +- (NSString *)findLanguageFromString:(NSString *)text; +- (void)setVoiceForLanguage:(NSString *)language; + @end diff --git a/SpeakerAppDelegate.m b/SpeakerAppDelegate.m index 1f105fd..4c30f3b 100644 --- a/SpeakerAppDelegate.m +++ b/SpeakerAppDelegate.m @@ -15,6 +15,7 @@ @implementation SpeakerAppDelegate @synthesize languageMenu; @synthesize languageMenuPopupButton; +@synthesize speakButton; @synthesize window, textView; @@ -24,6 +25,7 @@ synth.delegate = self; oldRange = NSMakeRange(-1, -1); isNewLocation = YES; + languages = nil; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSString *string = [defaults objectForKey:@"text"]; @@ -41,51 +43,64 @@ - (void)initLanugageMenu { NSString *startName = [[NSUserDefaults standardUserDefaults] stringForKey:@"languageVoiceName"]; - NSMenuItem *startItem = nil; NSLocale *currentLocale = [NSLocale currentLocale]; NSArray *voices = [NSSpeechSynthesizer availableVoices]; [self.languageMenu removeAllItems]; + NSMutableArray *langs = [NSMutableArray arrayWithCapacity:[voices count]]; + NSMutableArray *defaultVoices = [[NSUserDefaults standardUserDefaults] mutableArrayValueForKey:@"defaultVoices"]; + for (NSInteger i = 0; i < [voices count]; i++) { NSDictionary *dict = [NSSpeechSynthesizer attributesForVoice:[voices objectAtIndex:i]]; NSString *countryString = [currentLocale displayNameForKey:NSLocaleIdentifier value:[dict objectForKey:@"VoiceLocaleIdentifier"]]; + NSMenuItem *item = [[NSMenuItem alloc] initWithTitle:[dict objectForKey:@"VoiceName"] action:@selector(changeLanguage:) keyEquivalent:@""]; NSMenuItem *country = [self.languageMenu itemWithTitle:countryString]; if (!country) { country = [[NSMenuItem alloc] initWithTitle:countryString action:nil keyEquivalent:@""]; NSMenu *submenu = [[NSMenu alloc] init]; [country setSubmenu:submenu]; [self.languageMenu addItem:country]; + + [langs addObject:[[[dict objectForKey:@"VoiceLanguage"] componentsSeparatedByString:@"-"] objectAtIndex:0]]; } - NSMenuItem *item = [[NSMenuItem alloc] initWithTitle:[dict objectForKey:@"VoiceName"] action:@selector(changeLanguage:) keyEquivalent:@""]; item.tag = i; [[country submenu] addItem:item]; + if ([defaultVoices indexOfObjectIdenticalTo:item.title] != NSNotFound) { + item.state = NSOnState; + } + if ((![[NSUserDefaults standardUserDefaults] objectForKey:@"languageVoiceIndex"] && [[dict objectForKey:@"VoiceName"] isEqualToString:@"Alex"]) || [item.title isEqualToString:startName]) { - startItem = item; + //startItem = item; } } - [self changeLanguage:startItem]; + languages = langs; } - (void)changeLanguage:(id)sender { NSMenuItem *item = (NSMenuItem *)sender; - - // Only if the user doesn't chose the same as it already was. - if (item.menu != self.languageMenu) { - NSString *voice = [[NSSpeechSynthesizer attributesForVoice:[[NSSpeechSynthesizer availableVoices] objectAtIndex:item.tag]] objectForKey:@"VoiceIdentifier"]; - [synth setVoice:voice]; - - [[NSUserDefaults standardUserDefaults] setObject:item.title forKey:@"languageVoiceName"]; - [self.languageMenuPopupButton setTitle:item.title]; + NSMenuItem *parent = item.parentItem; + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSMutableArray *defaultVoices = [defaults mutableArrayValueForKey:@"defaultVoices"]; + + for (NSMenuItem *child in parent.submenu.itemArray) { + if (child.state == NSOnState) { + [defaultVoices removeObjectIdenticalTo:child.title]; + child.state = NSOffState; + } } + + item.state = NSOnState; + [defaultVoices addObject:item.title]; + [defaults synchronize]; } - (void)applicationWillTerminate:(NSNotification *)aNotification { @@ -98,8 +113,10 @@ -(IBAction)speakAction:(id)sender { if ([synth isSpeaking]) { [self stopSpeaking]; + speakButton.image = [NSImage imageNamed:@"play.png"]; } else { [self startSpeaking]; + speakButton.image = [NSImage imageNamed:@"pause.png"]; } } @@ -130,6 +147,9 @@ } [synth stopSpeaking]; + + [self setVoiceForLanguage:[self findLanguageFromString:text]]; + [synth startSpeakingString:text]; oldRange = range; @@ -170,5 +190,39 @@ [textView setEditable:YES]; } +- (NSString *)findLanguageFromString:(NSString *)text +{ + NSArray *tagschemes = [NSArray arrayWithObjects:NSLinguisticTagSchemeLanguage, nil]; + NSLinguisticTagger *tagger = [[NSLinguisticTagger alloc] initWithTagSchemes:tagschemes options:0]; + [tagger setString:text]; + NSString *language = [tagger tagAtIndex:0 scheme:NSLinguisticTagSchemeLanguage tokenRange:NULL sentenceRange:NULL]; + + return language; +} + +- (void)setVoiceForLanguage:(NSString *)language +{ + NSMenuItem *item; + NSMenuItem *languageItem; + for (NSInteger i = 0; i < [languages count]; i++) + { + if ([[languages objectAtIndex:i] isEqualToString:language]) { + languageItem = [[self.languageMenu itemArray] objectAtIndex:i]; + for (item in [languageItem.submenu itemArray]) { + if (item.state == NSOnState) { + break; + } + } + item = [[languageItem.submenu itemArray] objectAtIndex:0]; + } + } + + if (languageItem && item) { + NSString *voice = [[NSSpeechSynthesizer attributesForVoice:[[NSSpeechSynthesizer availableVoices] objectAtIndex:item.tag]] objectForKey:@"VoiceIdentifier"]; + [synth setVoice:voice]; + [self.languageMenuPopupButton selectItem:languageItem]; + } +} + @end diff --git a/pause.png b/pause.png new file mode 100644 index 0000000..b0b175c Binary files /dev/null and b/pause.png differ diff --git a/play.png b/play.png new file mode 100644 index 0000000..6d4c72a Binary files /dev/null and b/play.png differ