1 """macfreezegui - The GUI for macfreeze"""
16 ITEM_GENSOURCE_ITEMS
=(7,)
18 ITEM_SOURCEDIRBROWSE
=7
20 ITEM_GENRESOURCE_ITEMS
=(11,)
22 ITEM_RESOURCEBROWSE
=11
24 ITEM_GENAPPLET_ITEMS
=(15,)
33 ITEM_GENSOURCE
: ITEM_GENSOURCE_ITEMS
,
34 ITEM_GENRESOURCE
: ITEM_GENRESOURCE_ITEMS
,
35 ITEM_GENAPPLET
: ITEM_GENAPPLET_ITEMS
,
39 def dialog(script
=None):
41 # Invent the various names
43 fss
, ok
= macfs
.PromptGetFile("Script?", "TEXT")
46 script
= fss
.as_pathname()
47 basename
, ext
= os
.path
.splitext(script
)
50 rsrcname
= basename
+ 'modules.rsrc'
52 appletname
= script
+ '.applet'
53 rsrcname
= script
+ 'modules.rsrc'
54 dirname
, basebase
= os
.path
.split(basename
)
55 dirname
= os
.path
.join(dirname
, 'build.'+basebase
)
57 # Get the dialog, possibly opening the resource file (if needed)
58 macresource
.need('DLOG', ID_MAINDIALOG
, 'macfreeze.rsrc')
59 d
= Dlg
.GetNewDialog(ID_MAINDIALOG
, -1)
61 EasyDialogs
.Message("Dialog resource not found or faulty")
65 d
.SetDialogDefaultItem(ITEM_OK
)
66 d
.SetDialogCancelItem(ITEM_CANCEL
)
68 _dialogsetfile(d
, ITEM_SCRIPTNAME
, script
)
69 _dialogsetfile(d
, ITEM_SOURCEDIRNAME
, dirname
)
70 _dialogsetfile(d
, ITEM_RESOURCENAME
, rsrcname
)
71 _dialogsetfile(d
, ITEM_APPLETNAME
, appletname
)
73 gentype
= ITEM_GENSOURCE
74 _dialogradiogroup(d
, ITEM_GENSOURCE
)
77 d
.GetDialogWindow().SetWTitle("Standalone application creation options")
78 d
.GetDialogWindow().ShowWindow()
81 item
= Dlg
.ModalDialog(None)
84 elif item
== ITEM_CANCEL
:
86 elif item
in RADIO_GROUPING
.keys():
88 _dialogradiogroup(d
, item
)
89 elif item
== ITEM_SCRIPTBROWSE
:
90 fss
, ok
= macfs
.PromptGetFile("Script?")
92 script
= fss
.as_pathname()
93 _dialogsetfile(d
, ITEM_SCRIPTNAME
, script
)
94 elif item
== ITEM_SOURCEDIRBROWSE
:
95 fss
, ok
= macfs
.StandardPutFile("Output folder name", os
.path
.split(dirname
)[1])
97 dirname
= fss
.as_pathname()
98 _dialogsetfile(d
, ITEM_SOURCEDIRNAME
, dirname
)
99 elif item
== ITEM_RESOURCEBROWSE
:
100 fss
, ok
= macfs
.StandardPutFile("Resource output file", os
.path
.split(rsrcname
)[1])
102 rsrcname
= fss
.as_pathname()
103 _dialogsetfile(d
, ITEM_RESOURCENAME
, rsrcname
)
104 elif item
== ITEM_APPLETBROWSE
:
105 fss
, ok
= macfs
.StandardPutFile("Applet output file", os
.path
.split(appletname
)[1])
107 appletname
= fss
.as_pathname()
108 _dialogsetfile(d
, ITEM_APPLETNAME
, appletname
)
111 tp
, h
, rect
= d
.GetDialogItem(ITEM_DEBUG
)
112 debug
= Dlg
.GetDialogItemText(h
)
114 debug
= string
.atoi(string
.strip(debug
))
116 EasyDialogs
.Message("Illegal debug value %s, set to zero."%`debug`
)
118 if gentype
== ITEM_GENSOURCE
:
119 return 'source', script
, dirname
, debug
120 elif gentype
== ITEM_GENRESOURCE
:
121 return 'resource', script
, rsrcname
, debug
122 elif gentype
== ITEM_GENAPPLET
:
123 return 'applet', script
, appletname
, debug
124 elif gentype
== ITEM_GENINFO
:
125 return 'info', script
, '', debug
126 raise 'Error in gentype', gentype
128 def _dialogradiogroup(d
, item
):
129 for k
in RADIO_GROUPING
.keys():
130 subitems
= RADIO_GROUPING
[k
]
131 tp
, h
, rect
= d
.GetDialogItem(k
)
133 h
.as_Control().SetControlValue(1)
137 h
.as_Control().SetControlValue(0)
141 def _dialogsetfile(d
, item
, file):
143 file = '\311:' + os
.path
.split(file)[1]
144 tp
, h
, rect
= d
.GetDialogItem(item
)
145 Dlg
.SetDialogItemText(h
, file)
147 if __name__
== '__main__':
148 type, script
, file, debug
= dialog()
149 print type, script
, file, 'debug=%d'%debug