Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/gamestates3/data/gui/scripts/GUISheet.lua @ 12014

Last change on this file since 12014 was 6748, checked in by rgrieder, 15 years ago

A GUISheet can assign its field "loadAlong" any strings designating other sheets that have to be loaded as well.
Implemented this for all menus sheets as I see fit (load the whole MainMenu, but don't load MainMenu or Settings for the InGameMenu).
This is just a measure to avoid lags when clicking through the menus.

  • Property svn:eol-style set to native
File size: 1.3 KB
Line 
1-- GUISheet.lua
2
3local P = {}
4_G[_REQUIREDNAME or "GUISheet"] = P
5P.__index = P
6
7-- Don't use directly --> use HUDSheet.new or MenuSheet.new
8function P.new(_name)
9    local newSheet = { name = _name }
10    setmetatable(newSheet, P)
11    return newSheet
12end
13
14-- Override this function if you need to do work on load
15function P:onLoad()
16end
17
18-- show function for the GUI
19function P:show()
20    self.window:show()
21    self.bVisible = true
22
23    self:onShow()
24end
25
26-- Override this function if you need to do work on show
27function P:onShow()
28end
29
30-- hide function for the GUI
31function P:hide()
32    self.window:hide()
33    self.bVisible = false
34
35    self:onHide()
36end
37
38-- Override this function if you need to do work on hide
39function P:onHide()
40end
41
42function P:load()
43    -- Load the layout that describes the sheet
44    self.window = winMgr:loadWindowLayout(self.name .. ".layout")
45    if self.window == nil then
46        error("Could not load layout file for GUI sheet '"..self.name.."'")
47    end
48    -- Hide it at first
49    self:hide()
50    -- Allow sheets to do some work upon loading
51    self:onLoad()
52
53    -- Also load additional sheets to avoid display lags
54    if self.loadAlong then
55        for k, sheet in pairs(self.loadAlong) do
56            loadSheet(sheet)
57        end
58    end
59    return self
60end
61
62return P
Note: See TracBrowser for help on using the repository browser.