npapi-vlc | branch: master | Cheng Sun <[email protected]> | Sat Dec 10 14:55:44 2011 +0000| [42eab88e817d280e6839e764b1f7af5359a548a5] | committer: Jean-Baptiste Kempf
Add popup_menu to VlcPlugin interface; minor cleanups Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/npapi-vlc.git/?a=commit;h=42eab88e817d280e6839e764b1f7af5359a548a5 --- npapi/vlcplugin_base.h | 1 + npapi/vlcplugin_gtk.cpp | 34 +++++++++++----------------------- npapi/vlcplugin_gtk.h | 6 +++--- npapi/vlcplugin_mac.cpp | 15 --------------- npapi/vlcplugin_mac.h | 8 ++++---- npapi/vlcplugin_win.h | 1 + npapi/vlcplugin_xlib.cpp | 15 --------------- npapi/vlcplugin_xlib.h | 7 ++++--- 8 files changed, 24 insertions(+), 63 deletions(-) diff --git a/npapi/vlcplugin_base.h b/npapi/vlcplugin_base.h index a675815..20ce444 100644 --- a/npapi/vlcplugin_base.h +++ b/npapi/vlcplugin_base.h @@ -285,6 +285,7 @@ public: virtual bool destroy_windows() = 0; virtual void update_controls() = 0; + virtual void popup_menu() = 0; static bool canUseEventListener(); diff --git a/npapi/vlcplugin_gtk.cpp b/npapi/vlcplugin_gtk.cpp index a64b732..fc4ef01 100644 --- a/npapi/vlcplugin_gtk.cpp +++ b/npapi/vlcplugin_gtk.cpp @@ -12,8 +12,7 @@ VlcPluginGtk::VlcPluginGtk(NPP instance, NPuint16_t mode) : parent(NULL), parent_vbox(NULL), video(NULL), - toolbar(NULL), - popup_menu(NULL) + toolbar(NULL) { } @@ -99,20 +98,10 @@ static void menu_handler(GtkMenuItem *menuitem, gpointer user_data) fprintf(stderr, "WARNING: No idea what menu item you just clicked on (%s)\n", stock_id?stock_id:"NULL"); } -void VlcPluginGtk::do_popup_menu(GtkWidget *widget, GdkEventButton *event) +void VlcPluginGtk::popup_menu() { - int button, event_time; - - if (event) { - button = event->button; - event_time = event->time; - } else { - button = 0; - event_time = gtk_get_current_event_time(); - } - /* construct menu */ - GtkWidget *popup_menu = gtk_menu_new(); + GtkWidget *popupmenu = gtk_menu_new(); GtkWidget *menuitem; /* play/pause */ @@ -121,25 +110,24 @@ void VlcPluginGtk::do_popup_menu(GtkWidget *widget, GdkEventButton *event) GTK_STOCK_MEDIA_PAUSE : GTK_STOCK_MEDIA_PLAY, NULL); g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(menu_handler), this); - gtk_menu_shell_append(GTK_MENU_SHELL(popup_menu), menuitem); + gtk_menu_shell_append(GTK_MENU_SHELL(popupmenu), menuitem); /* stop */ menuitem = gtk_image_menu_item_new_from_stock( GTK_STOCK_MEDIA_STOP, NULL); g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(menu_handler), this); - gtk_menu_shell_append(GTK_MENU_SHELL(popup_menu), menuitem); - - gtk_widget_show_all(popup_menu); + gtk_menu_shell_append(GTK_MENU_SHELL(popupmenu), menuitem); - gtk_menu_attach_to_widget(GTK_MENU(popup_menu), widget, NULL); - gtk_menu_popup(GTK_MENU(popup_menu), NULL, NULL, NULL, NULL, - button, event_time); + gtk_widget_show_all(popupmenu); + gtk_menu_attach_to_widget(GTK_MENU(popupmenu), video, NULL); + gtk_menu_popup(GTK_MENU(popupmenu), NULL, NULL, NULL, NULL, + 0, gtk_get_current_event_time()); } static bool video_button_handler(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { VlcPluginGtk *plugin = (VlcPluginGtk *) user_data; if (event->button == 3 && event->type == GDK_BUTTON_PRESS) { - plugin->do_popup_menu(widget, event); + plugin->popup_menu(); return true; } return false; @@ -147,7 +135,7 @@ static bool video_button_handler(GtkWidget *widget, GdkEventButton *event, gpoin static bool video_popup_handler(GtkWidget *widget, gpointer user_data) { VlcPluginGtk *plugin = (VlcPluginGtk *) user_data; - plugin->do_popup_menu(widget, NULL); + plugin->popup_menu(); return true; } diff --git a/npapi/vlcplugin_gtk.h b/npapi/vlcplugin_gtk.h index 69340d6..9891809 100644 --- a/npapi/vlcplugin_gtk.h +++ b/npapi/vlcplugin_gtk.h @@ -49,15 +49,15 @@ public: void show_toolbar(); void hide_toolbar(); - void update_controls(); - void do_popup_menu(GtkWidget *,GdkEventButton *); + void popup_menu(); + private: void set_player_window(); unsigned int i_width, i_height; GtkWidget *parent, *parent_vbox, *video; - GtkWidget *toolbar, *popup_menu, *time_slider; + GtkWidget *toolbar, *time_slider; }; #endif /* __VLCPLUGIN_GTK_H__ */ diff --git a/npapi/vlcplugin_mac.cpp b/npapi/vlcplugin_mac.cpp index b219a50..3ca889c 100644 --- a/npapi/vlcplugin_mac.cpp +++ b/npapi/vlcplugin_mac.cpp @@ -34,21 +34,6 @@ int VlcPluginMac::get_fullscreen() return r; } -void VlcPluginMac::show_toolbar() -{ - // TODO -} - -void VlcPluginMac::hide_toolbar() -{ - // TODO -} - -void VlcPluginMac::update_controls() -{ - // TODO -} - bool VlcPluginMac::create_windows() { return true; diff --git a/npapi/vlcplugin_mac.h b/npapi/vlcplugin_mac.h index 5a458f6..6dace61 100644 --- a/npapi/vlcplugin_mac.h +++ b/npapi/vlcplugin_mac.h @@ -47,10 +47,10 @@ public: bool resize_windows(); bool destroy_windows(); - void show_toolbar(); - void hide_toolbar(); - - void update_controls(); + void show_toolbar() {/* STUB */}; + void hide_toolbar() {/* STUB */}; + void update_controls() {/* STUB */}; + void popup_menu() {/* STUB */}; private: void set_player_window(); diff --git a/npapi/vlcplugin_win.h b/npapi/vlcplugin_win.h index 4a2bf6e..5fccd38 100644 --- a/npapi/vlcplugin_win.h +++ b/npapi/vlcplugin_win.h @@ -55,6 +55,7 @@ public: void hide_toolbar(); void update_controls(); + void popup_menu(); WNDPROC getWindowProc() { return pf_wndproc; }; diff --git a/npapi/vlcplugin_xlib.cpp b/npapi/vlcplugin_xlib.cpp index 0df54f7..b3886b8 100644 --- a/npapi/vlcplugin_xlib.cpp +++ b/npapi/vlcplugin_xlib.cpp @@ -43,21 +43,6 @@ int VlcPluginXlib::get_fullscreen() return r; } -void VlcPluginXlib::show_toolbar() -{ - /* TODO */ -} - -void VlcPluginXlib::hide_toolbar() -{ - /* TODO */ -} - -void VlcPluginXlib::update_controls() -{ - /* TODO */ -} - bool VlcPluginXlib::create_windows() { diff --git a/npapi/vlcplugin_xlib.h b/npapi/vlcplugin_xlib.h index 3b40050..69fe03b 100644 --- a/npapi/vlcplugin_xlib.h +++ b/npapi/vlcplugin_xlib.h @@ -47,9 +47,10 @@ public: bool resize_windows(); bool destroy_windows(); - void show_toolbar(); - void hide_toolbar(); - void update_controls(); + void show_toolbar() {/* STUB */}; + void hide_toolbar() {/* STUB */}; + void update_controls() {/* STUB */}; + void popup_menu() {/* STUB */}; Display *getDisplay(); private: _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
