committed by
GitHub
173 changed files with 4746 additions and 1916 deletions
@ -0,0 +1,27 @@ |
|||
namespace Avalonia.Layout; |
|||
|
|||
/// <summary>
|
|||
/// Provides access to layout information of a control.
|
|||
/// </summary>
|
|||
public static class LayoutInformation |
|||
{ |
|||
/// <summary>
|
|||
/// Gets the available size constraint passed in the previous layout pass.
|
|||
/// </summary>
|
|||
/// <param name="control">The control.</param>
|
|||
/// <returns>Previous control measure constraint, if any.</returns>
|
|||
public static Size? GetPreviousMeasureConstraint(Layoutable control) |
|||
{ |
|||
return control.PreviousMeasure; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Gets the control bounds used in the previous layout arrange pass.
|
|||
/// </summary>
|
|||
/// <param name="control">The control.</param>
|
|||
/// <returns>Previous control arrange bounds, if any.</returns>
|
|||
public static Rect? GetPreviousArrangeBounds(Layoutable control) |
|||
{ |
|||
return control.PreviousArrange; |
|||
} |
|||
} |
|||
@ -0,0 +1,22 @@ |
|||
using Avalonia.Automation.Peers; |
|||
|
|||
namespace Avalonia.Controls.Automation.Peers |
|||
{ |
|||
public class SliderAutomationPeer : RangeBaseAutomationPeer |
|||
{ |
|||
public SliderAutomationPeer(Slider owner) : base(owner) |
|||
{ |
|||
} |
|||
|
|||
override protected string GetClassNameCore() |
|||
{ |
|||
return "Slider"; |
|||
} |
|||
|
|||
override protected AutomationControlType GetAutomationControlTypeCore() |
|||
{ |
|||
return AutomationControlType.Slider; |
|||
} |
|||
|
|||
} |
|||
} |
|||
@ -1,32 +0,0 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Runtime.CompilerServices; |
|||
using System.Threading.Tasks; |
|||
using Tmds.DBus; |
|||
|
|||
[assembly: InternalsVisibleTo(Connection.DynamicAssemblyName)] |
|||
namespace Avalonia.FreeDesktop |
|||
{ |
|||
[DBusInterface("org.freedesktop.portal.FileChooser")] |
|||
internal interface IFileChooser : IDBusObject |
|||
{ |
|||
Task<ObjectPath> OpenFileAsync(string ParentWindow, string Title, IDictionary<string, object> Options); |
|||
Task<ObjectPath> SaveFileAsync(string ParentWindow, string Title, IDictionary<string, object> Options); |
|||
Task<ObjectPath> SaveFilesAsync(string ParentWindow, string Title, IDictionary<string, object> Options); |
|||
Task<T> GetAsync<T>(string prop); |
|||
Task<FileChooserProperties> GetAllAsync(); |
|||
Task SetAsync(string prop, object val); |
|||
Task<IDisposable> WatchPropertiesAsync(Action<PropertyChanges> handler); |
|||
} |
|||
|
|||
[Dictionary] |
|||
internal class FileChooserProperties |
|||
{ |
|||
public uint Version { get; set; } |
|||
} |
|||
|
|||
internal static class FileChooserExtensions |
|||
{ |
|||
public static Task<uint> GetVersionAsync(this IFileChooser o) => o.GetAsync<uint>("version"); |
|||
} |
|||
} |
|||
@ -1,69 +0,0 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Runtime.CompilerServices; |
|||
using System.Threading.Tasks; |
|||
using Tmds.DBus; |
|||
|
|||
[assembly: InternalsVisibleTo(Tmds.DBus.Connection.DynamicAssemblyName)] |
|||
namespace Avalonia.FreeDesktop.DBusIme.Fcitx |
|||
{ |
|||
[DBusInterface("org.fcitx.Fcitx.InputMethod")] |
|||
interface IFcitxInputMethod : IDBusObject |
|||
{ |
|||
Task<(int icid, bool enable, uint keyval1, uint state1, uint keyval2, uint state2)> CreateICv3Async( |
|||
string Appname, int Pid); |
|||
} |
|||
|
|||
|
|||
[DBusInterface("org.fcitx.Fcitx.InputContext")] |
|||
interface IFcitxInputContext : IDBusObject |
|||
{ |
|||
Task EnableICAsync(); |
|||
Task CloseICAsync(); |
|||
Task FocusInAsync(); |
|||
Task FocusOutAsync(); |
|||
Task ResetAsync(); |
|||
Task MouseEventAsync(int X); |
|||
Task SetCursorLocationAsync(int X, int Y); |
|||
Task SetCursorRectAsync(int X, int Y, int W, int H); |
|||
Task SetCapacityAsync(uint Caps); |
|||
Task SetSurroundingTextAsync(string Text, uint Cursor, uint Anchor); |
|||
Task SetSurroundingTextPositionAsync(uint Cursor, uint Anchor); |
|||
Task DestroyICAsync(); |
|||
Task<int> ProcessKeyEventAsync(uint Keyval, uint Keycode, uint State, int Type, uint Time); |
|||
Task<IDisposable> WatchEnableIMAsync(Action handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchCloseIMAsync(Action handler, Action<Exception>? onError = null); |
|||
Task<IDisposable?> WatchCommitStringAsync(Action<string> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchCurrentIMAsync(Action<(string name, string uniqueName, string langCode)> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchUpdatePreeditAsync(Action<(string str, int cursorpos)> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchUpdateFormattedPreeditAsync(Action<((string, int)[] str, int cursorpos)> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchUpdateClientSideUIAsync(Action<(string auxup, string auxdown, string preedit, string candidateword, string imname, int cursorpos)> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable?> WatchForwardKeyAsync(Action<(uint keyval, uint state, int type)> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchDeleteSurroundingTextAsync(Action<(int offset, uint nchar)> handler, Action<Exception>? onError = null); |
|||
} |
|||
|
|||
[DBusInterface("org.fcitx.Fcitx.InputContext1")] |
|||
interface IFcitxInputContext1 : IDBusObject |
|||
{ |
|||
Task FocusInAsync(); |
|||
Task FocusOutAsync(); |
|||
Task ResetAsync(); |
|||
Task SetCursorRectAsync(int X, int Y, int W, int H); |
|||
Task SetCapabilityAsync(ulong Caps); |
|||
Task SetSurroundingTextAsync(string Text, uint Cursor, uint Anchor); |
|||
Task SetSurroundingTextPositionAsync(uint Cursor, uint Anchor); |
|||
Task DestroyICAsync(); |
|||
Task<bool> ProcessKeyEventAsync(uint Keyval, uint Keycode, uint State, bool Type, uint Time); |
|||
Task<IDisposable?> WatchCommitStringAsync(Action<string> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchCurrentIMAsync(Action<(string name, string uniqueName, string langCode)> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchUpdateFormattedPreeditAsync(Action<((string, int)[] str, int cursorpos)> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable?> WatchForwardKeyAsync(Action<(uint keyval, uint state, bool type)> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchDeleteSurroundingTextAsync(Action<(int offset, uint nchar)> handler, Action<Exception>? onError = null); |
|||
} |
|||
|
|||
[DBusInterface("org.fcitx.Fcitx.InputMethod1")] |
|||
interface IFcitxInputMethod1 : IDBusObject |
|||
{ |
|||
Task<(ObjectPath path, byte[] data)> CreateInputContextAsync((string, string)[] arg0); |
|||
} |
|||
} |
|||
@ -1,52 +0,0 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Runtime.CompilerServices; |
|||
using System.Runtime.InteropServices; |
|||
using System.Threading.Tasks; |
|||
using Tmds.DBus; |
|||
|
|||
[assembly: InternalsVisibleTo(Connection.DynamicAssemblyName)] |
|||
namespace Avalonia.FreeDesktop.DBusIme.IBus |
|||
{ |
|||
[DBusInterface("org.freedesktop.IBus.InputContext")] |
|||
interface IIBusInputContext : IDBusObject |
|||
{ |
|||
Task<bool> ProcessKeyEventAsync(uint Keyval, uint Keycode, uint State); |
|||
Task SetCursorLocationAsync(int X, int Y, int W, int H); |
|||
Task FocusInAsync(); |
|||
Task FocusOutAsync(); |
|||
Task ResetAsync(); |
|||
Task SetCapabilitiesAsync(uint Caps); |
|||
Task PropertyActivateAsync(string Name, int State); |
|||
Task SetEngineAsync(string Name); |
|||
Task<object> GetEngineAsync(); |
|||
Task DestroyAsync(); |
|||
Task SetSurroundingTextAsync(object Text, uint CursorPos, uint AnchorPos); |
|||
Task<IDisposable> WatchCommitTextAsync(Action<object> cb, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchForwardKeyEventAsync(Action<(uint keyval, uint keycode, uint state)> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchRequireSurroundingTextAsync(Action handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchDeleteSurroundingTextAsync(Action<(int offset, uint nchars)> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchUpdatePreeditTextAsync(Action<(object text, uint cursorPos, bool visible)> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchShowPreeditTextAsync(Action handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchHidePreeditTextAsync(Action handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchUpdateAuxiliaryTextAsync(Action<(object text, bool visible)> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchShowAuxiliaryTextAsync(Action handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchHideAuxiliaryTextAsync(Action handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchUpdateLookupTableAsync(Action<(object table, bool visible)> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchShowLookupTableAsync(Action handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchHideLookupTableAsync(Action handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchPageUpLookupTableAsync(Action handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchPageDownLookupTableAsync(Action handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchCursorUpLookupTableAsync(Action handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchCursorDownLookupTableAsync(Action handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchRegisterPropertiesAsync(Action<object> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchUpdatePropertyAsync(Action<object> handler, Action<Exception>? onError = null); |
|||
} |
|||
|
|||
|
|||
[DBusInterface("org.freedesktop.IBus.Portal")] |
|||
interface IIBusPortal : IDBusObject |
|||
{ |
|||
Task<ObjectPath> CreateInputContextAsync(string Name); |
|||
} |
|||
} |
|||
@ -1,56 +0,0 @@ |
|||
|
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Runtime.CompilerServices; |
|||
using System.Threading.Tasks; |
|||
using Tmds.DBus; |
|||
|
|||
[assembly: InternalsVisibleTo(Tmds.DBus.Connection.DynamicAssemblyName)] |
|||
namespace Avalonia.FreeDesktop.DBusMenu |
|||
{ |
|||
|
|||
[DBusInterface("org.freedesktop.DBus.Properties")] |
|||
interface IFreeDesktopDBusProperties : IDBusObject |
|||
{ |
|||
Task<object> GetAsync(string prop); |
|||
Task<DBusMenuProperties> GetAllAsync(); |
|||
Task SetAsync(string prop, object val); |
|||
Task<IDisposable> WatchPropertiesAsync(Action<PropertyChanges> handler); |
|||
} |
|||
|
|||
[DBusInterface("com.canonical.dbusmenu")] |
|||
interface IDBusMenu : IFreeDesktopDBusProperties |
|||
{ |
|||
Task<(uint revision, (int, KeyValuePair<string, object>[], object[]) layout)> GetLayoutAsync(int ParentId, int RecursionDepth, string[] PropertyNames); |
|||
Task<(int, KeyValuePair<string, object>[])[]> GetGroupPropertiesAsync(int[] Ids, string[] PropertyNames); |
|||
Task<object> GetPropertyAsync(int Id, string Name); |
|||
Task EventAsync(int Id, string EventId, object Data, uint Timestamp); |
|||
Task<int[]> EventGroupAsync((int id, string eventId, object data, uint timestamp)[] events); |
|||
Task<bool> AboutToShowAsync(int Id); |
|||
Task<(int[] updatesNeeded, int[] idErrors)> AboutToShowGroupAsync(int[] Ids); |
|||
Task<IDisposable> WatchItemsPropertiesUpdatedAsync(Action<((int, IDictionary<string, object>)[] updatedProps, (int, string[])[] removedProps)> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchLayoutUpdatedAsync(Action<(uint revision, int parent)> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchItemActivationRequestedAsync(Action<(int id, uint timestamp)> handler, Action<Exception>? onError = null); |
|||
} |
|||
|
|||
[Dictionary] |
|||
class DBusMenuProperties |
|||
{ |
|||
public uint Version { get; set; } = default; |
|||
public string? TextDirection { get; set; } = default; |
|||
public string? Status { get; set; } = default; |
|||
public string[]? IconThemePath { get; set; } = default; |
|||
} |
|||
|
|||
|
|||
[DBusInterface("com.canonical.AppMenu.Registrar")] |
|||
interface IRegistrar : IDBusObject |
|||
{ |
|||
Task RegisterWindowAsync(uint WindowId, ObjectPath MenuObjectPath); |
|||
Task UnregisterWindowAsync(uint WindowId); |
|||
Task<(string service, ObjectPath menuObjectPath)> GetMenuForWindowAsync(uint WindowId); |
|||
Task<(uint, string, ObjectPath)[]> GetMenusAsync(); |
|||
Task<IDisposable> WatchWindowRegisteredAsync(Action<(uint windowId, string service, ObjectPath menuObjectPath)> handler, Action<Exception>? onError = null); |
|||
Task<IDisposable> WatchWindowUnregisteredAsync(Action<uint> handler, Action<Exception>? onError = null); |
|||
} |
|||
} |
|||
@ -1,16 +0,0 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Runtime.CompilerServices; |
|||
using System.Threading.Tasks; |
|||
using Tmds.DBus; |
|||
|
|||
[assembly: InternalsVisibleTo(Connection.DynamicAssemblyName)] |
|||
namespace Avalonia.FreeDesktop |
|||
{ |
|||
[DBusInterface("org.freedesktop.portal.Request")] |
|||
internal interface IRequest : IDBusObject |
|||
{ |
|||
Task CloseAsync(); |
|||
Task<IDisposable> WatchResponseAsync(Action<(uint response, IDictionary<string, object> results)> handler, Action<Exception>? onError = null); |
|||
} |
|||
} |
|||
@ -1,16 +0,0 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
using Tmds.DBus; |
|||
|
|||
namespace Avalonia.FreeDesktop; |
|||
|
|||
[DBusInterface("org.freedesktop.portal.Settings")] |
|||
internal interface IDBusSettings : IDBusObject |
|||
{ |
|||
Task<(string @namespace, IDictionary<string, object>)> ReadAllAsync(string[] namespaces); |
|||
|
|||
Task<object> ReadAsync(string @namespace, string key); |
|||
|
|||
Task<IDisposable> WatchSettingChangedAsync(Action<(string @namespace, string key, object value)> handler, Action<Exception>? onError = null); |
|||
} |
|||
@ -0,0 +1,89 @@ |
|||
<node> |
|||
<interface name="org.freedesktop.DBus"> |
|||
<method name="Hello"> |
|||
<arg type="s" direction="out"></arg> |
|||
</method> |
|||
<method name="RequestName"> |
|||
<arg type="s" direction="in"></arg> |
|||
<arg type="u" direction="in"></arg> |
|||
<arg type="u" direction="out"></arg> |
|||
</method> |
|||
<method name="ReleaseName"> |
|||
<arg type="s" direction="in"></arg> |
|||
<arg type="u" direction="out"></arg> |
|||
</method> |
|||
<method name="StartServiceByName"> |
|||
<arg type="s" direction="in"></arg> |
|||
<arg type="u" direction="in"></arg> |
|||
<arg type="u" direction="out"></arg> |
|||
</method> |
|||
<method name="UpdateActivationEnvironment"> |
|||
<arg type="a{ss}" direction="in"></arg> |
|||
</method> |
|||
<method name="NameHasOwner"> |
|||
<arg type="s" direction="in"></arg> |
|||
<arg type="b" direction="out"></arg> |
|||
</method> |
|||
<method name="ListNames"> |
|||
<arg type="as" direction="out"></arg> |
|||
</method> |
|||
<method name="ListActivatableNames"> |
|||
<arg type="as" direction="out"></arg> |
|||
</method> |
|||
<method name="AddMatch"> |
|||
<arg type="s" direction="in"></arg> |
|||
</method> |
|||
<method name="RemoveMatch"> |
|||
<arg type="s" direction="in"></arg> |
|||
</method> |
|||
<method name="GetNameOwner"> |
|||
<arg type="s" direction="in"></arg> |
|||
<arg type="s" direction="out"></arg> |
|||
</method> |
|||
<method name="ListQueuedOwners"> |
|||
<arg type="s" direction="in"></arg> |
|||
<arg type="as" direction="out"></arg> |
|||
</method> |
|||
<method name="GetConnectionUnixUser"> |
|||
<arg type="s" direction="in"></arg> |
|||
<arg type="u" direction="out"></arg> |
|||
</method> |
|||
<method name="GetConnectionUnixProcessID"> |
|||
<arg type="s" direction="in"></arg> |
|||
<arg type="u" direction="out"></arg> |
|||
</method> |
|||
<method name="GetAdtAuditSessionData"> |
|||
<arg type="s" direction="in"></arg> |
|||
<arg type="ay" direction="out"></arg> |
|||
</method> |
|||
<method name="GetConnectionSELinuxSecurityContext"> |
|||
<arg type="s" direction="in"></arg> |
|||
<arg type="ay" direction="out"></arg> |
|||
</method> |
|||
<method name="ReloadConfig"></method> |
|||
<method name="GetId"> |
|||
<arg type="s" direction="out"></arg> |
|||
</method> |
|||
<method name="GetConnectionCredentials"> |
|||
<arg type="s" direction="in"></arg> |
|||
<arg type="a{sv}" direction="out"></arg> |
|||
</method> |
|||
<signal name="NameOwnerChanged"> |
|||
<arg type="s"></arg> |
|||
<arg type="s"></arg> |
|||
<arg type="s"></arg> |
|||
</signal> |
|||
<signal name="NameLost"> |
|||
<arg type="s"></arg> |
|||
</signal> |
|||
<signal name="NameAcquired"> |
|||
<arg type="s"></arg> |
|||
</signal> |
|||
<property name="Features" type="as" access="read"> |
|||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"></annotation> |
|||
</property> |
|||
<property name="Interfaces" type="as" access="read"> |
|||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"></annotation> |
|||
</property> |
|||
</interface> |
|||
</node> |
|||
@ -0,0 +1,437 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!-- |
|||
A library to allow applications to provide simple indications of |
|||
information to be displayed to users of the application through the |
|||
interface shell. |
|||
|
|||
Copyright 2009 Canonical Ltd. |
|||
|
|||
Authors: |
|||
Ted Gould <ted@canonical.com> |
|||
Aurélien Gâteau <aurelien.gateau@canonical.com> |
|||
|
|||
This program is free software: you can redistribute it and/or modify it |
|||
under the terms of either or both of the following licenses: |
|||
|
|||
1) the GNU Lesser General Public License version 3, as published by the |
|||
Free Software Foundation; and/or |
|||
2) the GNU Lesser General Public License version 2.1, as published by |
|||
the Free Software Foundation. |
|||
|
|||
This program is distributed in the hope that it will be useful, but |
|||
WITHOUT ANY WARRANTY; without even the implied warranties of |
|||
MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR |
|||
PURPOSE. See the applicable version of the GNU Lesser General Public |
|||
License for more details. |
|||
|
|||
You should have received a copy of both the GNU Lesser General Public |
|||
License version 3 and version 2.1 along with this program. If not, see |
|||
<http://www.gnu.org/licenses/> |
|||
--> |
|||
<node name="/" xmlns:dox="http://www.canonical.com/dbus/dox.dtd"> |
|||
<dox:d><![CDATA[ |
|||
@mainpage |
|||
|
|||
The goal of DBusMenu is to expose menus on DBus. |
|||
|
|||
Main interface is documented here: @ref com::canonical::dbusmenu |
|||
]]></dox:d> |
|||
<interface name="com.canonical.dbusmenu"> |
|||
<dox:d><![CDATA[ |
|||
A DBus interface to expose menus on DBus. |
|||
|
|||
Menu items are represented with a unique numeric id and a dictionary of |
|||
properties. |
|||
|
|||
To reduce the amount of DBus traffic, a property should only be returned |
|||
if its value is not the default value. |
|||
|
|||
Available properties are: |
|||
|
|||
<table> |
|||
<tr> |
|||
<th>Name</th> |
|||
<th>Type</th> |
|||
<th>Description</th> |
|||
<th>Default Value</th> |
|||
</tr> |
|||
<tr> |
|||
<td>type</td> |
|||
<td>String</td> |
|||
<td>Can be one of: |
|||
- "standard": an item which can be clicked to trigger an action or |
|||
show another menu |
|||
- "separator": a separator |
|||
|
|||
Vendor specific types can be added by prefixing them with |
|||
"x-<vendor>-". |
|||
</td> |
|||
<td>"standard"</td> |
|||
</tr> |
|||
<tr> |
|||
<td>label</td> |
|||
<td>string</td> |
|||
<td>Text of the item, except that: |
|||
-# two consecutive underscore characters "__" are displayed as a |
|||
single underscore, |
|||
-# any remaining underscore characters are not displayed at all, |
|||
-# the first of those remaining underscore characters (unless it is |
|||
the last character in the string) indicates that the following |
|||
character is the access key. |
|||
</td> |
|||
<td>""</td> |
|||
</tr> |
|||
<tr> |
|||
<td>enabled</td> |
|||
<td>boolean</td> |
|||
<td>Whether the item can be activated or not.</td> |
|||
<td>true</td> |
|||
</tr> |
|||
<tr> |
|||
<td>visible</td> |
|||
<td>boolean</td> |
|||
<td>True if the item is visible in the menu.</td> |
|||
<td>true</td> |
|||
</tr> |
|||
<tr> |
|||
<td>icon-name</td> |
|||
<td>string</td> |
|||
<td>Icon name of the item, following the freedesktop.org icon spec.</td> |
|||
<td>""</td> |
|||
</tr> |
|||
<tr> |
|||
<td>icon-data</td> |
|||
<td>binary</td> |
|||
<td>PNG data of the icon.</td> |
|||
<td>Empty</td> |
|||
</tr> |
|||
<tr> |
|||
<td>shortcut</td> |
|||
<td>array of arrays of strings</td> |
|||
<td>The shortcut of the item. Each array represents the key press |
|||
in the list of keypresses. Each list of strings contains a list of |
|||
modifiers and then the key that is used. The modifier strings |
|||
allowed are: "Control", "Alt", "Shift" and "Super". |
|||
|
|||
- A simple shortcut like Ctrl+S is represented as: |
|||
[["Control", "S"]] |
|||
- A complex shortcut like Ctrl+Q, Alt+X is represented as: |
|||
[["Control", "Q"], ["Alt", "X"]]</td> |
|||
<td>Empty</td> |
|||
</tr> |
|||
<tr> |
|||
<td>toggle-type</td> |
|||
<td>string</td> |
|||
<td> |
|||
If the item can be toggled, this property should be set to: |
|||
- "checkmark": Item is an independent togglable item |
|||
- "radio": Item is part of a group where only one item can be |
|||
toggled at a time |
|||
- "": Item cannot be toggled |
|||
</td> |
|||
<td>""</td> |
|||
</tr> |
|||
<tr> |
|||
<td>toggle-state</td> |
|||
<td>int</td> |
|||
<td> |
|||
Describe the current state of a "togglable" item. Can be one of: |
|||
- 0 = off |
|||
- 1 = on |
|||
- anything else = indeterminate |
|||
|
|||
Note: |
|||
The implementation does not itself handle ensuring that only one |
|||
item in a radio group is set to "on", or that a group does not have |
|||
"on" and "indeterminate" items simultaneously; maintaining this |
|||
policy is up to the toolkit wrappers. |
|||
</td> |
|||
<td>-1</td> |
|||
</tr> |
|||
<tr> |
|||
<td>children-display</td> |
|||
<td>string</td> |
|||
<td> |
|||
If the menu item has children this property should be set to |
|||
"submenu". |
|||
</td> |
|||
<td>""</td> |
|||
</tr> |
|||
<tr> |
|||
<td>disposition</td> |
|||
<td>string</td> |
|||
<td> |
|||
How the menuitem feels the information it's displaying to the |
|||
user should be presented. |
|||
- "normal" a standard menu item |
|||
- "informative" providing additional information to the user |
|||
- "warning" looking at potentially harmful results |
|||
- "alert" something bad could potentially happen |
|||
</td> |
|||
<td>"normal"</td> |
|||
</tr> |
|||
</table> |
|||
|
|||
Vendor specific properties can be added by prefixing them with |
|||
"x-<vendor>-". |
|||
]]></dox:d> |
|||
|
|||
<!-- Properties --> |
|||
<property name="Version" type="u" access="read"> |
|||
<dox:d> |
|||
Provides the version of the DBusmenu API that this API is |
|||
implementing. |
|||
</dox:d> |
|||
</property> |
|||
|
|||
<property name="TextDirection" type="s" access="read"> |
|||
<dox:d> |
|||
Represents the way the text direction of the application. This |
|||
allows the server to handle mismatches intelligently. For left- |
|||
to-right the string is "ltr" for right-to-left it is "rtl". |
|||
</dox:d> |
|||
</property> |
|||
|
|||
<property name="Status" type="s" access="read"> |
|||
<dox:d> |
|||
Tells if the menus are in a normal state or they believe that they |
|||
could use some attention. Cases for showing them would be if help |
|||
were referring to them or they accessors were being highlighted. |
|||
This property can have two values: "normal" in almost all cases and |
|||
"notice" when they should have a higher priority to be shown. |
|||
</dox:d> |
|||
</property> |
|||
|
|||
<property name="IconThemePath" type="as" access="read"> |
|||
<dox:d> |
|||
A list of directories that should be used for finding icons using |
|||
the icon naming spec. Idealy there should only be one for the icon |
|||
theme, but additional ones are often added by applications for |
|||
app specific icons. |
|||
</dox:d> |
|||
</property> |
|||
|
|||
<!-- Functions --> |
|||
|
|||
<method name="GetLayout"> |
|||
<dox:d> |
|||
Provides the layout and propertiers that are attached to the entries |
|||
that are in the layout. It only gives the items that are children |
|||
of the item that is specified in @a parentId. It will return all of the |
|||
properties or specific ones depending of the value in @a propertyNames. |
|||
|
|||
The format is recursive, where the second 'v' is in the same format |
|||
as the original 'a(ia{sv}av)'. Its content depends on the value |
|||
of @a recursionDepth. |
|||
</dox:d> |
|||
<arg type="i" name="parentId" direction="in"> |
|||
<dox:d>The ID of the parent node for the layout. For |
|||
grabbing the layout from the root node use zero.</dox:d> |
|||
</arg> |
|||
<arg type="i" name="recursionDepth" direction="in"> |
|||
<dox:d> |
|||
The amount of levels of recursion to use. This affects the |
|||
content of the second variant array. |
|||
- -1: deliver all the items under the @a parentId. |
|||
- 0: no recursion, the array will be empty. |
|||
- n: array will contains items up to 'n' level depth. |
|||
</dox:d> |
|||
</arg> |
|||
<arg type="as" name="propertyNames" direction="in" > |
|||
<dox:d> |
|||
The list of item properties we are |
|||
interested in. If there are no entries in the list all of |
|||
the properties will be sent. |
|||
</dox:d> |
|||
</arg> |
|||
<arg type="u" name="revision" direction="out"> |
|||
<dox:d>The revision number of the layout. For matching |
|||
with layoutUpdated signals.</dox:d> |
|||
</arg> |
|||
<arg type="(ia{sv}av)" name="layout" direction="out"> |
|||
<dox:d>The layout, as a recursive structure.</dox:d> |
|||
</arg> |
|||
</method> |
|||
|
|||
<method name="GetGroupProperties"> |
|||
<dox:d> |
|||
Returns the list of items which are children of @a parentId. |
|||
</dox:d> |
|||
<arg type="ai" name="ids" direction="in" > |
|||
<dox:d> |
|||
A list of ids that we should be finding the properties |
|||
on. If the list is empty, all menu items should be sent. |
|||
</dox:d> |
|||
</arg> |
|||
<arg type="as" name="propertyNames" direction="in" > |
|||
<dox:d> |
|||
The list of item properties we are |
|||
interested in. If there are no entries in the list all of |
|||
the properties will be sent. |
|||
</dox:d> |
|||
</arg> |
|||
<arg type="a(ia{sv})" name="properties" direction="out" > |
|||
<dox:d> |
|||
An array of property values. |
|||
An item in this area is represented as a struct following |
|||
this format: |
|||
@li id unsigned the item id |
|||
@li properties map(string => variant) the requested item properties |
|||
</dox:d> |
|||
</arg> |
|||
</method> |
|||
|
|||
<method name="GetProperty"> |
|||
<dox:d> |
|||
Get a signal property on a single item. This is not useful if you're |
|||
going to implement this interface, it should only be used if you're |
|||
debugging via a commandline tool. |
|||
</dox:d> |
|||
<arg type="i" name="id" direction="in"> |
|||
<dox:d>the id of the item which received the event</dox:d> |
|||
</arg> |
|||
<arg type="s" name="name" direction="in"> |
|||
<dox:d>the name of the property to get</dox:d> |
|||
</arg> |
|||
<arg type="v" name="value" direction="out"> |
|||
<dox:d>the value of the property</dox:d> |
|||
</arg> |
|||
</method> |
|||
|
|||
<method name="Event"> |
|||
<dox:d><![CDATA[ |
|||
This is called by the applet to notify the application an event happened on a |
|||
menu item. |
|||
|
|||
@a type can be one of the following: |
|||
|
|||
@li "clicked" |
|||
@li "hovered" |
|||
@li "opened" |
|||
@li "closed" |
|||
|
|||
Vendor specific events can be added by prefixing them with "x-<vendor>-" |
|||
]]></dox:d> |
|||
<arg type="i" name="id" direction="in" > |
|||
<dox:d>the id of the item which received the event</dox:d> |
|||
</arg> |
|||
<arg type="s" name="eventId" direction="in" > |
|||
<dox:d>the type of event</dox:d> |
|||
</arg> |
|||
<arg type="v" name="data" direction="in" > |
|||
<dox:d>event-specific data</dox:d> |
|||
</arg> |
|||
<arg type="u" name="timestamp" direction="in" > |
|||
<dox:d>The time that the event occured if available or the time the message was sent if not</dox:d> |
|||
</arg> |
|||
</method> |
|||
|
|||
<method name="EventGroup"> |
|||
<dox:d> |
|||
Used to pass a set of events as a single message for possibily several |
|||
different menuitems. This is done to optimize DBus traffic. |
|||
</dox:d> |
|||
<arg type="a(isvu)" name="events" direction="in"> |
|||
<dox:d> |
|||
An array of all the events that should be passed. This tuple should |
|||
match the parameters of the 'Event' signal. Which is roughly: |
|||
id, eventID, data and timestamp. |
|||
</dox:d> |
|||
</arg> |
|||
<arg type="ai" name="idErrors" direction="out"> |
|||
<dox:d> |
|||
I list of menuitem IDs that couldn't be found. If none of the ones |
|||
in the list can be found, a DBus error is returned. |
|||
</dox:d> |
|||
</arg> |
|||
</method> |
|||
|
|||
<method name="AboutToShow"> |
|||
<dox:d> |
|||
This is called by the applet to notify the application that it is about |
|||
to show the menu under the specified item. |
|||
</dox:d> |
|||
<arg type="i" name="id" direction="in"> |
|||
<dox:d> |
|||
Which menu item represents the parent of the item about to be shown. |
|||
</dox:d> |
|||
</arg> |
|||
<arg type="b" name="needUpdate" direction="out"> |
|||
<dox:d> |
|||
Whether this AboutToShow event should result in the menu being updated. |
|||
</dox:d> |
|||
</arg> |
|||
</method> |
|||
|
|||
<method name="AboutToShowGroup"> |
|||
<dox:d> |
|||
A function to tell several menus being shown that they are about to |
|||
be shown to the user. This is likely only useful for programitc purposes |
|||
so while the return values are returned, in general, the singular function |
|||
should be used in most user interacation scenarios. |
|||
</dox:d> |
|||
<arg type="ai" name="ids" direction="in"> |
|||
<dox:d> |
|||
The IDs of the menu items who's submenus are being shown. |
|||
</dox:d> |
|||
</arg> |
|||
<arg type="ai" name="updatesNeeded" direction="out"> |
|||
<dox:d> |
|||
The IDs of the menus that need updates. Note: if no update information |
|||
is needed the DBus message should set the no reply flag. |
|||
</dox:d> |
|||
</arg> |
|||
<arg type="ai" name="idErrors" direction="out"> |
|||
<dox:d> |
|||
I list of menuitem IDs that couldn't be found. If none of the ones |
|||
in the list can be found, a DBus error is returned. |
|||
</dox:d> |
|||
</arg> |
|||
</method> |
|||
|
|||
<!-- Signals --> |
|||
<signal name="ItemsPropertiesUpdated"> |
|||
<dox:d> |
|||
Triggered when there are lots of property updates across many items |
|||
so they all get grouped into a single dbus message. The format is |
|||
the ID of the item with a hashtable of names and values for those |
|||
properties. |
|||
</dox:d> |
|||
<arg type="a(ia{sv})" name="updatedProps" direction="out" /> |
|||
<arg type="a(ias)" name="removedProps" direction="out" /> |
|||
</signal> |
|||
<signal name="LayoutUpdated"> |
|||
<dox:d> |
|||
Triggered by the application to notify display of a layout update, up to |
|||
revision |
|||
</dox:d> |
|||
<arg type="u" name="revision" direction="out" > |
|||
<dox:d>The revision of the layout that we're currently on</dox:d> |
|||
</arg> |
|||
<arg type="i" name="parent" direction="out" > |
|||
<dox:d> |
|||
If the layout update is only of a subtree, this is the |
|||
parent item for the entries that have changed. It is zero if |
|||
the whole layout should be considered invalid. |
|||
</dox:d> |
|||
</arg> |
|||
</signal> |
|||
<signal name="ItemActivationRequested"> |
|||
<dox:d> |
|||
The server is requesting that all clients displaying this |
|||
menu open it to the user. This would be for things like |
|||
hotkeys that when the user presses them the menu should |
|||
open and display itself to the user. |
|||
</dox:d> |
|||
<arg type="i" name="id" direction="out" > |
|||
<dox:d>ID of the menu that should be activated</dox:d> |
|||
</arg> |
|||
<arg type="u" name="timestamp" direction="out" > |
|||
<dox:d>The time that the event occured</dox:d> |
|||
</arg> |
|||
</signal> |
|||
|
|||
<!-- End of interesting stuff --> |
|||
|
|||
</interface> |
|||
</node> |
|||
@ -0,0 +1,96 @@ |
|||
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> |
|||
<node> |
|||
<interface name="org.kde.StatusNotifierItem"> |
|||
|
|||
<property name="Category" type="s" access="read"/> |
|||
<property name="Id" type="s" access="read"/> |
|||
<property name="Title" type="s" access="read"/> |
|||
<property name="Status" type="s" access="read"/> |
|||
<property name="WindowId" type="i" access="read"/> |
|||
|
|||
<!-- An additional path to add to the theme search path to find the icons specified above. --> |
|||
<property name="IconThemePath" type="s" access="read"/> |
|||
<property name="Menu" type="o" access="read"/> |
|||
<property name="ItemIsMenu" type="b" access="read"/> |
|||
|
|||
|
|||
<!-- main icon --> |
|||
<!-- names are preferred over pixmaps --> |
|||
<property name="IconName" type="s" access="read"/> |
|||
|
|||
<!--struct containing width, height and image data--> |
|||
<property name="IconPixmap" type="a(iiay)" access="read"> |
|||
<annotation name="org.qtproject.QtDBus.QtTypeName" value="KDbusImageVector"/> |
|||
</property> |
|||
|
|||
<property name="OverlayIconName" type="s" access="read"/> |
|||
|
|||
<property name="OverlayIconPixmap" type="a(iiay)" access="read"> |
|||
<annotation name="org.qtproject.QtDBus.QtTypeName" value="KDbusImageVector"/> |
|||
</property> |
|||
|
|||
|
|||
<!-- Requesting attention icon --> |
|||
<property name="AttentionIconName" type="s" access="read"/> |
|||
|
|||
<!--same definition as image--> |
|||
<property name="AttentionIconPixmap" type="a(iiay)" access="read"> |
|||
<annotation name="org.qtproject.QtDBus.QtTypeName" value="KDbusImageVector"/> |
|||
</property> |
|||
|
|||
<property name="AttentionMovieName" type="s" access="read"/> |
|||
|
|||
|
|||
|
|||
<!-- tooltip data --> |
|||
|
|||
<!--(iiay) is an image--> |
|||
<property name="ToolTip" type="(sa(iiay)ss)" access="read"> |
|||
<annotation name="org.qtproject.QtDBus.QtTypeName" value="KDbusToolTipStruct"/> |
|||
</property> |
|||
|
|||
|
|||
<!-- interaction: the systemtray wants the application to do something --> |
|||
<method name="ContextMenu"> |
|||
<!-- we're passing the coordinates of the icon, so the app knows where to put the popup window --> |
|||
<arg name="x" type="i" direction="in"/> |
|||
<arg name="y" type="i" direction="in"/> |
|||
</method> |
|||
|
|||
<method name="Activate"> |
|||
<arg name="x" type="i" direction="in"/> |
|||
<arg name="y" type="i" direction="in"/> |
|||
</method> |
|||
|
|||
<method name="SecondaryActivate"> |
|||
<arg name="x" type="i" direction="in"/> |
|||
<arg name="y" type="i" direction="in"/> |
|||
</method> |
|||
|
|||
<method name="Scroll"> |
|||
<arg name="delta" type="i" direction="in"/> |
|||
<arg name="orientation" type="s" direction="in"/> |
|||
</method> |
|||
|
|||
<!-- Signals: the client wants to change something in the status--> |
|||
<signal name="NewTitle"> |
|||
</signal> |
|||
|
|||
<signal name="NewIcon"> |
|||
</signal> |
|||
|
|||
<signal name="NewAttentionIcon"> |
|||
</signal> |
|||
|
|||
<signal name="NewOverlayIcon"> |
|||
</signal> |
|||
|
|||
<signal name="NewToolTip"> |
|||
</signal> |
|||
|
|||
<signal name="NewStatus"> |
|||
<arg name="status" type="s"/> |
|||
</signal> |
|||
|
|||
</interface> |
|||
</node> |
|||
@ -0,0 +1,42 @@ |
|||
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> |
|||
<node> |
|||
<interface name="org.kde.StatusNotifierWatcher"> |
|||
|
|||
<!-- methods --> |
|||
<method name="RegisterStatusNotifierItem"> |
|||
<arg name="service" type="s" direction="in"/> |
|||
</method> |
|||
|
|||
<method name="RegisterStatusNotifierHost"> |
|||
<arg name="service" type="s" direction="in"/> |
|||
</method> |
|||
|
|||
|
|||
<!-- properties --> |
|||
|
|||
<property name="RegisteredStatusNotifierItems" type="as" access="read"> |
|||
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QStringList"/> |
|||
</property> |
|||
|
|||
<property name="IsStatusNotifierHostRegistered" type="b" access="read"/> |
|||
|
|||
<property name="ProtocolVersion" type="i" access="read"/> |
|||
|
|||
|
|||
<!-- signals --> |
|||
|
|||
<signal name="StatusNotifierItemRegistered"> |
|||
<arg type="s"/> |
|||
</signal> |
|||
|
|||
<signal name="StatusNotifierItemUnregistered"> |
|||
<arg type="s"/> |
|||
</signal> |
|||
|
|||
<signal name="StatusNotifierHostRegistered"> |
|||
</signal> |
|||
|
|||
<signal name="StatusNotifierHostUnregistered"> |
|||
</signal> |
|||
</interface> |
|||
</node> |
|||
@ -0,0 +1,56 @@ |
|||
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> |
|||
<node xmlns:dox="http://www.ayatana.org/dbus/dox.dtd"> |
|||
<dox:d><![CDATA[ |
|||
@mainpage |
|||
|
|||
An interface to register menus that are associated with a window in an application. The |
|||
main interface is documented here: @ref com::canonical::AppMenu::Registrar. |
|||
|
|||
The actual menus are transported using the dbusmenu protocol which is available |
|||
here: @ref com::canonical::dbusmenu. |
|||
]]></dox:d> |
|||
<interface name="com.canonical.AppMenu.Registrar" xmlns:dox="http://www.ayatana.org/dbus/dox.dtd"> |
|||
<dox:d> |
|||
An interface to register a menu from an application's window to be displayed in another |
|||
window. This manages that association between XWindow Window IDs and the dbus |
|||
address and object that provides the menu using the dbusmenu dbus interface. |
|||
</dox:d> |
|||
<method name="RegisterWindow"> |
|||
<dox:d><![CDATA[ |
|||
Associates a dbusmenu with a window |
|||
|
|||
/note this method assumes that the connection from the caller is the DBus connection |
|||
to use for the object. Applications that use multiple DBus connections will need to |
|||
ensure this method is called with the same connection that implmenets the object. |
|||
]]></dox:d> |
|||
<arg name="windowId" type="u" direction="in"> |
|||
<dox:d>The XWindow ID of the window</dox:d> |
|||
</arg> |
|||
<arg name="menuObjectPath" type="o" direction="in"> |
|||
<dox:d>The object on the dbus interface implementing the dbusmenu interface</dox:d> |
|||
</arg> |
|||
</method> |
|||
<method name="UnregisterWindow"> |
|||
<dox:d> |
|||
A method to allow removing a window from the database. Windows will also be removed |
|||
when the client drops off DBus so this is not required. It is polite though. And |
|||
important for testing. |
|||
</dox:d> |
|||
<arg name="windowId" type="u" direction="in"> |
|||
<dox:d>The XWindow ID of the window</dox:d> |
|||
</arg> |
|||
</method> |
|||
<method name="GetMenuForWindow"> |
|||
<dox:d>Gets the registered menu for a given window ID.</dox:d> |
|||
<arg name="windowId" type="u" direction="in"> |
|||
<dox:d>The XWindow ID of the window to get</dox:d> |
|||
</arg> |
|||
<arg name="service" type="s" direction="out"> |
|||
<dox:d>The address of the connection on DBus (e.g. :1.23 or org.example.service)</dox:d> |
|||
</arg> |
|||
<arg name="menuObjectPath" type="o" direction="out"> |
|||
<dox:d>The path to the object which implements the com.canonical.dbusmenu interface.</dox:d> |
|||
</arg> |
|||
</method> |
|||
</interface> |
|||
</node> |
|||
@ -0,0 +1,64 @@ |
|||
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" |
|||
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> |
|||
<node> |
|||
<interface name="org.fcitx.Fcitx.InputContext"> |
|||
<method name="FocusIn"> |
|||
</method> |
|||
<method name="FocusOut"> |
|||
</method> |
|||
<method name="Reset"> |
|||
</method> |
|||
<method name="SetCursorRect"> |
|||
<arg name="x" direction="in" type="i"/> |
|||
<arg name="y" direction="in" type="i"/> |
|||
<arg name="w" direction="in" type="i"/> |
|||
<arg name="h" direction="in" type="i"/> |
|||
</method> |
|||
<method name="SetCapacity"> |
|||
<arg name="caps" direction="in" type="u"/> |
|||
</method> |
|||
<method name="SetSurroundingText"> |
|||
<arg name="text" direction="in" type="s"/> |
|||
<arg name="cursor" direction="in" type="u"/> |
|||
<arg name="anchor" direction="in" type="u"/> |
|||
</method> |
|||
<method name="SetSurroundingTextPosition"> |
|||
<arg name="cursor" direction="in" type="u"/> |
|||
<arg name="anchor" direction="in" type="u"/> |
|||
</method> |
|||
<method name="DestroyIC"> |
|||
</method> |
|||
<method name="ProcessKeyEvent"> |
|||
<arg name="keyval" direction="in" type="u"/> |
|||
<arg name="keycode" direction="in" type="u"/> |
|||
<arg name="state" direction="in" type="u"/> |
|||
<arg name="type" direction="in" type="i"/> |
|||
<arg name="time" direction="in" type="u"/> |
|||
<arg name="ret" direction="out" type="i"/> |
|||
</method> |
|||
<signal name="CommitString"> |
|||
<arg name="str" type="s"/> |
|||
</signal> |
|||
<signal name="CurrentIM"> |
|||
<arg name="name" type="s"/> |
|||
<arg name="uniqueName" type="s"/> |
|||
<arg name="langCode" type="s"/> |
|||
</signal> |
|||
<signal name="UpdateFormattedPreedit"> |
|||
<arg name="str" type="a(si)" /> |
|||
<arg name="cursorpos" type="i"/> |
|||
<!-- qt4 / 5 seems use in/out differently --> |
|||
<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="FcitxFormattedPreeditList" /> |
|||
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="FcitxFormattedPreeditList" /> |
|||
</signal> |
|||
<signal name="ForwardKey"> |
|||
<arg name="keyval" type="u"/> |
|||
<arg name="state" type="u"/> |
|||
<arg name="type" type="i"/> |
|||
</signal> |
|||
<signal name="DeleteSurroundingText"> |
|||
<arg name="offset" type="i"/> |
|||
<arg name="nchar" type="u"/> |
|||
</signal> |
|||
</interface> |
|||
</node> |
|||
@ -0,0 +1,64 @@ |
|||
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" |
|||
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> |
|||
<node> |
|||
<interface name="org.fcitx.Fcitx.InputContext1"> |
|||
<method name="FocusIn"> |
|||
</method> |
|||
<method name="FocusOut"> |
|||
</method> |
|||
<method name="Reset"> |
|||
</method> |
|||
<method name="SetCursorRect"> |
|||
<arg name="x" direction="in" type="i"/> |
|||
<arg name="y" direction="in" type="i"/> |
|||
<arg name="w" direction="in" type="i"/> |
|||
<arg name="h" direction="in" type="i"/> |
|||
</method> |
|||
<method name="SetCapability"> |
|||
<arg name="caps" direction="in" type="t"/> |
|||
</method> |
|||
<method name="SetSurroundingText"> |
|||
<arg name="text" direction="in" type="s"/> |
|||
<arg name="cursor" direction="in" type="u"/> |
|||
<arg name="anchor" direction="in" type="u"/> |
|||
</method> |
|||
<method name="SetSurroundingTextPosition"> |
|||
<arg name="cursor" direction="in" type="u"/> |
|||
<arg name="anchor" direction="in" type="u"/> |
|||
</method> |
|||
<method name="DestroyIC"> |
|||
</method> |
|||
<method name="ProcessKeyEvent"> |
|||
<arg name="keyval" direction="in" type="u"/> |
|||
<arg name="keycode" direction="in" type="u"/> |
|||
<arg name="state" direction="in" type="u"/> |
|||
<arg name="type" direction="in" type="b"/> |
|||
<arg name="time" direction="in" type="u"/> |
|||
<arg name="ret" direction="out" type="b"/> |
|||
</method> |
|||
<signal name="CommitString"> |
|||
<arg name="str" type="s"/> |
|||
</signal> |
|||
<signal name="CurrentIM"> |
|||
<arg name="name" type="s"/> |
|||
<arg name="uniqueName" type="s"/> |
|||
<arg name="langCode" type="s"/> |
|||
</signal> |
|||
<signal name="UpdateFormattedPreedit"> |
|||
<arg name="str" type="a(si)" /> |
|||
<arg name="cursorpos" type="i"/> |
|||
<!-- qt4 / 5 seems use in/out differently --> |
|||
<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="FcitxFormattedPreeditList" /> |
|||
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="FcitxFormattedPreeditList" /> |
|||
</signal> |
|||
<signal name="ForwardKey"> |
|||
<arg name="keyval" type="u"/> |
|||
<arg name="state" type="u"/> |
|||
<arg name="type" type="b"/> |
|||
</signal> |
|||
<signal name="DeleteSurroundingText"> |
|||
<arg name="offset" type="i"/> |
|||
<arg name="nchar" type="u"/> |
|||
</signal> |
|||
</interface> |
|||
</node> |
|||
@ -0,0 +1,16 @@ |
|||
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" |
|||
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> |
|||
<node> |
|||
<interface name="org.fcitx.Fcitx.InputMethod"> |
|||
<method name="CreateICv3"> |
|||
<arg name="appname" direction="in" type="s"/> |
|||
<arg name="pid" direction="in" type="i"/> |
|||
<arg name="icid" direction="out" type="i"/> |
|||
<arg name="enable" direction="out" type="b"/> |
|||
<arg name="keyval1" direction="out" type="u"/> |
|||
<arg name="state1" direction="out" type="u"/> |
|||
<arg name="keyval2" direction="out" type="u"/> |
|||
<arg name="state2" direction="out" type="u"/> |
|||
</method> |
|||
</interface> |
|||
</node> |
|||
@ -0,0 +1,12 @@ |
|||
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" |
|||
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> |
|||
<node> |
|||
<interface name="org.fcitx.Fcitx.InputMethod1"> |
|||
<method name="CreateInputContext"> |
|||
<arg type="a(ss)" direction="in"/> |
|||
<arg type="o" direction="out"/> |
|||
<arg type="ay" direction="out"/> |
|||
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="FcitxInputContextArgumentList" /> |
|||
</method> |
|||
</interface> |
|||
</node> |
|||
@ -0,0 +1,139 @@ |
|||
<?xml version="1.0"?> |
|||
<!-- |
|||
Copyright (C) 2017-2019 Red Hat, Inc. |
|||
|
|||
This library is free software; you can redistribute it and/or |
|||
modify it under the terms of the GNU Lesser General Public |
|||
License as published by the Free Software Foundation; either |
|||
version 2 of the License, or (at your option) any later version. |
|||
|
|||
This library is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|||
Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public |
|||
License along with this library. If not, see <http://www.gnu.org/licenses/>. |
|||
|
|||
Author: Alexander Larsson <alexl@redhat.com> |
|||
--> |
|||
|
|||
<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd"> |
|||
<!-- |
|||
org.freedesktop.IBus.Portal: |
|||
@short_description: Portal for ibus client access |
|||
|
|||
This interface is a minimal interface to IBus that is safe to expose to |
|||
clients. |
|||
--> |
|||
<interface name="org.freedesktop.IBus.Portal"> |
|||
<method name='CreateInputContext'> |
|||
<arg direction='in' type='s' name='client_name' /> |
|||
<arg direction='out' type='o' name='object_path' /> |
|||
</method> |
|||
</interface> |
|||
|
|||
<!-- This is a copy of the interface in inputcontext.c, they should be shared. |
|||
We want this for the code generator so that we can be sure we verify all |
|||
caller types, etc. |
|||
--> |
|||
<interface name='org.freedesktop.IBus.InputContext'> |
|||
<method name='ProcessKeyEvent'> |
|||
<arg direction='in' type='u' name='keyval' /> |
|||
<arg direction='in' type='u' name='keycode' /> |
|||
<arg direction='in' type='u' name='state' /> |
|||
<arg direction='out' type='b' name='handled' /> |
|||
</method> |
|||
<method name='SetCursorLocation'> |
|||
<arg direction='in' type='i' name='x' /> |
|||
<arg direction='in' type='i' name='y' /> |
|||
<arg direction='in' type='i' name='w' /> |
|||
<arg direction='in' type='i' name='h' /> |
|||
</method> |
|||
<method name='SetCursorLocationRelative'> |
|||
<arg direction='in' type='i' name='x' /> |
|||
<arg direction='in' type='i' name='y' /> |
|||
<arg direction='in' type='i' name='w' /> |
|||
<arg direction='in' type='i' name='h' /> |
|||
</method> |
|||
<method name='ProcessHandWritingEvent'> |
|||
<arg direction='in' type='ad' name='coordinates' /> |
|||
</method> |
|||
<method name='CancelHandWriting'> |
|||
<arg direction='in' type='u' name='n_strokes' /> |
|||
</method> |
|||
<method name='FocusIn' /> |
|||
<method name='FocusOut' /> |
|||
<method name='Reset' /> |
|||
<method name='SetCapabilities'> |
|||
<arg direction='in' type='u' name='caps' /> |
|||
</method> |
|||
<method name='PropertyActivate'> |
|||
<arg direction='in' type='s' name='name' /> |
|||
<arg direction='in' type='u' name='state' /> |
|||
</method> |
|||
<method name='SetEngine'> |
|||
<arg direction='in' type='s' name='name' /> |
|||
</method> |
|||
<method name='GetEngine'> |
|||
<arg direction='out' type='v' name='desc' /> |
|||
</method> |
|||
<method name='SetSurroundingText'> |
|||
<arg direction='in' type='v' name='text' /> |
|||
<arg direction='in' type='u' name='cursor_pos' /> |
|||
<arg direction='in' type='u' name='anchor_pos' /> |
|||
</method> |
|||
|
|||
<signal name='CommitText'> |
|||
<arg type='v' name='text' /> |
|||
</signal> |
|||
<signal name='ForwardKeyEvent'> |
|||
<arg type='u' name='keyval' /> |
|||
<arg type='u' name='keycode' /> |
|||
<arg type='u' name='state' /> |
|||
</signal> |
|||
<signal name='UpdatePreeditText'> |
|||
<arg type='v' name='text' /> |
|||
<arg type='u' name='cursor_pos' /> |
|||
<arg type='b' name='visible' /> |
|||
</signal> |
|||
<signal name='UpdatePreeditTextWithMode'> |
|||
<arg type='v' name='text' /> |
|||
<arg type='u' name='cursor_pos' /> |
|||
<arg type='b' name='visible' /> |
|||
<arg type='u' name='mode' /> |
|||
</signal> |
|||
<signal name='ShowPreeditText'/> |
|||
<signal name='HidePreeditText'/> |
|||
<signal name='UpdateAuxiliaryText'> |
|||
<arg type='v' name='text' /> |
|||
<arg type='b' name='visible' /> |
|||
</signal> |
|||
<signal name='ShowAuxiliaryText'/> |
|||
<signal name='HideAuxiliaryText'/> |
|||
<signal name='UpdateLookupTable'> |
|||
<arg type='v' name='table' /> |
|||
<arg type='b' name='visible' /> |
|||
</signal> |
|||
<signal name='ShowLookupTable'/> |
|||
<signal name='HideLookupTable'/> |
|||
<signal name='PageUpLookupTable'/> |
|||
<signal name='PageDownLookupTable'/> |
|||
<signal name='CursorUpLookupTable'/> |
|||
<signal name='CursorDownLookupTable'/> |
|||
<signal name='RegisterProperties'> |
|||
<arg type='v' name='props' /> |
|||
</signal> |
|||
<signal name='UpdateProperty'> |
|||
<arg type='v' name='prop' /> |
|||
</signal> |
|||
|
|||
<property name='ContentType' type='(uu)' access='write' /> |
|||
<property name='ClientCommitPreedit' type='(b)' access='write' /> |
|||
</interface> |
|||
|
|||
<interface name='org.freedesktop.IBus.Service'> |
|||
<method name='Destroy' /> |
|||
</interface> |
|||
|
|||
</node> |
|||
@ -0,0 +1,377 @@ |
|||
<?xml version="1.0"?> |
|||
<!-- |
|||
Copyright (C) 2015 Red Hat, Inc. |
|||
|
|||
This library is free software; you can redistribute it and/or |
|||
modify it under the terms of the GNU Lesser General Public |
|||
License as published by the Free Software Foundation; either |
|||
version 2 of the License, or (at your option) any later version. |
|||
|
|||
This library is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|||
Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public |
|||
License along with this library. If not, see <http://www.gnu.org/licenses/>. |
|||
|
|||
Author: Alexander Larsson <alexl@redhat.com> |
|||
--> |
|||
|
|||
<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd"> |
|||
<!-- |
|||
org.freedesktop.portal.FileChooser: |
|||
@short_description: File chooser portal |
|||
|
|||
The FileChooser portal allows sandboxed applications to ask |
|||
the user for access to files outside the sandbox. The portal |
|||
backend will present the user with a file chooser dialog. |
|||
|
|||
The selected files will be made accessible to the application |
|||
via the document portal, and the returned URI will point |
|||
into the document portal fuse filesystem in /run/user/$UID/doc/. |
|||
|
|||
This documentation describes version 3 of this interface. |
|||
--> |
|||
<interface name="org.freedesktop.portal.FileChooser"> |
|||
<!-- |
|||
OpenFile: |
|||
@parent_window: Identifier for the application window, see <link linkend="parent_window">Common Conventions</link> |
|||
@title: Title for the file chooser dialog |
|||
@options: Vardict with optional further information |
|||
@handle: Object path for the #org.freedesktop.portal.Request object representing this call |
|||
|
|||
Asks to open one or more files. |
|||
|
|||
Supported keys in the @options vardict include: |
|||
<variablelist> |
|||
<varlistentry> |
|||
<term>handle_token s</term> |
|||
<listitem><para> |
|||
A string that will be used as the last element of the @handle. Must be a valid |
|||
object path element. See the #org.freedesktop.portal.Request documentation for |
|||
more information about the @handle. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>accept_label s</term> |
|||
<listitem><para> |
|||
Label for the accept button. Mnemonic underlines are allowed. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>modal b</term> |
|||
<listitem><para> |
|||
Whether the dialog should be modal. Default is yes. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>multiple b</term> |
|||
<listitem><para> |
|||
Whether multiple files can be selected or not. Default is single-selection. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>directory b</term> |
|||
<listitem><para> |
|||
Whether to select for folders instead of files. Default is to select files. This option was added in version 3. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>filters a(sa(us))</term> |
|||
<listitem> |
|||
<para> |
|||
List of serialized file filters. |
|||
</para> |
|||
<para> |
|||
Each item in the array specifies a single filter to offer to the user. |
|||
The first string is a user-visible name for the filter. The a(us) |
|||
specifies a list of filter strings, which can be either a glob-style pattern |
|||
(indicated by 0) or a mimetype (indicated by 1). Patterns are case-sensitive. |
|||
To match different capitalizations of, e.g. '*.ico', use a pattern like |
|||
'*.[iI][cC][oO]'. |
|||
</para> |
|||
<para> |
|||
Example: [('Images', [(0, '*.ico'), (1, 'image/png')]), ('Text', [(0, '*.txt')])] |
|||
</para> |
|||
<para> |
|||
Note that filters are purely there to aid the user in making a useful selection. |
|||
The portal may still allow the user to select files that don't match any filter |
|||
criteria, and applications must be prepared to handle that. |
|||
</para> |
|||
</listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>current_filter (sa(us))</term> |
|||
<listitem><para> |
|||
Request that this filter be set by default at dialog creation. If |
|||
the filters list is nonempty, it should match a filter in the |
|||
list to set the default filter from the list. Alternatively, it |
|||
may be specified when the list is empty to apply the filter |
|||
unconditionally. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>choices a(ssa(ss)s)</term> |
|||
<listitem> |
|||
<para> |
|||
List of serialized combo boxes to add to the file chooser. |
|||
</para> |
|||
<para> |
|||
For each element, the first string is an ID that will be returned |
|||
with the response, the second string is a user-visible label. The |
|||
a(ss) is the list of choices, each being an ID and a |
|||
user-visible label. The final string is the initial selection, |
|||
or "", to let the portal decide which choice will be initially selected. |
|||
None of the strings, except for the initial selection, should be empty. |
|||
</para> |
|||
<para> |
|||
As a special case, passing an empty array for the list of choices |
|||
indicates a boolean choice that is typically displayed as a check |
|||
button, using "true" and "false" as the choices. |
|||
</para> |
|||
<para> |
|||
Example: [('encoding', 'Encoding', [('utf8', 'Unicode (UTF-8)'), ('latin15', 'Western')], 'latin15'), ('reencode', 'Reencode', [], 'false')] |
|||
</para> |
|||
</listitem> |
|||
</varlistentry> |
|||
</variablelist> |
|||
|
|||
The following results get returned via the #org.freedesktop.portal.Request::Response signal: |
|||
<variablelist> |
|||
<varlistentry> |
|||
<term>uris as</term> |
|||
<listitem><para> |
|||
An array of strings containing the uris of the selected files. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>choices a(ss)</term> |
|||
<listitem> |
|||
<para> |
|||
An array of pairs of strings, the first string being the ID of a |
|||
combobox that was passed into this call, the second string being |
|||
the selected option. |
|||
</para> |
|||
<para> |
|||
Example: [('encoding', 'utf8'), ('reencode', 'true')] |
|||
</para> |
|||
</listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>current_filter (sa(us))</term> |
|||
<listitem> |
|||
<para> |
|||
The filter that was selected. This may match a filter in the |
|||
filter list or another filter that was applied unconditionally. |
|||
</para> |
|||
</listitem> |
|||
</varlistentry> |
|||
</variablelist> |
|||
--> |
|||
<method name="OpenFile"> |
|||
<arg type="s" name="parent_window" direction="in"/> |
|||
<arg type="s" name="title" direction="in"/> |
|||
<arg type="a{sv}" name="options" direction="in"/> |
|||
<arg type="o" name="handle" direction="out"/> |
|||
</method> |
|||
<!-- |
|||
SaveFile: |
|||
@parent_window: Identifier for the application window, see <link linkend="parent_window">Common Conventions</link> |
|||
@title: Title for the file chooser dialog |
|||
@options: Vardict with optional further information |
|||
@handle: Object path for the #org.freedesktop.portal.Request object representing this call |
|||
|
|||
Asks for a location to save a file. |
|||
|
|||
Supported keys in the @options vardict include: |
|||
<variablelist> |
|||
<varlistentry> |
|||
<term>handle_token s</term> |
|||
<listitem><para> |
|||
A string that will be used as the last element of the @handle. Must be a valid |
|||
object path element. See the #org.freedesktop.portal.Request documentation for |
|||
more information about the @handle. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>accept_label s</term> |
|||
<listitem><para> |
|||
Label for the accept button. Mnemonic underlines are allowed. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>modal b</term> |
|||
<listitem><para> |
|||
Whether the dialog should be modal. Default is yes. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>filters a(sa(us))</term> |
|||
<listitem><para> |
|||
List of serialized file filters. |
|||
See org.freedesktop.portal.FileChooser.OpenFile() for details. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>current_filter (sa(us))</term> |
|||
<listitem><para> |
|||
Request that this filter be set by default at dialog creation. |
|||
See org.freedesktop.portal.FileChooser.OpenFile() for details. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>choices a(ssa(ss)s)</term> |
|||
<listitem><para> |
|||
List of serialized combo boxes. |
|||
See org.freedesktop.portal.FileChooser.OpenFile() for details. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>current_name s</term> |
|||
<listitem><para>Suggested filename.</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>current_folder ay</term> |
|||
<listitem> |
|||
<para> |
|||
Suggested folder to save the file in. The byte array is expected to be null-terminated. |
|||
</para> |
|||
</listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>current_file ay</term> |
|||
<listitem> |
|||
<para> |
|||
The current file (when saving an existing file). The byte array is expected to be null-terminated. |
|||
</para> |
|||
</listitem> |
|||
</varlistentry> |
|||
</variablelist> |
|||
|
|||
The following results get returned via the #org.freedesktop.portal.Request::Response signal: |
|||
<variablelist> |
|||
<varlistentry> |
|||
<term>uris as</term> |
|||
<listitem><para> |
|||
An array of strings containing the uri of the selected file. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>choices a(ss)</term> |
|||
<listitem><para> |
|||
An array of pairs of strings, corresponding to the passed-in choices. |
|||
See org.freedesktop.portal.FileChooser.OpenFile() for details. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>current_filter (sa(us))</term> |
|||
<listitem> |
|||
<para> |
|||
The filter that was selected. |
|||
See org.freedesktop.portal.FileChooser.OpenFile() for details. |
|||
</para> |
|||
</listitem> |
|||
</varlistentry> |
|||
</variablelist> |
|||
--> |
|||
<method name="SaveFile"> |
|||
<arg type="s" name="parent_window" direction="in"/> |
|||
<arg type="s" name="title" direction="in"/> |
|||
<arg type="a{sv}" name="options" direction="in"/> |
|||
<arg type="o" name="handle" direction="out"/> |
|||
</method> |
|||
<!-- |
|||
SaveFiles: |
|||
@parent_window: Identifier for the application window, see <link linkend="parent_window">Common Conventions</link> |
|||
@title: Title for the file chooser dialog |
|||
@options: Vardict with optional further information |
|||
@handle: Object path for the #org.freedesktop.portal.Request object representing this call |
|||
|
|||
Asks for a folder as a location to save one or more files. The |
|||
names of the files will be used as-is and appended to the |
|||
selected folder's path in the list of returned files. If the |
|||
selected folder already contains a file with one of the given |
|||
names, the portal may prompt or take some other action to |
|||
construct a unique file name and return that instead. |
|||
|
|||
Supported keys in the @options vardict include: |
|||
<variablelist> |
|||
<varlistentry> |
|||
<term>handle_token s</term> |
|||
<listitem><para> |
|||
A string that will be used as the last element of the |
|||
@handle. Must be a valid object path element. See the |
|||
#org.freedesktop.portal.Request documentation for more |
|||
information about the @handle. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>accept_label s</term> |
|||
<listitem><para> |
|||
Label for the accept button. Mnemonic underlines are allowed. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>modal b</term> |
|||
<listitem><para> |
|||
Whether the dialog should be modal. Default is yes. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>choices a(ssa(ss)s)</term> |
|||
<listitem><para> |
|||
List of serialized combo boxes. |
|||
See org.freedesktop.portal.FileChooser.OpenFile() for details. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>current_folder ay</term> |
|||
<listitem> |
|||
<para> |
|||
Suggested folder to save the files in. The byte array is |
|||
expected to be null-terminated. |
|||
</para> |
|||
</listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>files aay</term> |
|||
<listitem> |
|||
<para> |
|||
An array of file names to be saved. The byte arrays are |
|||
expected to be null-terminated. |
|||
</para> |
|||
</listitem> |
|||
</varlistentry> |
|||
</variablelist> |
|||
|
|||
The following results get returned via the |
|||
#org.freedesktop.portal.Request::Response signal: |
|||
<variablelist> |
|||
<varlistentry> |
|||
<term>uris as</term> |
|||
<listitem><para> |
|||
An array of strings containing the uri corresponding to |
|||
each file given by @options, in the same order. Note that |
|||
the file names may have changed, for example if a file |
|||
with the same name in the selected folder already exists. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
<varlistentry> |
|||
<term>choices a(ss)</term> |
|||
<listitem><para> |
|||
An array of pairs of strings, corresponding to the passed-in choices. |
|||
See org.freedesktop.portal.FileChooser.OpenFile() for details. |
|||
</para></listitem> |
|||
</varlistentry> |
|||
</variablelist> |
|||
--> |
|||
<method name="SaveFiles"> |
|||
<arg type="s" name="parent_window" direction="in"/> |
|||
<arg type="s" name="title" direction="in"/> |
|||
<arg type="a{sv}" name="options" direction="in"/> |
|||
<arg type="o" name="handle" direction="out"/> |
|||
</method> |
|||
<property name="version" type="u" access="read"/> |
|||
</interface> |
|||
</node> |
|||
@ -0,0 +1,86 @@ |
|||
<?xml version="1.0"?> |
|||
<!-- |
|||
Copyright (C) 2015 Red Hat, Inc. |
|||
|
|||
This library is free software; you can redistribute it and/or |
|||
modify it under the terms of the GNU Lesser General Public |
|||
License as published by the Free Software Foundation; either |
|||
version 2 of the License, or (at your option) any later version. |
|||
|
|||
This library is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|||
Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public |
|||
License along with this library. If not, see <http://www.gnu.org/licenses/>. |
|||
|
|||
Author: Alexander Larsson <alexl@redhat.com> |
|||
--> |
|||
|
|||
<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd"> |
|||
<!-- |
|||
org.freedesktop.portal.Request: |
|||
@short_description: Shared request interface |
|||
|
|||
The Request interface is shared by all portal interfaces. When a |
|||
portal method is called, the reply includes a handle (i.e. object path) |
|||
for a Request object, which will stay alive for the duration of the |
|||
user interaction related to the method call. |
|||
|
|||
The portal indicates that a portal request interaction is over by |
|||
emitting the #org.freedesktop.portal.Request::Response signal on the |
|||
Request object. |
|||
|
|||
The application can abort the interaction calling |
|||
org.freedesktop.portal.Request.Close() on the Request object. |
|||
|
|||
Since version 0.9 of xdg-desktop-portal, the handle will be of the form |
|||
/org/freedesktop/portal/desktop/request/SENDER/TOKEN, |
|||
where SENDER is the callers unique name, with the initial ':' removed and |
|||
all '.' replaced by '_', and TOKEN is a unique token that the caller provided |
|||
with the handle_token key in the options vardict. |
|||
|
|||
This change was made to let applications subscribe to the Response signal before |
|||
making the initial portal call, thereby avoiding a race condition. It is recommended |
|||
that the caller should verify that the returned handle is what it expected, and update |
|||
its signal subscription if it isn't. This ensures that applications will work with both |
|||
old and new versions of xdg-desktop-portal. |
|||
|
|||
The token that the caller provides should be unique and not guessable. To avoid clashes |
|||
with calls made from unrelated libraries, it is a good idea to use a per-library prefix |
|||
combined with a random number. |
|||
--> |
|||
<interface name="org.freedesktop.portal.Request"> |
|||
|
|||
<!-- |
|||
Close: |
|||
|
|||
Closes the portal request to which this object refers and ends all |
|||
related user interaction (dialogs, etc). |
|||
A Response signal will not be emitted in this case. |
|||
--> |
|||
<method name="Close"> |
|||
</method> |
|||
|
|||
<!-- |
|||
Response: |
|||
@response: Numeric response |
|||
@results: Vardict with results. The keys and values in the vardict depend on the request. |
|||
|
|||
Emitted when the user interaction for a portal request is over. |
|||
|
|||
The @response indicates how the user interaction ended: |
|||
<simplelist> |
|||
<member>0: Success, the request is carried out</member> |
|||
<member>1: The user cancelled the interaction</member> |
|||
<member>2: The user interaction was ended in some other way</member> |
|||
</simplelist> |
|||
--> |
|||
<signal name="Response"> |
|||
<arg type="u" name="response"/> |
|||
<arg type="a{sv}" name="results"/> |
|||
<annotation name="org.qtproject.QtDBus.QtTypeName.Out1" value="QVariantMap"/> |
|||
</signal> |
|||
</interface> |
|||
</node> |
|||
@ -0,0 +1,99 @@ |
|||
<?xml version="1.0"?> |
|||
<!-- |
|||
Copyright (C) 2018 Igalia S.L. |
|||
|
|||
This library is free software; you can redistribute it and/or |
|||
modify it under the terms of the GNU Lesser General Public |
|||
License as published by the Free Software Foundation; either |
|||
version 2 of the License, or (at your option) any later version. |
|||
|
|||
This library is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|||
Lesser General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU Lesser General Public |
|||
License along with this library. If not, see <http://www.gnu.org/licenses/>. |
|||
|
|||
Author: Patrick Griffis <pgriffis@igalia.com> |
|||
--> |
|||
|
|||
<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd"> |
|||
<!-- |
|||
org.freedesktop.portal.Settings: |
|||
@short_description: Settings interface |
|||
|
|||
This interface provides read-only access to a small number |
|||
of host settings required for toolkits similar to XSettings. |
|||
It is not for general purpose settings. |
|||
|
|||
Currently the interface provides the following keys: |
|||
|
|||
<variablelist> |
|||
<varlistentry> |
|||
<term>org.freedesktop.appearance color-scheme u</term> |
|||
<listitem><para> |
|||
Indicates the system's preferred color scheme. |
|||
Supported values are: |
|||
<simplelist> |
|||
<member>0: No preference</member> |
|||
<member>1: Prefer dark appearance</member> |
|||
<member>2: Prefer light appearance</member> |
|||
</simplelist> |
|||
Unknown values should be treated as 0 (no preference). |
|||
</para></listitem> |
|||
</varlistentry> |
|||
</variablelist> |
|||
|
|||
Implementations can provide other keys; they are entirely |
|||
implementation details that are undocumented. If you are a |
|||
toolkit and want to use this please open an issue. |
|||
|
|||
This documentation describes version 1 of this interface. |
|||
--> |
|||
<interface name="org.freedesktop.portal.Settings"> |
|||
|
|||
<!-- |
|||
ReadAll: |
|||
@namespaces: List of namespaces to filter results by, supports simple globbing explained below. |
|||
@value: Dictionary of namespaces to its keys and values. |
|||
|
|||
If @namespaces is an empty array or contains an empty string it matches all. Globbing is supported but only for |
|||
trailing sections, e.g. "org.example.*". |
|||
--> |
|||
<method name='ReadAll'> |
|||
<arg name='namespaces' type='as'/> |
|||
<arg name='value' direction='out' type='a{sa{sv}}'/> |
|||
</method> |
|||
|
|||
<!-- |
|||
Read: |
|||
@namespace: Namespace to look up @key in. |
|||
@key: The key to get. |
|||
@value: The value @key is set to. |
|||
|
|||
Reads a single value. Returns an error on any unknown namespace or key. |
|||
--> |
|||
<method name='Read'> |
|||
<arg name='namespace' type='s'/> |
|||
<arg name='key' type='s'/> |
|||
<arg name='value' direction='out' type='v'/> |
|||
</method> |
|||
|
|||
<!-- |
|||
SettingChanged: |
|||
@namespace: Namespace of changed setting. |
|||
@key: The key of changed setting. |
|||
@value: The new value. |
|||
|
|||
Emitted when a setting changes. |
|||
--> |
|||
<signal name='SettingChanged'> |
|||
<arg name='namespace' direction='out' type='s'/> |
|||
<arg name='key' direction='out' type='s'/> |
|||
<arg name='value' direction='out' type='v'/> |
|||
</signal> |
|||
|
|||
<property name="version" type="u" access="read"/> |
|||
</interface> |
|||
</node> |
|||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue