10 |
11 | @interface RMSecurityScopedBookmarkController : NSObject
12 |
13 | + (RMSecurityScopedBookmarkController *)sharedController;
14 |
15 | -(NSData*)loadBookmark;
16 | -(void)saveBookmark:(NSData*)bookmarkData;
17 | -(void)deleteBookmark;
18 |
19 | -(BOOL)hasBookmark;
20 | -(void)startAccessingSecurityScopedBookmark;
21 | -(void)stopAccessingSecurityScopedBookmark;
22 | -(void)grantBookmarkAccessForWindow:(NSWindow*)win;
23 |
24 | @property (strong) NSURL *bookmarkURL;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Recent Menu/RMSecurityScopedBookmarkController.m:
--------------------------------------------------------------------------------
1 | //
2 | // RMSecurityScopedBookmarkController.m
3 | // Recent Menu
4 | //
5 | // Created by Tim Schröder on 19.07.12.
6 | // Copyright (c) 2012 Tim Schroeder. All rights reserved.
7 | //
8 |
9 | #import "RMSecurityScopedBookmarkController.h"
10 | #import "RMConstants.h"
11 |
12 | #define DEFAULTS_BOOKMARK @"SecurityBookmark"
13 | #define PREFWINDOW_ACCESSERRORCAPTION NSLocalizedString (@"PREFWINDOW_ACCESSERRORCAPTION", )
14 | #define PREFWINDOW_ACCESSERRORINFO NSLocalizedString (@"PREFWINDOW_ACCESSERRORINFO", )
15 | #define GRANT_ACCESS_BUTTON NSLocalizedString (@"PREFWINDOW_GRANTBUTTON", )
16 |
17 | @implementation RMSecurityScopedBookmarkController
18 |
19 | @synthesize bookmarkURL = _bookmarkURL;
20 |
21 | static RMSecurityScopedBookmarkController *_sharedController = nil;
22 |
23 |
24 | #pragma mark -
25 | #pragma mark Singleton Methods
26 |
27 | + (RMSecurityScopedBookmarkController *)sharedController
28 | {
29 | if (!_sharedController) {
30 | _sharedController = [[super allocWithZone:NULL] init];
31 | }
32 | return _sharedController;
33 | }
34 |
35 | + (id)allocWithZone:(NSZone *)zone
36 | {
37 | return [self sharedController];
38 | }
39 |
40 | - (id)copyWithZone:(NSZone *)zone
41 | {
42 | return self;
43 | }
44 |
45 |
46 | #pragma mark -
47 | #pragma mark Internal Methods
48 |
49 | -(void)showOutputSelectionError
50 | {
51 | NSAlert *alert = [NSAlert alertWithMessageText:PREFWINDOW_ACCESSERRORCAPTION defaultButton:@"OK" alternateButton:nil otherButton:nil informativeTextWithFormat:PREFWINDOW_ACCESSERRORINFO];
52 | [alert runModal];
53 | }
54 |
55 | #pragma mark -
56 | #pragma mark User Defaults Methods
57 |
58 | -(NSData*)loadBookmark
59 | {
60 | return ([[NSUserDefaults standardUserDefaults] dataForKey:DEFAULTS_BOOKMARK]);
61 | }
62 |
63 | -(void)saveBookmark:(NSData*)bookmarkData
64 | {
65 | NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
66 | [defaults setObject:bookmarkData forKey:DEFAULTS_BOOKMARK];
67 | [defaults synchronize];
68 | }
69 |
70 | -(void)deleteBookmark
71 | {
72 | NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
73 | [defaults removeObjectForKey:DEFAULTS_BOOKMARK];
74 | [defaults synchronize];
75 | }
76 |
77 |
78 | #pragma mark -
79 | #pragma mark Public Methods
80 |
81 | -(BOOL) hasBookmark
82 | {
83 | BOOL result = NO;
84 | NSData *bookmarkData = [self loadBookmark];
85 | if (bookmarkData) result = YES;
86 | return result;
87 | }
88 |
89 | -(void) startAccessingSecurityScopedBookmark
90 | {
91 | // Create URL of bookmark file
92 | NSData *data;
93 | data = [self loadBookmark];
94 | if (!data) {
95 | NSLog (@"error loading Bookmark");
96 | return;
97 | }
98 |
99 | NSError *error = nil;
100 | BOOL isStale;
101 | self.bookmarkURL = [NSURL URLByResolvingBookmarkData:data
102 | options:NSURLBookmarkResolutionWithSecurityScope
103 | relativeToURL:nil
104 | bookmarkDataIsStale:&isStale
105 | error:&error];
106 | if (error) NSLog (@"error retrieving security-scoped bookmark");
107 |
108 | [self.bookmarkURL startAccessingSecurityScopedResource];
109 | }
110 |
111 | -(void) stopAccessingSecurityScopedBookmark
112 | {
113 | if (!self.bookmarkURL) return;
114 | [self.bookmarkURL stopAccessingSecurityScopedResource];
115 | }
116 |
117 | -(void)grantBookmarkAccessForWindow:(NSWindow*)win
118 | {
119 | NSString *path = @"/";
120 | NSURL *urlPath = [NSURL URLWithString:path];
121 |
122 | // Prepare Open Panel
123 | NSOpenPanel *openPanel = [NSOpenPanel openPanel];
124 | [openPanel setCanChooseFiles:NO];
125 | [openPanel setCanChooseDirectories:YES];
126 | [openPanel setAllowsMultipleSelection:NO];
127 | [openPanel setPrompt:GRANT_ACCESS_BUTTON];
128 | [openPanel setDirectoryURL:urlPath];
129 | [openPanel setCanCreateDirectories:YES];
130 |
131 | // Show Open Panel
132 | [openPanel beginSheetModalForWindow:win completionHandler:^(NSInteger returnCode){
133 |
134 | if( returnCode == NSFileHandlingPanelCancelButton ) {
135 | return;
136 | }
137 |
138 | NSArray *urls = [openPanel URLs];
139 | if( urls != nil && [urls count] == 1 ) {
140 | NSURL *url = [urls objectAtIndex:0];
141 |
142 | // Present error message if user has chosen a custom folder
143 | BOOL allowedInput = NO;
144 | if ([[url absoluteString] isEqualToString:@"file://localhost/"]) allowedInput = YES;
145 | if ([[url absoluteString] isEqualToString:@"file:///"]) allowedInput = YES; // Bug Fix for OS X 10.9
146 | if (!allowedInput) {
147 | [self showOutputSelectionError];
148 | return;
149 | }
150 |
151 | // OK, store bookmark
152 | NSData *bookmark = nil;
153 | NSError *error = nil;
154 | bookmark = [url bookmarkDataWithOptions:NSURLBookmarkCreationWithSecurityScope
155 | includingResourceValuesForKeys:nil
156 | relativeToURL:nil // Make it app-scoped
157 | error:&error];
158 | if (error) {
159 | NSLog(@"Error creating security-scoped bookmark for URL (%@): %@", url, error);
160 | [NSApp presentError:error];
161 | }
162 |
163 | // save and access security scoped bookmark
164 | [self saveBookmark:bookmark];
165 | [self startAccessingSecurityScopedBookmark];
166 |
167 | // OK, update UI
168 | [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_ACCESS_GRANTED object:self];
169 | } else {
170 | [self showOutputSelectionError];
171 | }
172 | }];
173 | }
174 |
175 |
176 | @end
177 |
--------------------------------------------------------------------------------
/Recent Menu/Recent Menu.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 | com.apple.security.files.user-selected.read-only
8 |
9 | com.apple.security.files.bookmarks.app-scope
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Recent Menu/Recent Menu.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en-US
7 | CFBundleIdentifier
8 | com.timschroeder.recentmenu.help
9 | CFBundleInfoDictionaryVersion
10 | 6.0
11 | CFBundleName
12 | RecentMenuHelp
13 | CFBundlePackageType
14 | BNDL
15 | CFBundleShortVersionString
16 | 1
17 | CFBundleSignature
18 | hbwr
19 | CFBundleVersion
20 | 1
21 | HPDBookAccessPath
22 | RecentMenuHelp.html
23 | HPDBookIconPath
24 | Shared/icon16.png
25 | HPDBookIndexPath
26 | RecentMenu.helpindex
27 | HPDBookKBProduct
28 | recentmenu
29 | HPDBookTitle
30 | Recent Menu Help
31 | HPDBookType
32 | 3
33 |
34 |
35 |
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/RM Help.helpindex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/RM Help.helpindex
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/Shared/icon13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/Shared/icon13.png
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/Shared/icon16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/Shared/icon16.png
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/Shared/icon32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/Shared/icon32.png
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/Shared/minus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/Shared/minus.png
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/Shared/plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/Shared/plus.png
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/Shared/settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/Shared/settings.png
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/Shared/styles.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin:0px;
3 | padding:0px;
4 | line-height:1.3em;
5 | font-family:helvetica, arial, sans-serif;
6 | font-size:14px;
7 | }
8 |
9 | .image {
10 | margin: 20px 20px 5px 20px;
11 | padding: 10px;
12 | border:1px solid #d7d7d7;
13 | }
14 |
15 | .image2 {
16 | }
17 |
18 | h1 {
19 | color:#010000;
20 | font-size:20px;
21 | margin-left:20px;
22 | margin-bottom:25px;
23 | }
24 |
25 | h2 {
26 | color:#010000;
27 | font-size:17px;
28 | margin-top:0px;
29 | margin-left:20px;
30 | margin-bottom:20px;
31 | margin-right:20px;
32 | font-weight:bold;
33 | padding-bottom:4px;
34 | border-bottom:1px solid #777;
35 | }
36 |
37 | h3 {
38 | color:#010000;
39 | font-size:16px;
40 | margin-top:30px;
41 | margin-left:20px;
42 | margin-bottom:10px;
43 | margin-right:20px;
44 | font-weight:bold;
45 | }
46 |
47 | h4 {
48 | color:#032588;
49 | font-size:15px;
50 | margin-top:25px;
51 | margin-left:20px;
52 | margin-bottom:6px;
53 | margin-right:20px;
54 | }
55 |
56 | h5 {
57 | color:#010000;
58 | font-size:14px;
59 | margin-top:15px;
60 | margin-left:20px;
61 | margin-bottom:6px;
62 | margin-right:20px;
63 | }
64 |
65 | h6 {
66 | color:#010000;
67 | font-size:14px;
68 | margin-top:15px;
69 | margin-left:20px;
70 | margin-bottom:6px;
71 | margin-right:20px;
72 | }
73 |
74 | hr {
75 | border:0;
76 | margin-top:50px;
77 | margin-bottom:20px;
78 | margin-left:20px;
79 | margin-right:20px;
80 | border-top: 1px solid #dddddd;
81 | height: 0;
82 | }
83 |
84 | a {
85 | color:#032588;
86 | text-decoration: none;
87 | }
88 |
89 | a:hover {
90 | text-decoration: underline;
91 | }
92 |
93 | p {
94 | margin-left:20px;
95 | margin-top: 3px;
96 | margin-bottom: 0;
97 | margin-right: 20px;
98 | }
99 |
100 | li {
101 | margin-top:5px;
102 | margin-left:20px;
103 | margin-right:20px;
104 | }
105 |
106 | #headerbox {
107 | clear: both;
108 | margin-top: 40px;
109 | margin-bottom: 28px;
110 | }
111 |
112 | .border {
113 | width: 100%;
114 | top: 0px;
115 | padding: 4px 0 4px 0;
116 | background-color: #eee;
117 | text-align: left;
118 | border-bottom: 1px solid #cccccc;
119 | font-size: 9pt;
120 | font-family:helvetica, arial, sans-serif;
121 | position:fixed;
122 | z-index:99;
123 | }
124 |
125 | .contentframe {
126 | padding:15px;
127 | margin: 0 20px 25px 20px;
128 | text-align: left;
129 | }
130 |
131 | .note {
132 | padding:15px;
133 | padding-left:20px;
134 | margin: 25px 20px 25px 20px;
135 | text-align: left;
136 | background-color: #FF9;
137 | border: 1px solid #d7d7d7;
138 | }
139 |
140 | .imagecaption {
141 | font-size:10px;
142 | text-align:center;
143 | margin-bottom:20px;
144 | font-style:italic;
145 | }
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/Changelog.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Changelog
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | Was ist neu?
18 | Neu in Version 1.2.2 (Dezember 2012):
19 |
20 | Die Liste der zuletzt verwendeten Dateien und Ordner wird jetzt im Hauptmenü von Recent Menu angezeigt.
21 |
22 | Neu in Version 1.2.1 (Juli 2012):
23 |
24 | Recent Menu läuft jetzt in einer Sandbox
25 |
26 | Neu in Version 1.2 (Mai 2012):
27 | Filter können Ausschluss-Filterkriterien enthalten
28 | Neu in Version 1.1 (August 2011):
29 | Filter können mehrere durch Komma getrennte Filterkriterien enthalten
30 | Möglichkeit zur Wiederherstellung der Standard-Filter eingebaut
31 | Hotkey ist jetzt frei konfigurierbar
32 | Bei Email-Dateien wird die Betreff-Zeile statt des Filenamen angezeigt
33 | Nur in der Trial-Version: Trial-Periode fängt bei neuer Programm-Version neu an zu laufen
34 | Hilfe-Texte überarbeitet und ausgebaut
35 | Mehrere kleinere Fehler beseitigt
36 |
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/InfoPlist.strings
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/Intro.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Einführung
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | Einführung
18 | Was Recent Menu tut
19 | Recent Menu zeigt Dateien und Ordner an, die kürzlich verwendet, d.h. geöffnet, wurden. Recent Menu findet alle kürzlich verwendeten Dateien und Ordner auf dem lokalen System und ermöglicht so einen schnellen Zugriff auf solche Dateien und Ordner. Es ähnelt einem File-Browser (wie dem Finder), nur dass Recent Menu Dateien und Ordner nicht in ihrer hierarchischen Struktur darstellt, sondern nach dem Zeitpunkt des letzten Zugriffs ordnet. Recent Menu ermöglicht es, Filter für Dateitypen anzulegen, um nur bestimmte kürzlich verwendete Dateien anzuzeigen, und geht von der Idee aus, dass Dateien oder Ordner, die vor kurzer Zeit verwendet wurden, häufig rasch wieder benötigt werden: Der schnelle Zugriff auf diese Dateien und Ordner wird durch Recent Menu erleichtert.
20 | Nach dem Start von Recent Menu befindet sich das Programmsymbol in der Menüleiste. Klicken Sie auf dieses Symbol, um das Menü von Recent Menu aufzurufen, das die Liste der kürzlich verwendeten Dateien und Ordner enthält:
21 |
22 | Liste kürzlich verwendeter Dateien und Ordner
23 | Die Liste kürzlich verwendeter Objekte enthält die zuletzt verwendeten Dateien und Ordner auf Ihrem Rechner, gefiltert nach den in den Filter-Einstellungen definierten Filtern. Innerhalb der angezeigten Gruppen sind die Einträge chronologisch sortiert, wobei die zuletzt verwendeten Dateien und Ordner (d.h. Objekte) am Anfang der Liste erscheinen. Um ein in der Liste angezeigtes Objekt mit seiner Standardanwendung zu öffnen, klicken Sie auf das Objekt. Um stattdessen den Speicherort des Objekts im Finder anzuzeigen, halten Sie die "Command"-Taste ⌘ gedrückt und klicken Sie dann auf das Objekt.
24 |
25 | Hinweis: Bitte beachten Sie, dass Recent Menu beim Programmstart und nach Änderungen der Filter-Einstellungen einen Moment benötigt, um die Liste kürzlich verwendeter Objekte zu aktualisieren; während dieser Zeit wird ein Warte-Hinweis angezeigt.
26 | Wie Recent Menu funktioniert
27 | Recent Menu wertet Daten des OS-X-System-Dienstes Spotlight aus, die als Metadaten den Zugriff auf alle auf einem lokalen System vorhandenen Dateien und Ordner protokollieren. Recent Menu verknüpft diese Daten mit den vom Benutzer definierten Filterkriterien, um so eine Liste der zuletzt verwendeten Dateien und Ordner zu erzeugen.
28 | Hinweis: Recent Menu kann derzeit die Verwendung von Dateien und Ordner, die sich nicht auf dem lokalen System befinden, sondern auf Netzwerk- oder Internet-Speichermedien, nicht feststellen und anzeigen.
29 |
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/RecentMenuHelp.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Recent-Menu-Hilfe
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
Inhaltsübersicht
19 |
20 |
Was Recent Menu tut - Wie Recent Menu funktioniert
21 |
22 |
Allgemeine Einstellungen - Sucheinstellungen - Filter konfigurieren
23 |
24 |
Unterstützung vom Entwickler erhalten
25 |
26 |
Übersicht über neue Funktionen und Fehlerbeseitigungen
27 |
28 |
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/Settings.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Einstellungen
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | Einstellungen
18 | Die Einstellungsmöglichkeiten von Recent Menu sind über drei Einstellungs-Fenster zugänglich, die Sie über das Hauptmenü aufrufen können.
19 | Allgemeine Einstellungen
20 |
21 | Starten beim Login
22 | In den allgemeinen Einstellungen können Sie festlegen, ob Recent Menu beim Anmelden eines Benutzers am Computer automatisch gestartet werden soll oder nicht. In der Voreinstellung ist dies nicht der Fall.
23 | Hotkey
24 | Sie können außerdem festlegen, ob Sie Recent Menu mit einer Tastenkombination (Hotkey) aufrufen wollen. In der Voreinstellung ist dies nicht der Fall. Wenn Sie eine Hotkey festlegen wollen, klicken Sie auf das Eingabefeld: und drücken Sie dann die Tastenkombination, mit der Sie Recent Menu aufrufen wollen. Sie müssen eine Kombination aus Buchstaben- oder Zifferntaste und einer Sondertaste (Shift, Alt, Control, Command) verwenden. Wenn Sie eine Tastenkombination erfolgreich eingegeben haben, wird diese angezeigt: (in diesem Beispiel: Alt+F). Die Hotkey ist damit eingeschaltet. Um die Tastenkombination wieder zu löschen und die Hotkey auszuschalten, klicken Sie auf das Kreuz am rechten Rand dieses Feldes.
25 | Zugriff auf Dateisystem
26 | Seit Version 1.2.1 läuft Recent Menu in einer Sandbox. Das bedeutet, dass das Programm im Prinzip keinen Zugriff auf Ihr Dateisystem hat, was der Sicherheit Ihres Systems dient. Allerdings benötigt Recent Menu einen Lesezugriff für Ihr Dateisystem, um ermitteln zu können, auf welche Dateien und Ordner Sie zugegriffen haben. Sie müssen daher auf den Zugriff-Gewähren-Button klicken und bestätigen, dass Sie Recent Menu diese Zugriffsrechte einräumen. Sie müssen dies nur einmal tun, ohne Zugriffsrechte funktioniert Recent Menu allerdings nicht.
27 | Sucheinstellungen
28 |
29 | In den Such-Einstellungen können Sie festlegen, für wie viele Stunden Recent Menu den Zugriff auf kürzlich verwendete Dateien und Ordner verfolgen soll. Dateien und Ordner, auf die vor längerer Zeit zugegriffen wurde, als hier festgelegt ist, werden von Recent Menu nicht mehr angezeigt.
30 | Sie können außerdem einstellen, ob Recent Menu nur in den Benutzer- und Programmordnern oder in allen lokalen Ordnern suchen soll. Die Suche in allen lokalen Ordnern bringt mehr Ergebnisse und kann je nach Dateityp erforderlich sein, um alle benutzten Dateien anzuzeigen.
31 | Hinweis: Bitte beachten Sie, dass Recent Menu den Zugriff auf Dateien und Ordner, die sich nicht auf Ihrem Computer befinden (sondern etwa im Internet oder in einem Netzwerk-Speicherplatz), nicht feststellen kann.
32 | Filter konfigurieren
33 |
34 | Die Filter-Einstellungen erlauben Ihnen, benutzerdefinierte Filter zu erstellen und zu bearbeiten und so die Gruppen der in der Liste benutzter Objekte angezeigten Einträge zu ändern. In der Liste benutzter Objekte werden die Gruppen (die den Filtern entsprechen) in der gleichen Reihenfolge wie in der Tabelle im Einstellungsfenster angezeigt. Um die Reihenfolge der Filter zu ändern, können Sie die Filter in der Tabelle mit Drag-und-Drop verschieben. Sie können durch Klick auf den -Button einen neuen Filter hinzufügen und durch Klick auf den -Button existierende Filter löschen.
35 | Hinweis: Bitte beachten Sie, dass Sie den "Alles"-Filter nicht löschen können.
36 | Durch Klick auf den -Button und dann auf den Befehl "Filter zurücksetzen" können Sie alle Filter auf ihre Voreinstellungen zurücksetzen.
37 | Hinweis: Wenn Sie die Filter auf ihre Voreinstellungen zurücksetzen, werden alle von Ihnen angelegten benutzerdefinierten Filter gelöscht!
38 | Auf der rechten Seite des Einstellungs-Fensters können Sie den Titel der Filter bearbeiten, festlegen, wie viele Einträge pro Filter angezeigt werden und Filter aktivieren oder deaktivieren. Deaktivierte Filter werden in der Liste der benutzten Objekte nicht angezeigt. Für die Festlegung des jeweiligen Filterkriteriums gilt Folgendes:
39 |
40 | Sie können als Filterkriterium den Namen von Dateien oder Ordnern verwenden. Recent Menu zeigt dann alle kürzlich verwendeten Dateien und Ordner an, deren Name (oder Teil des Namens) mit dem Filterkriterium übereinstimmt. Dabei können Sie das Zeichen "*" als Wildcard benutzen, um beliebige Zeichenfolgen in das Filterkriterium einzubauen. Wenn Sie etwa alle kürzlich verwendeten PDF-Dateien anzeigen lassen möchten, geben Sie als Filterkriterium "*pdf" ein.
41 | Sie können als Filterkriterium den Uniform Type Identifier von Dateien und Ordnern verwenden. So können Sie zum Beispiel, um alle kürzlich verwendeten PDF-Dateien anzuzeigen, als Filterkriterium "com.adobe.pdf" eingeben. Für weitere Informationen über "Uniform Type Identifier" besuchen Sie bitte die Support-Seite (s.u.).
42 | Sie können mehrere durch ein Komma getrennte Filterkriterien gemeinsam verwenden. Recent Menu zeigt dann alle Dateien und Ordner an, die mit mindestens einem der Kriterien übereinstimmen. Wenn Sie etwa für einen Filter "*pdf, *png" eingeben, werden für diesen Filter alle Dateien angezeigt, die entweder PDF-Dateien oder PNG-Dateien sind.
43 | Sie können bestimmte Dateien und Ordner von den Suchergebnissen ausschließen, indem Sie dem Filterkriterium ein Ausrufezeichen (!) voranstellen. Dies funktioniert sowohl mit Uniform Type Identifiern als auch mit dem Namen von Dateien und Ordnern. Um etwa Emails von den Suchergebnissen auszuschließen, verwenden Sie als Filterkriterium "!public.message", um alle Dateien auszuschließen, deren Namen die Zeichenfolge "credit" enthalten, verwenden Sie das Filterkriterium "!*credit*".
44 |
45 |
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/Support.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Support
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | Support
18 | Wenn Sie Unterstützung benötigen, Schwierigkeiten mit Recent Menu haben oder gerne weitere Funktionen verwirklicht wissen wollen, besuchen Sie bitte die Support-Seite auf der Recent-Menu-Website. Sie können den Entwickler von Recent Menu auch gerne per Email unter support@timschroeder.net kontaktieren.
19 |
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/Tasten1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/Tasten1.png
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/Tasten2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/Tasten2.png
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/de.lproj.helpindex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/de.lproj.helpindex
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/img01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/img01.png
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/prefs_filter_ger.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/prefs_filter_ger.png
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/prefs_general_ger.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/prefs_general_ger.png
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/prefs_search_ger.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/de.lproj/prefs_search_ger.png
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/Changelog.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Changelog
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | What's new?
18 | New in version 1.2.2 (December 2012):
19 |
20 | The recent items list now shows in the main menu of Recent Menu.
21 |
22 | New in version 1.2.1 (July 2012):
23 |
24 | Recent Menu now runs in a sandbox
25 |
26 | New in version 1.2 (May 2012):
27 |
28 | Custom filters can have exclusion arguments
29 |
30 | New in version 1.1 (August 2011):
31 |
32 | Custom filters can consist of several comma-separated filter arguments
33 | Pre-defined filters can be restored
34 | Hotkey is configurable
35 | Shows subject line instead of file name for email files
36 | Only in trial version: Trial period is reset in each new app version
37 | Help was enhanced
38 | Fixes for several small bugs
39 |
40 |
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/InfoPlist.strings
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/Intro.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Overview
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | Overview
18 | What Recent Menu does
19 | Recent Menu is a small tool living in your menu bar. It gives you access to a configurable list of recently accessed items (i.e., files and folders) on your computer. It finds accessed items even if it wasn't running at the time the items were accessed. Recent Menu is similar to Apple's Finder app. However, it doesn't show files and folders in their hierarchical order but sorted by the time they were accessed. While this is quite similar to a built-in functionality of OS X, in addition Recent Menu gives you the possibility to define custom filters for file types or file names. The idea behind Recent Menu is that files and folders you have recently used are likely to be used again soon and that Recent Menu can thereby facilitate finding these items.
20 |
21 | When you launch Recent Menu, there is normally no application icon in the dock menu (unless you decide to keep Recent Menu in the dock after installing it from the Mac App Store). Instead, you will notice a new icon resembling the app icon ( ) in the menu bar at the upper right corner of your screen. Click on this icon to access the features of Recent Menu. The main menu appearing gives you access to the configurable recent items list:
22 |
23 | List of recently used files and folders
24 | The list of recently used items shows files and folders you have accessed on your computer, grouped by the custom filters you have defined in the filter settings . The entry of every group are sorted chronologically with those items which have been accessed most recently are at the top of the group. To open a file shown in the list with its standard application, just click on it. To show its location in Finder, hold the command key ⌘ and then click on it.
25 |
26 | Note: After Recent Menu has been started and after filter preferences have been updated, Recent Menu needs a moment to update the list of recently used items. Until that is done, Recent Menu will show a waiting notice.
27 | How Recent Menu Works
28 | Recent Menu uses data provided by Spotlight, a OS X system service. Inter alia, Spotlight logs access to (almost) every file and folder on your local computer. Recent Menu links these data with the filter settings to create the list of recently accessed items.
29 | Note: Recent Menu cannot monitor items that are not located on your local computer but which are stored in an internet or network location.
30 |
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/RecentMenuHelp.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Recent Menu Help
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
Contents
19 |
20 |
What Recent Menu does - How Recent Menu works
21 |
22 |
General Preferences - Search Preferences - Filter Preferences
23 |
24 |
Get Developer Support
25 |
26 |
Overview of New Functions and Bug Fixes
27 |
28 |
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/Settings.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Settings
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | Settings
18 | You can configure Recent Menu in three preferences panes wich are accessible from the menu bar menu.
19 | General Preferences
20 |
21 | Launch At Login
22 | In the general preferences pane you can set Recent Menu to start automatically when you login. By default this is option is not enabled.
23 | Hotkey
24 | You can also set a customizable hotkey to access Recent Menu (after it has been started and is visible in the system menu bar). By default, this option is not enabled as no hotkey is defined. To turn on this option, just define a hotkey. To achieve this, klick on the hotkey input field: and press the combination of keys you would like to use as hotkey. You have to use a combination between a normal key and a modifier key (Shift, Alt, Control, Command). Once you have successfully entered a combination of keys, this combination is shown in the hotkey input field: (in this example: Alt+F). This also enables the hotkey. To disable the hotke function, just lick on the cross at the right side of the hotkey input field.
25 | File System Access
26 | Starting with Version 1.2.1, Recent Menu runs in a sandbox. This means that it has basically no access to your file system, which is good for security. However, in order to work, it needs to have read access, as otherwhise it couldn't monitor which files and folders you've recently accessed. You have therefore to grant Recent Menu these access rights by clicking on the Grant Access button and by confirming the selection in the file dialog. You have to do this only once, but without these access rights Recent Menu won't work.
27 | Search Preferences
28 |
29 | Search preferences allow you to adjust for which period of time ("Search Period") Recent Menu will monitor file and folder access. A higher value here means that Recent Menu will show more items. Typical values would be anything between a couple of hours and a couple of days (measured in hours). Files and folders which have been accessed before a longer time than it is defined here won't be shown by Recent Menu.
30 | You may also adjust the locations in which Recent Menu will look for recently accessed items ("Search Location"). If you decide to let Recent Menu only monitor user and application folders this will show not everything typicalle accessed on your computer, though it will cover more or less any files and folders you have created. If you decide to let Recent Menu monitor all local folders you will get more results, depending on your filter settings.
31 | Note: Recent Menu cannot monitor items that are not located on your local computer but which are stored in an internet or network location.
32 | Filter Preferences
33 |
34 | The filter preferences pane allows you to define and edit custom filters and to change the order in which the filters are shown in the recent items list. Filters which are enabled will be shown in the recent items list in the same order in which they appear in the source view. To change the order of filters, just drag and drop filters inside the source view. To enable or disable filters, click on the "Show in Menu" button. Add a new filter by clicking on the button and delete a filter by clicking on the button.
35 | Note: You cannot delete the "Everything" filter.
36 | By clicking on the button and then on the "reset filters" command you can reset all filters to its built-in settings.
37 | Note: If you reset the filters, all of your user-defined filters will be deleted!
38 | On the right side of the filter settings pane you can edit the titles of filters, set the number of entries shown for each filter and activate or deactivate each filter. Filters which are deactivated won't be shown in the list of recent items. To define the filter criteria, please follow these rules:
39 |
40 | You may use the name of recently accessed files or folders as search criterion. If you want Recent Menu to look for recently accessed items which share a common element in their file name (like the file extension), select this option and enter the term to search for. You may use the "*" wildcard. For example, to find all PDF files recently accessed, you could enter "*pdf" as search term.
41 | You may use the Uniform Type Identifier (UTI) of recently accessed files or folders as search criterion. For example, you can use the search term "com.adobe.pdf" to define a filter of recently accessed PDF files. For more information on UTI's please visit the support page (see below).
42 | You may use more than on filter criterion in a used-defined filter by comma-separating the criteria. Recent Menu will then show all items matching at least one of the criteria. For example, if you define a filter string as "*pdf, *png", Recent Menu will show PDF files as well as PNG files for this filter.
43 | You can exlude specific files or folders from being shown in the results list by using an exclamation mark (!) before a search criterion identifying the files or folders you want to exclude. This works with UTI search terms as well as with name search terms. For example, to exclude all email messages from being shown, use "!public.message" as search term, to exluce all files whose file name contains the characters "credit", use "!*credit*" as search term.
44 |
45 |
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/Support.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Support
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | Support
18 | If you need support, experience any trouble with Recent Menu or would like to see additional features implemented, please consult the Support Page on the Recent Menu website. You may also drop a line to the developer at support@timschroeder.net.
19 |
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/en.lproj.helpindex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/en.lproj.helpindex
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/img01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/img01.png
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/key1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/key1.png
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/key2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/key2.png
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/prefs_filter_eng.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/prefs_filter_eng.png
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/prefs_general_eng.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/prefs_general_eng.png
--------------------------------------------------------------------------------
/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/prefs_search_eng.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/RecentMenu.help/Contents/Resources/en.lproj/prefs_search_eng.png
--------------------------------------------------------------------------------
/Recent Menu/Recent_Menu-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleHelpBookFolder
10 | RecentMenu.help
11 | CFBundleHelpBookName
12 | com.timschroeder.recentmenu.help
13 | CFBundleIconFile
14 | rmicon.icns
15 | CFBundleIdentifier
16 | com.timschroeder.recentmenu
17 | CFBundleInfoDictionaryVersion
18 | 6.0
19 | CFBundleName
20 | ${PRODUCT_NAME}
21 | CFBundlePackageType
22 | APPL
23 | CFBundleShortVersionString
24 | 1.2.4
25 | CFBundleSignature
26 | ????
27 | CFBundleVersion
28 | 9
29 | LSApplicationCategoryType
30 | public.app-category.utilities
31 | LSMinimumSystemVersion
32 | 10.9
33 | LSUIElement
34 |
35 | NSHumanReadableCopyright
36 | Copyright © 2011-2014 Tim Schröder
37 | NSMainNibFile
38 | MainMenu
39 | NSPrincipalClass
40 | NSApplication
41 |
42 |
43 |
--------------------------------------------------------------------------------
/Recent Menu/Recent_Menu_Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Recent Menu' target in the 'Recent Menu' project
3 | //
4 |
5 | #ifdef __OBJC__
6 | #import
7 | #endif
8 |
--------------------------------------------------------------------------------
/Recent Menu/SRCommon.h:
--------------------------------------------------------------------------------
1 | //
2 | // SRCommon.h
3 | // ShortcutRecorder
4 | //
5 | // Copyright 2006-2007 Contributors. All rights reserved.
6 | //
7 | // License: BSD
8 | //
9 | // Contributors:
10 | // David Dauer
11 | // Jesper
12 | // Jamie Kirkpatrick
13 |
14 | #import
15 | #import
16 | #import
17 |
18 | #pragma mark Dummy class
19 |
20 | @interface SRDummyClass : NSObject {} @end
21 |
22 | #pragma mark -
23 | #pragma mark Typedefs
24 |
25 | typedef struct _KeyCombo {
26 | NSUInteger flags; // 0 for no flags
27 | NSInteger code; // -1 for no code
28 | } KeyCombo;
29 |
30 | #pragma mark -
31 | #pragma mark Enums
32 |
33 | // Unicode values of some keyboard glyphs
34 | enum {
35 | KeyboardTabRightGlyph = 0x21E5,
36 | KeyboardTabLeftGlyph = 0x21E4,
37 | KeyboardCommandGlyph = kCommandUnicode,
38 | KeyboardOptionGlyph = kOptionUnicode,
39 | KeyboardShiftGlyph = kShiftUnicode,
40 | KeyboardControlGlyph = kControlUnicode,
41 | KeyboardReturnGlyph = 0x2305,
42 | KeyboardReturnR2LGlyph = 0x21A9,
43 | KeyboardDeleteLeftGlyph = 0x232B,
44 | KeyboardDeleteRightGlyph = 0x2326,
45 | KeyboardPadClearGlyph = 0x2327,
46 | KeyboardLeftArrowGlyph = 0x2190,
47 | KeyboardRightArrowGlyph = 0x2192,
48 | KeyboardUpArrowGlyph = 0x2191,
49 | KeyboardDownArrowGlyph = 0x2193,
50 | KeyboardPageDownGlyph = 0x21DF,
51 | KeyboardPageUpGlyph = 0x21DE,
52 | KeyboardNorthwestArrowGlyph = 0x2196,
53 | KeyboardSoutheastArrowGlyph = 0x2198,
54 | KeyboardEscapeGlyph = 0x238B,
55 | KeyboardHelpGlyph = 0x003F,
56 | KeyboardUpArrowheadGlyph = 0x2303,
57 | };
58 |
59 | // Special keys
60 | enum {
61 | kSRKeysF1 = 122,
62 | kSRKeysF2 = 120,
63 | kSRKeysF3 = 99,
64 | kSRKeysF4 = 118,
65 | kSRKeysF5 = 96,
66 | kSRKeysF6 = 97,
67 | kSRKeysF7 = 98,
68 | kSRKeysF8 = 100,
69 | kSRKeysF9 = 101,
70 | kSRKeysF10 = 109,
71 | kSRKeysF11 = 103,
72 | kSRKeysF12 = 111,
73 | kSRKeysF13 = 105,
74 | kSRKeysF14 = 107,
75 | kSRKeysF15 = 113,
76 | kSRKeysF16 = 106,
77 | kSRKeysF17 = 64,
78 | kSRKeysF18 = 79,
79 | kSRKeysF19 = 80,
80 | kSRKeysSpace = 49,
81 | kSRKeysDeleteLeft = 51,
82 | kSRKeysDeleteRight = 117,
83 | kSRKeysPadClear = 71,
84 | kSRKeysLeftArrow = 123,
85 | kSRKeysRightArrow = 124,
86 | kSRKeysUpArrow = 126,
87 | kSRKeysDownArrow = 125,
88 | kSRKeysSoutheastArrow = 119,
89 | kSRKeysNorthwestArrow = 115,
90 | kSRKeysEscape = 53,
91 | kSRKeysPageDown = 121,
92 | kSRKeysPageUp = 116,
93 | kSRKeysReturnR2L = 36,
94 | kSRKeysReturn = 76,
95 | kSRKeysTabRight = 48,
96 | kSRKeysHelp = 114
97 | };
98 |
99 | #pragma mark -
100 | #pragma mark Macros
101 |
102 | // Localization macros, for use in any bundle
103 | #define SRLoc(key) SRLocalizedString(key, nil)
104 | #define SRLocalizedString(key, comment) NSLocalizedStringFromTableInBundle(key, @"ShortcutRecorder", [NSBundle bundleForClass: [SRDummyClass class]], comment)
105 |
106 | // Image macros, for use in any bundle
107 | //#define SRImage(name) [[[NSImage alloc] initWithContentsOfFile: [[NSBundle bundleForClass: [self class]] pathForImageResource: name]] autorelease]
108 | #define SRResIndImage(name) [SRSharedImageProvider supportingImageWithName:name]
109 | #define SRImage(name) SRResIndImage(name)
110 |
111 | //#define SRCommonWriteDebugImagery
112 |
113 | // Macros for glyps
114 | #define SRInt(x) [NSNumber numberWithInteger:x]
115 | #define SRChar(x) [NSString stringWithFormat: @"%C", (unichar)x]
116 |
117 | // Some default values
118 | #define ShortcutRecorderEmptyFlags 0
119 | #define ShortcutRecorderAllFlags ShortcutRecorderEmptyFlags | (NSCommandKeyMask | NSAlternateKeyMask | NSControlKeyMask | NSShiftKeyMask | NSFunctionKeyMask)
120 | #define ShortcutRecorderEmptyCode -1
121 |
122 | // These keys will cancel the recoding mode if not pressed with any modifier
123 | #define ShortcutRecorderEscapeKey 53
124 | #define ShortcutRecorderBackspaceKey 51
125 | #define ShortcutRecorderDeleteKey 117
126 |
127 | #pragma mark -
128 | #pragma mark Getting a string of the key combination
129 |
130 | //
131 | // ################### +- Returns string from keyCode like NSEvent's -characters
132 | // # EXPLANATORY # | +- Returns string from keyCode like NSEvent's -charactersUsingModifiers
133 | // # CHART # | | +- Returns fully readable and localized name of modifier (if modifier given)
134 | // ################### | | | +- Returns glyph of modifier (if modifier given)
135 | // SRString... X - - X
136 | // SRReadableString... X - X -
137 | // SRCharacter... - X - -
138 | //
139 | NSString * SRStringForKeyCode( NSInteger keyCode );
140 | NSString * SRStringForCarbonModifierFlags( NSUInteger flags );
141 | NSString * SRStringForCarbonModifierFlagsAndKeyCode( NSUInteger flags, NSInteger keyCode );
142 | NSString * SRStringForCocoaModifierFlags( NSUInteger flags );
143 | NSString * SRStringForCocoaModifierFlagsAndKeyCode( NSUInteger flags, NSInteger keyCode );
144 | NSString * SRReadableStringForCarbonModifierFlagsAndKeyCode( NSUInteger flags, NSInteger keyCode );
145 | NSString * SRReadableStringForCocoaModifierFlagsAndKeyCode( NSUInteger flags, NSInteger keyCode );
146 | NSString *SRCharacterForKeyCodeAndCarbonFlags(NSInteger keyCode, NSUInteger carbonFlags);
147 | NSString *SRCharacterForKeyCodeAndCocoaFlags(NSInteger keyCode, NSUInteger cocoaFlags);
148 |
149 | #pragma mark Converting between Cocoa and Carbon modifier flags
150 |
151 | NSUInteger SRCarbonToCocoaFlags( NSUInteger carbonFlags );
152 | NSUInteger SRCocoaToCarbonFlags( NSUInteger cocoaFlags );
153 |
154 | #pragma mark -
155 | #pragma mark Animation pace function
156 |
157 | CGFloat SRAnimationEaseInOut(CGFloat t);
158 |
159 | #pragma mark -
160 | #pragma mark Inlines
161 |
162 | FOUNDATION_STATIC_INLINE KeyCombo SRMakeKeyCombo(NSInteger code, NSUInteger flags) {
163 | KeyCombo kc;
164 | kc.code = code;
165 | kc.flags = flags;
166 | return kc;
167 | }
168 |
169 | FOUNDATION_STATIC_INLINE BOOL SRIsSpecialKey(NSInteger keyCode) {
170 | return (keyCode == kSRKeysF1 || keyCode == kSRKeysF2 || keyCode == kSRKeysF3 || keyCode == kSRKeysF4 || keyCode == kSRKeysF5 || keyCode == kSRKeysF6 || keyCode == kSRKeysF7 || keyCode == kSRKeysF8 || keyCode == kSRKeysF9 || keyCode == kSRKeysF10 || keyCode == kSRKeysF11 || keyCode == kSRKeysF12 || keyCode == kSRKeysF13 || keyCode == kSRKeysF14 || keyCode == kSRKeysF15 || keyCode == kSRKeysF16 || keyCode == kSRKeysSpace || keyCode == kSRKeysDeleteLeft || keyCode == kSRKeysDeleteRight || keyCode == kSRKeysPadClear || keyCode == kSRKeysLeftArrow || keyCode == kSRKeysRightArrow || keyCode == kSRKeysUpArrow || keyCode == kSRKeysDownArrow || keyCode == kSRKeysSoutheastArrow || keyCode == kSRKeysNorthwestArrow || keyCode == kSRKeysEscape || keyCode == kSRKeysPageDown || keyCode == kSRKeysPageUp || keyCode == kSRKeysReturnR2L || keyCode == kSRKeysReturn || keyCode == kSRKeysTabRight || keyCode == kSRKeysHelp);
171 | }
172 |
173 | #pragma mark -
174 | #pragma mark Additions
175 |
176 | @interface NSAlert( SRAdditions )
177 | + (NSAlert *) alertWithNonRecoverableError:(NSError *)error;
178 | @end
179 |
180 | #pragma mark -
181 | #pragma mark Image provider
182 |
183 | @interface SRSharedImageProvider : NSObject
184 | + (NSImage *)supportingImageWithName:(NSString *)name;
185 | @end
186 |
--------------------------------------------------------------------------------
/Recent Menu/SRKeyCodeTransformer.h:
--------------------------------------------------------------------------------
1 | //
2 | // SRKeyCodeTransformer.h
3 | // ShortcutRecorder
4 | //
5 | // Copyright 2006-2007 Contributors. All rights reserved.
6 | //
7 | // License: BSD
8 | //
9 | // Contributors:
10 | // David Dauer
11 | // Jesper
12 | // Jamie Kirkpatrick
13 |
14 | #import
15 |
16 | @interface SRKeyCodeTransformer : NSValueTransformer {} @end
17 |
--------------------------------------------------------------------------------
/Recent Menu/SRRecorderCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // SRRecorderCell.h
3 | // ShortcutRecorder
4 | //
5 | // Copyright 2006-2007 Contributors. All rights reserved.
6 | //
7 | // License: BSD
8 | //
9 | // Contributors:
10 | // David Dauer
11 | // Jesper
12 | // Jamie Kirkpatrick
13 |
14 | #import
15 | #import "SRCommon.h"
16 |
17 | #define SRMinWidth 50
18 | #define SRMaxHeight 22
19 |
20 | #define SRTransitionFPS 30.0f
21 | #define SRTransitionDuration 0.35f
22 | //#define SRTransitionDuration 2.35
23 | #define SRTransitionFrames (SRTransitionFPS*SRTransitionDuration)
24 | #define SRAnimationAxisIsY YES
25 | #define ShortcutRecorderNewStyleDrawing
26 |
27 | #define SRAnimationOffsetRect(X,Y) (SRAnimationAxisIsY ? NSOffsetRect(X,0.0f,-NSHeight(Y)) : NSOffsetRect(X,NSWidth(Y),0.0f))
28 |
29 | @class SRRecorderControl, SRValidator;
30 |
31 | enum SRRecorderStyle {
32 | SRGradientBorderStyle = 0,
33 | SRGreyStyle = 1
34 | };
35 | typedef enum SRRecorderStyle SRRecorderStyle;
36 |
37 | @interface SRRecorderCell : NSActionCell
38 | {
39 | NSGradient *recordingGradient;
40 | NSString *autosaveName;
41 |
42 | BOOL isRecording;
43 | BOOL mouseInsideTrackingArea;
44 | BOOL mouseDown;
45 |
46 | SRRecorderStyle style;
47 |
48 | BOOL isAnimating;
49 | CGFloat transitionProgress;
50 | BOOL isAnimatingNow;
51 | BOOL isAnimatingTowardsRecording;
52 | BOOL comboJustChanged;
53 |
54 | NSTrackingRectTag removeTrackingRectTag;
55 | NSTrackingRectTag snapbackTrackingRectTag;
56 |
57 | KeyCombo keyCombo;
58 | BOOL hasKeyChars;
59 | NSString *keyChars;
60 | NSString *keyCharsIgnoringModifiers;
61 |
62 | NSUInteger allowedFlags;
63 | NSUInteger requiredFlags;
64 | NSUInteger recordingFlags;
65 |
66 | BOOL allowsKeyOnly;
67 | BOOL escapeKeysRecord;
68 |
69 | NSSet *cancelCharacterSet;
70 |
71 | SRValidator *validator;
72 |
73 | IBOutlet id delegate;
74 | BOOL globalHotKeys;
75 | void *hotKeyModeToken;
76 | }
77 |
78 | - (void)resetTrackingRects;
79 |
80 | #pragma mark *** Aesthetics ***
81 |
82 | + (BOOL)styleSupportsAnimation:(SRRecorderStyle)style;
83 |
84 | - (BOOL)animates;
85 | - (void)setAnimates:(BOOL)an;
86 | - (SRRecorderStyle)style;
87 | - (void)setStyle:(SRRecorderStyle)nStyle;
88 |
89 | #pragma mark *** Delegate ***
90 |
91 | - (id)delegate;
92 | - (void)setDelegate:(id)aDelegate;
93 |
94 | #pragma mark *** Responder Control ***
95 |
96 | - (BOOL)becomeFirstResponder;
97 | - (BOOL)resignFirstResponder;
98 |
99 | #pragma mark *** Key Combination Control ***
100 |
101 | - (BOOL)performKeyEquivalent:(NSEvent *)theEvent;
102 | - (void)flagsChanged:(NSEvent *)theEvent;
103 |
104 | - (NSUInteger)allowedFlags;
105 | - (void)setAllowedFlags:(NSUInteger)flags;
106 |
107 | - (NSUInteger)requiredFlags;
108 | - (void)setRequiredFlags:(NSUInteger)flags;
109 |
110 | - (BOOL)allowsKeyOnly;
111 | - (void)setAllowsKeyOnly:(BOOL)nAllowsKeyOnly;
112 | - (void)setAllowsKeyOnly:(BOOL)nAllowsKeyOnly escapeKeysRecord:(BOOL)nEscapeKeysRecord;
113 | - (BOOL)escapeKeysRecord;
114 | - (void)setEscapeKeysRecord:(BOOL)nEscapeKeysRecord;
115 |
116 | - (BOOL)canCaptureGlobalHotKeys;
117 | - (void)setCanCaptureGlobalHotKeys:(BOOL)inState;
118 |
119 | - (KeyCombo)keyCombo;
120 | - (void)setKeyCombo:(KeyCombo)aKeyCombo;
121 |
122 | #pragma mark *** Autosave Control ***
123 |
124 | - (NSString *)autosaveName;
125 | - (void)setAutosaveName:(NSString *)aName;
126 |
127 | // Returns the displayed key combination if set
128 | - (NSString *)keyComboString;
129 |
130 | - (NSString *)keyChars;
131 | - (NSString *)keyCharsIgnoringModifiers;
132 |
133 | @end
134 |
135 | // Delegate Methods
136 | @interface NSObject (SRRecorderCellDelegate)
137 | - (BOOL)shortcutRecorderCell:(SRRecorderCell *)aRecorderCell isKeyCode:(NSInteger)keyCode andFlagsTaken:(NSUInteger)flags reason:(NSString **)aReason;
138 | - (void)shortcutRecorderCell:(SRRecorderCell *)aRecorderCell keyComboDidChange:(KeyCombo)newCombo;
139 | @end
140 |
--------------------------------------------------------------------------------
/Recent Menu/SRRecorderControl.h:
--------------------------------------------------------------------------------
1 | //
2 | // SRRecorderControl.h
3 | // ShortcutRecorder
4 | //
5 | // Copyright 2006-2007 Contributors. All rights reserved.
6 | //
7 | // License: BSD
8 | //
9 | // Contributors:
10 | // David Dauer
11 | // Jesper
12 | // Jamie Kirkpatrick
13 |
14 | #import
15 | #import "SRRecorderCell.h"
16 |
17 | @interface SRRecorderControl : NSControl
18 | {
19 | IBOutlet id delegate;
20 | }
21 |
22 | #pragma mark *** Aesthetics ***
23 | - (BOOL)animates;
24 | - (void)setAnimates:(BOOL)an;
25 | - (SRRecorderStyle)style;
26 | - (void)setStyle:(SRRecorderStyle)nStyle;
27 |
28 | #pragma mark *** Delegate ***
29 | - (id)delegate;
30 | - (void)setDelegate:(id)aDelegate;
31 |
32 | #pragma mark *** Key Combination Control ***
33 |
34 | - (NSUInteger)allowedFlags;
35 | - (void)setAllowedFlags:(NSUInteger)flags;
36 |
37 | - (BOOL)allowsKeyOnly;
38 | - (void)setAllowsKeyOnly:(BOOL)nAllowsKeyOnly escapeKeysRecord:(BOOL)nEscapeKeysRecord;
39 | - (BOOL)escapeKeysRecord;
40 |
41 | - (BOOL)canCaptureGlobalHotKeys;
42 | - (void)setCanCaptureGlobalHotKeys:(BOOL)inState;
43 |
44 | - (NSUInteger)requiredFlags;
45 | - (void)setRequiredFlags:(NSUInteger)flags;
46 |
47 | - (KeyCombo)keyCombo;
48 | - (void)setKeyCombo:(KeyCombo)aKeyCombo;
49 |
50 | - (NSString *)keyChars;
51 | - (NSString *)keyCharsIgnoringModifiers;
52 |
53 | #pragma mark *** Autosave Control ***
54 |
55 | - (NSString *)autosaveName;
56 | - (void)setAutosaveName:(NSString *)aName;
57 |
58 | #pragma mark -
59 |
60 | // Returns the displayed key combination if set
61 | - (NSString *)keyComboString;
62 |
63 | #pragma mark *** Conversion Methods ***
64 |
65 | - (NSUInteger)cocoaToCarbonFlags:(NSUInteger)cocoaFlags;
66 | - (NSUInteger)carbonToCocoaFlags:(NSUInteger)carbonFlags;
67 |
68 | #pragma mark *** Binding Methods ***
69 |
70 | - (NSDictionary *)objectValue;
71 | - (void)setObjectValue:(NSDictionary *)shortcut;
72 |
73 | @end
74 |
75 | // Delegate Methods
76 | @interface NSObject (SRRecorderDelegate)
77 | - (BOOL)shortcutRecorder:(SRRecorderControl *)aRecorder isKeyCode:(NSInteger)keyCode andFlagsTaken:(NSUInteger)flags reason:(NSString **)aReason;
78 | - (void)shortcutRecorder:(SRRecorderControl *)aRecorder keyComboDidChange:(KeyCombo)newKeyCombo;
79 | @end
80 |
--------------------------------------------------------------------------------
/Recent Menu/SRValidator.h:
--------------------------------------------------------------------------------
1 | //
2 | // SRValidator.h
3 | // ShortcutRecorder
4 | //
5 | // Copyright 2006-2007 Contributors. All rights reserved.
6 | //
7 | // License: BSD
8 | //
9 | // Contributors:
10 | // David Dauer
11 | // Jesper
12 | // Jamie Kirkpatrick
13 |
14 | #import
15 |
16 | @interface SRValidator : NSObject {
17 | id delegate;
18 | }
19 |
20 | - (id) initWithDelegate:(id)theDelegate;
21 |
22 | - (BOOL) isKeyCode:(NSInteger)keyCode andFlagsTaken:(NSUInteger)flags error:(NSError **)error;
23 | - (BOOL) isKeyCode:(NSInteger)keyCode andFlags:(NSUInteger)flags takenInMenu:(NSMenu *)menu error:(NSError **)error;
24 |
25 | - (id) delegate;
26 | - (void) setDelegate: (id) theDelegate;
27 |
28 | @end
29 |
30 | #pragma mark -
31 |
32 | @interface NSObject( SRValidation )
33 | - (BOOL) shortcutValidator:(SRValidator *)validator isKeyCode:(NSInteger)keyCode andFlagsTaken:(NSUInteger)flags reason:(NSString **)aReason;
34 | @end
35 |
--------------------------------------------------------------------------------
/Recent Menu/Search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/Search.png
--------------------------------------------------------------------------------
/Recent Menu/action.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/action.png
--------------------------------------------------------------------------------
/Recent Menu/de.lproj/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf140
2 | {\fonttbl\f0\fnil\fcharset0 LucidaGrande;}
3 | {\colortbl;\red255\green255\blue255;\red0\green0\blue153;}
4 | \paperw12240\paperh15840\viewkind0
5 | \deftab720
6 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\pardirnatural\qc
7 |
8 | \f0\b\fs20 \cf0 \expnd0\expndtw0\kerning0
9 | \
10 |
11 | \b0 \expnd0\expndtw0\kerning0
12 | Version 1.2.4 (Oktober 2014)\
13 | \
14 | von Tim Schr\'f6der\
15 | \cf2 \expnd0\expndtw0\kerning0
16 | \ul \ulc2 \
17 | {\field{\*\fldinst{HYPERLINK "http://www.timschroeder.net"}}{\fldrslt \expnd0\expndtw0\kerning0
18 | http://www.timschroeder.net}}\
19 | \pard\pardeftab720
20 | \cf0 \kerning1\expnd0\expndtw0 \ulnone \
21 | \pard\pardeftab720\qc
22 | \cf0 \
23 | Copyright 2011-2014 Tim Schr\'f6der\
24 | \
25 | Hiermit wird unentgeltlich jeder Person, die eine Kopie der Software und der zugeh\'f6rigen Dokumentationen (die "Software") erh\'e4lt, die Erlaubnis erteilt, sie uneingeschr\'e4nkt zu benutzen, inklusive und ohne Ausnahme dem Recht, sie zu verwenden, kopieren, \'e4ndern, fusionieren, verlegen, verbreiten, unterlizenzieren und/oder zu verkaufen, und Personen, die diese Software erhalten, diese Rechte zu geben, unter den folgenden Bedingungen:\
26 | \
27 | Der obige Urheberrechtsvermerk und dieser Erlaubnisvermerk sind in allen Kopien oder Teilkopien der Software beizulegen.\
28 | \
29 | DIE SOFTWARE WIRD OHNE JEDE AUSDR\'dcCKLICHE ODER IMPLIZIERTE GARANTIE BEREITGESTELLT, EINSCHLIESSLICH DER GARANTIE ZUR BENUTZUNG F\'dcR DEN VORGESEHENEN ODER EINEM BESTIMMTEN ZWECK SOWIE JEGLICHER RECHTSVERLETZUNG, JEDOCH NICHT DARAUF BESCHR\'c4NKT. IN KEINEM FALL SIND DIE AUTOREN ODER COPYRIGHTINHABER F\'dcR JEGLICHEN SCHADEN ODER SONSTIGE ANSPR\'dcCHE HAFTBAR ZU MACHEN, OB INFOLGE DER ERF\'dcLLUNG EINES VERTRAGES, EINES DELIKTES ODER ANDERS IM ZUSAMMENHANG MIT DER SOFTWARE ODER SONSTIGER VERWENDUNG DER SOFTWARE ENTSTANDEN.\
30 | \pard\pardeftab720
31 | \cf0 \
32 | \
33 | \
34 | \pard\pardeftab720\qc
35 | \cf0 Recent Menu verwendet Code folgender Open-Source-Projekte:\
36 | \
37 | \
38 | \pard\pardeftab720\qc
39 |
40 | \b \cf0 DBPrefsWindowController
41 | \b0 \
42 | \pard\pardeftab720
43 | \cf0 \
44 | \pard\pardeftab720\qc
45 | \cf0 Copyright 2007 Dave Barton. Some rights reserved. \
46 | http://www.Mere-Mortal-Software.com/blog/\
47 | \
48 | \pard\tx560\pardeftab560\pardirnatural
49 | \cf0 \
50 | \pard\tx560\pardeftab560\pardirnatural\qc
51 |
52 | \b \cf0 DDHotKey
53 | \b0 \
54 | \
55 | Copyright (c) 2010, Dave DeLong \
56 | \
57 | License Text:\
58 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. The software is provided "as is", without warranty of any kind, including all implied warranties of merchantability and fitness. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software.\
59 | \
60 | \
61 |
62 | \b ShortcutRecorder
63 | \b0 \
64 | \
65 | Copyright (c) 2006, contributors to ShortcutRecorder.\
66 | http://code.google.com/p/shortcutrecorder/\
67 | \
68 | All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\
69 | \
70 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\
71 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\
72 | * The name of the contributors may not be used to endorse or promote products derived from this software without specific prior written permission.\
73 | \
74 | THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\
75 | \
76 | \
77 | ***}
--------------------------------------------------------------------------------
/Recent Menu/de.lproj/Localizable.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/de.lproj/Localizable.strings
--------------------------------------------------------------------------------
/Recent Menu/de.lproj/ShortcutRecorder.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/de.lproj/ShortcutRecorder.strings
--------------------------------------------------------------------------------
/Recent Menu/defaultfilters.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | title
7 | All
8 | type
9 | Filename
10 | value
11 |
12 | hidden
13 | NO
14 | enabled
15 | YES
16 | editable
17 | NO
18 | showcount
19 | 10
20 | tag
21 | 0
22 |
23 |
24 | title
25 | iWork Files
26 | type
27 | UTI
28 | value
29 | com.apple.iwork.*
30 | hidden
31 | NO
32 | enabled
33 | NO
34 | editable
35 | YES
36 | showcount
37 | 10
38 | tag
39 | 1
40 |
41 |
42 | title
43 | Source Code
44 | type
45 | UTI
46 | value
47 | public.source-code
48 | hidden
49 | NO
50 | enabled
51 | NO
52 | editable
53 | YES
54 | showcount
55 | 10
56 | tag
57 | 2
58 |
59 |
60 | title
61 | Documents
62 | type
63 | UTI
64 | value
65 | public.content
66 | hidden
67 | NO
68 | enabled
69 | NO
70 | editable
71 | YES
72 | showcount
73 | 10
74 | tag
75 | 3
76 |
77 |
78 | title
79 | PDF
80 | type
81 | UTI
82 | value
83 | com.adobe.pdf
84 | hidden
85 | NO
86 | enabled
87 | NO
88 | editable
89 | YES
90 | showcount
91 | 10
92 | tag
93 | 4
94 |
95 |
96 | title
97 | Movies
98 | type
99 | UTI
100 | value
101 | public.movie
102 | hidden
103 | NO
104 | enabled
105 | NO
106 | editable
107 | YES
108 | showcount
109 | 10
110 | tag
111 | 5
112 |
113 |
114 | title
115 | Images
116 | type
117 | UTI
118 | value
119 | public.image
120 | hidden
121 | NO
122 | enabled
123 | NO
124 | editable
125 | YES
126 | showcount
127 | 10
128 | tag
129 | 6
130 |
131 |
132 | title
133 | Folders
134 | type
135 | UTI
136 | value
137 | public.folder
138 | hidden
139 | NO
140 | enabled
141 | YES
142 | editable
143 | YES
144 | showcount
145 | 10
146 | tag
147 | 7
148 |
149 |
150 | title
151 | Apps
152 | type
153 | UTI
154 | value
155 | com.apple.application-bundle
156 | hidden
157 | NO
158 | enabled
159 | YES
160 | editable
161 | YES
162 | showcount
163 | 10
164 | tag
165 | 8
166 |
167 |
168 |
169 |
--------------------------------------------------------------------------------
/Recent Menu/en.lproj/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf140
2 | {\fonttbl\f0\fnil\fcharset0 LucidaGrande;}
3 | {\colortbl;\red255\green255\blue255;\red0\green0\blue153;}
4 | \paperw12240\paperh15840\viewkind0
5 | \deftab720
6 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\pardirnatural\qc
7 |
8 | \f0\b\fs20 \cf0 \expnd0\expndtw0\kerning0
9 | \
10 |
11 | \b0 \expnd0\expndtw0\kerning0
12 | Version 1.2.4 (October 2014) \
13 | \
14 | by Tim Schr\'f6der\
15 | \cf2 \expnd0\expndtw0\kerning0
16 | \ul \ulc2 \
17 | {\field{\*\fldinst{HYPERLINK "http://www.timschroeder.net"}}{\fldrslt \expnd0\expndtw0\kerning0
18 | http://www.timschroeder.net}}\
19 | \pard\pardeftab720
20 | \cf0 \kerning1\expnd0\expndtw0 \ulnone \
21 | \
22 | \pard\pardeftab720\qc
23 | \cf0 Copyright 2011-2014 Tim Schr\'f6der\
24 | \
25 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\
26 | \
27 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\
28 | \
29 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\
30 | \pard\pardeftab720
31 | \cf0 \
32 | \
33 | \
34 | \pard\pardeftab720\qc
35 | \cf0 Recent Menu uses code from several open source projects which is acknowledged hereby:\
36 | \
37 | \
38 | \pard\pardeftab720\qc
39 |
40 | \b \cf0 DBPrefsWindowController
41 | \b0 \
42 | \pard\pardeftab720
43 | \cf0 \
44 | \pard\pardeftab720\qc
45 | \cf0 Copyright 2007 Dave Barton. Some rights reserved. \
46 | http://www.Mere-Mortal-Software.com/blog/\
47 | \pard\tx560\pardeftab560\pardirnatural\qc
48 | \cf0 \
49 | \
50 |
51 | \b DDHotKey
52 | \b0 \
53 | \
54 | Copyright (c) 2010, Dave DeLong \
55 | \
56 | License Text:\
57 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. The software is provided "as is", without warranty of any kind, including all implied warranties of merchantability and fitness. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software.\
58 | \
59 | \
60 |
61 | \b ShortcutRecorder
62 | \b0 \
63 | \
64 | Copyright (c) 2006, contributors to ShortcutRecorder.\
65 | http://code.google.com/p/shortcutrecorder/\
66 | \
67 | All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\
68 | \
69 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\
70 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\
71 | * The name of the contributors may not be used to endorse or promote products derived from this software without specific prior written permission.\
72 | \
73 | THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\
74 | \
75 | \
76 | ***}
--------------------------------------------------------------------------------
/Recent Menu/en.lproj/Localizable.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/en.lproj/Localizable.strings
--------------------------------------------------------------------------------
/Recent Menu/en.lproj/ShortcutRecorder.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/en.lproj/ShortcutRecorder.strings
--------------------------------------------------------------------------------
/Recent Menu/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Recent Menu
4 | //
5 | // Created by Tim Schröder on 09.02.11.
6 | // Copyright 2011 Tim Schröder. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[])
12 | {
13 | return NSApplicationMain(argc, (const char **) argv);
14 | }
15 |
--------------------------------------------------------------------------------
/Recent Menu/menuitem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/menuitem.png
--------------------------------------------------------------------------------
/Recent Menu/menuitem@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/menuitem@2x.png
--------------------------------------------------------------------------------
/Recent Menu/rmicon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/Recent Menu/rmicon.icns
--------------------------------------------------------------------------------
/RecentMenu-Helper/RecentMenu-Helper/RecentMenu-Helper-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | com.timschroeder.${PRODUCT_NAME:rfc1034identifier}
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSHumanReadableCopyright
28 | Copyright © 2012 Tim Schröder. All rights reserved.
29 | NSMainNibFile
30 | MainMenu
31 | NSPrincipalClass
32 | NSApplication
33 | LSBackgroundOnly
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/RecentMenu-Helper/RecentMenu-Helper/RecentMenu-Helper-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'RecentMenu-Helper' target in the 'RecentMenu-Helper' project
3 | //
4 |
5 | #ifdef __OBJC__
6 | #import
7 | #endif
8 |
--------------------------------------------------------------------------------
/RecentMenu-Helper/RecentMenu-Helper/RecentMenu-Helper.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/RecentMenu-Helper/RecentMenu-Helper/TSAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // TSAppDelegate.h
3 | // RecentMenu-Helper
4 | //
5 | // Created by Tim Schröder on 12.07.12.
6 | // Copyright (c) 2012 Tim Schröder. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface TSAppDelegate : NSObject
12 |
13 | @property (assign) IBOutlet NSWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/RecentMenu-Helper/RecentMenu-Helper/TSAppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // TSAppDelegate.m
3 | // RecentMenu-Helper
4 | //
5 | // Created by Tim Schröder on 12.07.12.
6 | // Copyright (c) 2012 Tim Schröder. All rights reserved.
7 | //
8 |
9 | #import "TSAppDelegate.h"
10 |
11 | @implementation TSAppDelegate
12 |
13 |
14 | #define mainAppBundleIdentifier @"com.timschroeder.recentmenu"
15 | #define mainAppName @"Recent Menu"
16 |
17 | @synthesize window = _window;
18 |
19 | - (void)dealloc
20 | {
21 | [super dealloc];
22 | }
23 |
24 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
25 | {
26 | // Check if main app is already running
27 | BOOL alreadyRunning = NO;
28 | NSArray *running = [[NSWorkspace sharedWorkspace] runningApplications];
29 | for (NSRunningApplication *app in running) {
30 | if ([[app bundleIdentifier] isEqualToString:mainAppBundleIdentifier]) {
31 | alreadyRunning = YES;
32 | }
33 | }
34 |
35 | if (!alreadyRunning) {
36 | // Launch Main App
37 | NSString *path = [[NSBundle mainBundle] bundlePath];
38 | NSArray *p = [path pathComponents];
39 | NSMutableArray *pathComponents = [NSMutableArray arrayWithArray:p];
40 | [pathComponents removeLastObject];
41 | [pathComponents removeLastObject];
42 | [pathComponents removeLastObject];
43 | [pathComponents addObject:@"MacOS"];
44 | [pathComponents addObject:mainAppName];
45 | NSString *newPath = [NSString pathWithComponents:pathComponents];
46 | [[NSWorkspace sharedWorkspace] launchApplication:newPath];
47 | }
48 | [NSApp terminate:nil];
49 | }
50 |
51 |
52 | @end
53 |
--------------------------------------------------------------------------------
/RecentMenu-Helper/RecentMenu-Helper/en.lproj/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
2 | {\colortbl;\red255\green255\blue255;}
3 | \paperw9840\paperh8400
4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
5 |
6 | \f0\b\fs24 \cf0 Engineering:
7 | \b0 \
8 | Some people\
9 | \
10 |
11 | \b Human Interface Design:
12 | \b0 \
13 | Some other people\
14 | \
15 |
16 | \b Testing:
17 | \b0 \
18 | Hopefully not nobody\
19 | \
20 |
21 | \b Documentation:
22 | \b0 \
23 | Whoever\
24 | \
25 |
26 | \b With special thanks to:
27 | \b0 \
28 | Mom\
29 | }
30 |
--------------------------------------------------------------------------------
/RecentMenu-Helper/RecentMenu-Helper/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/RecentMenu-Helper/RecentMenu-Helper/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // RecentMenu-Helper
4 | //
5 | // Created by Tim Schröder on 12.07.12.
6 | // Copyright (c) 2012 Tim Schröder. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[])
12 | {
13 | return NSApplicationMain(argc, (const char **)argv);
14 | }
15 |
--------------------------------------------------------------------------------
/recentmenu-screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timschroederme/recentmenu/df9090049cb59c17a21d54e84a8fcb5b934533f3/recentmenu-screenshot.png
--------------------------------------------------------------------------------