def do_dialog(): """Post dialog and handle user interaction until quit""" my_dlg = Dlg.GetNewDialog(ID_MAIN, -1) while 1: n = Dlg.ModalDialog(None) if n == ITEM_LOOKUP_BUTTON: tp, h, rect = my_dlg.GetDialogItem(ITEM_LOOKUP_ENTRY) txt = Dlg.GetDialogItemText(h) tp, h, rect = my_dlg.GetDialogItem(ITEM_RESULT) Dlg.SetDialogItemText(h, dnslookup(txt)) elif n == ITEM_QUIT_BUTTON: break
def _ModalDialog(title, dialogid, text, okcallback, cancelcallback=None, identity=None): d = Dlg.GetNewDialog(dialogid, -1) d.SetDialogDefaultItem(ITEM_QUESTION_OK) if cancelcallback: d.SetDialogCancelItem(ITEM_QUESTION_CANCEL) h = d.GetDialogItemAsControl(ITEM_QUESTION_TEXT) if not identity: d.HideDialogItem(ITEM_QUESTION_NOTAGAIN) text = _string2dialog(text) Dlg.SetDialogItemText(h, text) d.AutoSizeDialog() w = d.GetDialogWindow() w.ShowWindow() while 1: n = Dlg.ModalDialog(None) if n == ITEM_QUESTION_OK: if identity: ctl = d.GetDialogItemAsControl(ITEM_QUESTION_NOTAGAIN) if ctl.GetControlValue(): _dont_show_again_identities[identity] = 1 del d del w if okcallback: func, arglist = okcallback apply(func, arglist) return elif n == ITEM_QUESTION_CANCEL: del d del w if cancelcallback: func, arglist = cancelcallback apply(func, arglist) return elif n == ITEM_QUESTION_NOTAGAIN: ctl = d.GetDialogItemAsControl(ITEM_QUESTION_NOTAGAIN) ctl.SetControlValue(not ctl.GetControlValue()) else: print 'Unknown modal dialog item', n
def dodialog(): d = Dlg.GetNewDialog(DIALOG_ID, -1) d.SetDialogDefaultItem(I_OK) d.SetDialogCancelItem(I_CANCEL) results = [0]*N_BUTTONS while 1: n = Dlg.ModalDialog(None) if n == I_OK: break if n == I_CANCEL: return [] if n < N_BUTTONS: results[n] = (not results[n]) h = d.GetDialogItemAsControl(n) h.SetControlValue(results[n]) rv = [] for i in range(len(results)): if results[i]: rv.append(i) return rv
def do_about(self, *args): f = Dlg.GetNewDialog(ID_ABOUT, -1) while 1: n = Dlg.ModalDialog(None) if n == 1: return
def dialog(script=None): # Invent the various names if not script: fss, ok = macfs.PromptGetFile("Script?", "TEXT") if not ok: sys.exit(0) script = fss.as_pathname() basename, ext = os.path.splitext(script) if ext: appletname = basename rsrcname = basename + 'modules.rsrc' else: appletname = script + '.applet' rsrcname = script + 'modules.rsrc' dirname, basebase = os.path.split(basename) dirname = os.path.join(dirname, 'build.'+basebase) # Get the dialog, possibly opening the resource file (if needed) macresource.need('DLOG', ID_MAINDIALOG, 'macfreeze.rsrc') d = Dlg.GetNewDialog(ID_MAINDIALOG, -1) if d == None: EasyDialogs.Message("Dialog resource not found or faulty") sys.exit(1) # Fill the dialog d.SetDialogDefaultItem(ITEM_OK) d.SetDialogCancelItem(ITEM_CANCEL) _dialogsetfile(d, ITEM_SCRIPTNAME, script) _dialogsetfile(d, ITEM_SOURCEDIRNAME, dirname) _dialogsetfile(d, ITEM_RESOURCENAME, rsrcname) _dialogsetfile(d, ITEM_APPLETNAME, appletname) gentype = ITEM_GENSOURCE _dialogradiogroup(d, ITEM_GENSOURCE) # Interact d.GetDialogWindow().SetWTitle("Standalone application creation options") d.GetDialogWindow().ShowWindow() d.DrawDialog() while 1: item = Dlg.ModalDialog(None) if item == ITEM_OK: break elif item == ITEM_CANCEL: sys.exit(0) elif item in RADIO_GROUPING.keys(): gentype = item _dialogradiogroup(d, item) elif item == ITEM_SCRIPTBROWSE: fss, ok = macfs.PromptGetFile("Script?") if ok: script = fss.as_pathname() _dialogsetfile(d, ITEM_SCRIPTNAME, script) elif item == ITEM_SOURCEDIRBROWSE: fss, ok = macfs.StandardPutFile("Output folder name", os.path.split(dirname)[1]) if ok: dirname = fss.as_pathname() _dialogsetfile(d, ITEM_SOURCEDIRNAME, dirname) elif item == ITEM_RESOURCEBROWSE: fss, ok = macfs.StandardPutFile("Resource output file", os.path.split(rsrcname)[1]) if ok: rsrcname = fss.as_pathname() _dialogsetfile(d, ITEM_RESOURCENAME, rsrcname) elif item == ITEM_APPLETBROWSE: fss, ok = macfs.StandardPutFile("Applet output file", os.path.split(appletname)[1]) if ok: appletname = fss.as_pathname() _dialogsetfile(d, ITEM_APPLETNAME, appletname) else: pass tp, h, rect = d.GetDialogItem(ITEM_DEBUG) debug = Dlg.GetDialogItemText(h) try: debug = string.atoi(string.strip(debug)) except ValueError: EasyDialogs.Message("Illegal debug value %r, set to zero."%(debug,)) debug = 0 if gentype == ITEM_GENSOURCE: return 'source', script, dirname, debug elif gentype == ITEM_GENRESOURCE: return 'resource', script, rsrcname, debug elif gentype == ITEM_GENAPPLET: return 'applet', script, appletname, debug elif gentype == ITEM_GENINFO: return 'info', script, '', debug raise 'Error in gentype', gentype
"""Sample program performing domain name lookups and showing off EasyDialogs,
import FrameWork
"""Create a standalone application from a Python script.
"""Import a module while pretending its name is __main__. This
# Script (applet) to run any Python command
"""macfreezegui - The GUI for macfreeze"""
#