| 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 | |
|---|
| 16 | function openDecisionPopup( text, callbackPtr ) |
|---|
| 17 | showMenuSheet("DecisionPopup", false, true) |
|---|
| 18 | DecisionPopup.setCallback(callbackPtr) |
|---|
| 19 | DecisionPopup.setText(text) |
|---|
| 20 | end |
|---|
| 21 | |
|---|
| 22 | function openInfoPopup(text, functionPtr, closeButton, arguments) |
|---|
| 23 | showMenuSheet("InfoPopup", false, true) |
|---|
| 24 | InfoPopup.execute(functionPtr, arguments) |
|---|
| 25 | InfoPopup.setText(text) |
|---|
| 26 | InfoPopup.setCloseButton(closeButton) |
|---|
| 27 | end |
|---|
| 28 | |
|---|
| 29 | function getMinTextSize(window) |
|---|
| 30 | local size = {} |
|---|
| 31 | |
|---|
| 32 | local lookAndFeel = CEGUI.WidgetLookManager:getSingleton():getWidgetLook(window:getLookNFeel()) |
|---|
| 33 | local height = window:getFont():getLineSpacing() + window:getUnclippedPixelRect():getHeight() - lookAndFeel:getNamedArea("WithFrameTextRenderArea"):getArea():getPixelRect(window):getHeight() |
|---|
| 34 | local width = window:getFont():getTextExtent(window:getText()) + window:getUnclippedPixelRect():getWidth() - lookAndFeel:getNamedArea("WithFrameTextRenderArea"):getArea():getPixelRect(window):getWidth() |
|---|
| 35 | |
|---|
| 36 | table.insert(size, height) |
|---|
| 37 | table.insert(size, width) |
|---|
| 38 | return size |
|---|
| 39 | end |
|---|
| 40 | |
|---|
| 41 | function getScrollingStepSize(window) |
|---|
| 42 | local height = window:getUnclippedPixelRect():getHeight() |
|---|
| 43 | local maxHeight = CEGUI.System:getSingleton():getGUISheet():getUnclippedPixelRect():getHeight() |
|---|
| 44 | local ratio = height/maxHeight |
|---|
| 45 | return 0.008*ratio/0.3204 |
|---|
| 46 | end |
|---|
| 47 | |
|---|
| 48 | function getStaticTextWindowHeight(window) |
|---|
| 49 | local lookAndFeel = CEGUI.WidgetLookManager:getSingleton():getWidgetLook(window:getLookNFeel()) |
|---|
| 50 | local formattedArea = lookAndFeel:getNamedArea("WithFrameTextRenderArea"):getArea():getPixelRect(window) |
|---|
| 51 | local frameHeight = window:getUnclippedPixelRect():getHeight() - formattedArea:getHeight() |
|---|
| 52 | local lines = window:getFont():getFormattedLineCount(window:getText(), formattedArea, CEGUI.WordWrapLeftAligned) |
|---|
| 53 | local height = lines * window:getFont():getLineSpacing() + frameHeight |
|---|
| 54 | return height |
|---|
| 55 | end |
|---|