def __init__(self): DefaultWindow.__init__(self); self.action = None; self.key = None; self.profiles = []; self.setSizePct(.3,.3); self.setBackgroundColor(glass.Color(0,0,0,128)) self.info = DefaultTextBox(); self.info.setForegroundColor(glass.Color(238, 238, 238)); self.info.setOpaque(False); self.info.setFocusable(False); self.info.setText("To choose a new bind key press a key or click on the current bind key label"); self.info.setWidth(screenWidthPct(.25)); self.add(self.info, "center", "top"); self.cancel = glass.ImageButton("", "/gui/main/images/canceltr.s2g"); self.cancel.setSize(32,32) self.add(self.cancel, "left", "bottom"); self.cancel.addActionListener(self); self.ok = glass.ImageButton("", "/gui/main/images/yestr.s2g"); self.ok.setSize(32,32) self.add(self.ok, "right", "bottom"); self.ok.addActionListener(self); self.clear = DefaultButton("Clear"); self.add(self.clear, "center", "bottom"); self.clear.addActionListener(self); c = DefaultContainer(); c.setSize(100,100); c.setFrameSize(1); self.add(c, "center", "center"); self.keyLabel = DefaultLabel("Not Set"); c.add(self.keyLabel, "center", "center"); self.canvas = glass.GlassCanvas(); self.canvas.setBackgroundColor(glass.Color(0, 0, 0, 0)); self.canvas.setVisible(False); self.canvas.setOpaque(True); self.canvas.invisTextField = DefaultTextField(); self.canvas.invisTextField.setVisible(False); c.add(self.canvas.invisTextField); c.add(self.canvas); self.canvas.setSizePct(1, 1); self.canvas.addMouseListener(self); self.canvas.addKeyListener(self); self.canvas.invisTextField.addKeyListener(self); # TODO: add button to set to default self.setVisible(False);
def update(self): gobjs = savage.getActiveObjects(); myteam = savage.getLocalPlayer().getTeam(); self.buttons.erase(); for go in gobjs: if go.isSpawnPoint() and ((cvar_getvalue("sv_allowWarmupAllSpawnLocs") == 1 and savage.getGameStatus()<=GAME_STATUS_WARMUP) or go.getTeam() == myteam): pos = go.getPosition(); #create a button with the appropriate color and image button = glass.ImageButton(); #and place it in the correct position button.setImage(go.getMapIcon()); button.setSize(screenWidthPct(0.025),screenWidthPct(0.025)); if go.getTeam() == myteam: button.setForegroundColor(white); if go.isComplete() == False: button.setForegroundColor(glass.Color(0,255,0)); else: button.setClickAction("CL_RequestSpawn("+str(go.objectId)+")"); else: if cvar_getvalue("sv_allowWarmupAllSpawnLocs") == 1 and savage.getGameStatus()<=GAME_STATUS_WARMUP: button.setClickAction("CL_RequestSpawn("+str(go.objectId)+")"); else: button.setForegroundColor(glass.Color(255,0,0)); scale = float(World_GetGridSize()*100.0); button.setX(int( self.minimap.getWidth()* pos[0]/scale - button.getWidth()/2 )); button.setY(int( self.minimap.getHeight()*(1-pos[1]/scale) - button.getHeight()/2 )); self.buttons.add(button);
def newRow(self, name="", icon=None, online=False): #icon for clan icons (#TODO) delete = glass.ImageButton() delete.setImage("/gui/standard/icons/minus.s2g") delete.setClickAction("gblBuddyManager.removeBuddy(" + name + ");") if icon == None: icon = "^icon transparent^" #else, determine the ^icon string for the user's clan icon label = glass.GlassLabel(icon + name) label.setX(delete.getX() + delete.getWidth() + self.PADDING) label.setWidth(self.listbox.getWidth() - label.getX()) label.setForegroundColor(tangoGrey3 if not online else white) container = glass.GlassContainer() container.add(label) container.add(delete) container.setWidth(self.listbox.getWidth()) h = max(label.getHeight(), delete.getHeight()) container.setHeight(h) label.setY((h - label.getHeight()) // 2) delete.setY((h - delete.getHeight()) // 2) self.listbox.addWidgetItem(container)
def rebuildUnits(): player = savage.getLocalPlayer(); team = savage.getTeamObject(player.getTeam()); loadout.unitContainer.erase(); viewers = []; unitNames = []; unitPrices = []; unitList = team.getUnits(); for unit in unitList: price = str( unit.getValue("playerCost") ); if price == "0": price = "FREE"; if price == "-1": continue; modelContainer = glass.GlassContainer(); #Store the button and the viewer in a container modelContainer.setSizePct( 0.075, 0.15 ); viewer = glass.GlassViewer(); viewer.setModel(unit.getValue("model")); viewer.setOpaque(0); modelContainer.add( viewer, 0, 0 ); viewer.rotateModel(160); viewer.setCameraFOV(45); viewer.setSizePct(1,1); viewer.setAnimation("idle"); viewer.fitCameraToModel(2); #viewer.setCameraPosition(0,0,16); #viewer.setCameraDistance(40); button = glass.ImageButton("textures/econs/transparent.s2g"); #Create clickable, invisible button over the viewer. button.setClickAction( "CL_RequestUnit('" + str(unit.getValue('name')) + "');" ); modelContainer.add( button ); button.setSizePct(1,1); button.setPosition(0,0); viewers.append( modelContainer ); price = glass.GlassLabel("^icon ../../gui/standard/icons/gold/gold_icon^" + price); price.setForegroundColor( gold ); price.setFont(fontSizeSmall); unitPrices.append(price); name = glass.GlassLabel(unit.getValue("description")); unitNames.append(name); loadout.unitContainer.addRow(*viewers); loadout.unitContainer.addRow(*unitNames); loadout.unitContainer.addRow(*unitPrices); loadout.unitContainer.adjustHeightTo(int(0.2*loadout.main.getHeight())); loadout.unitContainer.setX( int( 0.69*loadout.main.getWidth() - loadout.unitContainer.getWidth()/2) ); loadout.unitContainer.adjustJustification();
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)
def __init__(self, item, action=None): self.item = item self.action = action glass.GlassContainer.__init__(self) self.setSize(int(self.ICON_SIZE * 1.5 + 2 * self.PADDING), int(self.ICON_SIZE * 1.5 + 2 * self.PADDING)) self.setOpaque(False) self.name = glass.GlassLabel(item.getType().getValue("description")) self.name.setPosition(self.PADDING, self.PADDING) self.name.setWidth(self.ICON_SIZE) self.name.setAlignment(glass.Graphics.CENTER) #self.add(self.name); lineh = self.name.getHeight() self.icon = glass.GlassLabel() self.icon.setImage(item.getType().getValue("icon") + ".s2g") self.icon.setX(self.PADDING) self.icon.setY(self.PADDING) #self.icon.setY(self.name.getY() + self.name.getHeight() + self.VERTICAL_PADDING ); self.icon.setSize(self.ICON_SIZE, self.ICON_SIZE) self.add(self.icon) self.close = glass.ImageButton("close", "/gui/standard/cancel.s2g") self.close.setSize(self.STATUS_ICON_SIZE, self.STATUS_ICON_SIZE) #need to be able to handle what happens when that gets clicked somehow self.close.setX(self.icon.getX() + self.icon.getWidth() - self.close.getWidth() // 2) self.close.setY(self.icon.getY()) self.add(self.close) self.close.addActionListener(self) self.bar = glass.GlassProgressBar() self.bar.setX(self.icon.getX() + self.BAR_PADDING) self.bar.setY(self.icon.getY() + self.icon.getHeight() + self.VERTICAL_PADDING + self.BAR_PADDING) self.bar.setWidth(self.ICON_SIZE - 2 * self.BAR_PADDING) self.bar.setHeight(8) self.add(self.bar) self.barText = glass.GlassLabel("") self.barText.setX(self.bar.getX() + self.BAR_PADDING) self.barText.setY(self.bar.getY() + self.BAR_PADDING) self.barText.setWidth(self.bar.getWidth() - 2 * self.BAR_PADDING) self.barText.setHeight(self.bar.getHeight() - 2 * self.BAR_PADDING) self.status_icon = glass.GlassLabel("") self.status_icon.setImage("/textures/econs/transparent.s2g") self.status_icon.setSize(self.STATUS_ICON_SIZE, self.STATUS_ICON_SIZE) self.status_icon.setPosition(self.close.getX(), self.close.getY() + self.ICON_SIZE) self.add(self.status_icon)
def __init__(self): DefaultContainer.__init__(self) self.setOpaque(False) self.setVisible(True) self.setBackgroundColor(transparency) self.team = None self.lastWorkers = [] goldImg = glass.GlassLabel() goldImg.setImage("gui/game/images/gold_icon.s2g") goldImg.setSize(24, 24) # A bit smaller than the redstone one self.add(goldImg, 0, 0) self.goldLbl = DefaultLabel("00000") self.goldLbl.setForegroundColor(gold) self.add(self.goldLbl, goldImg.getWidth() + 2, 0) self.redstoneImg = glass.GlassLabel() self.redstoneImg.setImage("gui/game/images/redstone.s2g") self.redstoneImg.setSize(32, 32) # Image size self.add(self.redstoneImg, self.goldLbl.getX() + self.goldLbl.getWidth() + 5) self.redstoneLbl = DefaultLabel("00000") self.redstoneLbl.setForegroundColor(tangoRedLight) self.add(self.redstoneLbl, self.redstoneImg.getWidth() + self.redstoneImg.getX() + 2, 4) self.workerImg = glass.ImageButton() self.workerImg.setId("idle") self.workerImg.setImage("gui/game/images/human_worker.s2g") self.workerImg.setSize(24, 24) # Image size self.add(self.workerImg, self.redstoneLbl.getX() + self.redstoneLbl.getWidth() + 5) self.workerImg.addActionListener(self) self.workerLbl = DefaultLabel("00/00") self.workerLbl.setForegroundColor(gold) self.add(self.workerLbl, self.workerImg.getWidth() + self.workerImg.getX() + 2, 0) self.fit() # let's see if that works! #testing stuff: self.setWidth(self.getWidth() + 10) self.onShow()
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())
def __init__(self, t): DefaultContainer.__init__(self); import loadout; self.objtype = savage.getObjectType(t); self.setSize(int(screenHeight*0.0625), int(screenHeight*0.09375)); self.viewer = glass.GlassViewer(); self.viewer.setModel(self.objtype.getValue("model")); self.viewer.setOpaque(False); self.viewer.setSize(self.getWidth(), self.getWidth()); self.add( self.viewer, 0, 0 ); self.viewer.rotateModel(160); self.viewer.setCameraPosition(-3,-1,12); self.viewer.setCameraTarget(-3,0,12); self.viewer.setCameraFOV(22.5); self.viewer.setAnimation("idle"); self.request = DefaultImageButton(); self.request.setImage("request.s2g"); self.request.setSize(self.getWidth(), self.getWidth()); self.request.setVisible(False); self.add(self.request); button = glass.ImageButton("textures/econs/transparent.s2g"); #Create clickable, invisible button over the viewer. button.addActionListener(self); button.setClickAction( "CL_RequestUnit('" + t + "');" ); self.add( button ); button.setSizePct(1,1); name = DefaultLabel(self.objtype.getValue("description")); name.setFont(fontSizeSmall); self.price = DefaultLabel(); p = str(self.objtype.getValue("playerCost")); if p == "0": p = "FREE"; else: p = p + "^w^icon ../../gui/standard/icons/gold/gold_icon^"; self.price.setCaption("^l" + p); self.price.setFont(fontSizeSmall); self.add(self.price, "center", int(screenHeight*0.0625));
def rebuildWeapons(): techColumns = loadout.techColumns; loadout.weaponContainer.erase(); player = savage.getLocalPlayer(); team = savage.getTeamObject(player.getTeam()); currentInventory = []; for j in range(5): currentInventory.append(player.getInventorySlot(j)); ##WEAPONS ycol = [10,10,10,10]; col=0; for weapon in team.getWeapons(): if weapon.getValue("playerCost") < 0: continue; for i in range(len(techColumns)): if weapon.getTechType() == techColumns[i]: col = i; break; if weapon not in currentInventory: name = weapon.getValue("name") button = glass.ImageButton(); button.setImage(weapon.getValue("icon")+".s2g"); button.setSize(loadout.ICON_SIZE, loadout.ICON_SIZE); button.setClickAction(""" CL_RequestGiveback(0); CL_RequestGiveback(1); CL_RequestGive('"""+name+"""') """); loadout.weaponContainer.add(button, 10+(loadout.ICON_SIZE+8)*col, ycol[col]); price = str(weapon.getValue("playerCost")); if price == "0": price = "FREE"; price = glass.GlassLabel("^icon ../../gui/standard/icons/gold/gold_icon^" + price); price.setAlignment(glass.Graphics.CENTER); price.setFont(fontSizeSmall); price.setForegroundColor( gold ); price.adjustSize(); price.setWidth( button.getWidth() ); price.setPosition( button.getX(), button.getY() + button.getHeight() + 2 ) loadout.weaponContainer.add(price) ycol[col] = price.getY() + price.getHeight() + 2;
def rebuildItems(): techColumns = loadout.techColumns loadout.itemContainer.erase(); player = savage.getLocalPlayer(); team = savage.getTeamObject(player.getTeam()); currentInventory = []; for j in range(5): currentInventory.append(player.getInventorySlot(j)); ycol = [10,10,10,10]; #FIXME: more or less columns based on techColumns? col=0; for item in team.getItems(): if item.getValue("playerCost") < 0: continue; for i in range(len(techColumns)): if item.getTechType() == techColumns[i]: col = i; break; name = item.getValue("name"); button = glass.ImageButton(); button.setImage(item.getValue("icon")+".s2g"); button.setSize(loadout.ICON_SIZE,loadout.ICON_SIZE) button.setPosition(10+(loadout.ICON_SIZE+8)*col, ycol[col]); button.setClickAction(""" CL_RequestGive('"""+name+"""') """); price = str(item.getValue("playerCost")); if price == "0": price = "FREE"; price = glass.GlassLabel("^icon ../../gui/standard/icons/gold/gold_icon^" + price); price.setAlignment(glass.Graphics.CENTER); price.setFont(fontSizeSmall); price.setForegroundColor( gold ); price.adjustSize(); price.setWidth( button.getWidth() ); price.setPosition( button.getX(), button.getY() + button.getHeight() + 2 ) if item not in currentInventory or player.getInventorySlotAmmo(currentInventory.index(item)) < item.getValue("ammoMax"): loadout.itemContainer.add(button); loadout.itemContainer.add(price) ycol[col] = price.getY() + price.getHeight() + 2;
def __init__(self, slot): DefaultContainer.__init__(self); self.setSize(screenWidthPct(0.0625), screenWidthPct(0.0625)); self.setBackgroundColor(glass.Color(0,0,0,128)); self.slot = slot; self.image = DefaultImageButton(); self.add(self.image); self.image.setSizePct(1,1); self.ammo = DefaultLabel(); self.ammo.setForegroundColor(tangoGreen); self.add(self.ammo); button = glass.ImageButton("textures/econs/transparent.s2g"); self.add( button ); button.setSizePct(1,1); button.addActionListener(self);
def __init__(self, t): DefaultContainer.__init__(self); import loadout; self.objtype = savage.getObjectType(t); self.setSize(int(screenHeight*0.0625), int(screenHeight*0.09375)); #self.image = glass.GlassProgressDisc(); self.image = DefaultImage(); self.image.setImage("../../../"+ self.objtype.getValue("icon")+".s2g"); self.image.setSize(int(screenHeight*0.0625), int(screenHeight*0.0625)); self.add(self.image); self.request = DefaultImageButton(); self.request.setImage("request.s2g"); self.request.setSize(int(screenHeight*0.0625), int(screenHeight*0.0625)); self.request.setVisible(False); self.add(self.request); self.maxDeployment = DefaultLabel(); self.maxDeployment.setCaption("00"); self.maxDeployment.setForegroundColor(tangoGreen); self.add(self.maxDeployment,"right", "top"); self.price = DefaultLabel(); p = str(self.objtype.getValue("playerCost")); if p == "0": p = "FREE"; else: p = p + "^w^icon ../../gui/standard/icons/gold/gold_icon^"; self.price.setCaption("^l" + p); self.price.setFont(fontSizeSmall); self.add(self.price, "center", int(screenHeight*0.0625)); button = glass.ImageButton("textures/econs/transparent.s2g"); self.add( button ); button.setSizePct(1,1); button.addActionListener(self);
def rebuild(self): self.table.clear() #1. create lists of object types # each list represents a column # use None to represent a blank space items = self.teamObj.getResearchableItems() weapons = self.teamObj.getResearchableWeapons() units = self.teamObj.getResearchableUnits() #nomad/scav can't be researched units.insert(0, None) medic = units.pop(3) #medic gets its own row mt = [ go for go in weapons[0] if go.getValue("requirement1") == medic.getName() ] #hunting bow needs a place holder if self.teamObj.getRace() == "human": weapons[0].insert(0, None) medictech1 = mt[0] medictech2 = None #medictech2 = mt[1]; seige1 = units.pop(3) #seige gets its own row units.append(None) seige2 = units.pop(3) units.append(None) medicrow = [None, medic, None, medictech1, medictech2] seigerow = [None, seige1, seige2, None, None] rows = [] #2.add the header row to the table if self.teamObj.getRace() == "human": self.table.addRow(*self.header_human) elif self.teamObj.getRace() == "beast": self.table.addRow(*self.header_beast) for i in range(3): row = [ weapons[0][i], weapons[1][i], weapons[2][i], weapons[3][i], units[i], seigerow[i], medicrow[i] ] rows.append(row) for i in range(2): row = [ items[0][i], items[1][i], items[2][i], items[3][i], units[i + 3], seigerow[i + 3], medicrow[i + 3] ] rows.append(row) self.table.rows[0].setBackgroundColor(tangoGrey2) #3. fill in the rest of the table for i, row in enumerate(rows): for j, obj in enumerate(row): #i. convert the object types to widgets if obj == None: widget = glass.GlassLabel("") else: name = obj.getName() widget = glass.ImageButton(name, obj.getValue("icon") + ".s2g") widget.setClickAction("commhud.ResearchSimple('" + name + "');") widget.setSize(self.ICON_SIZE, self.ICON_SIZE) row[j] = widget #ii. add in the level labels row = [self.levels[i]] + row #iii. then add the rows self.table.addRow(*row) self.table.adjustSize() self.table.adjustJustification() self.setSize(self.table.getWidth() + self.PADDING * 3, self.table.getHeight() + 2 + self.PADDING * 3) self.setX(commhud.quickbar.getX() + commhud.research.getX() + (commhud.research.getWidth() - self.getWidth()) // 2) self.setY(commhud.quickbar.getY() + commhud.research.getY() - self.getHeight() - self.PADDING)
ammo = glass.GlassLabel("999"); inventoryContainer.add(ammo); ammo.setPosition( slot.getX() , slot.getY() + slot.getHeight() - ammo.getHeight() ); ammo.setWidth( slot.getWidth() - 2 ); ammo.setAlignment( glass.Graphics.RIGHT ); inventoryAmmos.append(ammo); name = glass.GlassLabel("Placeholder Name"); inventoryContainer.add(name); name.setWidth( slot.getWidth() ); name.setPosition( slot.getX(), slot.getY() + slot.getHeight() ); name.setAlignment( glass.Graphics.CENTER ); inventoryNames.append(name); button = glass.ImageButton("textures/econs/transparent.s2g"); inventoryContainer.add(button); button.setSize( slot.getWidth(), slot.getHeight()); button.setPosition( slot.getX(), slot.getY()); button.setClickAction("CL_RequestGiveback("+str(i)+")"); back = glass.GlassButton("Back to Lobby") back.setClickAction("CL_RequestLobby()") main.add(back) back.setPositionPct(.1,.92) spawn = glass.GlassButton("Spawn") spawn.setId("spawnbutton"); spawn.setClickAction("CL_RequestSpawn(-1)") main.add(spawn)
def build(self): self.clearList() self.team = savage.getLocalTeam() self.players = [] self.playerDict = dict() i = 0 for player in self.team.getPlayers(): if player.isCommander(): continue self.players.append(player) i += 1 unit = glass.GlassLabel() unit.setImage(player.getIcon()) unit.setSize(24, 24) name = DefaultLabel(player.getFormattedName()) #name.setForegroundColor( white ); #name.setAlignment(2); level = DefaultLabel(str(player.getLevel())) level.setForegroundColor(tangoBlue) #level.setAlignment(2); #level.setFont(fontSizeLarge); kda = DefaultLabel("^g" + str(player.getKills()) + "^w/^r" + str(player.getDeaths()) + "^w/^l" + str(player.getAssists())) #kda.setAlignment(2); #kda.setFont(fontSizeLarge); #kda.adjustSize(); request = glass.ImageButton() #request.setSize(24,24); request.setImage("/gui/main/images/yestr.s2g") request.setSize(24, 24) officer = glass.ImageButton() #officer.setSize(24,24); if player.isOfficer(): officer.setImage("gui/game/images/demote_" + self.team.getRace() + ".s2g") officer.setClickAction("CL_RequestDemote(" + str(player.objectId) + ")") else: officer.setImage("gui/game/images/promote_" + self.team.getRace() + ".s2g") officer.setClickAction("CL_RequestPromote(" + str(player.objectId) + ")") officer.setSize(24, 24) goldLabel = DefaultLabel(str(player.getGold())) goldLabel.setForegroundColor(themeGold) #goldLabel.setAlignment(1); gold = glass.ImageButton() #gold.setSize(24,24); gold.setImage("/gui/standard/icons/gold/nl_coins14.s2g") gold.setClickAction("CL_RequestGiveGold(" + str(player.objectId) + ", 100)") gold.setSize(24, 24) row = self.list.nextRow(unit, name, level, kda, request, officer, goldLabel, gold) self.playerDict[ player. objectId] = row #Store the rows and players in a dict to trace back the widgets #self.list.adjustSize(); #self.setSize(self.list.getWidth() +10, 250); #self.list.adjustJustification(); #self.setSize(self.list.getWidth() +10, 250); #self.scroll.setSize(self.getWidth(), self.getHeight()); self.list.useColumnDividers() self.headingRow.setAlternate(False) self.list.adjustWidthTo(self.scroll.getWidth() - 10)