EphyCommandManager

EphyCommandManager — Performs commands, such as cut/copy/paste

Synopsis

                    EphyCommandManager;
                    EphyCommandManagerIface;
void                ephy_command_manager_do_command     (EphyCommandManager *manager,
                                                         const char *command);
gboolean            ephy_command_manager_can_do_command (EphyCommandManager *manager,
                                                         const char *command);

Object Hierarchy

  GInterface
   +----EphyCommandManager

Signals

  "command-changed"                                : Run First

Description

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)

Details

EphyCommandManager

typedef struct _EphyCommandManager EphyCommandManager;


EphyCommandManagerIface

typedef struct {
	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);
} EphyCommandManagerIface;


ephy_command_manager_do_command ()

void                ephy_command_manager_do_command     (EphyCommandManager *manager,
                                                         const char *command);

Performs command.

manager :

an EphyCommandManager

command :

the command

ephy_command_manager_can_do_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.

Signal Details

The "command-changed" signal

void                user_function                      (EphyCommandManager *manager,
                                                        gchar              *command,
                                                        gpointer            user_data)      : Run First

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.