diff options
author | Marco Pesenti Gritti <marco@gnome.org> | 2003-11-04 16:56:33 +0800 |
---|---|---|
committer | Marco Pesenti Gritti <marco@src.gnome.org> | 2003-11-04 16:56:33 +0800 |
commit | 78c2e1a47c7fc6074a80c8b91dbdc1f57e3ba817 (patch) | |
tree | 80cdea46a31b32a1786dcda11a21106bb63a5231 /embed | |
parent | 2e01fbd1c41969e80dd599958b811867dc935a59 (diff) | |
download | gsoc2013-epiphany-78c2e1a47c7fc6074a80c8b91dbdc1f57e3ba817.tar gsoc2013-epiphany-78c2e1a47c7fc6074a80c8b91dbdc1f57e3ba817.tar.gz gsoc2013-epiphany-78c2e1a47c7fc6074a80c8b91dbdc1f57e3ba817.tar.bz2 gsoc2013-epiphany-78c2e1a47c7fc6074a80c8b91dbdc1f57e3ba817.tar.lz gsoc2013-epiphany-78c2e1a47c7fc6074a80c8b91dbdc1f57e3ba817.tar.xz gsoc2013-epiphany-78c2e1a47c7fc6074a80c8b91dbdc1f57e3ba817.tar.zst gsoc2013-epiphany-78c2e1a47c7fc6074a80c8b91dbdc1f57e3ba817.zip |
Show only paste in the context menu, it's the only one that works in
2003-11-04 Marco Pesenti Gritti <marco@gnome.org>
* data/ui/epiphany-ui.xml:
Show only paste in the context menu, it's the only
one that works in mozilla.
* embed/ephy-command-manager.c:
(ephy_command_manager_get_command_state):
* embed/ephy-command-manager.h:
Rename the state api.
* embed/mozilla/EphyBrowser.cpp:
* embed/mozilla/EphyBrowser.h:
* embed/mozilla/mozilla-embed.cpp:
Implement state api.
* src/ephy-window.c: (window_cmd_edit), (show_embed_popup):
Update clipboard menus on activate.
Diffstat (limited to 'embed')
-rw-r--r-- | embed/ephy-command-manager.c | 15 | ||||
-rw-r--r-- | embed/ephy-command-manager.h | 19 | ||||
-rw-r--r-- | embed/mozilla/EphyBrowser.cpp | 12 | ||||
-rw-r--r-- | embed/mozilla/EphyBrowser.h | 1 | ||||
-rw-r--r-- | embed/mozilla/mozilla-embed.cpp | 20 |
5 files changed, 34 insertions, 33 deletions
diff --git a/embed/ephy-command-manager.c b/embed/ephy-command-manager.c index ab4ccdace..08654fee5 100644 --- a/embed/ephy-command-manager.c +++ b/embed/ephy-command-manager.c @@ -88,17 +88,10 @@ ephy_command_manager_do_command (EphyCommandManager *manager, } gresult -ephy_command_manager_can_do_command (EphyCommandManager *manager, - const char *command) +ephy_command_manager_get_command_state (EphyCommandManager *manager, + const char *command, + gboolean *enabled) { EphyCommandManagerClass *klass = EPHY_COMMAND_MANAGER_GET_CLASS (manager); - return klass->can_do_command (manager, command); -} - -gresult -ephy_command_manager_observe_command (EphyCommandManager *manager, - const char *command) -{ - EphyCommandManagerClass *klass = EPHY_COMMAND_MANAGER_GET_CLASS (manager); - return klass->observe_command (manager, command); + return klass->get_command_state (manager, command, enabled); } diff --git a/embed/ephy-command-manager.h b/embed/ephy-command-manager.h index 043d2c90d..14d7a4ca6 100644 --- a/embed/ephy-command-manager.h +++ b/embed/ephy-command-manager.h @@ -40,12 +40,11 @@ struct EphyCommandManagerClass { GTypeInterface base_iface; - gresult (* do_command) (EphyCommandManager *manager, - const char *command); - gresult (* can_do_command) (EphyCommandManager *manager, - const char *command); - gresult (* observe_command) (EphyCommandManager *manager, - const char *command); + gresult (* do_command) (EphyCommandManager *manager, + const char *command); + gresult (* get_command_state) (EphyCommandManager *manager, + const char *command, + gboolean *enabled); /* Signals */ @@ -58,11 +57,9 @@ GType ephy_command_manager_get_type (void); gresult ephy_command_manager_do_command (EphyCommandManager *manager, const char *command); -gresult ephy_command_manager_can_do_command (EphyCommandManager *manager, - const char *command); - -gresult ephy_command_manager_observe_command (EphyCommandManager *manager, - const char *command); +gresult ephy_command_manager_get_command_state (EphyCommandManager *manager, + const char *command, + gboolean *enabled); G_END_DECLS diff --git a/embed/mozilla/EphyBrowser.cpp b/embed/mozilla/EphyBrowser.cpp index 8d1b3cdd0..732de1c42 100644 --- a/embed/mozilla/EphyBrowser.cpp +++ b/embed/mozilla/EphyBrowser.cpp @@ -722,3 +722,15 @@ nsresult EphyBrowser::DoCommand (const char *command) return cmdManager->DoCommand (command, nsnull, nsnull); } + +nsresult EphyBrowser::GetCommandState (const char *command, PRBool *enabled) +{ + nsCOMPtr<nsICommandManager> cmdManager; + + g_return_val_if_fail (mWebBrowser, NS_ERROR_FAILURE); + + cmdManager = do_GetInterface (mWebBrowser); + if (!cmdManager) return NS_ERROR_FAILURE; + + return cmdManager->IsCommandEnabled (command, nsnull, enabled); +} diff --git a/embed/mozilla/EphyBrowser.h b/embed/mozilla/EphyBrowser.h index 00d49cce2..a57736092 100644 --- a/embed/mozilla/EphyBrowser.h +++ b/embed/mozilla/EphyBrowser.h @@ -50,6 +50,7 @@ public: nsresult Destroy (void); nsresult DoCommand (const char *command); + nsresult GetCommandState (const char *command, PRBool *enabled); nsresult SetZoom (float aTextZoom, PRBool reflow); nsresult GetZoom (float *aTextZoom); diff --git a/embed/mozilla/mozilla-embed.cpp b/embed/mozilla/mozilla-embed.cpp index 62af22e82..2d11e32ad 100644 --- a/embed/mozilla/mozilla-embed.cpp +++ b/embed/mozilla/mozilla-embed.cpp @@ -243,25 +243,23 @@ impl_manager_do_command (EphyCommandManager *manager, } static gresult -impl_manager_can_do_command (EphyCommandManager *manager, - const char *command) +impl_manager_get_command_state (EphyCommandManager *manager, + const char *command, + gboolean *enabled) { - return G_NOT_IMPLEMENTED; -} + nsresult result; + MozillaEmbedPrivate *mpriv = MOZILLA_EMBED(manager)->priv; -static gresult -impl_manager_observe_command (EphyCommandManager *manager, - const char *command) -{ - return G_NOT_IMPLEMENTED; + result = mpriv->browser->GetCommandState (command, enabled); + + return result ? G_OK : G_FAILED; } static void ephy_command_manager_init (EphyCommandManagerClass *manager_class) { manager_class->do_command = impl_manager_do_command; - manager_class->can_do_command = impl_manager_can_do_command; - manager_class->observe_command = impl_manager_observe_command; + manager_class->get_command_state = impl_manager_get_command_state; } GType |