savant-echo 1.1.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/src/Savant.rb +120 -12
- data/bin/src/glade copy/Savant.glade +2248 -0
- data/bin/src/glade/Savant.glade +33 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 16b0cb3fdff0294e0f8655c9445fa4c55a78df50
|
4
|
+
data.tar.gz: 92227adeed112f8ea3dd2dc645ec464a95cf587a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5229747110247cec4d58be9d4529516ca98ceb5d8db530d893d6d27c813dc473559209952a9aaa8f189cef9cc09dab94dfcdbc4f00fd75d22a9397ed1d5809c8
|
7
|
+
data.tar.gz: 68471853a9cdf144e291ac565ec77d5814e34b852650162ac419d44851b050346a147a734c777325fc15018d4c5b9aa153a7385c2537754632e1720ce1d727ef
|
data/bin/src/Savant.rb
CHANGED
@@ -26,13 +26,56 @@ class Savant #< VR::ListView
|
|
26
26
|
@listviewhabridgeDevices = VR::ListView.new(:device => String)
|
27
27
|
end
|
28
28
|
|
29
|
-
#####Method to check to see if HA Bridge is running on host#####
|
29
|
+
#####Method to check to see if HA Bridge is running on host and check the version and updates available if so#####
|
30
30
|
def up?(ip, port)
|
31
31
|
if IPAddress.valid? ip
|
32
32
|
begin
|
33
33
|
http = Net::HTTP.start(ip, port, {open_timeout: 1, read_timeout: 1})
|
34
34
|
response = http.head("/")
|
35
35
|
if response.code == "200"
|
36
|
+
|
37
|
+
puts "HA Bridge is online at " + ip + ":" + port
|
38
|
+
#Query current habridge version
|
39
|
+
habridgeVersionURLstr = "http://" + @savantURL + ":8888/system/habridge/version"
|
40
|
+
uri = URI(habridgeVersionURLstr)
|
41
|
+
response = Net::HTTP.get(uri)
|
42
|
+
@habridgeVersion = response[12..-1]
|
43
|
+
@habridgeVersion = @habridgeVersion[0,5]
|
44
|
+
puts "Current installed version of ha bridge: " + @habridgeVersion
|
45
|
+
|
46
|
+
|
47
|
+
#Check github for latest version
|
48
|
+
uri = URI("https://api.github.com/repos/bwssytems/ha-bridge/releases/latest")
|
49
|
+
response = Net::HTTP.get(uri)
|
50
|
+
habridgeVersionHash = JSON.parse(response, object_class: OpenStruct)
|
51
|
+
@habridgeVersionRemote = habridgeVersionHash["tag_name"]
|
52
|
+
@habridgeVersionRemote = @habridgeVersionRemote[1..-1]
|
53
|
+
|
54
|
+
#Check for minimum required version for updated JSON syntax
|
55
|
+
if Gem::Version.new(@habridgeVersion) < Gem::Version.new("4.0.3")
|
56
|
+
alert "Please update HA bridge. Version prior to 4.0.0 used a different syntax and will not work with this tool."
|
57
|
+
@builder["buttonAdd"].hide
|
58
|
+
else
|
59
|
+
@builder["buttonAdd"].show
|
60
|
+
end
|
61
|
+
|
62
|
+
#Compare current version to new version and update UI based on result
|
63
|
+
if Gem::Version.new(@habridgeVersion) < Gem::Version.new(@habridgeVersionRemote)
|
64
|
+
labelHabridgeVersionText = "There is an HA bridge update available.\nInstalled version: " + @habridgeVersion + "\nVersion available: " + @habridgeVersionRemote
|
65
|
+
@builder["labelHabridgeVersion"].label = labelHabridgeVersionText
|
66
|
+
@builder["labelHabridgeVersion"].show
|
67
|
+
@builder["buttonHabridgeVersion"].show
|
68
|
+
else
|
69
|
+
labelHabridgeVersionText = "HA Bridge is up to date.\nInstalled version: " + @habridgeVersion + "\nVersion available: " + @habridgeVersionRemote
|
70
|
+
@builder["labelHabridgeVersion"].label = labelHabridgeVersionText
|
71
|
+
@builder["labelHabridgeVersion"].show
|
72
|
+
@builder["buttonHabridgeVersion"].hide
|
73
|
+
end
|
74
|
+
|
75
|
+
@habridgeRemoteFilename = habridgeVersionHash["assets"][0]["name"]
|
76
|
+
@habridgeRemoteURL = habridgeVersionHash["assets"][0]["browser_download_url"]
|
77
|
+
|
78
|
+
|
36
79
|
@builder["buttonHabridgeStatus"].label = "HA Bridge is Online\nClick to open in browser."
|
37
80
|
@builder["buttonBackupRestore"].show
|
38
81
|
if savantVersion?(@savantURL)
|
@@ -47,6 +90,8 @@ class Savant #< VR::ListView
|
|
47
90
|
@builder["buttonHabridgeStatus"].label = "HA Bridge is Offline\nClick for help."
|
48
91
|
@builder["buttonSceneSync"].hide
|
49
92
|
@builder["buttonBackupRestore"].hide
|
93
|
+
@builder["buttonHabridgeVersion"].hide
|
94
|
+
@builder["labelHabridgeVersion"].hide
|
50
95
|
@habridgeStatus = "Offline"
|
51
96
|
end
|
52
97
|
end
|
@@ -277,6 +322,7 @@ class Savant #< VR::ListView
|
|
277
322
|
def savantURL__changed(*argv)
|
278
323
|
@savantURL = @builder["savantURL"].text
|
279
324
|
up?(@savantURL,"8888")
|
325
|
+
|
280
326
|
end
|
281
327
|
|
282
328
|
#Test to see if habridge is running when IP address is changed
|
@@ -295,6 +341,53 @@ class Savant #< VR::ListView
|
|
295
341
|
system("open http://" + @savantURL + ":8888")
|
296
342
|
end
|
297
343
|
end
|
344
|
+
|
345
|
+
|
346
|
+
#####Update HA Bridge if online and there is a newer version available#####
|
347
|
+
def buttonHabridgeVersion__clicked(*argv)
|
348
|
+
if IPAddress.valid? @savantURL
|
349
|
+
if is_port_open?(@savantURL,"11263") || is_port_open?(@savantURL,"48664")
|
350
|
+
@builder["dialogInstall"].show
|
351
|
+
@builder["installStatus"].label = "Downloading latest version...\n\n"
|
352
|
+
clear_events()
|
353
|
+
login = 'RPM'
|
354
|
+
@password = 'RPM'
|
355
|
+
result = ''
|
356
|
+
Net::SSH.start(@savantURL, login, :password => @password, :paranoid => false) do |ssh|
|
357
|
+
|
358
|
+
#unload current bridge
|
359
|
+
result = ssh.exec!("launchctl unload /Users/RPM/Library/LaunchAgents/com.habridge.plist")
|
360
|
+
@builder["installStatus"].label += "Stopped existing ha bridge.\n\n"
|
361
|
+
clear_events()
|
362
|
+
|
363
|
+
#download new bridge
|
364
|
+
result = ssh.exec!("curl -L \"https://github.com/bwssytems/ha-bridge/releases/download/v" + @habridgeVersionRemote + "/" + @habridgeRemoteFilename + "\" -o /Users/RPM/habridge/" + @habridgeRemoteFilename)
|
365
|
+
@builder["installStatus"].label += "Downloading file...please wait.\n\n"
|
366
|
+
clear_events()
|
367
|
+
|
368
|
+
#update launch agent for new version
|
369
|
+
result = ssh.exec!("sed -i '' -e 's/ha-bridge.*jar/ha-bridge-" + @habridgeVersionRemote + ".jar/' /Users/RPM/Library/LaunchAgents/com.habridge.plist")
|
370
|
+
@builder["installStatus"].label += "Updating launch agent.\n\n"
|
371
|
+
clear_events()
|
372
|
+
sleep 1
|
373
|
+
|
374
|
+
#reload bridge
|
375
|
+
result = ssh.exec!("launchctl load /Users/RPM/Library/LaunchAgents/com.habridge.plist")
|
376
|
+
@builder["installStatus"].label += "Launching updated bridge.\n\n"
|
377
|
+
clear_events()
|
378
|
+
sleep 2
|
379
|
+
|
380
|
+
up?(@savantURL,"8888")
|
381
|
+
@builder["dialogInstall"].hide
|
382
|
+
alert "HA Bridge current version is now " + @habridgeVersion
|
383
|
+
end
|
384
|
+
else
|
385
|
+
alert "Racepoint services not running at specified IP Address. Target for installation must be a Savant Pro Host."
|
386
|
+
end
|
387
|
+
else
|
388
|
+
alert "Invalid IP Address."
|
389
|
+
end
|
390
|
+
end
|
298
391
|
|
299
392
|
##### #####
|
300
393
|
##### Help and installation window #####
|
@@ -613,6 +706,8 @@ class Savant #< VR::ListView
|
|
613
706
|
uri = URI(@haURLstr)
|
614
707
|
response = Net::HTTP.get(uri)
|
615
708
|
habridgeArray = JSON.parse(response, object_class: OpenStruct)
|
709
|
+
|
710
|
+
|
616
711
|
|
617
712
|
#build array of habridge device names
|
618
713
|
unless habridgeArray.to_s.empty?
|
@@ -715,7 +810,13 @@ you need to update the SCLI bridge on the next screen."
|
|
715
810
|
#Skip scenes that are already on the habridge
|
716
811
|
if !(@duplicateScenes.include? @sceneNameArray[0].downcase)
|
717
812
|
#build json string
|
718
|
-
|
813
|
+
#old method @haScene = %q{\{'name' : '} + @sceneNameArray[0] + %q{','deviceType' : 'custom','onUrl' : '} + @savantURLstr + %q{/activateScene%20\'} + @sceneNameArray[0].gsub(" ", "%20") + %q{\'%20\'} + @sceneIDArray[0] + %q{\'%20\'} + @sceneUserArray[0] + %q{\''\}}
|
814
|
+
|
815
|
+
|
816
|
+
@haScene = %q{\{'name' : '} + @sceneNameArray[0] + %q{','deviceType' : 'custom',} + "\'onUrl\' : \'\[\{\\\"item\\\":\\\"" + @savantURLstr + %q{/activateScene%20\'} + @sceneNameArray[0].gsub(" ", "%20") + %q{\'%20\'} + @sceneIDArray[0] + %q{\'%20\'} + @sceneUserArray[0] + %q{\'\",\"type\":\"httpDevice\"} + "}]\'}"
|
817
|
+
|
818
|
+
puts "\n\nPOST:" + @haScene
|
819
|
+
|
719
820
|
#post device to habridge
|
720
821
|
uri = URI.parse(@haURLstr)
|
721
822
|
begin
|
@@ -921,7 +1022,12 @@ ssh.exec!("launchctl unload /Users/RPM/Library/LaunchAgents/com.habridgescenesyn
|
|
921
1022
|
@requestOnArray = @savantRequestOn.split(/:/)
|
922
1023
|
#Add escapes and formatting to pass through JSON to Ha Bridge
|
923
1024
|
@requestOnCmd = @requestOnArray.shift.gsub!(/[- ']/, '-' => '\\\'-\\\'', ' ' => '%20')
|
924
|
-
|
1025
|
+
|
1026
|
+
#old version @strRequestOn = %q{'onUrl' : '} + @savantURLstr + %q{/servicerequestcommand%20\'} + @requestOnCmd + %q{\'}
|
1027
|
+
|
1028
|
+
@strRequestOn = "\'onUrl\' : \'\[\{\\\"item\\\":\\\"" + @savantURLstr + %q{/servicerequestcommand%20\'} + @requestOnCmd + %q{\'}
|
1029
|
+
|
1030
|
+
|
925
1031
|
else
|
926
1032
|
@error = "Not a valid On workflow."
|
927
1033
|
end
|
@@ -933,7 +1039,8 @@ ssh.exec!("launchctl unload /Users/RPM/Library/LaunchAgents/com.habridgescenesyn
|
|
933
1039
|
elsif @savantRequestOff.to_s.include?(":") || @savantRequestOff.to_s.include?("-")
|
934
1040
|
@requestOffArray = @savantRequestOff.split(/:/)
|
935
1041
|
@requestOffCmd = @requestOffArray.shift.gsub!(/[- ']/, '-' => '\\\'-\\\'', ' ' => '%20')
|
936
|
-
@strRequestOff = %q{'offUrl' : '} + @savantURLstr + %q{/servicerequestcommand%20\'} + @requestOffCmd + %q{\'}
|
1042
|
+
#old version @strRequestOff = %q{'offUrl' : '} + @savantURLstr + %q{/servicerequestcommand%20\'} + @requestOffCmd + %q{\'}
|
1043
|
+
@strRequestOff = "\'offUrl\' : \'\[\{\\\"item\\\":\\\"" + @savantURLstr + %q{/servicerequestcommand%20\'} + @requestOffCmd + %q{\'}
|
937
1044
|
else
|
938
1045
|
@error = "Not a valid Off workflow."
|
939
1046
|
end
|
@@ -945,7 +1052,8 @@ ssh.exec!("launchctl unload /Users/RPM/Library/LaunchAgents/com.habridgescenesyn
|
|
945
1052
|
elsif @savantRequestDim.to_s.include?(":") || @savantRequestDim.to_s.include?("-")
|
946
1053
|
@requestDimArray = @savantRequestDim.split(/:/)
|
947
1054
|
@requestDimCmd = @requestDimArray.shift.gsub!(/[- ']/, '-' => '\\\'-\\\'', ' ' => '%20')
|
948
|
-
@strRequestDim = %q{'dimUrl' : '} + @savantURLstr + %q{/servicerequestcommand%20\'} + @requestDimCmd + %q{\'}
|
1055
|
+
#old version @strRequestDim = %q{'dimUrl' : '} + @savantURLstr + %q{/servicerequestcommand%20\'} + @requestDimCmd + %q{\'}
|
1056
|
+
@strRequestDim = "\'dimUrl\' : \'\[\{\\\"item\\\":\\\"" + @savantURLstr + %q{/servicerequestcommand%20\'} + @requestDimCmd + %q{\'}
|
949
1057
|
else
|
950
1058
|
@error = "Not a valid Dim workflow."
|
951
1059
|
end
|
@@ -1023,7 +1131,7 @@ ssh.exec!("launchctl unload /Users/RPM/Library/LaunchAgents/com.habridgescenesyn
|
|
1023
1131
|
else
|
1024
1132
|
#Add JSON quote terminator is string is not empty
|
1025
1133
|
if !@savantRequestOn.to_s.empty?
|
1026
|
-
@strRequestOn += %q{'}
|
1134
|
+
@strRequestOn += %q{\",\"type\":\"httpDevice\"} + '}]\''
|
1027
1135
|
end
|
1028
1136
|
@requestOnComplex = 0
|
1029
1137
|
end
|
@@ -1092,7 +1200,7 @@ ssh.exec!("launchctl unload /Users/RPM/Library/LaunchAgents/com.habridgescenesyn
|
|
1092
1200
|
else
|
1093
1201
|
@requestOffComplex = 0
|
1094
1202
|
if !@savantRequestOff.to_s.empty?
|
1095
|
-
@strRequestOff += %q{'}
|
1203
|
+
@strRequestOff += %q{\",\"type\":\"httpDevice\"} + '}]\''
|
1096
1204
|
end
|
1097
1205
|
end
|
1098
1206
|
|
@@ -1160,7 +1268,7 @@ ssh.exec!("launchctl unload /Users/RPM/Library/LaunchAgents/com.habridgescenesyn
|
|
1160
1268
|
else
|
1161
1269
|
@requestDimComplex = 0
|
1162
1270
|
if !@savantRequestDim.to_s.empty?
|
1163
|
-
@strRequestDim += %q{'}
|
1271
|
+
@strRequestDim += %q{\",\"type\":\"httpDevice\"} + '}]\''
|
1164
1272
|
end
|
1165
1273
|
end
|
1166
1274
|
|
@@ -1259,7 +1367,7 @@ ssh.exec!("launchctl unload /Users/RPM/Library/LaunchAgents/com.habridgescenesyn
|
|
1259
1367
|
|
1260
1368
|
#Create On request string by joining each arg/val from array with proper JSON syntax
|
1261
1369
|
@strRequestOn += '%20\\\'' + requestOnValues.join('\\\'%20\\\'') + '\\\''
|
1262
|
-
@strRequestOn += %q{'}
|
1370
|
+
@strRequestOn += %q{\",\"type\":\"httpDevice\"} + '}]\''
|
1263
1371
|
|
1264
1372
|
#Hide On parameter window and check to see if Off or Dim commands had parameters, then show them. Else, send the string to the HA Bridge.
|
1265
1373
|
@builder["dialogOn"].hide
|
@@ -1340,7 +1448,7 @@ ssh.exec!("launchctl unload /Users/RPM/Library/LaunchAgents/com.habridgescenesyn
|
|
1340
1448
|
requestOffValues.push(@requestOffValue9)
|
1341
1449
|
end
|
1342
1450
|
@strRequestOff += '%20\\\'' + requestOffValues.join('\\\'%20\\\'') + '\\\''
|
1343
|
-
@strRequestOff += %q{'}
|
1451
|
+
@strRequestOff += %q{\",\"type\":\"httpDevice\"} + '}]\''
|
1344
1452
|
@builder["dialogOff"].hide
|
1345
1453
|
if @requestDimComplex == 1
|
1346
1454
|
@builder["dialogDim"].show
|
@@ -1418,7 +1526,7 @@ ssh.exec!("launchctl unload /Users/RPM/Library/LaunchAgents/com.habridgescenesyn
|
|
1418
1526
|
requestDimValues.push(@requestDimValue9)
|
1419
1527
|
end
|
1420
1528
|
@strRequestDim += '%20\\\'' + requestDimValues.join('\\\'%20\\\'') + '\\\''
|
1421
|
-
@strRequestDim += %q{'}
|
1529
|
+
@strRequestDim += %q{\",\"type\":\"httpDevice\"} + '}]\''
|
1422
1530
|
@builder["dialogDim"].hide
|
1423
1531
|
sendHaRequest()
|
1424
1532
|
end
|
@@ -1453,7 +1561,7 @@ ssh.exec!("launchctl unload /Users/RPM/Library/LaunchAgents/com.habridgescenesyn
|
|
1453
1561
|
end
|
1454
1562
|
@haRequest += %q{\}}
|
1455
1563
|
|
1456
|
-
|
1564
|
+
puts "\n\nHost SCLI bridge address = " + @savantURLstr + "\n\nHA Bridge address = " + @haURLstr + "\n\nDevice name = " + @haName + "\n\nOnCommand = " + @strRequestOn + "\n\nOffCommand = " + @strRequestOff + "\n\nDimCommand = " + @strRequestDim + "\n\nRequest String = " + @haRequest
|
1457
1565
|
|
1458
1566
|
|
1459
1567
|
#Send JSON string to specified host IP. Alert user of any errors or success.
|
@@ -0,0 +1,2248 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- Generated with glade 3.20.0 -->
|
3
|
+
<interface>
|
4
|
+
<requires lib="gtk+" version="3.0"/>
|
5
|
+
<object class="GtkWindow" id="window1">
|
6
|
+
<property name="width_request">800</property>
|
7
|
+
<property name="can_focus">False</property>
|
8
|
+
<property name="has_focus">True</property>
|
9
|
+
<property name="modal">True</property>
|
10
|
+
<property name="window_position">center-always</property>
|
11
|
+
<property name="urgency_hint">True</property>
|
12
|
+
<property name="has_resize_grip">True</property>
|
13
|
+
<child>
|
14
|
+
<object class="GtkGrid">
|
15
|
+
<property name="visible">True</property>
|
16
|
+
<property name="can_focus">False</property>
|
17
|
+
<property name="margin_left">12</property>
|
18
|
+
<property name="margin_right">12</property>
|
19
|
+
<child>
|
20
|
+
<object class="GtkLabel">
|
21
|
+
<property name="visible">True</property>
|
22
|
+
<property name="can_focus">False</property>
|
23
|
+
<property name="margin_top">12</property>
|
24
|
+
<property name="margin_bottom">12</property>
|
25
|
+
<property name="label" translatable="yes"><big><b>Savant Echo Integration</b></big></property>
|
26
|
+
<property name="use_markup">True</property>
|
27
|
+
</object>
|
28
|
+
<packing>
|
29
|
+
<property name="left_attach">0</property>
|
30
|
+
<property name="top_attach">0</property>
|
31
|
+
</packing>
|
32
|
+
</child>
|
33
|
+
<child>
|
34
|
+
<object class="GtkFrame">
|
35
|
+
<property name="visible">True</property>
|
36
|
+
<property name="can_focus">False</property>
|
37
|
+
<property name="hexpand">True</property>
|
38
|
+
<property name="label_xalign">0</property>
|
39
|
+
<property name="shadow_type">none</property>
|
40
|
+
<child>
|
41
|
+
<object class="GtkAlignment">
|
42
|
+
<property name="visible">True</property>
|
43
|
+
<property name="can_focus">False</property>
|
44
|
+
<property name="hexpand">True</property>
|
45
|
+
<property name="left_padding">12</property>
|
46
|
+
<child>
|
47
|
+
<object class="GtkGrid">
|
48
|
+
<property name="visible">True</property>
|
49
|
+
<property name="can_focus">False</property>
|
50
|
+
<child>
|
51
|
+
<object class="GtkEntry" id="savantURL">
|
52
|
+
<property name="visible">True</property>
|
53
|
+
<property name="can_focus">True</property>
|
54
|
+
<property name="has_focus">True</property>
|
55
|
+
<property name="is_focus">True</property>
|
56
|
+
<property name="halign">start</property>
|
57
|
+
<property name="margin_right">12</property>
|
58
|
+
<property name="width_chars">50</property>
|
59
|
+
</object>
|
60
|
+
<packing>
|
61
|
+
<property name="left_attach">0</property>
|
62
|
+
<property name="top_attach">0</property>
|
63
|
+
</packing>
|
64
|
+
</child>
|
65
|
+
<child>
|
66
|
+
<object class="GtkButton" id="buttonHabridgeStatus">
|
67
|
+
<property name="label" translatable="yes">button</property>
|
68
|
+
<property name="visible">True</property>
|
69
|
+
<property name="can_focus">True</property>
|
70
|
+
<property name="receives_default">True</property>
|
71
|
+
<property name="halign">end</property>
|
72
|
+
<property name="hexpand">True</property>
|
73
|
+
<property name="image_position">right</property>
|
74
|
+
</object>
|
75
|
+
<packing>
|
76
|
+
<property name="left_attach">1</property>
|
77
|
+
<property name="top_attach">0</property>
|
78
|
+
</packing>
|
79
|
+
</child>
|
80
|
+
</object>
|
81
|
+
</child>
|
82
|
+
</object>
|
83
|
+
</child>
|
84
|
+
<child type="label">
|
85
|
+
<object class="GtkLabel">
|
86
|
+
<property name="visible">True</property>
|
87
|
+
<property name="can_focus">False</property>
|
88
|
+
<property name="margin_left">12</property>
|
89
|
+
<property name="margin_top">8</property>
|
90
|
+
<property name="margin_bottom">8</property>
|
91
|
+
<property name="label" translatable="yes">Savant Pro Host IP Address</property>
|
92
|
+
</object>
|
93
|
+
</child>
|
94
|
+
</object>
|
95
|
+
<packing>
|
96
|
+
<property name="left_attach">0</property>
|
97
|
+
<property name="top_attach">1</property>
|
98
|
+
</packing>
|
99
|
+
</child>
|
100
|
+
<child>
|
101
|
+
<object class="GtkFrame">
|
102
|
+
<property name="visible">True</property>
|
103
|
+
<property name="can_focus">False</property>
|
104
|
+
<property name="hexpand">True</property>
|
105
|
+
<property name="label_xalign">0</property>
|
106
|
+
<property name="shadow_type">none</property>
|
107
|
+
<child>
|
108
|
+
<object class="GtkAlignment">
|
109
|
+
<property name="visible">True</property>
|
110
|
+
<property name="can_focus">False</property>
|
111
|
+
<property name="hexpand">True</property>
|
112
|
+
<property name="left_padding">12</property>
|
113
|
+
<child>
|
114
|
+
<object class="GtkGrid">
|
115
|
+
<property name="visible">True</property>
|
116
|
+
<property name="can_focus">False</property>
|
117
|
+
<child>
|
118
|
+
<object class="GtkEntry" id="haName">
|
119
|
+
<property name="visible">True</property>
|
120
|
+
<property name="can_focus">True</property>
|
121
|
+
<property name="halign">start</property>
|
122
|
+
<property name="width_chars">50</property>
|
123
|
+
</object>
|
124
|
+
<packing>
|
125
|
+
<property name="left_attach">0</property>
|
126
|
+
<property name="top_attach">0</property>
|
127
|
+
</packing>
|
128
|
+
</child>
|
129
|
+
<child>
|
130
|
+
<object class="GtkButton" id="buttonSceneSync">
|
131
|
+
<property name="label" translatable="yes">button</property>
|
132
|
+
<property name="visible">True</property>
|
133
|
+
<property name="can_focus">True</property>
|
134
|
+
<property name="receives_default">True</property>
|
135
|
+
<property name="halign">end</property>
|
136
|
+
<property name="hexpand">True</property>
|
137
|
+
<property name="image_position">right</property>
|
138
|
+
</object>
|
139
|
+
<packing>
|
140
|
+
<property name="left_attach">1</property>
|
141
|
+
<property name="top_attach">0</property>
|
142
|
+
</packing>
|
143
|
+
</child>
|
144
|
+
</object>
|
145
|
+
</child>
|
146
|
+
</object>
|
147
|
+
</child>
|
148
|
+
<child type="label">
|
149
|
+
<object class="GtkLabel">
|
150
|
+
<property name="visible">True</property>
|
151
|
+
<property name="can_focus">False</property>
|
152
|
+
<property name="margin_left">12</property>
|
153
|
+
<property name="margin_top">8</property>
|
154
|
+
<property name="margin_bottom">8</property>
|
155
|
+
<property name="label" translatable="yes">Device Name for Alexa Keyword</property>
|
156
|
+
</object>
|
157
|
+
</child>
|
158
|
+
</object>
|
159
|
+
<packing>
|
160
|
+
<property name="left_attach">0</property>
|
161
|
+
<property name="top_attach">2</property>
|
162
|
+
</packing>
|
163
|
+
</child>
|
164
|
+
<child>
|
165
|
+
<object class="GtkFrame">
|
166
|
+
<property name="visible">True</property>
|
167
|
+
<property name="can_focus">False</property>
|
168
|
+
<property name="hexpand">True</property>
|
169
|
+
<property name="label_xalign">0</property>
|
170
|
+
<property name="shadow_type">none</property>
|
171
|
+
<child>
|
172
|
+
<object class="GtkGrid">
|
173
|
+
<property name="visible">True</property>
|
174
|
+
<property name="can_focus">False</property>
|
175
|
+
<child>
|
176
|
+
<object class="GtkAlignment">
|
177
|
+
<property name="visible">True</property>
|
178
|
+
<property name="can_focus">False</property>
|
179
|
+
<property name="hexpand">True</property>
|
180
|
+
<property name="left_padding">12</property>
|
181
|
+
<child>
|
182
|
+
<object class="GtkEntry" id="savantRequestOn">
|
183
|
+
<property name="visible">True</property>
|
184
|
+
<property name="can_focus">True</property>
|
185
|
+
<property name="margin_right">12</property>
|
186
|
+
<property name="hexpand">True</property>
|
187
|
+
</object>
|
188
|
+
</child>
|
189
|
+
</object>
|
190
|
+
<packing>
|
191
|
+
<property name="left_attach">0</property>
|
192
|
+
<property name="top_attach">0</property>
|
193
|
+
</packing>
|
194
|
+
</child>
|
195
|
+
<child>
|
196
|
+
<object class="GtkCheckButton" id="buttonOnZoneOnly">
|
197
|
+
<property name="label" translatable="yes">Zone Request</property>
|
198
|
+
<property name="visible">True</property>
|
199
|
+
<property name="can_focus">True</property>
|
200
|
+
<property name="receives_default">False</property>
|
201
|
+
<property name="margin_right">12</property>
|
202
|
+
<property name="draw_indicator">True</property>
|
203
|
+
</object>
|
204
|
+
<packing>
|
205
|
+
<property name="left_attach">1</property>
|
206
|
+
<property name="top_attach">0</property>
|
207
|
+
</packing>
|
208
|
+
</child>
|
209
|
+
</object>
|
210
|
+
</child>
|
211
|
+
<child type="label">
|
212
|
+
<object class="GtkLabel">
|
213
|
+
<property name="visible">True</property>
|
214
|
+
<property name="can_focus">False</property>
|
215
|
+
<property name="margin_left">12</property>
|
216
|
+
<property name="margin_top">8</property>
|
217
|
+
<property name="margin_bottom">8</property>
|
218
|
+
<property name="label" translatable="yes">"On" 3rd Party Request</property>
|
219
|
+
</object>
|
220
|
+
</child>
|
221
|
+
</object>
|
222
|
+
<packing>
|
223
|
+
<property name="left_attach">0</property>
|
224
|
+
<property name="top_attach">3</property>
|
225
|
+
</packing>
|
226
|
+
</child>
|
227
|
+
<child>
|
228
|
+
<object class="GtkFrame">
|
229
|
+
<property name="visible">True</property>
|
230
|
+
<property name="can_focus">False</property>
|
231
|
+
<property name="hexpand">True</property>
|
232
|
+
<property name="label_xalign">0</property>
|
233
|
+
<property name="shadow_type">none</property>
|
234
|
+
<child>
|
235
|
+
<object class="GtkAlignment">
|
236
|
+
<property name="visible">True</property>
|
237
|
+
<property name="can_focus">False</property>
|
238
|
+
<property name="hexpand">True</property>
|
239
|
+
<property name="left_padding">12</property>
|
240
|
+
<child>
|
241
|
+
<object class="GtkGrid">
|
242
|
+
<property name="visible">True</property>
|
243
|
+
<property name="can_focus">False</property>
|
244
|
+
<child>
|
245
|
+
<object class="GtkEntry" id="savantRequestOff">
|
246
|
+
<property name="visible">True</property>
|
247
|
+
<property name="can_focus">True</property>
|
248
|
+
<property name="margin_right">12</property>
|
249
|
+
<property name="hexpand">True</property>
|
250
|
+
</object>
|
251
|
+
<packing>
|
252
|
+
<property name="left_attach">0</property>
|
253
|
+
<property name="top_attach">0</property>
|
254
|
+
</packing>
|
255
|
+
</child>
|
256
|
+
<child>
|
257
|
+
<object class="GtkCheckButton" id="buttonOffZoneOnly">
|
258
|
+
<property name="label" translatable="yes">Zone Request</property>
|
259
|
+
<property name="visible">True</property>
|
260
|
+
<property name="can_focus">True</property>
|
261
|
+
<property name="receives_default">False</property>
|
262
|
+
<property name="margin_right">12</property>
|
263
|
+
<property name="draw_indicator">True</property>
|
264
|
+
</object>
|
265
|
+
<packing>
|
266
|
+
<property name="left_attach">1</property>
|
267
|
+
<property name="top_attach">0</property>
|
268
|
+
</packing>
|
269
|
+
</child>
|
270
|
+
</object>
|
271
|
+
</child>
|
272
|
+
</object>
|
273
|
+
</child>
|
274
|
+
<child type="label">
|
275
|
+
<object class="GtkLabel">
|
276
|
+
<property name="visible">True</property>
|
277
|
+
<property name="can_focus">False</property>
|
278
|
+
<property name="margin_left">12</property>
|
279
|
+
<property name="margin_top">8</property>
|
280
|
+
<property name="margin_bottom">8</property>
|
281
|
+
<property name="label" translatable="yes">"Off" 3rd Party Request</property>
|
282
|
+
</object>
|
283
|
+
</child>
|
284
|
+
</object>
|
285
|
+
<packing>
|
286
|
+
<property name="left_attach">0</property>
|
287
|
+
<property name="top_attach">4</property>
|
288
|
+
</packing>
|
289
|
+
</child>
|
290
|
+
<child>
|
291
|
+
<object class="GtkFrame">
|
292
|
+
<property name="visible">True</property>
|
293
|
+
<property name="can_focus">False</property>
|
294
|
+
<property name="hexpand">True</property>
|
295
|
+
<property name="label_xalign">0</property>
|
296
|
+
<property name="shadow_type">none</property>
|
297
|
+
<child>
|
298
|
+
<object class="GtkAlignment">
|
299
|
+
<property name="visible">True</property>
|
300
|
+
<property name="can_focus">False</property>
|
301
|
+
<property name="hexpand">True</property>
|
302
|
+
<property name="left_padding">12</property>
|
303
|
+
<child>
|
304
|
+
<object class="GtkGrid">
|
305
|
+
<property name="visible">True</property>
|
306
|
+
<property name="can_focus">False</property>
|
307
|
+
<child>
|
308
|
+
<object class="GtkEntry" id="savantRequestDim">
|
309
|
+
<property name="visible">True</property>
|
310
|
+
<property name="can_focus">True</property>
|
311
|
+
<property name="margin_right">12</property>
|
312
|
+
<property name="hexpand">True</property>
|
313
|
+
</object>
|
314
|
+
<packing>
|
315
|
+
<property name="left_attach">0</property>
|
316
|
+
<property name="top_attach">0</property>
|
317
|
+
</packing>
|
318
|
+
</child>
|
319
|
+
<child>
|
320
|
+
<object class="GtkCheckButton" id="buttonDimZoneOnly">
|
321
|
+
<property name="label" translatable="yes">Zone Request</property>
|
322
|
+
<property name="visible">True</property>
|
323
|
+
<property name="can_focus">True</property>
|
324
|
+
<property name="receives_default">False</property>
|
325
|
+
<property name="margin_right">12</property>
|
326
|
+
<property name="draw_indicator">True</property>
|
327
|
+
</object>
|
328
|
+
<packing>
|
329
|
+
<property name="left_attach">1</property>
|
330
|
+
<property name="top_attach">0</property>
|
331
|
+
</packing>
|
332
|
+
</child>
|
333
|
+
</object>
|
334
|
+
</child>
|
335
|
+
</object>
|
336
|
+
</child>
|
337
|
+
<child type="label">
|
338
|
+
<object class="GtkLabel">
|
339
|
+
<property name="visible">True</property>
|
340
|
+
<property name="can_focus">False</property>
|
341
|
+
<property name="margin_left">12</property>
|
342
|
+
<property name="margin_top">8</property>
|
343
|
+
<property name="margin_bottom">8</property>
|
344
|
+
<property name="label" translatable="yes">"Dim" 3rd Party Request</property>
|
345
|
+
</object>
|
346
|
+
</child>
|
347
|
+
</object>
|
348
|
+
<packing>
|
349
|
+
<property name="left_attach">0</property>
|
350
|
+
<property name="top_attach">5</property>
|
351
|
+
</packing>
|
352
|
+
</child>
|
353
|
+
<child>
|
354
|
+
<object class="GtkGrid">
|
355
|
+
<property name="visible">True</property>
|
356
|
+
<property name="can_focus">False</property>
|
357
|
+
<property name="margin_left">12</property>
|
358
|
+
<property name="margin_right">12</property>
|
359
|
+
<property name="column_homogeneous">True</property>
|
360
|
+
<child>
|
361
|
+
<object class="GtkButtonBox">
|
362
|
+
<property name="visible">True</property>
|
363
|
+
<property name="can_focus">False</property>
|
364
|
+
<property name="margin_top">12</property>
|
365
|
+
<property name="margin_bottom">12</property>
|
366
|
+
<property name="spacing">7</property>
|
367
|
+
<property name="layout_style">end</property>
|
368
|
+
<child>
|
369
|
+
<object class="GtkButton" id="buttonAdd">
|
370
|
+
<property name="label" translatable="yes">Add</property>
|
371
|
+
<property name="visible">True</property>
|
372
|
+
<property name="can_focus">True</property>
|
373
|
+
<property name="receives_default">True</property>
|
374
|
+
</object>
|
375
|
+
<packing>
|
376
|
+
<property name="expand">True</property>
|
377
|
+
<property name="fill">True</property>
|
378
|
+
<property name="position">0</property>
|
379
|
+
</packing>
|
380
|
+
</child>
|
381
|
+
<child>
|
382
|
+
<object class="GtkButton" id="buttonExit">
|
383
|
+
<property name="label" translatable="yes">Exit</property>
|
384
|
+
<property name="visible">True</property>
|
385
|
+
<property name="can_focus">True</property>
|
386
|
+
<property name="receives_default">True</property>
|
387
|
+
</object>
|
388
|
+
<packing>
|
389
|
+
<property name="expand">True</property>
|
390
|
+
<property name="fill">True</property>
|
391
|
+
<property name="position">1</property>
|
392
|
+
</packing>
|
393
|
+
</child>
|
394
|
+
</object>
|
395
|
+
<packing>
|
396
|
+
<property name="left_attach">1</property>
|
397
|
+
<property name="top_attach">0</property>
|
398
|
+
</packing>
|
399
|
+
</child>
|
400
|
+
<child>
|
401
|
+
<object class="GtkButtonBox">
|
402
|
+
<property name="visible">True</property>
|
403
|
+
<property name="can_focus">False</property>
|
404
|
+
<property name="layout_style">start</property>
|
405
|
+
<child>
|
406
|
+
<object class="GtkButton" id="buttonBackupRestore">
|
407
|
+
<property name="label" translatable="yes">Backup/Restore</property>
|
408
|
+
<property name="visible">True</property>
|
409
|
+
<property name="can_focus">True</property>
|
410
|
+
<property name="receives_default">True</property>
|
411
|
+
</object>
|
412
|
+
<packing>
|
413
|
+
<property name="expand">True</property>
|
414
|
+
<property name="fill">True</property>
|
415
|
+
<property name="position">0</property>
|
416
|
+
</packing>
|
417
|
+
</child>
|
418
|
+
</object>
|
419
|
+
<packing>
|
420
|
+
<property name="left_attach">0</property>
|
421
|
+
<property name="top_attach">0</property>
|
422
|
+
</packing>
|
423
|
+
</child>
|
424
|
+
</object>
|
425
|
+
<packing>
|
426
|
+
<property name="left_attach">0</property>
|
427
|
+
<property name="top_attach">6</property>
|
428
|
+
</packing>
|
429
|
+
</child>
|
430
|
+
</object>
|
431
|
+
</child>
|
432
|
+
</object>
|
433
|
+
<object class="GtkDialog" id="dialogDim">
|
434
|
+
<property name="can_focus">False</property>
|
435
|
+
<property name="margin_left">6</property>
|
436
|
+
<property name="margin_right">6</property>
|
437
|
+
<property name="modal">True</property>
|
438
|
+
<property name="window_position">center-on-parent</property>
|
439
|
+
<property name="default_width">320</property>
|
440
|
+
<property name="default_height">260</property>
|
441
|
+
<property name="destroy_with_parent">True</property>
|
442
|
+
<property name="type_hint">dialog</property>
|
443
|
+
<property name="urgency_hint">True</property>
|
444
|
+
<property name="transient_for">window1</property>
|
445
|
+
<child internal-child="vbox">
|
446
|
+
<object class="GtkBox">
|
447
|
+
<property name="can_focus">False</property>
|
448
|
+
<property name="margin_left">6</property>
|
449
|
+
<property name="margin_right">6</property>
|
450
|
+
<property name="margin_top">12</property>
|
451
|
+
<property name="margin_bottom">12</property>
|
452
|
+
<property name="orientation">vertical</property>
|
453
|
+
<property name="spacing">2</property>
|
454
|
+
<child internal-child="action_area">
|
455
|
+
<object class="GtkButtonBox">
|
456
|
+
<property name="can_focus">False</property>
|
457
|
+
<property name="layout_style">end</property>
|
458
|
+
<child>
|
459
|
+
<object class="GtkButton" id="buttonAcceptDim">
|
460
|
+
<property name="label" translatable="yes">Accept</property>
|
461
|
+
<property name="visible">True</property>
|
462
|
+
<property name="can_focus">True</property>
|
463
|
+
<property name="receives_default">True</property>
|
464
|
+
<property name="margin_top">6</property>
|
465
|
+
</object>
|
466
|
+
<packing>
|
467
|
+
<property name="expand">True</property>
|
468
|
+
<property name="fill">True</property>
|
469
|
+
<property name="position">0</property>
|
470
|
+
</packing>
|
471
|
+
</child>
|
472
|
+
<child>
|
473
|
+
<object class="GtkButton" id="buttonCancelDim">
|
474
|
+
<property name="label" translatable="yes">Cancel</property>
|
475
|
+
<property name="visible">True</property>
|
476
|
+
<property name="can_focus">True</property>
|
477
|
+
<property name="receives_default">True</property>
|
478
|
+
<property name="margin_right">6</property>
|
479
|
+
<property name="margin_top">6</property>
|
480
|
+
</object>
|
481
|
+
<packing>
|
482
|
+
<property name="expand">True</property>
|
483
|
+
<property name="fill">True</property>
|
484
|
+
<property name="position">1</property>
|
485
|
+
</packing>
|
486
|
+
</child>
|
487
|
+
</object>
|
488
|
+
<packing>
|
489
|
+
<property name="expand">False</property>
|
490
|
+
<property name="fill">False</property>
|
491
|
+
<property name="position">0</property>
|
492
|
+
</packing>
|
493
|
+
</child>
|
494
|
+
<child>
|
495
|
+
<object class="GtkGrid">
|
496
|
+
<property name="visible">True</property>
|
497
|
+
<property name="can_focus">False</property>
|
498
|
+
<child>
|
499
|
+
<object class="GtkLabel">
|
500
|
+
<property name="visible">True</property>
|
501
|
+
<property name="can_focus">False</property>
|
502
|
+
<property name="margin_bottom">5</property>
|
503
|
+
<property name="label" translatable="yes"><big><b>"Dim" Action Arguments</b></big>
|
504
|
+
|
505
|
+
Enter "percent" to derive 0-100 value from voice command.</property>
|
506
|
+
<property name="use_markup">True</property>
|
507
|
+
<property name="justify">center</property>
|
508
|
+
</object>
|
509
|
+
<packing>
|
510
|
+
<property name="left_attach">0</property>
|
511
|
+
<property name="top_attach">0</property>
|
512
|
+
</packing>
|
513
|
+
</child>
|
514
|
+
<child>
|
515
|
+
<object class="GtkFrame" id="frameDimArg1">
|
516
|
+
<property name="visible">True</property>
|
517
|
+
<property name="can_focus">False</property>
|
518
|
+
<property name="hexpand">True</property>
|
519
|
+
<property name="label_xalign">0</property>
|
520
|
+
<property name="shadow_type">none</property>
|
521
|
+
<child>
|
522
|
+
<object class="GtkAlignment">
|
523
|
+
<property name="visible">True</property>
|
524
|
+
<property name="can_focus">False</property>
|
525
|
+
<property name="left_padding">12</property>
|
526
|
+
<child>
|
527
|
+
<object class="GtkEntry" id="requestDimValue1">
|
528
|
+
<property name="visible">True</property>
|
529
|
+
<property name="can_focus">True</property>
|
530
|
+
</object>
|
531
|
+
</child>
|
532
|
+
</object>
|
533
|
+
</child>
|
534
|
+
<child type="label">
|
535
|
+
<object class="GtkLabel" id="requestDimArg1">
|
536
|
+
<property name="name">12</property>
|
537
|
+
<property name="visible">True</property>
|
538
|
+
<property name="can_focus">False</property>
|
539
|
+
<property name="margin_top">10</property>
|
540
|
+
</object>
|
541
|
+
</child>
|
542
|
+
</object>
|
543
|
+
<packing>
|
544
|
+
<property name="left_attach">0</property>
|
545
|
+
<property name="top_attach">1</property>
|
546
|
+
</packing>
|
547
|
+
</child>
|
548
|
+
<child>
|
549
|
+
<object class="GtkFrame" id="frameDimArg2">
|
550
|
+
<property name="visible">True</property>
|
551
|
+
<property name="can_focus">False</property>
|
552
|
+
<property name="label_xalign">0</property>
|
553
|
+
<property name="shadow_type">none</property>
|
554
|
+
<child>
|
555
|
+
<object class="GtkAlignment">
|
556
|
+
<property name="visible">True</property>
|
557
|
+
<property name="can_focus">False</property>
|
558
|
+
<property name="left_padding">12</property>
|
559
|
+
<child>
|
560
|
+
<object class="GtkEntry" id="requestDimValue2">
|
561
|
+
<property name="visible">True</property>
|
562
|
+
<property name="can_focus">True</property>
|
563
|
+
</object>
|
564
|
+
</child>
|
565
|
+
</object>
|
566
|
+
</child>
|
567
|
+
<child type="label">
|
568
|
+
<object class="GtkLabel" id="requestDimArg2">
|
569
|
+
<property name="name">12</property>
|
570
|
+
<property name="visible">True</property>
|
571
|
+
<property name="can_focus">False</property>
|
572
|
+
<property name="margin_top">10</property>
|
573
|
+
</object>
|
574
|
+
</child>
|
575
|
+
</object>
|
576
|
+
<packing>
|
577
|
+
<property name="left_attach">0</property>
|
578
|
+
<property name="top_attach">2</property>
|
579
|
+
</packing>
|
580
|
+
</child>
|
581
|
+
<child>
|
582
|
+
<object class="GtkFrame" id="frameDimArg3">
|
583
|
+
<property name="visible">True</property>
|
584
|
+
<property name="can_focus">False</property>
|
585
|
+
<property name="label_xalign">0</property>
|
586
|
+
<property name="shadow_type">none</property>
|
587
|
+
<child>
|
588
|
+
<object class="GtkAlignment">
|
589
|
+
<property name="visible">True</property>
|
590
|
+
<property name="can_focus">False</property>
|
591
|
+
<property name="left_padding">12</property>
|
592
|
+
<child>
|
593
|
+
<object class="GtkEntry" id="requestDimValue3">
|
594
|
+
<property name="visible">True</property>
|
595
|
+
<property name="can_focus">True</property>
|
596
|
+
</object>
|
597
|
+
</child>
|
598
|
+
</object>
|
599
|
+
</child>
|
600
|
+
<child type="label">
|
601
|
+
<object class="GtkLabel" id="requestDimArg3">
|
602
|
+
<property name="name">12</property>
|
603
|
+
<property name="visible">True</property>
|
604
|
+
<property name="can_focus">False</property>
|
605
|
+
<property name="margin_top">10</property>
|
606
|
+
</object>
|
607
|
+
</child>
|
608
|
+
</object>
|
609
|
+
<packing>
|
610
|
+
<property name="left_attach">0</property>
|
611
|
+
<property name="top_attach">3</property>
|
612
|
+
</packing>
|
613
|
+
</child>
|
614
|
+
<child>
|
615
|
+
<object class="GtkFrame" id="frameDimArg4">
|
616
|
+
<property name="visible">True</property>
|
617
|
+
<property name="can_focus">False</property>
|
618
|
+
<property name="label_xalign">0</property>
|
619
|
+
<property name="shadow_type">none</property>
|
620
|
+
<child>
|
621
|
+
<object class="GtkAlignment">
|
622
|
+
<property name="visible">True</property>
|
623
|
+
<property name="can_focus">False</property>
|
624
|
+
<property name="left_padding">12</property>
|
625
|
+
<child>
|
626
|
+
<object class="GtkEntry" id="requestDimValue4">
|
627
|
+
<property name="visible">True</property>
|
628
|
+
<property name="can_focus">True</property>
|
629
|
+
</object>
|
630
|
+
</child>
|
631
|
+
</object>
|
632
|
+
</child>
|
633
|
+
<child type="label">
|
634
|
+
<object class="GtkLabel" id="requestDimArg4">
|
635
|
+
<property name="name">12</property>
|
636
|
+
<property name="visible">True</property>
|
637
|
+
<property name="can_focus">False</property>
|
638
|
+
<property name="margin_top">10</property>
|
639
|
+
</object>
|
640
|
+
</child>
|
641
|
+
</object>
|
642
|
+
<packing>
|
643
|
+
<property name="left_attach">0</property>
|
644
|
+
<property name="top_attach">4</property>
|
645
|
+
</packing>
|
646
|
+
</child>
|
647
|
+
<child>
|
648
|
+
<object class="GtkFrame" id="frameDimArg5">
|
649
|
+
<property name="visible">True</property>
|
650
|
+
<property name="can_focus">False</property>
|
651
|
+
<property name="label_xalign">0</property>
|
652
|
+
<property name="shadow_type">none</property>
|
653
|
+
<child>
|
654
|
+
<object class="GtkAlignment">
|
655
|
+
<property name="visible">True</property>
|
656
|
+
<property name="can_focus">False</property>
|
657
|
+
<property name="left_padding">12</property>
|
658
|
+
<child>
|
659
|
+
<object class="GtkEntry" id="requestDimValue5">
|
660
|
+
<property name="visible">True</property>
|
661
|
+
<property name="can_focus">True</property>
|
662
|
+
</object>
|
663
|
+
</child>
|
664
|
+
</object>
|
665
|
+
</child>
|
666
|
+
<child type="label">
|
667
|
+
<object class="GtkLabel" id="requestDimArg5">
|
668
|
+
<property name="name">12</property>
|
669
|
+
<property name="visible">True</property>
|
670
|
+
<property name="can_focus">False</property>
|
671
|
+
<property name="margin_top">10</property>
|
672
|
+
</object>
|
673
|
+
</child>
|
674
|
+
</object>
|
675
|
+
<packing>
|
676
|
+
<property name="left_attach">0</property>
|
677
|
+
<property name="top_attach">5</property>
|
678
|
+
</packing>
|
679
|
+
</child>
|
680
|
+
<child>
|
681
|
+
<object class="GtkFrame" id="frameDimArg6">
|
682
|
+
<property name="visible">True</property>
|
683
|
+
<property name="can_focus">False</property>
|
684
|
+
<property name="label_xalign">0</property>
|
685
|
+
<property name="shadow_type">none</property>
|
686
|
+
<child>
|
687
|
+
<object class="GtkAlignment">
|
688
|
+
<property name="visible">True</property>
|
689
|
+
<property name="can_focus">False</property>
|
690
|
+
<property name="left_padding">12</property>
|
691
|
+
<child>
|
692
|
+
<object class="GtkEntry" id="requestDimValue6">
|
693
|
+
<property name="visible">True</property>
|
694
|
+
<property name="can_focus">True</property>
|
695
|
+
</object>
|
696
|
+
</child>
|
697
|
+
</object>
|
698
|
+
</child>
|
699
|
+
<child type="label">
|
700
|
+
<object class="GtkLabel" id="requestDimArg6">
|
701
|
+
<property name="name">12</property>
|
702
|
+
<property name="visible">True</property>
|
703
|
+
<property name="can_focus">False</property>
|
704
|
+
<property name="margin_top">10</property>
|
705
|
+
</object>
|
706
|
+
</child>
|
707
|
+
</object>
|
708
|
+
<packing>
|
709
|
+
<property name="left_attach">0</property>
|
710
|
+
<property name="top_attach">6</property>
|
711
|
+
</packing>
|
712
|
+
</child>
|
713
|
+
<child>
|
714
|
+
<object class="GtkFrame" id="frameDimArg7">
|
715
|
+
<property name="visible">True</property>
|
716
|
+
<property name="can_focus">False</property>
|
717
|
+
<property name="label_xalign">0</property>
|
718
|
+
<property name="shadow_type">none</property>
|
719
|
+
<child>
|
720
|
+
<object class="GtkAlignment">
|
721
|
+
<property name="visible">True</property>
|
722
|
+
<property name="can_focus">False</property>
|
723
|
+
<property name="left_padding">12</property>
|
724
|
+
<child>
|
725
|
+
<object class="GtkEntry" id="requestDimValue7">
|
726
|
+
<property name="visible">True</property>
|
727
|
+
<property name="can_focus">True</property>
|
728
|
+
</object>
|
729
|
+
</child>
|
730
|
+
</object>
|
731
|
+
</child>
|
732
|
+
<child type="label">
|
733
|
+
<object class="GtkLabel" id="requestDimArg7">
|
734
|
+
<property name="name">12</property>
|
735
|
+
<property name="visible">True</property>
|
736
|
+
<property name="can_focus">False</property>
|
737
|
+
<property name="margin_top">10</property>
|
738
|
+
</object>
|
739
|
+
</child>
|
740
|
+
</object>
|
741
|
+
<packing>
|
742
|
+
<property name="left_attach">0</property>
|
743
|
+
<property name="top_attach">7</property>
|
744
|
+
</packing>
|
745
|
+
</child>
|
746
|
+
<child>
|
747
|
+
<object class="GtkFrame" id="frameDimArg8">
|
748
|
+
<property name="visible">True</property>
|
749
|
+
<property name="can_focus">False</property>
|
750
|
+
<property name="label_xalign">0</property>
|
751
|
+
<property name="shadow_type">none</property>
|
752
|
+
<child>
|
753
|
+
<object class="GtkAlignment">
|
754
|
+
<property name="visible">True</property>
|
755
|
+
<property name="can_focus">False</property>
|
756
|
+
<property name="left_padding">12</property>
|
757
|
+
<child>
|
758
|
+
<object class="GtkEntry" id="requestDimValue8">
|
759
|
+
<property name="visible">True</property>
|
760
|
+
<property name="can_focus">True</property>
|
761
|
+
</object>
|
762
|
+
</child>
|
763
|
+
</object>
|
764
|
+
</child>
|
765
|
+
<child type="label">
|
766
|
+
<object class="GtkLabel" id="requestDimArg8">
|
767
|
+
<property name="name">12</property>
|
768
|
+
<property name="visible">True</property>
|
769
|
+
<property name="can_focus">False</property>
|
770
|
+
<property name="margin_top">10</property>
|
771
|
+
</object>
|
772
|
+
</child>
|
773
|
+
</object>
|
774
|
+
<packing>
|
775
|
+
<property name="left_attach">0</property>
|
776
|
+
<property name="top_attach">8</property>
|
777
|
+
</packing>
|
778
|
+
</child>
|
779
|
+
<child>
|
780
|
+
<object class="GtkFrame" id="frameDimArg9">
|
781
|
+
<property name="visible">True</property>
|
782
|
+
<property name="can_focus">False</property>
|
783
|
+
<property name="label_xalign">0</property>
|
784
|
+
<property name="shadow_type">none</property>
|
785
|
+
<child>
|
786
|
+
<object class="GtkAlignment">
|
787
|
+
<property name="visible">True</property>
|
788
|
+
<property name="can_focus">False</property>
|
789
|
+
<property name="left_padding">12</property>
|
790
|
+
<child>
|
791
|
+
<object class="GtkEntry" id="requestDimValue9">
|
792
|
+
<property name="visible">True</property>
|
793
|
+
<property name="can_focus">True</property>
|
794
|
+
</object>
|
795
|
+
</child>
|
796
|
+
</object>
|
797
|
+
</child>
|
798
|
+
<child type="label">
|
799
|
+
<object class="GtkLabel" id="requestDimArg9">
|
800
|
+
<property name="name">12</property>
|
801
|
+
<property name="visible">True</property>
|
802
|
+
<property name="can_focus">False</property>
|
803
|
+
<property name="margin_top">10</property>
|
804
|
+
</object>
|
805
|
+
</child>
|
806
|
+
</object>
|
807
|
+
<packing>
|
808
|
+
<property name="left_attach">0</property>
|
809
|
+
<property name="top_attach">9</property>
|
810
|
+
</packing>
|
811
|
+
</child>
|
812
|
+
</object>
|
813
|
+
<packing>
|
814
|
+
<property name="expand">False</property>
|
815
|
+
<property name="fill">True</property>
|
816
|
+
<property name="position">1</property>
|
817
|
+
</packing>
|
818
|
+
</child>
|
819
|
+
</object>
|
820
|
+
</child>
|
821
|
+
</object>
|
822
|
+
<object class="GtkDialog" id="dialogHelp">
|
823
|
+
<property name="can_focus">False</property>
|
824
|
+
<property name="modal">True</property>
|
825
|
+
<property name="window_position">center-on-parent</property>
|
826
|
+
<property name="destroy_with_parent">True</property>
|
827
|
+
<property name="type_hint">dialog</property>
|
828
|
+
<property name="urgency_hint">True</property>
|
829
|
+
<property name="transient_for">window1</property>
|
830
|
+
<child internal-child="vbox">
|
831
|
+
<object class="GtkBox">
|
832
|
+
<property name="can_focus">False</property>
|
833
|
+
<property name="margin_left">12</property>
|
834
|
+
<property name="margin_right">12</property>
|
835
|
+
<property name="margin_top">6</property>
|
836
|
+
<property name="margin_bottom">6</property>
|
837
|
+
<property name="orientation">vertical</property>
|
838
|
+
<property name="spacing">2</property>
|
839
|
+
<child internal-child="action_area">
|
840
|
+
<object class="GtkButtonBox">
|
841
|
+
<property name="can_focus">False</property>
|
842
|
+
<property name="layout_style">end</property>
|
843
|
+
<child>
|
844
|
+
<object class="GtkButton" id="buttonHelpInstall">
|
845
|
+
<property name="label" translatable="yes">Install</property>
|
846
|
+
<property name="visible">True</property>
|
847
|
+
<property name="can_focus">True</property>
|
848
|
+
<property name="receives_default">True</property>
|
849
|
+
<property name="margin_top">12</property>
|
850
|
+
</object>
|
851
|
+
<packing>
|
852
|
+
<property name="expand">True</property>
|
853
|
+
<property name="fill">True</property>
|
854
|
+
<property name="position">0</property>
|
855
|
+
</packing>
|
856
|
+
</child>
|
857
|
+
<child>
|
858
|
+
<object class="GtkButton" id="buttonHelpUninstall">
|
859
|
+
<property name="label" translatable="yes">Uninstall</property>
|
860
|
+
<property name="visible">True</property>
|
861
|
+
<property name="can_focus">True</property>
|
862
|
+
<property name="receives_default">True</property>
|
863
|
+
<property name="margin_top">12</property>
|
864
|
+
</object>
|
865
|
+
<packing>
|
866
|
+
<property name="expand">True</property>
|
867
|
+
<property name="fill">True</property>
|
868
|
+
<property name="position">1</property>
|
869
|
+
</packing>
|
870
|
+
</child>
|
871
|
+
<child>
|
872
|
+
<object class="GtkButton" id="buttonHelpCancel">
|
873
|
+
<property name="label" translatable="yes">Cancel</property>
|
874
|
+
<property name="visible">True</property>
|
875
|
+
<property name="can_focus">True</property>
|
876
|
+
<property name="receives_default">True</property>
|
877
|
+
<property name="margin_top">12</property>
|
878
|
+
</object>
|
879
|
+
<packing>
|
880
|
+
<property name="expand">True</property>
|
881
|
+
<property name="fill">True</property>
|
882
|
+
<property name="position">2</property>
|
883
|
+
</packing>
|
884
|
+
</child>
|
885
|
+
</object>
|
886
|
+
<packing>
|
887
|
+
<property name="expand">False</property>
|
888
|
+
<property name="fill">False</property>
|
889
|
+
<property name="position">4</property>
|
890
|
+
</packing>
|
891
|
+
</child>
|
892
|
+
<child>
|
893
|
+
<object class="GtkLabel">
|
894
|
+
<property name="visible">True</property>
|
895
|
+
<property name="can_focus">False</property>
|
896
|
+
<property name="label" translatable="yes"><big><b>Savant Echo Bridge Help</b></big></property>
|
897
|
+
<property name="use_markup">True</property>
|
898
|
+
</object>
|
899
|
+
<packing>
|
900
|
+
<property name="expand">False</property>
|
901
|
+
<property name="fill">True</property>
|
902
|
+
<property name="position">0</property>
|
903
|
+
</packing>
|
904
|
+
</child>
|
905
|
+
<child>
|
906
|
+
<object class="GtkLabel">
|
907
|
+
<property name="visible">True</property>
|
908
|
+
<property name="can_focus">False</property>
|
909
|
+
<property name="label" translatable="yes">
|
910
|
+
Savant, Amazon Echo, HA Bridge, and
|
911
|
+
SCLI HTTP Bridge Integration by Corey Miller
|
912
|
+
Requires installation of SCLI_HTTP ruby script,
|
913
|
+
Java JDK, and LaunchAgents on Savant Pro Host.
|
914
|
+
Choose install below to setup on host on local network.
|
915
|
+
|
916
|
+
Click on one of the below links to verify components are
|
917
|
+
correctly installed on host on local network.</property>
|
918
|
+
<property name="justify">center</property>
|
919
|
+
</object>
|
920
|
+
<packing>
|
921
|
+
<property name="expand">False</property>
|
922
|
+
<property name="fill">True</property>
|
923
|
+
<property name="position">1</property>
|
924
|
+
</packing>
|
925
|
+
</child>
|
926
|
+
<child>
|
927
|
+
<object class="GtkGrid">
|
928
|
+
<property name="visible">True</property>
|
929
|
+
<property name="can_focus">False</property>
|
930
|
+
<property name="margin_top">12</property>
|
931
|
+
<property name="margin_bottom">12</property>
|
932
|
+
<child>
|
933
|
+
<object class="GtkEntry" id="savantHelpURL">
|
934
|
+
<property name="visible">True</property>
|
935
|
+
<property name="can_focus">True</property>
|
936
|
+
<property name="hexpand">True</property>
|
937
|
+
</object>
|
938
|
+
<packing>
|
939
|
+
<property name="left_attach">1</property>
|
940
|
+
<property name="top_attach">0</property>
|
941
|
+
</packing>
|
942
|
+
</child>
|
943
|
+
<child>
|
944
|
+
<object class="GtkLabel">
|
945
|
+
<property name="visible">True</property>
|
946
|
+
<property name="can_focus">False</property>
|
947
|
+
<property name="label" translatable="yes">Savant Pro Host IP Address: </property>
|
948
|
+
<property name="justify">right</property>
|
949
|
+
</object>
|
950
|
+
<packing>
|
951
|
+
<property name="left_attach">0</property>
|
952
|
+
<property name="top_attach">0</property>
|
953
|
+
</packing>
|
954
|
+
</child>
|
955
|
+
</object>
|
956
|
+
<packing>
|
957
|
+
<property name="expand">False</property>
|
958
|
+
<property name="fill">True</property>
|
959
|
+
<property name="position">2</property>
|
960
|
+
</packing>
|
961
|
+
</child>
|
962
|
+
<child>
|
963
|
+
<object class="GtkButton" id="buttonHelpHAbridge">
|
964
|
+
<property name="label" translatable="yes">Launch HA Bridge</property>
|
965
|
+
<property name="visible">True</property>
|
966
|
+
<property name="can_focus">True</property>
|
967
|
+
<property name="receives_default">True</property>
|
968
|
+
<property name="margin_bottom">6</property>
|
969
|
+
</object>
|
970
|
+
<packing>
|
971
|
+
<property name="expand">False</property>
|
972
|
+
<property name="fill">True</property>
|
973
|
+
<property name="position">3</property>
|
974
|
+
</packing>
|
975
|
+
</child>
|
976
|
+
<child>
|
977
|
+
<object class="GtkButton" id="buttonHelpSCLIbridge">
|
978
|
+
<property name="label" translatable="yes">Launch SCLI HTTP Bridge</property>
|
979
|
+
<property name="visible">True</property>
|
980
|
+
<property name="can_focus">True</property>
|
981
|
+
<property name="receives_default">True</property>
|
982
|
+
</object>
|
983
|
+
<packing>
|
984
|
+
<property name="expand">False</property>
|
985
|
+
<property name="fill">True</property>
|
986
|
+
<property name="position">4</property>
|
987
|
+
</packing>
|
988
|
+
</child>
|
989
|
+
</object>
|
990
|
+
</child>
|
991
|
+
</object>
|
992
|
+
<object class="GtkDialog" id="dialogInstall">
|
993
|
+
<property name="can_focus">False</property>
|
994
|
+
<property name="modal">True</property>
|
995
|
+
<property name="window_position">center-on-parent</property>
|
996
|
+
<property name="default_width">320</property>
|
997
|
+
<property name="default_height">260</property>
|
998
|
+
<property name="destroy_with_parent">True</property>
|
999
|
+
<property name="type_hint">dialog</property>
|
1000
|
+
<property name="urgency_hint">True</property>
|
1001
|
+
<property name="transient_for">dialogHelp</property>
|
1002
|
+
<child internal-child="vbox">
|
1003
|
+
<object class="GtkBox">
|
1004
|
+
<property name="can_focus">False</property>
|
1005
|
+
<property name="margin_left">12</property>
|
1006
|
+
<property name="margin_right">12</property>
|
1007
|
+
<property name="margin_top">12</property>
|
1008
|
+
<property name="margin_bottom">12</property>
|
1009
|
+
<property name="hexpand">True</property>
|
1010
|
+
<property name="vexpand">True</property>
|
1011
|
+
<property name="orientation">vertical</property>
|
1012
|
+
<property name="spacing">2</property>
|
1013
|
+
<child internal-child="action_area">
|
1014
|
+
<object class="GtkButtonBox">
|
1015
|
+
<property name="can_focus">False</property>
|
1016
|
+
<property name="layout_style">end</property>
|
1017
|
+
<child>
|
1018
|
+
<object class="GtkButton" id="buttonInstallOK">
|
1019
|
+
<property name="label" translatable="yes">OK</property>
|
1020
|
+
<property name="can_focus">True</property>
|
1021
|
+
<property name="receives_default">True</property>
|
1022
|
+
</object>
|
1023
|
+
<packing>
|
1024
|
+
<property name="expand">True</property>
|
1025
|
+
<property name="fill">True</property>
|
1026
|
+
<property name="position">0</property>
|
1027
|
+
</packing>
|
1028
|
+
</child>
|
1029
|
+
<child>
|
1030
|
+
<object class="GtkButton" id="buttonInstallCancel">
|
1031
|
+
<property name="label" translatable="yes">Cancel</property>
|
1032
|
+
<property name="can_focus">True</property>
|
1033
|
+
<property name="receives_default">True</property>
|
1034
|
+
</object>
|
1035
|
+
<packing>
|
1036
|
+
<property name="expand">True</property>
|
1037
|
+
<property name="fill">True</property>
|
1038
|
+
<property name="position">1</property>
|
1039
|
+
</packing>
|
1040
|
+
</child>
|
1041
|
+
</object>
|
1042
|
+
<packing>
|
1043
|
+
<property name="expand">False</property>
|
1044
|
+
<property name="fill">False</property>
|
1045
|
+
<property name="position">0</property>
|
1046
|
+
</packing>
|
1047
|
+
</child>
|
1048
|
+
<child>
|
1049
|
+
<object class="GtkFrame">
|
1050
|
+
<property name="visible">True</property>
|
1051
|
+
<property name="can_focus">False</property>
|
1052
|
+
<property name="hexpand">True</property>
|
1053
|
+
<property name="vexpand">True</property>
|
1054
|
+
<property name="label_xalign">0</property>
|
1055
|
+
<property name="shadow_type">none</property>
|
1056
|
+
<child>
|
1057
|
+
<object class="GtkAlignment">
|
1058
|
+
<property name="height_request">80</property>
|
1059
|
+
<property name="visible">True</property>
|
1060
|
+
<property name="can_focus">False</property>
|
1061
|
+
<property name="halign">start</property>
|
1062
|
+
<property name="valign">start</property>
|
1063
|
+
<property name="margin_top">12</property>
|
1064
|
+
<property name="margin_bottom">12</property>
|
1065
|
+
<property name="hexpand">True</property>
|
1066
|
+
<property name="vexpand">True</property>
|
1067
|
+
<property name="left_padding">12</property>
|
1068
|
+
<child>
|
1069
|
+
<object class="GtkLabel" id="installStatus">
|
1070
|
+
<property name="visible">True</property>
|
1071
|
+
<property name="app_paintable">True</property>
|
1072
|
+
<property name="can_focus">False</property>
|
1073
|
+
<property name="hexpand">True</property>
|
1074
|
+
<property name="vexpand">True</property>
|
1075
|
+
</object>
|
1076
|
+
</child>
|
1077
|
+
</object>
|
1078
|
+
</child>
|
1079
|
+
<child type="label">
|
1080
|
+
<object class="GtkLabel">
|
1081
|
+
<property name="visible">True</property>
|
1082
|
+
<property name="can_focus">False</property>
|
1083
|
+
<property name="margin_bottom">12</property>
|
1084
|
+
<property name="label" translatable="yes"><big><b>Installation Progress</b></big></property>
|
1085
|
+
<property name="use_markup">True</property>
|
1086
|
+
<property name="justify">center</property>
|
1087
|
+
</object>
|
1088
|
+
</child>
|
1089
|
+
</object>
|
1090
|
+
<packing>
|
1091
|
+
<property name="expand">False</property>
|
1092
|
+
<property name="fill">True</property>
|
1093
|
+
<property name="position">1</property>
|
1094
|
+
</packing>
|
1095
|
+
</child>
|
1096
|
+
</object>
|
1097
|
+
</child>
|
1098
|
+
</object>
|
1099
|
+
<object class="GtkDialog" id="dialogOff">
|
1100
|
+
<property name="can_focus">False</property>
|
1101
|
+
<property name="margin_left">6</property>
|
1102
|
+
<property name="margin_right">6</property>
|
1103
|
+
<property name="modal">True</property>
|
1104
|
+
<property name="window_position">center-on-parent</property>
|
1105
|
+
<property name="default_width">320</property>
|
1106
|
+
<property name="default_height">260</property>
|
1107
|
+
<property name="destroy_with_parent">True</property>
|
1108
|
+
<property name="type_hint">dialog</property>
|
1109
|
+
<property name="urgency_hint">True</property>
|
1110
|
+
<property name="transient_for">window1</property>
|
1111
|
+
<child internal-child="vbox">
|
1112
|
+
<object class="GtkBox">
|
1113
|
+
<property name="can_focus">False</property>
|
1114
|
+
<property name="margin_left">6</property>
|
1115
|
+
<property name="margin_right">6</property>
|
1116
|
+
<property name="margin_top">12</property>
|
1117
|
+
<property name="margin_bottom">12</property>
|
1118
|
+
<property name="orientation">vertical</property>
|
1119
|
+
<property name="spacing">2</property>
|
1120
|
+
<child internal-child="action_area">
|
1121
|
+
<object class="GtkButtonBox">
|
1122
|
+
<property name="can_focus">False</property>
|
1123
|
+
<property name="layout_style">end</property>
|
1124
|
+
<child>
|
1125
|
+
<object class="GtkButton" id="buttonAcceptOff">
|
1126
|
+
<property name="label" translatable="yes">Accept</property>
|
1127
|
+
<property name="visible">True</property>
|
1128
|
+
<property name="can_focus">True</property>
|
1129
|
+
<property name="receives_default">True</property>
|
1130
|
+
<property name="margin_top">6</property>
|
1131
|
+
</object>
|
1132
|
+
<packing>
|
1133
|
+
<property name="expand">True</property>
|
1134
|
+
<property name="fill">True</property>
|
1135
|
+
<property name="position">0</property>
|
1136
|
+
</packing>
|
1137
|
+
</child>
|
1138
|
+
<child>
|
1139
|
+
<object class="GtkButton" id="buttonCancelOff">
|
1140
|
+
<property name="label" translatable="yes">Cancel</property>
|
1141
|
+
<property name="visible">True</property>
|
1142
|
+
<property name="can_focus">True</property>
|
1143
|
+
<property name="receives_default">True</property>
|
1144
|
+
<property name="margin_right">6</property>
|
1145
|
+
<property name="margin_top">6</property>
|
1146
|
+
</object>
|
1147
|
+
<packing>
|
1148
|
+
<property name="expand">True</property>
|
1149
|
+
<property name="fill">True</property>
|
1150
|
+
<property name="position">1</property>
|
1151
|
+
</packing>
|
1152
|
+
</child>
|
1153
|
+
</object>
|
1154
|
+
<packing>
|
1155
|
+
<property name="expand">False</property>
|
1156
|
+
<property name="fill">False</property>
|
1157
|
+
<property name="position">0</property>
|
1158
|
+
</packing>
|
1159
|
+
</child>
|
1160
|
+
<child>
|
1161
|
+
<object class="GtkGrid">
|
1162
|
+
<property name="visible">True</property>
|
1163
|
+
<property name="can_focus">False</property>
|
1164
|
+
<child>
|
1165
|
+
<object class="GtkLabel">
|
1166
|
+
<property name="visible">True</property>
|
1167
|
+
<property name="can_focus">False</property>
|
1168
|
+
<property name="margin_bottom">5</property>
|
1169
|
+
<property name="label" translatable="yes"><big><b>"Off" Action Arguments</b></big>
|
1170
|
+
|
1171
|
+
Enter "percent" to derive 0-100 value from voice command.</property>
|
1172
|
+
<property name="use_markup">True</property>
|
1173
|
+
<property name="justify">center</property>
|
1174
|
+
</object>
|
1175
|
+
<packing>
|
1176
|
+
<property name="left_attach">0</property>
|
1177
|
+
<property name="top_attach">0</property>
|
1178
|
+
</packing>
|
1179
|
+
</child>
|
1180
|
+
<child>
|
1181
|
+
<object class="GtkFrame" id="frameOffArg1">
|
1182
|
+
<property name="visible">True</property>
|
1183
|
+
<property name="can_focus">False</property>
|
1184
|
+
<property name="hexpand">True</property>
|
1185
|
+
<property name="label_xalign">0</property>
|
1186
|
+
<property name="shadow_type">none</property>
|
1187
|
+
<child>
|
1188
|
+
<object class="GtkAlignment">
|
1189
|
+
<property name="visible">True</property>
|
1190
|
+
<property name="can_focus">False</property>
|
1191
|
+
<property name="left_padding">12</property>
|
1192
|
+
<child>
|
1193
|
+
<object class="GtkEntry" id="requestOffValue1">
|
1194
|
+
<property name="visible">True</property>
|
1195
|
+
<property name="can_focus">True</property>
|
1196
|
+
</object>
|
1197
|
+
</child>
|
1198
|
+
</object>
|
1199
|
+
</child>
|
1200
|
+
<child type="label">
|
1201
|
+
<object class="GtkLabel" id="requestOffArg1">
|
1202
|
+
<property name="name">12</property>
|
1203
|
+
<property name="visible">True</property>
|
1204
|
+
<property name="can_focus">False</property>
|
1205
|
+
<property name="margin_top">10</property>
|
1206
|
+
</object>
|
1207
|
+
</child>
|
1208
|
+
</object>
|
1209
|
+
<packing>
|
1210
|
+
<property name="left_attach">0</property>
|
1211
|
+
<property name="top_attach">1</property>
|
1212
|
+
</packing>
|
1213
|
+
</child>
|
1214
|
+
<child>
|
1215
|
+
<object class="GtkFrame" id="frameOffArg2">
|
1216
|
+
<property name="visible">True</property>
|
1217
|
+
<property name="can_focus">False</property>
|
1218
|
+
<property name="label_xalign">0</property>
|
1219
|
+
<property name="shadow_type">none</property>
|
1220
|
+
<child>
|
1221
|
+
<object class="GtkAlignment">
|
1222
|
+
<property name="visible">True</property>
|
1223
|
+
<property name="can_focus">False</property>
|
1224
|
+
<property name="left_padding">12</property>
|
1225
|
+
<child>
|
1226
|
+
<object class="GtkEntry" id="requestOffValue2">
|
1227
|
+
<property name="visible">True</property>
|
1228
|
+
<property name="can_focus">True</property>
|
1229
|
+
</object>
|
1230
|
+
</child>
|
1231
|
+
</object>
|
1232
|
+
</child>
|
1233
|
+
<child type="label">
|
1234
|
+
<object class="GtkLabel" id="requestOffArg2">
|
1235
|
+
<property name="name">12</property>
|
1236
|
+
<property name="visible">True</property>
|
1237
|
+
<property name="can_focus">False</property>
|
1238
|
+
<property name="margin_top">10</property>
|
1239
|
+
</object>
|
1240
|
+
</child>
|
1241
|
+
</object>
|
1242
|
+
<packing>
|
1243
|
+
<property name="left_attach">0</property>
|
1244
|
+
<property name="top_attach">2</property>
|
1245
|
+
</packing>
|
1246
|
+
</child>
|
1247
|
+
<child>
|
1248
|
+
<object class="GtkFrame" id="frameOffArg3">
|
1249
|
+
<property name="visible">True</property>
|
1250
|
+
<property name="can_focus">False</property>
|
1251
|
+
<property name="label_xalign">0</property>
|
1252
|
+
<property name="shadow_type">none</property>
|
1253
|
+
<child>
|
1254
|
+
<object class="GtkAlignment">
|
1255
|
+
<property name="visible">True</property>
|
1256
|
+
<property name="can_focus">False</property>
|
1257
|
+
<property name="left_padding">12</property>
|
1258
|
+
<child>
|
1259
|
+
<object class="GtkEntry" id="requestOffValue3">
|
1260
|
+
<property name="visible">True</property>
|
1261
|
+
<property name="can_focus">True</property>
|
1262
|
+
</object>
|
1263
|
+
</child>
|
1264
|
+
</object>
|
1265
|
+
</child>
|
1266
|
+
<child type="label">
|
1267
|
+
<object class="GtkLabel" id="requestOffArg3">
|
1268
|
+
<property name="name">12</property>
|
1269
|
+
<property name="visible">True</property>
|
1270
|
+
<property name="can_focus">False</property>
|
1271
|
+
<property name="margin_top">10</property>
|
1272
|
+
</object>
|
1273
|
+
</child>
|
1274
|
+
</object>
|
1275
|
+
<packing>
|
1276
|
+
<property name="left_attach">0</property>
|
1277
|
+
<property name="top_attach">3</property>
|
1278
|
+
</packing>
|
1279
|
+
</child>
|
1280
|
+
<child>
|
1281
|
+
<object class="GtkFrame" id="frameOffArg4">
|
1282
|
+
<property name="visible">True</property>
|
1283
|
+
<property name="can_focus">False</property>
|
1284
|
+
<property name="label_xalign">0</property>
|
1285
|
+
<property name="shadow_type">none</property>
|
1286
|
+
<child>
|
1287
|
+
<object class="GtkAlignment">
|
1288
|
+
<property name="visible">True</property>
|
1289
|
+
<property name="can_focus">False</property>
|
1290
|
+
<property name="left_padding">12</property>
|
1291
|
+
<child>
|
1292
|
+
<object class="GtkEntry" id="requestOffValue4">
|
1293
|
+
<property name="visible">True</property>
|
1294
|
+
<property name="can_focus">True</property>
|
1295
|
+
</object>
|
1296
|
+
</child>
|
1297
|
+
</object>
|
1298
|
+
</child>
|
1299
|
+
<child type="label">
|
1300
|
+
<object class="GtkLabel" id="requestOffArg4">
|
1301
|
+
<property name="name">12</property>
|
1302
|
+
<property name="visible">True</property>
|
1303
|
+
<property name="can_focus">False</property>
|
1304
|
+
<property name="margin_top">10</property>
|
1305
|
+
</object>
|
1306
|
+
</child>
|
1307
|
+
</object>
|
1308
|
+
<packing>
|
1309
|
+
<property name="left_attach">0</property>
|
1310
|
+
<property name="top_attach">4</property>
|
1311
|
+
</packing>
|
1312
|
+
</child>
|
1313
|
+
<child>
|
1314
|
+
<object class="GtkFrame" id="frameOffArg5">
|
1315
|
+
<property name="visible">True</property>
|
1316
|
+
<property name="can_focus">False</property>
|
1317
|
+
<property name="label_xalign">0</property>
|
1318
|
+
<property name="shadow_type">none</property>
|
1319
|
+
<child>
|
1320
|
+
<object class="GtkAlignment">
|
1321
|
+
<property name="visible">True</property>
|
1322
|
+
<property name="can_focus">False</property>
|
1323
|
+
<property name="left_padding">12</property>
|
1324
|
+
<child>
|
1325
|
+
<object class="GtkEntry" id="requestOffValue5">
|
1326
|
+
<property name="visible">True</property>
|
1327
|
+
<property name="can_focus">True</property>
|
1328
|
+
</object>
|
1329
|
+
</child>
|
1330
|
+
</object>
|
1331
|
+
</child>
|
1332
|
+
<child type="label">
|
1333
|
+
<object class="GtkLabel" id="requestOffArg5">
|
1334
|
+
<property name="name">12</property>
|
1335
|
+
<property name="visible">True</property>
|
1336
|
+
<property name="can_focus">False</property>
|
1337
|
+
<property name="margin_top">10</property>
|
1338
|
+
</object>
|
1339
|
+
</child>
|
1340
|
+
</object>
|
1341
|
+
<packing>
|
1342
|
+
<property name="left_attach">0</property>
|
1343
|
+
<property name="top_attach">5</property>
|
1344
|
+
</packing>
|
1345
|
+
</child>
|
1346
|
+
<child>
|
1347
|
+
<object class="GtkFrame" id="frameOffArg6">
|
1348
|
+
<property name="visible">True</property>
|
1349
|
+
<property name="can_focus">False</property>
|
1350
|
+
<property name="label_xalign">0</property>
|
1351
|
+
<property name="shadow_type">none</property>
|
1352
|
+
<child>
|
1353
|
+
<object class="GtkAlignment">
|
1354
|
+
<property name="visible">True</property>
|
1355
|
+
<property name="can_focus">False</property>
|
1356
|
+
<property name="left_padding">12</property>
|
1357
|
+
<child>
|
1358
|
+
<object class="GtkEntry" id="requestOffValue6">
|
1359
|
+
<property name="visible">True</property>
|
1360
|
+
<property name="can_focus">True</property>
|
1361
|
+
</object>
|
1362
|
+
</child>
|
1363
|
+
</object>
|
1364
|
+
</child>
|
1365
|
+
<child type="label">
|
1366
|
+
<object class="GtkLabel" id="requestOffArg6">
|
1367
|
+
<property name="name">12</property>
|
1368
|
+
<property name="visible">True</property>
|
1369
|
+
<property name="can_focus">False</property>
|
1370
|
+
<property name="margin_top">10</property>
|
1371
|
+
</object>
|
1372
|
+
</child>
|
1373
|
+
</object>
|
1374
|
+
<packing>
|
1375
|
+
<property name="left_attach">0</property>
|
1376
|
+
<property name="top_attach">6</property>
|
1377
|
+
</packing>
|
1378
|
+
</child>
|
1379
|
+
<child>
|
1380
|
+
<object class="GtkFrame" id="frameOffArg7">
|
1381
|
+
<property name="visible">True</property>
|
1382
|
+
<property name="can_focus">False</property>
|
1383
|
+
<property name="label_xalign">0</property>
|
1384
|
+
<property name="shadow_type">none</property>
|
1385
|
+
<child>
|
1386
|
+
<object class="GtkAlignment">
|
1387
|
+
<property name="visible">True</property>
|
1388
|
+
<property name="can_focus">False</property>
|
1389
|
+
<property name="left_padding">12</property>
|
1390
|
+
<child>
|
1391
|
+
<object class="GtkEntry" id="requestOffValue7">
|
1392
|
+
<property name="visible">True</property>
|
1393
|
+
<property name="can_focus">True</property>
|
1394
|
+
</object>
|
1395
|
+
</child>
|
1396
|
+
</object>
|
1397
|
+
</child>
|
1398
|
+
<child type="label">
|
1399
|
+
<object class="GtkLabel" id="requestOffArg7">
|
1400
|
+
<property name="name">12</property>
|
1401
|
+
<property name="visible">True</property>
|
1402
|
+
<property name="can_focus">False</property>
|
1403
|
+
<property name="margin_top">10</property>
|
1404
|
+
</object>
|
1405
|
+
</child>
|
1406
|
+
</object>
|
1407
|
+
<packing>
|
1408
|
+
<property name="left_attach">0</property>
|
1409
|
+
<property name="top_attach">7</property>
|
1410
|
+
</packing>
|
1411
|
+
</child>
|
1412
|
+
<child>
|
1413
|
+
<object class="GtkFrame" id="frameOffArg8">
|
1414
|
+
<property name="visible">True</property>
|
1415
|
+
<property name="can_focus">False</property>
|
1416
|
+
<property name="label_xalign">0</property>
|
1417
|
+
<property name="shadow_type">none</property>
|
1418
|
+
<child>
|
1419
|
+
<object class="GtkAlignment">
|
1420
|
+
<property name="visible">True</property>
|
1421
|
+
<property name="can_focus">False</property>
|
1422
|
+
<property name="left_padding">12</property>
|
1423
|
+
<child>
|
1424
|
+
<object class="GtkEntry" id="requestOffValue8">
|
1425
|
+
<property name="visible">True</property>
|
1426
|
+
<property name="can_focus">True</property>
|
1427
|
+
</object>
|
1428
|
+
</child>
|
1429
|
+
</object>
|
1430
|
+
</child>
|
1431
|
+
<child type="label">
|
1432
|
+
<object class="GtkLabel" id="requestOffArg8">
|
1433
|
+
<property name="name">12</property>
|
1434
|
+
<property name="visible">True</property>
|
1435
|
+
<property name="can_focus">False</property>
|
1436
|
+
<property name="margin_top">10</property>
|
1437
|
+
</object>
|
1438
|
+
</child>
|
1439
|
+
</object>
|
1440
|
+
<packing>
|
1441
|
+
<property name="left_attach">0</property>
|
1442
|
+
<property name="top_attach">8</property>
|
1443
|
+
</packing>
|
1444
|
+
</child>
|
1445
|
+
<child>
|
1446
|
+
<object class="GtkFrame" id="frameOffArg9">
|
1447
|
+
<property name="visible">True</property>
|
1448
|
+
<property name="can_focus">False</property>
|
1449
|
+
<property name="label_xalign">0</property>
|
1450
|
+
<property name="shadow_type">none</property>
|
1451
|
+
<child>
|
1452
|
+
<object class="GtkAlignment">
|
1453
|
+
<property name="visible">True</property>
|
1454
|
+
<property name="can_focus">False</property>
|
1455
|
+
<property name="left_padding">12</property>
|
1456
|
+
<child>
|
1457
|
+
<object class="GtkEntry" id="requestOffValue9">
|
1458
|
+
<property name="visible">True</property>
|
1459
|
+
<property name="can_focus">True</property>
|
1460
|
+
</object>
|
1461
|
+
</child>
|
1462
|
+
</object>
|
1463
|
+
</child>
|
1464
|
+
<child type="label">
|
1465
|
+
<object class="GtkLabel" id="requestOffArg9">
|
1466
|
+
<property name="name">12</property>
|
1467
|
+
<property name="visible">True</property>
|
1468
|
+
<property name="can_focus">False</property>
|
1469
|
+
<property name="margin_top">10</property>
|
1470
|
+
</object>
|
1471
|
+
</child>
|
1472
|
+
</object>
|
1473
|
+
<packing>
|
1474
|
+
<property name="left_attach">0</property>
|
1475
|
+
<property name="top_attach">9</property>
|
1476
|
+
</packing>
|
1477
|
+
</child>
|
1478
|
+
</object>
|
1479
|
+
<packing>
|
1480
|
+
<property name="expand">False</property>
|
1481
|
+
<property name="fill">True</property>
|
1482
|
+
<property name="position">1</property>
|
1483
|
+
</packing>
|
1484
|
+
</child>
|
1485
|
+
</object>
|
1486
|
+
</child>
|
1487
|
+
</object>
|
1488
|
+
<object class="GtkDialog" id="dialogOn">
|
1489
|
+
<property name="can_focus">False</property>
|
1490
|
+
<property name="margin_left">6</property>
|
1491
|
+
<property name="margin_right">6</property>
|
1492
|
+
<property name="modal">True</property>
|
1493
|
+
<property name="window_position">center-on-parent</property>
|
1494
|
+
<property name="default_width">320</property>
|
1495
|
+
<property name="default_height">260</property>
|
1496
|
+
<property name="destroy_with_parent">True</property>
|
1497
|
+
<property name="type_hint">dialog</property>
|
1498
|
+
<property name="urgency_hint">True</property>
|
1499
|
+
<property name="transient_for">window1</property>
|
1500
|
+
<child internal-child="vbox">
|
1501
|
+
<object class="GtkBox">
|
1502
|
+
<property name="can_focus">False</property>
|
1503
|
+
<property name="margin_left">6</property>
|
1504
|
+
<property name="margin_right">6</property>
|
1505
|
+
<property name="margin_top">12</property>
|
1506
|
+
<property name="margin_bottom">12</property>
|
1507
|
+
<property name="orientation">vertical</property>
|
1508
|
+
<property name="spacing">2</property>
|
1509
|
+
<child internal-child="action_area">
|
1510
|
+
<object class="GtkButtonBox">
|
1511
|
+
<property name="can_focus">False</property>
|
1512
|
+
<property name="layout_style">end</property>
|
1513
|
+
<child>
|
1514
|
+
<object class="GtkButton" id="buttonAcceptOn">
|
1515
|
+
<property name="label" translatable="yes">Accept</property>
|
1516
|
+
<property name="visible">True</property>
|
1517
|
+
<property name="can_focus">True</property>
|
1518
|
+
<property name="receives_default">True</property>
|
1519
|
+
<property name="margin_top">6</property>
|
1520
|
+
</object>
|
1521
|
+
<packing>
|
1522
|
+
<property name="expand">True</property>
|
1523
|
+
<property name="fill">True</property>
|
1524
|
+
<property name="position">0</property>
|
1525
|
+
</packing>
|
1526
|
+
</child>
|
1527
|
+
<child>
|
1528
|
+
<object class="GtkButton" id="buttonCancelOn">
|
1529
|
+
<property name="label" translatable="yes">Cancel</property>
|
1530
|
+
<property name="visible">True</property>
|
1531
|
+
<property name="can_focus">True</property>
|
1532
|
+
<property name="receives_default">True</property>
|
1533
|
+
<property name="margin_right">6</property>
|
1534
|
+
<property name="margin_top">6</property>
|
1535
|
+
</object>
|
1536
|
+
<packing>
|
1537
|
+
<property name="expand">True</property>
|
1538
|
+
<property name="fill">True</property>
|
1539
|
+
<property name="position">1</property>
|
1540
|
+
</packing>
|
1541
|
+
</child>
|
1542
|
+
</object>
|
1543
|
+
<packing>
|
1544
|
+
<property name="expand">False</property>
|
1545
|
+
<property name="fill">False</property>
|
1546
|
+
<property name="position">0</property>
|
1547
|
+
</packing>
|
1548
|
+
</child>
|
1549
|
+
<child>
|
1550
|
+
<object class="GtkGrid">
|
1551
|
+
<property name="visible">True</property>
|
1552
|
+
<property name="can_focus">False</property>
|
1553
|
+
<child>
|
1554
|
+
<object class="GtkLabel">
|
1555
|
+
<property name="visible">True</property>
|
1556
|
+
<property name="can_focus">False</property>
|
1557
|
+
<property name="margin_left">12</property>
|
1558
|
+
<property name="margin_bottom">5</property>
|
1559
|
+
<property name="label" translatable="yes"><big><b>"On" Action Arguments</b></big>
|
1560
|
+
|
1561
|
+
Enter "percent" to derive 0-100 value from voice command.</property>
|
1562
|
+
<property name="use_markup">True</property>
|
1563
|
+
<property name="justify">center</property>
|
1564
|
+
</object>
|
1565
|
+
<packing>
|
1566
|
+
<property name="left_attach">0</property>
|
1567
|
+
<property name="top_attach">0</property>
|
1568
|
+
</packing>
|
1569
|
+
</child>
|
1570
|
+
<child>
|
1571
|
+
<object class="GtkFrame" id="frameOnArg1">
|
1572
|
+
<property name="visible">True</property>
|
1573
|
+
<property name="can_focus">False</property>
|
1574
|
+
<property name="hexpand">True</property>
|
1575
|
+
<property name="label_xalign">0</property>
|
1576
|
+
<property name="shadow_type">none</property>
|
1577
|
+
<child>
|
1578
|
+
<object class="GtkAlignment">
|
1579
|
+
<property name="visible">True</property>
|
1580
|
+
<property name="can_focus">False</property>
|
1581
|
+
<property name="left_padding">12</property>
|
1582
|
+
<child>
|
1583
|
+
<object class="GtkEntry" id="requestOnValue1">
|
1584
|
+
<property name="visible">True</property>
|
1585
|
+
<property name="can_focus">True</property>
|
1586
|
+
</object>
|
1587
|
+
</child>
|
1588
|
+
</object>
|
1589
|
+
</child>
|
1590
|
+
<child type="label">
|
1591
|
+
<object class="GtkLabel" id="requestOnArg1">
|
1592
|
+
<property name="name">12</property>
|
1593
|
+
<property name="visible">True</property>
|
1594
|
+
<property name="can_focus">False</property>
|
1595
|
+
<property name="margin_left">12</property>
|
1596
|
+
<property name="margin_top">10</property>
|
1597
|
+
</object>
|
1598
|
+
</child>
|
1599
|
+
</object>
|
1600
|
+
<packing>
|
1601
|
+
<property name="left_attach">0</property>
|
1602
|
+
<property name="top_attach">1</property>
|
1603
|
+
</packing>
|
1604
|
+
</child>
|
1605
|
+
<child>
|
1606
|
+
<object class="GtkFrame" id="frameOnArg2">
|
1607
|
+
<property name="visible">True</property>
|
1608
|
+
<property name="can_focus">False</property>
|
1609
|
+
<property name="label_xalign">0</property>
|
1610
|
+
<property name="shadow_type">none</property>
|
1611
|
+
<child>
|
1612
|
+
<object class="GtkAlignment">
|
1613
|
+
<property name="visible">True</property>
|
1614
|
+
<property name="can_focus">False</property>
|
1615
|
+
<property name="left_padding">12</property>
|
1616
|
+
<child>
|
1617
|
+
<object class="GtkEntry" id="requestOnValue2">
|
1618
|
+
<property name="visible">True</property>
|
1619
|
+
<property name="can_focus">True</property>
|
1620
|
+
</object>
|
1621
|
+
</child>
|
1622
|
+
</object>
|
1623
|
+
</child>
|
1624
|
+
<child type="label">
|
1625
|
+
<object class="GtkLabel" id="requestOnArg2">
|
1626
|
+
<property name="name">12</property>
|
1627
|
+
<property name="visible">True</property>
|
1628
|
+
<property name="can_focus">False</property>
|
1629
|
+
<property name="margin_left">12</property>
|
1630
|
+
<property name="margin_top">10</property>
|
1631
|
+
</object>
|
1632
|
+
</child>
|
1633
|
+
</object>
|
1634
|
+
<packing>
|
1635
|
+
<property name="left_attach">0</property>
|
1636
|
+
<property name="top_attach">2</property>
|
1637
|
+
</packing>
|
1638
|
+
</child>
|
1639
|
+
<child>
|
1640
|
+
<object class="GtkFrame" id="frameOnArg3">
|
1641
|
+
<property name="visible">True</property>
|
1642
|
+
<property name="can_focus">False</property>
|
1643
|
+
<property name="label_xalign">0</property>
|
1644
|
+
<property name="shadow_type">none</property>
|
1645
|
+
<child>
|
1646
|
+
<object class="GtkAlignment">
|
1647
|
+
<property name="visible">True</property>
|
1648
|
+
<property name="can_focus">False</property>
|
1649
|
+
<property name="left_padding">12</property>
|
1650
|
+
<child>
|
1651
|
+
<object class="GtkEntry" id="requestOnValue3">
|
1652
|
+
<property name="visible">True</property>
|
1653
|
+
<property name="can_focus">True</property>
|
1654
|
+
</object>
|
1655
|
+
</child>
|
1656
|
+
</object>
|
1657
|
+
</child>
|
1658
|
+
<child type="label">
|
1659
|
+
<object class="GtkLabel" id="requestOnArg3">
|
1660
|
+
<property name="name">12</property>
|
1661
|
+
<property name="visible">True</property>
|
1662
|
+
<property name="can_focus">False</property>
|
1663
|
+
<property name="margin_left">12</property>
|
1664
|
+
<property name="margin_top">10</property>
|
1665
|
+
</object>
|
1666
|
+
</child>
|
1667
|
+
</object>
|
1668
|
+
<packing>
|
1669
|
+
<property name="left_attach">0</property>
|
1670
|
+
<property name="top_attach">3</property>
|
1671
|
+
</packing>
|
1672
|
+
</child>
|
1673
|
+
<child>
|
1674
|
+
<object class="GtkFrame" id="frameOnArg4">
|
1675
|
+
<property name="visible">True</property>
|
1676
|
+
<property name="can_focus">False</property>
|
1677
|
+
<property name="label_xalign">0</property>
|
1678
|
+
<property name="shadow_type">none</property>
|
1679
|
+
<child>
|
1680
|
+
<object class="GtkAlignment">
|
1681
|
+
<property name="visible">True</property>
|
1682
|
+
<property name="can_focus">False</property>
|
1683
|
+
<property name="left_padding">12</property>
|
1684
|
+
<child>
|
1685
|
+
<object class="GtkEntry" id="requestOnValue4">
|
1686
|
+
<property name="visible">True</property>
|
1687
|
+
<property name="can_focus">True</property>
|
1688
|
+
</object>
|
1689
|
+
</child>
|
1690
|
+
</object>
|
1691
|
+
</child>
|
1692
|
+
<child type="label">
|
1693
|
+
<object class="GtkLabel" id="requestOnArg4">
|
1694
|
+
<property name="name">12</property>
|
1695
|
+
<property name="visible">True</property>
|
1696
|
+
<property name="can_focus">False</property>
|
1697
|
+
<property name="margin_left">12</property>
|
1698
|
+
<property name="margin_top">10</property>
|
1699
|
+
</object>
|
1700
|
+
</child>
|
1701
|
+
</object>
|
1702
|
+
<packing>
|
1703
|
+
<property name="left_attach">0</property>
|
1704
|
+
<property name="top_attach">4</property>
|
1705
|
+
</packing>
|
1706
|
+
</child>
|
1707
|
+
<child>
|
1708
|
+
<object class="GtkFrame" id="frameOnArg5">
|
1709
|
+
<property name="visible">True</property>
|
1710
|
+
<property name="can_focus">False</property>
|
1711
|
+
<property name="label_xalign">0</property>
|
1712
|
+
<property name="shadow_type">none</property>
|
1713
|
+
<child>
|
1714
|
+
<object class="GtkAlignment">
|
1715
|
+
<property name="visible">True</property>
|
1716
|
+
<property name="can_focus">False</property>
|
1717
|
+
<property name="left_padding">12</property>
|
1718
|
+
<child>
|
1719
|
+
<object class="GtkEntry" id="requestOnValue5">
|
1720
|
+
<property name="visible">True</property>
|
1721
|
+
<property name="can_focus">True</property>
|
1722
|
+
</object>
|
1723
|
+
</child>
|
1724
|
+
</object>
|
1725
|
+
</child>
|
1726
|
+
<child type="label">
|
1727
|
+
<object class="GtkLabel" id="requestOnArg5">
|
1728
|
+
<property name="name">12</property>
|
1729
|
+
<property name="visible">True</property>
|
1730
|
+
<property name="can_focus">False</property>
|
1731
|
+
<property name="margin_left">12</property>
|
1732
|
+
<property name="margin_top">10</property>
|
1733
|
+
</object>
|
1734
|
+
</child>
|
1735
|
+
</object>
|
1736
|
+
<packing>
|
1737
|
+
<property name="left_attach">0</property>
|
1738
|
+
<property name="top_attach">5</property>
|
1739
|
+
</packing>
|
1740
|
+
</child>
|
1741
|
+
<child>
|
1742
|
+
<object class="GtkFrame" id="frameOnArg6">
|
1743
|
+
<property name="visible">True</property>
|
1744
|
+
<property name="can_focus">False</property>
|
1745
|
+
<property name="label_xalign">0</property>
|
1746
|
+
<property name="shadow_type">none</property>
|
1747
|
+
<child>
|
1748
|
+
<object class="GtkAlignment">
|
1749
|
+
<property name="visible">True</property>
|
1750
|
+
<property name="can_focus">False</property>
|
1751
|
+
<property name="left_padding">12</property>
|
1752
|
+
<child>
|
1753
|
+
<object class="GtkEntry" id="requestOnValue6">
|
1754
|
+
<property name="visible">True</property>
|
1755
|
+
<property name="can_focus">True</property>
|
1756
|
+
</object>
|
1757
|
+
</child>
|
1758
|
+
</object>
|
1759
|
+
</child>
|
1760
|
+
<child type="label">
|
1761
|
+
<object class="GtkLabel" id="requestOnArg6">
|
1762
|
+
<property name="name">12</property>
|
1763
|
+
<property name="visible">True</property>
|
1764
|
+
<property name="can_focus">False</property>
|
1765
|
+
<property name="margin_left">12</property>
|
1766
|
+
<property name="margin_top">10</property>
|
1767
|
+
</object>
|
1768
|
+
</child>
|
1769
|
+
</object>
|
1770
|
+
<packing>
|
1771
|
+
<property name="left_attach">0</property>
|
1772
|
+
<property name="top_attach">6</property>
|
1773
|
+
</packing>
|
1774
|
+
</child>
|
1775
|
+
<child>
|
1776
|
+
<object class="GtkFrame" id="frameOnArg7">
|
1777
|
+
<property name="visible">True</property>
|
1778
|
+
<property name="can_focus">False</property>
|
1779
|
+
<property name="label_xalign">0</property>
|
1780
|
+
<property name="shadow_type">none</property>
|
1781
|
+
<child>
|
1782
|
+
<object class="GtkAlignment">
|
1783
|
+
<property name="visible">True</property>
|
1784
|
+
<property name="can_focus">False</property>
|
1785
|
+
<property name="left_padding">12</property>
|
1786
|
+
<child>
|
1787
|
+
<object class="GtkEntry" id="requestOnValue7">
|
1788
|
+
<property name="visible">True</property>
|
1789
|
+
<property name="can_focus">True</property>
|
1790
|
+
</object>
|
1791
|
+
</child>
|
1792
|
+
</object>
|
1793
|
+
</child>
|
1794
|
+
<child type="label">
|
1795
|
+
<object class="GtkLabel" id="requestOnArg7">
|
1796
|
+
<property name="name">12</property>
|
1797
|
+
<property name="visible">True</property>
|
1798
|
+
<property name="can_focus">False</property>
|
1799
|
+
<property name="margin_top">10</property>
|
1800
|
+
</object>
|
1801
|
+
</child>
|
1802
|
+
</object>
|
1803
|
+
<packing>
|
1804
|
+
<property name="left_attach">0</property>
|
1805
|
+
<property name="top_attach">7</property>
|
1806
|
+
</packing>
|
1807
|
+
</child>
|
1808
|
+
<child>
|
1809
|
+
<object class="GtkFrame" id="frameOnArg8">
|
1810
|
+
<property name="visible">True</property>
|
1811
|
+
<property name="can_focus">False</property>
|
1812
|
+
<property name="label_xalign">0</property>
|
1813
|
+
<property name="shadow_type">none</property>
|
1814
|
+
<child>
|
1815
|
+
<object class="GtkAlignment">
|
1816
|
+
<property name="visible">True</property>
|
1817
|
+
<property name="can_focus">False</property>
|
1818
|
+
<property name="left_padding">12</property>
|
1819
|
+
<child>
|
1820
|
+
<object class="GtkEntry" id="requestOnValue8">
|
1821
|
+
<property name="visible">True</property>
|
1822
|
+
<property name="can_focus">True</property>
|
1823
|
+
</object>
|
1824
|
+
</child>
|
1825
|
+
</object>
|
1826
|
+
</child>
|
1827
|
+
<child type="label">
|
1828
|
+
<object class="GtkLabel" id="requestOnArg8">
|
1829
|
+
<property name="name">12</property>
|
1830
|
+
<property name="visible">True</property>
|
1831
|
+
<property name="can_focus">False</property>
|
1832
|
+
<property name="margin_top">10</property>
|
1833
|
+
</object>
|
1834
|
+
</child>
|
1835
|
+
</object>
|
1836
|
+
<packing>
|
1837
|
+
<property name="left_attach">0</property>
|
1838
|
+
<property name="top_attach">8</property>
|
1839
|
+
</packing>
|
1840
|
+
</child>
|
1841
|
+
<child>
|
1842
|
+
<object class="GtkFrame" id="frameOnArg9">
|
1843
|
+
<property name="visible">True</property>
|
1844
|
+
<property name="can_focus">False</property>
|
1845
|
+
<property name="label_xalign">0</property>
|
1846
|
+
<property name="shadow_type">none</property>
|
1847
|
+
<child>
|
1848
|
+
<object class="GtkAlignment">
|
1849
|
+
<property name="visible">True</property>
|
1850
|
+
<property name="can_focus">False</property>
|
1851
|
+
<property name="left_padding">12</property>
|
1852
|
+
<child>
|
1853
|
+
<object class="GtkEntry" id="requestOnValue9">
|
1854
|
+
<property name="visible">True</property>
|
1855
|
+
<property name="can_focus">True</property>
|
1856
|
+
</object>
|
1857
|
+
</child>
|
1858
|
+
</object>
|
1859
|
+
</child>
|
1860
|
+
<child type="label">
|
1861
|
+
<object class="GtkLabel" id="requestOnArg9">
|
1862
|
+
<property name="name">12</property>
|
1863
|
+
<property name="visible">True</property>
|
1864
|
+
<property name="can_focus">False</property>
|
1865
|
+
<property name="margin_top">10</property>
|
1866
|
+
</object>
|
1867
|
+
</child>
|
1868
|
+
</object>
|
1869
|
+
<packing>
|
1870
|
+
<property name="left_attach">0</property>
|
1871
|
+
<property name="top_attach">9</property>
|
1872
|
+
</packing>
|
1873
|
+
</child>
|
1874
|
+
</object>
|
1875
|
+
<packing>
|
1876
|
+
<property name="expand">False</property>
|
1877
|
+
<property name="fill">True</property>
|
1878
|
+
<property name="position">1</property>
|
1879
|
+
</packing>
|
1880
|
+
</child>
|
1881
|
+
</object>
|
1882
|
+
</child>
|
1883
|
+
</object>
|
1884
|
+
<object class="GtkDialog" id="dialogScenes">
|
1885
|
+
<property name="width_request">800</property>
|
1886
|
+
<property name="can_focus">False</property>
|
1887
|
+
<property name="modal">True</property>
|
1888
|
+
<property name="window_position">center-on-parent</property>
|
1889
|
+
<property name="default_width">320</property>
|
1890
|
+
<property name="default_height">260</property>
|
1891
|
+
<property name="destroy_with_parent">True</property>
|
1892
|
+
<property name="type_hint">dialog</property>
|
1893
|
+
<property name="urgency_hint">True</property>
|
1894
|
+
<property name="transient_for">window1</property>
|
1895
|
+
<child internal-child="vbox">
|
1896
|
+
<object class="GtkBox">
|
1897
|
+
<property name="can_focus">False</property>
|
1898
|
+
<property name="margin_top">12</property>
|
1899
|
+
<property name="margin_bottom">12</property>
|
1900
|
+
<property name="orientation">vertical</property>
|
1901
|
+
<property name="spacing">2</property>
|
1902
|
+
<child internal-child="action_area">
|
1903
|
+
<object class="GtkButtonBox">
|
1904
|
+
<property name="can_focus">False</property>
|
1905
|
+
<property name="layout_style">end</property>
|
1906
|
+
<child>
|
1907
|
+
<object class="GtkButton" id="buttonCancelScenes">
|
1908
|
+
<property name="label" translatable="yes">Done</property>
|
1909
|
+
<property name="visible">True</property>
|
1910
|
+
<property name="can_focus">True</property>
|
1911
|
+
<property name="receives_default">True</property>
|
1912
|
+
<property name="margin_right">12</property>
|
1913
|
+
<property name="margin_top">6</property>
|
1914
|
+
</object>
|
1915
|
+
<packing>
|
1916
|
+
<property name="expand">True</property>
|
1917
|
+
<property name="fill">True</property>
|
1918
|
+
<property name="position">1</property>
|
1919
|
+
</packing>
|
1920
|
+
</child>
|
1921
|
+
</object>
|
1922
|
+
<packing>
|
1923
|
+
<property name="expand">False</property>
|
1924
|
+
<property name="fill">False</property>
|
1925
|
+
<property name="position">0</property>
|
1926
|
+
</packing>
|
1927
|
+
</child>
|
1928
|
+
<child>
|
1929
|
+
<object class="GtkGrid">
|
1930
|
+
<property name="visible">True</property>
|
1931
|
+
<property name="can_focus">False</property>
|
1932
|
+
<child>
|
1933
|
+
<object class="GtkLabel">
|
1934
|
+
<property name="visible">True</property>
|
1935
|
+
<property name="can_focus">False</property>
|
1936
|
+
<property name="margin_bottom">5</property>
|
1937
|
+
<property name="label" translatable="yes"><big><b>Savant Scenes</b></big>
|
1938
|
+
|
1939
|
+
Check the box next to a scene and select "add" to create an Alexa device with name of the scene.
|
1940
|
+
|
1941
|
+
The following scenes have been found on this host:</property>
|
1942
|
+
<property name="use_markup">True</property>
|
1943
|
+
<property name="justify">center</property>
|
1944
|
+
</object>
|
1945
|
+
<packing>
|
1946
|
+
<property name="left_attach">0</property>
|
1947
|
+
<property name="top_attach">0</property>
|
1948
|
+
</packing>
|
1949
|
+
</child>
|
1950
|
+
<child>
|
1951
|
+
<object class="GtkScrolledWindow" id="listviewSavantScenes">
|
1952
|
+
<property name="visible">True</property>
|
1953
|
+
<property name="can_focus">True</property>
|
1954
|
+
<property name="margin_left">12</property>
|
1955
|
+
<property name="margin_right">12</property>
|
1956
|
+
<property name="margin_bottom">12</property>
|
1957
|
+
<property name="hexpand">True</property>
|
1958
|
+
<property name="shadow_type">in</property>
|
1959
|
+
<property name="min_content_height">200</property>
|
1960
|
+
<property name="max_content_height">400</property>
|
1961
|
+
<property name="propagate_natural_height">True</property>
|
1962
|
+
<child>
|
1963
|
+
<placeholder/>
|
1964
|
+
</child>
|
1965
|
+
</object>
|
1966
|
+
<packing>
|
1967
|
+
<property name="left_attach">0</property>
|
1968
|
+
<property name="top_attach">1</property>
|
1969
|
+
</packing>
|
1970
|
+
</child>
|
1971
|
+
<child>
|
1972
|
+
<object class="GtkScrolledWindow" id="listviewhabridgeDevices">
|
1973
|
+
<property name="visible">True</property>
|
1974
|
+
<property name="can_focus">True</property>
|
1975
|
+
<property name="margin_left">12</property>
|
1976
|
+
<property name="margin_right">12</property>
|
1977
|
+
<property name="margin_top">12</property>
|
1978
|
+
<property name="margin_bottom">12</property>
|
1979
|
+
<property name="hexpand">True</property>
|
1980
|
+
<property name="shadow_type">in</property>
|
1981
|
+
<property name="min_content_height">200</property>
|
1982
|
+
<property name="max_content_height">400</property>
|
1983
|
+
<property name="propagate_natural_height">True</property>
|
1984
|
+
<child>
|
1985
|
+
<placeholder/>
|
1986
|
+
</child>
|
1987
|
+
</object>
|
1988
|
+
<packing>
|
1989
|
+
<property name="left_attach">0</property>
|
1990
|
+
<property name="top_attach">4</property>
|
1991
|
+
</packing>
|
1992
|
+
</child>
|
1993
|
+
<child>
|
1994
|
+
<object class="GtkLabel">
|
1995
|
+
<property name="visible">True</property>
|
1996
|
+
<property name="can_focus">False</property>
|
1997
|
+
<property name="label" translatable="yes"><big><b>Automatic Scenes Sync</b></big>
|
1998
|
+
|
1999
|
+
Scene sync is a background service that runs on the pro host to automatically sync Savant user scenes to the ha bridge.
|
2000
|
+
When a scene is created in Savant, it will be added to the habridge.
|
2001
|
+
When a scene is deleted in Savant, it will be deleted from the habridge.
|
2002
|
+
The user will simply need to ask Alexa to find devices after creating a scene.
|
2003
|
+
To call the scene, use the syntax: Alexa, Turn On (Scene Name).</property>
|
2004
|
+
<property name="use_markup">True</property>
|
2005
|
+
<property name="justify">center</property>
|
2006
|
+
</object>
|
2007
|
+
<packing>
|
2008
|
+
<property name="left_attach">0</property>
|
2009
|
+
<property name="top_attach">5</property>
|
2010
|
+
</packing>
|
2011
|
+
</child>
|
2012
|
+
<child>
|
2013
|
+
<object class="GtkGrid">
|
2014
|
+
<property name="visible">True</property>
|
2015
|
+
<property name="can_focus">False</property>
|
2016
|
+
<property name="halign">center</property>
|
2017
|
+
<property name="margin_top">12</property>
|
2018
|
+
<property name="column_homogeneous">True</property>
|
2019
|
+
<child>
|
2020
|
+
<object class="GtkButton" id="buttonInstallSceneSync">
|
2021
|
+
<property name="label" translatable="yes">Install</property>
|
2022
|
+
<property name="visible">True</property>
|
2023
|
+
<property name="can_focus">True</property>
|
2024
|
+
<property name="receives_default">True</property>
|
2025
|
+
<property name="margin_right">12</property>
|
2026
|
+
</object>
|
2027
|
+
<packing>
|
2028
|
+
<property name="left_attach">0</property>
|
2029
|
+
<property name="top_attach">0</property>
|
2030
|
+
</packing>
|
2031
|
+
</child>
|
2032
|
+
<child>
|
2033
|
+
<object class="GtkButton" id="buttonUninstallSceneSync">
|
2034
|
+
<property name="label" translatable="yes">Uninstall</property>
|
2035
|
+
<property name="visible">True</property>
|
2036
|
+
<property name="can_focus">True</property>
|
2037
|
+
<property name="receives_default">True</property>
|
2038
|
+
<property name="margin_left">12</property>
|
2039
|
+
</object>
|
2040
|
+
<packing>
|
2041
|
+
<property name="left_attach">1</property>
|
2042
|
+
<property name="top_attach">0</property>
|
2043
|
+
</packing>
|
2044
|
+
</child>
|
2045
|
+
</object>
|
2046
|
+
<packing>
|
2047
|
+
<property name="left_attach">0</property>
|
2048
|
+
<property name="top_attach">6</property>
|
2049
|
+
</packing>
|
2050
|
+
</child>
|
2051
|
+
<child>
|
2052
|
+
<object class="GtkLabel">
|
2053
|
+
<property name="visible">True</property>
|
2054
|
+
<property name="can_focus">False</property>
|
2055
|
+
<property name="label" translatable="yes"><big><b>HA Bridge Devices</b></big>
|
2056
|
+
|
2057
|
+
The following devices have been found on this habridge:</property>
|
2058
|
+
<property name="use_markup">True</property>
|
2059
|
+
<property name="justify">center</property>
|
2060
|
+
</object>
|
2061
|
+
<packing>
|
2062
|
+
<property name="left_attach">0</property>
|
2063
|
+
<property name="top_attach">3</property>
|
2064
|
+
</packing>
|
2065
|
+
</child>
|
2066
|
+
<child>
|
2067
|
+
<object class="GtkGrid">
|
2068
|
+
<property name="visible">True</property>
|
2069
|
+
<property name="can_focus">False</property>
|
2070
|
+
<property name="margin_left">12</property>
|
2071
|
+
<property name="margin_right">12</property>
|
2072
|
+
<property name="column_homogeneous">True</property>
|
2073
|
+
<child>
|
2074
|
+
<object class="GtkButton" id="buttonAddScenes">
|
2075
|
+
<property name="label" translatable="yes">Add Scenes</property>
|
2076
|
+
<property name="visible">True</property>
|
2077
|
+
<property name="can_focus">True</property>
|
2078
|
+
<property name="receives_default">True</property>
|
2079
|
+
<property name="halign">end</property>
|
2080
|
+
<property name="margin_top">6</property>
|
2081
|
+
</object>
|
2082
|
+
<packing>
|
2083
|
+
<property name="left_attach">1</property>
|
2084
|
+
<property name="top_attach">0</property>
|
2085
|
+
</packing>
|
2086
|
+
</child>
|
2087
|
+
<child>
|
2088
|
+
<object class="GtkButton" id="buttonUpdateSCLI">
|
2089
|
+
<property name="label" translatable="yes">Update SCLI</property>
|
2090
|
+
<property name="visible">True</property>
|
2091
|
+
<property name="can_focus">True</property>
|
2092
|
+
<property name="receives_default">True</property>
|
2093
|
+
<property name="halign">start</property>
|
2094
|
+
<property name="margin_left">12</property>
|
2095
|
+
</object>
|
2096
|
+
<packing>
|
2097
|
+
<property name="left_attach">0</property>
|
2098
|
+
<property name="top_attach">0</property>
|
2099
|
+
</packing>
|
2100
|
+
</child>
|
2101
|
+
</object>
|
2102
|
+
<packing>
|
2103
|
+
<property name="left_attach">0</property>
|
2104
|
+
<property name="top_attach">2</property>
|
2105
|
+
</packing>
|
2106
|
+
</child>
|
2107
|
+
</object>
|
2108
|
+
<packing>
|
2109
|
+
<property name="expand">False</property>
|
2110
|
+
<property name="fill">True</property>
|
2111
|
+
<property name="position">1</property>
|
2112
|
+
</packing>
|
2113
|
+
</child>
|
2114
|
+
</object>
|
2115
|
+
</child>
|
2116
|
+
</object>
|
2117
|
+
<object class="GtkWindow" id="windowBackupRestore">
|
2118
|
+
<property name="width_request">300</property>
|
2119
|
+
<property name="height_request">300</property>
|
2120
|
+
<property name="can_focus">False</property>
|
2121
|
+
<property name="modal">True</property>
|
2122
|
+
<property name="window_position">center-on-parent</property>
|
2123
|
+
<property name="gravity">center</property>
|
2124
|
+
<property name="transient_for">window1</property>
|
2125
|
+
<property name="has_resize_grip">True</property>
|
2126
|
+
<child>
|
2127
|
+
<object class="GtkBox">
|
2128
|
+
<property name="visible">True</property>
|
2129
|
+
<property name="can_focus">False</property>
|
2130
|
+
<property name="orientation">vertical</property>
|
2131
|
+
<child>
|
2132
|
+
<object class="GtkLabel">
|
2133
|
+
<property name="visible">True</property>
|
2134
|
+
<property name="can_focus">False</property>
|
2135
|
+
<property name="margin_top">20</property>
|
2136
|
+
<property name="margin_bottom">20</property>
|
2137
|
+
<property name="label" translatable="yes"><big><b>Backup and Restore</b></big></property>
|
2138
|
+
<property name="use_markup">True</property>
|
2139
|
+
</object>
|
2140
|
+
<packing>
|
2141
|
+
<property name="expand">False</property>
|
2142
|
+
<property name="fill">True</property>
|
2143
|
+
<property name="position">0</property>
|
2144
|
+
</packing>
|
2145
|
+
</child>
|
2146
|
+
<child>
|
2147
|
+
<object class="GtkLabel">
|
2148
|
+
<property name="visible">True</property>
|
2149
|
+
<property name="can_focus">False</property>
|
2150
|
+
<property name="margin_left">20</property>
|
2151
|
+
<property name="margin_right">20</property>
|
2152
|
+
<property name="margin_bottom">12</property>
|
2153
|
+
<property name="label" translatable="yes"> There are two files to be backed up and restored.
|
2154
|
+
The first is device.db that contains all the virtual devices in the habridge.
|
2155
|
+
The second is the habridge.config file that contains information about the habridge itself.
|
2156
|
+
|
2157
|
+
To backup the files, select a destination folder.
|
2158
|
+
|
2159
|
+
To restore the backed up files to the habridge, select the folder that contains both files. </property>
|
2160
|
+
<property name="wrap">True</property>
|
2161
|
+
</object>
|
2162
|
+
<packing>
|
2163
|
+
<property name="expand">False</property>
|
2164
|
+
<property name="fill">False</property>
|
2165
|
+
<property name="position">1</property>
|
2166
|
+
</packing>
|
2167
|
+
</child>
|
2168
|
+
<child>
|
2169
|
+
<object class="GtkScrolledWindow" id="scrolledwindow_BackupRestore">
|
2170
|
+
<property name="width_request">300</property>
|
2171
|
+
<property name="height_request">300</property>
|
2172
|
+
<property name="visible">True</property>
|
2173
|
+
<property name="can_focus">True</property>
|
2174
|
+
<property name="margin_left">20</property>
|
2175
|
+
<property name="margin_right">20</property>
|
2176
|
+
<property name="shadow_type">in</property>
|
2177
|
+
<property name="min_content_width">300</property>
|
2178
|
+
<property name="min_content_height">300</property>
|
2179
|
+
<property name="max_content_width">300</property>
|
2180
|
+
<property name="max_content_height">300</property>
|
2181
|
+
<child>
|
2182
|
+
<placeholder/>
|
2183
|
+
</child>
|
2184
|
+
</object>
|
2185
|
+
<packing>
|
2186
|
+
<property name="expand">False</property>
|
2187
|
+
<property name="fill">False</property>
|
2188
|
+
<property name="position">2</property>
|
2189
|
+
</packing>
|
2190
|
+
</child>
|
2191
|
+
<child>
|
2192
|
+
<object class="GtkButtonBox">
|
2193
|
+
<property name="visible">True</property>
|
2194
|
+
<property name="can_focus">False</property>
|
2195
|
+
<property name="margin_top">20</property>
|
2196
|
+
<property name="margin_bottom">12</property>
|
2197
|
+
<property name="layout_style">spread</property>
|
2198
|
+
<child>
|
2199
|
+
<object class="GtkButton" id="buttonBackup">
|
2200
|
+
<property name="label" translatable="yes">Backup</property>
|
2201
|
+
<property name="visible">True</property>
|
2202
|
+
<property name="can_focus">True</property>
|
2203
|
+
<property name="receives_default">True</property>
|
2204
|
+
</object>
|
2205
|
+
<packing>
|
2206
|
+
<property name="expand">True</property>
|
2207
|
+
<property name="fill">True</property>
|
2208
|
+
<property name="position">0</property>
|
2209
|
+
</packing>
|
2210
|
+
</child>
|
2211
|
+
<child>
|
2212
|
+
<object class="GtkButton" id="buttonRestore">
|
2213
|
+
<property name="label" translatable="yes">Restore</property>
|
2214
|
+
<property name="visible">True</property>
|
2215
|
+
<property name="can_focus">True</property>
|
2216
|
+
<property name="receives_default">True</property>
|
2217
|
+
</object>
|
2218
|
+
<packing>
|
2219
|
+
<property name="expand">True</property>
|
2220
|
+
<property name="fill">True</property>
|
2221
|
+
<property name="position">1</property>
|
2222
|
+
</packing>
|
2223
|
+
</child>
|
2224
|
+
<child>
|
2225
|
+
<object class="GtkButton" id="buttonBackupRestoreCancel">
|
2226
|
+
<property name="label" translatable="yes">Cancel</property>
|
2227
|
+
<property name="visible">True</property>
|
2228
|
+
<property name="can_focus">True</property>
|
2229
|
+
<property name="receives_default">True</property>
|
2230
|
+
</object>
|
2231
|
+
<packing>
|
2232
|
+
<property name="expand">True</property>
|
2233
|
+
<property name="fill">True</property>
|
2234
|
+
<property name="position">2</property>
|
2235
|
+
</packing>
|
2236
|
+
</child>
|
2237
|
+
</object>
|
2238
|
+
<packing>
|
2239
|
+
<property name="expand">True</property>
|
2240
|
+
<property name="fill">True</property>
|
2241
|
+
<property name="pack_type">end</property>
|
2242
|
+
<property name="position">3</property>
|
2243
|
+
</packing>
|
2244
|
+
</child>
|
2245
|
+
</object>
|
2246
|
+
</child>
|
2247
|
+
</object>
|
2248
|
+
</interface>
|