Changeset 11644 for code/branches/Dialog_HS17/data/gui/scripts/Dialog.lua
- Timestamp:
- Dec 8, 2017, 2:55:15 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/Dialog_HS17/data/gui/scripts/Dialog.lua
r11642 r11644 6 6 P.detailsWindows = {} 7 7 P.showing = false 8 P.choice = 0 8 9 9 -- Design parameters 10 P.imageHeight = 50 11 P.detailImageSize = 100 12 P.textHeight = 50 13 P.buttonWidth = 50 14 15 function P.onLoad() 10 function P.onLoad() --wird ausgefuert wenn Fenster geladen 16 11 P.wrapper = nil 17 12 end 18 13 19 function P.onShow() 14 function P.onShow() --wird ausgefuert wenn Dialogfenster gezeigt 20 15 21 16 orxonox.CommandExecutor:execute("setTimeFactor 0") … … 25 20 end 26 21 27 function P.onHide() 22 function P.onHide() --aufgefuert wenn Fenster geschlossen wird 28 23 orxonox.CommandExecutor:execute("setTimeFactor 1") 29 24 P.showing = false … … 31 26 end 32 27 33 function P.createDialog() 28 function P.createDialog() -- initiallisiert das Dialog Fenster, setzt Namen sowie die erste Frage mit enstprechenden Antworten 34 29 35 30 local manager = orxonox.DialogManager:getInstance() … … 44 39 questionfiled:setText(question) 45 40 46 listboxwindow = winMgr:getWindow("orxonox/AnsListbox") 41 local listboxwindow = winMgr:getWindow("orxonox/AnsListbox") 42 CEGUI.toListbox(listboxwindow):resetList() 47 43 48 local themeList = {} 49 --[[ 50 table.insert(themeList, "Default") 51 table.insert(themeList, "Drum n' Bass") 52 table.insert(themeList, "8-Bit Style") 53 table.insert(themeList, "Corny Jazz") 54 table.insert(themeList, "Metal") 55 --]] 44 local ansList = {} 56 45 local anssize = manager:getSize() 57 46 58 47 for index = 0, anssize -1, 1 do 59 table.insert( themeList, manager:getAnswer(index))48 table.insert(ansList, manager:getAnswer(index)) 60 49 end 61 50 62 for k,v in pairs( themeList) do51 for k,v in pairs(ansList) do 63 52 item = CEGUI.createListboxTextItem(v) 64 53 item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush") … … 67 56 end 68 57 69 function P.updateDialog() 58 function P.updateDialog() --updated den Dialog entsprechend der Ausgeaehlten option der letzten Frage, setzt Frage und Antwortmoeglichkeiten neu 70 59 local manager = orxonox.DialogManager:getInstance() 71 --manager:update()60 manager:update(P.choice) 72 61 73 62 local questionfiled = winMgr:getWindow("orxonox/Dialog/Question") 74 63 local question = manager:getQuestion() 75 64 questionfiled:setText(question) 65 66 local listboxwindow = winMgr:getWindow("orxonox/AnsListbox") 67 listboxwindow:resetList() 68 69 local ansList = {} 70 local anssize = manager:getSize() 71 72 for index = 0, anssize -1, 1 do 73 table.insert(ansList, manager:getAnswer(index)) 74 end 75 76 for k,v in pairs(ansList) do 77 item = CEGUI.createListboxTextItem(v) 78 item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush") 79 CEGUI.toListbox(listboxwindow):addItem(item) 80 end 81 82 P.choice = 0 76 83 end 77 84 78 function P.answer_changed(e) 79 -- body 85 function P.answer_changed(e) --wird aufgerufen falls Auswahl geaendert wird und setzt enstprechenden Indexparameter 86 listboxwindow = winMgr:getWindow("orxonox/AnsListbox") 87 selection = listboxwindow:getFirstSelectedItem() 88 if selection ~= nil then 89 P.choice = listboxwindow:getItemIndex(selection) 90 else 91 P.choice = 0 92 end 80 93 end 81 94 82 95 83 function P.cleanup(destroyDetails) 84 96 function P.cleanup(destroyDetails) --loest Fenster wieder auf (!nicht selbst geschrieben, nur uebernommen, eventuell nicht noetiger code) 97 85 98 if P.wrapper ~= nil then 86 99 winMgr:destroyWindow(P.wrapper) … … 101 114 102 115 103 function P.Button_clicked(e) 104 local ending = orxonox.DialogManager:getInstance():endtest() 105 orxonox.CommandExecutor:execute("OrxonoxOverlay toggleVisibility Dialog") 116 function P.Button_clicked(e) --wird bei click auf say knopf ausgeloest, entscheidet ob Dialog schliesst oder updated und fuert entsprechen aus 117 local ending = orxonox.DialogManager:getInstance():endtest(P.choice) 106 118 107 119 if ending then 108 120 orxonox.CommandExecutor:execute("OrxonoxOverlay toggleVisibility Dialog") 109 110 111 121 else 112 122 P.updateDialog(index)
Note: See TracChangeset
for help on using the changeset viewer.