TF2-Hud-Reference icon indicating copy to clipboard operation
TF2-Hud-Reference copied to clipboard

Panel List

Open VillageGreenPreserver opened this issue 2 years ago • 1 comments

A massive list of pretty much every panel I could find in the sauce

VillageGreenPreserver avatar Dec 31 '23 02:12 VillageGreenPreserver

nice work! I started work on a similar list but never finished it, here's some of the data I had, I have no clue how accurate it is since its been so long since i've worked on it, so definitely double check everything i've done, but hopefully this helps! there is a LOT of notes btw, and sorry if the formatting is weird, its pretty much directly copy pasted from my notes but with a bit of cleanup to hopefully match some of your formatting.

panels marked with * are ones that are not currently in your documentation at all, the rest are additions to ones you already have
  • Panel:

    • IgnoreScheme: if 1, doesn't load values from the client scheme, probably completely useless for hud makers
    • usetitlesafe: Only is read on Xbox 360 versions of the game or with a cheat locked cvar, it just changes the positioning of hud elements to account for older tv screens cutting stuff off
  • *AnimatingImagePanel

    • derives from Panel
    • image: String
    • scaleimage: String
    • frames: Integer - how many frames of the animated texture to use
    • anim_framerate: Integer - for some reason its actually the frametime, so how many milliseconds between each frame. default is 100ms or 10fps
  • *BaseTooltip

    • derives from Panel, seemingly no way to edit.
  • *TextTooltip

    • derives from BaseTooltip, once again seemingly no way to edit
    • uses colors:
      • Tooltip.BgColor
      • Tooltip.TextColor
    • uses borders:
      • ToolTipBorder
    • uses fonts:
      • DefaultSmall
    • reads panels:
      • TextEntry panel named "tooltip"
  • CBitmapImagePanel

    • imagecolor: seems to require a predefined color in the client scheme, could be wrong
    • filtered: Boolean, filtering seems to mean texture filtering.
  • *CBorderVisualizerPanel - Unsure if editable by hud makers

    • derives from Panel
    • forced settings:
      • bgcolor: 255 0 0 255
  • *CColorVisualizerPanel - Unsure if editable by hud makers

    • derives from Panel
  • *CGrid - Appears to be unusable by hud makers, all hardcoded.

    • derives from Panel
  • *CInlineEditPanel - doesn't seem helpful for hud editors

    • derives from Panel
    • panel name: InlineEditPanel
    • uses borders:
      • DepresssedButtonBorder
  • *ClickPanel - not useful to hud editors? only does stuff via code?

  • *CMatchMakingHUDPopupContainer

    • derives from Panel
    • panel name: MMDashboardPopupContainer
    • forced settings:
      • proportional: true
      • width: f0
      • height: f0
      • mouseinputenabled: true
      • keyboardinputenabled: false
      • visible:false
    • panel tick:
      • ticks every 100ms
      • creates child panels CExpendablePanel
  • *CNetGraphPanel - Doesn't seem to have its own res file, unsure if it can be added manually

    • derives from Panel
    • panel name: CNetGraphPanel
    • uses fonts:
      • DefaultFixedOutline
      • DefaultVerySmall
    • uses materials:
      • vgui/white - Seems to be used for all of the line segments to make up the graph, they just needed a white texture so they could recolor it.
    • forced settings:
      • NOTES: all this stuff is set before ApplySchemeSettings? maybe overwritable?
      • width: f0
      • height: f0
      • x: 0
      • y: 0
      • visible: false
      • fgcolor: 0 0 0 255
      • paintbackground: false
  • *Divider - Not useful to hud maker, made by the game itself

    • derives from Panel
    • uses border:
      • ButtonDepressedBorder
  • *Dragger - "handles resizing of columns" no changes outside of code?

    • derives from Panel
  • *FileOpenStateMachine - For the file opening dialog? probably not useful to hud makers

    • derives from Panel
    • panel name: FileOpenStateMachine
  • *GraphPanel - info displayed is seemingly completely hardcoded

    • derives from Panel
    • uses colors:
      • GraphPanel.FgColor
      • GraphPanel.BgColor
    • uses borders:
      • ButtonDepressedBorder
  • *HTML

    • derives from Panel
    • reads panels:
      • HorizScrollBar{}: ScrollBar
      • VertScrollBar{}: ScrollBar
      • contextmenu{}: Menu
    • uses base settings
      • HTML.SearchInsetY: String
      • HTML.SearchInsetX: String
      • HTML.SearchTall: String
      • HTML.SearchWide: String
      • HTML.SearchAnimationTime: String
  • *PopupHTML - seems to be identical o HTML but sets the title of its parent?

    • derives from HTML
  • ImagePanel

    • These next 2 are just override colors like bgcolor_override.
    • fillcolor_override: String or RGBA
    • drawcolor_override: String or RGBA
    • border: String
    • positionImage: Boolean, unsure how it works, seems to control if you can move the image or not? true by default, probably not helpful
  • Label

    • associate: this is the name of a sibling panel. not sure what it does.
  • Button

    • default: if set seems to mark this as the default button to be activated when the player presses space or enter?
  • *ColumnButton

    • derives from Button
    • uses fonts:
      • DefaultSmall
    • forced settings:
      • textAlignment: west
  • *MenuButton - only changes in code?

    • derives from Button
  • *MenuItem

    • derives from Button
    • uses colors:
      • Menu.TextColor
      • Menu.ArmedTextColor
      • Menu.BgColor
      • Menu.ArmedBgColor
    • uses fonts:
      • Marlett
      • Default
    • uses base settings:
      • Menu.TextInset
  • ToggleButton

    • hardcoded to only accept mouse input and the enter key
  • CheckButton

    • forced settings:
      • paintbackground: false
  • *RadioButton

    • derived from button
    • SubTabPosition: Integer
    • TabPosition: Integer
    • uses colors:
      • CheckButton.BgColor
      • CheckButton.Border1
      • CheckButton.Border2
      • CheckButton.Check
      • RadioButton.TextColor
      • RadioButton.SelectedTextColor
      • RadioButton.ArmedTextColor
      • ControlText
    • uses fonts:
      • MarlettSmall
      • Marlett - if MarlettSmall doesn't exist
  • ComboBoxButton

    • you listed ComboBoxButton.BgColor 3 times, i almost made that mistake as well!
    • forced settings:
      • textAlignment: west
      • textinsetx: -3 on OSX (Mac), 3 on everything else
  • *CItemButton

    • derives from Button
    • uses colors:
      • SectionedListPanel.BrightTextColor
      • SectionedListPanel.SelectedTextColor
      • SectionedListPanel.OutOfFocusSelectedTextColor
      • SectionedListPanel.SelectedBgColor
      • SectionedListPanel.TextColor
      • SectionedListPanel.BgColor
      • SectionedListPanel.OutOfFocusSelectedBgColor
    • uses fonts:
      • SectionedListPanel.Font
  • *CaptionLabel

    • derives from Label
    • uses fonts:
      • MenuTitle
  • *ListViewItem

    • derives from Label
    • uses colors:
      • ListPanel.SelectedTextColor
      • ListPanel.SelectedBgColor
      • ListPanel.TextColor
      • ListPanel.BgColor
      • ListPanel.TextBgColor
      • ListPanel.SelectedOutOfFocusBgColor
  • *SectionedListPanelHeader

    • this is actually a separate panel from SectionedListPanel, although because it doesn't actually seem to read from hud files, I can see why you merged in its colors and fonts into SectionedListPanel
    • derives from Label
    • uses colors:
      • SectionedListPanel.HeaderTextColor
      • SectionedListPanel.DividerColor
      • SectionedListPanelHeader.BgColor
    • uses fonts:
      • DefaultVerySmall - only if header font from parent is invalid
  • *CControllerMap - controller binding stuff? the code is very confusing and i can't find an example of this used so this is probably all wrong

    • derives from Panel
    • button{}: xbox button name? likely all setup by code
      • name: String
      • command: String
      • text: String
      • icon: String
  • *CreateDirectoryDialog - prompt to create a directory

    • derives from Panel
    • reads panels:
      • OKButton{}: Button
      • NameEntry{}: TextEntry
  • *DirectorySelectDialog

    • derives from Panel
    • reads panels:
      • DirTree{}: DirectoryTreeView
      • DriveCombo{}: ComboBox
      • CancelButton{}: Button
      • SelectButton{}: Button
      • CreateButton{}: Button
    • uses materials:
      • Resource/icon_folder
      • Resource/icon_folder_selected
  • *HTMLInterior

    • derives from Panel
    • panel name: HTMLInterior
    • forced settings:
      • paintbackground: false
      • keyboardinputenabled: false
      • mouseinputenabled: false
  • *VControlsListPanel

    • derives from ListPanel
    • uses fonts:
      • DefaultVerySmall
  • *ListViewPanel - doesn't seem to be customizable

    • derives from Panel
    • uses colors:
      • ListPanel.BgColor
      • ListPanel.TextColor
      • ListPanel.SelectedTextColor
    • uses borders:
      • ButtonDepressedBorder
    • uses fonts:
      • Default
    • reads panels:
      • HorizScrollBar{}: ScrollBar
  • Menu

    • reads panels:
      • MenuScrollBar{}: ScrollBar
  • *CNonFocusableMenu - just sets the focus to whatever it was prior?

    • derives from Menu
  • *FileCompletionMenu - identical to menu but "doesn't request focus"

    • derives from Menu
  • *MenuBar - part of Menu? I think this panel is for things like the chapter select in portal or HL2, i think its also used for the commentary select in tf2?

    • derives from Panel
    • uses colors:
      • MenuBar.BgColor
    • uses borders:
      • ButtonBorder
  • ProgressBar

    • uses colors:
      • ProgressBar.FgColor
      • ProgressBar.BgColor
    • uses borders:
      • ButtonDepressedBorder
  • CircularProgressBar

    • uses colors:
      • CircularProgressBar.FgColor
      • CircularProgressBar.BgColor
  • *RichTextInterior - basically nothing, probably not even worth documenting since I think its only used internally.

    • derives from Panel
  • ScrollBar

    • reads panels:
      • (note: only if vertical)
      • Slider{}: ScrollBarSlider
      • UpButton{}: ScrollBarButton
      • DownButton{}: ScrollBarButton
  • Slider

    • uses colors:
      • Slider.NobColor
      • Slider.NobFocusColor - ONLY ON X360
      • Slider.TextColor
      • Slider.TrackColor
      • Slider.DisabledTextColor1
      • Slider.DisabledTextColor2
    • uses borders:
      • ButtonBorder
      • ButtonDepressedBorder
    • uses fonts:
      • DefaultVerySmall
  • *SplitterHandle

    • derives from Panel
    • uses borders:
      • ButtonDepressedBorder
  • TextEntry

    • disabledFgColor_override: String or RGBA
    • disabledBgColor_override: String or RGBA
    • selectionColor_override: String or RGBA
    • selectionTextColor_override: String or RGBA
    • disabledSelectionBG2Color_override: String or RGBA
  • *FileCompletionEdit - completely un-editable.

    • derives from TextEntry
  • *TabCatchingTextEntry - TextEntry that eats tab button inputs for autocomplete reasons

    • derives from TextEntry
    • forced settings:
      • unicode: true
    • other:
      • accepts enter and tab keys, enter accepts, and tab is forwarded to the parent, which uses it for autocomplete
  • *TileViewPanelEx - Used for the texture list panel? probably not useful at all to hud editors

    • derives from Panel
    • uses colors:
      • ListPanel.BgColor - Might be overridable via bgcolor_override
    • uses borders:
      • ButtonDepressedBorder
    • uses font:
      • Default
    • reads panels:
      • VerticalScrollBar{}: ScrollBar
  • *TreeView - not helpful or customizable outside of scheme, this is the vgui_drawtree menu

    • derives from Panel
    • uses colors:
      • TreeView.BgColor
      • WindowDisabledBgColor
    • uses borders:
      • ButtonDepressedBorder
    • uses fonts:
      • Default
    • reads panels:
      • HorizScrollBar{}: ScrollBar
      • VertScrollBar{}: Scrollbar
  • *DirectoryTreeView - used for file selection stuff? basically identical to TreeView

    • derives from TreeView
  • *Frame - baseline panel used by a lot of things

    • derives from EditablePanel
    • infocus_bgcolor_override: String or RGBA
    • outoffocus_bgcolor_override: String or RGBA
    • titlebarbgcolor_override: String or RGBA
    • titlebardisabledbgcolor_override: String or RGBA
    • titlebarfgcolor_override: String or RGBA
    • titlebardisabledfgcolor_override: String or RGBA
    • setclosebuttonvisible: True Boolean (aka, accepts the value "true" rather than "1"
    • settitlebarvisible: Boolean
    • title: String
    • title_font: String
    • clientinsetx_override: Integer
    • uses colors:
      • FrameTitleBar.TextColor
      • FrameTitleBar.BgColor
      • FrameTitleBar.DisabledTextColor
      • FrameTitleBar.DisabledBgColor
      • Frame.BgColor
      • Frame.OutOfFocusBgColor
    • uses borders:
      • FrameBorder
    • uses fonts:
      • Default - if title_font is not set
      • MarlettSmall - if small caption? only can be set by code i think
      • Marlett - if not small caption
    • uses base settings:
      • Frame.TransitionEffectTime
      • Frame.FocusTransitionEffectTime
      • Frame.ClientInsetX
      • Frame.ClientInsetY
      • Frame.TitleTextInsetX
    • reads panels:
      • frame_topGrip{}: GripPanel
      • frame_bottomGrip{}: GripPanel
      • frame_leftGrip{}: GripPanel
      • frame_rightGrip{}: GripPanel
      • frame_tlGrip{}: GripPanel
      • frame_trGrip{}: GripPanel
      • frame_blGrip{}: GripPanel
      • frame_brGrip{}: GripPanel
      • frame_caption{}: CaptionGripPanel
      • frame_minimize{}: FrameButton
      • frame_maximize{}: FrameButton
      • frame_mintosystray{}: FrameButton
      • frame_close{}: FrameButton
      • frame_menu{}: FrameSystemButton
  • *BaseInputDialog

    • derives from Frame
    • reads panels:
      • CancelButton{}: Button
      • OKButton{}: Button
  • *InputDialog

    • derives from BaseInputDialog
    • reads panels:
      • Prompt{}: Label
      • Text{}: TextEntry
  • *InputMessageBox - "used to asked yes/no questions of the user"

    • derives from BaseInputDialog
    • reads panels:
      • Prompt{}: Label
  • *CClassMenu - I have no clue, precursor to CTFClassMenu?

    • derives from Frame
  • *CConsoleDialog - not customizable at all.

    • derives from Frame
    • reads panels:
      • ConsolePage{}: CConsolePanel
  • *CKeyBindingHelpDialog

    • derives from Frame
    • panel name: KeyBindingHelpDialog
    • only usable from: resource/KeyBindingHelpDialog.res
    • reads panels:
      • KeyBindings{}: ListPanel
    • panel tick:
      • tick every frame, just checks if the help key is still being held, if not, hide this panel
  • *CKeyBoardEditorDialog

    • derives from Frame
    • panel name: KeyBoardEditorDialog
    • only usable from resource/KeyBoardEditorDialog.res
    • reads panels:
      • Save{}: Button
      • Cancel{}: Button
      • Revert{}: Button
      • Defaults{}: Button
  • *CMessageDialog

    • derives from Frame
    • panel name: MessageDialog
    • only usable from: resource/UI/MessageDialog.res
    • titlecolor: String or RGBA
    • messagecolor: String or RGBA
    • buttontextcolor: String or RGBA
    • footer_tall: Integer
    • button_margin: Integer
    • button_seperator: Integer
    • activity_indent: Integer
    • uses colors:
      • MessageDialog.MatchmakingBG
      • MessageDialog.MatchmakingBGBlack
    • uses fonts:
      • GameUIButtons
      • MenuLarge
    • reads panels:
      • TitleLable{}: Label
      • MessageLabel{}: Label
      • AnimatingPanel{}: AnimatingImagePanel
      • Background{}: ImagePanel
  • *CSaveDocumentQuery - "This dialog asks if you want to save your work"

    • derives from Frame
    • panel name: SaveDocumentQuery
    • only usable from: resource/ToolSaveDocumentQuery.res
    • reads panels:
      • FileNameLabel{}: Label
      • Yes{}: Button
      • No{}: Button
      • Cancel{}: Button
  • *FileOpenDialog

    • derives from Frame
    • uses materials:
      • resource/icon_folder
      • resource/icon_folderup
      • resource/icon_folder_selected
      • resource/icon_newfolder
      • resource/icon_play_once
      • resource/icon_file
    • reads panels:
      • FullPathEdit{}: ComboBox
      • FileTypeCombo{}: ComboBox
      • FileList{}: ListPanel
      • OpenButton{}: Button
      • CancelButton{}: Button
      • FolderUpButton{}: Button
      • NewFolderButton{}: Button
      • OpenInExplorerButton{}: Button
      • LookInLabel{}: Label
      • FileNameLabel{}: Label
      • FiletypeLabel{}: Label
      • FolderIcon{}: ImagePanel
  • *HTMLPopup

    • derives from Frame
    • panel name: HtmlPopup
    • reads panels:
      • htmlpopupchild{}: PopupHTML
  • *MessageBox - no customization?

    • derives from Frame
  • *QueryBox

    • derives from MessageBox
    • reads panels:
      • CancelButton{}: Button
  • *ProgressBox

    • derives from Frame
    • panel tick:
      • ticks once every second, just to update
  • *PropertyDialog

    • derives from Frame
    • reads panels:
      • Sheet{}: PropertySheet
      • OkButton{}: Button
      • CancelButton{}: Button
      • ApplyButton{}: Button
  • *CConsolePanel

    • derives from EditablePanel
    • uses colors:
      • Console.TextColor
      • Console.DevTextColor
      • 216 222 211 255 - m_PrintColor
      • 196 181 80 255 - m_DPrintColor
    • uses fonts:
      • ConsoleText
      • DefaultSmall
    • uses borders:
      • DepressedButtonBorder
    • reads panels:
      • ConsoleHistory{}: RichText
      • ConsoleSubmit{}: Button
      • CompletionList{}: CNonFocusableMenu
      • ConsoleEntry{}: TabCatchingTextEntry
  • *CheckButtonList - probably not super useful, i don't think it can be created by a hud maker

    • derives from EditablePanel
    • uses border:
      • ButtonDepressedBorder
  • *CHTMLFindBar

    • derives from EditablePanel
    • only usable from: resource/layout/htmlfindbar.layout
    • panel name: FindBar
    • reads panels:
      • FindEntry{}: TextEntry
      • FindCount{}: Label
  • *CKeyBoardEditorPage - nothing different outside of a few code things.

    • derives from EditablePanel
  • *CPluginMenu - Unsure, doesn't seem to be customizable, part of the ENGINE, not client or server.

    • derives from EditablePanel
    • panel name: PluginMenu
    • only usable from: Resource/UI/PluginMenu.res
  • *CColorOperationListPanel - color correction editor? probably doesn't need to ever be edited by a user but who knows

    • derives from EditablePanel
    • panel name: ColorOperationListPanel
    • only usable from: Resource/ColorOperationListPanel.res
    • reads panels:
      • NewOperation{}: Button
      • DeleteOperation{}: Button
      • BringForward{}: Button
      • PushBack{}: Button
      • Save{}: Button
      • Enable{}: CheckButton
      • EnableEntities{}: CheckButton
      • BlendFactorSlider{}: CPrecisionSlider
      • OperationList{}: COperationListPanel
    • uses textures:
      • Resource/icon_hlicon1
  • *CAbuseReportDlg - doesn't seem to be very customizable

    • derives from EditablePanel
    • panel name: AbuseReportSubmitDialog
  • *CBaseLoadoutPanel - not super helpful, mostly hardcoded stuff for the loadout and item panels?

    • derives from EditablePanel
    • modelpanels_kv: Keyvalues, seems to read from CItemModelPanel?
    • reads panels:
      • mouseoveritempanel{}: CItemModelPanel
      • CaratLabel{}: Label
      • ClassLabel{}: Label
  • *CClientScoreBoardDialog

    • derives from EditablePanel
    • panel name: scores
    • only usable from: Resource/UI/ScoreBoard.res
    • reads panels:
      • PlayerList{}: SectionedListPanel
  • *CSpectatorGUI - unsure if it can be edited at all.

    • derives from EditablePanel
    • panel name: specgui
    • reads panels:
      • topbar{}: Panel
      • bottombarblank{}: Panel
      • playerlable{}: Label
    • accepts keyvalues:
      • if_mvm
    • only usable from:
      • Resource/UI/Spectator.res
      • Resource/UI/Spectator_SC.res (if using steam controller)
  • *CAccountPanel - floating numbers for stuff like damage, getting metal, etc. also used as bases for some other panels

    • derives from EditablePanel
    • only usable from: resource/UI/HudAccountPanel.res
    • delta_item_start_y: Integer, default is 100
    • delta_item_end_y: Integer, default is 0
    • delta_item_x: Integer, default is 0
    • delta_item_end_x: Integer, default is 0
    • bg_image_x: Integer
    • bg_image_y: Integer
    • bg_image_wide: Integer
    • bg_image_tall: Integer
    • PositiveColor: RGBA
    • NegativeColor: RGBA
    • EventColor: RGBA
    • RedRobotScoreColor: RGBA
    • BlueRobotScoreColor: RGBA
    • delta_lifetime: Float, how long the floating numbers exist for
    • delta_item_font: String
    • delta_item_font_big: String, used for crits iirc
  • *CHudAccountPanel - used for engi, not editable?

    • derives from CAccountPanel
  • *CDamageAccountPanel - seems to essentially just be a frotnend for a very specific panel?

    • derives from CHudAccountPanel
    • only usable from: resource/UI/HudDamageAccount.res
  • *CHealthAccountPanel - used for damage numbers and stuff like crossbow heals, not editable?

    • derives from CAccountPanel
  • *CScoreAccountPanel - unsure if editing is possible

    • derives from CAccountPanel
    • only usable from: resource/US/HudScoreAccount.res
    • event: String
    • team: String, only accepts the word "red" though, any other value it considers to be for blue.
  • *CTFAnnotationsPanel - seems to basically be just a parent panel to be used in specific places

    • derives from EditablePanel

    • panel name: AnnotationsPanel

    • only usable from: resource/UI/AnnotationsPanelCallout.res

    • reads panels:

      • DistanceLabel{}: Label
      • CalloutLabel{}: CExLabel
      • ArrowIcon{}: ImagePanel
      • CalloutBG{}: accepts any controlname
  • *CTFAnnotationsPanelCallout - mostly the same as CTFAnnotationsPanel, not derived from it though?

    • derives from EditablePanel
    • panel name: AnnotationsPanel
    • only usable from: resource/UI/AnnotationsPanelCallout.res
    • ArrowIcons: Keyvalues (note, this is not the same as the similarly named panel "ArrowIcon"!
    • reads panels:
      • DistanceLabel{}: Label
      • CalloutLabel{}: CExLabel
      • ArrowIcon{}: ImagePanel
      • CalloutBG{}: accepts any controlname
  • *CTFArenaWinPanel

    • derives from EditablePanel
    • panel name: ArenaWinPanel
    • only usable from: resource/UI/HudArenaWinPanel.res
    • reads panels:
      • ArenaWinPanelScores{}: EditablePanel
      • ArenaWinPanelWinnersPanel{}: EditablePanel
      • ArenaWinPanelLosersPanel{}: EditablePanel
      • WinPanelBG{}: EditablePanel
      • NOTE: for these next ones, %d is a number, i.e. Player1Name, Player2Name, etc.
      • Player%dName{}: Label
      • Player%dClass{}: Label
      • Player%dDamage{}: Label
      • Player%dHealing{}: controlnane: Label
      • Player%dLifetime{}: Label
      • Player%dKills{}: Label
      • Player%dAvatar{}: Label
      • variables: %arenastreaktext%, %WinningTeamLabel%, %AdvancingTeamLabel%, %WinReasonLabel%, %DetailsLabel%, %TopPlayersLabel%, %LosingTeamLabel%, %blueteamname%, %redteamname%, %blueteamscore%, %redteamscore%
  • *CTFHudEscort - Payload UI

    • derives from EditablePanel
    • only usable from: resource/UI/ObjectiveStatusEscort.res
    • reads panels:
      • EscortItemPanel{}: EditablePanel
      • Speed_Backwards{}: ImagePanel
      • CapPlayerImage{}: ImagePanel
      • EscortItemImage{}: ImagePanel
      • EscortItemImageBottom{}: ImagePanel
      • EscortItemImageAlert{}: ImagePanel
      • Blocked{}: ImagePanel
      • HomeCPIcon{}: ImagePanel
      • SimpleControlPointTemplate{}: ImagePanel
      • LevelBar{}: ImagePanel
      • CapNumPlayers{}: CExLabel
      • ???{}: CEscortStatusTeardrop - doesn't have a name, potentially hardcoded?
      • EscortHilightSwoop{}: CControlPointIconSwoop - yes its spelled like that.
      • ProgressBar{}: CTFHudEscortProgressBar
      • hill_panel%d: CEscortHillPanel - hills as in rollback/rollforward zones
      • SimpleControlPointTemplate{}: CSimpleControlPoint - I have no clue how/why this shares a name with the image panel above, but it does. I assume that you aren't supposed to use CSimpleControlPoint and only use ImagePanel.
    • accepts keyvalues:
      • if_team_red
      • if_team_blue
      • if_multiple_trains
        • if_multiple_trains_red - These 4 are not children of if_multiple_trains, they just only get checked if if_multiple_trains is also true
        • if_multiple_trains_blue
        • if_multiple_trains_top
        • if_multiple_trains_bottom
      • if_single_with_hills
        • if_single_with_hills_red - same as above but with if_single_with_hills instead
        • if_single_with_hills_blue
    • uses textures:
      • hud/cart_track_blue
      • hud/cart_track_red
    • uses animations:
      • HudCartAlarmPulse
      • eventHudCartAlarmPulseStop
    • variables: %recede%, %numcappers%
    • notes: it appears that some elements of this panel and/or it's children have hardcoded locations and sizes depending on if minmode is enabled or not.
  • *CTFHudMultipleEscort - Payload Race UI

    • derives from EditablePanel
    • only usable from: resource/UI/ObjectiveStatusMultipleEscort.res
    • reads panels:
      • BlueEscortPanel{}: CTFHudEscort
      • RedEscortPanel{}: CTFHudEscort
    • accepts keyvalues:
      • if_blue_is_top
      • if_red_is_top
  • *CTFFlagStatus - CTF, MVM, and Special Delivery UI

    • derives from EditablePanel
    • only usable from: resource/UI/FlagStatus.res
    • reads panels:
      • Arrow{}: CTFArrowPanel
      • StatusIcon{}: CTFImagePanel
      • Briefcase{}: CTFImagePanel
    • accepts keyvalues:
      • if_mvm
    • uses textures:
      • ../hud/objectives_flagpanel_ico_flag_home
      • ../hud/bomb_dropped
      • ../hud/objectives_flagpanel_ico_flag_dropped
      • ../hud/objectives_flagpanel_ico_flag_moving
      • ../hud/bomb_carried
  • *CTFHudFlagObjectives - same gamemodes as CTFFlagStatus

    • derives from EditablePanel
    • only usable from: resource/UI/HudObjectiveFlagPanel.res
    • reads panels:
      • RedFlag{}: CTFFlagStatus
      • BlueFlag{}: CTFFlagStatus
      • CarriedImage{}: ImagePanel
      • SpecCarriedImage{}: ImagePanel
      • PoisonIcon{}: ImagePanel - used for Mannpower
      • PlayingTo{}: CExLabel
      • PoisonTimeLabel{}: CExLabel - used for Mannpower
      • CaptureFlag{}: CTFArrowPanel
      • OutlineImage{}: Panel
      • PlayingToBG{}: accepts any controlname
    • accepts keyvalues:
      • (if there are no flags)
        • if_no_flags
        • if_specialdelivery
      • (if there are flags)
        • if_hybrid - iirc used for maps like ctf_haarp?
        • if_hybrid_single - weridly named, used if only 1 flag or special delivery
        • if_hybrid_double - also weirdly named, used if there are 2 flags
        • if_mvm
        • if_specialdelivery - yes, this appears in both.
    • uses textures:
      • ../hud/objective_flagpanel_carried_blue
      • ../hud/objective_flagpanel_carried_red
    • uses animations:
      • FlagOutline
      • FlagOutlineHide
    • variables: %bluescore%, %redscore%, %rounds%
  • *CTFFreezePanel

    • derives from EditablePanel
    • panel name: FreezePanel
    • only usable from: resource/UI/FreezePanel_Basic.res
    • reads panels:
      • itempanel{}: CItemModelPanel
      • any panel name{}: CReplayReminderPanel
      • FreezePanelBase{}: EditablePanel
      • NemesisSubPanel{}: EditablePanel
      • ScreenshotPanel{}: EditablePanel
      • FreezeLabel{}: Label
      • FreezeLabelKiller{}: Label
      • ItemLabel{}: Label
      • FreezePanelBG{}: CTFImagePanel
      • FreezeTeamIcon{}: CTFImagePanel
      • FreezePanelHealth{}: CTFFreezePanelHealth
      • AvatarImage{}: CAvatarImagePanel
      • ???{}: CTFStatPanel - seems to be maybe hardcoded?
    • variables: %nemesisname%, %killername%, %ownername%, %objectkiller%, %nemesisadvice%
    • uses textures:
      • ../hud/color_panel_blu
      • ../hud/color_panel_red
  • *CTFFreezePanelCallout - used for stuff like marking your gibs in the freeze panel

    • derives from EditablePanel
    • only usable from: resource/UI/FreezePanelCallout.res
    • reads panels:
      • CalloutLabel{}: Label
      • CalloutBG{}: Panel
      • ArrowIcon{}: ImagePanel
  • *CItemAttributeProgressPanel

    • derives from EditablePanel
    • reads panels:
      • AttribBlue{}: Label
      • AttribGlow{}: Label
      • AttribDesc{}: Label
    • variables: %attr_desc%
    • enabled_text_color_override: String or RGBA
    • disabled_text_color_override: String or RGBA
    • normal_token: String
    • advanced_token: String
  • *CItemTrackerPanel

    • derives from EditablePanel
    • my notes here say that this has a fixed panel name and is only usable from a few specific res files but apparently I couldn't find them?
    • reads panels:
      • ItemName{}: Label
      • CompleteGlowText{}: Label
      • CompleteItemNameGlow{}: Label
      • CompletedContainer{}: EditablePanel
      • ProgressBarBG{}: EditablePanel
      • ProgressBarStandard{}: EditablePanel
      • ProgressBarBonus{}: EditablePanel
      • ProgressBarStandardHighlight{}: EditablePanel
      • ProgressBarBonusHighlight{}: EditablePanel
      • CompleteDesc{}: CExLabel
      • CompleteGlowText{}: CExLabel - not sure why this is defined as both a Label and CExLabel
    • variables:%itemname%, %points%
    • item_attribute_res_file: String
    • progress_bar_standard_loc_token: String
    • progress_bar_advanced_loc_token: String
    • standard_objective_tick_sound: String
    • standard_points_complete_sound: String
    • advanced_objective_sound_complete: String
    • advanced_points_complete_sound: String
  • *CCompetitiveAccessInfoPanel

    • derives from EditablePanel
    • only usable from:resource/ui/CompetitiveAccessInfo.res
    • reads panels:
      • PhoneButton{}: CExImageButton
      • PremiumButton{}: CExImageButton
      • PhoneCheckImage{}: ImagePanel
      • PremiumCheckImage{}: ImagePanel
  • *CMainMenuPlayListEntry

    • derives from EditablePanel
    • only usable from: resource/ui/MainMenuPlayListEntry.res
    • reads panels:
      • LockImage{}: CExImageButton
      • TooltipPanel{}: EditablePanel
      • ???{}: CTFTextToolTip - seems hardcoded?
      • ModelImage{}: ImagePanel
      • ModeButton{}: Button
      • ModeButton{}: Label - same name as the previous panel...
      • DescLabel{}: Label
      • DescLabelShadow{}: Label
    • image_name: String
    • button_command: String
    • button_token: String
    • desc_token: String
  • *CTFMedicCallerPanel

    • derives from EditablePanel
    • panel name: MedicCallerPanel - appears to be hardcoded in a weird way, every time someone calls for medic it creates ANOTHER panel with this name
    • only usable from: resource/UI/MedicCallerPanel.res
    • reads panels:
      • CallerAuto{}: Panel
      • CallerBG{}: Panel
      • CallerBurning{}: Panel
      • CallerBleeding{}: Panel
      • CallerHealth{}: Panel
      • CallerReviveEasy{}: Panel
      • CallerReviveMedium{}: Panel
      • CallerReviveHard{}: Panel
    • uses textures:
      • HUD/medic_arrow
  • *CEngyDestroyMenuItem - seems hardcoded?

    • derives from EditablePanel
  • *CTFHudPasstimePanel - base panel for other passtime panels, identical to EditablePanel but gets hidden when you take a screenshot during a freezecam?

    • derives from EditablePanel
  • *CTFHudTeamScore

    • derives from CTFHudPasstimePanel
    • panel name: HudTeamScore
    • only usable from: resource/UI/HudPasstimeTeamScore.res
    • reads panels:
      • PlayingToCluster{}: EditablePanel
    • variables: %rounds%, %bluescore%, %redscore%
  • *CTFHudPasstimePassNotify

    • derives from CTFHudPasstimePanel
    • panel name: HudPasstimePassNotify
    • only usable from: resource/UI/HudPasstimePassNotify.res
    • reads panels:
      • TextBox{}: EditablePanel
      • TextInPassRange{}: Label
      • TextLockedOn{}: Label
      • TextPassIncoming{}: Label
      • TextPlayerName{}: Label
      • SpeechIndicator{}: ImagePanel
      • PassLockIndicator{}: ImagePanel
    • uses borders:
      • TFFatLineBorder
      • TFFatLineBorderRedBG
      • TFFatLineBorderBlueBG
  • *CTFHudPasstimeBallStatus

    • derives from CTFHudPasstimePanel
    • panel name: HudPasstimeBallStatus
    • only usable from: resource/UI/HudPasstimeBallStatus.res
    • reads panels:
      • ???{}: CTFHudPasstimeEventText - generated by the game with no name when panel is initialized
      • BallPowerCluster{}: EditablePanel
      • ProgressBallIcon{}: ImagePanel
      • ProgressSelfPlayerIcon{}: ImagePanel
      • GoalRed%i{}: ImagePanel - %i is a number
      • GoalBlue%i{}: ImagePanel - ^
      • playericon%i{}: ImagePanel - ^
      • ProgressBallCarrierName{}: Label
      • EventTitleLabel{}: Label
      • EventDetailLabel{}: Label
      • EventBonusLabel{}: Label
      • ProgressLevelBar{}: Panel
      • BallPowerMeterFillContainer{}: Panel
      • BallPowerMeterFill{}: Panel
      • BallPowerMeterFrame{}: Panel
      • BallPowerMeterFinalSectionContainer{}: Panel
      • RedProgressEnd{}: accepts any controlname
      • BlueProgressEnd{}: accepts any controlname
    • uses textures:
      • ../passtime/hud/passtime_ballcontrol_team_red
      • ../passtime/hud/passtime_ballcontrol_team_blue
      • ../passtime/hud/passtime_ballcontrol_none
      • ../passtime/hud/passtime_ball
      • ../passtime/hud/portrait_%class%_red - I can't be assed to write out all 9 classes for both teams, so just replace %class% with whatever class name you want. only weird one is engi, who is "eng"
      • ../passtime/hud/portrait_%class%_blu
      • ../passtime/hud/passtime_goal_red_locked
      • ../passtime/hud/passtime_goal_blue_locked
      • ../passtime/hud/passtime_goal_red_unlocked
      • ../passtime/hud/passtime_goal_blue_unlocked
      • ../passtime/hud/passtime_endzone_red_icon
      • ../passtime/hud/passtime_endzone_blue_icon
      • ../passtime/hud/passtime_goal_red_icon
      • ../passtime/hud/passtime_goal_blue_icon
  • *CTFHudPasstime - appears to essentially be the parent of all the passtime panels

    • derives from CTFHudPasstimePanel
    • panel name: HudPasstime
    • only usable from: resource/UI/HudPasstime.res
    • reads panels:
      • note: none of these panels have specified names so i've just listed out the controlnames
      • CTFHudPasstimeBallStatus
      • CTFHudTeamScore
      • CTFHudPasstimeBallOFfscreenArrow
      • CTFHudPasstimePassNotify
      • CTFHudPasstimePlayerOffscreenArrow - creates one for every player supported by the game (i wonder if this means that passtime runs worse ever since the 100 player update)
  • *CTFHudPasstimeOffscreenArrow

    • derives from EditablePanel
    • only usable from: resource/UI/HudPasstimeOffscreenArrow.res
    • reads panels:
      • Image{}: ImagePanel
    • uses textures:
      • ../passtime/hud/passtime_ball_offscreen_red
      • ../passtime/hud/passtime_ball_offscreen_blue
      • ../passtime/hud/passtime_ball
      • HUD/medic_arrow
  • *CTFHudPasstimeBallOffscreenArrow

    • derives from CTFHudPasstimeOffscreenArrow
    • panel name: PasstimeBallOffscreenArrow - this is the only non-code difference from the panel it derives from
  • *CTFHudPasstimePlayerOffscreenArrow

    • derives from CTFHudPasstimeOffscreenArrow
    • uses textures:
      • ../passtime/hud/passtime_pass_to_me_prompt
  • *CTFHudPlayerClass

    • derives from EditablePanel
    • only usable from: resource/UI/HudPlayerClass.res
    • reads panels:
      • PlayerStatusClassImage{}: CTFClassImage
      • PlayerStatusClassImageBG{}: CTFImagePanel
      • PlayerStatusSpyImage{}: CTFImagePanel
      • PlayerStatusSpyOutlineImage{}: CTFImagePanel
      • classmodelpanelBG{}: CTFImagePanel
      • CarrinyBackground{}: CTFImagePanel
      • classmodelpanel{}: CTFPlayerModelPanel
      • CarryingWeapon{}: EditablePanel
      • CarryingLabel{}: CExLabel
      • OwnerLabel{}: Label
    • uses textures:
      • vgui/%s - %s is a class and team name, i.e. bluespy_cloak, redspy_halfcloak
      • vgui/%s_cloak
      • vgul/%s_halfcloak
      • hud/heath_color
      • hud/health_dead
    • uses animations:
      • HudSpyDisguiseHide
      • HudSpyDisguiseFadeIn
      • HudSpyDisguiseFadeOut
    • uses colors:
      • TanLight
    • variables: %carrying%
  • CTFHudPlayerHealth

    • reads panels:
      • PlayerStatusHealthImage{}: CTFHealthPanel
      • PlayerStatusHealthImageBG{}: ImagePanel
      • PlayerStatusHealthBonusImage{}: ImagePanel
      • BuildingStatusHealthImageBG{}: ImagePanel
      • PlayerStatusBleedImage{}: ImagePanel
      • PlayerStatusHookBleedImage{}: ImagePanel
      • PlayerStatusMarkedForDeathImage{}: ImagePanel
      • PlayerStatusMarkedForDeathSilentImage{}: ImagePanel
      • PlayerStatusMilkImage{}: ImagePanel
      • PlayerStatus_WheelOfDoom{}: ImagePanel
      • PlayerStatus_MedicUberBulletResistImage{}: ImagePanel
      • PlayerStatus_MedicUberBlastResistImage{}: ImagePanel
      • PlayerStatus_MedicUberFireResistImage{}: ImagePanel
      • PlayerStatus_MedicSmallBulletResistImage{}: ImagePanel
      • PlayerStatus_MedicSmallBlastResistImage{}: ImagePanel
      • PlayerStatus_MedicSmallFireResistImage{}: ImagePanel
      • PlayerStatus_SoldierOffenseBuff{}: ImagePanel
      • PlayerStatus_SoldierDefenseBuff{}: ImagePanel
      • PlayerStatus_SoldierHealOnHitBuff{}: ImagePanel
      • PlayerStatus_RuneStrength{}: ImagePanel
      • PlayerStatus_RuneHaste{}: ImagePanel
      • PlayerStatus_RuneRegen{}: ImagePanel
      • PlayerStatus_RuneResist{}: ImagePanel
      • PlayerStatus_RuneVamprie{}: ImagePanel
      • PlayerStatus_RuneReflect{}: ImagePanel
      • PlayerStatus_RunePrecision{}: ImagePanel
      • PlayerStatus_RuneAgility{}: ImagePanel
      • PlayerStatus_RuneKnockout{}: ImagePanel
      • PlayerStatus_RuneKing{}: ImagePanel
      • PlayerStatus_RunePlague{}: ImagePanel
      • PlayerStatus_RuneSupernova{}: ImagePanel
      • PlayerStatusParachute{}: ImagePanel
      • PlayerStatusPlayerLevel{}: CExLabel
    • uses textures:
      • ../HUD/defense_buff_%type%_%team% - %type% is vacc types; bullet, explosion, fire. %team% is your team
      • ../Effects/soldier_buff_%type%_%team% - %type% is soldier buffs; offense, defense, healonhit.
      • ../Effects/powerup_%type%_hud - %type% is mannpower buffs; strength, haste, regen, resist, vampire, reflect, precision, agility, knockout, king, plague, supernova
      • ../HUD/hud_parachute_active
      • ..\HUD\death_wheel_whammy
      • ..\HUD\death_wheel_%d - %d is wheel of doom effect type, as long as it's not whammy, no clue why they did it this way.
    • uses animations:
      • HudHealthDyingPulse
      • HudHealthDyingPulseStop
      • HudHealthBonusPulse
      • HudHealthBonusPulseStop
    • variables: %Health%
  • *CTFPVEWinPanel:

    • derives from EditablePanel
    • panel name: PVEWinPanel
    • only usable from: resource/UI/HudPVEWinPanel.res
    • reads panels:
      • RespecBackground{}: ScalableImagePanel
      • RespecContainer{}: EditablePanel
      • RespecTextLabelLost{}: Label
      • RespecCountLabel{}: Label
    • uses animations:
      • RespecEarnedPulseLoss
    • variables: %WinningTeamLabel%, %WinReasonLabel%, %DetailsLabel%, %respeccount%
  • *CTFHudRobotDestruction_RobotIndicator

    • derives from EditablePanel
    • only usable from: resource/UI/TFHudRobotDestruction_RobotIndicator.res
    • reads panels:
      • Swoop{}: CControlPointIconSwoop
      • RobotStateContainer{}: EditablePanel
      • DeadState{}: CTFHudRobotDestruction_DeadImage
      • ActiveState{}: CTFHudRobotDestruction_ActiveImage
      • ShieldedState{}: CTFHudRobotDestruction_StateImage
      • GlowImage{}: ImagePanel
    • variables: %time%
  • *CTFHudRobotDestruction

    • derives from EditablePanel
    • only usable in: resource/UI/HudObjectiveRobotDestruction.res - unless the map maker specifies a different file.
    • reads panels:
      • CarriedContainer{}: EditablePanel
      • ScoreContainer{}: EditablePanel
      • BlueStolenContainer{}: EditablePanel
      • DroppedIntelContainer{}: EditablePanel
      • RedStolenContainer{}: EditablePanel
      • BlueScoreValueContainer{}: EditablePanel
      • RedScoreValueContainer{}: EditablePanel
      • ProgressBarContainer{}: EditablePanel
      • BlueVictoryContainer{}: EditablePanel
      • RedVictoryContainer{}: EditablePanel
      • CountdownContainer{}: EditablePanel
      • CarriedImage{}: ImagePanel
      • CountdownImage{}: ImagePanel
      • CarriedProgressBar{}: CProgressPanel
      • BlueProgressBarFill{}: CProgressPanel
      • BlueProgressBarEscrow{}: CProgressPanel
      • RedProgressBarFill{}: CProgressPanel
      • RedProgressBarEscrow{}: CProgressPanel
      • %s_group_%d{}: CTFHudRobotDestruction_RobotIndicator - %s_group_%d, %s is team name, %d is which robot group it is.
      • TeamLeaderImage{}: CTFImagePanel
      • CountdownTime{}: CExLabel
      • CountdownTimeShadow{}: CExLabel
      • IntelImage{}: Panel
      • DroppedIntelContainer{}: Panel - yes this shows up twice.
    • uses animations:
      • FlagOutlineHide
      • RDPositiveScorePulse
      • RDNegativeScorePulse
    • variables: %score% (somehow different for each team even though its the same? unsure how it works), %red_escrow%, %blue_escrow%, %countdowntime%, %victorytime%, %rounds%, %intelvalue%, %flagvalue%
    • accepts keyvalues:
      • robot_kv
  • *CTFHudRobotDestruction_StateImage

    • derives from EditablePanel
    • panel name: ShieldedState
    • only usable in: resource/UI/tfhudrobotdestruction_shieldedstate.res
    • reads panels:
      • Image{}: ImagePanel
      • RobotImage{}: ImagePanel
      • GlowImage{}: ImagePanel
    • redimage: Material Path
    • blueimage: Material Path
  • *CTFHudRobotDestruction_DeadImage

    • derives from CTFHudRobotDestruction_StateImage
    • panel name: DeadState
    • only usable in: resource/UI/tfhudrobotdestruction_deadstate.res
    • reads panels:
      • RespawnProgressBar{}: CTFProgressBar
  • *CTFHudRobotDestruction_ActiveImage

    • derives from CTFHudRobotDestruction_StateImage
    • panel name: ActiveState
    • only usable in: resource/UI/tfhudrobotdestruction_activestate.res
  • *CTFStatPanel - seems to be mostly hardcoded, or at the very least not editable from the res file?

    • derives from EditablePanel
    • panel name: StatPanel
    • only usable in: resource/UI/StatPanel_Base
    • reads panels:
      • StatPanelClassImage{}: CTFClassImage
      • summaryLabel{}: Label
      • StatBox{}: Panel
    • uses colors:
      • TransparentLightBlack - maybe overridable via bgcolor_override?
    • variables: %title%, %stattextlarge%, %stattextsmall%, %statdesc%
  • *CFloatingHealthIcon

    • derives from EditablePanel
    • only usable from: resource/UI/HealthIconPanel.res
    • reads panels:
      • SpectatorGUIHealth{}: CTFSpectatorGUIHealth
  • *CTFHudTraining

    • derives from EditablePanel
    • only usable from: resource/UI/HudTraining.res
    • reads panels:
      • MsgLabel{}: CExRichText
      • PressSpacebarToContinue{}: CExLabel
    • uses animations:
      • TrainingHudBounce
      • TrainingPressSpacebarBlink
      • TrainingPressSpacebarBlinkStop
    • uses colors:
      • HudTrainingHint - depending on what part of the text it is, uses either fgcolor or this, also falls back to pure white if missing
    • variables: %goal%
  • *CTFTrainingComplete

    • derives from EditablePanel
    • panel name: TrainingComplete
    • only usable from: resource/UI/TrainingComplete.res
    • reads panels:
      • Results{}: EditablePanel
      • ResultsText{}: CExRichText
      • Replay{}: CExButton
      • Next{}: CExButton
      • Quit{}: CExButton
      • TopBar{}: ImagePanel
      • BottomBar{}: ImagePanel
    • variables: %wintext%
  • *CTFWaitingForPlayersPanel

    • derives from EditablePanel
    • panel name: WaitingForPlayersPanel
    • only usable from: resource/UI/WaitingForPlayersPanel.res
    • reads panels:
      • WaitingForPlayersLabel{}: Label
      • WaitingForPlayersEndingLabel{}: Label
  • *CTFWinPanel

    • derives from EditablePanel
    • panel name: WinPanel
    • only usable from: resource/UI/WinPanel.res
    • reads panels:
      • TeamScoresPanel{}: EditablePanel
      • RedLeaderAvatarBG{}: EditablePanel - not sure if the team leader stuff is functional in live TF2
      • BlueLeaderAvatarBG{}: EditablePanel - ^
      • WinPanelBGBorder{}: EditablePanel
      • BlueScoreBG{}: EditablePanel
      • RedScoreBG{}: EditablePanel
      • RedTeamLabel{}: CExLabel
      • BlueTeamLabel{}: CExLabel
      • RedLeaderAvatar{}: CAvatarImagePanel - see team leader note above.
      • BlueLeaderAvatar{}: CAvatarImagePanel - ^
      • Player%dAvatar: CAvatarImagePanel - (%d is player number)
      • Player%dBadge{}: CTFBadgePanel - ^
      • Player%dName{}: Label - ^
      • Player%dScore{}: Label - ^
      • KillStreakPlayer%dName: Label - ^
      • KillStreakPlayer%dClass: Label - ^
      • KillStreakPlayer%dScore: Label - ^
      • KillStreakPlayer%dAvatar: Label - ^
      • KillStreakPlayer%dBadge: Label - ^
    • uses borders: (note, the code for CTFWinPanel also changes the borders of BlueScoreBG and RedScoreBG to these values, even though they are not CTFWinPanels)
      • TFFatLineBorderBlueBGMoreOpaque
      • TFFatLineBorderBlueBG
      • TFFatLineBorderRedBGMoreOpaque
      • TFFatLineBorderRedBG
    • variables: %WinningTeamLabel%, %AdvancingTeamLabel%, %WinReasonLabel%, %DetailsLabel%, %TopPlayersLabel%, %blueteamname%, %redteamname%, %blueteamscore%, %redteamscore%
  • *CTFHudTimeStatus

    • derives from EditablePanel
    • only usable in: resource/UI/HudObjectiveTimePanel.res
    • reads panels:
      • TimePanelValue{}: CExLabel
      • OvertimeLabel{}: CExLabel
      • SuddenDeathLabel{}: CExLabel
      • WaitingForPlayersLabel{}: CExLabel
      • SetupLabel{}: CExLabel
      • ServerTimeLimitLabel: CExLabel
      • TimePanelBG{}: ScalableImagePanel
      • TimePanelProgressBar{}: CTFProgressBar
      • OvertimeBG{}: accepts any controlname
      • SuddenDeathBG{}: accepts any controlname
      • SetupBG{}: accepts any controlname
      • ServerTimeLimitLabelBG{}: accepts any controlname
    • uses textures:
      • ../hud/objectives_timepanel_red_bg
      • ../hud/objectives_timepanel_blue_bg
    • uses animations:
      • SuddenDeathLabelPulseRed
      • OvertimeLabelPulseRed
    • accepts keyvalues:
      • if_match
    • variables: %servertimeleft%
  • PanelListPanel - there are 2 code files for this panel, so its a bit confusing how it works.

    • reads panels:
      • PanelListPanelVScroll{}: ScrollBar
      • PanelListEmbedded{}: EditablePanel
  • *CReplayListPanel - replay menu?

    • derives from PanelListPanel
    • only usable from:resource/UI/replaybrowser/replaylistpanel.res
    • reads panels:
      • PaneListPanelVScroll{}: ScrollBar - already defined, but here buttons are forcibly made invisible, width forcably made 5 units
      • ArrowImage{}: ImagePanel - image forcably set to replay/replay_balloon_arrow_left or replay/replay_balloon_arrow_right based on what side its on, zpos forcibly set to 1000
      • ReplayThumbnailCollection{}: CReplayThumbnailCollection
      • MovieThumbnailCollection{}: CMovieThumbnailCollection
    • uses colors:
      • Yellow
      • TanDark
    • uses sound:
      • replay\replaypreviewpopup.wav
  • *PropertyPage - unfinished? lots of empty functions and the only changes are forwarding left and right keys to parent and a visibility change.

    • derives from EditablePanel
  • *PropertySheet

    • derives from EditablePanel
    • tabskv: keyvalue? its weird, it seems like it just deletes any keyvalues here and puts it onto tabkv instead
    • tabkv: keyvalue? unsure how it works
    • tabwidth: Integer
    • TransitionTime: Float
    • uses borders:
      • PropertySheetBorder
      • Default
      • RaisedBorder
    • uses fonts:
      • DefaultVerySmall - if small tabs enabled (only possible in code?)
      • Default - if small tabs disabled
    • uses base settings:
      • PropertySheet.TransitionEffectTime
  • *CKeyBoardEditorSheet

    • derives from PropertySheet
    • panel name: KeyBoardEditorSheet
    • only usable from: resource/KeyBoardEditorSheet.res
    • other:
      • small tabs enabled
  • ScrollableEditablePanel

    • reads panels:
      • VerticalScrollBar{}: Scrollbar
    • note: if you have a child panel called "Scrollbar" it will apply its settings to the VerticalScrollBar it creates instead
  • *Splitter

    • derives from EditablePanel
    • splitter%d: Integer, %d is a number, so splitter1, splitter2, etc. this is the position ef each splitter.
  • *SplitterChildPanel - basically just a thing in code for the splitter, not sure if it can be created on from a res file.

    • derives from EditablePanel

treacherousfiend avatar Mar 18 '24 01:03 treacherousfiend