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:getUnclippedOuterRect():get():getHeight() - lookAndFeel:getNamedArea("WithFrameTextRenderArea"):getArea():getPixelRect(window):getHeight() |
---|
34 | local width = window:getFont():getTextExtent(window:getText()) + window:getUnclippedOuterRect():get():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:getUnclippedOuterRect():get():getHeight() |
---|
43 | local maxHeight = window:getRootWindow():getUnclippedOuterRect():get():getHeight() |
---|
44 | local ratio = height/maxHeight |
---|
45 | return 0.008*ratio/0.3204 |
---|
46 | end |
---|
47 | |
---|
48 | function getStaticTextWindowHeight(window) |
---|
49 | -- Get the area the text is formatted and drawn into. |
---|
50 | local lookAndFeel = CEGUI.WidgetLookManager:getSingleton():getWidgetLook(window:getLookNFeel()) |
---|
51 | local formattedArea = lookAndFeel:getNamedArea("WithFrameTextRenderArea"):getArea():getPixelRect(window) |
---|
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():get():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 |
---|
62 | return height |
---|
63 | end |
---|