1 """macfreezegui - The GUI for macfreeze"""
15 ITEM_GENSOURCE_ITEMS
=(7,)
17 ITEM_SOURCEDIRBROWSE
=7
19 ITEM_GENRESOURCE_ITEMS
=(11,)
21 ITEM_RESOURCEBROWSE
=11
23 ITEM_GENAPPLET_ITEMS
=(15,)
32 ITEM_GENSOURCE
: ITEM_GENSOURCE_ITEMS
,
33 ITEM_GENRESOURCE
: ITEM_GENRESOURCE_ITEMS
,
34 ITEM_GENAPPLET
: ITEM_GENAPPLET_ITEMS
,
38 def dialog(script
=None):
40 # Invent the various names
42 fss
, ok
= macfs
.PromptGetFile("Script?", "TEXT")
45 script
= fss
.as_pathname()
46 basename
, ext
= os
.path
.splitext(script
)
49 rsrcname
= basename
+ 'modules.rsrc'
51 appletname
= script
+ '.applet'
52 rsrcname
= script
+ 'modules.rsrc'
53 dirname
, basebase
= os
.path
.split(basename
)
54 dirname
= os
.path
.join(dirname
, 'build.'+basebase
)
56 # Get the dialog, possibly opening the resource file (if needed)
58 d
= Dlg
.GetNewDialog(ID_MAINDIALOG
, -1)
63 Res
.FSpOpenResFile('macfreeze.rsrc', 1)
67 d
= Dlg
.GetNewDialog(ID_MAINDIALOG
, -1)
69 EasyDialogs
.Message("Dialog resource not found or faulty")
73 d
.SetDialogDefaultItem(ITEM_OK
)
74 d
.SetDialogCancelItem(ITEM_CANCEL
)
76 _dialogsetfile(d
, ITEM_SCRIPTNAME
, script
)
77 _dialogsetfile(d
, ITEM_SOURCEDIRNAME
, dirname
)
78 _dialogsetfile(d
, ITEM_RESOURCENAME
, rsrcname
)
79 _dialogsetfile(d
, ITEM_APPLETNAME
, appletname
)
81 gentype
= ITEM_GENSOURCE
82 _dialogradiogroup(d
, ITEM_GENSOURCE
)
85 d
.GetDialogWindow().SetWTitle("Standalone application creation options")
86 d
.GetDialogWindow().ShowWindow()
89 item
= Dlg
.ModalDialog(None)
92 elif item
== ITEM_CANCEL
:
94 elif item
in RADIO_GROUPING
.keys():
96 _dialogradiogroup(d
, item
)
97 elif item
== ITEM_SCRIPTBROWSE
:
98 fss
, ok
= macfs
.PromptGetFile("Script?")
100 script
= fss
.as_pathname()
101 _dialogsetfile(d
, ITEM_SCRIPTNAME
, script
)
102 elif item
== ITEM_SOURCEDIRBROWSE
:
103 fss
, ok
= macfs
.StandardPutFile("Output folder name", os
.path
.split(dirname
)[1])
105 dirname
= fss
.as_pathname()
106 _dialogsetfile(d
, ITEM_SOURCEDIRNAME
, dirname
)
107 elif item
== ITEM_RESOURCEBROWSE
:
108 fss
, ok
= macfs
.StandardPutFile("Resource output file", os
.path
.split(rsrcname
)[1])
110 rsrcname
= fss
.as_pathname()
111 _dialogsetfile(d
, ITEM_RESOURCENAME
, rsrcname
)
112 elif item
== ITEM_APPLETBROWSE
:
113 fss
, ok
= macfs
.StandardPutFile("Applet output file", os
.path
.split(appletname
)[1])
115 appletname
= fss
.as_pathname()
116 _dialogsetfile(d
, ITEM_APPLETNAME
, appletname
)
119 tp
, h
, rect
= d
.GetDialogItem(ITEM_DEBUG
)
120 debug
= Dlg
.GetDialogItemText(h
)
122 debug
= string
.atoi(string
.strip(debug
))
124 EasyDialogs
.Message("Illegal debug value %s, set to zero."%`debug`
)
126 if gentype
== ITEM_GENSOURCE
:
127 return 'source', script
, dirname
, debug
128 elif gentype
== ITEM_GENRESOURCE
:
129 return 'resource', script
, rsrcname
, debug
130 elif gentype
== ITEM_GENAPPLET
:
131 return 'applet', script
, appletname
, debug
132 elif gentype
== ITEM_GENINFO
:
133 return 'info', script
, '', debug
134 raise 'Error in gentype', gentype
136 def _dialogradiogroup(d
, item
):
137 for k
in RADIO_GROUPING
.keys():
138 subitems
= RADIO_GROUPING
[k
]
139 tp
, h
, rect
= d
.GetDialogItem(k
)
141 h
.as_Control().SetControlValue(1)
145 h
.as_Control().SetControlValue(0)
149 def _dialogsetfile(d
, item
, file):
151 file = '\311:' + os
.path
.split(file)[1]
152 tp
, h
, rect
= d
.GetDialogItem(item
)
153 Dlg
.SetDialogItemText(h
, file)
155 if __name__
== '__main__':
156 type, script
, file, debug
= dialog()
157 print type, script
, file, 'debug=%d'%debug