def main(): txt = bpy.data.texts.active if not txt: return # Identify word under cursor if get_context(txt) == CTX_NORMAL: line, c = current_line(txt) start = c - 1 end = c while start >= 0: if not line[start].lower( ) in 'abcdefghijklmnopqrstuvwxyz0123456789_': break start -= 1 while end < len(line): if not line[end].lower( ) in 'abcdefghijklmnopqrstuvwxyz0123456789_': break end += 1 word = line[start + 1:end] if word in KEYWORDS: word = None else: word = None script = get_cached_descriptor(txt) items = [] desc = None tmp = script.classes.keys() tmp.sort(cmp=suggest_cmp) class_menu = make_menu(tmp, len(items)) class_menu_length = len(tmp) items.extend(tmp) tmp = script.defs.keys() tmp.sort(cmp=suggest_cmp) defs_menu = make_menu(tmp, len(items)) defs_menu_length = len(tmp) items.extend(tmp) tmp = script.vars.keys() tmp.sort(cmp=suggest_cmp) vars_menu = make_menu(tmp, len(items)) vars_menu_length = len(tmp) items.extend(tmp) menu = [('Script %t', 0), ('Classes', class_menu), ('Functions', defs_menu), ('Variables', vars_menu)] if word: menu.extend([None, ('Locate', [(word, -10)])]) i = Draw.PupTreeMenu(menu) if i == -1: return # Chosen to search for word under cursor if i == -10: if script.classes.has_key(word): desc = script.classes[word] elif script.defs.has_key(word): desc = script.defs[word] elif script.vars.has_key(word): desc = script.vars[word] else: find_word(txt, word) return else: i -= 1 if i < class_menu_length: desc = script.classes[items[i]] elif i < class_menu_length + defs_menu_length: desc = script.defs[items[i]] elif i < class_menu_length + defs_menu_length + vars_menu_length: desc = script.vars[items[i]] if desc: txt.setCursorPos(desc.lineno - 1, 0)
new_items.append([i[0],i[1],i[2],"recent items/"+i[0].split('/')[-1]]) items.extend(new_items) pop_list=[] for i in items: path=i[3].split('/')[:-1] extend_pop_for(pop_list,path) if len(path): append_to_inner(pop_list,(i[3].split('/')[-1],items.index(i))) else: pop_list.append((i[3].split('/')[-1],items.index(i))) r = Draw.PupTreeMenu(pop_list) if r >= 0: print items[r] set_pref_key('xplane.tools','annotate.last_item',items[r]) cur = Window.GetCursorPos() mm = TranslationMatrix(Vector([0,0,0])).resize4x4() #mm = TranslationMatrix(Vector(Window.GetCursorPos())).resize4x4() importer=OBJimport(items[r][1],mm) importer.verbose=1 try: sel = Blender.Scene.GetCurrent().objects.selected old_objs = set(Blender.Scene.GetCurrent().objects) obj_list = importer.doimport() new_objs = set(Blender.Scene.GetCurrent().objects) wrapper=Blender.Object.New('Empty','OBJ%s' % items[r][0].split('/')[-1]) Blender.Scene.GetCurrent().objects.link(wrapper)