def button_event(evt): global config_data if (evt == BROWSE_HOME_CLICKED): default_path = "C:\\" if (Blender.sys.exists(config_data["home"])): default_path = config_data["home"] Window.FileSelector(SetHomeDir, "Nebula Home", default_path) if (evt == BROWSE_PROJ_CLICKED): default_path = "C:\\" if (Blender.sys.exists(config_data["home"])): default_path = config_data["proj"] Window.FileSelector(SetProjDir, "Project Dir", default_path) if (evt == ASSIGN_DIR_CHANGED): for data in config_data: if (data != "home" and data != "texture_dir" and data != "proj"): config_data[data] = dir_assigns[data].val if (evt == OK_CLICKED): SaveConfig() result = Draw.PupMenu("Saved%t|Do you want to exit?") if (result != -1): Draw.Exit() return if (evt == CANCEL_CLICKED): result = Draw.PupMenu("Exit%t|Exit and Discard Changes?") if (result != -1): Draw.Exit() return
def event(evt, val): # input events global SCREEN, START_SCREEN, SCRIPT_SCREEN global SCROLL_DOWN, FMODE if not val: return if evt == Draw.ESCKEY: if SCREEN == START_SCREEN or FMODE: Draw.Exit() else: SCREEN = START_SCREEN SCROLL_DOWN = 0 Draw.Redraw() return elif evt == Draw.QKEY: Draw.Exit() return elif evt in [Draw.DOWNARROWKEY, Draw.WHEELDOWNMOUSE ] and SCREEN == SCRIPT_SCREEN: SCROLL_DOWN += 1 fit_scroll() Draw.Redraw() return elif evt in [Draw.UPARROWKEY, Draw.WHEELUPMOUSE ] and SCREEN == SCRIPT_SCREEN: SCROLL_DOWN -= 1 fit_scroll() Draw.Redraw() return elif evt == Draw.SKEY: if SCREEN == SCRIPT_SCREEN and SCRIPT_INFO: load_script_text(SCRIPT_INFO.script) return
def event(evt, val): # input events global SCREEN, START_SCREEN, CONFIG_SCREEN global SCROLL_DOWN, CFGKEY if not val: return if evt == Draw.ESCKEY: if SCREEN == START_SCREEN: Draw.Exit() else: if CFGKEY.needs_update(): if Draw.PupMenu('UPDATE?%t|Data was changed') == 1: CFGKEY.update() SCREEN = START_SCREEN SCROLL_DOWN = 0 Draw.Redraw() return elif evt == Draw.QKEY: if SCREEN == CONFIG_SCREEN and CFGKEY.needs_update(): if Draw.PupMenu('UPDATE?%t|Data was changed') == 1: CFGKEY.update() Draw.Exit() return elif evt == Draw.HKEY: if SCREEN == START_SCREEN: show_help() elif CFGKEY.scriptname: show_help(CFGKEY.scriptname) return elif SCREEN == CONFIG_SCREEN: if evt in [Draw.DOWNARROWKEY, Draw.WHEELDOWNMOUSE]: SCROLL_DOWN += 1 fit_scroll() elif evt in [Draw.UPARROWKEY, Draw.WHEELUPMOUSE]: SCROLL_DOWN -= 1 fit_scroll() elif evt == Draw.UKEY: if CFGKEY.needs_update(): CFGKEY.revert() elif evt == Draw.RETKEY or evt == Draw.PADENTER: if CFGKEY.needs_update(): CFGKEY.update() elif evt == Draw.DELKEY: if CFGKEY.delete(): reset() init_data() SCREEN = START_SCREEN SCROLL_DOWN = 0 else: return Draw.Redraw()
def changeA(): global a a += .2 # print 'step',a if a > 6: Draw.Exit() time.sleep(0.1) Draw.Redraw(1)
def button_events(evt): if evt == 0: Draw.Exit() elif evt == 1: begin_export() elif evt == 0x11: Blender.Window.FileSelector(set_gmdc_filename, 'Select', Blender.sys.makename(ext='.gmdc'))
def event(evt, val): global vertical, mousex, mousey, anchor, offset if evt == Draw.ESCKEY and not val: if anchor: anchor = None else: Draw.Exit() # exit when user releases ESC elif evt == Draw.MOUSEX: mousex = val if anchor: offset = (max(0, anchor[0] - mousex), offset[1]) Draw.Redraw() elif evt == Draw.MOUSEY: mousey = val if anchor: offset = (offset[0], min(0, anchor[1] - mousey)) Draw.Redraw() elif evt == Draw.MIDDLEMOUSE and val: anchor = (mousex + offset[0], mousey + offset[1]) elif evt == Draw.MIDDLEMOUSE and not val: anchor = None elif anchor: pass # suppress other activity while panning elif evt == Draw.RIGHTMOUSE and val: r = Draw.PupMenu('Panel Alignment%t|Horizontal|Vertical') if r == 1: vertical = False elif r == 2: vertical = True else: return Draw.Redraw()
def bevent(evt): global EVENT_NOEVENT, EVENT_DRAW, EVENT_EXIT if (evt == EVENT_EXIT): Draw.Exit() elif (evt == EVENT_DRAW): Draw.Redraw() elif (evt == EVENT_EXPORT): sce = bpy.data.scenes.active if (export_all == 1): print "oh ja" # get a list of mesh objects obs = [ob for ob in sce.objects if ob.type == 'Mesh'] # export all object names for ob in obs: me = Mesh.New() me.getFromObject(ob, 0) print(me.name) export_to_as(ob) Draw.PupMenu("Export Successful") else: export_to_as(sce.objects.active) Draw.PupMenu("Export Successful") elif (evt == EVENT_BROWSEFILE): Window.FileSelector(FileSelected, "Export .as", expFileName) Draw.Redraw(1)
def button_event(evt): global persist_server, mesh_format, window_width, window_height, fullscreen, renderpath, filename, group, aa if (evt == CANCEL_CLICKED): SavePrefs() Draw.Exit() return if (evt == PERSIST_SERVER_CHANGED): persist_server = mnu_persist_servers.val if (evt == MESH_FORMAT_CHANGED): mesh_format = mnu_mesh_formats.val if (evt == WIDTH_CHANGED): window_width = mnu_width.val if (evt == HEIGHT_CHANGED): window_height = mnu_height.val if (evt == FULLSCREEN_CHANGED): fullscreen = 1 - fullscreen if (evt == AA_CHANGED): aa = mnu_aa.val if (evt == FILENAME_CHANGED): filename = mnu_filename.val if (evt == GROUP_CHANGED): file2 = n2.lookup("/sys/servers/file2") path = "" is_valid = True if (mnu_group.val): path = file2.manglepath("gfxlib:") + "/" + mnu_group.val else: path = file2.manglepath("gfxlib:") if (not Blender.sys.exists(path)): is_valid = False path = "" if (mnu_group.val): path = file2.manglepath("meshes:") + "/" + mnu_group.val else: path = file2.manglepath("meshes:") if (not Blender.sys.exists(path)): is_valid = False if (is_valid): group = mnu_group.val else: err = "The directory ' %s ' must exist in both gfxlib and meshes folders" % mnu_group.val Draw.PupMenu("Invalid Group%t|" + err) Draw.Redraw(1) if (evt == RENDERPATH_CHANGED): renderpath = mnu_renderpath.val if (evt == OK_CLICKED): SavePrefs() DoExport()
def changeA(): global a a[0] += 2 a[1] += 1 # print 'step',a if a[1] > 100: Draw.Exit() time.sleep(0.1) Draw.Redraw(1)
def event(evt, val): global mystring if not val: # val = 0: if evt in [Draw.LEFTMOUSE, Draw.MIDDLEMOUSE, Draw.RIGHTMOUSE]: mymsg = "You released a mouse button." print 'msg', mymsg if evt == Draw.ESCKEY: Draw.Exit()
def button_event(evt): # gui button events global SCREEN, START_SCREEN, SCRIPT_SCREEN global BEVT_LINK, BEVT_EMAIL, BEVT_GMENU, BUT_GMENU, SCRIPT_INFO global SCROLL_DOWN, FMODE if evt >= 100: # group menus for i in range(len(BUT_GMENU)): if evt == BEVT_GMENU[i]: group = AllGroups[i] index = BUT_GMENU[i].val - 1 if index < 0: return # user didn't pick a menu entry script = group.get_scripts()[BUT_GMENU[i].val - 1] if parse_help_info(script): SCREEN = SCRIPT_SCREEN BEVT_LINK = range(20, len(SCRIPT_INFO.d['__url__']) + 20) BEVT_EMAIL = range(50, len(SCRIPT_INFO.d['__email__']) + 50) Draw.Redraw() else: res = Draw.PupMenu( "No help available%t|View Source|Cancel") if res == 1: load_script_text(script) elif evt >= 20: if not WEBBROWSER: Draw.PupMenu( 'Missing standard Python module%t|You need module "webbrowser" to access the web' ) return if evt >= 50: # script screen email buttons email = SCRIPT_INFO.d['__email__'][evt - 50][1] webbrowser.open("mailto:%s" % email) else: # >= 20: script screen link buttons link = SCRIPT_INFO.d['__url__'][evt - 20][1] webbrowser.open(link) elif evt == BEVT_VIEWSOURCE: if SCREEN == SCRIPT_SCREEN: load_script_text(SCRIPT_INFO.script) elif evt == BEVT_EXIT: Draw.Exit() return elif evt == BEVT_BACK: if SCREEN == SCRIPT_SCREEN and not FMODE: SCREEN = START_SCREEN SCRIPT_INFO = None SCROLL_DOWN = 0 Draw.Redraw() elif evt == BEVT_EXEC: # Execute script exec_line = '' if SCRIPT_INFO.script.userdir: exec_line = bsys.join(Blender.Get('uscriptsdir'), SCRIPT_INFO.script.fname) else: exec_line = bsys.join(Blender.Get('scriptsdir'), SCRIPT_INFO.script.fname) Blender.Run(exec_line)
def button_events(evt): if evt == 0: Draw.Exit() elif evt == 1: begin_import() elif evt == 0x11: Blender.Window.FileSelector(set_gmdc_filename, 'Select') elif evt == 0x21: Blender.Window.FileSelector(set_cres_filename, 'Select')
def buttonEventHandler(button): """ Event handler for button presses. @param button: Button ID. """ global G G.havebupclik = False if button == BUTTON_QUIT: removeCustomScriptLink() writeDataToRegistry() Draw.Exit() Window.RedrawAll() elif button == BUTTON_LOAD: G.havebupclik = True Window.ImageSelector(loadImage) elif button == BUTTON_ZOOM: x, y, w, h = getWinRect() setZoom((w / 2, h / 2), G.buttons.zoom.val) elif button == BUTTON_FULLOPT: G.fullopt = G.buttons.fullopt.val elif button == BUTTON_COPLANAR: G.coplanar = G.buttons.coplanar.val elif button == BUTTON_OFSX: G.ofsx = G.buttons.ofsx.val elif button == BUTTON_OFSY: G.ofsy = G.buttons.ofsy.val elif button == BUTTON_OFSZ: G.ofsz = G.buttons.ofsz.val elif button == BUTTON_ADD: G.mode = MODE_ADD Draw.Redraw(1) elif button == BUTTON_DELETE: def delmap(x): del G.coordmap[x.getName()] x.select(False) map(delmap, G.selection) Window.RedrawAll() elif button == BUTTON_CALIBRATE: Window.WaitCursor(True) G.last_camera = G.selection[0] calibrate()
def event(evt, val): # эта функция обрабатывает прерывания от клавиатуры и мыши global mystr if evt == Draw.ESCKEY: Draw.Exit() # выход из скрипта return if val==0 and evt ==Draw.LEFTMOUSE: coor=Blender.Window.GetMouseCoords() print coor mystr =str(coor[0])+" "+str(coor[1]) Draw.Redraw(1)
def changeA(): global a global vect global t a +=1 vect = (1-t)*Vector(6,8,2)+t*Vector(-4,6,1) t+=0.001 if a>1000: Draw.Exit() time.sleep(0.001) Draw.Redraw(1)
def event(evt, val): # эта функция обрабатывает прерывания от клавиатуры и мыши if evt == Draw.ESCKEY: Draw.Exit() # выход из скрипта return global mystring#, mymsg if Draw.AKEY <= evt <= Draw.ZKEY: if val==0: #чтобы буква не печаталась два раза mystring += chr(evt) # это срабатывает при нажатие на символьную клавишу. chr(evt) преобразует символ клавиши в соответствующий символ Draw.Redraw(1)
def event_handler(evt, val): global l_ctrl_key_pressed, r_ctrl_key_pressed if evt == Draw.ESCKEY and val: Draw.Exit() elif evt == Draw. LEFTCTRLKEY: l_ctrl_key_pressed = val elif evt == Draw.RIGHTCTRLKEY: r_ctrl_key_pressed = val elif evt == Draw.RETKEY and val and (l_ctrl_key_pressed or r_ctrl_key_pressed): begin_export() l_ctrl_key_pressed = 0 r_ctrl_key_pressed = 0
def save_file(file_contents, class_name): try: f = open(fileButton.val + "" + class_name + ".as", 'w') f.write(file_contents) f.close() print "Export Successful: " + class_name + ".as" except: Draw.PupMenu("Export failed | Check the console for more info") raise # throw the exception Draw.Exit()
def event(evt, val): # function that handles keyboard and mouse events #global mouseX, mouseY global stop, showHelp if evt == Draw.ESCKEY or evt == Draw.QKEY: stop = Draw.PupMenu("OK?%t|Stop script %x1") if stop == 1: Draw.Exit() return if evt in [Draw.LEFTMOUSE, Draw.MIDDLEMOUSE, Draw.RIGHTMOUSE] and val: showHelp = Draw.PupMenu("Show Help?%t|Ok%x1") if showHelp == 1: ShowHelp("i3dExporter.py")
def ev(evt, val): # this is a callback for Draw.Register() global R, G, B, A # it handles input events if evt == Draw.ESCKEY or evt == Draw.QKEY: Draw.Exit() # this quits the script elif evt == Draw.LEFTMOUSE: R = 1 - R elif evt == Draw.MIDDLEMOUSE: G = 1 - G elif evt == Draw.RIGHTMOUSE: B = 1 - B else: Draw.Register(show_win, ev, None)
def changeXY1(): global shag global xy1 n = 1000 shag += 1 newVect = (point1 - point0) / 100 xy1 = xy1 + newVect time.sleep(0.1) if shag > n: Draw.Exit() Draw.Redraw(1)
def button_event(self, evt): # the function to handle Draw Button events if evt == 1: self.objSel = self.objMenu.val Draw.Redraw(1) if evt == 2: self.armSel = self.armMenu.val self.boneSel = 1 self.CalculateRootBones(self.armSel) Draw.Redraw(1) if evt == 3: self.boneSel = self.boneMenu.val Draw.Redraw(1) if evt == 4: if self.objSel == 0 or self.armSel == 0 or self.boneSel == 0: Draw.PupMenu( "Error: You have to select an object,armature and root bone!" ) else: exportFile(self.meshObjects[self.objSel - 1].name, self.armatureObjects[self.armSel - 1], self.rootBones[self.boneSel - 1].name) Draw.Exit() if evt == 5: Draw.Exit() # exit when user presses Cancel
def setDirPath(filename): global GUIPARAMS, PARAMS try: import os except: Draw.PupMenu('Full install of python required to be able to set Directory Paths') Draw.Exit() return path = os.path.dirname(filename) # Blender.sys.dirname fails on '/' GUIPARAMS['Path'].val = path ext_lower = GUIPARAMS['ImageExt'].val.lower() for f in os.listdir(path): if f.lower().endswith(ext_lower): PARAMS['ImagePaths'].append(os.path.join(path, f)) return
def event(evt, val): # the function to handle input events global mystring, mymsg if not val: # val = 0: it's a key/mbutton release if evt in [Draw.LEFTMOUSE, Draw.MIDDLEMOUSE, Draw.RIGHTMOUSE]: mymsg = "You released a mouse button." Draw.Redraw(1) return if evt == Draw.ESCKEY: Draw.Exit() # exit when user presses ESC return elif Draw.AKEY <= evt <= Draw.ZKEY: mystring += chr(evt) elif evt == Draw.SPACEKEY: mystring += ' ' elif evt == Draw.BACKSPACEKEY and len(mystring): mystring = mystring[:-1] else: return # no need to redraw if nothing changed Draw.Redraw(1)
def doapply(xoff, yoff): xscale = oldsize[0] / float(newsize[0]) yscale = oldsize[1] / float(newsize[1]) xoff /= float(newsize[0]) yoff /= float(newsize[1]) Draw.Exit() for ob in Scene.GetCurrent().objects: if ob.getType() == "Mesh": mesh = ob.getData() if mesh.hasFaceUV(): for face in mesh.faces: if face.mode & NMesh.FaceModes.TEX and face.image == oldimage: for i in range(len(face.uv)): (s, t) = face.uv[i] face.uv[i] = (xoff + s * xscale, yoff + t * yscale) face.image = newimage mesh.update() newimage.makeCurrent() Window.RedrawAll()
def changeExtension(): global GUIPARAMS, PARAMS if PARAMS['ImportType'] == SINGLE: return try: import os except: Draw.PupMenu('Full install of python required to be able to set Directory Paths') Draw.Exit() return PARAMS['ImagePaths'] = [] ext_lower = GUIPARAMS['ImageExt'].val.lower() for f in os.listdir(GUIPARAMS['Path'].val): if f.lower().endswith(ext_lower): PARAMS['ImagePaths'].append(os.path.join(GUIPARAMS['Path'].val, f)) return
def import_gui_buttonevent(evt): global filename, fileinput if evt == 1: # Import print "Importing %s..." % filename file=open(filename) filedict={'newmodel': loadmodel} linereader(file, filedict) Draw.Redraw(1) return elif evt == 2: # Exit Draw.Exit() return elif evt == 3: # Edited text. # Err, clicked on the file selector button. Window.FileSelector(import_gui_filenamechosen, "Choose model to import") Draw.Redraw(1) #filename = eval(str(fileinput)) #Draw.Redraw(1) return else: # I have no clue *when* to call this thing (aside of launch). # I know it needs to be restarted, sorta like signal() in sysvile/posix. # Let's just be anal, even if it shall, yes shall, blow up. - W4 start_import_gui()
def bevent(evt): global GUIPARAMS, PARAMS if evt == NO_EVT: Draw.Redraw() elif evt == SINGLE_IMG: Window.FileSelector(setSinglePath, 'Image', Blender.sys.expandpath('//')) Draw.Redraw() PARAMS['ImportType'] = SINGLE elif evt == DIRECTORY_IMG: Window.FileSelector(setDirPath, 'Directory', Blender.sys.expandpath('//')) Draw.Redraw() PARAMS['ImportType'] = DIR elif evt == CLR_PATH: GUIPARAMS['Path'].val = '' PARAMS['ImagePaths'] = [] GUIPARAMS['ImageExt'].val = '' Draw.Redraw() elif evt == CHG_EXT: changeExtension() Draw.Redraw() elif evt == EXIT: Draw.Exit() elif evt == DO_SCRIPT: doScript() else: print "ERROR: UNEXPECTED BUTTON EVENT" return
def bevent(evt): if evt == CANCEL: Draw.Exit() else: doapply(*offsets[evt - CANCEL - 1]) Draw.Exit()
def event(evt, val): if evt == Draw.ESCKEY and not val: Draw.Exit() # exit when user presses ESC