This patch, against 071400 nightly sources, provides
1. A new user preference item: SmartQuotesEnable="1". This item
will eventually control whether smart quote characters are generated
on the fly as a user types.
2. A Unix GUI for turning it on and off. It's a new tab in the
Tools->Options dialog box. Later, I think there will be some
additional items on that tab of that dialog box.
All changes are XP or Unix, tested on Linux.
--
[EMAIL PROTECTED] (WJCarpenter) PGP 0x91865119
38 95 1B 69 C9 C6 3D 25 73 46 32 04 69 D6 ED F3
diff -ru abi-071400-ORIG/src/af/xap/xp/xap_Prefs_SchemeIds.h
abi-071400/src/af/xap/xp/xap_Prefs_SchemeIds.h
--- abi-071400-ORIG/src/af/xap/xp/xap_Prefs_SchemeIds.h Fri Jul 7 16:46:50 2000
+++ abi-071400/src/af/xap/xp/xap_Prefs_SchemeIds.h Fri Jul 14 17:32:05 2000
@@ -63,6 +63,10 @@
#define XAP_PREF_DEFAULT_RemapGlyphsTable
"‘`’'“"”""
/* smart quotes */
+#define XAP_PREF_KEY_SmartQuotesEnable "SmartQuotesEnable"
+/* substitute curly smart quotes on the fly */
+#define XAP_PREF_DEFAULT_SmartQuotesEnable "1"
+
#else /* XAP_PREFS_SCHEMEID_H */
#ifdef dcl
@@ -73,6 +77,8 @@
dcl(RemapGlyphsNoMatterWhat)
dcl(RemapGlyphsDefault)
dcl(RemapGlyphsTable)
+
+dcl(SmartQuotesEnable)
#endif /* dcl */
#endif /* XAP_PREFS_SCHEMEID_H */
diff -ru abi-071400-ORIG/src/wp/ap/unix/ap_UnixDialog_Options.cpp
abi-071400/src/wp/ap/unix/ap_UnixDialog_Options.cpp
--- abi-071400-ORIG/src/wp/ap/unix/ap_UnixDialog_Options.cpp Wed May 10 21:16:58
2000
+++ abi-071400/src/wp/ap/unix/ap_UnixDialog_Options.cpp Fri Jul 14 21:32:15 2000
@@ -188,6 +188,7 @@
GtkWidget *windowOptions;
GtkWidget *notebook1;
+
GtkWidget *tableSpell;
GtkWidget *checkbuttonSpellHideErrors;
GtkWidget *checkbuttonSpellSuggest;
@@ -205,12 +206,18 @@
GtkWidget *listSpellDicts_menu;
GtkWidget *glade_menuitem;
GtkWidget *labelSpell;
+
+ GtkWidget *tableSmartQuotes;
+ GtkWidget *checkbuttonSmartQuotesEnable;
+ GtkWidget *labelSmartQuotes;
+
GtkWidget *tablePreferences;
GtkWidget *checkbuttonPrefsAutoSave;
GtkWidget *label6;
GtkWidget *comboPrefsSchemes;
GtkWidget *comboPrefsSchemesEdit;
GtkWidget *labelPreferences;
+
GtkWidget *hboxView;
GtkWidget *vbox4;
GtkWidget *frame2;
@@ -236,6 +243,7 @@
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (notebook1);
+ // SPELL ////////////////////////////////////////////////////////////////
tableSpell = gtk_table_new (9, 3, FALSE);
gtk_widget_ref (tableSpell);
gtk_object_set_data_full (GTK_OBJECT (windowOptions), "tableSpell", tableSpell,
@@ -376,6 +384,7 @@
gtk_widget_show (labelSpell);
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1),
gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), labelSpell);
+ // PREFERENCES ////////////////////////////////////////////////////////////////
tablePreferences = gtk_table_new (2, 3, FALSE);
gtk_widget_ref (tablePreferences);
gtk_object_set_data_full (GTK_OBJECT (windowOptions), "tablePreferences",
tablePreferences,
@@ -585,6 +594,34 @@
//////////////////////////////////////////////////////////////////////
// END: glade stuff
+
+ // SMART QUOTES
+////////////////////////////////////////////////////////////////
+ tableSmartQuotes = gtk_table_new (2, 3, FALSE);
+ gtk_widget_ref (tableSmartQuotes);
+ gtk_object_set_data_full (GTK_OBJECT (windowOptions), "tableSmartQuotes",
+tableSmartQuotes,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (tableSmartQuotes);
+ gtk_container_add (GTK_CONTAINER (notebook1), tableSmartQuotes);
+ gtk_container_set_border_width (GTK_CONTAINER (tableSmartQuotes), 10);
+
+ checkbuttonSmartQuotesEnable = gtk_check_button_new_with_label
+(pSS->getValue(AP_STRING_ID_DLG_Options_Label_SmartQuotesEnable));
+ gtk_widget_ref (checkbuttonSmartQuotesEnable);
+ gtk_object_set_data_full (GTK_OBJECT (windowOptions),
+"checkbuttonSmartQuotesEnable", checkbuttonSmartQuotesEnable,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (checkbuttonSmartQuotesEnable);
+ gtk_table_attach (GTK_TABLE (tableSmartQuotes), checkbuttonSmartQuotesEnable,
+0, 3, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (0), 0, 0);
+
+ labelSmartQuotes = gtk_label_new
+(pSS->getValue(AP_STRING_ID_DLG_Options_TabLabel_SmartQuotes));
+ gtk_widget_ref (labelSmartQuotes);
+ gtk_object_set_data_full (GTK_OBJECT (windowOptions), "labelSmartQuotes",
+labelSmartQuotes,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (labelSmartQuotes);
+ gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1),
+gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 3), labelSmartQuotes);
+
+ //////////////////////////////////////////////////////////////////
+
m_notebook = notebook1;
m_checkbuttonSpellCheckAsType = checkbuttonSpellCheckAsType;
@@ -600,6 +637,8 @@
m_buttonSpellIgnoreEdit = buttonSpellIgnoreEdit;
m_buttonSpellIgnoreReset = buttonSpellIgnoreReset;
+ m_checkbuttonSmartQuotesEnable = checkbuttonSmartQuotesEnable;
+
m_checkbuttonPrefsAutoSave = checkbuttonPrefsAutoSave;
m_comboPrefsScheme = comboPrefsSchemes;
@@ -840,6 +879,12 @@
break;
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ // smart quotes
+ case id_CHECK_SMART_QUOTES_ENABLE:
+ return m_checkbuttonSmartQuotesEnable;
+ break;
+
+ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// prefs
case id_CHECK_PREFS_AUTO_SAVE:
return m_checkbuttonPrefsAutoSave;
@@ -933,6 +978,8 @@
DEFINE_GET_SET_BOOL(SpellUppercase);
DEFINE_GET_SET_BOOL(SpellNumbers);
DEFINE_GET_SET_BOOL(SpellInternet);
+
+DEFINE_GET_SET_BOOL(SmartQuotesEnable);
DEFINE_GET_SET_BOOL(PrefsAutoSave);
diff -ru abi-071400-ORIG/src/wp/ap/unix/ap_UnixDialog_Options.h
abi-071400/src/wp/ap/unix/ap_UnixDialog_Options.h
--- abi-071400-ORIG/src/wp/ap/unix/ap_UnixDialog_Options.h Wed Apr 5 12:21:53
2000
+++ abi-071400/src/wp/ap/unix/ap_UnixDialog_Options.h Fri Jul 14 17:32:32 2000
@@ -54,6 +54,8 @@
SET_GATHER (SpellNumbers, UT_Bool );
SET_GATHER (SpellInternet, UT_Bool );
+ SET_GATHER (SmartQuotesEnable, UT_Bool );
+
SET_GATHER (PrefsAutoSave, UT_Bool );
SET_GATHER (ViewShowRuler, UT_Bool );
@@ -92,6 +94,8 @@
GtkWidget * m_buttonSpellDictionary;
GtkWidget * m_buttonSpellIgnoreEdit;
GtkWidget * m_buttonSpellIgnoreReset;
+
+ GtkWidget * m_checkbuttonSmartQuotesEnable;
GtkWidget * m_checkbuttonPrefsAutoSave;
GtkWidget * m_comboPrefsScheme;
diff -ru abi-071400-ORIG/src/wp/ap/xp/ap_Dialog_Options.cpp
abi-071400/src/wp/ap/xp/ap_Dialog_Options.cpp
--- abi-071400-ORIG/src/wp/ap/xp/ap_Dialog_Options.cpp Thu May 25 11:52:59 2000
+++ abi-071400/src/wp/ap/xp/ap_Dialog_Options.cpp Fri Jul 14 21:44:17 2000
@@ -101,6 +101,8 @@
Save_Pref_Bool( pPrefsScheme, AP_PREF_KEY_SpellCheckNumbers,
_gatherSpellNumbers() );
Save_Pref_Bool( pPrefsScheme, AP_PREF_KEY_SpellCheckInternet,
_gatherSpellInternet() );
+ Save_Pref_Bool( pPrefsScheme, XAP_PREF_KEY_SmartQuotesEnable,
+_gatherSmartQuotesEnable() );
+
Save_Pref_Bool( pPrefsScheme, AP_PREF_KEY_CursorBlink,
_gatherViewCursorBlink() );
Save_Pref_Bool( pPrefsScheme, AP_PREF_KEY_RulerVisible, _gatherViewShowRuler()
);
Save_Pref_Bool( pPrefsScheme, AP_PREF_KEY_ParaVisible, _gatherViewUnprintable() );
@@ -183,6 +185,10 @@
if (pPrefs->getPrefsValueBool(AP_PREF_KEY_SpellCheckInternet,&b))
_setSpellInternet (b);
+ // ------------ Smart Quotes
+ if (pPrefs->getPrefsValueBool(XAP_PREF_KEY_SmartQuotesEnable,&b))
+ _setSmartQuotesEnable (b);
+
// ------------ Prefs
_setPrefsAutoSave( pPrefs->getAutoSavePrefs() );
diff -ru abi-071400-ORIG/src/wp/ap/xp/ap_Dialog_Options.h
abi-071400/src/wp/ap/xp/ap_Dialog_Options.h
--- abi-071400-ORIG/src/wp/ap/xp/ap_Dialog_Options.h Wed Nov 17 12:21:33 1999
+++ abi-071400/src/wp/ap/xp/ap_Dialog_Options.h Fri Jul 14 21:51:36 2000
@@ -47,6 +47,8 @@
id_BUTTON_DICTIONARY_EDIT, id_BUTTON_IGNORE_RESET,
id_BUTTON_IGNORE_EDIT,
+ id_CHECK_SMART_QUOTES_ENABLE,
+
id_CHECK_PREFS_AUTO_SAVE, id_COMBO_PREFS_SCHEME,
id_CHECK_VIEW_SHOW_RULER, id_LIST_VIEW_RULER_UNITS,
@@ -91,6 +93,8 @@
SET_GATHER (SpellUppercase, UT_Bool);
SET_GATHER (SpellNumbers, UT_Bool);
SET_GATHER (SpellInternet, UT_Bool);
+
+ SET_GATHER (SmartQuotesEnable, UT_Bool);
SET_GATHER (PrefsAutoSave, UT_Bool);
diff -ru abi-071400-ORIG/src/wp/ap/xp/ap_String_Id.h
abi-071400/src/wp/ap/xp/ap_String_Id.h
--- abi-071400-ORIG/src/wp/ap/xp/ap_String_Id.h Sun Jul 9 16:28:31 2000
+++ abi-071400/src/wp/ap/xp/ap_String_Id.h Fri Jul 14 17:32:57 2000
@@ -164,6 +164,7 @@
dcl(DLG_Options_OptionsTitle, "Options")
dcl(DLG_Options_TabLabel_Spelling, "Spelling")
+dcl(DLG_Options_TabLabel_SmartQuotes, "Smart Quotes")
dcl(DLG_Options_TabLabel_Preferences, "Preference Schemes")
dcl(DLG_Options_TabLabel_View, "View")
@@ -183,6 +184,8 @@
dcl(DLG_Options_Btn_CustomDict, "&Dictionary...")
dcl(DLG_Options_Btn_IgnoreReset, "&Reset")
dcl(DLG_Options_Btn_IgnoreEdit, "&Edit")
+
+dcl(DLG_Options_Label_SmartQuotesEnable,"Enable smart quotes")
dcl(DLG_Options_Label_PrefsAutoSave, "&Automatically save this Scheme")
dcl(DLG_Options_Label_PrefsCurrentScheme, "Current Preferences Scheme")