Search
lxdream.org :: lxdream/src/cocoaui/cocoa_prefs.c
lxdream 0.9.1
released Jun 29
Download Now
filename src/cocoaui/cocoa_prefs.c
changeset 736:a02d1475ccfd
prev729:4cc913eabd3d
next765:4cd066048203
author nkeynes
date Fri Jul 18 12:14:27 2008 +0000 (15 years ago)
permissions -rw-r--r--
last change Apparently the .gmo files live in the src dir rather than the build dir.
Fix bundle accordingly
file annotate diff log raw
nkeynes@725
     1
/**
nkeynes@729
     2
 * $Id$
nkeynes@725
     3
 *
nkeynes@725
     4
 * Construct and manage the preferences panel under cocoa.
nkeynes@725
     5
 *
nkeynes@725
     6
 * Copyright (c) 2008 Nathan Keynes.
nkeynes@725
     7
 *
nkeynes@725
     8
 * This program is free software; you can redistribute it and/or modify
nkeynes@725
     9
 * it under the terms of the GNU General Public License as published by
nkeynes@725
    10
 * the Free Software Foundation; either version 2 of the License, or
nkeynes@725
    11
 * (at your option) any later version.
nkeynes@725
    12
 *
nkeynes@725
    13
 * This program is distributed in the hope that it will be useful,
nkeynes@725
    14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
nkeynes@725
    15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
nkeynes@725
    16
 * GNU General Public License for more details.
nkeynes@725
    17
 */
nkeynes@725
    18
nkeynes@725
    19
#include "cocoaui/cocoaui.h"
nkeynes@725
    20
#include "lxdream.h"
nkeynes@725
    21
#include "config.h"
nkeynes@725
    22
nkeynes@725
    23
@interface LxdreamPrefsToolbarDelegate : NSObject {
nkeynes@725
    24
    NSArray *identifiers;
nkeynes@725
    25
    NSArray *defaults;
nkeynes@725
    26
    NSDictionary *items;
nkeynes@725
    27
}
nkeynes@725
    28
- (NSToolbarItem *) createToolbarItem: (NSString *)id label: (NSString *) label 
nkeynes@736
    29
                              tooltip: (NSString *)tooltip icon: (NSString *)icon 
nkeynes@736
    30
                               action: (SEL) action; 
nkeynes@725
    31
@end
nkeynes@725
    32
nkeynes@725
    33
@implementation LxdreamPrefsToolbarDelegate
nkeynes@725
    34
- (id) init
nkeynes@725
    35
{
nkeynes@725
    36
    NSToolbarItem *paths = [self createToolbarItem: @"Paths" label: @"Paths" 
nkeynes@725
    37
                            tooltip: @"Configure system paths" icon: @"tb-paths" 
nkeynes@725
    38
                            action: @selector(paths_action:)];
nkeynes@725
    39
    NSToolbarItem *ctrls = [self createToolbarItem: @"Controllers" label: @"Controllers"
nkeynes@725
    40
                            tooltip: @"Configure controllers" icon: @"tb-ctrls"
nkeynes@725
    41
                            action: @selector(controllers_action:)];
nkeynes@725
    42
    identifiers = [NSArray arrayWithObjects: @"Paths", @"Controllers", nil ];
nkeynes@725
    43
    defaults = [NSArray arrayWithObjects: @"Paths", @"Controllers", nil ]; 
nkeynes@725
    44
    NSArray *values = [NSArray arrayWithObjects: paths, ctrls, nil ];
nkeynes@725
    45
    items = [NSDictionary dictionaryWithObjects: values forKeys: identifiers];
nkeynes@725
    46
    return self;
nkeynes@725
    47
}
nkeynes@725
    48
nkeynes@725
    49
- (NSToolbarItem *) createToolbarItem: (NSString *)id label: (NSString *) label 
nkeynes@736
    50
tooltip: (NSString *)tooltip icon: (NSString *)icon action: (SEL) action 
nkeynes@725
    51
{
nkeynes@725
    52
    NSToolbarItem *item = [[NSToolbarItem alloc] initWithItemIdentifier: id];
nkeynes@725
    53
    [item setLabel: label];
nkeynes@725
    54
    [item setToolTip: tooltip];
nkeynes@725
    55
    [item setTarget: self];
nkeynes@725
    56
    NSString *iconFile = [[NSBundle mainBundle] pathForResource:icon ofType:@"png"];
nkeynes@725
    57
    NSImage *image = [[NSImage alloc] initWithContentsOfFile: iconFile];
nkeynes@725
    58
    [item setImage: image];
nkeynes@725
    59
    [item setAction: action];
nkeynes@725
    60
    return item;
nkeynes@725
    61
}
nkeynes@725
    62
nkeynes@725
    63
- (NSArray *) toolbarAllowedItemIdentifiers: (NSToolbar *)toolbar 
nkeynes@725
    64
{
nkeynes@725
    65
    return identifiers;
nkeynes@725
    66
}
nkeynes@725
    67
nkeynes@725
    68
- (NSArray *) toolbarDefaultItemIdentifiers: (NSToolbar *)toolbar
nkeynes@725
    69
{
nkeynes@725
    70
    return defaults;
nkeynes@725
    71
}
nkeynes@725
    72
nkeynes@725
    73
- (NSArray *)toolbarSelectableItemIdentifiers: (NSToolbar *)toolbar
nkeynes@725
    74
{
nkeynes@725
    75
    return [NSArray arrayWithObjects: @"Paths", @"Controllers", nil];
nkeynes@725
    76
}
nkeynes@725
    77
nkeynes@725
    78
- (NSToolbarItem *) toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)itemIdentifier
nkeynes@736
    79
willBeInsertedIntoToolbar:(BOOL)flag 
nkeynes@725
    80
{
nkeynes@736
    81
    return [items objectForKey: itemIdentifier];
nkeynes@725
    82
}
nkeynes@725
    83
- (void)paths_action: (id)sender
nkeynes@725
    84
{
nkeynes@725
    85
}
nkeynes@725
    86
- (void)controllers_action: (id)sender
nkeynes@725
    87
{
nkeynes@725
    88
}
nkeynes@725
    89
@end
nkeynes@725
    90
nkeynes@725
    91
@implementation LxdreamPrefsPanel
nkeynes@725
    92
- (NSView *)createPathsPane
nkeynes@725
    93
{
nkeynes@725
    94
    NSView *pane = [NSView new];
nkeynes@725
    95
    int i;
nkeynes@725
    96
    for( i=0; i<=CONFIG_KEY_MAX; i++ ) {
nkeynes@725
    97
        lxdream_config_entry_t entry = lxdream_get_config_entry(i);
nkeynes@725
    98
        if( entry->label != NULL ) {
nkeynes@725
    99
        }
nkeynes@725
   100
    }
nkeynes@725
   101
    return pane;
nkeynes@725
   102
}
nkeynes@725
   103
- (id)initWithContentRect:(NSRect)contentRect 
nkeynes@725
   104
{
nkeynes@725
   105
    if( [super initWithContentRect: contentRect
nkeynes@736
   106
         styleMask: ( NSTitledWindowMask | NSClosableWindowMask | 
nkeynes@736
   107
                 NSMiniaturizableWindowMask | NSResizableWindowMask |
nkeynes@736
   108
                 NSUnifiedTitleAndToolbarWindowMask )
nkeynes@736
   109
                 backing: NSBackingStoreBuffered defer: NO ] == nil ) {
nkeynes@725
   110
        return nil;
nkeynes@725
   111
    } else {
nkeynes@725
   112
        [self setTitle: NS_("Preferences")];
nkeynes@725
   113
        [self setDelegate: self];
nkeynes@725
   114
        NSToolbar *toolbar = [[NSToolbar alloc] initWithIdentifier: @"LxdreamPrefsToolbar"];
nkeynes@725
   115
        [toolbar setDelegate: [[LxdreamPrefsToolbarDelegate alloc] init]];
nkeynes@725
   116
        [toolbar setDisplayMode: NSToolbarDisplayModeIconOnly];
nkeynes@725
   117
        [toolbar setSizeMode: NSToolbarSizeModeSmall];
nkeynes@725
   118
        [toolbar setSelectedItemIdentifier: @"Paths"];
nkeynes@725
   119
        [self setToolbar: toolbar];
nkeynes@725
   120
        [self setContentView: [self createPathsPane]];
nkeynes@725
   121
        return self;
nkeynes@725
   122
    }
nkeynes@725
   123
}
nkeynes@725
   124
- (void)windowWillClose: (NSNotification *)notice
nkeynes@725
   125
{
nkeynes@725
   126
    [NSApp stopModal];
nkeynes@725
   127
}
nkeynes@725
   128
@end
.