Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if ( CLIENT_DLL )
- {
- CVGUITest <-
- {
- //local surface = surface
- m_panel = null
- m_panel2 = null
- m_pCloseButton = null
- m_pClipper = null
- m_pTitle = null
- label = null
- myPanel = null
- m_pEmbedded = null
- m_SortedPanels = null
- //m_bTopFade = false
- m_vert = 0
- m_vertCur = 0
- m_flScrollStart = 0.0
- m_bDragging = false
- m_nDragX = 0
- m_nDragY = 0
- m_bTopFade = false
- m_bBottomFade = false
- m_bDisplayID = false
- }
- function CVGUITest::DisplayPanels()
- {
- if ( m_panel && m_panel.IsValid() )
- return;
- //создаем рут панель
- m_panel = vgui.CreatePanel( "Panel", vgui.GetClientDLLRootPanel(), "ExamplePanel" );
- m_panel.MakePopup()
- m_panel.MakeReadyForUse();
- m_panel.SetPaintEnabled( true );
- m_panel.SetPaintBackgroundEnabled( true );
- m_panel.SetPaintBackgroundType( 2 );
- m_panel.SetBgColor( 118, 118, 118, 200 );
- m_panel.SetPos( XRES(32), YRES(64) );
- m_panel.SetSize( ScreenWidth() - XRES(256), YRES(256) );
- m_panel.SetCallback( "PerformLayout", PerformLayout.bindenv(this));
- //m_panel.SetTitle( "Testing Derma Stuff" )
- //Кнопка закрытия
- m_pCloseButton = vgui.CreatePanel( "Button", m_panel, "CloseButton" );
- m_pCloseButton.MakeReadyForUse()
- m_pCloseButton.SetTextInset( 1, -1 );
- m_pCloseButton.SetContentAlignment( Alignment.north );
- m_pCloseButton.SetPaintBackgroundEnabled( true );
- m_pCloseButton.SetPaintEnabled( true );
- m_pCloseButton.SetPaintBorderEnabled( true );
- m_pCloseButton.SetBgColor( 255, 220, 0, 255);
- m_pCloseButton.SetCursor( CursorCode.dc_hand );
- m_pCloseButton.SetText( "close" ); // "#Overlay_Taskbar_Close"
- m_pCloseButton.SetFont( surface.GetFont( "DefaultVerySmall", true, "Verdana" ) );
- m_pCloseButton.SetFgColor( 255, 220, 0, 255);
- m_pCloseButton.SetSize( 82, 30 );
- m_pCloseButton.SetPos( m_panel.GetWide() - 150, m_panel.GetTall() -40);
- m_pCloseButton.SetZPos(2)
- m_pCloseButton.SetCallback( "DoClick", HidePanels.bindenv(this));
- m_pCloseButton.SetCallback("Paint", ButtonPaint.bindenv(this));
- //Заголовок, хочу его другим цветом
- m_pTitle = vgui.CreatePanel( "Label", m_panel, "title" );
- m_pTitle.SetVisible( true );
- m_pTitle.SetPaintEnabled( true );
- m_pTitle.SetPaintBackgroundEnabled( false );
- m_pTitle.SetFgColor( 120, 10, 2, 255 );
- m_pTitle.SetFont( surface.GetFont( "DefaultSmall", false, "Tracker" ) );
- m_pTitle.SetText( "Achievements" );
- //m_pTitle.SetCallback( "PerformLayout", PerformLayout);
- //создаем картинку
- local image = vgui.CreatePanel( "AvatarImage", m_panel, "ExampleImage" );
- image.MakeReadyForUse();
- image.SetPaintEnabled( true );
- image.SetSize( YRES(32), YRES(32) );
- image.SetPos( XRES(8), (m_panel.GetTall() - image.GetTall()) - 200 );
- image.SetShouldScaleImage( true );
- //image.SetImage( "vgui/achievements/hl2_find_alllambdas", true );
- image.SetPlayerByIndex( 1, 0 );
- image.SetDefaultAvatar( "vgui/achievements/hl2_find_alllambdas" );
- //лейбл с текстом
- label = vgui.CreatePanel( "Label", m_panel, "ExampleLabel" );
- label.MakeReadyForUse();
- label.SetPaintEnabled( true );
- label.SetPaintBackgroundEnabled( false );
- label.SetFgColor( 200, 200, 200, 255 );
- label.SetPos( image.GetXPos() + image.GetWide(), 0 );
- label.SetSize( m_panel.GetWide() - label.GetXPos(), m_panel.GetTall() );
- label.SetContentAlignment( Alignment.center );
- label.SetFont( surface.GetFont( "MenuLarge", true, "Helvetica Bold"));
- label.SetText( "Etiam ullamcorper arcu eu mauris molestie, a mollis ex maximus." );
- //myPanel = vgui.CreatePanel("SectionedListPanel" m_panel,"mylist" );
- //Какая-то хуйня от сэма, типа списка
- m_pClipper = vgui.CreatePanel( "Panel", m_panel, "listview" );
- m_pClipper.SetVisible( true );
- m_pClipper.SetPaintEnabled( false );
- m_pClipper.SetPaintBackgroundEnabled( false );
- m_pClipper.SetPostChildPaintEnabled( true );
- m_pClipper.SetMouseInputEnabled( false );
- m_pClipper.SetCallback( "PostChildPaint", PaintListBoundsFade.bindenv(this) );
- //m_pEmbedded = vgui.CreatePanel( "Panel", m_pClipper, "panellist" );
- //m_pEmbedded.SetVisible( true );
- //m_pEmbedded.SetPaintEnabled( false );
- //m_pEmbedded.SetPaintBackgroundEnabled( false );
- //m_pEmbedded.AddTickSignal( 0 );
- //m_pEmbedded.SetCallback( "OnMouseWheeled", OnMouseWheeled.bindenv(this) );
- //m_pEmbedded.SetCallback( "OnKeyCodeTyped", OnKeyCodeTyped.bindenv(this) );
- //m_pEmbedded.SetCallback( "OnTick", SmoothScroll.bindenv(this) );
- if ( m_SortedPanels )
- {
- foreach( panel in m_SortedPanels )
- if ( panel.m_base.IsValid() )
- panel.m_base.Destroy();
- m_SortedPanels.clear();
- }
- else
- {
- m_SortedPanels = [];
- }
- if ( SteamAchievements.m_Achievements.len() )
- {
- foreach ( achName, ach in SteamAchievements.m_Achievements )
- {
- // TODO: Display non-achievement stats differently
- if ( 0 in ach.m_rgchName )
- m_SortedPanels.append( CAchievementPanel( m_pEmbedded, ach ) );
- }
- }
- else
- {
- m_pLabel = vgui.CreatePanel( "Label", m_pClipper, "" );
- m_pLabel.SetVisible( true );
- m_pLabel.SetPaintEnabled( true );
- m_pLabel.SetPaintBackgroundEnabled( false );
- m_pLabel.SetFont( surface.GetFont( "DefaultSmall", false, "Tracker" ) );
- m_pLabel.SetText( "empty..." );
- m_pLabel.SetContentAlignment( Alignment.center );
- }
- function CVGUITest::PaintListBoundsFade()
- {
- if ( m_bTopFade )
- {
- surface.SetColor( 0x1e, 0x1e, 0x1e, 0xff );
- surface.DrawFilledRectFade( 0, 0, m_pClipper.GetWide(), 16, 0xff, 0x00, false );
- }
- if ( m_bBottomFade )
- {
- surface.SetColor( 0x1e, 0x1e, 0x1e, 0xff );
- surface.DrawFilledRectFade( 0, m_pClipper.GetTall() - 16, m_pClipper.GetWide(), 16, 0x00, 0xff, false );
- }
- }
- }
- function CVGUITest::PerformLayout()
- {
- print("Performing layout\n")
- if ( label && label.IsValid() )
- {
- // Вот это вот всё работает
- m_panel.SetPaintBackgroundType( 2 );
- m_panel.SetBgColor( 118, 118, 118, 200 );
- //m_pClipper.SetFgColor (255, 255, 255, 255);
- m_pTitle.SetFgColor( 1120, 10, 2, 255 )
- }
- }
- function CVGUITest::ButtonPaint()
- {
- //print("Calling Paint callback\n")
- // Ширина и высота панели
- local wide = m_pCloseButton.GetWide()
- local tall = m_pCloseButton.GetTall()
- // Отрисовка фона
- surface.SetColor(255,255, 0, 255)
- surface.DrawFilledRect(0,0, wide, tall)
- // Отрисовка текста
- surface.SetTextColor(255,0,0,255) // Цвет
- surface.SetTextPos(wide - 60, tall - 25) // Позиция
- surface.SetTextFont(surface.GetFont( "DefaultVerySmall", true, "Verdana" ) ) // Шрифт
- surface.DrawText("Close", 1)
- }
- function CVGUITest::HidePanels()
- {
- print("Calling Hide Panels")
- if ( m_panel && m_panel.IsValid() )
- {
- m_panel.Destroy();
- m_panel = null;
- }
- }
- function DisplayPanels()
- {
- CVGUITest.DisplayPanels()
- }
- surface.CreateFont( "examplefont",
- {
- name = "Comic Sans MS",
- tall = 14,
- weight = 100,
- antialias = true,
- proportional = true
- } );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement