Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/osx/nsapp.m')
-rw-r--r--src/osx/nsapp.m239
1 files changed, 0 insertions, 239 deletions
diff --git a/src/osx/nsapp.m b/src/osx/nsapp.m
deleted file mode 100644
index 4e7b6bde4..000000000
--- a/src/osx/nsapp.m
+++ /dev/null
@@ -1,239 +0,0 @@
-#import "nsapp.h"
-#include <notify.h>
-
-#include <AppKit/NSSound.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include <Python.h>
-
-
-#define GAJIM_POOL_ALLOC \
- NSAutoreleasePool *gajim_pool = [[NSAutoreleasePool alloc] init];
-#define GAJIM_POOL_FREE [gajim_pool release];
-
-
-static PyObject *netChangedCB = NULL;
-static NSFileHandle* netNotifyFH = nil;
-static int netNotifyToken = -1;
-
-
-@implementation NSApplication (Gajim)
-
-- (void) initGUI
-{
- [NSBundle loadNibNamed:@"Gajim" owner:NSApp];
-}
-
-+ (void) netNotifyCB: (NSNotification*) notif
-{
- NSLog(@"Network changed notification");
-
- if (netChangedCB)
- {
- PyObject_CallObject(netChangedCB, NULL);
- }
-
- [[notif object] readInBackgroundAndNotify];
-}
-
-- (BOOL) initNetNotify
-{
- int fd = 0;
-
- if (notify_register_file_descriptor(
- "com.apple.system.config.network_change", &fd, 0,
- &netNotifyToken) != NOTIFY_STATUS_OK)
- {
- return FALSE;
- }
-
- netNotifyFH = [[NSFileHandle alloc] initWithFileDescriptor: fd];
- [[NSNotificationCenter defaultCenter] addObserver: [self class]
- selector: @selector(netNotifyCB:)
- name: NSFileHandleReadCompletionNotification
- object: netNotifyFH];
- [netNotifyFH readInBackgroundAndNotify];
-
- return TRUE;
-}
-
-- (void) initGajim
-{
- GAJIM_POOL_ALLOC
-
- [self initGUI];
- [self initNetNotify];
-
- [NSApp setDelegate:self];
- [NSApp finishLaunching];
-
- GAJIM_POOL_FREE
-}
-
-- (void) orderFrontStandardAboutPanel: (id)sender
-{
- PyRun_SimpleString("\n\
-import gobject\n\
-import dialogs\n\
-def doAbout():\n\
- dialogs.AboutDialog()\n\
- return None\n\
-gobject.idle_add(doAbout)\n\
-");
-}
-
-- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
-{
-/*
- PyRun_SimpleString("\n\
-import gajim\n\
-import gobject\n\
-def doQuit():\n\
- gajim.interface.roster.on_quit_menuitem_activate(None)\n\
- return None\n\
-gobject.idle_add(doQuit)\n\
-");
-*/
- return NSTerminateNow;
-}
-
-- (BOOL) application:(NSApplication *)theApplication
- openFile:(NSString *)filename
-{
- NSLog(@"openFile");
- NSLog(filename);
- return YES;
-}
-
-- (void)application:(NSApplication *)sender openFiles:(NSArray *)filenames
-{
- NSLog(@"openFiles");
-
- NSEnumerator* iter = [filenames objectEnumerator];
- NSString* str;
- while ((str = [iter nextObject]))
- {
- NSLog(str);
- }
- return;
-}
-
-- (BOOL)applicationOpenUntitledFile:(NSApplication *)theApplication
-{
- NSLog(@"openUntitledFile");
- return YES;
-}
-
-- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender
-{
- NSLog(@"shouldOpenUntitledFile");
- return YES;
-}
-
-@end
-
-
-static PyObject * nsapp_init(PyObject *self, PyObject *args)
-{
- [NSApp initGajim];
-
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-static PyObject * nsapp_setNetworkCB(PyObject *self, PyObject *args)
-{
- PyArg_UnpackTuple(args, "netcb", 1, 1, &netChangedCB);
-
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-static PyObject * nsapp_requestUserAttention(PyObject *self, PyObject *args)
-{
- GAJIM_POOL_ALLOC
- [NSApp requestUserAttention:NSInformationalRequest];
- GAJIM_POOL_FREE
-
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-static PyObject * nsapp_playFile(PyObject *self, PyObject *args)
-{
- GAJIM_POOL_ALLOC
-
- const char* cstr = NULL;
-
- if (!PyArg_ParseTuple(args, "s", &cstr))
- {
- return NULL;
- }
-
- NSSound* snd = [[NSSound alloc] initWithContentsOfFile:
- [[NSString alloc] initWithUTF8String: cstr]
- byReference: YES];
- if (!snd)
- {
- Py_INCREF(Py_None);
- return Py_None;
- }
-
- if (![snd play])
- {
- Py_INCREF(Py_None);
- return Py_None;
- }
-
- GAJIM_POOL_FREE
-
- return Py_BuildValue("b", 1);
-}
-
-static PyObject * nsapp_getBundlePath(PyObject *self, PyObject *args)
-{
- GAJIM_POOL_ALLOC
-
- NSBundle* bundle = [NSBundle mainBundle];
- if (!bundle)
- {
- Py_INCREF(Py_None);
- return Py_None;
- }
-
- NSString* nspath = [bundle bundlePath];
- if (!nspath)
- {
- Py_INCREF(Py_None);
- return Py_None;
- }
-
- const char* path = [nspath UTF8String];
- PyObject* pypath = Py_BuildValue("s", path);
-
- GAJIM_POOL_FREE
-
- return pypath;
-}
-
-static PyMethodDef nsappMethods[] =
-{
- {"init", nsapp_init, METH_VARARGS, "init nsapp"},
- {"setNetworkCB", nsapp_setNetworkCB, METH_VARARGS,
- "Callback to call when the network state changes"},
- {"getBundlePath", nsapp_getBundlePath, METH_VARARGS,
- "Get the path to the bundle we were run from"},
- {"playFile", nsapp_playFile, METH_VARARGS,
- "Play a sound file"},
- {"requestUserAttention", nsapp_requestUserAttention, METH_VARARGS,
- "Sends a request for the users attention to the window manager"},
- {NULL, NULL, 0, NULL}
-};
-
-PyMODINIT_FUNC initnsapp(void)
-{
- (void) Py_InitModule("nsapp", nsappMethods);
-}