Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/gamestates3/data/gui/scripts/GraphicsMenu.lua @ 7631

Last change on this file since 7631 was 6773, checked in by rgrieder, 15 years ago

Eliminated all unnecessary global Lua variables and replaced them either with a local or a instance variable (P.myVar).

  • Property svn:eol-style set to native
File size: 6.9 KB
Line 
1-- GraphicsMenu.lua
2
3local P = createMenuSheet("GraphicsMenu")
4
5function P.onLoad()
6    P.block = true
7    P.file = orxonox.PathConfig:getConfigPathString() .. orxonox.getConfig("GraphicsManager", "ogreConfigFile_")
8    P.search_mode = 0
9    local f = io.open(P.file, "r")
10    local firstline = f:read("*line")
11    local rendersystem = string.sub(firstline, 15)
12    for line in f:lines() do
13        if P.search_mode == 0 then
14            if string.find(line, rendersystem) ~= nil then
15                P.search_mode = 1
16            end
17        end
18        if P.search_mode == 1 then
19            if string.sub(line, 1, 11) == "Full Screen" then
20                if string.sub(line, 13) == "Yes" then
21                    P.fullscreen = true
22                else
23                    P.fullscreen = false
24                end
25            end
26            if string.sub(line, 1, 10) == "Video Mode" then
27                if string.match(line, "@") == "@" then
28                    P.resolution = string.sub(line, 12, string.find(line, "@")-2)
29                else
30                    P.resolution = string.sub(line, 12)
31                end
32                break
33            end
34        end
35    end
36    f:close()
37    local fullscreenwindow = tolua.cast(winMgr:getWindow("orxonox/FullscreenCheckbox"),"CEGUI::Checkbox")
38    fullscreenwindow:setSelected(P.fullscreen)
39    P.listboxwindow = winMgr:getWindow("orxonox/ResolutionListbox")
40    local resolutionList = {}
41    table.insert(resolutionList, "640 x 480")
42    table.insert(resolutionList, "720 x 480")
43    table.insert(resolutionList, "720 x 576")
44    table.insert(resolutionList, "800 x 480")
45    table.insert(resolutionList, "800 x 600")
46    table.insert(resolutionList, "1024 x 480")
47    table.insert(resolutionList, "1024 x 600")
48    table.insert(resolutionList, "1024 x 768")
49    table.insert(resolutionList, "1152 x 864")
50    table.insert(resolutionList, "1280 x 720")
51    table.insert(resolutionList, "1280 x 768")
52    table.insert(resolutionList, "1440 x 900")
53    for k,v in pairs(resolutionList) do
54        local item = CEGUI.createListboxTextItem(v)
55        item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush")
56        CEGUI.toListbox(P.listboxwindow):addItem(item)
57    end
58    if P.resolution == "640 x 480" then
59        P.listboxwindow:setItemSelectState(0,true)
60    elseif P.resolution == "720 x 480" then
61        P.listboxwindow:setItemSelectState(1,true)
62    elseif P.resolution == "720 x 576" then
63        P.listboxwindow:setItemSelectState(2,true)
64    elseif P.resolution == "800 x 480" then
65        P.listboxwindow:setItemSelectState(3,true)
66    elseif P.resolution == "800 x 600" then
67        P.listboxwindow:setItemSelectState(4,true)
68    elseif P.resolution == "1024 x 480" then
69        P.listboxwindow:setItemSelectState(5,true)
70    elseif P.resolution == "1024 x 600" then
71        P.listboxwindow:setItemSelectState(6,true)
72    elseif P.resolution == "1024 x 768" then
73        P.listboxwindow:setItemSelectState(7,true)
74    elseif P.resolution == "1152 x 864" then
75        P.listboxwindow:setItemSelectState(8,true)
76    elseif P.resolution == "1280 x 720" then
77        P.listboxwindow:setItemSelectState(9,true)
78    elseif P.resolution == "1280 x 768" then
79        P.listboxwindow:setItemSelectState(10,true)
80    elseif P.resolution == "1440 x 900" then
81        P.listboxwindow:setItemSelectState(11,true)
82    end
83    P.scrollbar_active = false
84    P.block = false
85end
86
87function P.GraphicsResolutionListbox_changed(e)
88    if P.listboxwindow:isItemSelected(0) then
89        P.resolution = "640 x 480"
90    elseif P.listboxwindow:isItemSelected(1) then
91        P.resolution = "720 x 480"
92    elseif P.listboxwindow:isItemSelected(2) then
93        P.resolution = "720 x 576"
94    elseif P.listboxwindow:isItemSelected(3) then
95        P.resolution = "800 x 480"
96    elseif P.listboxwindow:isItemSelected(4) then
97        P.resolution = "800 x 600"
98    elseif P.listboxwindow:isItemSelected(5) then
99        P.resolution = "1024 x 480"
100    elseif P.listboxwindow:isItemSelected(6) then
101        P.resolution = "1024 x 600"
102    elseif P.listboxwindow:isItemSelected(7) then
103        P.resolution = "1024 x 768"
104    elseif P.listboxwindow:isItemSelected(8) then
105        P.resolution = "1152 x 864"
106    elseif P.listboxwindow:isItemSelected(9) then
107        P.resolution = "1280 x 720"
108    elseif P.listboxwindow:isItemSelected(10) then
109        P.resolution = "1280 x 768"
110    elseif P.listboxwindow:isItemSelected(11) then
111        P.resolution = "1440 x 900"
112    end
113    P.search_mode = 0
114    local f = io.open(P.file, "r")
115    local firstline = f:read("*line")
116    local text = firstline .. "\n"
117    local rendersystem = string.sub(firstline, 15)
118    for line in f:lines() do
119        if P.search_mode == 0 then
120            if string.find(line, rendersystem) ~= nil then
121                P.search_mode = 1
122            end
123        end
124        if P.search_mode == 1 then
125            if string.sub(line, 1, 10) == "Video Mode" then
126                if string.match(line, "@") == "@" then
127                    line = "Video Mode=" .. P.resolution .. string.sub(line, string.find(line, "@")-1)
128                else
129                    line = "Video Mode=" .. P.resolution
130                end
131                P.search_mode = 2
132            end
133        end
134        text = text .. line .. "\n"
135    end
136    f:close()
137    f = io.open(P.file, "w")
138    f:write(text)
139    f:close()
140end
141
142function P.GraphicsBrightnessScrollbar_changed(e)
143    if P.scrollbar_active == false then
144        -- brightness
145        logMessage(0, "event: brightness")
146    end
147end
148
149function P.GraphicsBrightnessScrollbar_started(e)
150    P.scrollbar_active = true
151end
152
153function P.GraphicsBrightnessScrollbar_ended(e)
154    -- brightness
155    logMessage(0, "event: brightness")
156    P.scrollbar_active = false
157end
158
159function P.GraphicsFullscreenCheckbox_clicked(e)
160    if P.block == false then
161        P.search_mode = 0
162        local f = io.open(P.file, "r")
163        local firstline = f:read("*line")
164        local text = firstline .. "\n"
165        local rendersystem = string.sub(firstline, 15)
166        for line in f:lines() do
167            if P.search_mode == 0 then
168                if string.find(line, rendersystem) ~= nil then
169                    P.search_mode = 1
170                end
171            end
172            if P.search_mode == 1 then
173                if string.sub(line, 1, 11) == "Full Screen" then
174                    if P.fullscreen == true then
175                        line = "Full Screen=No"
176                        P.fullscreen = false
177                    else
178                        line = "Full Screen=Yes"
179                        P.fullscreen = true
180                    end
181                    P.search_mode = 2
182                end
183            end
184            text = text .. line .. "\n"
185        end
186        f:close()
187        f = io.open(P.file, "w")
188        f:write(text)
189        f:close()
190    end
191end
192
193function P.GraphicsBackButton_clicked(e)
194    hideMenuSheet(P.name)
195end
196
197return P
198
Note: See TracBrowser for help on using the repository browser.