[6746] | 1 | -- Returns a new menu sheet |
---|
| 2 | -- See MenuSheet.new for details about the parameters |
---|
| 3 | function createMenuSheet(name, bHidePrevious, tShowCursor, tUseKeyboard, bBlockJoyStick) |
---|
| 4 | local sheet = require("MenuSheet").new(name, bHidePrevious, tShowCursor, tUseKeyboard, bBlockJoyStick) |
---|
| 5 | _G[sheet.name] = sheet -- Global access required because of the event handlers |
---|
| 6 | return sheet |
---|
| 7 | end |
---|
| 8 | |
---|
| 9 | -- Returns a new HUD sheet |
---|
| 10 | function createHUDSheet(name) |
---|
| 11 | local sheet = require("HUDSheet").new(name) |
---|
| 12 | _G[sheet.name] = sheet -- Global access required because of the event handlers |
---|
| 13 | return sheet |
---|
| 14 | end |
---|
| 15 | |
---|
[6145] | 16 | function openDecisionPopup( text, callbackPtr ) |
---|
[6746] | 17 | showMenuSheet("DecisionPopup", false, true) |
---|
[6266] | 18 | DecisionPopup.setCallback(callbackPtr) |
---|
[6145] | 19 | DecisionPopup.setText(text) |
---|
[6266] | 20 | end |
---|
| 21 | |
---|
[6311] | 22 | function openInfoPopup(text, functionPtr, closeButton, arguments) |
---|
[6746] | 23 | showMenuSheet("InfoPopup", false, true) |
---|
[6311] | 24 | InfoPopup.execute(functionPtr, arguments) |
---|
[6266] | 25 | InfoPopup.setText(text) |
---|
[6283] | 26 | InfoPopup.setCloseButton(closeButton) |
---|
[6266] | 27 | end |
---|
[6355] | 28 | |
---|
| 29 | function getMinTextSize(window) |
---|
| 30 | local size = {} |
---|
[6387] | 31 | |
---|
[6355] | 32 | local lookAndFeel = CEGUI.WidgetLookManager:getSingleton():getWidgetLook(window:getLookNFeel()) |
---|
[8283] | 33 | local height = window:getFont():getLineSpacing() + window:getUnclippedOuterRect():getHeight() - lookAndFeel:getNamedArea("WithFrameTextRenderArea"):getArea():getPixelRect(window):getHeight() |
---|
| 34 | local width = window:getFont():getTextExtent(window:getText()) + window:getUnclippedOuterRect():getWidth() - lookAndFeel:getNamedArea("WithFrameTextRenderArea"):getArea():getPixelRect(window):getWidth() |
---|
[6387] | 35 | |
---|
[6355] | 36 | table.insert(size, height) |
---|
| 37 | table.insert(size, width) |
---|
| 38 | return size |
---|
| 39 | end |
---|
| 40 | |
---|
| 41 | function getScrollingStepSize(window) |
---|
[8283] | 42 | local height = window:getUnclippedOuterRect():getHeight() |
---|
| 43 | local maxHeight = CEGUI.System:getSingleton():getGUISheet():getUnclippedOuterRect():getHeight() |
---|
[6355] | 44 | local ratio = height/maxHeight |
---|
| 45 | return 0.008*ratio/0.3204 |
---|
| 46 | end |
---|
[7163] | 47 | |
---|
| 48 | function getStaticTextWindowHeight(window) |
---|
[8283] | 49 | -- Get the area the text is formatted and drawn into. |
---|
[7163] | 50 | local lookAndFeel = CEGUI.WidgetLookManager:getSingleton():getWidgetLook(window:getLookNFeel()) |
---|
| 51 | local formattedArea = lookAndFeel:getNamedArea("WithFrameTextRenderArea"):getArea():getPixelRect(window) |
---|
[8283] | 52 | -- Calculate the pixel height of the frame by subtracting the height of the area above from the total height of the window. |
---|
| 53 | local frameHeight = window:getUnclippedOuterRect():getHeight() - formattedArea:getHeight() |
---|
| 54 | |
---|
| 55 | local height = 0 |
---|
| 56 | if ORXONOX_OLD_CEGUI then |
---|
| 57 | local lines = window:getFont():getFormattedLineCount(window:getText(), formattedArea, CEGUI.WordWrapLeftAligned) |
---|
| 58 | height = lines * window:getFont():getLineSpacing() + frameHeight |
---|
| 59 | else |
---|
| 60 | height = math.floor(CEGUI.PropertyHelper:stringToFloat(window:getProperty("VertExtent")) + frameHeight) + 1 |
---|
| 61 | end |
---|
[7163] | 62 | return height |
---|
| 63 | end |
---|