Search
lxdream.org :: lxdream/src/cocoaui/paths_osx.m
lxdream 0.9.1
released Jun 29
Download Now
filename src/cocoaui/paths_osx.m
changeset 1041:5fcc39857c5c
prev1038:f220d18c0615
next1297:7e98a164b2d9
author nkeynes
date Fri Jun 26 05:47:04 2009 +0000 (11 years ago)
permissions -rw-r--r--
last change Refactor path operations into lxpaths.[ch]
file annotate diff log raw
nkeynes@965
     1
/**
nkeynes@1021
     2
 * $Id$
nkeynes@965
     3
 *
nkeynes@965
     4
 * Cocoa builds need to use different paths from ordinary builds, since
nkeynes@965
     5
 * the message catalogs, default config, etc are all bundle-relative.
nkeynes@965
     6
 * Otherwise paths use the standard unix install paths
nkeynes@965
     7
 *
nkeynes@965
     8
 * Copyright (c) 2008 Nathan Keynes.
nkeynes@965
     9
 *
nkeynes@965
    10
 * This program is free software; you can redistribute it and/or modify
nkeynes@965
    11
 * it under the terms of the GNU General Public License as published by
nkeynes@965
    12
 * the Free Software Foundation; either version 2 of the License, or
nkeynes@965
    13
 * (at your option) any later version.
nkeynes@965
    14
 *
nkeynes@965
    15
 * This program is distributed in the hope that it will be useful,
nkeynes@965
    16
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
nkeynes@965
    17
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
nkeynes@965
    18
 * GNU General Public License for more details.
nkeynes@965
    19
 */
nkeynes@965
    20
nkeynes@965
    21
#include <string.h>
nkeynes@1041
    22
#include <glib/gstrfuncs.h>
nkeynes@965
    23
nkeynes@965
    24
#include "lxdream.h"
nkeynes@1041
    25
#include "lxpaths.h"
nkeynes@965
    26
nkeynes@965
    27
#include <AppKit/AppKit.h>
nkeynes@965
    28
nkeynes@965
    29
static char *bundle_resource_path = NULL;
nkeynes@1024
    30
static char *bundle_plugin_path = NULL;
nkeynes@1038
    31
static char *user_data_path = NULL;
nkeynes@965
    32
nkeynes@965
    33
static char *get_bundle_resource_path()
nkeynes@965
    34
{
nkeynes@965
    35
    if( bundle_resource_path == NULL ) {
nkeynes@965
    36
        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
nkeynes@965
    37
        NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
nkeynes@965
    38
        bundle_resource_path = strdup([resourcePath UTF8String]);
nkeynes@965
    39
        [pool release];
nkeynes@965
    40
    }
nkeynes@965
    41
    return bundle_resource_path;    
nkeynes@965
    42
}
nkeynes@965
    43
nkeynes@965
    44
const char *get_sysconf_path()
nkeynes@965
    45
{
nkeynes@965
    46
    return get_bundle_resource_path();
nkeynes@965
    47
}
nkeynes@965
    48
nkeynes@965
    49
const char *get_locale_path()
nkeynes@965
    50
{
nkeynes@965
    51
    return get_bundle_resource_path();
nkeynes@965
    52
}
nkeynes@965
    53
nkeynes@1024
    54
const char *get_plugin_path()
nkeynes@1024
    55
{
nkeynes@1024
    56
    if( bundle_plugin_path == NULL ) {
nkeynes@1024
    57
        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
nkeynes@1024
    58
        NSString *pluginPath = [[NSBundle mainBundle] builtInPlugInsPath];
nkeynes@1024
    59
        bundle_plugin_path = strdup([pluginPath UTF8String]);
nkeynes@1024
    60
        [pool release];
nkeynes@1024
    61
    }
nkeynes@1024
    62
    return bundle_plugin_path;    
nkeynes@1024
    63
}
nkeynes@1038
    64
nkeynes@1038
    65
nkeynes@1038
    66
const char *get_user_data_path()
nkeynes@1038
    67
{
nkeynes@1038
    68
    if( user_data_path == NULL ) {
nkeynes@1038
    69
        char *home = getenv("HOME");
nkeynes@1038
    70
        user_data_path = g_strdup_printf( "%s/Library/Application Support/Lxdream", home );
nkeynes@1038
    71
    }
nkeynes@1038
    72
    return user_data_path;
nkeynes@1038
    73
}
.