Difference between revisions of "Application:get"

From GiderosMobile
Line 22: Line 22:
  
 
=== Examples ===
 
=== Examples ===
'''Various examples'''
 
<source lang="lua">
 
print(application:get("windowTitle"))
 
print(application:get("documentDirectory"))
 
print(application:get("temporaryDirectory"))
 
print("\n")
 
 
-- get screen size
 
screenwidth, screenheight = application:get("screenSize") -- the actual user screen size!
 
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
 
</source>
 
 
 
'''Prints a list of all available settings'''
 
'''Prints a list of all available settings'''
 
<source lang="lua">
 
<source lang="lua">
Line 77: Line 61:
 
</source>
 
</source>
  
'''File dialog to open a file of type .txt or .png'''
+
'''Various examples'''
 +
<source lang="lua">
 +
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!
 +
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
 +
</source>
 +
 
 +
'''File dialog to open a directory'''
 
<source lang="lua">
 
<source 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" NEW WAY
 +
-- win32 there is a bug you need to add a 3rd parameter for it to work
 +
local path = application:get("openDirectoryDialog", "Title", "C:/tmp/", "bug") -- "title", "path" win32 NEW WAY
 +
print(path)
 +
</source>
 +
 +
'''File dialog to open a file'''
 +
<source lang="lua">
 +
print(application:get("openFileDialog","Choisissez un liquide","I:\\","Bidon (*.bdn *.bid);;Fût et Tonneau (*.fut)"))
 +
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
 +
 +
-- file dialog to open a file of type .txt or .png
 
local path = application:get(
 
local path = application:get(
-- "openFileDialog", "Title|C:/tmp/|Text (*.txt);; Image (*.png)") -- "title|path|extensions" WILL BE DEPRECATED IN 2022.10
+
-- "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
 
"openFileDialog", "Title", "C:/tmp/", "Text (*.txt);; Image (*.png)") -- "title", "path", "extensions" NEW WAY
 
print(path)
 
print(path)
</source>
 
  
'''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
<source lang="lua">
+
--self.tiled_ui.btnBrowse:addEventListener("clicked", self.browse, self) -- instead of this
-- 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(TheStage.browse, self) -- this
+
end)
end)
 
 
</source>
 
</source>
  
Line 97: Line 108:
 
-- 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" WILL BE DEPRECATED IN 2022.10
+
-- "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
 
"saveFileDialog", "Title", "C:/tmp/", "Text (*.txt);; Image (*.jpg)") -- "title", "path", "extensions" NEW WAY
if path ~= 0 then -- and we save some data to it
+
-- and we save some data to it
 +
if path ~= 0 then
 +
--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")
Line 109: Line 122:
 
</source>
 
</source>
  
'''File dialog to open a directory'''
+
'''Path File Exists'''
 
<source lang="lua">
 
<source lang="lua">
--local path = application:get("openDirectoryDialog", "Title|C:/tmp/") -- "title|path" WILL BE DEPRECATED IN 2022.10
+
-- Path File Exists for Windows 64
local path = application:get("openDirectoryDialog", "Title", "C:/tmp/") -- "title", "path", "extensions" NEW WAY
+
-- tests folder path (nil=doesn't exist, 1=exists)
print(path)
+
if application:get("pathfileexists", application:get("directory", "pictures").."/Folder01") == nil then
</source>
+
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
  
'''New File dialog open'''
+
-- Path File Exists for win32
<source lang="lua">
 
print(application:get("openFileDialog","Choisissez un liquide","I:\\","Bidon (*.bdn *.bid);;Fût et Tonneau (*.fut)"))
 
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
 
</source>
 
 
 
'''Path File Exists for win32'''
 
<source lang="lua">
 
 
-- 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
 
-- creates it
 
application:set("mkDir", application:get("directory", "pictures").."\\Folder01")
 
application:set("mkDir", application:get("directory", "pictures").."\\Folder01")
end
 
</source>
 
 
'''Path File Exists for Windows 64'''
 
<source lang="lua">
 
-- 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
 
end
 
</source>
 
</source>
  
 
{{Application}}
 
{{Application}}

Revision as of 02:52, 12 June 2023

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

Android

Added in Gideros 2020.4:

application:get("batteryLevel")

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!
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 to open a directory

--local path = application:get("openDirectoryDialog", "Title|C:/tmp/") -- "title|path" DEPRECATED IN 2022.10
local path = application:get("openDirectoryDialog", "Title", "C:/tmp/") -- "title", "path" NEW WAY
-- win32 there is a bug you need to add a 3rd parameter for it to work
local path = application:get("openDirectoryDialog", "Title", "C:/tmp/", "bug") -- "title", "path" win32 NEW WAY
print(path)

File dialog to open a file

print(application:get("openFileDialog","Choisissez un liquide","I:\\","Bidon (*.bdn *.bid);;Fût et Tonneau (*.fut)"))
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

-- 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
--self.tiled_ui.btnBrowse:addEventListener("clicked", self.browse, self) -- instead of this
self.tiled_ui.btnBrowse:addEventListener("clicked", function()
	Core.asyncCall(TheStage.browse, self) -- this
end)

File dialog to save a file as .txt or .jpg

-- first we choose the destination
local path = application:get(
--	"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
if path ~= 0 then
--if path ~= nil then -- for win32
	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
	-- creates it
	application:set("mkDir", application:get("directory", "pictures").."\\Folder01")
end