gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] /srv/bzr/gnash/trunk r11133: View.Quality menu for gtk,


From: Sandro Santilli
Subject: [Gnash-commit] /srv/bzr/gnash/trunk r11133: View.Quality menu for gtk, and support from base class. Note that current quality isn't shown due to a limitation in current menu construction design.
Date: Tue, 16 Jun 2009 16:54:59 +0200
User-agent: Bazaar (1.13.1)

------------------------------------------------------------
revno: 11133
committer: Sandro Santilli <address@hidden>
branch nick: trunk
timestamp: Tue 2009-06-16 16:54:59 +0200
message:
  View.Quality menu for gtk, and support from base class. Note that current 
quality isn't shown due to a limitation in current menu construction design.
modified:
  gui/gtk.cpp
  gui/gtksup.h
  gui/gui.cpp
  gui/gui.h
=== modified file 'gui/gtk.cpp'
--- a/gui/gtk.cpp       2009-06-06 00:04:10 +0000
+++ b/gui/gtk.cpp       2009-06-16 14:54:59 +0000
@@ -31,6 +31,7 @@
 #include "render_handler.h"
 #include "VM.h"
 #include "lirc.h"
+#include "gnash.h" // Quality
 
 #include <iostream>
 #ifdef HAVE_X11
@@ -87,6 +88,10 @@
     void menuMovieInfo(GtkMenuItem *menuitem, gpointer instance);
     void menuRefreshView(GtkMenuItem *menuitem, gpointer instance);
     void menuShowUpdatedRegions(GtkMenuItem *menuitem, gpointer instance); 
+    void menuQualityLow(GtkMenuItem *menuitem, gpointer instance); 
+    void menuQualityMedium(GtkMenuItem *menuitem, gpointer instance); 
+    void menuQualityHigh(GtkMenuItem *menuitem, gpointer instance); 
+    void menuQualityBest(GtkMenuItem *menuitem, gpointer instance); 
 
     // Event handlers
     gboolean realizeEvent(GtkWidget *widget, GdkEvent *event, gpointer data);
@@ -1974,6 +1979,51 @@
                      G_CALLBACK(menuShowUpdatedRegions), this);
 #endif
 
+    createQualityMenu(menu);
+
+}
+
+// Create a Quality menu that can be used from the View menu
+void
+GtkGui::createQualityMenu(GtkWidget *obj)
+{
+    GNASH_REPORT_FUNCTION;
+
+    GtkWidget *menuitem = gtk_menu_item_new_with_mnemonic (_("_Quality"));
+    gtk_widget_show (menuitem);
+    gtk_container_add (GTK_CONTAINER (obj), menuitem);
+    
+    GtkWidget *menu = gtk_menu_new ();
+    gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
+
+    Quality curQuality = getQuality();
+
+    // TODO: use to also show current quality state
+
+    // Low
+    GtkWidget* item = gtk_menu_item_new_with_label(_("Low"));
+    gtk_menu_append(menu, item);
+    gtk_widget_show(item);
+    g_signal_connect(item, "activate", G_CALLBACK(menuQualityLow), this);
+
+    // Medium
+    item = gtk_menu_item_new_with_label(_("Medium"));
+    gtk_menu_append(menu, item);
+    gtk_widget_show(item);
+    g_signal_connect(item, "activate", G_CALLBACK(menuQualityMedium), this);
+
+    // High
+    item = gtk_menu_item_new_with_label(_("High"));
+    gtk_menu_append(menu, item);
+    gtk_widget_show(item);
+    g_signal_connect(item, "activate", G_CALLBACK(menuQualityHigh), this);
+
+    // Best
+    item = gtk_menu_item_new_with_label(_("Best"));
+    gtk_menu_append(menu, item);
+    gtk_widget_show(item);
+    g_signal_connect(item, "activate", G_CALLBACK(menuQualityBest), this);
+
 }
 
 // Create a Control menu that can be used from the menu bar or the popup.
@@ -2548,6 +2598,38 @@
     if (!gui->showUpdatedRegions()) gui->refreshView();
 }
 
+/// \brief Set quality to LOW level
+void
+menuQualityLow(GtkMenuItem* /*menuitem*/, gpointer data)
+{
+    Gui* gui = static_cast<Gui*>(data);
+    gui->setQuality(QUALITY_LOW);
+}
+
+/// \brief Set quality to MEDIUM level
+void
+menuQualityMedium(GtkMenuItem* /*menuitem*/, gpointer data)
+{
+    Gui* gui = static_cast<Gui*>(data);
+    gui->setQuality(QUALITY_MEDIUM);
+}
+
+/// \brief Set quality to HIGH level
+void
+menuQualityHigh(GtkMenuItem* /*menuitem*/, gpointer data)
+{
+    Gui* gui = static_cast<Gui*>(data);
+    gui->setQuality(QUALITY_HIGH);
+}
+
+/// \brief Set quality to BEST level
+void
+menuQualityBest(GtkMenuItem* /*menuitem*/, gpointer data)
+{
+    Gui* gui = static_cast<Gui*>(data);
+    gui->setQuality(QUALITY_BEST);
+}
+
 } // anonymous namespace
 
 } // end of namespace gnash

=== modified file 'gui/gtksup.h'
--- a/gui/gtksup.h      2009-06-05 22:48:18 +0000
+++ b/gui/gtksup.h      2009-06-16 14:54:59 +0000
@@ -117,6 +117,7 @@
     void createFileMenu(GtkWidget *obj);
     void createEditMenu(GtkWidget *obj);
     void createViewMenu(GtkWidget *obj);
+    void createQualityMenu(GtkWidget *obj);
     void createHelpMenu(GtkWidget *obj);
     void createControlMenu(GtkWidget *obj);
     

=== modified file 'gui/gui.cpp'
--- a/gui/gui.cpp       2009-06-14 19:17:00 +0000
+++ b/gui/gui.cpp       2009-06-16 14:54:59 +0000
@@ -1248,5 +1248,27 @@
     return true;
 }
 
+void
+Gui::setQuality(Quality q)
+{
+       if ( ! _stage )
+       {
+               log_error("Gui::setQuality called before a movie_root was 
available");
+               return;
+       }
+    _stage->setQuality(q);
+}
+
+Quality
+Gui::getQuality() const
+{
+       if ( ! _stage )
+       {
+               log_error("Gui::getQuality called before a movie_root was 
available");
+               return QUALITY_HIGH; // just a guess..
+       }
+    return _stage->getQuality();
+}
+
 // end of namespace
 }

=== modified file 'gui/gui.h'
--- a/gui/gui.h 2009-06-14 19:17:00 +0000
+++ b/gui/gui.h 2009-06-16 14:54:59 +0000
@@ -28,6 +28,7 @@
 #include "smart_ptr.h"
 #include "VirtualClock.h"
 #include "SystemClock.h"
+#include "gnash.h" // for Quality
 
 #ifdef USE_SWFTREE
 #include "tree.hh" // for tree
@@ -322,6 +323,12 @@
     /// state.
     void restart();
 
+    /// Set rendering quality, if not locked by RC file..
+    void setQuality(Quality q);
+
+    /// Get current rendering quality
+    Quality getQuality() const;
+
     /// Toggle sound state between muted and unmuted. If
     /// there is no active sound handler this does nothing.
     void toggleSound();


reply via email to

[Prev in Thread] Current Thread [Next in Thread]