Difference between revisions of "Application:get"

From GiderosMobile
m (Text replacement - "</source" to "</syntaxhighlight")
 
(4 intermediate revisions by one other user not shown)
Line 15: Line 15:
 
'''Returns''' (varies) the value(s) of the setting
 
'''Returns''' (varies) the value(s) of the setting
  
=== '''Android''' ===
+
=== '''Compatibility table''' ===
Added in Gideros 2020.4:
+
{| class="wikitable" style="text-align: center;"
<syntaxhighlight lang="lua">
+
!!!QT!!Win32!!UWP!!Android!!Apple MacOS!!Apple iOS!!Apple tvOS!!Linux!!HTML
application:get("batteryLevel")
+
|-
</syntaxhighlight>
+
|batteryLevel||||||||X||||X||||||
 +
|-
 +
|clipboard||X||X||||||||||||X||
 +
|-
 +
|commandLine||||X||||||||||||X||
 +
|-
 +
|currentUrl||||||||||||||||||X
 +
|-
 +
|cursorPosition||X||X||||||||||||X||
 +
|-
 +
|directory||X||X||||||||||||X||
 +
|-
 +
|documentDirectory||X||X||||||||||||X||
 +
|-
 +
|openDirectoryDialog||X||X||X||||X||||||||
 +
|-
 +
|openFileDialog||X||X||X||||X||||||||
 +
|-
 +
|pathfileexists||?||X||||||||||||X||
 +
|-
 +
|saveFileDialog||X||X||X||||X||||||||
 +
|-
 +
|screenSize||X||X||X||||||||||X||X
 +
|-
 +
|temporaryDirectory||X||X||||||||||||X||
 +
|-
 +
|windowPosition||X||X||||||||||||X||
 +
|-
 +
|windowSize||X||X||||||||||||X||
 +
|-
 +
|windowTitle||X||X||||||||||||||X
 +
|}
  
 
=== Examples ===
 
=== Examples ===
Line 69: Line 100:
 
-- get screen size
 
-- get screen size
 
screenwidth, screenheight = application:get("screenSize") -- the actual user screen size!
 
screenwidth, screenheight = application:get("screenSize") -- the actual user screen size!
 +
myappleft, myapptop, myappright, myappbot = application:getLogicalBounds()
 +
myappwidth, myappheight = myappright - myappleft, myappbot - myapptop
 
application:set("windowPosition", (screenwidth - myappwidth)/2, (screenheight - myappheight)/2) -- center the app
 
application:set("windowPosition", (screenwidth - myappwidth)/2, (screenheight - myappheight)/2) -- center the app
 
application:set("windowTitle", "MY TITLE")
 
application:set("windowTitle", "MY TITLE")
  
 
-- get the user download folder path
 
-- get the user download folder path
print(application:get("directory", "download")) -- prints C:/Users/xxx/Downloads
+
print(application:get("directory", "download")) -- prints c:/Users/xxx/Downloads
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
'''File dialog open directory'''
 
'''File dialog open directory'''
 
<syntaxhighlight lang="lua">
 
<syntaxhighlight lang="lua">
--local path = application:get("openDirectoryDialog", "Title|C:/tmp/") -- "title|path" DEPRECATED IN 2022.10
+
local path = application:get("openDirectoryDialog", "Title", "c:/tmp/") -- "title", "path"
local path = application:get("openDirectoryDialog", "Title", "C:/tmp/") -- "title", "path" NEW WAY
+
local path = application:get("openDirectoryDialog", "Title", "c:\\tmp\\") -- "title", "path" win32
-- win32
+
print(path) -- on cancel, returns nil for win32 and "" for other systems
local path = application:get("openDirectoryDialog", "Title", "C:\\tmp\\") -- "title", "path" win32 NEW WAY
 
print(path)
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
'''File dialog open file'''
 
'''File dialog open file'''
 
<syntaxhighlight lang="lua">
 
<syntaxhighlight lang="lua">
print(application:get("openFileDialog","Choisissez un liquide","I:\\","Bidon (*.bdn *.bid);;Fût et Tonneau (*.fut)"))
+
local path = application:get("openFileDialog", "My Title", "c:\\", "Images (*.png *.jp*g);; 3D (*.obj *.fbx)")
path = application:get("openFileDialog", "My Title", "c:\\", "Images (*.png *.jpg *.jpeg);;3D (*.obj *.glb *.fbx)"))
 
 
print(path) -- on cancel, returns nil for win32 and "" for other systems
 
print(path) -- on cancel, returns nil for win32 and "" for other systems
 
-- file dialog to open a file of type .txt or .png
 
local path = application:get(
 
-- "openFileDialog", "Title|C:/tmp/|Text (*.txt);; Image (*.png)") -- "title|path|extensions" DEPRECATED IN 2022.10
 
"openFileDialog", "Title", "C:/tmp/", "Text (*.txt);; Image (*.png)") -- "title", "path", "extensions" NEW WAY
 
print(path)
 
  
 
-- file dialogs on win32 should use a delay Timer.delayedCall or Core.asyncCall
 
-- file dialogs on win32 should use a delay Timer.delayedCall or Core.asyncCall
--self.tiled_ui.btnBrowse:addEventListener("clicked", self.browse, self) -- instead of this
 
 
self.tiled_ui.btnBrowse:addEventListener("clicked", function()
 
self.tiled_ui.btnBrowse:addEventListener("clicked", function()
Core.asyncCall(TheStage.browse, self) -- this
+
Core.asyncCall(self.browse, self)
 
end)
 
end)
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 107: Line 130:
 
<syntaxhighlight lang="lua">
 
<syntaxhighlight lang="lua">
 
-- first we choose the destination
 
-- first we choose the destination
local path = application:get(
+
local path = application:get("saveFileDialog", "Title", "c:/tmp/", "Text (*.txt);; Image (*.jpg)") -- "title", "path", "extensions"
-- "saveFileDialog", "Title|C:/tmp/|Text (*.txt);; Image (*.jpg)") -- "title|path|extensions" DEPRECATED IN 2022.10
 
"saveFileDialog", "Title", "C:/tmp/", "Text (*.txt);; Image (*.jpg)") -- "title", "path", "extensions" NEW WAY
 
 
-- and we save some data to it
 
-- and we save some data to it
if path ~= 0 then
+
if path ~= "" then -- on cancel, returns nil for win32 and "" for other systems
--if path ~= nil then -- for win32
 
 
local srcf = io.open("mytext.txt", "rb")
 
local srcf = io.open("mytext.txt", "rb")
 
local dstf = io.open(path, "wb")
 
local dstf = io.open(path, "wb")
 
local size = 2^13 -- good buffer size (8K)
 
local size = 2^13 -- good buffer size (8K)
while true do local block = srcf:read(size) if not block then break end dstf:write(block) end
+
while true do
 +
local block = srcf:read(size)
 +
if not block then break end
 +
dstf:write(block)
 +
end
 
srcf:close()
 
srcf:close()
 
dstf:close()
 
dstf:close()
Line 135: Line 159:
 
-- tests folder path (nil=doesn't exist, 1=exists)
 
-- tests folder path (nil=doesn't exist, 1=exists)
 
if application:get("pathfileexists", application:get("directory", "pictures").."\\Folder01") == nil then
 
if application:get("pathfileexists", application:get("directory", "pictures").."\\Folder01") == nil then
-- creates it
+
-- create it
 
application:set("mkDir", application:get("directory", "pictures").."\\Folder01")
 
application:set("mkDir", application:get("directory", "pictures").."\\Folder01")
 
end
 
end

Latest revision as of 06:57, 16 October 2024

Available since: Gideros 2015.7
Class: Application

Description

Returns the state of the desktop setting provided as string parameter.

varies = application:get(setting)

Parameters

setting (string) the name of the desktop setting

Return values

Returns (varies) the value(s) of the setting

Compatibility table

QT Win32 UWP Android Apple MacOS Apple iOS Apple tvOS Linux HTML
batteryLevel X X
clipboard X X X
commandLine X X
currentUrl X
cursorPosition X X X
directory X X X
documentDirectory X X X
openDirectoryDialog X X X X
openFileDialog X X X X
pathfileexists ? X X
saveFileDialog X X X X
screenSize X X X X X
temporaryDirectory X X X
windowPosition X X X
windowSize X X X
windowTitle X X X

Examples

Prints a list of all available settings

print(application:get("help"))
--[[
	Accepted value for Desktop's application:get()
	- [x,y] windowPosition
	- [w,h] windowSize
	- [w,h] screenSize
	- [x,y] cursorPosition
	- [text] clipboard
	- [text] windowTitle
	- [path] directory(where//help)
	- [path] openDirectoryDialog(title|path//help)
	- [path] openFileDialog(title|path|extensions//help)
	- [path] saveFileDialog(title|path|extensions//help)
	- [path] documentDirectory
	- [path] temporaryDirectory
	0
]]
print("\n")

print(application:get("directory", "help"))
--[[
	Accepted value for directory :
	- executable
	- document
	- desktop
	- temporary
	- data
	- music
	- movies
	- pictures
	- cache
	- download
	- home
	0
]]

Various examples

print(application:get("windowTitle"))
print(application:get("documentDirectory"))
print(application:get("temporaryDirectory"))

-- get screen size
screenwidth, screenheight = application:get("screenSize") -- the actual user screen size!
myappleft, myapptop, myappright, myappbot = application:getLogicalBounds()
myappwidth, myappheight = myappright - myappleft, myappbot - myapptop
application:set("windowPosition", (screenwidth - myappwidth)/2, (screenheight - myappheight)/2) -- center the app
application:set("windowTitle", "MY TITLE")

-- get the user download folder path
print(application:get("directory", "download")) -- prints c:/Users/xxx/Downloads

File dialog open directory

local path = application:get("openDirectoryDialog", "Title", "c:/tmp/") -- "title", "path"
local path = application:get("openDirectoryDialog", "Title", "c:\\tmp\\") -- "title", "path" win32
print(path) -- on cancel, returns nil for win32 and "" for other systems

File dialog open file

local path = application:get("openFileDialog", "My Title", "c:\\", "Images (*.png *.jp*g);; 3D (*.obj *.fbx)")
print(path) -- on cancel, returns nil for win32 and "" for other systems

-- file dialogs on win32 should use a delay Timer.delayedCall or Core.asyncCall
self.tiled_ui.btnBrowse:addEventListener("clicked", function()
	Core.asyncCall(self.browse, self)
end)

File dialog save file

-- first we choose the destination
local path = application:get("saveFileDialog", "Title", "c:/tmp/", "Text (*.txt);; Image (*.jpg)") -- "title", "path", "extensions"
-- and we save some data to it
if path ~= "" then -- on cancel, returns nil for win32 and "" for other systems
	local srcf = io.open("mytext.txt", "rb")
	local dstf = io.open(path, "wb")
	local size = 2^13 -- good buffer size (8K)
	while true do
		local block = srcf:read(size)
		if not block then break end
		dstf:write(block)
	end
	srcf:close()
	dstf:close()
end

Path File Exists

-- Path File Exists for Windows 64
-- tests folder path (nil=doesn't exist, 1=exists)
if application:get("pathfileexists", application:get("directory", "pictures").."/Folder01") == nil then
	application:set("mkDir", application:get("directory", "pictures"), "Folder01")
	application:set("mkDir", application:get("directory", "pictures").."/Folder01", "subfolder01")
	application:set("mkDir", application:get("directory", "pictures").."/Folder01", "subfolder02")
end

-- Path File Exists for win32
-- tests folder path (nil=doesn't exist, 1=exists)
if application:get("pathfileexists", application:get("directory", "pictures").."\\Folder01") == nil then
	-- create it
	application:set("mkDir", application:get("directory", "pictures").."\\Folder01")
end