[Top][All Lists]
[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();
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [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.,
Sandro Santilli <=