Esempio n. 1
0
    def __init__(self, scopeList):
        self.scopeList = scopeList
        glass.GlassContainer.__init__(self)
        self.setOpaque(False)

        self.buffer = MessageBuffer(self.scopeList)
        for i in range(10):
            self.buffer.addRow(" ")
        self.buffer.setEditable(False)
        self.buffer.showTime(True)
        self.buffer.addListener(self)

        self.scroll = glass.GlassScrollArea(self.buffer)
        self.scroll.setScrollPolicy(glass.GlassScrollArea.SHOW_NEVER,
                                    glass.GlassScrollArea.SHOW_ALWAYS)
        self.scroll.setAutoscroll(True)
        self.add(self.scroll)
        self.buffer.parentScroll = self.scroll

        self.input = glass.GlassTextField()
        self.input.setForegroundColor(white)
        self.input.setBackgroundColor(glass.Color(0, 0, 0, 128))
        self.add(self.input)
        self.input.addKeyListener(self)

        self.bShowInput = False
Esempio n. 2
0
def show_demoselect():
	w = glass.GUI_GetWidget('mainmenu:Demos');
	if w != None:
		w.setVisible(True)
		return
	window = glass.GlassWindow('Demos');
	window.setTitleVisible(0);
	window.setSizePct(.7, .4);
	window.centerWindow();

	demos = File_ListFiles("/demos/", "*.demo", 0);
	demoList = glass.GlassListBox();
	demoList.setSizePct(200,200);

	for f in demos:
		demoList.addItem(f[7:]);
	demoScroll = glass.GlassScrollArea(demoList);
	window.add(demoScroll);
	demoScroll.setPositionPct(.01, .03);
	demoScroll.setSizePct(.5, .9);
	demoScroll.setId('list');

	demoPlay = glass.GlassButton("Play Demo");
	demoPlay.setClickAction('thelist = glass.GUI_GetWidgetTyped("mainmenu:Demos:list", glass.GlassScrollArea).getContent(glass.GlassListBox);demo=thelist.getItem(thelist.getSelected());Demo_Play(demo[:demo.rfind(".")]);');
	window.add(demoPlay);
	demoPlay.setPositionPct(.6, .85);

	demoClose = glass.GlassButton("Close");
	demoClose.setClickAction("glass.GUI_GetWidget('mainmenu:Demos').setVisible(False);");
	window.add(demoClose);
	demoClose.setPositionPct(.8, .85);

	glass.GUI_ScreenAddWidget("mainmenu", window);
Esempio n. 3
0
    def __init__(self, team, side, w, h):
        DefaultContainer.__init__(self)
        #self.setBackgroundColor(glass.Color(0,0,0,128));
        self.team = team

        self.setSize(w, h)

        self.side = side
        #Is it on the left or right?
        self.rowPlayerDict = {}
        # {row: player}

        self.kills = DefaultLabel("^icon ../../gui/game/images/kills^^g999")
        #str(self.team.getKills()));
        #self.kills.setWidth(int(self.getWidth()*0.15));
        self.add(self.kills)

        self.description = DefaultLabel("")
        self.add(self.description)
        if self.team.getRace() == "human":
            self.description.setCaption("The Legion of Man")
        else:
            self.description.setCaption("The Beast Horde")

        self.scrollTeamsArrow = glass.ImageButton()
        self.scrollTeamsArrow.setClickAction("spechud.lobby.switchTeams('" +
                                             self.side + "')")
        self.add(self.scrollTeamsArrow)

        self.comm = DefaultLabel("Comm: ^rNO COMMANDER")

        self.listContainer = DefaultContainer()
        self.listContainer.setBackgroundColor(glass.Color(0, 0, 0, 128))
        self.add(self.listContainer)
        self.listContainer.setSizePct(0.8, 0.9)

        self.list = DefaultTableList()
        self.list.padding = 5
        self.list.setSelectionColor(glass.Color(70, 40, 40))
        self.listContainer.add(self.list, 0, 0)

        self.enlist = DefaultButton("Enlist now!")
        self.enlist.setClickAction("CL_RequestTeam(" + str(team.teamId) +
                                   ");CL_RequestLoadout();")
        self.enlist.setHeight(self.list.getRowHeight())
        self.enlist.setWidth(self.listContainer.getWidth())

        self.scroll = glass.GlassScrollArea(self.list)
        self.scroll.setBackgroundColor(transparency)
        self.scroll.setSize(self.listContainer.getWidth(),
                            self.listContainer.getHeight())
        self.scroll.setHorizontalScrollPolicy(glass.GlassScrollArea.SHOW_NEVER)

        self.listContainer.add(self.scroll, 0, 0)

        # build and position everything:
        self.build()
        self.changeSide(self.side)
Esempio n. 4
0
	def build_controls(self,topTC):
		#these heights are broken again
		tabHolder = glass.GlassTabbedContainer();
		tabHolder.setForegroundColor(white);
		tabHolder.setSize(topTC.getWidth(),topTC.getTabArea().height);
		
		tabs = [];
		names = ("Player","Commander","Spectator");
		for i in range(3):
			table = GlassTablePlus();
			table.horizontalJustification = glass.Graphics.LEFT;
			table.setFrame(0);
			self.createControls(table, getBindActions(i), i);
			table.adjustSizeTo();
			scrollArea = glass.GlassScrollArea(table);
			scrollArea.setSize(table.getWidth(),table.getHeight());
			
			internalHeight = tabHolder.getTabArea().height;
			bar = scrollArea.getScrollbarWidth();
			scrollArea.setWidth(min( scrollArea.getWidth() + bar , tabHolder.getWidth() ));
			scrollArea.setHeight(min( scrollArea.getHeight() + bar , internalHeight ));
			
			tabHolder.addTab(names[i], scrollArea);
		
		table = GlassTablePlus();
		table.horizontalJustification = glass.Graphics.LEFT;
		table.setFrame(0);
		
		resets = [ glass.GlassButton("Player"), glass.GlassButton("Commander"), glass.GlassButton("Spectator")];
		for i, button in enumerate(resets):
			button.setClickAction("defaultBindProfile("+str(i)+");");
		
		table.addRow("Reset to defaults: ", *resets);
		table.adjustSizeTo();
		scrollArea = glass.GlassScrollArea(table);
		scrollArea.setSize(table.getWidth(),table.getHeight());
		scrollArea.setWidth(min( scrollArea.getWidth() + bar , tabHolder.getWidth() ));
		scrollArea.setHeight(min( scrollArea.getHeight() + bar , internalHeight ));
		
		tabHolder.addTab("Other", scrollArea);
		return tabHolder;
Esempio n. 5
0
	def build_sound(self):
		table = GlassTablePlus();
		table.setFrame(0);
		table.horizontalJustification = glass.Graphics.LEFT;
		
		MasterVolume = glass.GlassSlider();
		MasterVolume.linkCvar( "sound_mastervolume" );
		MasterVolume.setScaleEnd(1.0);
		MasterVolume.setScaleStart(0);
		table.addRow("Master Volume", MasterVolume);
	
		MusicVolume = glass.GlassSlider();
		MusicVolume.linkCvar( "sound_musicvolume" );
		MusicVolume.setScaleEnd(1.0);
		MusicVolume.setScaleStart(0);
		table.addRow("Music Volume", MusicVolume);
	
		SoundVolume = glass.GlassSlider();
		SoundVolume.linkCvar( "sound_sfxVolume" );
		SoundVolume.setScaleEnd(1.0);
		SoundVolume.setScaleStart(0);
	
		TestSoundButton = glass.GlassButton("Test");
		TestSoundButton.setClickAction("Sound_PlaySound('/sound/human/player/male/good_game_1.ogg');");
		table.addRow("Sound Effect Volume", SoundVolume,TestSoundButton);
		#TODO play this sound when the slider loses focus, ie when the car is released
	
		softwareMode = glass.GlassCheckbox();
		softwareMode.linkCvar("sound_softwareMode");
		table.addRow("Software Mode", softwareMode);
	
		mixrate = glass.GlassDropMenu();
		mixrate.linkCvar("sound_mixrate");
		mixrate.addOption("22050", "22050")
		mixrate.addOption("44100", "44100")
		mixrate.addOption("48000", "48000")
		table.addRow("Sampling Rate", mixrate);
	
		channels = glass.GlassSpinner();
		channels.linkCvar("sound_numChannels");
		channels.setStep(32);
		channels.setWidth(50);
		table.addRow("Sound Channels", channels);
		
		VoIPVolume = glass.GlassSlider();
		VoIPVolume.linkCvar( "sound_voipvolume" );
		VoIPVolume.setScaleEnd(1.0);
		VoIPVolume.setScaleStart(0);
		table.addRow("Voice Volume", VoIPVolume);
		table.adjustSizeTo();
		tableHolder = glass.GlassScrollArea(table);
		tableHolder.setSize(table.getWidth(), table.getHeight());
		return tableHolder;
Esempio n. 6
0
    def __init__(self):
        glass.GlassContainer.__init__(self)
        gblBuddyManager.addList(self)

        self.setSizePct(self.WIDTH_PROPORTION, self.HEIGHT_PROPORTION)
        self.toggle = glass.GlassButton("0")
        #either add in a custom button background here, including the buddy logo
        #or just bodge it with ^icon^
        #wtf was I thinking, GlassButton accepts an icon param
        self.toggle.setY(self.getHeight() - self.toggle.getHeight())
        self.toggle.addMouseListener(self)
        self.add(self.toggle)

        self.window = glass.GlassWindow()
        self.window.setCaption("Buddies")
        self.window.setAlpha(0)
        self.window.setVisible(False)
        self.window.setMovable(0)
        self.window.setSize(self.getWidth(),
                            self.getHeight() - self.toggle.getHeight())
        self.window.setPosition(0, 0)
        self.add(self.window)

        ca = self.window.getChildrenArea()

        self.new = glass.ImageButton()
        self.new.setImage("/gui/standard/icons/plus.s2g")
        self.new.setX(ca.width - self.PADDING - self.new.getWidth())
        self.new.addMouseListener(self)
        self.window.add(self.new)

        self.input = glass.GlassTextField("Add new...")
        self.input.setX(self.PADDING)
        self.input.setWidth(self.new.getX() - self.PADDING - self.input.getX())
        self.input.addMouseListener(self)
        self.window.add(self.input)

        y2 = max(self.new.getHeight(), self.input.getHeight())
        y1 = ca.height - y2
        self.new.setY(y1 + (y2 - self.new.getHeight()) // 2)
        self.input.setY(y1 + (y2 - self.input.getHeight()) // 2)

        self.listbox = glass.GlassListBox()
        self.listbox.setBackgroundColor(transparency)

        self.scroll = glass.GlassScrollArea(self.listbox)
        self.scroll.setSize(ca.width, y1 - self.PADDING)
        self.window.add(self.scroll)
        self.listbox.setWidth(ca.width - self.scroll.getScrollbarWidth())
Esempio n. 7
0
    def __init__(self):
        glass.GlassContainer.__init__(self)
        self.setBackgroundColor(transparency)

        #self.setSizePct(0.45, 0.2);
        #self.centerWindow();
        #self.setVisible(0);
        #self.setAlpha(128);

        self.itemsContainer = glass.GlassContainer()
        self.itemsContainer.setSize(300, 150)
        self.scrollArea = glass.GlassScrollArea(self.itemsContainer)
        self.scrollArea.setScrollPolicy(glass.GlassScrollArea.SHOW_AUTO,
                                        glass.GlassScrollArea.SHOW_NEVER)
        self.add(self.scrollArea)

        self.items = []
	def __init__(self):
		glass.GlassWindow.__init__(self);
		self.setCaption("Research Queue");
		self.setBackgroundColor(black);
		
		self.setSizePct(0.45, 0.2);
		self.centerWindow();
		self.setVisible(False);
		self.setAlpha(128);
		self.setTitleVisible(0);

		self.itemsContainer = glass.GlassContainer();
		self.itemsContainer.setSize(300,150);
		self.scrollArea = glass.GlassScrollArea(self.itemsContainer);
		self.scrollArea.setScrollPolicy( glass.GlassScrollArea.SHOW_AUTO , glass.GlassScrollArea.SHOW_NEVER );
		self.add(self.scrollArea);
		self.scrollArea.setSizePct(1,.85);
		
		self.items = [];
Esempio n. 9
0
    def __init__(self):
        ChatBox.__init__(self, [
            "msg_public", "msg_team", "msg_private", "msg_squad", "msg_clan",
            "msg_server", "_HCBinternal"
        ])
        self.buffer.setFadeTop(True)

        #history messages
        self.historyBuffer = MessageBuffer([
            "msg_public", "msg_team", "msg_private", "msg_squad", "msg_clan",
            "msg_server", "_HCBinternal"
        ])
        self.historyBuffer.setEditable(False)
        scroll = glass.GlassScrollArea(self.historyBuffer)
        scroll.setScrollPolicy(glass.GlassScrollArea.SHOW_NEVER,
                               glass.GlassScrollArea.SHOW_ALWAYS)
        scroll.setAutoscroll(True)
        self.add(scroll)
        self.historyBuffer.parentScroll = scroll
        scroll.setVisible(False)
        for i in range(40):
            self.historyBuffer.addRow(" ")

        self.scroll.setVerticalScrollPolicy(glass.GlassScrollArea.SHOW_NEVER)

        self.input.setVisible(False)

        self.inputType = glass.GlassLabel("(squad)")
        self.inputType.setAlignment(glass.Graphics.RIGHT)
        self.add(self.inputType)

        self.history = RingBuffer(16)
        self.historyIndex = 0
        self.chatType = "all"
        self.replyTarget = ""
        self.oldHeight = 0
        self.typing = False

        self.fade = ActionSequence(savage.WaitAction(5000),
                                   savage.CheckAction(self.typing, False),
                                   FadeOutAction(self))
        self.showHistory(False)
Esempio n. 10
0
	def build_network(self):
		table = GlassTablePlus();
		table.setFrame(0);
		table.horizontalJustification = glass.Graphics.LEFT;

		preset = glass.GlassDropMenu();
		preset.addOption("Dial-up","dialup");
		preset.addOption("ISDN","isdn");
		preset.addOption("DSL/Cable","dslcable");
		preset.addOption("LAN","lan");
		preset.addSelectionListener(self);
		table.addRow( "Presets:", preset);
		
		bandwidth = glass.GlassSpinner();
		bandwidth.linkCvar("netBPS");
		bandwidth.setStep(200);
		bandwidth.setWidth(50);
		table.addRow("Bandwidth", bandwidth);
	
		netfps = glass.GlassSpinner();
		netfps.linkCvar("netFrames");
		netfps.setStep(1);
		table.addRow("Updates per second:", netfps);
	
		maxPacketSize = glass.GlassSpinner();
		maxPacketSize.linkCvar("maxPacketSize");
		maxPacketSize.setStep(20);
		table.addRow("Max. Packet Size:", maxPacketSize);
	
		lagcompensation = glass.GlassDropMenu();
		lagcompensation.linkCvar("cl_lerpshift");
		lagcompensation.addOption("Off","0");
		lagcompensation.addOption("Low", "0.1"); #TODO test these values
		lagcompensation.addOption("Medium", "0.2");
		lagcompensation.addOption("High", "0.4");
		table.addRow("Lag Compensation", lagcompensation);
		table.adjustSizeTo();
		tableHolder = glass.GlassScrollArea(table);
		tableHolder.setSize(table.getWidth(), table.getHeight());
		return tableHolder;
Esempio n. 11
0
    def __init__(self):
        DefaultWindow.__init__(self)
        self.setFrameStyle("TrimmedEight")
        self.setMovable(True)

        self.setSize(500, 300)
        self.setVisible(False)

        self.players = []

        self.setBackgroundColor(windowBackground)

        # top bar:

        top = DefaultContainer()
        top.setSize(self.getWidth(), 35)
        top.setBackgroundColor(windowTop)
        self.add(top)

        title = DefaultLabel("Player Roster")
        title.setForegroundColor(tangoYellow)
        title.setFont(fontSizeLarge)
        top.add(title, "center", "center")

        self.list = DefaultTable()
        self.list.setFrame(False)
        self.clearList()
        # self.add(self.list,0,0)

        self.scroll = glass.GlassScrollArea(self.list)
        self.scroll.setSize(self.getWidth() - 5,
                            self.getHeight() - 10)
        self.scroll.setBackgroundColor(transparency)
        self.add(self.scroll, 0, 42)

        self.build()

        gblEventHandler.addGameListener(self)
Esempio n. 12
0
    def __init__(self, name, scopeList, isConference=False):
        glass.GlassContainer.__init__(self)

        self.setOpaque(False)
        self.jid = name
        self.isConference = isConference
        self.scopeList = scopeList

        self.buffer = MessageBuffer(self.scopeList)
        self.buffer.setEditable(False)
        self.buffer.showTime(True)

        self.scroll = glass.GlassScrollArea(self.buffer)
        self.scroll.setScrollPolicy(glass.GlassScrollArea.SHOW_NEVER,
                                    glass.GlassScrollArea.SHOW_ALWAYS)
        self.scroll.setAutoscroll(False)
        self.add(self.scroll)
        self.buffer.parentScroll = self.scroll

        # extending the input box to make it look a bit better:

        self.inputContainer = DefaultContainer()
        self.inputContainer.setBackgroundColor(glass.Color(23, 14, 13))
        self.add(self.inputContainer)

        self.div = DefaultContainer()
        self.div.setBackgroundColor(glass.Color(30, 26, 25))
        self.inputContainer.add(self.div)

        self.input = glass.GlassTextField()
        self.input.setForegroundColor(white)
        self.input.setBackgroundColor(glass.Color(0, 0, 0, 128))
        self.inputContainer.add(self.input)
        self.input.addKeyListener(self)

        self.bShowInput = False

        gblXMPPHandler.addListener(self)
Esempio n. 13
0
	def __init__(self):
		DefaultWindow.__init__(self);
		self.setFrameStyle("TrimmedEight");
		self.setBackgroundColor(windowBackground);
		self.lastClickTime = 0;
		self.lastClickSelect = -1;	

		self.activeList = None;	

		self.setSize(200, 500);

		self.widgets = {}; # {"group": grouplist}

		# The dict that keeps trac of the contacts
		self.contacts = {}; # {group: {'jid': name, "status": status }}

		top = DefaultContainer();
		self.add(top, 0, 0);
		top.setSize(self.getWidth(), 35);
		top.setBackgroundColor(windowTop);

		title = DefaultLabel("Buddy List");
		title.setForegroundColor(tangoYellowDark);
		title.setFont(fontSizeLarge);
		top.add(title, "center", "center");

		# Init the group tabs

		self.rosterGroup = glass.GlassTabbedContainer();
		self.rosterGroup.setWidth(self.getWidth() - 5);

		self.scroll = glass.GlassScrollArea(self.rosterGroup);
		self.scroll.setSize(self.getWidth() - 5, self.getHeight() - 60);
		self.scroll.setBackgroundColor(transparency);
		self.scroll.setHorizontalScrollPolicy(glass.GlassScrollArea.SHOW_NEVER);
		self.add(self.scroll, 0, 35);
		#self.buildList();

		# control bar

		self.diff = inputLineHeight + 2

		self.controlBar = DefaultContainer();
		self.controlBar.setBackgroundColor(glass.Color(0,0,0,128));
		self.controlBar.setSize(self.getWidth(), inputLineHeight + 35);
		self.add(self.controlBar, 0, self.getHeight() - self.controlBar.getHeight() + self.diff);

		self.addFriend = DefaultButton(" + ");
		self.addFriend.setSize(20, 20);
		self.addFriend.addActionListener(self);

		self.deleteFriend = DefaultImageButton();
		self.deleteFriend.setImage("icons/logout.png");
		self.deleteFriend.setSize(20, 20);
		self.deleteFriend.setCaption("delete");
		self.deleteFriend.addActionListener(self);

		self.deleteOverlay = DefaultContainer();
		self.deleteOverlay.setBackgroundColor(glass.Color(0,0,0,200));
		self.deleteOverlay.setSize(20,20);

		self.stats = DefaultImageButton();
		#stats.setClickAction("mainmenu.showModule('stats')"); TODO
		self.stats.setImage("icons/stats.png");
		self.stats.setSize(20, 20);
		self.stats.setCaption("stats");
		self.stats.addActionListener(self);

		self.statsOverlay = DefaultContainer();
		self.statsOverlay.setBackgroundColor(glass.Color(0,0,0,200));
		self.statsOverlay.setSize(20,20);

		self.match = DefaultImageButton();
		#stats.setClickAction("mainmenu.showModule('stats')"); TODO
		self.match.setImage("icons/lobby.png");
		self.match.setSize(20, 20);
		self.match.setCaption("match");
		self.match.addActionListener(self);

		self.matchOverlay = DefaultContainer();
		self.matchOverlay.setBackgroundColor(glass.Color(0,0,0,200));
		self.matchOverlay.setSize(20,20);

		self.controlBar.add(self.addFriend, 5, 5);
		self.controlBar.add(self.deleteFriend, 30, 5);
		self.controlBar.add(self.stats, 55, 5);
		self.controlBar.add(self.match, 80, 5);

		self.controlBar.add(self.deleteOverlay, 30, 5);
		self.controlBar.add(self.statsOverlay, 55, 5);
		self.controlBar.add(self.matchOverlay, 80, 5);

		self.enterName = DefaultTextBox();
		self.enterName.setFont(fontSizeSmall);
		self.controlBar.add(self.enterName, 5, 30 );
		self.enterName.setSize(162, inputLineHeight);

		self.invite = DefaultButton(" Add");
		self.invite.setFont(fontSizeSmall);
		self.controlBar.add(self.invite);
		self.invite.setSize(inputLineHeight, inputLineHeight);
		self.invite.setPosition(self.getWidth() - self.invite.getWidth() - 12, self.enterName.getY());
		self.invite.addActionListener(self);	


		self.connectingOverlay = DefaultContainer();
		self.add(self.connectingOverlay, 0, 0);
		self.connectingOverlay.setSize(self.getWidth(), self.getHeight());
		self.connectingOverlay.setBackgroundColor(glass.Color(0,0,0,200));

		self.loginOverlayLabel = DefaultLabel("");
		self.connectingOverlay.add(self.loginOverlayLabel, "center", "center");

		gblXMPPHandler.addListener(self);
Esempio n. 14
0
	def build_config(self):
		table = GlassTablePlus();
		table.setFrame(0);
		table.horizontalJustification = glass.Graphics.LEFT;
		
		self.nickname = glass.GlassTextField( cvar_get("name") );
		self.nickname.setSize(150, 25);
		table.addRow( "Nickname", self.nickname );
		
		blockLeap = glass.GlassCheckbox();
		blockLeap.linkCvar("cl_blockLeapSwitch");
		table.addRow("Block / Leap Switch", blockLeap);
		
		chatFilter = glass.GlassCheckbox();
		chatFilter.linkCvar("cl_filter_filter");
		table.addRow( "Chat Filter", chatFilter );
		
		chatTimestamp = glass.GlassDropMenu();
		chatTimestamp.linkCvar("gui_chatTimestamp");
		chatTimestamp.addOption("Off","0");
		chatTimestamp.addOption("Game Time","1");
		chatTimestamp.addOption("Local Time","2"); 
		table.addRow("Chat Timestamp", chatTimestamp);
		
		showFPS = glass.GlassDropMenu();
		showFPS.linkCvar("cl_showfps");
		showFPS.addOption("Off","0");
		showFPS.addOption("Instant","1");
		showFPS.addOption("Average","2");
		showFPS.addOption("Both","3");
		table.addRow("Show FPS", showFPS);
		
		showServerFPS = glass.GlassCheckbox();
		showServerFPS.linkCvar("cl_showfpsserver");
		table.addRow("Show Server FPS",showServerFPS);
		
		showPing = glass.GlassCheckbox();
		showPing.linkCvar("cl_showping");
		table.addRow("Show Ping", showPing);
		
		showTeamStatus = glass.GlassCheckbox();
		showTeamStatus.linkCvar("gui_showteamstatus");
		table.addRow("Show Team Status",showTeamStatus);
		
		autoRecordDemos = glass.GlassCheckbox();
		autoRecordDemos.linkCvar("cl_autoRecordDemo");
		table.addRow("Auto-Record Demos",autoRecordDemos);
		
		showSquadMates = glass.GlassCheckbox();
		showSquadMates.linkCvar("cl_show_squad");
		table.addRow("Show Squad Mates",showSquadMates);
		#not sure if this is the right var
		#there's also cl_show_squad_comm
		
		cameraView = glass.GlassDropMenu();
		cameraView.linkCvar("cl_cameraPosLerp");
		cameraView.addOption("Smoothed","6");
		cameraView.addOption("Snappy","9999");
		table.addRow("Camera Snap",cameraView);
		
		cameraSmoothing = glass.GlassDropMenu();
		cameraSmoothing.linkCvar("cl_cameraAngleLerp");
		cameraSmoothing.addOption("Snap","9999");
		cameraSmoothing.addOption("Quick","50");
		cameraSmoothing.addOption("Smooth","35");
		cameraSmoothing.addOption("Very Smooth","15");
		cameraSmoothing.addOption("Demo Spectate","5");
		#based on two things: XR GUI and that I like 15 myself :P
		#with that said, people like to tweak this var a lot, perhaps it ought to be a slider
		table.addRow("Camera Smoothing",cameraSmoothing);

		minimapAlpha = glass.GlassSlider();
		minimapAlpha.linkCvar("cl_minimap_brightness");
		table.addRow("Minimap Alpha", minimapAlpha);
		
		#TODO toggle third person camera when using a ranged weapon?
		
		#Crosshair colors here?
		#Commander Tweaks for the Options
		tableHolder = glass.GlassScrollArea(table);
		tableHolder.setSize(table.getWidth(), table.getHeight());
		return tableHolder;
Esempio n. 15
0
	def __init__(self):
		DefaultContainer.__init__(self);

		self.mucParticipants = {};
		self.currentRoom = "help";

		self.lastClickTime = 0;
		self.lastClickSelect = -1;		

		# muc stuff:

		self.left = DefaultWindow();
		self.left.setFrameStyle("TrimmedEight");
		self.add(self.left, 0, 50);
		self.left.setSize(155, 300);
		self.left.setBackgroundColor(windowBackground);

		self.list = DefaultTableList();
		self.list.setSelectionColor(transparency);
		self.list.addMouseListener(self);

		self.scroll = glass.GlassScrollArea(self.list);
		self.scroll.setBackgroundColor(transparency);
		self.scroll.setHorizontalScrollPolicy(glass.GlassScrollArea.SHOW_NEVER);
		self.left.add(self.scroll);
		self.scroll.setPosition(5, 5);
		self.scroll.setSize(self.left.getWidth() - 19, self.left.getHeight() - 40);

		self.enterName = DefaultTextBox();
		self.enterName.setFont(fontSizeSmall);
		self.left.add(self.enterName);
		self.enterName.setSize(120, inputLineHeight);
		self.enterName.setPosition(5, self.left.getHeight() - inputLineHeight - 8);

		self.invite = DefaultButton(" + ");
		self.invite.setFont(fontSizeSmall);
		self.left.add(self.invite);
		self.invite.setSize(inputLineHeight, inputLineHeight);
		self.invite.setPosition(self.left.getWidth() - self.invite.getWidth() - 12, self.enterName.getY());
		self.invite.addActionListener(self);

		# Window part:
		self.window = DefaultWindow();
		self.window.setFrameStyle("TrimmedEight");
		self.window.setBackgroundColor(windowBackground);

		self.setSize(650, 400);
		self.window.setSize(450, 400);
		self.add(self.window, 145, 0);

		top = DefaultContainer();
		self.window.add(top, 0, 0);
		top.setSize(self.window.getWidth(), 35);
		top.setBackgroundColor(windowTop);

		title = DefaultLabel("Chatbox");
		title.setForegroundColor(tangoYellowDark);
		title.setFont(fontSizeLarge);
		top.add(title, "center", "center");

		# Alright, TabbedArea is being a dick when it comes to sizes, have to pass them to __init__:
		self.chatBox = TabbedChatBox(self.window.getWidth(), self.window.getHeight() - top.getHeight());
		self.chatBox.setVisible(True);
		self.window.add(self.chatBox, 0, top.getHeight() );
		self.chatBox.resize();
		self.chatBox.addSelectionListener(self);		

		gblXMPPHandler.addListener(self);
Esempio n. 16
0
	def create(self):
		
		self.setBackgroundColor(glass.Color(24, 14, 14));
		
		self.restartRequired = False;
		
		bgImage = DefaultImage();
		bgImage.setImage("bar_red_shadow.png");
		bgImage.setSize(self.getWidth(), 40);
		self.add(bgImage, 0, 40);
	
		header = DefaultContainer();
		header.setSize(self.getWidth(), 70);
		header.setBackgroundColor(glass.Color(85, 21, 11));
		header.setOpaque(True);
		self.add(header);
		
		title = DefaultImage();
		title.setImage("txt_options.png");
		header.add(title, "center", 10);

		content = glass.GlassTabbedArea();	
		
		# this is just for the padding
		contentContainer = DefaultContainer();
		contentContainer.setSize(self.getWidth(), self.getHeight() - 72);
		self.add(contentContainer, 0, 40);
		
		content.setSize(contentContainer.getWidth() - 25, contentContainer.getHeight() - 45);
		
		note = DefaultLabel("Note: options are saved instantly");
		note.setFont(fontSizeSmall);
		note.setForegroundColor(tangoGrey3);
		self.add(note, 5, 5, "right", "bottom");
		
		interfaceForm = self.createInterfaceForm(content);
		self.interfaceContainer = glass.GlassScrollArea(interfaceForm);
		self.interfaceContainer.setHorizontalScrollPolicy( glass.GlassScrollArea.SHOW_NEVER );
		content.addTab("INTERFACE", self.interfaceContainer);
		
		self.restartWarning = DefaultContainer();
		self.restartWarning.setSize(self.getWidth(), 50);
		self.restartWarning.setVisible(False);
		self.restartWarning.setBackgroundColor(glass.Color(85, 21, 11));
		self.restartWarning.setOpaque(True);		
		
		restartWarningLabel = DefaultLabel("RESTART REQUIRED");
		self.restartWarning.add(restartWarningLabel, "center");
		
		hr = DefaultImage();
		hr.setImage("divider.png");
		self.restartWarning.add(hr, 0, restartWarningLabel.getHeight() + 3);
		
		restartMessage = DefaultLabel("Some changes won\'t take affect until you restart. Would you like to restart now?");
		restartMessage.setFont(fontSizeSmall);
		self.restartWarning.add(restartMessage, 15, 27);
		
		restart = DefaultButton("RESTART");
		restart.setClickAction("shutdown(1)");
		self.restartWarning.add(restart, 30, 10, "right");
		
		self.gfxForm = self.createGfxForm(content);
		self.gfxContainer = glass.GlassScrollArea(self.gfxForm);
		self.gfxContainer.setHorizontalScrollPolicy( glass.GlassScrollArea.SHOW_NEVER );
		self.gfxForm.setWidth(self.gfxForm.getWidth() - self.gfxContainer.getScrollbarWidth());
		content.addTab("GRAPHICS", self.gfxContainer);
		
		soundForm = self.createSoundForm(content);
		self.soundContainer = glass.GlassScrollArea(soundForm);
		self.soundContainer.setHorizontalScrollPolicy( glass.GlassScrollArea.SHOW_NEVER );
		content.addTab("SOUND", self.soundContainer);
		
		controlForm = self.createControlForm(content);
		self.controlContainer = glass.GlassScrollArea(controlForm);
		self.controlContainer.setHorizontalScrollPolicy( glass.GlassScrollArea.SHOW_NEVER );
		controlForm.setWidth(controlForm.getWidth() - self.controlContainer.getScrollbarWidth());
		content.addTab("CONTROLS", self.controlContainer);

		contentContainer.add(content, 15, 0);
		contentContainer.add(self.restartWarning, 0, 32);
		
		self.binder = Binder();
		mainmenu.add(self.binder);
Esempio n. 17
0
	def build_graphics(self):
		table = GlassTablePlus();
		table.setFrame(0);
		table.horizontalJustification = glass.Graphics.LEFT;
		
		videoResolution = glass.GlassDropMenu();
		videoResolution.linkCvar("vid_mode");
		videoResolution.addSelectionListener(reshandler);
		i=1;
		mode = cvar_get("vid_mode"+str(i));
		while len(mode) > 0:
			videoResolution.addOption(mode, mode);
			i += 1;
			mode = cvar_get("vid_mode"+str(i));
	
		table.addRow( "Video Resolution" , videoResolution );
		
		fullscreen = glass.GlassCheckbox();
		fullscreen.linkCvar("vid_fullscreen");
		fullscreen.addSelectionListener(reshandler);
		table.addRow( "Full Screen", fullscreen );

		fov = glass.GlassDropMenu();
		fov.linkCvar("cl_fov");
		fov.addOption("4:3", "90");
		fov.addOption("16:9", "110");
		fov.addOption("16:10", "100");
		table.addRow( "Frame", fov);

		gamma = glass.GlassSlider();
		gamma.linkCvar( "vid_gamma" );
		gamma.setScaleEnd(2.5);
		gamma.setScaleStart(0.5);
		table.addRow( "Brightness" , gamma );
		
		showArmor = glass.GlassCheckbox();
		showArmor.linkCvar( "cl_showLevelArmor");
		table.addRow( "Show Armor" , showArmor );
		
		showImpacts = glass.GlassCheckbox();
		showImpacts.linkCvar("cl_collisionDecals");
		table.addRow( "Show Impact Effects", showImpacts);
		
		showBlood = glass.GlassCheckbox();
		showBlood.linkCvar("cl_bloodSplatter");
		table.addRow( "Show Blood Splatter", showBlood );
		
		antiAliasing = glass.GlassDropMenu();
		antiAliasing.linkCvar("vid_multisample");
		antiAliasing.addOption("None", "0");
		antiAliasing.addOption("2x", "2");
		antiAliasing.addOption("4x", "4");
		antiAliasing.addSelectionListener(reshandler);
		table.addRow( "Anti-Aliasing", antiAliasing );
		
		showClouds = glass.GlassCheckbox();
		showClouds.linkCvar("gfx_clouds");
		table.addRow( "Show Clouds", showClouds );
		
		useShaders = glass.GlassDropMenu();
		useShaders.linkCvar("gfx_GLSLQuality");
		useShaders.addOption("^900Off", "0");
		useShaders.addOption("Low", "1");
		useShaders.addOption("High", "3");
		table.addRow( "Shaders", useShaders);
		
		forceSoft = glass.GlassCheckbox();
		forceSoft.linkCvar("gfx_forceSoftware");
		table.addRow( "Force CPU Animation", forceSoft );

		showGrass = glass.GlassCheckbox();
		showGrass.linkCvar("gfx_grass");
		table.addRow( "Show Grass", showGrass );

		grassFalloff = glass.GlassDropMenu();
		grassFalloff.linkCvar("gfx_grassRange")
		grassFalloff.addOption("Near","500");
		grassFalloff.addOption("Far","1500");
		grassFalloff.addOption("Very Far","3500");
		table.addRow( "Grass Falloff", grassFalloff );

		showShadows = glass.GlassDropMenu();
		showShadows.linkCvar("gfx_shadow");
		showShadows.addOption("Off", "0");
		showShadows.addOption("Fast", "1");
		showShadows.addOption("Nice", "3");
		table.addRow( "Shadows", showShadows);

		postProcMaster = glass.GlassCheckbox();
		postProcMaster.linkCvar("gfx_postProcessing");
		#TODO: disable the other post proc checkboxes if this is disabled
		table.addRow( "Post-Processing", postProcMaster);
	
		postBloom = glass.GlassCheckbox();
		postBloom.linkCvar("gfx_postBloom");
		table.addRow( "   Bloom Filter", postBloom);
		
		postMotion = glass.GlassCheckbox();
		postMotion.linkCvar("gfx_postMotion");
		table.addRow( "   Motion Blur", postMotion);
		
		showGlow = glass.GlassCheckbox();
		showGlow.linkCvar("gfx_glowFilter");
		table.addRow( "   Glow Filter", showGlow );
	
		postWater = glass.GlassCheckbox();
		postWater.linkCvar("gfx_postWater");
		table.addRow( "   Water Effects", postWater);
		
		postSSAO = glass.GlassCheckbox();
		postSSAO.linkCvar("gfx_postSSAO");
		table.addRow( "   Ambient Occlusion", postSSAO);
		
		table.adjustSizeTo();
		tableHolder = glass.GlassScrollArea(table);
		tableHolder.setSize(table.getWidth(), table.getHeight());
		return tableHolder;
Esempio n. 18
0
topstatus = GlassTopStatusBar()
glass.GUI_ScreenAddWidget("serverlist", topstatus)
gblEventHandler.addNotifyListener(topstatus)

#window
w = glass.GlassWindow("list")
w.setBackgroundColor(glass.Color(0, 0, 0, 128))
w.setSizePct(.8, .35)
w.setPositionPct(0.1, 0.325)
w.setTitleVisible(0)

glass.GUI_ScreenAddWidget("serverlist", w)

list = GlassListPlus()
scr = glass.GlassScrollArea(list)
w.add(scr)
scr.setSizePct(1, .8)

back = glass.GlassButton("Back")
w.add(back)
back.setClickAction("GUI_ShowScreen('mainmenu')")
back.setPositionPct(.10, .0)
back.setY(w.getHeight() - back.getHeight() - 5)

host = glass.GlassButton("Host Server")
w.add(host)
host.setClickAction("serverlist.hostServerWindow.showHostServerWindow()")
host.setPositionPct(0.6, 0)
host.setY(w.getHeight() - host.getHeight() - 5)
Esempio n. 19
0
    def __init__(self):
        glass.GlassWindow.__init__(self, 'Graphics Panel')
        self.first = True
        self.setBackgroundColor(glass.Color(0, 0, 0, 128))
        self.setTitleVisible(0)
        self.setSizePct(0.55, 0.8)
        self.setVisible(False)

        # config

        self.table = GlassTablePlus()
        self.table.setFrame(0)
        self.table.setCellPadding(2)
        self.table.horizontalJustification = glass.Graphics.LEFT

        self.table.addRow("^gConfig", "")

        self.table.addRow()

        blockLeap = glass.GlassCheckbox()
        blockLeap.linkCvar("cl_blockLeapSwitch")
        self.table.addRow("Block / Leap Switch", blockLeap)

        showFPS = glass.GlassDropMenu()
        showFPS.linkCvar("cl_showfps")
        showFPS.addOption("Off", "0")
        showFPS.addOption("Instant", "1")
        showFPS.addOption("Average", "2")
        showFPS.addOption("Both", "3")
        self.table.addRow("Show FPS", showFPS)

        showServerFPS = glass.GlassCheckbox()
        showServerFPS.linkCvar("cl_showfpsserver")
        self.table.addRow("Show Server FPS", showServerFPS)

        showPing = glass.GlassDropMenu()
        showPing.linkCvar("gui_showping")
        showPing.addOption("Off", "0")
        showPing.addOption("Instant", "1")
        showPing.addOption("Average", "2")
        self.table.addRow("Show Ping", showPing)

        showTeamStatus = glass.GlassCheckbox()
        showTeamStatus.linkCvar("gui_showteamstatus")
        self.table.addRow("Show Team Status", showTeamStatus)

        thirdPerson = glass.GlassCheckbox()
        thirdPerson.linkCvar("cl_alwaysThirdPerson")
        self.table.addRow("Force Third Person", thirdPerson)

        cameraView = glass.GlassDropMenu()
        cameraView.linkCvar("cl_cameraPosLerp")
        cameraView.addOption("Smoothed", "6")
        cameraView.addOption("Snappy", "9999")
        self.table.addRow("Camera Snap", cameraView)

        cameraSmoothing = glass.GlassDropMenu()
        cameraSmoothing.linkCvar("cl_cameraAngleLerp")
        cameraSmoothing.addOption("Snap", "9999")
        cameraSmoothing.addOption("Quick", "50")
        cameraSmoothing.addOption("Smooth", "35")
        cameraSmoothing.addOption("Very Smooth", "15")
        cameraSmoothing.addOption("Demo Spectate", "5")
        self.table.addRow("Camera Smoothing", cameraSmoothing)

        # Graphics

        self.table.addRow()

        self.table.addRow("^gGraphics", "")

        self.table.addRow()

        gamma = glass.GlassSlider()
        gamma.linkCvar("vid_gamma")
        gamma.setScaleEnd(2.5)
        gamma.setScaleStart(0.5)
        self.table.addRow("Brightness", gamma)

        showArmor = glass.GlassCheckbox()
        showArmor.linkCvar("cl_showLevelArmor")
        self.table.addRow("Show Armor", showArmor)

        showImpacts = glass.GlassCheckbox()
        showImpacts.linkCvar("cl_collisionDecals")
        self.table.addRow("Show Impact Effects", showImpacts)

        showBlood = glass.GlassCheckbox()
        showBlood.linkCvar("cl_bloodSplatter")
        self.table.addRow("Show Blood Splatter", showBlood)

        grassFalloff = glass.GlassDropMenu()
        grassFalloff.linkCvar("gfx_foliageFalloff")
        grassFalloff.addOption("Off", "0")
        grassFalloff.addOption("Near", "100")
        grassFalloff.addOption("Far", "700")
        grassFalloff.addOption("Very Far", "1500")
        self.table.addRow("Grass Falloff", grassFalloff)

        showClouds = glass.GlassCheckbox()
        showClouds.linkCvar("gfx_clouds")
        self.table.addRow("Show Clouds", showClouds)

        showShadows = glass.GlassDropMenu()
        showShadows.linkCvar("gfx_shadow")
        showShadows.addOption("Off", "0")
        showShadows.addOption("Fast", "1")
        showShadows.addOption("Nice", "3")
        self.table.addRow("Shadows", showShadows)

        useShaders = glass.GlassDropMenu()
        useShaders.linkCvar("gfx_GLSLQuality")
        useShaders.addOption("^900Off", "0")
        useShaders.addOption("Low", "1")
        useShaders.addOption("High", "3")
        self.table.addRow("Shaders", useShaders)

        forceSoft = glass.GlassCheckbox()
        forceSoft.linkCvar("gfx_forceSoftware")
        self.table.addRow("Force CPU Animation", forceSoft)

        postProcMaster = glass.GlassCheckbox()
        postProcMaster.linkCvar("gfx_postProcessing")
        #TODO: disable the other post proc checkboxes if this is disabled
        self.table.addRow("Post-Processing", postProcMaster)

        postBloom = glass.GlassCheckbox()
        postBloom.linkCvar("gfx_postBloom")
        self.table.addRow("   Bloom Filter", postBloom)

        postMotion = glass.GlassCheckbox()
        postMotion.linkCvar("gfx_postMotion")
        self.table.addRow("   Motion Blur", postMotion)

        showGlow = glass.GlassCheckbox()
        showGlow.linkCvar("gfx_glowFilter")
        self.table.addRow("   Glow Filter", showGlow)

        postWater = glass.GlassCheckbox()
        postWater.linkCvar("gfx_postWater")
        self.table.addRow("   Water Effects", postWater)

        postSSAO = glass.GlassCheckbox()
        postSSAO.linkCvar("gfx_postSSAO")
        self.table.addRow("   Ambient Occlusion", postSSAO)

        # Sound

        self.table.addRow()

        self.table.addRow("^gSound", "")

        self.table.addRow()

        MasterVolume = glass.GlassSlider()
        MasterVolume.linkCvar("sound_mastervolume")
        MasterVolume.setScaleEnd(1.0)
        MasterVolume.setScaleStart(0)
        self.table.addRow("Master Volume", MasterVolume)

        MusicVolume = glass.GlassSlider()
        MusicVolume.linkCvar("sound_musicvolume")
        MusicVolume.setScaleEnd(1.0)
        MusicVolume.setScaleStart(0)
        self.table.addRow("Music Volume", MusicVolume)

        SoundVolume = glass.GlassSlider()
        SoundVolume.linkCvar("sound_sfxVolume")
        SoundVolume.setScaleEnd(1.0)
        SoundVolume.setScaleStart(0)

        VoIPVolume = glass.GlassSlider()
        VoIPVolume.linkCvar("sound_voipvolume")
        VoIPVolume.setScaleEnd(1.0)
        VoIPVolume.setScaleStart(0)
        self.table.addRow("Voice Volume", VoIPVolume)

        internalHeight = self.getChildrenArea().height

        self.scrollArea = glass.GlassScrollArea(self.table)
        self.add(self.scrollArea)
        self.scrollArea.setScrollPolicy(glass.GlassScrollArea.SHOW_NEVER,
                                        glass.GlassScrollArea.SHOW_ALWAYS)

        bar = self.scrollArea.getScrollbarWidth()
        self.scrollArea.setWidth(
            min(self.getWidth() + bar,
                self.getWidth() - 8))
        self.scrollArea.setHeight(min(internalHeight + bar,
                                      internalHeight - 4))
Esempio n. 20
0
    def create(self):

        self.setBackgroundColor(windowBackground)

        # Top area
        top = DefaultContainer()
        top.setSize(self.getWidth(), 35)
        top.setBackgroundColor(windowTop)
        top.setOpaque(True)
        self.add(top)

        refresh = MainIcon("refresh", 17, 17)
        refresh.setCaption("Refresh")
        refresh.addActionListener(self)
        top.add(refresh, 10, "center")

        filter = MainIcon("cog", 17, 17)
        top.add(filter, 33, "center")

        title = DefaultImage()
        title.setImage("txt_serverbrowser.png")
        top.add(title, "center", "center")

        connect = DefaultImageButton()
        connect.setCaption("Connect")
        connect.setImage("btn_connect.png")
        connect.addActionListener(self)
        top.add(connect, 10, "center", "right")

        # return to game stuff:

        self.reconnectBar = DefaultContainer()
        self.reconnectBar.setSize(self.getWidth(), 50)
        self.reconnectBar.setVisible(False)
        self.reconnectBar.setBackgroundColor(glass.Color(85, 21, 11))
        self.reconnectBar.setOpaque(True)
        self.add(self.reconnectBar, 0, 35)

        gameProgress = DefaultLabel("GAME IN PROGRESS")
        self.reconnectBar.add(gameProgress, "center")

        hr = DefaultImage()
        hr.setImage("divider.png")
        self.reconnectBar.add(hr, "center",
                              gameProgress.getHeight() + 3)

        disconnectButton = DefaultButton("LEAVE")
        disconnectButton.setClickAction(
            """disconnect();mainmenu.modules['menu'].sectionStack['serverlist'].onShow();"""
        )
        self.reconnectBar.add(disconnectButton, 10, 10)

        connectedMessage = DefaultLabel(
            "You are currently connected to a server. Do you want to return?")
        connectedMessage.setFont(fontSizeSmall)
        self.reconnectBar.add(connectedMessage, "center", 27)

        returnButton = DefaultButton("RETURN")
        returnButton.setClickAction(
            "spechud.setMode('lobby');GUI_ShowScreen('spechud')")
        self.reconnectBar.add(returnButton, 10, 10, "right")

        # The list bro

        self.list.padding = 5
        self.list.setSelectionColor(glass.Color(70, 40, 40, 180))
        self.clearList()

        self.scroll = glass.GlassScrollArea(self.list)
        self.scroll.setSize(self.getWidth() - 5,
                            self.getHeight() - 42)
        self.scroll.setBackgroundColor(transparency)
        self.add(self.scroll, 0, 42)

        #self.list.setWidth(self.scroll.getWidth());
        self.list.adjustWidthTo(self.scroll.getWidth() - 20)

        self.serverCount = DefaultLabel("Total Servers: 0   ")
        self.serverCount.setFont(fontSizeSmall)
        self.serverCount.setForegroundColor(tangoGrey3)
        self.add(self.serverCount, 5, 5, "right", "bottom")
Esempio n. 21
0
	def create(self):
		
		self.setBackgroundColor(glass.Color(22, 13, 10));
		
		# Top area
		top = DefaultContainer();
		top.setSize(self.getWidth(), 35);
		top.setBackgroundColor(glass.Color(85, 21, 11));
		top.setOpaque(True);
		self.add(top);
		
		title = DefaultImage();
		title.setImage("txt_hostgame.png");
		top.add(title, "center", "center");
		
		go = DefaultImageButton();
		go.setImage("btn_host.png");
		go.setCaption("Host");
		go.addActionListener(self)
		top.add(go, 10, "center", "right"); 

		# return to game stuff:

		self.reconnectBar = DefaultContainer();
		self.reconnectBar.setSize(self.getWidth(), 50);
		self.reconnectBar.setVisible(False);
		self.reconnectBar.setBackgroundColor(glass.Color(85, 21, 11));
		self.reconnectBar.setOpaque(True);
		self.add(self.reconnectBar, 0, 35);
		
		gameProgress = DefaultLabel("GAME IN PROGRESS");
		self.reconnectBar.add(gameProgress, "center");
		
		hr = DefaultImage();
		hr.setImage("divider.png");
		self.reconnectBar.add(hr, "center", gameProgress.getHeight() + 3);

		disconnectButton = DefaultButton("LEAVE");
		disconnectButton.setClickAction("""disconnect();mainmenu.modules['menu'].sectionStack['serverlist'].onShow();""");
		self.reconnectBar.add(disconnectButton, 10, 10);

		connectedMessage = DefaultLabel("You are currently connected to a server. Do you want to return?");
		connectedMessage.setFont(fontSizeSmall);
		self.reconnectBar.add(connectedMessage, "center", 27);
		
		returnButton = DefaultButton("RETURN");
		returnButton.setClickAction("spechud.setMode('lobby');GUI_ShowScreen('spechud')");
		self.reconnectBar.add(returnButton, 10, 10, "right");

		self.content = DefaultContainer();
		self.add(self.content, 0, 35);
		self.content.setSize(self.getWidth(), self.getHeight() - 85);

		self.columnWidth = (self.getWidth() - 40) // 3;

		# Left container:

		self.settingsContainer = DefaultContainer();
		self.content.add(self.settingsContainer, 10, 0);
		self.settingsContainer.setSize(self.columnWidth, self.content.getHeight());
		#self.settingsContainer.setBackgroundColor(white);

		settingsTitle = DefaultLabel("Game Settings");
		self.settingsContainer.add(settingsTitle, "center", 10);

		typeLabel = DefaultLabel("Gametype:");
		self.settingsContainer.add(typeLabel, 0, settingsTitle.getHeight() + 30 );

		cvar_register("sv_gametype", 0);
		self.gametype = glass.GlassDropMenu();
		self.gametype.linkCvar("sv_gametype");
		self.gametype.addOption("RTSS",str(GAMETYPE_RTSS));
		self.gametype.addOption("Duel",str(GAMETYPE_DUEL));	
		self.gametype.setSelectedValue("0");
		self.settingsContainer.add(self.gametype, typeLabel.getWidth() + 20, typeLabel.getY());
		self.gametype.setWidth(60);

		raceLabel = DefaultLabel("Races:");
		self.settingsContainer.add(raceLabel, 0, self.gametype.getY() + 30 );

		cvar_register("sv_team1race", 0, "human");
		cvar_register("sv_team2race", 0, "beast");
		self.race = glass.GlassDropMenu();
		self.race.linkCvar("sv_team1race");
		self.race.addOption("HvsB","human");
		self.race.addOption("HvsH","human");
		self.race.addOption("BvsB","beast");
		self.race.setSelectedValue("HvsB");
		self.settingsContainer.add(self.race, self.gametype.getX(), raceLabel.getY());
		self.race.setWidth(60);

		div1 = DefaultDivider();
		div1.setWidth(self.settingsContainer.getWidth());
		self.settingsContainer.add(div1, 0, self.race.getY() + 40);

		cvar_register("sv_xp_mult", 0, "1.0");
		xpSlider = DefaultSlider();
		xpSlider.linkCvar("sv_xp_mult");
		xpSlider.setScaleEnd(10.0);
		xpSlider.setScaleStart(0.0);
		xpSlider.setWidth(self.settingsContainer.getWidth() - 15);
		self.settingsContainer.add(xpSlider, 0, div1.getY() + 25 );

		xpLabel = DefaultLabel("XP multiplier");
		self.settingsContainer.add(xpLabel, 0, xpSlider.getY() + 13 );	

		div2 = DefaultDivider();
		div2.setWidth(self.settingsContainer.getWidth());
		self.settingsContainer.add(div2, 0, xpLabel.getY() + 35);	

		cvar_register("sv_gold_mult", 0, "1.0");
		goldSlider = DefaultSlider();
		goldSlider.linkCvar("sv_gold_mult");
		goldSlider.setScaleEnd(10.0);
		goldSlider.setScaleStart(0.0);
		goldSlider.setWidth(self.settingsContainer.getWidth() - 15);
		self.settingsContainer.add(goldSlider, 0, div2.getY() + 25 );

		goldLabel = DefaultLabel("Gold multiplier");
		self.settingsContainer.add(goldLabel, 0, goldSlider.getY() + 13 );


		# mid container:

		self.listContainer = DefaultContainer();
		self.content.add(self.listContainer, self.columnWidth + 20, 0);
		self.listContainer.setSize(self.columnWidth, self.content.getHeight());
		#self.listContainer.setBackgroundColor(white);

		mapsTitle = DefaultLabel("Local Map List");
		self.listContainer.add(mapsTitle, "center", 10);

		self.mapList = glass.GlassListBox();	
		self.mapList.addSelectionListener(self);
		self.mapList.setBackgroundColor(transparency);
		self.mapList.setForegroundColor(glass.Color(211, 201, 168));
		#self.mapList.setSelectionColor()

		self.mapScroll = glass.GlassScrollArea(self.mapList);			
		self.mapScroll.setSize(self.listContainer.getWidth(), self.listContainer.getHeight() - 60);
		self.listContainer.add(self.mapScroll, 0, mapsTitle.getHeight() + 30);

		# right container:

		self.mapContainer = DefaultContainer();
		self.content.add(self.mapContainer, self.columnWidth * 2 + 30, 0);
		self.mapContainer.setSize(self.columnWidth, self.content.getHeight());
		#self.mapContainer.setBackgroundColor(white);

		self.overhead = glass.GlassLabel();
		#self.overhead.setImage("");
		self.overhead.setSize(self.mapContainer.getWidth(), self.mapContainer.getWidth());
		self.mapContainer.add(self.overhead, "center", self.mapScroll.getY());

		# todo: map stats and information

		comingSoon = DefaultLabel("Map stats and information \ncoming soon!");
		self.mapContainer.add(comingSoon, 0, self.overhead.getHeight() + 70);

		self.getLocalMaps();
Esempio n. 22
0
    def __init__(self):
        DefaultWindow.__init__(self)
        self.setFrameStyle("TrimmedEight")
        self.setBackgroundColor(glass.Color(24, 14, 14))

        self.setSize(int(screenWidth * .9), 458)
        self.loadingAction = None

        self.handler = DemoHandler(self)

        bgImage = DefaultImage()
        bgImage.setImage("bar_red_shadow.png")
        bgImage.setSize(self.getWidth(), 20)
        self.add(bgImage, 0, 40)

        header = DefaultContainer()
        header.setSize(self.getWidth(), 40)
        header.setBackgroundColor(glass.Color(85, 21, 11))
        header.setOpaque(True)
        self.add(header)

        title = DefaultImage()
        title.setImage("txt_options.png")
        header.add(title, "center", 10)

        self.list = glass.GlassListBox()
        self.list.addSelectionListener(self.handler)

        scroll = glass.GlassScrollArea()
        scroll.setContent(self.list)
        scroll.setScrollPolicy(glass.GlassScrollArea.SHOW_NEVER,
                               glass.GlassScrollArea.SHOW_ALWAYS)
        self.add(scroll)
        scroll.setPosition(10, 70)
        scroll.setSize(self.getWidth() // 3,
                       self.getHeight() - 100)

        self.match = DefaultLabel()
        self.match.setFont(fontSizeLarge)
        self.add(self.match,
                 self.getWidth() // 3 + 20, 70)

        #info container

        container = DefaultContainer()
        self.add(container,
                 self.getWidth() // 3 + 20,
                 self.match.getHeight() + 80)

        self.matchMap = DefaultLabel()
        self.matchMap.setSize(128, 128)
        container.add(self.matchMap, 0, 0)

        self.played = DefaultLabel()
        container.add(self.played, 128 + 10, 0)

        self.matchLength = DefaultLabel()
        container.add(self.matchLength, 128 + 10, self.played.getHeight())

        self.size = DefaultLabel()
        container.add(self.size, 128 + 10,
                      self.played.getHeight() + self.matchLength.getHeight())

        self.chat = DefaultTextBox()
        self.chat.setSize(2 * self.getWidth() // 3, 200)
        self.chat.setOpaque(False)
        scroll = glass.GlassScrollArea()
        scroll.setContent(self.chat)
        scroll.setSize(self.getWidth() // 3, 200)
        container.add(scroll, 0, 128 + 10)

        container.setSize(2 * self.getWidth() // 3 - 20, 400)

        #action container

        container = DefaultContainer()
        container.setSize(self.getWidth() // 3, self.getHeight())
        self.add(container,
                 self.getWidth() * 2 // 3 + 40,
                 self.match.getHeight() + 80)

        l = DefaultLabel("Quality")
        container.add(l)

        self.quality = DefaultDropDown()
        self.quality.linkCvar("ven_bitrate")
        self.quality.addOption("Low", "1347000")
        self.quality.addOption("Standard", "3500000")
        self.quality.addOption("High", "15500000")
        self.quality.addOption("HD", "25500000")
        container.add(self.quality, l.getWidth(), 0)

        l = DefaultLabel("Video")
        container.add(l, 0,
                      self.quality.getHeight() + 10)
        self.vencoder = DefaultDropDown()
        self.vencoder.linkCvar("ven_codec")
        self.vencoder.addOption("H.264", "libx264")
        self.vencoder.addOption("MPEG-4", "mpeg4")
        self.vencoder.addOption("WMP 8", "wmv2")
        container.add(self.vencoder, l.getWidth(),
                      self.quality.getHeight() + 10)

        self.convert = DefaultButton("<>")
        self.convert.addActionListener(self.handler)
        container.add(
            self.convert, 0,
            self.vencoder.getHeight() + self.quality.getHeight() + 20)

        self.play = DefaultButton(">")
        self.play.addActionListener(self.handler)
        container.add(
            self.play, 40,
            self.vencoder.getHeight() + self.quality.getHeight() + 20)
Esempio n. 23
0
    def __init__(self):
        DefaultWindow.__init__(self)

        self.setSize(1000, 700)
        self.setPosition(screenWidthPct(.5) - 500,
                         screenHeightPct(.5) - 350)
        self.setFrameStyle("TrimmedEight")
        self.setBackgroundColor(glass.Color(40, 20, 20))

        # todo: check how many teams the map/server supports!
        totalTeamList = [savage.Team(1), savage.Team(2)]

        self.teamContainerList = []

        self.currentTeam = 1
        #0,1,2,3,4 ...

        dotString = ""
        for team in totalTeamList:
            teamList = TeamList(team, "left", int(self.getWidth() * 0.45),
                                int(self.getHeight() * 0.7))
            self.add(teamList)
            teamList.setY(int(self.getHeight() * 0.0714))
            self.teamContainerList.append(teamList)
            dotString += " 0 "

        # TODO: Use images and a container!
        self.dots = DefaultLabel(dotString)
        self.add(self.dots,
                 self.getWidth() // 2 - self.dots.getWidth() // 2,
                 int(self.getHeight() * 0.73))

        self.switchTeams("left")

        # Spec button
        self.specButton = DefaultButton("Spectators")
        self.add(self.specButton,
                 self.getWidth() // 2 - self.specButton.getWidth() // 2, 10)
        self.specButton.addActionListener(self)

        # Spec Window:
        self.specWindow = DefaultWindow()
        self.specWindow.setBackgroundColor(glass.Color(70, 20, 20))
        self.add(self.specWindow)
        self.specWindow.setSizePct(0.15, 0.4)
        self.specWindow.setPosition(
            self.getWidth() // 2 - self.specWindow.getWidth() // 2,
            self.specButton.getY() + self.specButton.getHeight() + 10)
        self.specWindow.setVisible(False)

        joinSpec = DefaultButton("Enlist now")
        joinSpec.setWidth(self.specWindow.getWidth())
        joinSpec.setClickAction(
            "CL_RequestTeam(0);spechud.setMode('hud');setMouseMode(MOUSE_RECENTER)"
        )
        self.specWindow.add(
            joinSpec,
            self.specWindow.getWidth() // 2 - joinSpec.getWidth() // 2, 0)

        #F**k lists, they're buggy if you don't put them in their own container:

        specListContainer = DefaultContainer()
        specListContainer.setSize(
            self.specWindow.getWidth(),
            self.specWindow.getHeight() - joinSpec.getHeight() - 5)
        self.specWindow.add(specListContainer, 0,
                            joinSpec.getHeight() + 5)

        self.specList = DefaultTableList()
        self.specList.setSelectionColor(glass.Color(70, 40, 40, 180))
        specListContainer.add(self.specList)

        specScroll = glass.GlassScrollArea(self.specList)
        specScroll.setBackgroundColor(transparency)
        specScroll.setHorizontalScrollPolicy(glass.GlassScrollArea.SHOW_NEVER)
        specListContainer.add(specScroll, 0, 0)
        specScroll.setSize(specListContainer.getWidth(),
                           specListContainer.getHeight())

        # Move in/out animation?

        # Chatbox

        chatContainer = DefaultContainer()
        self.add(chatContainer)
        chatContainer.setPositionPct(0.25, 0.78)
        chatContainer.setSizePct(0.5, 0.2)
        chatContainer.setBackgroundColor(glass.Color(0, 0, 0, 128))

        self.chatBox = HUDChatBox()
        chatContainer.add(self.chatBox)
        self.chatBox.setSizePct(1, 1)
        self.chatBox.resize()
        self.chatBox.alwaysShowInput(True)
        self.chatBox.inputType.setVisible(False)
        self.chatBox.buffer.setVisible(False)
        self.chatBox.historyBuffer.parentScroll.setVisible(True)
        self.chatBox.historyBuffer.parentScroll.setAutoscroll(True)
        # TODO: Fix auto scroll

        # Leave button
        leave = DefaultButton("<< Menu")
        leave.setClickAction("GUI_ShowScreen('mainmenu')")
        self.add(leave)
        leave.setPositionPct(0.1, 0.9)

        # Play button, only shown if you're on a team
        self.play = DefaultButton("Play >>")
        self.play.addActionListener(self)
        self.add(self.play)
        self.play.setPosition(
            int(self.getWidth() * 0.9) - self.play.getWidth(),
            int(self.getHeight() * 0.9))
Esempio n. 24
0
battle.setClickAction("CL_RequestEndGame(-1)"); #or something
battle.setPosition( screenWidth - PADDING - battle.getWidth(), screenHeight - PADDING - battle.getHeight());
glass.GUI_ScreenAddWidget("endgame",battle);

#6.Awards

awardsTitle = glass.GlassLabel("Awards");
awardsTitle.setAlignment(glass.Graphics.CENTER);
awardsTitle.setFont(fontSizeLarge);
awardsTitle.adjustSize();
awardsTitle.setPosition(outcome.getX(), outcome.getY() + outcome.getHeight() + PADDING);
awardsTitle.setWidth(outcome.getWidth());
awardsTitle.setForegroundColor(gold);
glass.GUI_ScreenAddWidget("endgame", awardsTitle);

awardsScroll = glass.GlassScrollArea();
awardsScroll.setBackgroundColor(tangoGrey6);
awardsScroll.setPosition(awardsTitle.getX(), awardsTitle.getY() + awardsTitle.getHeight() + PADDING);
#awardsScroll.setSize(outcome.getWidth(), screenHeight - awardsScroll.getY() - 2*PADDING - buddies.toggle.getHeight());
awardsScroll.setSize(outcome.getWidth(), screenHeight - awardsScroll.getY() - 2*PADDING)
awardsScroll.setScrollPolicy(awardsScroll.SHOW_NEVER, awardsScroll.SHOW_ALWAYS);
glass.GUI_ScreenAddWidget("endgame",awardsScroll);

awards = glass.GlassContainer()
awards.setWidth(awardsScroll.getWidth() - awardsScroll.getScrollbarWidth());
awardsScroll.setContent(awards);


def rebuildAwards(data):
	"""data = {
		"^gBest Commander^w (%.1f rating)": "0;0;0",
Esempio n. 25
0
ammoGraphic = glass.GlassLabel();
ammoGraphic.setImage("/gui/standard/icons/comm_crown.s2g");
ammoGraphic.setSize( int( 0.60*slot.getHeight() ) , int( 0.60*slot.getHeight() ));
ammoGraphic.setPosition( inventory.getX() - 10 - ammoGraphic.getWidth() , screenHeight - ammoGraphic.getHeight()- 10);
ammoGraphic.setOpaque(1);
glass.GUI_ScreenAddWidget("hud", ammoGraphic);

ammoValue = glass.GlassLabel("999");
ammoValue.setForegroundColor( white );
ammoValue.setAlignment(2);
ammoValue.setPosition( ammoGraphic.getX() - 2 - ammoValue.getWidth(),  screenHeight - ammoValue.getHeight() - 10 );
glass.GUI_ScreenAddWidget("hud", ammoValue);

## NOTIFICATIONS ##
scroll = glass.GlassScrollArea();
scroll.setAutoscroll(1);
scroll.setSizePct(0.32,0.16);
scroll.setPosition(screenWidth-scroll.getWidth() - 10,10);
scroll.setPosition(screenWidth-360, 10);
scroll.setScrollPolicy(1,1); #SHOW_NEVER
glass.GUI_ScreenAddWidget("hud", scroll);

notifyBuffer = MessageBuffer(["notify"]); #TODO notify_generalhide too?
scroll.setContent(notifyBuffer);
notifyBuffer.setSize(scroll.getWidth(), scroll.getHeight());
notifyBuffer.setFadeTop(1);
notifyBuffer.setFadeBottom(0);
notifyBuffer.showTime(0);
for i in range(10):
	notifyBuffer.addRow(" ");
Esempio n. 26
0
        demos.list.adjustWidthTo(demos.listWidth)
        self.done = True

    def isDone(self):
        return self.done


bg = glass.GlassLabel()
bg.setOpaque(1)
bg.setBackgroundColor(black)
bg.setSize(screenWidth, screenHeight)
bg.setPosition(0, 0)
glass.GUI_ScreenAddWidget("demos", bg)

scroll = glass.GlassScrollArea()
scroll.setSizePct(xoffset - 2 * padding, 1.0 - 2 * padding)
scroll.setPositionPct(padding, padding)
scroll.setVerticalScrollPolicy(scroll.SHOW_ALWAYS)
glass.GUI_ScreenAddWidget("demos", scroll)

list = GlassListPlus()
list.autoAdjust = False
listWidth = scroll.getWidth() - scroll.getScrollbarWidth()
scroll.setContent(list)

name = glass.GlassLabel("demo_name_here")
name.setFont(fontSizeLarge)
name.setPositionPct(xoffset + padding, padding)
name.adjustSize()
glass.GUI_ScreenAddWidget("demos", name)