gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog gui/gtk.cpp gui/gtksup.h


From: Benjamin Wolsey
Subject: [Gnash-commit] gnash ChangeLog gui/gtk.cpp gui/gtksup.h
Date: Wed, 16 Jan 2008 17:14:05 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Benjamin Wolsey <bwy>   08/01/16 17:14:04

Modified files:
        .              : ChangeLog 
        gui            : gtk.cpp gtksup.h 

Log message:
                * gui/gtk{sup.h,.cpp}: redesign preferences dialogue; send 
changes
                  to rcfile (nothing gets saved yet, but some changes work 
without a
                  restart).
        
        Once libbase supports written the rcfile to disk, changes from the 
dialogue can be saved. Only ASCodingErrors and possibly some of the SOL / local 
connection options make a difference at the moment.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5415&r2=1.5416
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/gtk.cpp?cvsroot=gnash&r1=1.132&r2=1.133
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/gtksup.h?cvsroot=gnash&r1=1.58&r2=1.59

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5415
retrieving revision 1.5416
diff -u -b -r1.5415 -r1.5416
--- ChangeLog   16 Jan 2008 16:09:04 -0000      1.5415
+++ ChangeLog   16 Jan 2008 17:14:03 -0000      1.5416
@@ -1,3 +1,9 @@
+2008-01-16 Benjamin Wolsey <address@hidden>
+
+       * gui/gtk{sup.h,.cpp}: redesign preferences dialogue; send changes
+         to rcfile (nothing gets saved yet, but some changes work without a
+         restart).
+
 2008-01-16 Sandro Santilli <address@hidden>
 
        * gui/gui.cpp (getMovieInfo): add class info of hit character.

Index: gui/gtk.cpp
===================================================================
RCS file: /sources/gnash/gnash/gui/gtk.cpp,v
retrieving revision 1.132
retrieving revision 1.133
diff -u -b -r1.132 -r1.133
--- gui/gtk.cpp 13 Jan 2008 14:00:26 -0000      1.132
+++ gui/gtk.cpp 16 Jan 2008 17:14:04 -0000      1.133
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: gtk.cpp,v 1.132 2008/01/13 14:00:26 bwy Exp $ */
+/* $Id: gtk.cpp,v 1.133 2008/01/16 17:14:04 bwy Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -771,283 +771,268 @@
 #endif
 }
 
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-///                                                                         ///
-///                             Dialogues                                   ///
-///                                                                         ///
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
 
+// Callback to read values from the preferences dialogue and set rcfile
+// values accordingly.
 void
-GtkGui::showPreferencesDialog()
+GtkGui::updateRC (GtkWidget* dialog, gint response, gpointer data)
 {
+
+    if (response == GTK_RESPONSE_ACCEPT) {
+
+        // If 'OK' was clicked, set all the values in rcfile
+        prefData *prefs = static_cast<prefData*>(data);
     RcInitFile& rcfile = RcInitFile::getDefaultInstance();
+        // For getting from const gchar* to std::string&
+        std::string tmp;
 
-    GtkWidget *window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-    gtk_window_set_title (GTK_WINDOW (window1), _("Gnash preferences"));
+        
rcfile.useSound(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->soundToggle)));
     
-    addGnashIcon(GTK_WINDOW(window1));
+        rcfile.useActionDump(
+               
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->actionDumpToggle)));
+        rcfile.useParserDump(
+               
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->parserDumpToggle)));
 
-    GtkWidget *notebook1 = gtk_notebook_new ();
-    gtk_widget_show (notebook1);
-    gtk_container_add (GTK_CONTAINER (window1), notebook1);
+       tmp = gtk_entry_get_text(GTK_ENTRY(prefs->logfileName));
+        rcfile.setDebugLog(tmp);
 
-    GtkWidget *frame1 = gtk_frame_new (NULL);
-    gtk_widget_show (frame1);
-    gtk_container_add (GTK_CONTAINER (notebook1), frame1);
-    gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_NONE);
-    
-    GtkWidget *alignment1 = gtk_alignment_new (0.5, 0.5, 1, 1);
-    gtk_widget_show (alignment1);
-    gtk_container_add (GTK_CONTAINER (frame1), alignment1);
-    gtk_alignment_set_padding (GTK_ALIGNMENT (alignment1), 0, 0, 12, 0);
-    
-    GtkWidget *table1 = gtk_table_new (6, 2, FALSE);
-    gtk_widget_show (table1);
-    gtk_container_add (GTK_CONTAINER (alignment1), table1);
-    
-    GtkWidget *label5 = gtk_label_new (_("Verbosity"));
-    gtk_widget_show (label5);
-    gtk_table_attach (GTK_TABLE (table1), label5, 0, 1, 0, 1,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
-    gtk_misc_set_alignment (GTK_MISC (label5), 0, 0.5);
+        rcfile.useWriteLog(
+               
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->writeLogToggle)));
 
-    GtkWidget *hscale1 = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new 
(rcfile.verbosityLevel(), 0, 10, 1, 0, 0)));
-    gtk_widget_show (hscale1);
-    gtk_table_attach (GTK_TABLE (table1), hscale1, 1, 2, 0, 1,
-                      (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                      (GtkAttachOptions) (GTK_FILL), 0, 0);
-    gtk_scale_set_digits (GTK_SCALE (hscale1), 0);
-    gtk_range_set_update_policy (GTK_RANGE (hscale1), 
GTK_UPDATE_DISCONTINUOUS);
-    
-    GtkWidget *label6 = gtk_label_new (_("Log to file"));
-    gtk_widget_show (label6);
-    gtk_table_attach (GTK_TABLE (table1), label6, 0, 1, 1, 2,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
-    gtk_misc_set_alignment (GTK_MISC (label6), 0, 0.5);
+        rcfile.verbosityLevel(
+               gtk_range_get_value(GTK_RANGE(prefs->verbosityScale)));
     
-    GtkWidget *checkbutton1 = gtk_check_button_new_with_mnemonic ("");
-    gtk_widget_show (checkbutton1);
-    gtk_table_attach (GTK_TABLE (table1), checkbutton1, 1, 2, 1, 2,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
+        rcfile.showASCodingErrors(
+               
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->ASCodingErrorToggle)));
     
-    if ( rcfile.useWriteLog() == true  )
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton1), TRUE);
-    else 
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton1), FALSE);
-    
-    GtkWidget *label7 = gtk_label_new (_("Log File name"));
-    gtk_widget_show (label7);
-    gtk_table_attach (GTK_TABLE (table1), label7, 0, 1, 2, 3,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
-    gtk_misc_set_alignment (GTK_MISC (label7), 0, 0.5);
+        //rcfile.showMalformedSWFErrors(
+        //     
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->malformedSWFToggle)));
     
-    GtkWidget *logfilenameentry = gtk_entry_new ();
-    gtk_widget_show (logfilenameentry);
-    gtk_table_attach (GTK_TABLE (table1), logfilenameentry, 1, 2, 2, 3,
-                      (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
+        rcfile.useLocalHost(
+               
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->localHostToggle)));
     
-    if (rcfile.useWriteLog() == true ) {
-        log_msg (_("Debug log filename: %s"), rcfile.getDebugLog().c_str());
-        gtk_entry_set_text( (GtkEntry*) logfilenameentry, 
rcfile.getDebugLog().c_str()); 
-        gtk_widget_set_sensitive(logfilenameentry,TRUE);
-    } else {
-        gtk_widget_set_sensitive(logfilenameentry,FALSE);
-    }
+        rcfile.useLocalDomain(
+               
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->localDomainToggle)));
     
-    GtkWidget *label8 = gtk_label_new (_("Parser output"));
-    gtk_widget_show (label8);
-    gtk_table_attach (GTK_TABLE (table1), label8, 0, 1, 3, 4,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
-    gtk_misc_set_alignment (GTK_MISC (label8), 0, 0.5);
+        rcfile.setSOLLocalDomain(
+               
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->solLocalDomainToggle)));
     
-    GtkWidget *parseroutputcheckbutton2 = gtk_check_button_new_with_mnemonic 
("");
-    gtk_widget_show (parseroutputcheckbutton2);
-    gtk_table_attach (GTK_TABLE (table1), parseroutputcheckbutton2, 1, 2, 3, 4,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
+        rcfile.setSOLReadOnly(
+               
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->solReadOnlyToggle)));
     
-    if ( rcfile.useParserDump() == true  )
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON 
(parseroutputcheckbutton2), TRUE);
-    else 
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON 
(parseroutputcheckbutton2), FALSE);
-    
-    GtkWidget *label9 = gtk_label_new (_("Debug ActionScript"));
-    gtk_widget_show (label9);
-    gtk_table_attach (GTK_TABLE (table1), label9, 0, 1, 4, 5,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
-    gtk_misc_set_alignment (GTK_MISC (label9), 0, 0.5);
+        rcfile.setLocalConnection(
+               
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->localConnectionToggle)));
     
-    GtkWidget *debugActionScriptcheckbutton3 = 
gtk_check_button_new_with_mnemonic ("");
-    gtk_widget_show (debugActionScriptcheckbutton3);
-    gtk_table_attach (GTK_TABLE (table1), debugActionScriptcheckbutton3, 1, 2, 
4, 5,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
+        rcfile.setLCTrace(
+               
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prefs->lcTraceToggle)));
+               
+        tmp = gtk_entry_get_text(GTK_ENTRY(prefs->solSandbox));
+       rcfile.setSOLSafeDir(tmp);
     
-    if (rcfile.useActionDump() == true) {
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON 
(debugActionScriptcheckbutton3), TRUE);
-    } else {
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON 
(debugActionScriptcheckbutton3), FALSE);
     }
 
-    GtkWidget *label10 = gtk_label_new (_("Debugger"));
-    gtk_widget_show (label10);
-    gtk_table_attach (GTK_TABLE (table1), label10, 0, 1, 5, 6,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
-    gtk_misc_set_alignment (GTK_MISC (label10), 0, 0.5);
+    // Make sure the dialogue is destroyed, whatever button is clicked.
+    gtk_widget_destroy(dialog);
 
-    GtkWidget *debuggercheckbutton4 = gtk_check_button_new_with_mnemonic ("");
-    gtk_widget_show (debuggercheckbutton4);
-    gtk_table_attach (GTK_TABLE (table1), debuggercheckbutton4, 1, 2, 5, 6,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
+}
     
-    if (rcfile.useDebugger() == true) {
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (debuggercheckbutton4), 
TRUE);
-    } else {
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (debuggercheckbutton4), 
FALSE);
-    }
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+///                                                                         ///
+///                             Dialogues                                   ///
+///                                                                         ///
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
     
-    GtkWidget *label4 = gtk_label_new (_("<b>Logging preferences</b>"));
-    gtk_widget_show (label4);
-    gtk_frame_set_label_widget (GTK_FRAME (frame1), label4);
-    gtk_label_set_use_markup (GTK_LABEL (label4), TRUE);
-    
-    GtkWidget *label1 = gtk_label_new (_("Logging"));
-    gtk_widget_show (label1);
-    gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), 
gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label1);
-    
-    GtkWidget *frame2 = gtk_frame_new (NULL);
-    gtk_widget_show (frame2);
-    gtk_container_add (GTK_CONTAINER (notebook1), frame2);
-    gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_NONE);
-    
-    GtkWidget *alignment2 = gtk_alignment_new (0.5, 0.5, 1, 1);
-    gtk_widget_show (alignment2);
-    gtk_container_add (GTK_CONTAINER (frame2), alignment2);
-    gtk_alignment_set_padding (GTK_ALIGNMENT (alignment2), 0, 0, 12, 0);
-    
-    GtkWidget *table4 = gtk_table_new (4, 2, FALSE);
-    gtk_widget_show (table4);
-    gtk_container_add (GTK_CONTAINER (alignment2), table4);
-    
-    GtkWidget *label13 = gtk_label_new (_("Allow remote access from: "));
-    gtk_widget_show (label13);
-    gtk_table_attach (GTK_TABLE (table4), label13, 0, 1, 0, 1,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
-    gtk_misc_set_alignment (GTK_MISC (label13), 0, 0.5);
+void
+GtkGui::showPreferencesDialog()
+{
     
-    GtkWidget *label15 = gtk_label_new (_("Whitelist"));
-    gtk_widget_show (label15);
-    gtk_table_attach (GTK_TABLE (table4), label15, 0, 1, 2, 3,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
-    gtk_misc_set_alignment (GTK_MISC (label15), 0, 0.5);
+    prefData *prefs(new prefData);
     
-    GtkWidget *label16 = gtk_label_new (_("Blacklist"));
-    gtk_widget_show (label16);
-    gtk_table_attach (GTK_TABLE (table4), label16, 0, 1, 3, 4,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
-    gtk_misc_set_alignment (GTK_MISC (label16), 0, 0.5);
+    RcInitFile& rcfile = RcInitFile::getDefaultInstance();
     
-    GtkWidget *whitelistcomboboxentry1 = gtk_combo_box_entry_new_text ();
-    gtk_widget_show (whitelistcomboboxentry1);
-    gtk_table_attach (GTK_TABLE (table4), whitelistcomboboxentry1, 1, 2, 2, 3,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (GTK_FILL), 0, 0);
+    // Create top-level window
+    GtkWidget *prefsDialog = gtk_dialog_new_with_buttons(_("Gnash 
preferences"),
+                                                       GTK_WINDOW(_window),
+                                                       
GTK_DIALOG_DESTROY_WITH_PARENT,
+                                                       GTK_STOCK_CANCEL, 
GTK_RESPONSE_REJECT,
+                                                       GTK_STOCK_OK, 
GTK_RESPONSE_ACCEPT,
+                                                       NULL);
+    // Add Gnash icon
+    addGnashIcon(GTK_WINDOW(prefsDialog));
     
-    GtkWidget *blacklistcomboboxentry2 = gtk_combo_box_entry_new_text ();
-    gtk_widget_show (blacklistcomboboxentry2);
-    gtk_table_attach (GTK_TABLE (table4), blacklistcomboboxentry2, 1, 2, 3, 4,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (GTK_FILL), 0, 0);
+    // Add notebook (tabs) to dialogue's vbox
+    GtkWidget *notebook1 = gtk_notebook_new ();
+    gtk_container_add (
+               GTK_CONTAINER(GTK_DIALOG(prefsDialog)->vbox), notebook1);
     
-    GtkWidget *localhostcheckbutton8 = gtk_check_button_new_with_mnemonic 
(_("local host only"));
-    gtk_widget_show (localhostcheckbutton8);
-    gtk_table_attach (GTK_TABLE (table4), localhostcheckbutton8, 1, 2, 0, 1,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
+    // Pass the widgets containing settings to the callback function
+    // when any button is clicked.
+    g_signal_connect (prefsDialog, "response", G_CALLBACK(&updateRC), prefs);
+
+    // Logging Tab
+    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); 
+
+    // Logging options
+    GtkWidget *logginglabel = gtk_label_new (_("<b>Logging options</b>"));
+    gtk_label_set_use_markup (GTK_LABEL (logginglabel), TRUE);
+    gtk_box_pack_start(GTK_BOX(loggingvbox), logginglabel, FALSE, FALSE, 0);
+    
+    GtkWidget *verbositylabel = gtk_label_new (_("Verbosity level:"));
+    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->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);
+    // Put debug filename in the entry box      
+    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());
+
+#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
+    gtk_toggle_button_set_active (
+                       GTK_TOGGLE_BUTTON (prefs->DebuggerToggle),
+                       rcfile.useDebugger());
+
+#endif
+
+    // 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); 
+    
+    // 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->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());
     
-    if ( rcfile.useLocalHost() == true ) {
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON 
(localhostcheckbutton8), TRUE);
-    } else {
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON 
(localhostcheckbutton8), FALSE);
-    }
+    GtkWidget *whitelistexpander = gtk_expander_new_with_mnemonic 
(_("_Whitelist"));
+    gtk_box_pack_start (GTK_BOX (securityvbox), whitelistexpander, FALSE, 
FALSE, 0);
     
-    GtkWidget *localdomaincheckbutton9 = gtk_check_button_new_with_mnemonic 
(_("local domain only"));
-    gtk_widget_show (localdomaincheckbutton9);
-    gtk_table_attach (GTK_TABLE (table4), localdomaincheckbutton9, 1, 2, 1, 2,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
+    GtkWidget *whitelistcomboboxentry1 = gtk_combo_box_entry_new_text ();
+    gtk_container_add (GTK_CONTAINER(whitelistexpander), 
whitelistcomboboxentry1);
     
-    if ( rcfile.useLocalDomain() == true ) {
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON 
(localdomaincheckbutton9), TRUE);
-    } else {
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON 
(localdomaincheckbutton9), FALSE);
-    }
+    GtkWidget *blacklistexpander = gtk_expander_new_with_mnemonic 
(_("_Blacklist"));
+    gtk_box_pack_start (GTK_BOX (securityvbox), blacklistexpander, FALSE, 
FALSE, 0);
     
-    GtkWidget *label11 = gtk_label_new (_("<b>Security preferences</b>"));
-    gtk_widget_show (label11);
-    gtk_frame_set_label_widget (GTK_FRAME (frame2), label11);
-    gtk_label_set_use_markup (GTK_LABEL (label11), TRUE);
-    
-    GtkWidget *label2 = gtk_label_new (_("Security"));
-    gtk_widget_show (label2);
-    gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), 
gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label2);
-    
-    GtkWidget *frame3 = gtk_frame_new (NULL);
-    gtk_widget_show (frame3);
-    gtk_container_add (GTK_CONTAINER (notebook1), frame3);
-    gtk_frame_set_shadow_type (GTK_FRAME (frame3), GTK_SHADOW_NONE);
-    
-    GtkWidget *alignment3 = gtk_alignment_new (0.5, 0.5, 1, 1);
-    gtk_widget_show (alignment3);
-    gtk_container_add (GTK_CONTAINER (frame3), alignment3);
-    gtk_alignment_set_padding (GTK_ALIGNMENT (alignment3), 0, 0, 12, 0);
-    
-    GtkWidget *table5 = gtk_table_new (3, 2, FALSE);
-    gtk_widget_show (table5);
-    gtk_container_add (GTK_CONTAINER (alignment3), table5);
-
-    GtkWidget *label17 = gtk_label_new (_("Enable sound"));
-    gtk_widget_show (label17);
-    gtk_table_attach (GTK_TABLE (table5), label17, 0, 1, 0, 1,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
-    gtk_misc_set_alignment (GTK_MISC (label17), 0, 0.5);
+    GtkWidget *blacklistcomboboxentry2 = gtk_combo_box_entry_new_text ();
+    gtk_container_add (GTK_CONTAINER(blacklistexpander), 
blacklistcomboboxentry2);
     
-    GtkWidget *checkbutton7 = gtk_check_button_new_with_mnemonic ("");
-    gtk_widget_show (checkbutton7);
-    gtk_table_attach (GTK_TABLE (table5), checkbutton7, 1, 2, 0, 1,
-                      (GtkAttachOptions) (GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
-    if (rcfile.useSound() == true) {
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton7), TRUE);
-    } else {
-       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton7), FALSE);
-    }
+    // Privacy
+    GtkWidget *privacylabel = gtk_label_new (_("<b>Privacy</b>"));
+    gtk_label_set_use_markup (GTK_LABEL (privacylabel), TRUE);
+    gtk_box_pack_start (GTK_BOX(securityvbox), privacylabel, FALSE, FALSE, 0);
+
+    GtkWidget *solsandboxlabel = gtk_label_new (_("Shared objects 
directory:"));
+    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->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());
+
+    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());
+
+    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());
+
+    prefs->lcTraceToggle = gtk_check_button_new_with_mnemonic (
+                               _("_Trace local connection activity"));
+    gtk_box_pack_start (GTK_BOX(securityvbox), prefs->lcTraceToggle, FALSE, 
FALSE, 0);
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->lcTraceToggle),
+                       rcfile.getLCTrace());  
+    
+    // Sound Tab
+
+    // Security Tab
+    GtkWidget *mediavbox = gtk_vbox_new (FALSE, 2);
+
+    // Security tab title
+    GtkWidget *mediatablabel = gtk_label_new_with_mnemonic (_("_Media"));
+    
+    gtk_notebook_append_page(GTK_NOTEBOOK(notebook1), 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);
     
-    GtkWidget *label12 = gtk_label_new (_("<b>Sound preferences</b>"));
-    gtk_widget_show (label12);
-    gtk_frame_set_label_widget (GTK_FRAME (frame3), label12);
-    gtk_label_set_use_markup (GTK_LABEL (label12), TRUE);
+    prefs->soundToggle = gtk_check_button_new_with_mnemonic ("Use sound 
_handler");
+    gtk_box_pack_start (GTK_BOX(mediavbox), prefs->soundToggle, FALSE, FALSE, 
0);
     
-    GtkWidget *label3 = gtk_label_new (_("Sound"));
-    gtk_widget_show (label3);
-    gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), 
gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 2), label3);
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (prefs->soundToggle), 
rcfile.useSound());
 
-    gtk_widget_show (window1);    
+    gtk_widget_show_all (prefsDialog);    
 }
 
 void

Index: gui/gtksup.h
===================================================================
RCS file: /sources/gnash/gnash/gui/gtksup.h,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -b -r1.58 -r1.59
--- gui/gtksup.h        7 Jan 2008 09:47:29 -0000       1.58
+++ gui/gtksup.h        16 Jan 2008 17:14:04 -0000      1.59
@@ -202,6 +202,31 @@
 
     static gnash::key::code gdk_to_gnash_key(guint key);
     static int gdk_to_gnash_modifier(int state);
+
+    // A struct containing widgets for passing preference 
+    // data from the dialogue   
+    typedef 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 *lcTraceToggle;
+        GtkWidget *solSandbox;
+#ifdef USE_DEBUGGER
+        GtkWidget *DebuggerToggle;
+#endif
+    } prefData;
+    
+    static void updateRC(GtkWidget* widget, gint response, gpointer data);
     static void open_file(GtkWidget* dialog, gpointer data);
 
 };




reply via email to

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