1# -*- coding: UTF-8 -*-
2
3__revision__ = '$Id: macutils.py 1519 2011-02-05 15:32:36Z iznogoud $'
4
5# Copyright (c) 2005-2011 Vasco Nunes, Piotr Ożarowski
6#
7# This program is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2 of the License, or
10# (at your option) any later version.
11#
12# This program is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15# GNU Library General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with this program; if not, write to the Free Software
19# 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
20
21# You may use and distribute this software under the terms of the
22# GNU General Public License, version 2 or later
23
24from Cocoa import *
25
26# ================
27# Save file dialog
28# ================
29
30def saveDialog(filetypes=[]):
31    panel = NSSavePanel.savePanel()
32    panel.setCanCreateDirectories_(True)
33    panel.setCanChooseDirectories_(False)
34    panel.setCanChooseFiles_(True)
35    panel.setAllowsOtherFileTypes_(False)
36    result = panel.runModalForDirectory_file_types_(
37        NSHomeDirectory() + '/Desktop',None,filetypes)
38    if result:
39        return True, panel.filename(), panel.directory()
40    else:
41        return False, None, None
42    return
43
44# ================
45# Open file dialog
46# ================
47
48def openDialog(filetypes=[]):
49    panel = NSOpenPanel.openPanel()
50    panel.setCanCreateDirectories_(False)
51    panel.setCanChooseDirectories_(False)
52    panel.setCanChooseFiles_(True)
53    result = panel.runModalForDirectory_file_types_(
54        NSHomeDirectory() + '/Desktop',None,filetypes)
55    if result:
56        return True, panel.filename(), panel.directory()
57    else:
58        return False, None, None
59    return
60
61# ================
62# Alert dialog
63# ================
64
65def createAlert(msg):
66    alert = NSAlert.alloc().init()
67    alert.setMessageText_(msg)
68    alert.setInformativeText_("")
69    alert.setAlertStyle_(NSInformationalAlertStyle)
70    alert.runModal()
71
72# ================
73# Question dialog
74# ================
75
76def question(msg, window=None):
77    alert = NSAlert.alertWithMessageText_defaultButton_alternateButton_otherButton_informativeTextWithFormat_(
78        msg, "Yes", "No", None, "")
79    buttonPressed=alert.runModal()
80    if buttonPressed == 0:
81        return False
82    else:
83        return True