Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/kicklib/data/gui/scripts/GUITools.lua @ 8137

Last change on this file since 8137 was 7971, checked in by rgrieder, 14 years ago

Fixed GUITools.lua for good: both CECGUI 0.6 and 0.7 seem to work. At least I haven't noticed any bogus behaviour in the Credits or in the Quest sheet.

  • Property svn:eol-style set to native
File size: 2.8 KB
RevLine 
[6746]1-- Returns a new menu sheet
2-- See MenuSheet.new for details about the parameters
3function 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
7end
8
9-- Returns a new HUD sheet
10function 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
14end
15
[6145]16function openDecisionPopup( text, callbackPtr )
[6746]17    showMenuSheet("DecisionPopup", false, true)
[6266]18    DecisionPopup.setCallback(callbackPtr)
[6145]19    DecisionPopup.setText(text)
[6266]20end
21
[6311]22function 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]27end
[6355]28
29function getMinTextSize(window)
30    local size = {}
[6387]31
[6355]32    local lookAndFeel = CEGUI.WidgetLookManager:getSingleton():getWidgetLook(window:getLookNFeel())
[7961]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
39end
40
41function getScrollingStepSize(window)
[7961]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
46end
[7163]47
48function getStaticTextWindowHeight(window)
[7964]49    -- Get the area the text is formatted and drawn into.
[7965]50    local lookAndFeel = CEGUI.WidgetLookManager:getSingleton():getWidgetLook(window:getLookNFeel())
51    local formattedArea = lookAndFeel:getNamedArea("WithFrameTextRenderArea"):getArea():getPixelRect(window)
[7964]52    -- Calculate the pixel height of the frame by subtracting the height of the area above from the total height of the window.
[7961]53    local frameHeight = window:getUnclippedOuterRect():getHeight() - formattedArea:getHeight()
[7964]54
[7965]55    local height = 0
[7971]56    if ORXONOX_OLD_CEGUI then
[7965]57        local lines = window:getFont():getFormattedLineCount(window:getText(), formattedArea, CEGUI.WordWrapLeftAligned)
58        height = lines * window:getFont():getLineSpacing() + frameHeight
[7971]59    else
60        height = math.floor(CEGUI.PropertyHelper:stringToFloat(window:getProperty("VertExtent")) + frameHeight) + 1
[7965]61    end
[7163]62    return height
63end
Note: See TracBrowser for help on using the repository browser.