[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] /srv/bzr/gnash/trunk r9925: Make creation of preferences
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] /srv/bzr/gnash/trunk r9925: Make creation of preferences dialogue easier to read and hack on; add Network preferences tab (streamsTimeout) |
Date: |
Sun, 05 Oct 2008 02:43:20 +0200 |
User-agent: |
Bazaar (1.5) |
------------------------------------------------------------
revno: 9925
committer: Sandro Santilli <address@hidden>
branch nick: trunk
timestamp: Sun 2008-10-05 02:43:20 +0200
message:
Make creation of preferences dialogue easier to read and hack on; add Network
preferences tab (streamsTimeout)
modified:
gui/gtk.cpp
gui/gtksup.h
=== modified file 'gui/gtk.cpp'
--- a/gui/gtk.cpp 2008-10-01 17:52:26 +0000
+++ b/gui/gtk.cpp 2008-10-05 00:43:20 +0000
@@ -936,88 +936,240 @@
}
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+/// ///
+/// Dialogues ///
+/// ///
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+namespace { // anonimous
+
+class PreferencesDialog {
+
+public:
+
+ PreferencesDialog(GtkWidget* window);
+
+ void show();
+
+private:
+
+ // A struct containing pointers to widgets for passing preference
+ // data from the dialogue
+ struct PrefWidgets {
+ GtkWidget *soundToggle;
+ GtkWidget *actionDumpToggle;
+ GtkWidget *parserDumpToggle;
+ GtkWidget *malformedSWFToggle;
+ GtkWidget *ASCodingErrorToggle;
+ GtkWidget *logfileName;
+ GtkWidget *writeLogToggle;
+ GtkWidget *verbosityScale;
+ GtkWidget *streamsTimeoutScale;
+ GtkWidget *localDomainToggle;
+ GtkWidget *localHostToggle;
+ GtkWidget *solReadOnlyToggle;
+ GtkWidget *solLocalDomainToggle;
+ GtkWidget *localConnectionToggle;
+ GtkWidget *insecureSSLToggle;
+ GtkWidget *lcTraceToggle;
+ GtkWidget *solSandbox;
+ GtkWidget *osText;
+ GtkWidget *versionText;
+ GtkWidget *urlOpenerText;
+ GtkWidget *librarySize;
+ GtkWidget *startStoppedToggle;
+#ifdef USE_DEBUGGER
+ GtkWidget *DebuggerToggle;
+#endif
+
+ PrefWidgets()
+ :
+ soundToggle(0),
+ actionDumpToggle(0),
+ parserDumpToggle(0),
+ malformedSWFToggle(0),
+ ASCodingErrorToggle(0),
+ logfileName(0),
+ writeLogToggle(0),
+ verbosityScale(0),
+ streamsTimeoutScale(0),
+ localDomainToggle(0),
+ localHostToggle(0),
+ solReadOnlyToggle(0),
+ solLocalDomainToggle(0),
+ localConnectionToggle(0),
+ insecureSSLToggle(0),
+ lcTraceToggle(0),
+ solSandbox(0),
+ osText(0),
+ versionText(0),
+ urlOpenerText(0),
+ librarySize(0),
+ startStoppedToggle(0)
+#ifdef USE_DEBUGGER
+ ,DebuggerToggle(0)
+#endif
+ {}
+ };
+
+
+ static void handlePrefs(GtkWidget* widget, gint response, gpointer data);
+
+ /// Network Tab
+ void addNetworkTab();
+
+ /// Logging Tab
+ void addLoggingTab();
+
+ void addSecurityTab();
+
+ void addMediaTab();
+
+ void addPlayerTab();
+
+ GtkWidget* _window;
+
+ PrefWidgets* _prefs;
+
+ RcInitFile& _rcfile;
+
+ GtkWidget* _prefsDialog;
+
+ GtkWidget* _notebook;
+
+
+};
+
// Callback to read values from the preferences dialogue and set rcfile
// values accordingly.
void
-GtkGui::handlePrefs (GtkWidget* dialog, gint response, gpointer data)
+PreferencesDialog::handlePrefs (GtkWidget* dialog, gint response, gpointer
data)
{
- prefData *prefs = static_cast<prefData*>(data);
+ PrefWidgets *prefs = static_cast<PrefWidgets*>(data);
if (response == GTK_RESPONSE_OK) {
- // If 'Save' was clicked, set all the values in rcfile
- RcInitFile& rcfile = RcInitFile::getDefaultInstance();
+ // If 'Save' was clicked, set all the values in _rcfile
+ RcInitFile& _rcfile = RcInitFile::getDefaultInstance();
// For getting from const gchar* to std::string&
std::string tmp;
-
rcfile.useSound(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->soundToggle)));
+ if ( prefs->soundToggle )
+
_rcfile.useSound(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->soundToggle)));
- rcfile.useActionDump(
-
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->actionDumpToggle)));
- rcfile.useParserDump(
-
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->parserDumpToggle)));
+ if ( prefs->actionDumpToggle )
+ _rcfile.useActionDump(
+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->actionDumpToggle)));
+
+ if ( prefs->parserDumpToggle )
+ _rcfile.useParserDump(
+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->parserDumpToggle)));
- tmp = gtk_entry_get_text(GTK_ENTRY(prefs->logfileName));
- rcfile.setDebugLog(tmp);
+ if ( prefs->logfileName ) {
+ tmp = gtk_entry_get_text(GTK_ENTRY(prefs->logfileName));
+ _rcfile.setDebugLog(tmp);
+ }
- rcfile.useWriteLog(
-
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->writeLogToggle)));
+ if ( prefs->writeLogToggle ) {
+ _rcfile.useWriteLog(
+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->writeLogToggle)));
+ }
- rcfile.verbosityLevel(static_cast<int>(
- gtk_range_get_value(GTK_RANGE(prefs->verbosityScale))));
-
- rcfile.showASCodingErrors(
-
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->ASCodingErrorToggle)));
-
- rcfile.showMalformedSWFErrors(
-
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->malformedSWFToggle)));
-
- rcfile.useLocalHost(
-
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->localHostToggle)));
-
- rcfile.useLocalDomain(
-
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->localDomainToggle)));
-
- rcfile.setSOLLocalDomain(
-
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->solLocalDomainToggle)));
-
- rcfile.setSOLReadOnly(
-
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->solReadOnlyToggle)));
-
- rcfile.setLocalConnection(
-
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->localConnectionToggle)));
-
- rcfile.insecureSSL(
-
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->insecureSSLToggle)));
-
- rcfile.setLCTrace(
-
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->lcTraceToggle)));
+ if ( prefs->verbosityScale ) {
+ _rcfile.verbosityLevel(static_cast<int>(
+ gtk_range_get_value(GTK_RANGE(prefs->verbosityScale))));
+ }
+
+ if ( prefs->streamsTimeoutScale ) {
+ _rcfile.setStreamsTimeout(
+ gtk_range_get_value(GTK_RANGE(prefs->streamsTimeoutScale)));
+ }
+
+ if ( prefs->ASCodingErrorToggle ) {
+ _rcfile.showASCodingErrors(
+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->ASCodingErrorToggle)));
+ }
+
+ if ( prefs->malformedSWFToggle ) {
+ _rcfile.showMalformedSWFErrors(
+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->malformedSWFToggle)));
+ }
+
+ if ( prefs->localHostToggle ) {
+ _rcfile.useLocalHost(
+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->localHostToggle)));
+ }
+
+ if ( prefs->localDomainToggle ) {
+ _rcfile.useLocalDomain(
+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->localDomainToggle)));
+ }
+
+ if ( prefs->solLocalDomainToggle ) {
+ _rcfile.setSOLLocalDomain(
+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->solLocalDomainToggle)));
+ }
+
+ if ( prefs->solReadOnlyToggle ) {
+ _rcfile.setSOLReadOnly(
+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->solReadOnlyToggle)));
+ }
+
+ if ( prefs->localConnectionToggle ) {
+ _rcfile.setLocalConnection(
+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->localConnectionToggle)));
+ }
+
+ if ( prefs->insecureSSLToggle ) {
+ _rcfile.insecureSSL(
+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->insecureSSLToggle)));
+ }
+
+ if ( prefs->lcTraceToggle ) {
+ _rcfile.setLCTrace(
+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->lcTraceToggle)));
+ }
- tmp = gtk_entry_get_text(GTK_ENTRY(prefs->solSandbox));
- rcfile.setSOLSafeDir(tmp);
-
- tmp = gtk_entry_get_text(GTK_ENTRY(prefs->osText));
- rcfile.setFlashSystemOS(tmp);
-
- tmp = gtk_entry_get_text(GTK_ENTRY(prefs->versionText));
- rcfile.setFlashVersionString(tmp);
-
- rcfile.setMovieLibraryLimit(
-
gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(prefs->librarySize)));
-
- rcfile.startStopped(
-
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->startStoppedToggle)));
-
- tmp = gtk_entry_get_text(GTK_ENTRY(prefs->urlOpenerText));
- rcfile.setURLOpenerFormat(tmp);
-
- // Let rcfile decide which file to update: generally the file being
used if
+ if ( prefs->solSandbox ) {
+ tmp = gtk_entry_get_text(GTK_ENTRY(prefs->solSandbox));
+ _rcfile.setSOLSafeDir(tmp);
+ }
+
+ if ( prefs->osText ) {
+ tmp = gtk_entry_get_text(GTK_ENTRY(prefs->osText));
+ _rcfile.setFlashSystemOS(tmp);
+ }
+
+ if ( prefs->versionText ) {
+ tmp = gtk_entry_get_text(GTK_ENTRY(prefs->versionText));
+ _rcfile.setFlashVersionString(tmp);
+ }
+
+ if ( prefs->librarySize ) {
+ _rcfile.setMovieLibraryLimit(
+
gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(prefs->librarySize)));
+ }
+
+ if ( prefs->startStoppedToggle ) {
+ _rcfile.startStopped(
+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->startStoppedToggle)));
+ }
+
+ if ( prefs->urlOpenerText ) {
+ tmp = gtk_entry_get_text(GTK_ENTRY(prefs->urlOpenerText));
+ _rcfile.setURLOpenerFormat(tmp);
+ }
+
+ // Let _rcfile decide which file to update: generally the file being
used if
// specified in GNASHRC environment variable, or in the user's home
directory
// if that can be found.
// TODO: We can also specify here which file should be written by
passing
// that instead. How might that best be done?
- rcfile.updateFile();
+ _rcfile.updateFile();
// Close the window when 'ok' is clicked
gtk_widget_destroy(dialog);
@@ -1033,24 +1185,21 @@
if (prefs) delete prefs;
}
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-/// ///
-/// Dialogues ///
-/// ///
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
void
-GtkGui::showPreferencesDialog()
-{
-
- prefData *prefs = new prefData;
-
- RcInitFile& rcfile = RcInitFile::getDefaultInstance();
-
+PreferencesDialog::show()
+{
+ gtk_widget_show_all (_prefsDialog);
+}
+
+PreferencesDialog::PreferencesDialog(GtkWidget* window)
+ :
+ _window(window),
+ _prefs(new PrefWidgets),
+ _rcfile(RcInitFile::getDefaultInstance())
+{
// Create top-level window
- GtkWidget *prefsDialog = gtk_dialog_new_with_buttons(
+ _prefsDialog = gtk_dialog_new_with_buttons(
_("Gnash preferences"),
GTK_WINDOW(_window),
// Needs an explicit cast in C++
@@ -1062,23 +1211,60 @@
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
NULL);
// Add Gnash icon
- addGnashIcon(GTK_WINDOW(prefsDialog));
+ GtkGui::addGnashIcon(GTK_WINDOW(_prefsDialog));
// Add notebook (tabs) to dialogue's vbox
- GtkWidget *notebook1 = gtk_notebook_new ();
+ _notebook = gtk_notebook_new ();
gtk_container_add (
- GTK_CONTAINER(GTK_DIALOG(prefsDialog)->vbox), notebook1);
+ GTK_CONTAINER(GTK_DIALOG(_prefsDialog)->vbox), _notebook);
// Pass the widgets containing settings to the callback function
// when any button is clicked or when the dialogue is destroyed.
- g_signal_connect (prefsDialog, "response", G_CALLBACK(&handlePrefs),
prefs);
-
- // Logging Tab
+ g_signal_connect (_prefsDialog, "response", G_CALLBACK(&handlePrefs),
_prefs);
+
+ addLoggingTab();
+ addSecurityTab();
+ addNetworkTab();
+ addMediaTab();
+ addPlayerTab();
+}
+
+void
+PreferencesDialog::addNetworkTab()
+{
+ GtkWidget *vbox = gtk_vbox_new (FALSE, 10);
+
+ // Tab label
+ GtkWidget *label = gtk_label_new_with_mnemonic (_("_Network"));
+ gtk_notebook_append_page(GTK_NOTEBOOK(_notebook), GTK_WIDGET(vbox),
label);
+
+ // Network preferences
+ label = gtk_label_new (_("<b>Network preferences</b>"));
+ gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
+ gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
+
+ // Streams timeout
+ label = gtk_label_new (_("Streams timeout (in seconds -- 0 to never
timeout):"));
+ gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
+ gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+
+ GtkWidget* scale = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new
(_rcfile.getStreamsTimeout(), 0, 10, 1, 0, 0)));
+ gtk_scale_set_digits (GTK_SCALE (scale), 0);
+ gtk_range_set_update_policy (GTK_RANGE (scale), GTK_UPDATE_DISCONTINUOUS);
+ gtk_box_pack_start(GTK_BOX(vbox), scale, FALSE, FALSE, 0);
+
+ _prefs->streamsTimeoutScale = scale;
+
+}
+
+void
+PreferencesDialog::addLoggingTab()
+{
GtkWidget *loggingvbox = gtk_vbox_new (FALSE, 10);
// Tab label
GtkWidget *loggingtablabel = gtk_label_new_with_mnemonic (_("_Logging"));
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook1), GTK_WIDGET(loggingvbox),
loggingtablabel);
+ gtk_notebook_append_page(GTK_NOTEBOOK(_notebook), GTK_WIDGET(loggingvbox),
loggingtablabel);
// Logging options
GtkWidget *logginglabel = gtk_label_new (_("<b>Logging options</b>"));
@@ -1089,91 +1275,96 @@
gtk_box_pack_start(GTK_BOX(loggingvbox), verbositylabel, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (verbositylabel), 0, 0.5);
- prefs->verbosityScale = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new
(rcfile.verbosityLevel(), 0, 10, 1, 0, 0)));
- gtk_scale_set_digits (GTK_SCALE (prefs->verbosityScale), 0);
- gtk_range_set_update_policy (GTK_RANGE (prefs->verbosityScale),
GTK_UPDATE_DISCONTINUOUS);
- gtk_box_pack_start(GTK_BOX(loggingvbox), prefs->verbosityScale, FALSE,
FALSE, 0);
+ _prefs->verbosityScale = gtk_hscale_new (GTK_ADJUSTMENT
(gtk_adjustment_new (_rcfile.verbosityLevel(), 0, 10, 1, 0, 0)));
+ gtk_scale_set_digits (GTK_SCALE (_prefs->verbosityScale), 0);
+ gtk_range_set_update_policy (GTK_RANGE (_prefs->verbosityScale),
GTK_UPDATE_DISCONTINUOUS);
+ gtk_box_pack_start(GTK_BOX(loggingvbox), _prefs->verbosityScale, FALSE,
FALSE, 0);
- prefs->writeLogToggle = gtk_check_button_new_with_mnemonic (_("Log to
_file"));
- gtk_box_pack_start(GTK_BOX(loggingvbox), prefs->writeLogToggle, FALSE,
FALSE, 0);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->writeLogToggle),
rcfile.useWriteLog());
+ _prefs->writeLogToggle = gtk_check_button_new_with_mnemonic (_("Log to
_file"));
+ gtk_box_pack_start(GTK_BOX(loggingvbox), _prefs->writeLogToggle, FALSE,
FALSE, 0);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (_prefs->writeLogToggle),
_rcfile.useWriteLog());
GtkWidget *logfilelabel = gtk_label_new (_("Logfile name:"));
gtk_box_pack_start(GTK_BOX(loggingvbox), logfilelabel, FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (logfilelabel), 0, 0.5);
- prefs->logfileName = gtk_entry_new ();
- gtk_box_pack_start(GTK_BOX(loggingvbox), prefs->logfileName, FALSE, FALSE,
0);
+ _prefs->logfileName = gtk_entry_new ();
+ gtk_box_pack_start(GTK_BOX(loggingvbox), _prefs->logfileName, FALSE,
FALSE, 0);
// Put debug filename in the entry box
- gtk_entry_set_text(GTK_ENTRY(prefs->logfileName),
rcfile.getDebugLog().c_str());
+ gtk_entry_set_text(GTK_ENTRY(_prefs->logfileName),
_rcfile.getDebugLog().c_str());
- prefs->parserDumpToggle = gtk_check_button_new_with_mnemonic (_("Log
_parser output"));
- gtk_box_pack_start(GTK_BOX(loggingvbox), prefs->parserDumpToggle, FALSE,
FALSE, 0);
- // Align button state with rcfile
- gtk_toggle_button_set_active (
- GTK_TOGGLE_BUTTON (prefs->parserDumpToggle),
- rcfile.useParserDump());
-
- prefs->actionDumpToggle = gtk_check_button_new_with_mnemonic (_("Log SWF
_actions"));
- gtk_box_pack_start(GTK_BOX(loggingvbox), prefs->actionDumpToggle, FALSE,
FALSE, 0);
- // Align button state with rcfile
- gtk_toggle_button_set_active (
- GTK_TOGGLE_BUTTON (prefs->actionDumpToggle),
- rcfile.useActionDump());
-
- prefs->malformedSWFToggle = gtk_check_button_new_with_mnemonic (_("Log
malformed SWF _errors"));
- gtk_box_pack_start(GTK_BOX(loggingvbox), prefs->malformedSWFToggle, FALSE,
FALSE, 0);
- // Align button state with rcfile
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(prefs->malformedSWFToggle),
- rcfile.showMalformedSWFErrors());
-
- prefs->ASCodingErrorToggle = gtk_check_button_new_with_mnemonic (_("Log
ActionScript _coding errors"));
- gtk_box_pack_start(GTK_BOX(loggingvbox), prefs->ASCodingErrorToggle,
FALSE, FALSE, 0);
- // Align button state with rcfile
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(prefs->ASCodingErrorToggle),
- rcfile.showASCodingErrors());
-
- prefs->lcTraceToggle = gtk_check_button_new_with_mnemonic (
+ _prefs->parserDumpToggle = gtk_check_button_new_with_mnemonic (_("Log
_parser output"));
+ gtk_box_pack_start(GTK_BOX(loggingvbox), _prefs->parserDumpToggle, FALSE,
FALSE, 0);
+ // Align button state with _rcfile
+ gtk_toggle_button_set_active (
+ GTK_TOGGLE_BUTTON (_prefs->parserDumpToggle),
+ _rcfile.useParserDump());
+
+ _prefs->actionDumpToggle = gtk_check_button_new_with_mnemonic (_("Log SWF
_actions"));
+ gtk_box_pack_start(GTK_BOX(loggingvbox), _prefs->actionDumpToggle, FALSE,
FALSE, 0);
+ // Align button state with _rcfile
+ gtk_toggle_button_set_active (
+ GTK_TOGGLE_BUTTON (_prefs->actionDumpToggle),
+ _rcfile.useActionDump());
+
+ _prefs->malformedSWFToggle = gtk_check_button_new_with_mnemonic (_("Log
malformed SWF _errors"));
+ gtk_box_pack_start(GTK_BOX(loggingvbox), _prefs->malformedSWFToggle,
FALSE, FALSE, 0);
+ // Align button state with _rcfile
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(_prefs->malformedSWFToggle),
+ _rcfile.showMalformedSWFErrors());
+
+ _prefs->ASCodingErrorToggle = gtk_check_button_new_with_mnemonic (_("Log
ActionScript _coding errors"));
+ gtk_box_pack_start(GTK_BOX(loggingvbox), _prefs->ASCodingErrorToggle,
FALSE, FALSE, 0);
+ // Align button state with _rcfile
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(_prefs->ASCodingErrorToggle),
+ _rcfile.showASCodingErrors());
+
+ _prefs->lcTraceToggle = gtk_check_button_new_with_mnemonic (
_("Log _Local Connection activity"));
- gtk_box_pack_start (GTK_BOX(loggingvbox), prefs->lcTraceToggle, FALSE,
FALSE, 0);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->lcTraceToggle),
- rcfile.getLCTrace());
+ gtk_box_pack_start (GTK_BOX(loggingvbox), _prefs->lcTraceToggle, FALSE,
FALSE, 0);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (_prefs->lcTraceToggle),
+ _rcfile.getLCTrace());
#ifdef USE_DEBUGGER
- prefs->DebuggerToggle = gtk_check_button_new_with_mnemonic (_("Enable
_debugger"));
- gtk_box_pack_start(GTK_BOX(loggingvbox), prefs->DebuggerToggle, FALSE,
FALSE, 0);
- // Align button state with rcfile
+ _prefs->DebuggerToggle = gtk_check_button_new_with_mnemonic (_("Enable
_debugger"));
+ gtk_box_pack_start(GTK_BOX(loggingvbox), _prefs->DebuggerToggle, FALSE,
FALSE, 0);
+ // Align button state with _rcfile
gtk_toggle_button_set_active (
- GTK_TOGGLE_BUTTON (prefs->DebuggerToggle),
- rcfile.useDebugger());
+ GTK_TOGGLE_BUTTON (_prefs->DebuggerToggle),
+ _rcfile.useDebugger());
#endif
+}
+
+void
+PreferencesDialog::addSecurityTab()
+{
// Security Tab
GtkWidget *securityvbox = gtk_vbox_new (FALSE, 14);
// Security tab title
GtkWidget *securitytablabel = gtk_label_new_with_mnemonic (_("_Security"));
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook1),
GTK_WIDGET(securityvbox), securitytablabel);
+ gtk_notebook_append_page(GTK_NOTEBOOK(_notebook),
GTK_WIDGET(securityvbox), securitytablabel);
// Network connection
GtkWidget *netconnectionslabel = gtk_label_new (_("<b>Network
connections</b>"));
gtk_label_set_use_markup (GTK_LABEL (netconnectionslabel), TRUE);
gtk_box_pack_start(GTK_BOX(securityvbox), netconnectionslabel, FALSE,
FALSE, 0);
- prefs->localHostToggle = gtk_check_button_new_with_mnemonic (_("Connect
only to local _host"));
- gtk_box_pack_start (GTK_BOX(securityvbox), prefs->localHostToggle, FALSE,
FALSE, 0);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->localHostToggle),
rcfile.useLocalHost());
+ _prefs->localHostToggle = gtk_check_button_new_with_mnemonic (_("Connect
only to local _host"));
+ gtk_box_pack_start (GTK_BOX(securityvbox), _prefs->localHostToggle, FALSE,
FALSE, 0);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (_prefs->localHostToggle),
_rcfile.useLocalHost());
- prefs->localDomainToggle = gtk_check_button_new_with_mnemonic (_("Connect
only to local _domain"));
- gtk_box_pack_start (GTK_BOX(securityvbox), prefs->localDomainToggle,
FALSE, FALSE, 0);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(prefs->localDomainToggle), rcfile.useLocalDomain());
+ _prefs->localDomainToggle = gtk_check_button_new_with_mnemonic (_("Connect
only to local _domain"));
+ gtk_box_pack_start (GTK_BOX(securityvbox), _prefs->localDomainToggle,
FALSE, FALSE, 0);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(_prefs->localDomainToggle), _rcfile.useLocalDomain());
- prefs->insecureSSLToggle = gtk_check_button_new_with_mnemonic (_("Disable
SSL _verification"));
- gtk_box_pack_start (GTK_BOX(securityvbox), prefs->insecureSSLToggle,
FALSE, FALSE, 0);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(prefs->insecureSSLToggle), rcfile.insecureSSL());
+ _prefs->insecureSSLToggle = gtk_check_button_new_with_mnemonic (_("Disable
SSL _verification"));
+ gtk_box_pack_start (GTK_BOX(securityvbox), _prefs->insecureSSLToggle,
FALSE, FALSE, 0);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(_prefs->insecureSSLToggle), _rcfile.insecureSSL());
GtkWidget *whitelistexpander = gtk_expander_new_with_mnemonic
(_("_Whitelist"));
gtk_box_pack_start (GTK_BOX (securityvbox), whitelistexpander, FALSE,
FALSE, 0);
@@ -1196,55 +1387,61 @@
gtk_box_pack_start (GTK_BOX(securityvbox), solsandboxlabel, FALSE, FALSE,
0);
gtk_misc_set_alignment (GTK_MISC (solsandboxlabel), 0, 0.5);
- prefs->solSandbox = gtk_entry_new();
- gtk_entry_set_text(GTK_ENTRY(prefs->solSandbox),
rcfile.getSOLSafeDir().c_str());
- gtk_box_pack_start (GTK_BOX(securityvbox), prefs->solSandbox, FALSE,
FALSE, 0);
+ _prefs->solSandbox = gtk_entry_new();
+ gtk_entry_set_text(GTK_ENTRY(_prefs->solSandbox),
_rcfile.getSOLSafeDir().c_str());
+ gtk_box_pack_start (GTK_BOX(securityvbox), _prefs->solSandbox, FALSE,
FALSE, 0);
- prefs->solReadOnlyToggle = gtk_check_button_new_with_mnemonic (
+ _prefs->solReadOnlyToggle = gtk_check_button_new_with_mnemonic (
_("Do _not write Shared Object files"));
- gtk_box_pack_start (GTK_BOX(securityvbox), prefs->solReadOnlyToggle,
FALSE, FALSE, 0);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->solReadOnlyToggle),
- rcfile.getSOLReadOnly());
+ gtk_box_pack_start (GTK_BOX(securityvbox), _prefs->solReadOnlyToggle,
FALSE, FALSE, 0);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(_prefs->solReadOnlyToggle),
+ _rcfile.getSOLReadOnly());
- prefs->solLocalDomainToggle = gtk_check_button_new_with_mnemonic (
+ _prefs->solLocalDomainToggle = gtk_check_button_new_with_mnemonic (
_("Only _access local Shared Object files"));
- gtk_box_pack_start (GTK_BOX(securityvbox), prefs->solLocalDomainToggle,
FALSE, FALSE, 0);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(prefs->solLocalDomainToggle),
- rcfile.getSOLLocalDomain());
+ gtk_box_pack_start (GTK_BOX(securityvbox), _prefs->solLocalDomainToggle,
FALSE, FALSE, 0);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(_prefs->solLocalDomainToggle),
+ _rcfile.getSOLLocalDomain());
- prefs->localConnectionToggle = gtk_check_button_new_with_mnemonic (
+ _prefs->localConnectionToggle = gtk_check_button_new_with_mnemonic (
_("Disable Local _Connection object"));
- gtk_box_pack_start (GTK_BOX(securityvbox), prefs->localConnectionToggle,
FALSE, FALSE, 0);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(prefs->localConnectionToggle),
- rcfile.getLocalConnection());
-
- // Sound Tab
+ gtk_box_pack_start (GTK_BOX(securityvbox), _prefs->localConnectionToggle,
FALSE, FALSE, 0);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(_prefs->localConnectionToggle),
+ _rcfile.getLocalConnection());
+}
+void
+PreferencesDialog::addMediaTab()
+{
// Media Tab
GtkWidget *mediavbox = gtk_vbox_new (FALSE, 2);
// Media tab title
GtkWidget *mediatablabel = gtk_label_new_with_mnemonic (_("_Media"));
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook1), GTK_WIDGET(mediavbox),
mediatablabel);
+ gtk_notebook_append_page(GTK_NOTEBOOK(_notebook), GTK_WIDGET(mediavbox),
mediatablabel);
// Sound
GtkWidget *soundlabel = gtk_label_new (_("<b>Sound</b>"));
gtk_label_set_use_markup (GTK_LABEL (soundlabel), TRUE);
gtk_box_pack_start(GTK_BOX(mediavbox), soundlabel, FALSE, FALSE, 0);
- prefs->soundToggle = gtk_check_button_new_with_mnemonic (_("Use sound
_handler"));
- gtk_box_pack_start (GTK_BOX(mediavbox), prefs->soundToggle, FALSE, FALSE,
0);
+ _prefs->soundToggle = gtk_check_button_new_with_mnemonic (_("Use sound
_handler"));
+ gtk_box_pack_start (GTK_BOX(mediavbox), _prefs->soundToggle, FALSE, FALSE,
0);
// Align button state with rcfile
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->soundToggle),
rcfile.useSound());
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (_prefs->soundToggle),
_rcfile.useSound());
+}
+void
+PreferencesDialog::addPlayerTab()
+{
// Player Tab
GtkWidget *playervbox = gtk_vbox_new (FALSE, 14);
// Player tab title
GtkWidget *playertablabel = gtk_label_new_with_mnemonic (_("_Player"));
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook1), GTK_WIDGET(playervbox),
playertablabel);
+ gtk_notebook_append_page(GTK_NOTEBOOK(_notebook), GTK_WIDGET(playervbox),
playertablabel);
// Player description
GtkWidget *descriptionlabel = gtk_label_new (_("<b>Player
description</b>"));
@@ -1259,10 +1456,10 @@
gtk_misc_set_alignment (GTK_MISC (versionlabel), 0, 0.5);
gtk_box_pack_start(GTK_BOX(versionhbox), versionlabel, FALSE, FALSE, 0);
- prefs->versionText = gtk_entry_new ();
- gtk_box_pack_start(GTK_BOX(versionhbox), prefs->versionText, FALSE, FALSE,
0);
+ _prefs->versionText = gtk_entry_new ();
+ gtk_box_pack_start(GTK_BOX(versionhbox), _prefs->versionText, FALSE,
FALSE, 0);
// Put text in the entry box
- gtk_entry_set_text(GTK_ENTRY(prefs->versionText),
rcfile.getFlashVersionString().c_str());
+ gtk_entry_set_text(GTK_ENTRY(_prefs->versionText),
_rcfile.getFlashVersionString().c_str());
// OS label
GtkWidget *oshbox = gtk_hbox_new (FALSE, 2);
@@ -1272,10 +1469,10 @@
gtk_misc_set_alignment (GTK_MISC (OSlabel), 0, 0.5);
gtk_box_pack_start(GTK_BOX(oshbox), OSlabel, FALSE, FALSE, 0);
- prefs->osText = gtk_entry_new ();
- gtk_box_pack_start(GTK_BOX(oshbox), prefs->osText, FALSE, FALSE, 0);
+ _prefs->osText = gtk_entry_new ();
+ gtk_box_pack_start(GTK_BOX(oshbox), _prefs->osText, FALSE, FALSE, 0);
// Put text in the entry box
- gtk_entry_set_text(GTK_ENTRY(prefs->osText),
rcfile.getFlashSystemOS().c_str());
+ gtk_entry_set_text(GTK_ENTRY(_prefs->osText),
_rcfile.getFlashSystemOS().c_str());
GtkWidget *OSadvicelabel = gtk_label_new (_("<i>If blank, Gnash will "
"detect your OS</i>"));
@@ -1291,10 +1488,10 @@
gtk_misc_set_alignment (GTK_MISC (urlopenerlabel), 0, 0.5);
gtk_box_pack_start(GTK_BOX(urlopenerbox), urlopenerlabel, FALSE, FALSE, 0);
- prefs->urlOpenerText = gtk_entry_new ();
- gtk_box_pack_start(GTK_BOX(urlopenerbox), prefs->urlOpenerText, FALSE,
FALSE, 0);
+ _prefs->urlOpenerText = gtk_entry_new ();
+ gtk_box_pack_start(GTK_BOX(urlopenerbox), _prefs->urlOpenerText, FALSE,
FALSE, 0);
// Put text in the entry box
- gtk_entry_set_text(GTK_ENTRY(prefs->urlOpenerText),
rcfile.getURLOpenerFormat().c_str());
+ gtk_entry_set_text(GTK_ENTRY(_prefs->urlOpenerText),
_rcfile.getURLOpenerFormat().c_str());
// Performance
GtkWidget *performancelabel = gtk_label_new (_("<b>Performance</b>"));
@@ -1309,18 +1506,29 @@
gtk_misc_set_alignment (GTK_MISC (librarylabel), 0, 0.5);
gtk_box_pack_start(GTK_BOX(libraryhbox), librarylabel, FALSE, FALSE, 0);
- prefs->librarySize = gtk_spin_button_new_with_range(0, 100, 1);
- gtk_box_pack_start(GTK_BOX(libraryhbox), prefs->librarySize, FALSE, FALSE,
0);
- // Align to rcfile value:
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(prefs->librarySize),
rcfile.getMovieLibraryLimit());
+ _prefs->librarySize = gtk_spin_button_new_with_range(0, 100, 1);
+ gtk_box_pack_start(GTK_BOX(libraryhbox), _prefs->librarySize, FALSE,
FALSE, 0);
+ // Align to _rcfile value:
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(_prefs->librarySize),
_rcfile.getMovieLibraryLimit());
- prefs->startStoppedToggle = gtk_check_button_new_with_mnemonic (
+ _prefs->startStoppedToggle = gtk_check_button_new_with_mnemonic (
_("Start _Gnash in pause mode"));
- gtk_box_pack_start (GTK_BOX(playervbox), prefs->startStoppedToggle, FALSE,
FALSE, 0);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(prefs->startStoppedToggle),
- rcfile.startStopped());
-
- gtk_widget_show_all (prefsDialog);
+ gtk_box_pack_start (GTK_BOX(playervbox), _prefs->startStoppedToggle,
FALSE, FALSE, 0);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(_prefs->startStoppedToggle),
+ _rcfile.startStopped());
+} // end of ::addPlayerTab
+
+
+
+} // end of anonimous namespace
+
+
+void
+GtkGui::showPreferencesDialog()
+{
+
+ PreferencesDialog preferencesDialog(_window);
+ preferencesDialog.show();
}
void
=== modified file 'gui/gtksup.h'
--- a/gui/gtksup.h 2008-07-15 08:31:09 +0000
+++ b/gui/gtksup.h 2008-10-05 00:43:20 +0000
@@ -177,7 +177,7 @@
void add_pixmap_directory(const gchar *directory);
- gchar* find_pixmap_file(const gchar *filename);
+ static gchar* find_pixmap_file(const gchar *filename);
void expose(const GdkRegion* region);
@@ -191,6 +191,9 @@
virtual void showMenu(bool show);
+ // Adds the gnash icon to a window.
+ static void addGnashIcon(GtkWindow* window);
+
private:
#ifdef GUI_HILDON
HildonProgram *_hildon_program;
@@ -208,9 +211,6 @@
GtkWidget *_menubar;
GtkWidget *_vbox;
- // Adds the gnash icon to a window.
- void addGnashIcon(GtkWindow* window);
-
/// Add key press events to the toplevel window.
//
/// The plugin fullscreen creates a new top level
@@ -218,7 +218,7 @@
/// the drawing area is reparented.
void setupWindowEvents();
- GdkPixbuf* createPixbuf(const gchar *filename);
+ static GdkPixbuf* createPixbuf(const gchar *filename);
#ifdef USE_SWFTREE
// Create a tree model for displaying movie info
@@ -230,36 +230,6 @@
static gnash::key::code gdk_to_gnash_key(guint key);
static int gdk_to_gnash_modifier(int state);
- // A struct containing pointers to widgets for passing preference
- // data from the dialogue
- struct prefData {
- GtkWidget *soundToggle;
- GtkWidget *actionDumpToggle;
- GtkWidget *parserDumpToggle;
- GtkWidget *malformedSWFToggle;
- GtkWidget *ASCodingErrorToggle;
- GtkWidget *logfileName;
- GtkWidget *writeLogToggle;
- GtkWidget *verbosityScale;
- GtkWidget *localDomainToggle;
- GtkWidget *localHostToggle;
- GtkWidget *solReadOnlyToggle;
- GtkWidget *solLocalDomainToggle;
- GtkWidget *localConnectionToggle;
- GtkWidget *insecureSSLToggle;
- GtkWidget *lcTraceToggle;
- GtkWidget *solSandbox;
- GtkWidget *osText;
- GtkWidget *versionText;
- GtkWidget *urlOpenerText;
- GtkWidget *librarySize;
- GtkWidget *startStoppedToggle;
-#ifdef USE_DEBUGGER
- GtkWidget *DebuggerToggle;
-#endif
- };
-
- static void handlePrefs(GtkWidget* widget, gint response, gpointer data);
static void openFile(GtkWidget* dialog, gpointer data);
void stopHook();
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] /srv/bzr/gnash/trunk r9925: Make creation of preferences dialogue easier to read and hack on; add Network preferences tab (streamsTimeout),
Sandro Santilli <=