Advertisement
Camblu

Untitled

Jul 7th, 2024
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.10 KB | None | 0 0
  1.  
  2. if ( CLIENT_DLL )
  3. {
  4.  
  5. CVGUITest <-
  6. {
  7. //local surface = surface
  8. m_panel = null
  9. m_panel2 = null
  10. m_pCloseButton = null
  11. m_pClipper = null
  12. m_pTitle = null
  13. label = null
  14. myPanel = null
  15. m_pEmbedded = null
  16. m_SortedPanels = null
  17. //m_bTopFade = false
  18. m_vert = 0
  19. m_vertCur = 0
  20. m_flScrollStart = 0.0
  21. m_bDragging = false
  22. m_nDragX = 0
  23. m_nDragY = 0
  24. m_bTopFade = false
  25. m_bBottomFade = false
  26. m_bDisplayID = false
  27. }
  28.  
  29. function CVGUITest::DisplayPanels()
  30. {
  31. if ( m_panel && m_panel.IsValid() )
  32. return;
  33. //создаем рут панель
  34. m_panel = vgui.CreatePanel( "Panel", vgui.GetClientDLLRootPanel(), "ExamplePanel" );
  35. m_panel.MakePopup()
  36. m_panel.MakeReadyForUse();
  37. m_panel.SetPaintEnabled( true );
  38. m_panel.SetPaintBackgroundEnabled( true );
  39. m_panel.SetPaintBackgroundType( 2 );
  40. m_panel.SetBgColor( 118, 118, 118, 200 );
  41. m_panel.SetPos( XRES(32), YRES(64) );
  42. m_panel.SetSize( ScreenWidth() - XRES(256), YRES(256) );
  43. m_panel.SetCallback( "PerformLayout", PerformLayout.bindenv(this));
  44. //m_panel.SetTitle( "Testing Derma Stuff" )
  45. //Кнопка закрытия
  46. m_pCloseButton = vgui.CreatePanel( "Button", m_panel, "CloseButton" );
  47. m_pCloseButton.MakeReadyForUse()
  48. m_pCloseButton.SetTextInset( 1, -1 );
  49. m_pCloseButton.SetContentAlignment( Alignment.north );
  50. m_pCloseButton.SetPaintBackgroundEnabled( true );
  51. m_pCloseButton.SetPaintEnabled( true );
  52. m_pCloseButton.SetPaintBorderEnabled( true );
  53. m_pCloseButton.SetBgColor( 255, 220, 0, 255);
  54.  
  55. m_pCloseButton.SetCursor( CursorCode.dc_hand );
  56. m_pCloseButton.SetText( "close" ); // "#Overlay_Taskbar_Close"
  57. m_pCloseButton.SetFont( surface.GetFont( "DefaultVerySmall", true, "Verdana" ) );
  58. m_pCloseButton.SetFgColor( 255, 220, 0, 255);
  59. m_pCloseButton.SetSize( 82, 30 );
  60. m_pCloseButton.SetPos( m_panel.GetWide() - 150, m_panel.GetTall() -40);
  61. m_pCloseButton.SetZPos(2)
  62. m_pCloseButton.SetCallback( "DoClick", HidePanels.bindenv(this));
  63. m_pCloseButton.SetCallback("Paint", ButtonPaint.bindenv(this));
  64.  
  65. //Заголовок, хочу его другим цветом
  66. m_pTitle = vgui.CreatePanel( "Label", m_panel, "title" );
  67. m_pTitle.SetVisible( true );
  68. m_pTitle.SetPaintEnabled( true );
  69. m_pTitle.SetPaintBackgroundEnabled( false );
  70. m_pTitle.SetFgColor( 120, 10, 2, 255 );
  71. m_pTitle.SetFont( surface.GetFont( "DefaultSmall", false, "Tracker" ) );
  72. m_pTitle.SetText( "Achievements" );
  73. //m_pTitle.SetCallback( "PerformLayout", PerformLayout);
  74. //создаем картинку
  75. local image = vgui.CreatePanel( "AvatarImage", m_panel, "ExampleImage" );
  76. image.MakeReadyForUse();
  77. image.SetPaintEnabled( true );
  78. image.SetSize( YRES(32), YRES(32) );
  79. image.SetPos( XRES(8), (m_panel.GetTall() - image.GetTall()) - 200 );
  80. image.SetShouldScaleImage( true );
  81. //image.SetImage( "vgui/achievements/hl2_find_alllambdas", true );
  82. image.SetPlayerByIndex( 1, 0 );
  83. image.SetDefaultAvatar( "vgui/achievements/hl2_find_alllambdas" );
  84. //лейбл с текстом
  85. label = vgui.CreatePanel( "Label", m_panel, "ExampleLabel" );
  86. label.MakeReadyForUse();
  87. label.SetPaintEnabled( true );
  88. label.SetPaintBackgroundEnabled( false );
  89. label.SetFgColor( 200, 200, 200, 255 );
  90. label.SetPos( image.GetXPos() + image.GetWide(), 0 );
  91. label.SetSize( m_panel.GetWide() - label.GetXPos(), m_panel.GetTall() );
  92. label.SetContentAlignment( Alignment.center );
  93. label.SetFont( surface.GetFont( "MenuLarge", true, "Helvetica Bold"));
  94. label.SetText( "Etiam ullamcorper arcu eu mauris molestie, a mollis ex maximus." );
  95.  
  96.  
  97. //myPanel = vgui.CreatePanel("SectionedListPanel" m_panel,"mylist" );
  98.  
  99.  
  100. //Какая-то хуйня от сэма, типа списка
  101. m_pClipper = vgui.CreatePanel( "Panel", m_panel, "listview" );
  102. m_pClipper.SetVisible( true );
  103. m_pClipper.SetPaintEnabled( false );
  104. m_pClipper.SetPaintBackgroundEnabled( false );
  105. m_pClipper.SetPostChildPaintEnabled( true );
  106. m_pClipper.SetMouseInputEnabled( false );
  107. m_pClipper.SetCallback( "PostChildPaint", PaintListBoundsFade.bindenv(this) );
  108.  
  109. //m_pEmbedded = vgui.CreatePanel( "Panel", m_pClipper, "panellist" );
  110. //m_pEmbedded.SetVisible( true );
  111. //m_pEmbedded.SetPaintEnabled( false );
  112. //m_pEmbedded.SetPaintBackgroundEnabled( false );
  113. //m_pEmbedded.AddTickSignal( 0 );
  114. //m_pEmbedded.SetCallback( "OnMouseWheeled", OnMouseWheeled.bindenv(this) );
  115. //m_pEmbedded.SetCallback( "OnKeyCodeTyped", OnKeyCodeTyped.bindenv(this) );
  116. //m_pEmbedded.SetCallback( "OnTick", SmoothScroll.bindenv(this) );
  117.  
  118. if ( m_SortedPanels )
  119. {
  120. foreach( panel in m_SortedPanels )
  121. if ( panel.m_base.IsValid() )
  122. panel.m_base.Destroy();
  123. m_SortedPanels.clear();
  124. }
  125. else
  126. {
  127. m_SortedPanels = [];
  128. }
  129.  
  130. if ( SteamAchievements.m_Achievements.len() )
  131. {
  132. foreach ( achName, ach in SteamAchievements.m_Achievements )
  133. {
  134. // TODO: Display non-achievement stats differently
  135. if ( 0 in ach.m_rgchName )
  136. m_SortedPanels.append( CAchievementPanel( m_pEmbedded, ach ) );
  137. }
  138. }
  139. else
  140. {
  141. m_pLabel = vgui.CreatePanel( "Label", m_pClipper, "" );
  142. m_pLabel.SetVisible( true );
  143. m_pLabel.SetPaintEnabled( true );
  144. m_pLabel.SetPaintBackgroundEnabled( false );
  145. m_pLabel.SetFont( surface.GetFont( "DefaultSmall", false, "Tracker" ) );
  146. m_pLabel.SetText( "empty..." );
  147. m_pLabel.SetContentAlignment( Alignment.center );
  148. }
  149. function CVGUITest::PaintListBoundsFade()
  150. {
  151. if ( m_bTopFade )
  152. {
  153. surface.SetColor( 0x1e, 0x1e, 0x1e, 0xff );
  154. surface.DrawFilledRectFade( 0, 0, m_pClipper.GetWide(), 16, 0xff, 0x00, false );
  155. }
  156.  
  157. if ( m_bBottomFade )
  158. {
  159. surface.SetColor( 0x1e, 0x1e, 0x1e, 0xff );
  160. surface.DrawFilledRectFade( 0, m_pClipper.GetTall() - 16, m_pClipper.GetWide(), 16, 0x00, 0xff, false );
  161. }
  162. }
  163. }
  164.  
  165. function CVGUITest::PerformLayout()
  166. {
  167. print("Performing layout\n")
  168. if ( label && label.IsValid() )
  169. {
  170.  
  171. // Вот это вот всё работает
  172. m_panel.SetPaintBackgroundType( 2 );
  173. m_panel.SetBgColor( 118, 118, 118, 200 );
  174. //m_pClipper.SetFgColor (255, 255, 255, 255);
  175. m_pTitle.SetFgColor( 1120, 10, 2, 255 )
  176.  
  177. }
  178. }
  179.  
  180. function CVGUITest::ButtonPaint()
  181. {
  182. //print("Calling Paint callback\n")
  183.  
  184. // Ширина и высота панели
  185. local wide = m_pCloseButton.GetWide()
  186. local tall = m_pCloseButton.GetTall()
  187.  
  188. // Отрисовка фона
  189. surface.SetColor(255,255, 0, 255)
  190. surface.DrawFilledRect(0,0, wide, tall)
  191.  
  192. // Отрисовка текста
  193. surface.SetTextColor(255,0,0,255) // Цвет
  194. surface.SetTextPos(wide - 60, tall - 25) // Позиция
  195. surface.SetTextFont(surface.GetFont( "DefaultVerySmall", true, "Verdana" ) ) // Шрифт
  196.  
  197. surface.DrawText("Close", 1)
  198.  
  199.  
  200. }
  201.  
  202.  
  203. function CVGUITest::HidePanels()
  204. {
  205. print("Calling Hide Panels")
  206.  
  207. if ( m_panel && m_panel.IsValid() )
  208. {
  209. m_panel.Destroy();
  210. m_panel = null;
  211. }
  212. }
  213.  
  214.  
  215. function DisplayPanels()
  216. {
  217. CVGUITest.DisplayPanels()
  218. }
  219.  
  220.  
  221. surface.CreateFont( "examplefont",
  222. {
  223. name = "Comic Sans MS",
  224. tall = 14,
  225. weight = 100,
  226. antialias = true,
  227. proportional = true
  228. } );
  229.  
  230.  
  231.  
  232. }
  233.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement