- Timestamp:
- Apr 16, 2010, 12:22:12 PM (14 years ago)
- File:
-
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
code/branches/gamestates2/data/gui/scripts/SheetManager.lua
r6722 r6737 1 winMgr = CEGUI.WindowManager:getSingleton() 2 guiMgr = orxonox.GUIManager:getInstance() 3 inputMgr = orxonox.InputManager:getInstance() 1 -- SheetManager.lua 4 2 5 local schemeMgr = CEGUI.SchemeManager:getSingleton() 6 local system = CEGUI.System:getSingleton() 7 local cursor = CEGUI.MouseCursor:getSingleton() 8 9 -- Load all required skins 10 schemeMgr:loadScheme("TaharezGreenLook.scheme") 11 --schemeMgr:loadScheme("TaharezLook.scheme") 12 --schemeMgr:loadScheme("WindowsLook.scheme") 13 --schemeMgr:loadScheme("VanillaLook.scheme") 14 --schemeMgr:loadScheme("SleekSpaceLook.scheme") 15 16 -- Connect skin specific window types with our own window types 17 -- By loading a different file (if there is) you can change the skin 18 -- of the menus or the HUD independently 19 schemeMgr:loadScheme("TaharezGreenMenuWidgets.scheme") 20 menuImageSet = "TaharezGreenLook" 21 schemeMgr:loadScheme("TaharezGreenHUDWidgets.scheme") 22 hudImageSet = "TaharezGreenLook" 23 24 -- Just a remaining test hack 25 schemeMgr:loadScheme("OrxonoxGUIScheme.scheme") 26 27 system:setDefaultMouseCursor(menuImageSet, "MouseArrow") 28 system:setDefaultFont("BlueHighway-12") 29 system:setDefaultTooltip("MenuWidgets/Tooltip") 30 3 local cursor = CEGUI.MouseCursor:getSingleton() 31 4 local loadedSheets = {} 32 5 local activeMenuSheets = {size = 0, topSheetTuple = nil} 33 --activeHUDSheets = {size = 0, topSheetTuple = nil} 34 local root = nil 35 36 -- Require all tools 37 require("GUITools") 38 6 local menuSheetsRoot = guiMgr:getMenuRootWindow() 39 7 40 8 ----------------------- … … 42 10 ----------------------- 43 11 12 local function hideCursor() 13 if cursor:isVisible() then 14 cursor:hide() 15 end 16 end 17 18 local function showCursor() 19 if not cursor:isVisible() and inputMgr:isMouseExclusive() then 20 cursor:show() 21 end 22 end 23 24 25 ------------------------ 26 --- Global functions --- 27 ------------------------ 28 44 29 -- Loads the GUI with the specified name 45 30 -- The name corresponds to the filename of the *.lua and *.layout files 46 31 -- but without the extension 47 localfunction loadSheet(name)32 function loadSheet(name) 48 33 -- Check if it has already been loaded 49 34 local sheet = loadedSheets[name] … … 57 42 end 58 43 59 local function hideCursor()60 if cursor:isVisible() then61 cursor:hide()62 end63 end64 65 local function showCursor()66 if not cursor:isVisible() and orxonox.InputManager:getInstance():isMouseExclusive() then67 cursor:show()68 end69 end70 71 72 ------------------------73 --- Global functions ---74 ------------------------75 76 44 -- ? 77 45 function showMenuSheet(name, bHidePrevious, ptr) … … 83 51 -- Shows the specified menu sheet and loads it if neccessary 84 52 function showMenuSheet(name, bHidePrevious) 53 if name == "" then 54 return nil 55 end 85 56 -- Get sheet (or load it) 86 57 local menuSheet = loadSheet(name) 87 if not menuSheet then88 return nil89 end90 58 91 59 -- Use sheet's value if nil was provided … … 117 85 activeMenuSheets.topSheetTuple = sheetTuple 118 86 119 if not root then120 setBackground("")121 end122 123 87 -- Add sheet to the root window 124 root:addChildWindow(menuSheet.window)88 menuSheetsRoot:addChildWindow(menuSheet.window) 125 89 126 90 -- Handle input distribution 127 orxonox.InputManager:getInstance():enterState(menuSheet.inputState)91 inputMgr:enterState(menuSheet.inputState) 128 92 129 93 -- Only change cursor situation if menuSheet.tShowCursor ~= TriBool.Dontcare … … 177 141 178 142 -- Remove sheet with its tuple from the table 179 root:removeChildWindow(sheetTuple.sheet.window)143 menuSheetsRoot:removeChildWindow(sheetTuple.sheet.window) 180 144 table.remove(activeMenuSheets, table.findIndex(activeMenuSheets, sheetTuple)) 181 145 activeMenuSheets[name] = nil … … 184 148 185 149 -- Leave the input state 186 orxonox.InputManager:getInstance():leaveState(sheetTuple.sheet.inputState)150 inputMgr:leaveState(sheetTuple.sheet.inputState) 187 151 188 152 -- CURSOR SHOWING … … 223 187 end 224 188 225 function setBackground(name) 226 local newroot 227 if root ~= nil then 228 root:rename("oldRootWindow") 229 end 230 if name ~= "" then 231 newroot = winMgr:loadWindowLayout(name .. ".layout") 232 newroot:rename("AbsoluteRootWindow") 233 system:setGUISheet(newroot) 234 else 235 newroot = winMgr:createWindow("DefaultWindow", "AbsoluteRootWindow") 236 newroot:setProperty("Alpha", "0.0") 237 newroot:setSize(CEGUI.UVector2(CEGUI.UDim(1.0,0),CEGUI.UDim(1.0,0))) 238 system:setGUISheet(newroot) 239 end 240 if root ~= nil then 241 local child 242 while root:getChildCount()~=0 do 243 child = root:getChildAtIdx(0) 244 root:removeChildWindow(child) 245 newroot:addChildWindow(child) 246 end 247 winMgr:destroyWindow(root) 248 end 249 newroot:show() 250 root = newroot 189 function setBackgroundImage(imageSet, imageName) 190 guiMgr:setBackgroundImage(imageSet, imageName) 251 191 end 192 193 ---------------------- 194 --- Initialisation --- 195 ---------------------- 196 197 hideCursor()
Note: See TracChangeset
for help on using the changeset viewer.