Mon, 12 May 2025 20:25:16 -0500
Handle formatting in server messages
Testing Done:
Used the default motd on my local ergo server to verify that formatting was working.
Reviewed at https://reviews.imfreedom.org/r/3991/
|
43053
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1 | /* |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
2 | * Purple - Internet Messaging Library |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
3 | * Copyright (C) Pidgin Developers <devel@pidgin.im> |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
4 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
5 | * Purple is the legal property of its developers, whose names are too numerous |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
6 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
7 | * source distribution. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
8 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
9 | * This library is free software; you can redistribute it and/or modify it |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
10 | * under the terms of the GNU General Public License as published by the Free |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
11 | * Software Foundation; either version 2 of the License, or (at your option) |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
12 | * any later version. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
13 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
14 | * This library is distributed in the hope that it will be useful, but WITHOUT |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
15 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
16 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
17 | * more details. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
18 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
19 | * You should have received a copy of the GNU General Public License along with |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
20 | * this library; if not, see <https://www.gnu.org/licenses/>. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
21 | */ |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
22 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
23 | #if !defined(PURPLE_GLOBAL_HEADER_INSIDE) && !defined(PURPLE_COMPILATION) |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
24 | # error "only <purple.h> may be included directly" |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
25 | #endif |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
26 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
27 | #ifndef PURPLE_COMMAND_MANAGER_H |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
28 | #define PURPLE_COMMAND_MANAGER_H |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
29 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
30 | #include <glib.h> |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
31 | #include <glib-object.h> |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
32 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
33 | #include "purplecommand.h" |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
34 | #include "purpleconversation.h" |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
35 | #include "purpleversion.h" |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
36 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
37 | G_BEGIN_DECLS |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
38 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
39 | /** |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
40 | * PurpleCommandManager: |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
41 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
42 | * A manager of [class@Command] objects. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
43 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
44 | * libpurple, user interfaces, and plugins can manage the commands that are |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
45 | * available with [method@CommandManager.add] and |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
46 | * [method@CommandManager.remove]. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
47 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
48 | * User interfaces can use [method@CommandManager.find_and_execute] to quickly |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
49 | * find and execute a command. They can also use |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
50 | * [method@CommandManager.find_all] to get a list of all commands which can be |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
51 | * presented to a user. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
52 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
53 | * Both [method@CommandManager.find] and [method@CommandManager.find_all] take |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
54 | * an optional [class@Conversation] parameter. If it is not %NULL, its |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
55 | * [property@Conversation:tags] property will be searched with |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
56 | * [method@Tags.contains] using the [property@Command:tags] as the needle to |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
57 | * determine which commands are available for the [class@Conversation]. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
58 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
59 | * When plugins are being unloaded, they should call |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
60 | * [method@CommandManager.remove_all_with_source] to remove their commands. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
61 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
62 | * Since: 3.0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
63 | */ |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
64 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
65 | #define PURPLE_TYPE_COMMAND_MANAGER (purple_command_manager_get_type()) |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
66 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
67 | PURPLE_AVAILABLE_IN_3_0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
68 | G_DECLARE_FINAL_TYPE(PurpleCommandManager, purple_command_manager, PURPLE, |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
69 | COMMAND_MANAGER, GObject) |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
70 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
71 | /** |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
72 | * purple_command_manager_add: |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
73 | * @manager: The instance. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
74 | * @command: (transfer full): The new command to add. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
75 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
76 | * Adds @command to @manager. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
77 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
78 | * If @manager already has a command with a matching name and source, @command |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
79 | * will not be added but ownership will still be taken. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
80 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
81 | * Since: 3.0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
82 | */ |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
83 | PURPLE_AVAILABLE_IN_3_0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
84 | void purple_command_manager_add(PurpleCommandManager *manager, PurpleCommand *command); |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
85 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
86 | /** |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
87 | * purple_command_manager_find: |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
88 | * @manager: The instance. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
89 | * @conversation: (nullable): An optional conversation. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
90 | * @name: The name of the command. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
91 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
92 | * Finds the command with a name of @name with the highest priority. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
93 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
94 | * If @conversation is not %NULL commands will be filtered to only include |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
95 | * those that are valid for @conversation by using [method@Tags.contains] on |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
96 | * @conversation with the tags of the found commands. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
97 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
98 | * Returns: (transfer none): The command if found, otherwise %NULL. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
99 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
100 | * Since: 3.0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
101 | */ |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
102 | PURPLE_AVAILABLE_IN_3_0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
103 | PurpleCommand *purple_command_manager_find(PurpleCommandManager *manager, PurpleConversation *conversation, const char *name); |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
104 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
105 | /** |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
106 | * purple_command_manager_find_all: |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
107 | * @manager: The instance. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
108 | * @conversation: (nullable): An optional conversation. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
109 | * @name: The name of the command. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
110 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
111 | * Finds all commands that match @name in @manager. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
112 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
113 | * If @conversation is not %NULL, [method@Tags.contains] will be used to filter |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
114 | * out commands whose tags don't match @conversation. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
115 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
116 | * Returns: (transfer full): The list of found plugins which could be empty. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
117 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
118 | * Since: 3.0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
119 | */ |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
120 | PURPLE_AVAILABLE_IN_3_0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
121 | GListModel *purple_command_manager_find_all(PurpleCommandManager *manager, PurpleConversation *conversation, const char *name); |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
122 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
123 | /** |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
124 | * purple_command_manager_find_and_execute: |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
125 | * @manager: The instance. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
126 | * @conversation: The conversation to use. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
127 | * @command_line: The command line including the name and arguments. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
128 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
129 | * Attempts to find a [class@Command] in @manager and execute it. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
130 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
131 | * @command_line should be a space separate string of the command name and any |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
132 | * arguments. It should not include a leading `/` or any other prefix. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
133 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
134 | * This method is a helper around [method@CommandManager.find] and |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
135 | * [method@Command.execute]. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
136 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
137 | * Returns: %TRUE if a command was found and executed, otherwise %FALSE. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
138 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
139 | * Since: 3.0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
140 | */ |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
141 | PURPLE_AVAILABLE_IN_3_0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
142 | gboolean purple_command_manager_find_and_execute(PurpleCommandManager *manager, PurpleConversation *conversation, const char *command_line); |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
143 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
144 | /** |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
145 | * purple_command_manager_get_commands_for_conversation: |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
146 | * @manager: The instance. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
147 | * @conversation: The conversation. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
148 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
149 | * Gets a list of [class@Command]'s that are available for @conversation. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
150 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
151 | * Internally this filters the list of commands with [method@Tags.contains] to |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
152 | * check that all of [property@Command:tags] are contained in |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
153 | * [property@Conversation:tags]. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
154 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
155 | * Returns: (transfer full): The list of commands, which may be empty. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
156 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
157 | * Since: 3.0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
158 | */ |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
159 | PURPLE_AVAILABLE_IN_3_0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
160 | GListModel *purple_command_manager_get_commands_for_conversation(PurpleCommandManager *manager, PurpleConversation *conversation); |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
161 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
162 | /** |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
163 | * purple_command_manager_get_default: |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
164 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
165 | * Gets the default instance that libpurple is using. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
166 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
167 | * Returns: (transfer none): The instance. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
168 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
169 | * Since: 3.0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
170 | */ |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
171 | PURPLE_AVAILABLE_IN_3_0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
172 | PurpleCommandManager *purple_command_manager_get_default(void); |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
173 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
174 | /** |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
175 | * purple_command_manager_get_default_as_model: |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
176 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
177 | * Gets the default instance of the manager but cast to [iface@Gio.ListModel]. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
178 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
179 | * Returns: (transfer none): The manager cast as a [iface@Gio.ListModel]. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
180 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
181 | * Since: 3.0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
182 | */ |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
183 | PURPLE_AVAILABLE_IN_3_0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
184 | GListModel *purple_command_manager_get_default_as_model(void); |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
185 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
186 | /** |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
187 | * purple_command_manager_new: |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
188 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
189 | * Creates a new instance. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
190 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
191 | * This is typically only used by libpurple but you can get the default |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
192 | * instance that libpurple is using with [func@CommandManager.get_default]. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
193 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
194 | * Returns: (transfer full): The new instance. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
195 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
196 | * Since: 3.0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
197 | */ |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
198 | PURPLE_AVAILABLE_IN_3_0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
199 | PurpleCommandManager *purple_command_manager_new(void); |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
200 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
201 | /** |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
202 | * purple_command_manager_remove: |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
203 | * @manager: The instance. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
204 | * @name: The name of the command. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
205 | * @source: The source of the command. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
206 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
207 | * Attempts to remove the first command with @name and @source from @manager. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
208 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
209 | * Returns: %TRUE if a command is found and removed, otherwise %FALSE. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
210 | */ |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
211 | PURPLE_AVAILABLE_IN_3_0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
212 | gboolean purple_command_manager_remove(PurpleCommandManager *manager, const char *name, const char *source); |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
213 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
214 | /** |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
215 | * purple_command_manager_remove_all_with_source: |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
216 | * @manager: The instance. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
217 | * @source: The source whose commands to remove. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
218 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
219 | * Removes all commands from @manager that have a source of @source. |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
220 | * |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
221 | * Since: 3.0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
222 | */ |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
223 | PURPLE_AVAILABLE_IN_3_0 |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
224 | void purple_command_manager_remove_all_with_source(PurpleCommandManager *manager, const char *source); |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
225 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
226 | G_END_DECLS |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
227 | |
|
f2f944ac775c
Implement Purple.CommandManager
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
228 | #endif /* PURPLE_COMMAND_MANAGER_H */ |