[cheese/three-point-oh] Popup menu shows up.
- From: Yuvaraj Pandian <yuvipanda src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [cheese/three-point-oh] Popup menu shows up.
- Date: Mon, 12 Jul 2010 15:17:45 +0000 (UTC)
commit aa692c33de42d988477d04dba00193573d119efb
Author: Yuvaraj Pandian T <yuvipanda gmail com>
Date: Mon Jul 12 20:47:07 2010 +0530
Popup menu shows up.
Doesn't change selected item when right click is on different element
data/cheese-actions.ui | 6 ++++--
src/cheese-window.vala | 39 ++++++++++++++++++++++++++++++++++-----
2 files changed, 38 insertions(+), 7 deletions(-)
---
diff --git a/data/cheese-actions.ui b/data/cheese-actions.ui
index bbb941d..d4f0f9c 100644
--- a/data/cheese-actions.ui
+++ b/data/cheese-actions.ui
@@ -250,14 +250,16 @@
<menuitem action="about"/>
</menu>
</menubar>
- <menubar name="thumbnail_popup">
+ <popup name="thumbnail_popup" id="thumbnail_popup">
<menuitem action="open"/>
<separator/>
<menuitem action="save_as"/>
<separator/>
<menuitem action="move_to_trash"/>
<menuitem action="delete"/>
- </menubar>
+ </popup>
</ui>
</object>
+ <object class="GtkMenu" id="thumbnail_popup" constructor="menu_ui_man">
+ </object>
</interface>
diff --git a/src/cheese-window.vala b/src/cheese-window.vala
index 75f8a2f..599f97f 100644
--- a/src/cheese-window.vala
+++ b/src/cheese-window.vala
@@ -36,6 +36,7 @@ public class Cheese.MainWindow : Gtk.Window
private Gtk.ToggleButton effects_toggle_button;
private Gtk.Button leave_fullscreen_button;
private Gtk.HBox buttons_area;
+ private Gtk.Menu popup_menu;
private Clutter.Stage viewport;
private Clutter.Box viewport_layout;
@@ -82,17 +83,41 @@ public class Cheese.MainWindow : Gtk.Window
destroy ();
}
+ internal bool on_thumbnail_mouse_button_press (Gtk.Widget iconview,
+ Gdk.EventButton event)
+ {
+ Gtk.TreePath path;
+ path = thumb_view.get_path_at_pos ((int) event.x, (int) event.y);
+
+ if (path == null)
+ return false;
+
+ if (event.type == Gdk.EventType.BUTTON_PRESS)
+ {
+ if (event.button == 3)
+ {
+ popup_menu.popup (null, iconview, null, event.button, event.time);
+ }
+ }
+ else
+ if (event.type == Gdk.EventType .2BUTTON _PRESS)
+ {
+ on_file_open (null);
+ }
+
+ return false;
+ }
+
[CCode (instance_pos = -1)]
- internal void on_file_open (Gtk.Action action)
+ internal void on_file_open (Gtk.Action ? action)
{
string filename, uri;
Gdk.Screen screen;
-
-
filename = thumb_view.get_selected_image ();
+
if (filename == null)
- return; /* Nothing selected. */
+ return; /* Nothing selected. */
uri = GLib.Filename.to_uri (filename);
@@ -236,7 +261,7 @@ public class Cheese.MainWindow : Gtk.Window
{
switch (this.current_mode)
{
- case MediaMode.PHOTO:
+ case MediaMode.PHOTO :
photo_mode_action.sensitive = true;
video_mode_action.sensitive = false;
burst_mode_action.sensitive = false;
@@ -698,6 +723,7 @@ public class Cheese.MainWindow : Gtk.Window
effects_toggle_button = (Gtk.ToggleButton)gtk_builder.get_object ("effects_toggle_button");
leave_fullscreen_button = (Gtk.Button)gtk_builder.get_object ("leave_fullscreen_button");
buttons_area = (Gtk.HBox)gtk_builder.get_object ("buttons_area");
+ popup_menu = (Gtk.Menu)gtk_builder.get_object ("thumbnail_popup");
take_photo_action = (Gtk.Action)gtk_builder.get_object ("take_photo");
take_video_action = (Gtk.Action)gtk_builder.get_object ("take_video");
@@ -725,6 +751,7 @@ public class Cheese.MainWindow : Gtk.Window
viewport_layout_manager = (Clutter.BinLayout)clutter_builder.get_object ("viewport_layout_manager");
countdown_layer = (Clutter.Text)clutter_builder.get_object ("countdown_layer");
background_layer = (Clutter.Rectangle)clutter_builder.get_object ("background");
+
viewport.add_actor (background_layer);
viewport_layout.set_layout_manager (viewport_layout_manager);
@@ -740,6 +767,8 @@ public class Cheese.MainWindow : Gtk.Window
thumb_view = new Cheese.ThumbView ();
thumb_nav = new Eog.ThumbNav (thumb_view, false);
+ thumb_view.button_press_event.connect (on_thumbnail_mouse_button_press);
+
viewport.show_all ();
try {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]