diff options
Diffstat (limited to 'gedit/osx/gedit-osx.c')
-rwxr-xr-x | gedit/osx/gedit-osx.c | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/gedit/osx/gedit-osx.c b/gedit/osx/gedit-osx.c new file mode 100755 index 00000000..e7a18d42 --- /dev/null +++ b/gedit/osx/gedit-osx.c @@ -0,0 +1,94 @@ +#include "gedit-osx.h" +#include <gdk/gdkquartz.h> +#include <Carbon/Carbon.h> + +#import "gedit-osx-delegate.h" + +void +gedit_osx_set_window_title (GeditWindow *window, + gchar const *title, + GeditDocument *document) +{ + NSWindow *native; + + g_return_if_fail (GEDIT_IS_WINDOW (window)); + + if (GTK_WIDGET (window)->window == NULL) + { + return; + } + + native = gdk_quartz_window_get_nswindow (GTK_WIDGET (window)->window); + + if (document) + { + bool ismodified; + + if (gedit_document_is_untitled (document)) + { + [native setRepresentedURL:nil]; + } + else + { + const gchar *uri = gedit_document_get_uri (document); + NSURL *nsurl = [NSURL URLWithString:[NSString stringWithUTF8String:uri]]; + + [native setRepresentedURL:nsurl]; + } + + ismodified = !gedit_document_is_untouched (document); + [native setDocumentEdited:ismodified]; + } + else + { + [native setRepresentedURL:nil]; + [native setDocumentEdited:false]; + } + + gtk_window_set_title (GTK_WINDOW (window), title); +} + +gboolean +gedit_osx_show_url (const gchar *url) +{ + return [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:[NSString stringWithUTF8String:url]]]; +} + +gboolean +gedit_osx_show_help (const gchar *link_id) +{ + gchar *link; + gboolean ret; + + if (link_id) + { + link = g_strdup_printf ("http://library.mate.org/users/gedit/stable/%s", + link_id); + } + else + { + link = g_strdup ("http://library.mate.org/users/gedit/stable/"); + } + + ret = gedit_osx_show_url (link); + g_free (link); + + return ret; +} + +static void +destroy_delegate (GeditOSXDelegate *delegate) +{ + [delegate dealloc]; +} + +void +gedit_osx_init(GeditApp *app) +{ + GeditOSXDelegate *delegate = [[GeditOSXDelegate alloc] init]; + + g_object_set_data_full (G_OBJECT (app), + "GeditOSXDelegate", + delegate, + (GDestroyNotify)destroy_delegate); +}
\ No newline at end of file |