2016-03-04 07:58:56 +00:00
/ *
* This file is part of matrix - glib - sdk
*
* matrix - glib - sdk 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 3 of the License , or ( at your option ) any later version .
*
* matrix - glib - sdk 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 matrix - glib - sdk . If not , see
* < http : //www.gnu.org/licenses/>.
* /
namespace Matrix {
2016-03-03 11:45:57 +00:00
/ * *
* User account types .
* /
public enum AccountKind {
DEFAULT , /// use the server default (usually {{{USER}}})
USER , /// normal user
GUEST ; /// guest user
}
2016-03-03 11:49:01 +00:00
/ * *
* Direction of events when requesting an event context .
* /
public enum EventDirection {
FORWARD , /// List events after the specified one
BACKWARD ; /// List events before the specified one
}
2016-03-03 11:34:30 +00:00
/ * *
* Event format received when synchronizing .
* /
public enum EventFormat {
DEFAULT , /// event format will be omitted from the filter, so the server will use its default (usually {{{FEDERATION}}})
CLIENT , /// return the events in a format suitable for clients
FEDERATION ; /// return the raw event as receieved over federation
}
2016-03-03 12:07:54 +00:00
/ * *
* Presence values for matrix_api_set_user_presence ( ) and other
* presence related queries .
* /
public enum Presence {
UNKNOWN , /// user's presence is unknown
ONLINE , /// user is online
OFFLINE , /// user is offline
UNAVAILABLE , /// user is unavailable (i.e. busy)
FREE_FOR_CHAT ; /// user is free for chat
}
2016-03-03 12:12:56 +00:00
/ * *
* Condition types for pushers .
* /
public enum PusherConditionKind {
EVENT_MATCH , /// glob pattern match on a field of the event. Requires a {{{key}}} and a {{{pattern}}} parameter
PROFILE_TAG , /// matches the profile tag of the device that the notification would be delivered to. Requires a {{{profile_tag}}} parameter
CONTAINS_DISPLAY_NAME , /// matches unencrypted messages where the content's body contains the owner's display name in that room.
ROOM_MEMBER_COUNT ; /// matches the current number of members in the room. Requires an {{{is}}} parameter, which must be an integer, optionally prefixed by {{==}}}, {{{<}}}, {{{>}}}, {{{<=}}} or {{{>=}}}. If the prefix is omitted, it defaults to {{{==}}}
}
2016-03-03 13:22:00 +00:00
/ * *
* Pusher types .
* /
public enum PusherKind {
OVERRIDE , /// highest priority rules
SENDER , /// for (unencrypted) messages that match certain patterns
ROOM , /// for all messages for a given room. The rule ID of a room rule is always the ID of the room that it affects
CONTENT , /// for messages from a specific Matrix user ID. The rule ID of such rules is always the Matrix ID of the user whose messages they'd apply to
UNDERRIDE ; /// lowest priority rules
}
2016-03-03 13:23:25 +00:00
/ * *
* Receipt types of acknowledgment .
* /
public enum ReceiptType {
READ ; /// indicate that the message has been read
}
2016-03-03 11:37:02 +00:00
/ * *
* Resizing methods for matrix_api_media_thumbnail ( ) .
* /
public enum ResizeMethod {
DEFAULT , /// use the server default value
CROP , /// crop thumbnail to the requested size
SCALE ; /// scale thumbnail to the requested size
}
2016-03-03 13:26:15 +00:00
/ * *
* Preset values for matrix_api_create_room ( ) calls .
* /
public enum RoomPreset {
NONE , /// no preset
PRIVATE , /// preset for private rooms
TRUSTED_PRIVATE , /// same as private rooms, but all users get the same power level as the room creator
PUBLIC ; /// preset for public rooms
}
2016-03-03 13:28:22 +00:00
/ * *
* Visibility values for room creation . Not to be confused with
* join rules .
* /
public enum RoomVisibility {
DEFAULT , /// use a server-assigned value (usually {{{private}}}
PUBLIC , /// make the room visible in the public room list
PRIVATE ; /// hide the room from the public room list
}
2016-03-03 13:06:33 +00:00
private int ?
_g_enum_nick_to_value ( Type enum_type , string nick )
{
EnumClass enum_class = ( EnumClass ) enum_type . class_ref ( ) ;
unowned EnumValue ? enum_val = enum_class . get_value_by_nick ( nick ) ;
if ( enum_val ! = null ) {
return enum_val . value ;
} else {
return null ;
}
}
private string ?
2016-03-04 07:58:56 +00:00
_g_enum_value_to_nick ( Type enum_type ,
int value ,
bool convert_dashes = true )
{
EnumClass enum_class = ( EnumClass ) enum_type . class_ref ( ) ;
unowned EnumValue ? enum_val = enum_class . get_value ( value ) ;
if ( enum_val ! = null ) {
var nick = enum_val . value_nick ;
if ( convert_dashes ) {
return nick . replace ( " - " , " _ " ) ;
}
return nick ;
} else {
return null ;
}
}
}