Difference between revisions of "Application:get"

From GiderosMobile
(added example from rrraptor)
 
(21 intermediate revisions by 2 users not shown)
Line 5: Line 5:
 
=== Description ===
 
=== Description ===
 
Returns the state of the desktop setting provided as string parameter.
 
Returns the state of the desktop setting provided as string parameter.
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
varies = application:get(setting)
 
varies = application:get(setting)
</source>
+
</syntaxhighlight>
  
 
=== Parameters ===
 
=== Parameters ===
Line 15: Line 15:
 
'''Returns''' (varies) the value(s) of the setting
 
'''Returns''' (varies) the value(s) of the setting
  
=== Android ===
+
=== '''Compatibility table''' ===
For android this was added in Gideros 2020.4:
+
{| class="wikitable" style="text-align: center;"
<source lang="lua">
+
!!!QT!!Win32!!UWP!!Android!!Apple MacOS!!Apple iOS!!Apple tvOS!!Linux!!HTML
application:get("batteryLevel")
+
|-
</source>
+
|batteryLevel||||||||X||||X||||||
 +
|-
 +
|clipboard||X||X||||||||||||X||
 +
|-
 +
|commandLine||X||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 ===
'''Various examples'''
 
<source lang="lua">
 
print(application:get("windowTitle"))
 
print(application:get("documentDirectory"))
 
print(application:get("temporaryDirectory"))
 
print("\n")
 
 
-- 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">
+
<syntaxhighlight lang="lua">
 
print(application:get("help"))
 
print(application:get("help"))
 
--[[
 
--[[
Line 70: Line 90:
 
0
 
0
 
]]
 
]]
</source>
+
</syntaxhighlight>
 +
 
 +
'''Retrieves the whole command line'''
 +
<syntaxhighlight lang="lua">
 +
-- myapp.exe -param1 -param2
 +
application:get("commandLine")
 +
</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!
 +
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
 +
</syntaxhighlight>
 +
 
 +
'''File dialog open directory'''
 +
<syntaxhighlight lang="lua">
 +
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
 +
</syntaxhighlight>
 +
 
 +
'''File dialog open file'''
 +
<syntaxhighlight lang="lua">
 +
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)
 +
</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"
 +
-- 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
 +
</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
  
'''Opens the file browser window'''
+
-- Path File Exists for win32
<source lang="lua">
+
-- tests folder path (nil=doesn't exist, 1=exists)
local path = application:get("openFileDialog", "Title|D:/ML/|Text (*.txt);; Save file (*.save)")
+
if application:get("pathfileexists", application:get("directory", "pictures").."\\Folder01") == nil then
--local path = application:get("saveFileDialog", "Title|D:/ML/|Text (*.txt);; Save file (*.save)")
+
-- create it
--local path = application:get("openDirectoryDialog", "Title|D:/ML/")
+
application:set("mkDir", application:get("directory", "pictures").."\\Folder01")
print(path)
+
end
</source>
+
</syntaxhighlight>
  
 
{{Application}}
 
{{Application}}

Latest revision as of 18:07, 4 November 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 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
]]

Retrieves the whole command line

-- myapp.exe -param1 -param2
application:get("commandLine")

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