def __init__(self, rootParent=None): self.overlay = DirectFrame( frameColor=(1.0, 1.0, 1.0, 0.0), frameSize=(-1, 1, -1, 1), hpr=LVecBase3f(0, 0, 0), image='chapter4/overlay.png', pos=LPoint3f(0, 0, 0), sortOrder=200, image_scale=LVecBase3f(0.8, 1, 0.8), image_pos=LPoint3f(0, 0, 0), parent=rootParent, ) self.overlay.setTransparency(1) self.newspaper = DirectFrame( frameColor=(1.0, 1.0, 1.0, 0.0), frameSize=(-1, 1, -1, 1), hpr=LVecBase3f(0, 0, 0), image='chapter4/newspaperA.png', pos=LPoint3f(0, 0, 0), sortOrder=200, image_scale=LVecBase3f(0.5, 1, 0.5), image_pos=LPoint3f(0, 0, 0), parent=rootParent, ) self.newspaper.setTransparency(1)
def initSave(self): self.erosionFrame = DirectFrame(frameColor=(0, 0, 0, 0), frameSize=(-1, 1, -1, 1), pos=(-1.2, 0, 0)) self.erosionFrame.hide() self.erosionFrame.setScale(.02, 1, .4) self.background = OnscreenImage('res/erosion_bar.png', pos=(0, 0, 0), scale=(1, 1, 1)) self.background.setTransparency(TransparencyAttrib.MAlpha) self.background.reparentTo(self.erosionFrame) # self.erosionBar = DirectWaitBar(value=self.EROSION, pos=(0, 0, 0), barTexture='res/erosion_value.png', # relief=None) # self.erosionBar.setHpr(0, 0, -90) # self.erosionBar.setScale(0.98, 1, 10) # self.erosionBar.hide() # self.erosionBar.reparentTo(self.erosionFrame) self.erosionBar = OnscreenImage('res/erosion_value.png', pos=(0, 0, 0), scale=(1, 1, 1)) self.erosionBar.setScale(1) self.erosionBar.setTransparency(TransparencyAttrib.MAlpha) self.erosionBar.reparentTo(self.erosionFrame) self.currentItemFrame = DirectFrame( frameColor=(0, 0, 0, 0), frameSize=(-2, 2, -2, 2), pos=(-1.2, 0, .8), image='res/models/items/injection.png', scale=(.1)) self.currentItemFrame.setTransparency(TransparencyAttrib.MAlpha) self.currentItemFrame.hide()
def __init__(self, beanAmount): if not ScavengerHuntEffect.images: ScavengerHuntEffect.images = loader.loadModel('phase_4/models/props/tot_jar') self.npRoot = DirectFrame(parent=aspect2d, relief=None, scale=0.75, pos=(0, 0, 0.6)) if beanAmount > 0: self.npRoot.setColorScale(VBase4(1, 1, 1, 0)) self.jar = DirectFrame(parent=self.npRoot, relief=None, image=ScavengerHuntEffect.images.find('**/tot_jar')) self.jar.hide() self.eventImage = NodePath('EventImage') self.eventImage.reparentTo(self.npRoot) self.countLabel = DirectLabel(parent=self.jar, relief=None, text='+0', text_pos=(0.02, -0.2), text_scale=0.25, text_fg=(0.95, 0.0, 0, 1), text_font=ToontownGlobals.getSignFont()) def countUp(t, startVal, endVal): beanCountStr = startVal + t * (endVal - startVal) self.countLabel['text'] = '+' + `(int(beanCountStr))` def setCountColor(color): self.countLabel['text_fg'] = color self.track = Sequence(LerpColorScaleInterval(self.npRoot, 1, colorScale=VBase4(1, 1, 1, 1), startColorScale=VBase4(1, 1, 1, 0)), Wait(1), Func(self.jar.show), LerpColorScaleInterval(self.eventImage, 1, colorScale=VBase4(1, 1, 1, 0), startColorScale=VBase4(1, 1, 1, 1)), Parallel(LerpScaleInterval(self.npRoot, 1, scale=0.5, startScale=0.75), LerpPosInterval(self.npRoot, 1, pos=VBase3(-0.9, 0, -0.83))), LerpFunc(countUp, duration=2, extraArgs=[0, beanAmount]), Func(setCountColor, VBase4(0.95, 0.95, 0, 1)), Wait(3), Func(self.destroy)) else: self.npRoot.setColorScale(VBase4(1, 1, 1, 0)) self.attemptFailedMsg() self.track = Sequence(LerpColorScaleInterval(self.npRoot, 1, colorScale=VBase4(1, 1, 1, 1), startColorScale=VBase4(1, 1, 1, 0)), Wait(5), LerpColorScaleInterval(self.npRoot, 1, colorScale=VBase4(1, 1, 1, 0), startColorScale=VBase4(1, 1, 1, 1)), Func(self.destroy))
def __init__(self, phaseNames): self.phaseNames = phaseNames self.model = loader.loadModel('models/gui/pir_m_gui_gen_loadingBar') bar = self.model.findTexture('pir_t_gui_gen_loadingBar') self.model.find('**/loading_bar').hide() self.topFrame = DirectFrame(parent = base.a2dTopRight, pos = (-0.80000000000000004, 0, -0.10000000000000001), sortOrder = NO_FADE_SORT_INDEX + 1) self.text = DirectLabel(relief = None, parent = self.topFrame, guiId = 'DownloadWatcherText', pos = (0, 0, 0), text = ' ', text_fg = (1, 1, 1, 1), text_shadow = (0, 0, 0, 1), text_scale = 0.040000000000000001, textMayChange = 1, text_align = TextNode.ARight, text_pos = (0.17000000000000001, 0), sortOrder = 2) self.bar = DirectWaitBar(relief = None, parent = self.topFrame, guiId = 'DownloadWatcherBar', pos = (0, 0, 0), frameSize = (-0.40000000000000002, 0.38, -0.044999999999999998, 0.065000000000000002), borderWidth = (0.02, 0.02), range = 100, frameColor = (1, 1, 1, 1), barColor = (0, 0.29999999999999999, 0, 1), barTexture = bar, geom = self.model, geom_scale = 0.089999999999999997, geom_pos = (-0.014, 0, 0.01), text = '0%', text_scale = 0.040000000000000001, text_fg = (1, 1, 1, 1), text_align = TextNode.ALeft, text_pos = (0.19, 0), sortOrder = 1) self.bgFrame = DirectFrame(relief = DGG.FLAT, parent = self.topFrame, pos = (0, 0, 0), frameColor = (0.5, 0.27000000000000002, 0.35999999999999999, 0.20000000000000001), frameSize = (-0.44, 0.39000000000000001, -0.035999999999999997, 0.056000000000000001), borderWidth = (0.02, 0.02), scale = 0.90000000000000002, sortOrder = 0) self.accept('launcherPercentPhaseComplete', self.update)
def mostrar_camaras(self): # if self.reflection_buffer: lbl_refl=DirectLabel(text="reflejo", pos=LVector3f(-1.05, -0.4), scale=0.05) lbl_refl.reparentTo(self.base.aspect2d) frame_refl=DirectFrame(image=self.reflection_buffer.getTexture(0), scale=0.25, pos=LVector3f(-1.05, -0.7)) frame_refl.reparentTo(self.base.aspect2d) # if self.refraction_buffer: lbl_refr=DirectLabel(text="refraccion", pos=LVector3f(-0.5, -0.4), scale=0.05) lbl_refr.reparentTo(self.base.aspect2d) frame_refr=DirectFrame(image=self.refraction_buffer.getTexture(0), scale=0.25, pos=LVector3f(-0.5, -0.7)) frame_refr.reparentTo(self.base.aspect2d)
def _create_components(self): """ Creates the window components """ self._node = self._parent.attach_new_node("Window") self._node.set_pos(self._pos.x, 1, -self._pos.y) border_px = 1 border_frame_size = (-border_px, self._width + border_px, border_px, -self._height - border_px) self._border_frame = DirectFrame(pos=(0, 1, 0), frameSize=border_frame_size, frameColor=(24 / 255.0, 131 / 255.0, 215 / 255.0, 1), parent=self._node, state=DGG.NORMAL) self._background = DirectFrame(pos=(0, 1, 0), frameSize=(0, self._width, 0, -self._height), frameColor=(0.1, 0.1, 0.1, 1.0), parent=self._node) self._title_bar = DirectFrame( pos=(0, 1, 0), frameSize=(0, self._width, 0, -25), # frameColor=(0.058, 0.058, 0.058, 1), frameColor=(1, 1, 1, 1), parent=self._node, state=DGG.NORMAL) self._window_title = Text(parent=self._node, x=8, y=17, text=self._title, size=13, color=Vec3(0.15), may_change=True) self._btn_close = DirectButton( relief=DGG.FLAT, pressEffect=1, pos=(self._width - 22, 1, -12), frameColor=(1.0, 0.2, 0.2, 0.5), parent=self._node, scale=(45 / 2, 1, 24 / 2), image="/$$rp/rpcore/data/gui/close_window.png") # Init bindings self._btn_close.set_transparency(TransparencyAttrib.M_alpha) self._btn_close.bind(DGG.B1CLICK, self._request_close) self._btn_close.bind(DGG.WITHIN, self._on_close_btn_hover) self._btn_close.bind(DGG.WITHOUT, self._on_close_btn_out) self._title_bar.bind(DGG.B1PRESS, self._start_drag) self._title_bar.bind(DGG.B1RELEASE, self._stop_drag)
def build_page(self): menu_args = self.menu.gui.menu_args self.frm = DirectFrame(frameSize=(-1.5, 1.5, -.9, .9), frameColor=(.95, .95, .7, .85)) txt = _( 'Please, visit our site after exiting!\n\nIt helps us! Thank you!') self.txt = OnscreenText(text=txt, pos=(0, .64), scale=.08, wordwrap=32, fg=menu_args.text_fg, font=menu_args.font) menu_data = [('visit our site after exiting', _('visit our site after exiting'), lambda: self.on_end(True)), ("don't visit our site after exiting", _("don't visit our site after exiting"), lambda: self.on_end(False))] btn_args = self.menu.gui.btn_args btn_args['frameSize'] = (-12, 12, -.8, 1.2) btn_visit = DirectButton(text=menu_data[0][1], pos=(0, 1, 0), command=menu_data[0][2], text_scale=.9, **btn_args) btn_dont_visit = DirectButton(text=menu_data[1][1], pos=(0, 1, -.5), command=menu_data[1][2], text_scale=.7, **btn_args) widgets = [self.frm, self.txt, btn_visit, btn_dont_visit] map(self.add_widget, widgets) PageGui.build_page(self, False)
def askForRequeue(self): buttons = loader.loadModel('phase_3/models/gui/dialog_box_buttons_gui') okImageList = (buttons.find('**/ChtBx_OKBtn_UP'), buttons.find('**/ChtBx_OKBtn_DN'), buttons.find('**/ChtBx_OKBtn_Rllvr')) cancelImageList = (buttons.find('**/CloseBtn_UP'), buttons.find('**/CloseBtn_DN'), buttons.find('**/CloseBtn_Rllvr')) buttons.removeNode() self.cr.mainMenu.buttons[0]['state'] = DISABLED self.requeueFrame = DirectFrame( relief=None, image=loader.loadModel('phase_13/models/gui/fade'), image_scale=(5, 2, 2), image_color=(0, 0, 0, 0.3), image_pos=(0.5, 0, 0), state=NORMAL, sortOrder=20) self.requeueDialog = YesNoDialog( parent=self.requeueFrame, text='Would you like to requeue?', button_text_pos=(0, -0.1), button_relief=None, buttonImageList=[okImageList, cancelImageList], button_text_font=FONT, text_font=FONT, command=self.requeueResponse)
def __init__(self, node, name): SocketBase.__init__(self, node, name) self.type = INSOCKET self.frame = DirectFrame( frameColor=(0.25, 0.25, 0.25, 1), frameSize=(-1, 0, -self.height, 0), parent=node.frame, ) SocketBase.createPlug(self, self.frame) ''' self.text = DirectLabel( frameColor=(0, 0, 0, 0), frameSize=(0, 1, -self.height, 0), scale=(1, 1, 1), text=self.name, text_align=TextNode.A_left, text_scale=(0.1, 0.1), text_pos=(0.1, -0.02), text_fg=(1, 1, 1, 1), text_bg=(0, 0, 0, 0), parent=self.frame, )''' self.checkbox = DirectCheckButton(text=name, pos=(0.5, 0, 0), scale=.1, command=self.updateConnectedNodes, parent=self.frame) self.resize(1)
def __init__(self, rootParent=None): self.frmMain = DirectFrame( frameColor=(0.0, 0.0, 0.0, 0.5), frameSize=(-1, 1, -1, 1), hpr=LVecBase3f(0, 0, 0), pos=LPoint3f(0, 0, 0), parent=rootParent, ) self.frmMain.setTransparency(0) self.lblVictory = DirectLabel( frameColor=(0.0, 0.0, 0.0, 0.0), hpr=LVecBase3f(0, 0, 0), pos=LPoint3f(0, 0, 0), scale=LVecBase3f(0.2, 0.2, 0.2), text='Won Fight', text_align=TextNode.A_center, text_scale=(1, 1), text_pos=(0, 0), text_fg=LVecBase4f(1, 1, 1, 1), text_bg=LVecBase4f(0, 0, 0, 0), parent=self.frmMain, ) self.lblVictory.setTransparency(0)
def __init__(self, rootParent): ChapterBase.__init__(self, "chapter2/warehouse.png", rootParent) self.startPos = (-0.7, 0, -0.5) self.overlay = Overlay(rootParent) self.flashlightLight = DirectFrame( frameColor=(0.0, 0.0, 0.0, 1.0), frameSize=(-3.5, 3.5, -3.5, 3.5), image='chapter2/flashlightLight.png', image_scale=(3.5, 1, 3.5), parent=rootParent, ) self.flashlightLight.setTransparency(1) self.flashLightActive = False self.accept("inventory_flashlight", self.activateFlashlight) self.accept("box1", self.box1) self.accept("box2", self.box2) self.accept("box3", self.box3) self.accept("mike", self.talkMike) base.messenger.send("animateChar", ["idle", "r", 3, True]) base.messenger.send("showNote", ["I should turn on my flashlight"]) base.taskMgr.add(self.flashlightTask, "flaslightLightTask")
def __init__(self, menu_args): GameObject.__init__(self) self.eng.log('created match form (init)') self.room = '' self.invited_users = [self.eng.xmpp.client.boundjid.bare] self.menu_args = menu_args lab_args = menu_args.label_args lab_args['scale'] = .046 self.match_frm = DirectFrame(frameSize=(-.02, 2.5, 0, .45), frameColor=(.2, .2, .2, .5), pos=(.04, 1, -.46), parent=base.a2dTopLeft) usr = [ usr for usr in self.eng.xmpp.users if usr.name == self.eng.xmpp.client.boundjid.bare ][0] frm = UserFrmMe(self.eng.xmpp.client.boundjid.bare, self.eng.xmpp.client.boundjid.bare, usr.is_supporter, True, (.1, 1, .38), self.match_frm, self.menu_args, .32) self.forms = [frm] for i in range(0, 8): row, col = i % 4, i / 4 DirectLabel(text=str(i + 1) + '.', pos=(.06 + 1.24 * col, 1, .38 - .08 * row), parent=self.match_frm, **lab_args)
def test_frame_geom_states(): frame = DirectFrame(geom=(NodePath("A"), NodePath("B"), NodePath("C")), numStates=3) assert frame.hascomponent('geom0') assert frame.hascomponent('geom1') assert frame.hascomponent('geom2') assert not frame.hascomponent('geom3') assert frame.component('geom0').name == "A" assert frame.component('geom1').name == "B" assert frame.component('geom2').name == "C" # Change geom for all states frame.setGeom(NodePath("Foo")) assert frame.component('geom0').name == "Foo" assert frame.component('geom1').name == "Foo" assert frame.component('geom2').name == "Foo" # Change geom per state states = (NodePath("1"), NodePath("2"), NodePath("3")) frame.setGeom(states) assert frame.component('geom0').name == "1" assert frame.component('geom1').name == "2" assert frame.component('geom2').name == "3" # Changing via list should work too frame.setGeom(list(states)) # Clear geom frame.clearGeom() assert not frame.hascomponent('geom0') assert not frame.hascomponent('geom1') assert not frame.hascomponent('geom2')
def __init__(self, node, name): SocketBase.__init__(self, node, name) self.type = OUTSOCKET self.frame = DirectFrame( frameColor=(0.25, 0.25, 0.25, 1), frameSize=(-1, 0, -self.height, 0), parent=node.frame, ) SocketBase.createPlug(self, self.frame) self.text = DirectLabel( frameColor=(0, 0, 0, 0), frameSize=(-1, 0, -self.height, 0), scale=(1, 1, 1), text=self.name, text_align=TextNode.A_right, text_scale=(0.1, 0.1), text_pos=(-0.1, -0.02), text_fg=(1, 1, 1, 1), text_bg=(0, 0, 0, 0), parent=self.frame, ) self.resize(1)
def _create_components(self): """ Internal method to init the widgets components """ self._node.hide() # Create the texture where the gui component is rendered inside self._storage_tex = Image.create_2d("ExposureDisplay", 140, 20, "RGBA8") self._storage_tex.set_clear_color(Vec4(0.2, 0.6, 1.0, 1.0)) self._storage_tex.clear_image() self._bg_frame = DirectFrame( parent=self._node, frameColor=(0.1, 0.1, 0.1, 1.0), frameSize=(200, 0, -10, -85), pos=(0, 0, 0)) self._display_img = Sprite( image=self._storage_tex, parent=self._node, w=140, h=20, x=20, y=50) self._display_txt = Text( text="Current Exposure".upper(), parent=self._node, x=160, y=40, size=13, color=Vec3(0.8), align="right") # Create the shader which generates the visualization texture self._cshader_node = ComputeNode("ExposureWidget") self._cshader_node.add_dispatch(140 // 10, 20 // 4, 1) self._cshader_np = self._node.attach_new_node(self._cshader_node) # Defer the further loading Globals.base.taskMgr.doMethodLater(1.0, self._late_init, "ExposureLateInit")
def build_page(self): self.frm = DirectFrame(frameSize=(-1.5, 1.5, -.9, .9), frameColor=(.95, .95, .7, .85)) txt = _("What do you want to do?\n\nNB Use 'p' for pausing the game.") menu_args = self.menu.gui.menu_args self.txt = OnscreenText(text=txt, pos=(0, .64), scale=.08, wordwrap=32, fg=menu_args.text_fg, font=menu_args.font) on_back = lambda: self.on_end(True) on_end = lambda: self.on_end(False) menu_data = [('back to the game', _('back to the game'), on_back), ('back to the main menu', _('back to the main menu'), on_end)] btn_args = self.menu.gui.btn_args btn_visit = DirectButton(text=menu_data[0][1], pos=(0, 1, 0), command=menu_data[0][2], text_scale=.8, **btn_args) btn_dont_visit = DirectButton(text=menu_data[1][1], pos=(0, 1, -.5), command=menu_data[1][2], text_scale=.8, **btn_args) map(self.add_widget, [self.frm, self.txt, btn_visit, btn_dont_visit]) PageGui.build_page(self, False) eng.hide_cursor() eng.show_standard_cursor() eng.do_later(.01, eng.toggle_pause, [False])
def set_news(self): menu_gui = self.menu.gui menu_args = self.menu.gui.menu_args feeds = parse(self.props.feed_url) if not feeds['entries']: return def conv(datestr): months = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ] date_el = datestr.split()[1:-2] month = months.index(date_el[1]) + 1 day, year = date_el[0], date_el[2] return datetime(int(year), month, int(day)) publ = lambda entry: conv(entry['published']) rss = sorted(feeds['entries'], key=publ) conv_time = lambda ent: datetime.strftime(conv(ent), '%b %d') rss = [(conv_time(ent['published']), ent['title']) for ent in rss] rss.reverse() rss = rss[:5] def conv_str(_str): return _str if len(_str) <= 20 else _str[:20] + '...' rss = [(_rss[0], conv_str(_rss[1])) for _rss in rss] frm = DirectFrame(frameSize=(0, 1.0, 0, .75), frameColor=(.2, .2, .2, .5), pos=(.05, 1, .1), parent=base.a2dBottomLeft) texts = [ OnscreenText(_('Last news:'), pos=(.55, .75), scale=.055, wordwrap=32, parent=base.a2dBottomLeft, fg=menu_args.text_bg, font=menu_args.font) ] texts += [ OnscreenText(': '.join(rss[i]), pos=(.1, .65 - i * .1), scale=.055, wordwrap=32, parent=base.a2dBottomLeft, align=TextNode.A_left, fg=menu_args.text_bg, font=menu_args.font) for i in range(5) ] btn_args = menu_gui.btn_args.copy() btn_args['scale'] = .055 btn = DirectButton(text=_('show'), pos=(.55, 1, .15), command=eng.open_browser, extraArgs=[self.props.site_url], parent=base.a2dBottomLeft, **btn_args) map(self.add_widget, [frm] + texts + [btn])
def makeGUI(self): ''' Creates GUI controls and renders on screen Health, targeting reticle, ammunition, weapon display, score store results in self.playerGUI ''' # TODO GUI logic for player self.playerGUI = DirectFrame( frameSize=(base.a2dLeft, base.a2dRight, base.a2dBottom, base.a2dTop), frameColor=(0, 0, 0, 0) #make completely transparent ) reticle = OnscreenImage(image='images/reticle.png', scale=(0.5, 1, .25)) reticle.setTransparency(TransparencyAttrib.MAlpha) reticle.reparentTo(self.playerGUI) self.playerGUI.HP = OnscreenText(text="HEALTH", pos=(0.95, 0.8), scale=0.2, fg=(0, 0, 90, 1), align=TextNode.ACenter, mayChange=1) self.playerGUI.HP.reparentTo(self.playerGUI) self.playerGUI.score = OnscreenText(text="Score: 0", pos=(-1.5, 0.8), scale=0.2, fg=(0, 0, 90, 1), align=TextNode.ALeft, mayChange=1) self.playerGUI.score.reparentTo(self.playerGUI)
def create_layout(self, group): scale3 = LVector3(self.text_scale[0], 1.0, self.text_scale[1]) buttonSize = self.font_size * 2 self.layout = DirectWidgetContainer( TabbedFrame(frameSize=(0, self.width, -self.height, 0), tab_frameSize=(0, 7, 0, 2), tab_scale=scale3, tab_text_align=TextNode.ALeft, tab_text_pos=(0.2, 0.6), tabUnselectedColor=settings.tab_background, tabSelectedColor=settings.panel_background, scroll_scrollBarWidth=self.font_size, scroll_verticalScroll_pageSize=self.font_size)) self.layout.frame.setPos(0, 0, -buttonSize) for section in group.parameters: sizer = Sizer("vertical") frame = DirectFrame(state=DGG.NORMAL, frameColor=settings.panel_background) self.add_parameters(frame, sizer, section.parameters) sizer.update((self.width, self.height)) size = sizer.min_size frame['frameSize'] = (0, size[0], -size[1], 0) self.layout.frame.addPage(frame, section.name) title = "Editor - " + group.name self.window = Window(title, parent=pixel2d, scale=self.scale, child=self.layout, owner=self) self.window.register_scroller(self.layout.frame.viewingArea)
def __init__(self, name, parent): self.right = 0.5 self.left = -0.5 self.name = name self.nodeID = uuid4() self.inputList = [] self.outputList = [] self.selected = False self.allowRecursion = False self.hasError = False self.normalColor = (0.25, 0.25, 0.25, 1) self.highlightColor = (0.45, 0.45, 0.45, 1) self.errorColor = (1, 0.25, 0.25, 1) self.errorHighlightColor = (1, 0.45, 0.45, 1) self.frame = DirectFrame(state=DGG.NORMAL, text=name, text_align=TextNode.A_left, text_scale=0.1, text_pos=(self.left, 0.12), text_fg=(1, 1, 1, 1), frameColor=self.normalColor, frameSize=(self.left, self.right, -.6, 0.2), parent=parent) self.setupBind() self.hide() self.setPos = self.frame.setPos self.getPos = self.frame.getPos
def save(self, doSave): if doSave: path = self.browser.get() path = os.path.expanduser(path) path = os.path.expandvars(path) if os.path.exists(path): self.dlgOverwrite = YesNoDialog( text="File already Exist.\nOverwrite?", relief=DGG.RIDGE, frameColor=(1, 1, 1, 1), frameSize=(-0.5, 0.5, -0.3, 0.2), sortOrder=1, button_relief=DGG.FLAT, button_frameColor=(0.8, 0.8, 0.8, 1), command=self.__executeSave, extraArgs=[path], scale=300, pos=(base.getSize()[0] / 2, 0, -base.getSize()[1] / 2), parent=base.pixel2d) self.dlgOverwriteShadow = DirectFrame( pos=(base.getSize()[0] / 2 + 10, 0, -base.getSize()[1] / 2 - 10), sortOrder=0, frameColor=(0, 0, 0, 0.5), frameSize=self.dlgOverwrite.bounds, scale=300, parent=base.pixel2d) self.dlgOverwrite.setBin("gui-popup", 1) else: self.__executeSave(True, path) base.messenger.send("setLastPath", [path]) self.browser.destroy() del self.browser
def __init__(self, rootParent=None): self.frmMain = DirectFrame( frameColor=(1, 1, 1, 1), frameSize=(-1, 1, -1, 1), hpr=LVecBase3f(0, 0, 0), pos=LPoint3f(0, 0, 0), parent=rootParent, ) self.frmMain.setTransparency(0) self.waitbar = DirectWaitBar( barColor=(0.0, 0.0, 1.0, 1.0), hpr=LVecBase3f(0, 0, 0), pos=LPoint3f(0, 0, 0), state='normal', text='0%', value=50.0, text_align=TextNode.A_center, text_scale=(0.1, 0.1), text_pos=(0, -0.025), text_fg=LVecBase4f(0, 0, 0, 1), text_bg=LVecBase4f(0, 0, 0, 0), parent=self.frmMain, ) self.waitbar.setTransparency(0)
def __init__(self, poster, reward, **kw): optiondefs = (('relief', None, None), ('image', QuestGlobals.getJBIcon(), None), ('image_scale', QuestGlobals.JB_JAR_SCALE, None), ('state', DGG.NORMAL, None)) self.defineoptions(kw, optiondefs) # Finally, initialize the DirectFrame. DirectFrame.__init__(self, parent=poster, relief=None) self.initialiseoptions(QuestRewardFrame) self.reward = reward gagShopGeom = loader.loadModel( 'phase_4/models/gui/gag_shop_purchase_gui.bam') self.info = DirectFrame(parent=self, relief=None, geom=gagShopGeom.find('**/Char_Pnl'), geom_scale=(0.15, 0, 0.1275), text='0', text_font=CIGlobals.getToonFont(), text_scale=0.04, text_fg=(0, 0, 0, 1), text_align=TextNode.ACenter, text_pos=(0, -0.01), pos=(0, 0, -0.06)) self.info.setBin('gui-popup', 40) gagShopGeom.removeNode() self.hide()
def __init__(self, beanAmount): ScavengerHuntEffect.__init__(self, beanAmount) if beanAmount > 0: self.pumpkin = DirectFrame( parent=self.eventImage, relief=None, image=ScavengerHuntEffect.images.find('**/tot_pumpkin_tall'))
def test_frame_text_states(): frame = DirectFrame(text=("A", "B", "C"), numStates=3) assert frame.hascomponent('text0') assert frame.hascomponent('text1') assert frame.hascomponent('text2') assert not frame.hascomponent('text3') assert frame.component('text0').text == "A" assert frame.component('text1').text == "B" assert frame.component('text2').text == "C" # Change text for all states frame.setText("Foo") assert frame.component('text0').text == "Foo" assert frame.component('text1').text == "Foo" assert frame.component('text2').text == "Foo" # Change text per state frame.setText(("1", "2", "3")) assert frame.component('text0').text == "1" assert frame.component('text1').text == "2" assert frame.component('text2').text == "3" # Changing via list should work too frame.setText(["1", "2", "3"]) # Clear text frame.clearText() assert not frame.hascomponent('text0') assert not frame.hascomponent('text1') assert not frame.hascomponent('text2')
def createPlug(self, parent): self.plug = DirectFrame( state=DGG.NORMAL, frameColor=(0, 0, 0, 1), frameSize=(-0.05, 0.05, -0.05, 0.05), parent=parent, ) self.setupBind()
def toggle(self, show_frm=True): if not self.mdt.logic.is_paused: if show_frm: self.pause_frame = DirectFrame(frameColor=(.3, .3, .3, .7), frameSize=(-1.8, 1.8, -1, 1)) else: if self.pause_frame: self.pause_frame.destroy()
def __init__(self, rootParent=None): self.frmMain = DirectFrame( frameColor=(0.25, 0.25, 0.25, 1.0), frameSize=(0.0, 2.0, -0.1, 0.0), hpr=LVecBase3f(0, 0, 0), pos=LPoint3f(0, 0, 0), parent=rootParent, ) self.frmMain.setTransparency(0) self.btnLeave = DirectButton( hpr=LVecBase3f(0, 0, 0), pad=(0.1, 0.1), pos=LPoint3f(0.115, 0, -0.075), relief=1, scale=LVecBase3f(0.1, 0.1, 0.1), text='Leave', text_align=TextNode.A_center, text_scale=(0.75, 0.75), text_pos=(0, 0), text_fg=LVecBase4f(0, 0, 0, 1), text_bg=LVecBase4f(0, 0, 0, 0), parent=self.frmMain, command=base.messenger.send, extraArgs=["leaveRoom"], ) self.btnLeave.setTransparency(0) self.lblPlayerName = DirectLabel( frameColor=(0.8, 0.8, 0.8, 0.0), hpr=LVecBase3f(0, 0, 0), pos=LPoint3f(0.55, 0, -0.075), scale=LVecBase3f(0.1, 0.1, 0.1), text='Label', text_align=TextNode.A_left, text_scale=(0.75, 0.75), text_pos=(0, 0), text_fg=LVecBase4f(0.8, 0.8, 0.8, 1), text_bg=LVecBase4f(0, 0, 0, 0), parent=self.frmMain, ) self.lblPlayerName.setTransparency(0) self.pg1983 = DirectLabel( frameColor=(0.8, 0.8, 0.8, 0.0), hpr=LVecBase3f(0, 0, 0), pos=LPoint3f(0.42, 0, -0.075), scale=LVecBase3f(0.1, 0.1, 0.1), text='Name:', text_align=TextNode.A_center, text_scale=(0.75, 0.75), text_pos=(0, 0), text_fg=LVecBase4f(0.6, 0.6, 0.6, 1), text_bg=LVecBase4f(0, 0, 0, 0), parent=self.frmMain, ) self.pg1983.setTransparency(0)
def __init__(self, beanAmount): ScavengerHuntEffect.__init__(self, beanAmount) if beanAmount > 0: sm = loader.loadModel( 'phase_5.5/models/estate/tt_m_prp_ext_snowman_icon') self.snowman = DirectFrame(parent=self.eventImage, relief=None, image=sm, scale=20.0)
def __init__(self, menu_args): GameObject.__init__(self) self.eng.log('created match message form') self.chat = None self.msg_frm = DirectFrame( frameSize=(-.02, 2.5, 0, 1.22), frameColor=(.2, .2, .2, .5), pos=(.04, 1, -1.69), parent=base.a2dTopLeft) t_a = menu_args.text_args t_a['scale'] = .05 t_a['fg'] = menu_args.text_normal self.dst_txt = OnscreenText( text='', pos=(0, 1.16), parent=self.msg_frm, align=TextNode.A_left, **t_a) self.ent = Entry( scale=.04, pos=(0, 1, .03), entryFont=menu_args.font, width=62, frameColor=menu_args.btn_color, parent=self.msg_frm, initialText=_('write here your message'), command=self.on_typed_msg, focusInCommand=self.on_focus, focusInExtraArgs=['in'], focusOutCommand=self.on_focus, focusOutExtraArgs=['out'], text_fg=menu_args.text_active) self.ent['state'] = DISABLED self.txt_frm = DirectScrolledFrame( frameSize=(-.02, 2.46, -.02, 1.02), canvasSize=(-.02, 2.42, -.02, 1.02), scrollBarWidth=.036, verticalScroll_relief=FLAT, verticalScroll_frameColor=(.2, .2, .2, .4), verticalScroll_thumb_relief=FLAT, verticalScroll_thumb_frameColor=(.8, .8, .8, .6), verticalScroll_incButton_relief=FLAT, verticalScroll_incButton_frameColor=(.8, .8, .8, .6), verticalScroll_decButton_relief=FLAT, verticalScroll_decButton_frameColor=(.8, .8, .8, .6), horizontalScroll_relief=FLAT, frameColor=(1, 1, 1, .0), pos=(.02, 1, .11), parent=self.msg_frm) t_a['scale'] = .046 self.msg_txt = OnscreenText( text='', pos=(0, .24), parent=self.txt_frm.getCanvas(), align=TextNode.A_left, wordwrap=52, **t_a) lab_args = menu_args.label_args lab_args['scale'] = .046 lab_args['text_fg'] = menu_args.text_normal self.lab_frm = Btn( frameSize=(-.02, 2.5, -.01, .05), frameColor=(1, 1, 1, 0), pos=(0, 1, 1.15), parent=self.msg_frm) self.lab_frm.bind(ENTER, self.on_enter) self.lab_frm.bind(EXIT, self.on_exit) self.tooltip = DirectLabel( text='', pos=(2.4, 1, -.06), parent=self.lab_frm, text_wordwrap=50, text_bg=(.2, .2, .2, .8), text_align=TextNode.A_right, **lab_args) self.tooltip.set_bin('gui-popup', 10) self.tooltip.hide()