def Show(self, modal=False): """ Activates or creates a chooser window @param modal: Display as modal dialog @return: For all choosers it will return NO_ATTR if some mandatory attribute is missing. The mandatory attributes are: flags, title, cols, OnGetSize(), OnGetLine(); For modal choosers it will return the selected item index (0-based), or NO_SELECTION if no selection, or EMPTY_CHOOSER if the OnRefresh() callback returns EMPTY_CHOOSER; For non-modal choosers it will return 0 or ALREADY_EXISTS if the chooser was already open and is active now; """ if self.embedded: return Choose.NO_ATTR # it will be deleted and unhooked in py_choose_t::closed() self.ui_hooks_trampoline = self.UI_Hooks_Trampoline(self) if modal: self.flags |= Choose.CH_MODAL # Disable the timeout old = _ida_idaapi.set_script_timeout(0) n = _ida_kernwin.choose_choose(self) _ida_idaapi.set_script_timeout(old) # Delete the modal chooser instance self.Close() return n else: self.flags &= ~Choose.CH_MODAL return _ida_kernwin.choose_choose(self)
def Embedded(self, create_chobj=False): """ Creates an embedded chooser (as opposed to Show()) @return: Returns 0 on success or NO_ATTR """ if not self.embedded: return Choose.NO_ATTR if create_chobj: return _ida_kernwin.choose_create_embedded_chobj(self) else: return _ida_kernwin.choose_choose(self)