Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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()
Esempio n. 4
0
def changeA():
    global a
    a += .2
    #	print 'step',a
    if a > 6: Draw.Exit()
    time.sleep(0.1)
    Draw.Redraw(1)
Esempio n. 5
0
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()
Esempio n. 7
0
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)
Esempio n. 8
0
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()
Esempio n. 9
0
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)
Esempio n. 10
0
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()
Esempio n. 11
0
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)
Esempio n. 12
0
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')
Esempio n. 13
0
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)
Esempio n. 15
0
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)
Esempio n. 16
0
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)
Esempio n. 17
0
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
Esempio n. 18
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()
Esempio n. 19
0
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")
Esempio n. 20
0
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)
Esempio n. 21
0
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)
Esempio n. 22
0
 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
Esempio n. 23
0
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
Esempio n. 24
0
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)
Esempio n. 25
0
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()
Esempio n. 26
0
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
Esempio n. 27
0
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()
Esempio n. 28
0
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
Esempio n. 29
0
def bevent(evt):
    if evt == CANCEL:
        Draw.Exit()
    else:
        doapply(*offsets[evt - CANCEL - 1])
        Draw.Exit()
Esempio n. 30
0
def event(evt, val):
    if evt == Draw.ESCKEY and not val:
        Draw.Exit()  # exit when user presses ESC