Skip to content

Commit 8861239

Browse files
author
Hans-Jörg Bibiko
committed
• improved three-finger trackpad swiping for toggling the history drawer of the RConsole
• added three-finger trackpad swiping to go back and forward in web help pages • added two-finger trackpad zooming support in web help pages to in/decrease text size git-svn-id: https://svn.r-project.org/R-packages/trunk/Mac-GUI@6097 694ef91d-65df-0310-b7bb-92e67a308ead
1 parent 00bf538 commit 8861239

17 files changed

Lines changed: 490 additions & 105 deletions

File tree

English.lproj/MainMenu.xib

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@
2121
</object>
2222
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
2323
<bool key="EncodedWithXMLCoder">YES</bool>
24-
<integer value="24"/>
25-
<integer value="2"/>
24+
<integer value="687"/>
2625
</object>
2726
<object class="NSArray" key="IBDocument.PluginDependencies">
2827
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -52,7 +51,7 @@
5251
<string key="NSWindowRect">{{89, 302}, {550, 458}}</string>
5352
<int key="NSWTFlags">1350041600</int>
5453
<string key="NSWindowTitle">R Console</string>
55-
<string key="NSWindowClass">NSWindow</string>
54+
<string key="NSWindowClass">RWindow</string>
5655
<object class="NSMutableString" key="NSViewClass">
5756
<characters key="NS.bytes">View</characters>
5857
</object>
@@ -101,6 +100,7 @@
101100
</object>
102101
<string key="NSFrameSize">{550, 14}</string>
103102
<reference key="NSSuperview" ref="469120998"/>
103+
<reference key="NSWindow"/>
104104
<object class="NSTextContainer" key="NSTextContainer" id="338871382">
105105
<object class="NSLayoutManager" key="NSLayoutManager">
106106
<object class="NSTextStorage" key="NSTextStorage">
@@ -189,6 +189,7 @@
189189
</object>
190190
<string key="NSFrame">{{1, 1}, {550, 412}}</string>
191191
<reference key="NSSuperview" ref="343940978"/>
192+
<reference key="NSWindow"/>
192193
<reference key="NSNextKeyView" ref="781119707"/>
193194
<reference key="NSDocView" ref="781119707"/>
194195
<reference key="NSBGColor" ref="266515385"/>
@@ -203,6 +204,7 @@
203204
<int key="NSvFlags">-2147483392</int>
204205
<string key="NSFrame">{{-30, 1}, {15, 432}}</string>
205206
<reference key="NSSuperview" ref="343940978"/>
207+
<reference key="NSWindow"/>
206208
<reference key="NSTarget" ref="343940978"/>
207209
<string key="NSAction">_doScroller:</string>
208210
<double key="NSCurValue">1</double>
@@ -212,6 +214,7 @@
212214
<int key="NSvFlags">-2147483392</int>
213215
<string key="NSFrame">{{-100, -100}, {87, 18}}</string>
214216
<reference key="NSSuperview" ref="343940978"/>
217+
<reference key="NSWindow"/>
215218
<int key="NSsFlags">1</int>
216219
<reference key="NSTarget" ref="343940978"/>
217220
<string key="NSAction">_doScroller:</string>
@@ -221,6 +224,7 @@
221224
</object>
222225
<string key="NSFrame">{{-1, 20}, {552, 414}}</string>
223226
<reference key="NSSuperview" ref="186451207"/>
227+
<reference key="NSWindow"/>
224228
<reference key="NSNextKeyView" ref="469120998"/>
225229
<int key="NSsFlags">530</int>
226230
<reference key="NSVScroller" ref="204246707"/>
@@ -232,6 +236,7 @@
232236
<int key="NSvFlags">270</int>
233237
<string key="NSFrame">{{15, 438}, {263, 15}}</string>
234238
<reference key="NSSuperview" ref="186451207"/>
239+
<reference key="NSWindow"/>
235240
<bool key="NSEnabled">YES</bool>
236241
<object class="NSTextFieldCell" key="NSCell" id="58452196">
237242
<int key="NSCellFlags">71433728</int>
@@ -263,6 +268,7 @@
263268
<int key="NSvFlags">267</int>
264269
<string key="NSFrame">{{326, 436}, {188, 19}}</string>
265270
<reference key="NSSuperview" ref="186451207"/>
271+
<reference key="NSWindow"/>
266272
<bool key="NSEnabled">YES</bool>
267273
<object class="NSSearchFieldCell" key="NSCell" id="89866838">
268274
<int key="NSCellFlags">343014976</int>
@@ -336,6 +342,7 @@
336342
<object class="NSPSMatrix" key="NSDrawMatrix"/>
337343
<string key="NSFrame">{{523, 438}, {16, 16}}</string>
338344
<reference key="NSSuperview" ref="186451207"/>
345+
<reference key="NSWindow"/>
339346
<bool key="NSViewCanDrawConcurrently">YES</bool>
340347
<int key="NSpiFlags">28938</int>
341348
<double key="NSMaxValue">100</double>
@@ -345,6 +352,7 @@
345352
<int key="NSvFlags">290</int>
346353
<string key="NSFrameSize">{550, 20}</string>
347354
<reference key="NSSuperview" ref="186451207"/>
355+
<reference key="NSWindow"/>
348356
<bool key="NSEnabled">YES</bool>
349357
<object class="NSTextFieldCell" key="NSCell" id="854076123">
350358
<int key="NSCellFlags">67239424</int>
@@ -365,6 +373,7 @@
365373
<int key="NSvFlags">290</int>
366374
<string key="NSFrame">{{12, 0}, {530, 17}}</string>
367375
<reference key="NSSuperview" ref="186451207"/>
376+
<reference key="NSWindow"/>
368377
<bool key="NSEnabled">YES</bool>
369378
<object class="NSTextFieldCell" key="NSCell" id="410931072">
370379
<int key="NSCellFlags">67239424</int>
@@ -382,6 +391,7 @@
382391
</object>
383392
<string key="NSFrameSize">{550, 458}</string>
384393
<reference key="NSSuperview"/>
394+
<reference key="NSWindow"/>
385395
</object>
386396
<string key="NSScreenRect">{{0, 0}, {1280, 778}}</string>
387397
<string key="NSMinSize">{213, 129}</string>
@@ -4100,14 +4110,14 @@
41004110
<string key="NSWindowRect">{{66, 171}, {508, 579}}</string>
41014111
<int key="NSWTFlags">1886912512</int>
41024112
<string key="NSWindowTitle">Help Search Topics</string>
4103-
<string key="NSWindowClass">NSWindow</string>
4113+
<string key="NSWindowClass">RWindow</string>
41044114
<object class="NSMutableString" key="NSViewClass">
41054115
<characters key="NS.bytes">View</characters>
41064116
</object>
41074117
<string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
41084118
<string key="NSWindowContentMinSize">{213, 107}</string>
41094119
<object class="NSView" key="NSWindowView" id="302646734">
4110-
<nil key="NSNextResponder"/>
4120+
<reference key="NSNextResponder"/>
41114121
<int key="NSvFlags">256</int>
41124122
<object class="NSMutableArray" key="NSSubviews">
41134123
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -4378,6 +4388,7 @@
43784388
</object>
43794389
</object>
43804390
<string key="NSFrameSize">{508, 579}</string>
4391+
<reference key="NSSuperview"/>
43814392
</object>
43824393
<string key="NSScreenRect">{{0, 0}, {1280, 778}}</string>
43834394
<string key="NSMinSize">{213, 129}</string>
@@ -4393,7 +4404,7 @@
43934404
<string key="NSWindowRect">{{76, 306}, {344, 464}}</string>
43944405
<int key="NSWTFlags">1886912512</int>
43954406
<string key="NSWindowTitle">R Help</string>
4396-
<string key="NSWindowClass">NSWindow</string>
4407+
<string key="NSWindowClass">RWindow</string>
43974408
<object class="NSMutableString" key="NSViewClass">
43984409
<characters key="NS.bytes">View</characters>
43994410
</object>
@@ -4494,7 +4505,6 @@
44944505
</object>
44954506
<string key="NSFrameSize">{344, 426}</string>
44964507
<reference key="NSSuperview" ref="899669578"/>
4497-
<reference key="NSNextKeyView"/>
44984508
<string key="FrameName"/>
44994509
<string key="GroupName"/>
45004510
<object class="WebPreferences" key="Preferences">
@@ -12104,9 +12114,9 @@
1210412114
</object>
1210512115
<boolean value="YES"/>
1210612116
<boolean value="YES"/>
12107-
<string>{{35, 280}, {550, 458}}</string>
12117+
<string>{{175, 198}, {550, 458}}</string>
1210812118
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
12109-
<string>{{35, 280}, {550, 458}}</string>
12119+
<string>{{175, 198}, {550, 458}}</string>
1211012120
<boolean value="YES"/>
1211112121
<boolean value="YES"/>
1211212122
<boolean value="YES"/>
@@ -12433,9 +12443,9 @@
1243312443
<boolean value="YES"/>
1243412444
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
1243512445
<boolean value="YES"/>
12436-
<string>{{721, 90}, {508, 579}}</string>
12446+
<string>{{83, 163}, {508, 579}}</string>
1243712447
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
12438-
<string>{{721, 90}, {508, 579}}</string>
12448+
<string>{{83, 163}, {508, 579}}</string>
1243912449
<boolean value="YES"/>
1244012450
<boolean value="YES"/>
1244112451
<string>{213, 107}</string>
@@ -15577,6 +15587,14 @@
1557715587
<string key="minorKey">../RProgressIndicator.h</string>
1557815588
</object>
1557915589
</object>
15590+
<object class="IBPartialClassDescription">
15591+
<string key="className">RWindow</string>
15592+
<string key="superclassName">NSWindow</string>
15593+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
15594+
<string key="majorKey">IBDocumentRelativeSource</string>
15595+
<string key="minorKey">../RWindow.h</string>
15596+
</object>
15597+
</object>
1558015598
</object>
1558115599
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
1558215600
<bool key="EncodedWithXMLCoder">YES</bool>

HelpManager.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,18 +54,21 @@
5454
- (IBAction)whatsNew:(id)sender;
5555
- (IBAction)changeSearchType:(id)sender;
5656
- (IBAction)executeSelection:(id)sender;
57+
- (IBAction)printDocument:(id)sender;
5758

5859
- (void)showHelpUsingFile: (NSString *)file topic: (NSString*) topic; // displays results only, used by help() in 2.1 and later
5960
- (void)showHelpFor:(NSString *)topic; // runs a search
6061

61-
+ (id) sharedController;
62-
- (IBAction)printDocument:(id)sender;
63-
- (NSWindow*) window;
62+
+ (id)sharedController;
63+
- (NSWindow*)window;
64+
- (WebView*)webView;
6465

6566
- (void)setSearchType:(int)type;
6667
- (int)searchType;
6768

6869
- (void)showHelpFileForURL:(NSURL*)url;
70+
- (void)supportsWebViewSwipingInHistory;
71+
- (void)supportsWebViewMagnifying;
6972

7073
- (void)webView:(WebView *)sender didStartProvisionalLoadForFrame:(WebFrame *)frame;
7174

HelpManager.m

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,11 @@ - (NSWindow*) window
180180
return helpWindow;
181181
}
182182

183+
- (WebView*)webView
184+
{
185+
return HelpView;
186+
}
187+
183188
- (IBAction)showMainHelp:(id)sender
184189
{
185190
REngine *re = [REngine mainEngine];
@@ -370,6 +375,16 @@ - (BOOL)validateMenuItem:(NSMenuItem *)menuItem
370375
return YES;
371376
}
372377

378+
- (void)supportsWebViewSwipingInHistory
379+
{
380+
return;
381+
}
382+
383+
- (void)supportsWebViewMagnifying
384+
{
385+
return;
386+
}
387+
373388
- (void)sheetDidEnd:(id)sheet returnCode:(int)returnCode contextInfo:(NSString *)contextInfo
374389
{
375390

NEWS

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
NEWS for R.app GUI for Mac OS X
22

3-
Last-update: 2012-02-14 [HJBB]
4-
* Added trackpad three-finger swiping to toggle history drawer
5-
visibility in RConsole
3+
Last-update: 2012-02-18 [HJBB]
4+
* Added trackpad three-finger swiping for toggling history drawer
5+
visibility in RConsole and for going back and forward in help
6+
web pages
7+
* Added two-finger zoom gesture support to help web pages to
8+
increase and decrease resp. the text size
69

710
Last-update: 2012-02-09 [HJBB]
811
* Added Rd file support:

R.xcodeproj/project.pbxproj

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,8 @@
199199
BC81712F13321873004B52A0 /* SelectEncodingsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC81712D13321873004B52A0 /* SelectEncodingsPanel.xib */; };
200200
BC884B6B14BAD86C00DEFFE0 /* RdEditorToolbar.h in Headers */ = {isa = PBXBuildFile; fileRef = BC884B6914BAD86C00DEFFE0 /* RdEditorToolbar.h */; };
201201
BC884B6C14BAD86C00DEFFE0 /* RdEditorToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = BC884B6A14BAD86C00DEFFE0 /* RdEditorToolbar.m */; };
202+
BCB4FEAB14F24B0E00281019 /* RWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB4FEA914F24B0E00281019 /* RWindow.h */; };
203+
BCB4FEAC14F24B0E00281019 /* RWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = BCB4FEAA14F24B0E00281019 /* RWindow.m */; };
202204
BCBA744713B089D8001B440B /* RDataEditorTableView.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBA744513B089D8001B440B /* RDataEditorTableView.h */; };
203205
BCBA744813B089D8001B440B /* RDataEditorTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCBA744613B089D8001B440B /* RDataEditorTableView.m */; };
204206
BCCE4A38130AB3C6003325EB /* RScriptEditorTokens.h in Headers */ = {isa = PBXBuildFile; fileRef = BCCE4A37130AB3C6003325EB /* RScriptEditorTokens.h */; };
@@ -484,6 +486,8 @@
484486
BCB297AD133B7EDD007899E0 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Vignettes.xib; sourceTree = "<group>"; };
485487
BCB297AE133B7EE2007899E0 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Vignettes.xib; sourceTree = "<group>"; };
486488
BCB297AF133B7EF3007899E0 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/Vignettes.xib; sourceTree = "<group>"; };
489+
BCB4FEA914F24B0E00281019 /* RWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RWindow.h; sourceTree = "<group>"; };
490+
BCB4FEAA14F24B0E00281019 /* RWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RWindow.m; sourceTree = "<group>"; };
487491
BCBA744513B089D8001B440B /* RDataEditorTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RDataEditorTableView.h; sourceTree = "<group>"; };
488492
BCBA744613B089D8001B440B /* RDataEditorTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RDataEditorTableView.m; sourceTree = "<group>"; };
489493
BCCE4A37130AB3C6003325EB /* RScriptEditorTokens.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RScriptEditorTokens.h; sourceTree = "<group>"; };
@@ -563,6 +567,8 @@
563567
68DEAEE7083271CA00C5D76C /* RTextView.m */,
564568
6880A0F10DBE886200FC684F /* QuartzCocoaDocument.h */,
565569
6880A0F20DBE886200FC684F /* QuartzCocoaDocument.m */,
570+
BCB4FEA914F24B0E00281019 /* RWindow.h */,
571+
BCB4FEAA14F24B0E00281019 /* RWindow.m */,
566572
);
567573
name = Classes;
568574
sourceTree = "<group>";
@@ -1012,6 +1018,7 @@
10121018
BCFAE71C14C58372008762EE /* RSymbolTokens.h in Headers */,
10131019
BCF4B2C114D9815400F14715 /* NSString_RAdditions.h in Headers */,
10141020
BC13F8AB14DC6DA10083305F /* RProgressIndicator.h in Headers */,
1021+
BCB4FEAB14F24B0E00281019 /* RWindow.h in Headers */,
10151022
);
10161023
runOnlyForDeploymentPostprocessing = 0;
10171024
};
@@ -1063,6 +1070,7 @@
10631070
isa = PBXProject;
10641071
buildConfigurationList = 680F0B3A0997CE66009CDBE8 /* Build configuration list for PBXProject "R" */;
10651072
compatibilityVersion = "Xcode 2.4";
1073+
developmentRegion = English;
10661074
hasScannedForEncodings = 1;
10671075
knownRegions = (
10681076
English,
@@ -1268,6 +1276,7 @@
12681276
BCFAE71A14C5835B008762EE /* RSymbolTokens.l in Sources */,
12691277
BCF4B2C214D9815400F14715 /* NSString_RAdditions.m in Sources */,
12701278
BC13F8AC14DC6DA10083305F /* RProgressIndicator.m in Sources */,
1279+
BCB4FEAC14F24B0E00281019 /* RWindow.m in Sources */,
12711280
);
12721281
runOnlyForDeploymentPostprocessing = 0;
12731282
};

RController.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@
148148
BOOL processingEvents;
149149
BOOL breakPending;
150150
BOOL isREditMode;
151+
BOOL ignoreMagnifyingEvent;
151152

152153
char *writeBuffer;
153154
char *writeBufferPos;
@@ -309,6 +310,7 @@
309310
- (NSString*)getAppSupportPath;
310311
- (int) helpServerPort;
311312
- (BOOL)isREditMode;
313+
- (void)ignoreMagnifyingEventTimer;
312314

313315

314316
- (IBAction)performFindPanelAction:(id)sender;

RController.m

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ - (id) init {
191191
processingEvents = NO;
192192
breakPending = NO;
193193
isREditMode = NO;
194+
ignoreMagnifyingEvent = NO;
194195
outputPosition = promptPosition = committedLength = lastCommittedLength = 0;
195196
consoleInputQueue = [[NSMutableArray alloc] initWithCapacity:8];
196197
currentConsoleInput = nil;
@@ -888,6 +889,11 @@ - (void) rmChildProcess: (pid_t) pid
888889
[self flushStdConsole];
889890
}
890891

892+
- (void)ignoreMagnifyingEventTimer
893+
{
894+
ignoreMagnifyingEvent = NO;
895+
}
896+
891897
- (void) fontSizeChangedBy:(float)delta withSender:(id)sender
892898
{
893899

@@ -904,10 +910,17 @@ - (void) fontSizeChangedBy:(float)delta withSender:(id)sender
904910
if(aWebFrameView && [aWebFrameView respondsToSelector:@selector(webFrame)]) {
905911
WebView *aWebView = [[(WebFrameView*)aWebFrameView webFrame] webView];
906912
if(aWebView) {
907-
if(delta > 0)
908-
[aWebView makeTextLarger:sender];
909-
else if(delta < 0)
910-
[aWebView makeTextSmaller:sender];
913+
if(!ignoreMagnifyingEvent) {
914+
915+
// delay font size changing for 200msecs
916+
ignoreMagnifyingEvent = YES;
917+
[self performSelector:@selector(ignoreMagnifyingEventTimer) withObject:nil afterDelay:0.2f];
918+
919+
if(delta > 0)
920+
[aWebView makeTextLarger:sender];
921+
else if(delta < 0)
922+
[aWebView makeTextSmaller:sender];
923+
}
911924
}
912925
}
913926
}
@@ -958,8 +971,6 @@ - (void) fontSizeChangedBy:(float)delta withSender:(id)sender
958971
}
959972
}
960973
}
961-
else
962-
[[NSFontManager sharedFontManager] modifyFont:sender];
963974

964975
}
965976

0 commit comments

Comments
 (0)