| Epiphany Reference Manual |
|---|
EphyCommandManager — Performs commands, such as cut/copy/paste
struct EphyCommandManager; struct EphyCommandManagerIface; void ephy_command_manager_do_command (EphyCommandManager *manager, const char *command); gboolean ephy_command_manager_can_do_command (EphyCommandManager *manager, const char *command);
"command-changed" void user_function (EphyCommandManager *manager, gchar *command, gpointer user_data);
An EphyCommandManager is an interface to an EphyEmbed which is used to perform commands, such as cut/copy/paste. To perform any command, use ephy_command_manager_do_command(). To test the availability of a command, use ephy_command_manager_can_do_command(). The availability of commands depends on the selection and actions previously performed in the EphyEmbed. For instance, cmd_copy is only available if text has been selected; cmd_undo is only available if the user has a text input focused and has typed or erased some of its text.
Example 1. Copying selected text in an EphyEmbed
#include <ephy-embed.h>
#include <ephy-command-manager.h>
static void
copy_selected_text (EphyEmbed *embed)
{
EphyCommandManager *manager;
manager = EPHY_COMMAND_MANAGER (embed);
g_return_if_fail (EPHY_IS_COMMAND_MANAGER (manager));
if (!ephy_command_manager_can_do_command (manager, "cmd_copy")) return;
ephy_command_manager_do_command (manager, "cmd_copy");
}
The EphyCommandManager interface can perform any command which is defined in Mozilla. However, for purposes of abstraction, only a certain subset of commands should be used:
Available Commands
| cmd_copy | Copies selected text |
| cmd_cut | Cuts selected text. |
| cmd_paste | Pastes text from the clipboard (for example, into a text entry) |
| cmd_undo | Undoes the last action (for example, typing text into a text entry |
| cmd_redo | Redoes previously undone actions (for example, in a text entry) |
struct EphyCommandManagerIface {
GTypeInterface base_iface;
void (* do_command) (EphyCommandManager *manager,
const char *command);
gboolean (* can_do_command) (EphyCommandManager *manager,
const char *command);
/* Signals */
void (* command_changed) (EphyCommandManager *manager,
char *command);
};
void ephy_command_manager_do_command (EphyCommandManager *manager, const char *command);
Performs command.
| manager : | an EphyCommandManager |
| command : | the command |
gboolean ephy_command_manager_can_do_command
(EphyCommandManager *manager,
const char *command);Returns TRUE if command can be performed.
| manager : | an EphyCommandManager |
| command : | the command |
| Returns : | TRUE if command can be performed. |
void user_function (EphyCommandManager *manager, gchar *command, gpointer user_data);
The ::command-changed signal is emitted when command has changed from being available to unavailable, or vice-versa. The new availability can be tested with ephy_command_manager_can_do_command().
| manager : | |
| command : | The command whose avalability has changed |
| user_data : | user data set when the signal handler was connected. |
| << EphyEmbed | EphyEmbedSingle >> |