DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
BookMenu.c
См. документацию.
1class BookMenu extends UIScriptedMenu
2{
4 protected TextWidget m_title;
5 protected TextWidget m_page;
6 protected HtmlWidget m_content;
7 protected float m_page_height;
8 protected float m_content_total_height;
9 protected float m_content_pos;
10
11 override Widget Init()
12 {
13 layoutRoot = GetGame().GetWorkspace().CreateWidgets("gui/layouts/day_z_book.layout");
14 Class.CastTo(m_content, layoutRoot.FindAnyWidget("HtmlWidget"));
15 Class.CastTo(m_author, layoutRoot.FindAnyWidget("Author"));
16 Class.CastTo(m_title, layoutRoot.FindAnyWidget("Title"));
17 Class.CastTo(m_page, layoutRoot.FindAnyWidget("Page"));
18
19 float width;
20 m_content.GetScreenSize(width, m_page_height);
21 return layoutRoot;
22 }
23
25 {
26 m_content.LoadFile( book.ConfigGetString("file") );
27 m_author.SetText( book.ConfigGetString("author") );
28 m_title.SetText( book.ConfigGetString("title") );
29 m_content_total_height = m_content.GetContentHeight();
30 m_content_pos = 0;
31 NextPrevPage(false);
32 }
33
34 override bool OnClick(Widget w, int x, int y, int button)
35 {
36 super.OnClick(w, x, y, button);
37
38 switch (w.GetUserID())
39 {
41 NextPrevPage(false);
42 return true;
44 NextPrevPage(true);
45 return true;
46 case IDC_CANCEL:
47 Close();
48 return true;
49 }
50
51 return false;
52 }
53
54 void NextPrevPage(bool next)
55 {
56 if (next)
57 {
59 }
60 else
61 {
63 }
64
65 float maxOffset = 0;
67 {
69 }
70
71 if (m_content_pos < 0)
72 {
73 m_content_pos = 0;
74 }
75
76 if (m_content_pos > maxOffset)
77 {
78 m_content_pos = maxOffset;
79 }
80
81 m_content.SetContentOffset(m_content_pos, true);
82
83 float pagesTotal = Math.Ceil(m_content_total_height / m_page_height);
84 float currPage = Math.Round(m_content_pos / m_page_height) + 1;
85
86 m_page.SetText( currPage.ToString() + " / " + pagesTotal.ToString() );
87 }
88}
Icon x
Icon y
void Close()
proto native WorkspaceWidget GetWorkspace()
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения ItemBase.c:15
Определения EnMath.c:7
Определения EnWidgets.c:220
TextWidget m_title
Определения BookMenu.c:4
void ReadBook(InventoryItem book)
Определения BookMenu.c:24
float m_content_total_height
Определения BookMenu.c:8
float m_content_pos
Определения BookMenu.c:9
override Widget Init()
Определения BookMenu.c:11
override bool OnClick(Widget w, int x, int y, int button)
Определения BookMenu.c:34
TextWidget m_author
Определения BookMenu.c:3
HtmlWidget m_content
Определения BookMenu.c:6
float m_page_height
Определения BookMenu.c:7
void NextPrevPage(bool next)
Определения BookMenu.c:54
TextWidget m_page
Определения BookMenu.c:5
Определения DayZGame.c:64
Определения EnWidgets.c:190
proto string ToString(bool simple=true)
proto native CGame GetGame()
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
static proto float Round(float f)
Returns mathematical round of value.
static proto float Ceil(float f)
Returns ceil of value.
const int IDC_BOOK_VIEWER_PREV
Определения constants.c:154
const int IDC_BOOK_VIEWER_NEXT
Определения constants.c:155
const int IDC_CANCEL
Определения constants.c:136
proto native external Widget CreateWidgets(string layout, Widget parentWidget=NULL, bool immedUpdate=true)
Create widgets from *.layout file.