Difference between revisions of "Application:get"

From GiderosMobile
m
 
(25 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
__NOTOC__
 
'''Available since:''' Gideros 2015.7<br/>
 
'''Available since:''' Gideros 2015.7<br/>
 
+
'''Class:''' [[Application]]<br/>
'''Class:''' [[Application|Application]]<br/>
 
  
 
=== Description ===
 
=== Description ===
 
Returns the state of the desktop setting provided as string parameter.
 
Returns the state of the desktop setting provided as string parameter.
 +
<syntaxhighlight lang="lua">
 +
varies = application:get(setting)
 +
</syntaxhighlight>
  
<source lang="lua">
+
=== Parameters ===
-- print a list of all available settings
+
'''setting''' (string) the name of the desktop setting
 +
 
 +
=== Return values ===
 +
'''Returns''' (varies) the value(s) of the setting
 +
 
 +
=== '''Compatibility table''' ===
 +
{| class="wikitable" style="text-align: center;"
 +
!!!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'''
 +
<syntaxhighlight lang="lua">
 
print(application:get("help"))
 
print(application:get("help"))
 
 
--[[
 
--[[
 
Accepted value for Desktop's application:get()
 
Accepted value for Desktop's application:get()
Line 26: Line 72:
 
0
 
0
 
]]
 
]]
</source>
+
print("\n")
 +
 
 +
print(application:get("directory", "help"))
 +
--[[
 +
Accepted value for directory :
 +
- executable
 +
- document
 +
- desktop
 +
- temporary
 +
- data
 +
- music
 +
- movies
 +
- pictures
 +
- cache
 +
- download
 +
- home
 +
0
 +
]]
 +
</syntaxhighlight>
 +
 
 +
'''Various examples'''
 +
<syntaxhighlight 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
 +
</syntaxhighlight>
 +
 
 +
'''File dialog open directory'''
 +
<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" NEW WAY
 +
-- win32
 +
local path = application:get("openDirectoryDialog", "Title", "C:\\tmp\\") -- "title", "path" win32 NEW WAY
 +
print(path)
 +
</syntaxhighlight>
 +
 
 +
'''File dialog open file'''
 +
<syntaxhighlight 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(
 +
-- "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)
 +
</syntaxhighlight>
 +
 
 +
'''File dialog save file'''
 +
<syntaxhighlight lang="lua">
 +
-- 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
 +
</syntaxhighlight>
 +
 
 +
'''Path File Exists'''
 +
<syntaxhighlight lang="lua">
 +
-- 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
 +
</syntaxhighlight>
  
 
{{Application}}
 
{{Application}}

Latest revision as of 10:38, 30 August 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

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!
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" DEPRECATED IN 2022.10
local path = application:get("openDirectoryDialog", "Title", "C:/tmp/") -- "title", "path" NEW WAY
-- win32
local path = application:get("openDirectoryDialog", "Title", "C:\\tmp\\") -- "title", "path" win32 NEW WAY
print(path)

File dialog open 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 save file

-- 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