Re: patch - options dialog

Stephen Hack (shack@uiuc.edu)
Thu, 14 Oct 1999 02:00:31 -0500


--zhXaljGHf11kAtnf
Content-Type: text/plain; charset=us-ascii

Arghh... I always write a nice long email just so I can forget to attach the
files....

Here they are.

-shack

On Thu, Oct 14, 1999 at 01:57:30AM -0500, Stephen Hack wrote:
> Well, I have a rough working copy of the Options dialog.
>
> Attachments
> options.diff a cvs diff -c >options.diff from the abi/src directory
> options.tar all the new files to be added from the abi/src directory
>
> What this patch currently can do:
> * Pull up the options dialog
> * Allow you to change the Auto Check as you Type options
> - all the other check boxes do not do anything yet
> * Save the auto spell check in the PrefSchemes. If there is a current
> scheme besides _builtin_, then it will add it, otherwise, it'll create
> a new one (user_prefs)
>
> What it does NOT do, yet:
> * Actually change the auto check functionallity, but it will save it to
> the preferences file for the next time that Abiword is loaded
> * I don't have access to a Win32/BeOS machine so I can't test (compile)
> the win32 code. I don't know if it will work, but it *should*
>
> Notes:
> Currently, I force a save of the preferences. (if not autosave, then save
> now) Should not be in there in the long run, but should add the
> options|Preferences tab soon (probably next)
>
> Todo:
> * Add a call back feature to the preferences so the appropriate sections
> of code can be notified when a preference has changed
> * Add a new tab page -
> Spelling
> SpellCheckDirectory
> SpellCheckWordList
> undo Ignore/Un-Ignore
> re-Check now
> View
> Ruler
> Units
> Toolbars ?
> Preferences
> Auto Save
> Save Now
> Toolbar (or should this be like the toolbars|customize... dlg?
> Apperance
> LabelSet ?
> Layouts ?
>
>
> -shack
>
> --
> Less research... More sleep...

--zhXaljGHf11kAtnf
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="options.diff"

? Linux_2.2.12-7_i386_OBJ
? Linux_2.2.12-7_i386_DBG
? mktags
? options.diff
? wp/ap/beos/ap_BeOSDialog_Options.h
? wp/ap/beos/ap_BeOSDialog_Options.cpp
? wp/ap/unix/ap_UnixDialog_Options.h
? wp/ap/unix/ap_UnixDialog_Options.cpp
? wp/ap/win/ap_Win32Dialog_Options.h
? wp/ap/win/ap_Win32Dialog_Options.cpp
? wp/ap/xp/ap_Dialog_Options.h
? wp/ap/xp/ap_Dialog_Options.cpp
Index: wp/ap/Makefile
===================================================================
RCS file: /u2/cvsroot/abi/src/wp/ap/Makefile,v
retrieving revision 1.51
diff -c -r1.51 Makefile
*** Makefile 1999/10/04 19:07:37 1.51
--- Makefile 1999/10/14 06:16:42
***************
*** 30,35 ****
--- 30,36 ----
$(OBJDIR)/ap_$(ABI_FE)Clipboard.$(OBJ_SUFFIX) \
$(OBJDIR)/ap_$(ABI_FE)DialogFactory.$(OBJ_SUFFIX) \
$(OBJDIR)/ap_$(ABI_FE)Dialog_Break.$(OBJ_SUFFIX) \
+ $(OBJDIR)/ap_$(ABI_FE)Dialog_Options.$(OBJ_SUFFIX) \
$(OBJDIR)/ap_$(ABI_FE)Dialog_Paragraph.$(OBJ_SUFFIX) \
$(OBJDIR)/ap_$(ABI_FE)Dialog_Replace.$(OBJ_SUFFIX) \
$(OBJDIR)/ap_$(ABI_FE)Dialog_Spell.$(OBJ_SUFFIX) \
***************
*** 52,57 ****
--- 53,59 ----

OBJS= $(PLATFORM_OBJS) \
$(OBJDIR)/ap_Dialog_Break.$(OBJ_SUFFIX) \
+ $(OBJDIR)/ap_Dialog_Options.$(OBJ_SUFFIX) \
$(OBJDIR)/ap_Dialog_Paragraph.$(OBJ_SUFFIX) \
$(OBJDIR)/ap_Dialog_Replace.$(OBJ_SUFFIX) \
$(OBJDIR)/ap_Dialog_Spell.$(OBJ_SUFFIX) \
Index: wp/ap/unix/Makefile
===================================================================
RCS file: /u2/cvsroot/abi/src/wp/ap/unix/Makefile,v
retrieving revision 1.28
diff -c -r1.28 Makefile
*** Makefile 1999/10/04 19:07:39 1.28
--- Makefile 1999/10/14 06:16:42
***************
*** 28,33 ****
--- 28,34 ----
ap_$(ABI_FE)Clipboard.cpp \
ap_$(ABI_FE)DialogFactory.cpp \
ap_$(ABI_FE)Dialog_Break.cpp \
+ ap_$(ABI_FE)Dialog_Options.cpp \
ap_$(ABI_FE)Dialog_Paragraph.cpp \
ap_$(ABI_FE)Dialog_Replace.cpp \
ap_$(ABI_FE)Dialog_Spell.cpp \
Index: wp/ap/unix/ap_UnixDialog_All.h
===================================================================
RCS file: /u2/cvsroot/abi/src/wp/ap/unix/ap_UnixDialog_All.h,v
retrieving revision 1.19
diff -c -r1.19 ap_UnixDialog_All.h
*** ap_UnixDialog_All.h 1999/10/04 19:07:39 1.19
--- ap_UnixDialog_All.h 1999/10/14 06:16:42
***************
*** 45,50 ****
--- 45,51 ----
# include "ap_UnixDialog_Replace.h"
# include "ap_UnixDialog_Break.h"
# include "ap_UnixDialog_Paragraph.h"
+ # include "ap_UnixDialog_Options.h"
# include "ap_UnixDialog_Spell.h"

// ... add new dialogs here ...
***************
*** 66,71 ****
--- 67,73 ----
DeclareDialog(AP_DIALOG_ID_BREAK, AP_UnixDialog_Break)
DeclareDialog(AP_DIALOG_ID_SPELL, AP_UnixDialog_Spell)
DeclareDialog(AP_DIALOG_ID_PARAGRAPH, AP_UnixDialog_Paragraph)
+ DeclareDialog(AP_DIALOG_ID_OPTIONS, AP_UnixDialog_Options)

// ... also add new dialogs here ...

Index: wp/ap/win/Makefile
===================================================================
RCS file: /u2/cvsroot/abi/src/wp/ap/win/Makefile,v
retrieving revision 1.27
diff -c -r1.27 Makefile
*** Makefile 1999/10/04 19:07:40 1.27
--- Makefile 1999/10/14 06:16:42
***************
*** 29,34 ****
--- 29,35 ----
ap_$(ABI_FE)DialogFactory.cpp \
ap_$(ABI_FE)Dialog_Break.cpp \
ap_$(ABI_FE)Dialog_Replace.cpp \
+ ap_$(ABI_FE)Dialog_Options.cpp \
ap_$(ABI_FE)Dialog_Paragraph.cpp \
ap_$(ABI_FE)Dialog_Spell.cpp \
ap_$(ABI_FE)Frame.cpp \
Index: wp/ap/win/ap_Win32Dialog_All.h
===================================================================
RCS file: /u2/cvsroot/abi/src/wp/ap/win/ap_Win32Dialog_All.h,v
retrieving revision 1.18
diff -c -r1.18 ap_Win32Dialog_All.h
*** ap_Win32Dialog_All.h 1999/10/05 16:17:30 1.18
--- ap_Win32Dialog_All.h 1999/10/14 06:16:42
***************
*** 40,45 ****
--- 40,46 ----

# include "ap_Win32Dialog_Replace.h"
# include "ap_Win32Dialog_Break.h"
+ # include "ap_Win32Dialog_Options.h"
# include "ap_Win32Dialog_Paragraph.h"
# include "ap_Win32Dialog_Spell.h"

***************
*** 61,66 ****
--- 62,68 ----
DeclareDialog(AP_DIALOG_ID_FIND, AP_Win32Dialog_Replace)
DeclareDialog(AP_DIALOG_ID_BREAK, AP_Win32Dialog_Break)
DeclareDialog(AP_DIALOG_ID_SPELL, AP_Win32Dialog_Spell)
+ DeclareDialog(AP_DIALOG_ID_OPTIONS, AP_Win32Dialog_Options)
DeclareDialog(AP_DIALOG_ID_PARAGRAPH, AP_Win32Dialog_Paragraph)

// ... also add new dialogs here ...
Index: wp/ap/xp/Makefile
===================================================================
RCS file: /u2/cvsroot/abi/src/wp/ap/xp/Makefile,v
retrieving revision 1.45
diff -c -r1.45 Makefile
*** Makefile 1999/10/04 19:07:41 1.45
--- Makefile 1999/10/14 06:16:42
***************
*** 26,31 ****
--- 26,32 ----

CPPSRCS= ap_Dialog_Break.cpp \
ap_Dialog_Goto.cpp \
+ ap_Dialog_Options.cpp \
ap_Dialog_Paragraph.cpp \
ap_Dialog_Replace.cpp \
ap_Dialog_Spell.cpp \
Index: wp/ap/xp/ap_Dialog_Id.h
===================================================================
RCS file: /u2/cvsroot/abi/src/wp/ap/xp/ap_Dialog_Id.h,v
retrieving revision 1.11
diff -c -r1.11 ap_Dialog_Id.h
*** ap_Dialog_Id.h 1999/10/04 19:07:41 1.11
--- ap_Dialog_Id.h 1999/10/14 06:16:42
***************
*** 36,41 ****
--- 36,42 ----
AP_DIALOG_ID_BREAK, /* insert page, column, section, etc. breaks */
AP_DIALOG_ID_SPELL, /* spell check */
AP_DIALOG_ID_PARAGRAPH, /* paragraph settings dialog */
+ AP_DIALOG_ID_OPTIONS, /* edit|options settings dialog */
/* ... add others here ... */

AP_DIALOG_ID__LAST__ /* must be last */
Index: wp/ap/xp/ap_EditMethods.cpp
===================================================================
RCS file: /u2/cvsroot/abi/src/wp/ap/xp/ap_EditMethods.cpp,v
retrieving revision 1.151
diff -c -r1.151 ap_EditMethods.cpp
*** ap_EditMethods.cpp 1999/10/14 01:50:46 1.151
--- ap_EditMethods.cpp 1999/10/14 06:16:43
***************
*** 42,47 ****
--- 42,48 ----
#include "ap_Dialog_Replace.h"
#include "ap_Dialog_Goto.h"
#include "ap_Dialog_Break.h"
+ #include "ap_Dialog_Options.h"
#include "ap_Dialog_Paragraph.h"
#include "ap_Dialog_Spell.h"

***************
*** 3251,3257 ****
--- 3252,3297 ----

}

+ static UT_Bool s_doOptionsDlg(FV_View * pView)
+ {
+ XAP_Frame * pFrame = (XAP_Frame *) pView->getParentData();
+ UT_ASSERT(pFrame);
+
+ pFrame->raise();
+
+ XAP_DialogFactory * pDialogFactory
+ = (XAP_DialogFactory *)(pFrame->getDialogFactory());
+
+ AP_Dialog_Options * pDialog
+ = (AP_Dialog_Options *)(pDialogFactory->requestDialog(AP_DIALOG_ID_OPTIONS));
+ UT_ASSERT(pDialog);

+ // run the dialog
+ pDialog->runModal(pFrame);
+
+ // get the dialog answer
+ AP_Dialog_Options::tAnswer answer = pDialog->getAnswer();
+
+ switch (answer)
+ {
+ case AP_Dialog_Options::a_OK:
+
+ break;
+
+ case AP_Dialog_Options::a_CANCEL:
+ // do nothing
+ break;
+ default:
+ UT_ASSERT(UT_SHOULD_NOT_HAPPEN);
+ }
+
+ pDialogFactory->releaseDialog(pDialog);
+
+ return UT_TRUE;
+ }
+
+
+
/*****************************************************************/

Defun1(dlgFont)
***************
*** 3612,3622 ****

Defun1(dlgOptions)
{
! XAP_Frame * pFrame = (XAP_Frame *) pAV_View->getParentData();
! UT_ASSERT(pFrame);
!
! s_TellNotImplemented(pFrame, "Options dialog", __LINE__);
! return UT_TRUE;
}


--- 3652,3660 ----

Defun1(dlgOptions)
{
! ABIWORD_VIEW;
!
! return s_doOptionsDlg(pView);
}


--zhXaljGHf11kAtnf
Content-Type: application/x-tar
Content-Disposition: attachment; filename="options.tar"
Content-Transfer-Encoding: quoted-printable

wp/ap/beos/ap_BeOSDialog_Options.h=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=000100664=000001025=000000764=0000000006560=0007001271031=00016254=
=00 0=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00ustar =00shack=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00shack=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00/* AbiWord=
=0A * Copyright (C) 1998 AbiSource, Inc.=0A * =0A * This program is free so=
ftware; you can redistribute it and/or=0A * modify it under the terms of th=
e GNU General Public License=0A * as published by the Free Software Foundat=
ion; either version 2=0A * of the License, or (at your option) any later ve=
rsion.=0A * =0A * This program is distributed in the hope that it will be u=
seful,=0A * but WITHOUT ANY WARRANTY; without even the implied warranty of=
=0A * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the=0A * GN=
U General Public License for more details.=0A * =0A * You should have recei=
ved a copy of the GNU General Public License=0A * along with this program; =
if not, write to the Free Software=0A * Foundation, Inc., 59 Temple Place -=
Suite 330, Boston, MA =0A * 02111-1307, USA.=0A */=0A=0A#ifndef AP_WIN32D=
IALOG_OPTIONS_H=0A#define AP_WIN32DIALOG_OPTIONS_H=0A=0A#include "xap_BeOSF=
ontManager.h"=0A=0A#include "ap_Dialog_Options.h"=0A=0Aclass XAP_BeOSFrame;=
=0A=0A/*****************************************************************/=
=0A=0Aclass AP_BeOSDialog_Options: public AP_Dialog_Options=0A{=0Apublic:=
=0A AP_BeOSDialog_Options(XAP_DialogFactory * pDlgFactory, XAP_Dialog_Id id=
);=0A virtual ~AP_BeOSDialog_Options(void);=0A=0A virtual void runModal(X=
AP_Frame * pFrame);=0A=0A static XAP_Dialog * static_constructor(XAP_Dialo=
gFactory *, XAP_Dialog_Id id);=0A=0A // callbacks can fire these events=0A =
virtual void event_OK(void);=0A virtual void event_Cancel(void);=0A virtual=
void event_WindowDelete(void);=0A=0A // Indents and Spacing page=0A// virt=
ual void event_AlignmentChanged(void);=0A=0A // actions for all indent-rela=
ted spin-button changes are the same=0A// virtual void event_UpdateEntry(Gt=
kWidget * widget);=0A// virtual void event_IndentSpinButtonChanged(GtkWidge=
t * spinbutton, GtkAdjustment * adj);=0A// virtual void event_SpecialIndent=
ListChanged(void);=0A=0A // actions for all spacing-related spin-button cha=
nges are the same=0A// virtual void event_SpacingSpinButtonChanged(GtkWidge=
t * spinbutton, GtkAdjustment * adj);=0A// virtual void event_SpecialSpacin=
gListChanged(void);=0A=0A // Line and Page Breaks=0A// virtual void event_W=
idowOrphanControlToggled(void);=0A// virtual void event_KeepLinesTogetherTo=
ggled(void);=0A// virtual void event_KeepWithNextToggled(void);=0A// virtua=
l void event_PageBreakBeforeToggled(void);=0A=0A// virtual void event_Suppr=
essLineNumbersToggled(void);=0A// virtual void event_NoHyphenateToggled(voi=
d);=0A =0A=0A protected:=0A=0A // we implement these so the XP dialog can s=
et/grab our data=0A =0A virtual UT_Bool _gatherSpellCheckAsType(void);=0A=
virtual void _setSpellCheckAsType(UT_Bool b);=0A virtual UT_Bool _gath=
erSpellHideErrors(void);=0A virtual void _setSpellHideErrors(UT_Bool b);=
=0A virtual UT_Bool _gatherSpellSuggest(void);=0A virtual void _setSpel=
lSuggest(UT_Bool b);=0A virtual UT_Bool _gatherSpellMainOnly(void);=0A vi=
rtual void _setSpellMainOnly(UT_Bool b);=0A virtual UT_Bool _gatherSpel=
lUppercase(void);=0A virtual void _setSpellUppercase(UT_Bool b);=0A virtu=
al UT_Bool _gatherSpellNumbers(void);=0A virtual void _setSpellNumbers(=
UT_Bool b);=0A virtual UT_Bool _gatherSpellInternet(void);=0A virtual voi=
d _setSpellInternet(UT_Bool b);=0A =0A protected:=0A //GR_BeOSGraphics * =
m_unixGraphics;=0A =0A // private construction functions=0A /*GtkWidget *=
_constructWindow(void);=0A void _populateWindowData(void);=0A void _enab=
lePercentSpin(UT_Bool enable);=0A */=0A=0A // pointers to widgets we need t=
o query/set=0A // there are a ton of them in this dialog=0A=0A};=0A=0A#endi=
f /* XAP_WIN32DIALOG_PARAGRAPH_H */=0A=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00wp/ap/beos/ap_BeOSDialog_Options.cpp=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=000100664=000001025=000000764=0000000025560=000700127=
1010=00016605=00 0=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00ustar =00shack=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00shack=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
/* AbiWord=0A * Copyright (C) 1998 AbiSource, Inc.=0A * =0A * This program =
is free software; you can redistribute it and/or=0A * modify it under the t=
erms of the GNU General Public License=0A * as published by the Free Softwa=
re Foundation; either version 2=0A * of the License, or (at your option) an=
y later version.=0A * =0A * This program is distributed in the hope that it=
will be useful,=0A * but WITHOUT ANY WARRANTY; without even the implied wa=
rranty of=0A * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See th=
e=0A * GNU General Public License for more details.=0A * =0A * You should h=
ave received a copy of the GNU General Public License=0A * along with this =
program; if not, write to the Free Software=0A * Foundation, Inc., 59 Templ=
e Place - Suite 330, Boston, MA =0A * 02111-1307, USA.=0A */=0A=0A#include=
"ut_types.h"=0A#include "ut_string.h"=0A#include "ut_assert.h"=0A#include =
"ut_debugmsg.h"=0A=0A// This header defines some functions for BeOS dialogs=
,=0A// like centering them, measuring them, etc.=0A#include "ut_dialogHelpe=
r.h"=0A=0A#include "gr_BeOSGraphics.h"=0A=0A#include "xap_App.h"=0A#include=
"xap_BeOSApp.h"=0A#include "xap_BeOSFrame.h"=0A#include "xap_Prefs.h"=0A=
=0A#include "ap_Dialog_Id.h"=0A#include "ap_Prefs_SchemeIds.h"=0A=0A#includ=
e "ap_Strings.h"=0A=0A#include "ap_BeOSDialog_Options.h"=0A=0A/************=
*****************************************************/=0A=0A#define WIDGET_=
DIALOG_TAG "dialog"=0A=0A/*************************************************=
****************/=0A=0AXAP_Dialog * AP_BeOSDialog_Options::static_construct=
or(XAP_DialogFactory * pFactory,=0A =
XAP_Dialog_Id id)=0A{=0A AP_BeOSDialog_Options * p =3D =
new AP_BeOSDialog_Options(pFactory,id);=0A return p;=0A}=0A=0AAP_BeOSDia=
log_Options::AP_BeOSDialog_Options(XAP_DialogFactory * pDlgFactory,=0A =
XAP_Dialog_Id id)=0A : AP_Di=
alog_Options(pDlgFactory,id)=0A{=0A#if 0=0A XAP_Prefs *prefs =3D m_pApp->ge=
tPrefs();=0A UT_ASSERT(prefs);=0A UT_DEBUGMSG(("AP_BeOSDialog_Options::AP_B=
eOSDialog_Options[%s:%d]", __FILE__, __LINE__));=0A UT_DEBUGMSG((" curre=
nt pref : %s",=0A prefs->getCurrentScheme()->getSchemeName()) );=0A=0A UT_=
Bool b =3D prefs->savePrefsFile();=0A UT_DEBUGMSG((" prefs saved (%d) in=
%s", b, prefs->getPrefsPathname() ));=0A=0A UT_uint32 i;=0A XAP_PrefsSchem=
e *ps;=0A for ( i =3D 0; (ps =3D prefs->getNthScheme(i)) !=3D 0; i++ ) {=0A=
UT_DEBUGMSG((" %d [%s]", i, ps->getSchemeName() ));=0A =0A XML_Char c=
onst *pszKey, *pszValue;=0A for ( UT_uint32 j =3D 0; ps->getNthValue(j, &p=
szKey, &pszValue ); j++ ) {=0A UT_DEBUGMSG((" %x %-30s : %s", j, p=
szKey, pszValue ));=0A }=0A }=0A#endif=0A}=0A=0AAP_BeOSDialog_Options::~AP=
_BeOSDialog_Options(void)=0A{=0A}=0A=0A/***********************************=
******************************/=0A=0A// sample callback function=0Astatic v=
oid s_ok_clicked(GtkWidget * widget, AP_BeOSDialog_Options * dlg)=0A{ UT_AS=
SERT(widget && dlg); dlg->event_OK(); }=0A=0Astatic void s_cancel_clicked(G=
tkWidget * widget, AP_BeOSDialog_Options * dlg)=0A{ UT_ASSERT(widget && dlg=
); dlg->event_Cancel(); }=0A=0Astatic void s_delete_clicked(GtkWidget * /* =
widget */,=0A gpointer /* data */,=0A =
AP_BeOSDialog_Options * dlg)=0A{ UT_ASSERT(dlg); dlg->ev=
ent_WindowDelete(); }=0A=0A// toggle buttons=0A#if 0=0Astatic void s_check_=
widoworphancontrol_toggled(GtkWidget * widget, AP_BeOSDialog_Options * dlg)=
=0A{ UT_ASSERT(widget && dlg); dlg->event_WidowOrphanControlToggled(); }=0A=
=0Astatic void s_check_keeplinestogether_toggled(GtkWidget * widget, AP_BeO=
SDialog_Options * dlg)=0A{ UT_ASSERT(widget && dlg); dlg->event_KeepLinesTo=
getherToggled(); }=0A=0Astatic void s_check_keepwithnext_toggled(GtkWidget =
* widget, AP_BeOSDialog_Options * dlg)=0A{ UT_ASSERT(widget && dlg); dlg->e=
vent_KeepWithNextToggled(); }=0A=0Astatic void s_check_pagebreakbefore_togg=
led(GtkWidget * widget, AP_BeOSDialog_Options * dlg)=0A{ UT_ASSERT(widget &=
& dlg); dlg->event_PageBreakBeforeToggled(); }=0A=0Astatic void s_check_sup=
presslinenumbers_toggled(GtkWidget * widget, AP_BeOSDialog_Options * dlg)=
=0A{ UT_ASSERT(widget && dlg); dlg->event_SuppressLineNumbersToggled(); }=
=0A=0Astatic void s_check_nohyphenate_toggled(GtkWidget * widget, AP_BeOSDi=
alog_Options * dlg)=0A{ UT_ASSERT(widget && dlg); dlg->event_NoHyphenateTog=
gled(); }=0A#endif=0A=0A// preview drawing area=0A=0A/*********************=
********************************************/=0A=0Avoid AP_BeOSDialog_Optio=
ns::runModal(XAP_Frame * pFrame)=0A{=0A#if 0=0A // Build the window's wi=
dgets and arrange them=0A GtkWidget * mainWindow =3D _constructWindow();=
=0A UT_ASSERT(mainWindow);=0A=0A // Populate the window's data items=
=0A _populateWindowData();=0A=0A // To center the dialog, we need the=
frame of its parent.=0A XAP_BeOSFrame * pBeOSFrame =3D static_cast<XAP_=
BeOSFrame *>(pFrame);=0A UT_ASSERT(pBeOSFrame);=0A =0A // Get the =
GtkWindow of the parent frame=0A GtkWidget * parentWindow =3D pBeOSFrame=
->getTopLevelWindow();=0A UT_ASSERT(parentWindow);=0A =0A // Cente=
r our new dialog in its parent and make it a transient=0A // so it won't=
get lost underneath=0A centerDialog(parentWindow, mainWindow);=0A gt=
k_window_set_transient_for(GTK_WINDOW(mainWindow), GTK_WINDOW(parentWindow)=
);=0A=0A // Show the top level dialog,=0A gtk_widget_show(mainWindow)=
;=0A=0A // Make it modal, and stick it up top=0A gtk_grab_add(mainWin=
dow);=0A=0A // Run into the GTK event loop for this window.=0A gtk_ma=
in();=0A=0A _storeWindowData();=0A =0A gtk_widget_destroy(mainWind=
ow);=0A#endif=0A}=0A=0Avoid AP_BeOSDialog_Options::event_OK(void)=0A{=0A =
m_answer =3D AP_Dialog_Options::a_OK;=0A// gtk_main_quit();=0A}=0A=0Avo=
id AP_BeOSDialog_Options::event_Cancel(void)=0A{=0A m_answer =3D AP_Dial=
og_Options::a_CANCEL;=0A// gtk_main_quit();=0A}=0A=0Avoid AP_BeOSDialog_=
Options::event_WindowDelete(void)=0A{=0A m_answer =3D AP_Dialog_Options:=
:a_CANCEL; =0A// gtk_main_quit();=0A}=0A=0A/*************************=
***************/=0A=0A// Alignment methods=0A=0A//void AP_BeOSDialog_Option=
s::event_AlignmentChanged(void) { }=0A=0A/*********************************=
*******/=0A=0A// generic methods for spin buttons=0A#if 0=0Avoid AP_BeOSDia=
log_Options::event_UpdateEntry(GtkWidget * widget)=0A{=0A gchar * oldtex=
t =3D gtk_entry_get_text(GTK_ENTRY(widget));=0A=0A XML_Char * newtext =
=3D _filterUserInput((XML_Char *) oldtext);=0A=0A // we have to protect =
this section with a lock, so that updating=0A // the text doesn't trigge=
r this same event=0A {=0A gtk_object_set_data(GTK_OBJECT(widget),=
"updatelock", (void *) TRUE);=0A =0A if ( ((gboolean) gtk_object=
_get_data(GTK_OBJECT(widget), "updatelock")) =3D=3D FALSE)=0A gt=
k_entry_set_text(GTK_ENTRY(widget), (const gchar *) newtext);=0A=0A =
gtk_object_set_data(GTK_OBJECT(widget), "updatelock", (void *) FALSE);=0A =
}=0A}=0A#endif=0A=0A#if 0=0Avoid AP_BeOSDialog_Options::event_UnitSpinBut=
tonChanged(GtkWidget * spinbutton, GtkAdjustment * adj)=0A{=0A UT_ASSERT=
(spinbutton && adj);=0A =0A const char * newvalue =3D=0A UT_co=
nvertToDimensionString(m_dim, (double) adj->value, ".1");=0A=0A UT_ASSER=
T(newvalue);=0A=0A GtkSpinButton * sb =3D GTK_SPIN_BUTTON(spinbutton);=
=0A=0A GtkEntry * entry =3D & sb->entry;=0A =0A gtk_entry_set_text=
(entry, newvalue);=0A}=0A=0Avoid AP_BeOSDialog_Options::event_UnitlessSpinB=
uttonChanged(GtkWidget * spinbutton, GtkAdjustment * adj)=0A{=0A UT_ASSE=
RT(spinbutton && adj);=0A =0A const char * newvalue =3D=0A UT_=
convertToDimensionString(m_dim, (double) adj->value, ".1");=0A=0A UT_ASS=
ERT(newvalue);=0A=0A GtkSpinButton * sb =3D GTK_SPIN_BUTTON(spinbutton);=
=0A=0A GtkEntry * entry =3D & sb->entry;=0A =0A gtk_entry_set_text=
(entry, newvalue);=0A}=0A#endif=0A=0A/*************************************=
***/=0A=0A/****************************************************************=
*/=0A=0A#if 0=0A=0AAP_Dialog_Options::tAlignment AP_BeOSDialog_Options::_ga=
therAlignmentType(void) {}=0Avoid AP_BeOSDialog_Options::_setAlignmentType(=
AP_Dialog_Options::tAlignment alignment) {}=0AAP_Dialog_Options::tSpecialIn=
dent AP_BeOSDialog_Options::_gatherSpecialIndentType(void) {}=0Avoid AP_BeO=
SDialog_Options::_setSpecialIndentType(AP_Dialog_Options::tSpecialIndent in=
dent) {}=0AAP_Dialog_Options::tLineSpacing AP_BeOSDialog_Options::_gatherLi=
neSpacingType(void) {}=0Avoid AP_BeOSDialog_Options::_setLineSpacingType(AP=
_Dialog_Options::tLineSpacing spacing) {}=0A =0Aconst XML_Char * AP_B=
eOSDialog_Options::_gatherLeftIndent(void) {}=0Avoid AP_BeOS=
Dialog_Options::_setLeftIndent(const XML_Char * indent) {}=0Aconst XML_Char=
* AP_BeOSDialog_Options::_gatherRightIndent(void) {}=0Avoid =
AP_BeOSDialog_Options::_setRightIndent(const XML_Char * indent) {}=0Aco=
nst XML_Char * AP_BeOSDialog_Options::_gatherSpecialIndent(void) {}=0Avo=
id AP_BeOSDialog_Options::_setSpecialIndent(const XML_Char *=
indent) {}=0A =0Aconst XML_Char * AP_BeOSDialog_Options::_gatherBefo=
reSpacing(void) {}=0Avoid AP_BeOSDialog_Options::_setBeforeS=
pacing(const XML_Char * spacing) {}=0Aconst XML_Char * AP_BeOSDialog_Opt=
ions::_gatherAfterSpacing(void) {}=0Avoid AP_BeOSDialog_Opti=
ons::_setAfterSpacing(const XML_Char * spacing) {}=0Aconst XML_Char * AP=
_BeOSDialog_Options::_gatherSpecialSpacing(void) {} =0Avoid =
AP_BeOSDialog_Options::_setSpecialSpacing(const XML_Char * spacing) {}=
=0A =0AUT_Bool AP_BeOSDialog_Options::_gatherWidowOrphanC=
ontrol(void) {}=0Avoid AP_BeOSDialog_Options::_setWidowOrpha=
nControl(UT_Bool b) {}=0AUT_Bool AP_BeOSDialog_Options::_gat=
herKeepLinesTogether(void) {}=0Avoid AP_BeOSDialog_Options::=
_setKeepLinesTogether(UT_Bool b) {}=0AUT_Bool AP_BeOSDialog_=
Options::_gatherKeepWithNext(void) {}=0Avoid AP_BeOSDialog_O=
ptions::_setKeepWithNext(UT_Bool b) {}=0AUT_Bool AP_BeOSDial=
og_Options::_gatherSuppressLineNumbers(void) {}=0Avoid AP_Be=
OSDialog_Options::_setSuppressLineNumbers(UT_Bool b) {}=0AUT_Bool =
AP_BeOSDialog_Options::_gatherNoHyphenate(void) {}=0Avoid =
AP_BeOSDialog_Options::_setNoHyphenate(UT_Bool b) {}=0A=0A#endif=0A=0A/=
*****************************************************************/=0A=0A/*=
=0AGtkWidget* AP_BeOSDialog_Options::_constructWindow ()=0A{=0A}=0A*/=0A=0A=
UT_Bool AP_BeOSDialog_Options::_gatherSpellCheckAsType(void) { return U=
T_TRUE; }=0Avoid AP_BeOSDialog_Options::_setSpellCheckAsType(UT_Bool=
b) { b =3D b; }=0AUT_Bool AP_BeOSDialog_Options::_gatherSpellHideError=
s(void) { return UT_TRUE; }=0Avoid AP_BeOSDialog_Options::_setSpellH=
ideErrors(UT_Bool b) { b =3D b; }=0AUT_Bool AP_BeOSDialog_Options::_gat=
herSpellSuggest(void) { return UT_TRUE; }=0Avoid AP_BeOSDialog_Opti=
ons::_setSpellSuggest(UT_Bool b) { b =3D b; }=0AUT_Bool AP_BeOSDialog_=
Options::_gatherSpellMainOnly(void) { return UT_TRUE; }=0Avoid AP_B=
eOSDialog_Options::_setSpellMainOnly(UT_Bool b) { b =3D b; }=0AUT_Bool =
AP_BeOSDialog_Options::_gatherSpellUppercase(void) { return UT_TRUE; }=0Av=
oid AP_BeOSDialog_Options::_setSpellUppercase(UT_Bool b) { b =3D b; =
}=0AUT_Bool AP_BeOSDialog_Options::_gatherSpellNumbers(void) { return =
UT_TRUE; }=0Avoid AP_BeOSDialog_Options::_setSpellNumbers(UT_Bool b)=
{ b =3D b; }=0AUT_Bool AP_BeOSDialog_Options::_gatherSpellInternet(vo=
id) { return UT_TRUE; }=0Avoid AP_BeOSDialog_Options::_setSpellInte=
rnet(UT_Bool b) { b =3D b; }=0A=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00wp/ap/unix/ap_UnixDialog_Options.h=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=000100664=000001025=000000764=0000000007535=000700126=
6134=00016455=00 0=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00ustar =00shack=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00shack=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
/* AbiWord=0A * Copyright (C) 1998 AbiSource, Inc.=0A * =0A * This program =
is free software; you can redistribute it and/or=0A * modify it under the t=
erms of the GNU General Public License=0A * as published by the Free Softwa=
re Foundation; either version 2=0A * of the License, or (at your option) an=
y later version.=0A * =0A * This program is distributed in the hope that it=
will be useful,=0A * but WITHOUT ANY WARRANTY; without even the implied wa=
rranty of=0A * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See th=
e=0A * GNU General Public License for more details.=0A * =0A * You should h=
ave received a copy of the GNU General Public License=0A * along with this =
program; if not, write to the Free Software=0A * Foundation, Inc., 59 Templ=
e Place - Suite 330, Boston, MA =0A * 02111-1307, USA.=0A */=0A=0A#ifndef =
AP_UNIXDIALOG_OPTIONS_H=0A#define AP_UNIXDIALOG_OPTIONS_H=0A=0A#include "xa=
p_UnixFontManager.h"=0A=0A#include "ap_Dialog_Options.h"=0A=0Aclass XAP_Uni=
xFrame;=0A=0A/*************************************************************=
****/=0A=0Aclass AP_UnixDialog_Options: public AP_Dialog_Options=0A{=0Apubl=
ic:=0A AP_UnixDialog_Options(XAP_DialogFactory * pDlgFactory, XAP_Dialog_Id=
id);=0A virtual ~AP_UnixDialog_Options(void);=0A=0A virtual void runModa=
l(XAP_Frame * pFrame);=0A=0A static XAP_Dialog * static_constructor(XAP_Di=
alogFactory *, XAP_Dialog_Id id);=0A=0A // callbacks can fire these events=
=0A virtual void event_OK(void);=0A virtual void event_Cancel(void);=0A vir=
tual void event_WindowDelete(void);=0A=0A // Indents and Spacing page=0A// =
virtual void event_AlignmentChanged(void);=0A=0A // actions for all indent-=
related spin-button changes are the same=0A// virtual void event_UpdateEntr=
y(GtkWidget * widget);=0A// virtual void event_IndentSpinButtonChanged(GtkW=
idget * spinbutton, GtkAdjustment * adj);=0A// virtual void event_SpecialIn=
dentListChanged(void);=0A=0A // actions for all spacing-related spin-button=
changes are the same=0A// virtual void event_SpacingSpinButtonChanged(GtkW=
idget * spinbutton, GtkAdjustment * adj);=0A// virtual void event_SpecialSp=
acingListChanged(void);=0A=0A // Line and Page Breaks=0A// virtual void eve=
nt_WidowOrphanControlToggled(void);=0A// virtual void event_KeepLinesTogeth=
erToggled(void);=0A// virtual void event_KeepWithNextToggled(void);=0A// vi=
rtual void event_PageBreakBeforeToggled(void);=0A=0A// virtual void event_S=
uppressLineNumbersToggled(void);=0A// virtual void event_NoHyphenateToggled=
(void);=0A =0A=0A protected:=0A=0A // we implement these so the XP dialog c=
an set/grab our data=0A =0A virtual UT_Bool _gatherSpellCheckAsType(void)=
;=0A virtual void _setSpellCheckAsType(UT_Bool b);=0A virtual UT_Bool _=
gatherSpellHideErrors(void);=0A virtual void _setSpellHideErrors(UT_Bool =
b);=0A virtual UT_Bool _gatherSpellSuggest(void);=0A virtual void _setS=
pellSuggest(UT_Bool b);=0A virtual UT_Bool _gatherSpellMainOnly(void);=0A=
virtual void _setSpellMainOnly(UT_Bool b);=0A virtual UT_Bool _gatherS=
pellUppercase(void);=0A virtual void _setSpellUppercase(UT_Bool b);=0A vi=
rtual UT_Bool _gatherSpellNumbers(void);=0A virtual void _setSpellNumbe=
rs(UT_Bool b);=0A virtual UT_Bool _gatherSpellInternet(void);=0A virtual =
void _setSpellInternet(UT_Bool b);=0A =0A protected:=0A //GR_UnixGraphics=
* m_unixGraphics;=0A =0A // private construction functions=0A GtkWidget =
* _constructWindow(void);=0A void _populateWindowData(void);=0A void _ena=
blePercentSpin(UT_Bool enable);=0A=0A // pointers to widgets we need to que=
ry/set=0A // there are a ton of them in this dialog=0A=0A GtkWidget * m_win=
dowMain;=0A=0A GtkWidget * m_checkbuttonSpellCheckAsType;=0A GtkWidge=
t * m_checkbuttonSpellHideErrors;=0A GtkWidget * m_checkbuttonSpellSugge=
st;=0A GtkWidget * m_checkbuttonSpellMainOnly;=0A GtkWidget * m_check=
buttonSpellUppercase;=0A GtkWidget * m_checkbuttonSpellNumbers;=0A Gt=
kWidget * m_checkbuttonSpellInternet;=0A=0A GtkWidget * m_listSpellDicts;=
=0A GtkWidget * m_listSpellDicts_menu;=0A GtkWidget * m_buttonSpellDictiona=
ry;=0A=0A GtkWidget * m_buttonOK;=0A GtkWidget * m_buttonCancel;=0A=0A};=0A=
=0A#endif /* XAP_UNIXDIALOG_PARAGRAPH_H */=0A=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00wp/ap/unix/ap_UnixDialog_Options.cpp=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=000100664=000001025=000000764=0000000060366=0007001265570=0001701=
4=00 0=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00ustar =00shack=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00shack=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00/* AbiWord=
=0A * Copyright (C) 1998 AbiSource, Inc.=0A * =0A * This program is free so=
ftware; you can redistribute it and/or=0A * modify it under the terms of th=
e GNU General Public License=0A * as published by the Free Software Foundat=
ion; either version 2=0A * of the License, or (at your option) any later ve=
rsion.=0A * =0A * This program is distributed in the hope that it will be u=
seful,=0A * but WITHOUT ANY WARRANTY; without even the implied warranty of=
=0A * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the=0A * GN=
U General Public License for more details.=0A * =0A * You should have recei=
ved a copy of the GNU General Public License=0A * along with this program; =
if not, write to the Free Software=0A * Foundation, Inc., 59 Temple Place -=
Suite 330, Boston, MA =0A * 02111-1307, USA.=0A */=0A=0A#include "ut_type=
s.h"=0A#include "ut_string.h"=0A#include "ut_assert.h"=0A#include "ut_debug=
msg.h"=0A=0A// This header defines some functions for Unix dialogs,=0A// li=
ke centering them, measuring them, etc.=0A#include "ut_dialogHelper.h"=0A=
=0A#include "gr_UnixGraphics.h"=0A=0A#include "xap_App.h"=0A#include "xap_U=
nixApp.h"=0A#include "xap_UnixFrame.h"=0A#include "xap_Prefs.h"=0A=0A#inclu=
de "ap_Dialog_Id.h"=0A#include "ap_Prefs_SchemeIds.h"=0A=0A#include "ap_Str=
ings.h"=0A=0A#include "ap_UnixDialog_Options.h"=0A=0A/*********************=
********************************************/=0A=0A#define WIDGET_DIALOG_TA=
G "dialog"=0A=0A/**********************************************************=
*******/=0A=0AXAP_Dialog * AP_UnixDialog_Options::static_constructor(XAP_Di=
alogFactory * pFactory,=0A =
XAP_Dialog_Id id)=0A{=0A AP_UnixDialog_Options * p =3D new AP_Un=
ixDialog_Options(pFactory,id);=0A return p;=0A}=0A=0AAP_UnixDialog_Optio=
ns::AP_UnixDialog_Options(XAP_DialogFactory * pDlgFactory,=0A =
XAP_Dialog_Id id)=0A : AP_Dialog_Opti=
ons(pDlgFactory,id)=0A{=0A#if 0=0A XAP_Prefs *prefs =3D m_pApp->getPrefs();=
=0A UT_ASSERT(prefs);=0A UT_DEBUGMSG(("AP_UnixDialog_Options::AP_UnixDialog=
_Options[%s:%d]", __FILE__, __LINE__));=0A UT_DEBUGMSG((" current pref :=
%s",=0A prefs->getCurrentScheme()->getSchemeName()) );=0A=0A UT_Bool b =
=3D prefs->savePrefsFile();=0A UT_DEBUGMSG((" prefs saved (%d) in %s", b=
, prefs->getPrefsPathname() ));=0A=0A UT_uint32 i;=0A XAP_PrefsScheme *ps;=
=0A for ( i =3D 0; (ps =3D prefs->getNthScheme(i)) !=3D 0; i++ ) {=0A UT_D=
EBUGMSG((" %d [%s]", i, ps->getSchemeName() ));=0A =0A XML_Char const *=
pszKey, *pszValue;=0A for ( UT_uint32 j =3D 0; ps->getNthValue(j, &pszKey,=
&pszValue ); j++ ) {=0A UT_DEBUGMSG((" %x %-30s : %s", j, pszKey,=
pszValue ));=0A }=0A }=0A#endif=0A}=0A=0AAP_UnixDialog_Options::~AP_UnixD=
ialog_Options(void)=0A{=0A}=0A=0A/*****************************************=
************************/=0A=0A// sample callback function=0Astatic void s_=
ok_clicked(GtkWidget * widget, AP_UnixDialog_Options * dlg)=0A{ UT_ASSERT(w=
idget && dlg); dlg->event_OK(); }=0A=0Astatic void s_cancel_clicked(GtkWidg=
et * widget, AP_UnixDialog_Options * dlg)=0A{ UT_ASSERT(widget && dlg); dlg=
->event_Cancel(); }=0A=0Astatic void s_delete_clicked(GtkWidget * /* widget=
*/,=0A gpointer /* data */,=0A =
AP_UnixDialog_Options * dlg)=0A{ UT_ASSERT(dlg); dlg->event_Wi=
ndowDelete(); }=0A=0A// toggle buttons=0A#if 0=0Astatic void s_check_widowo=
rphancontrol_toggled(GtkWidget * widget, AP_UnixDialog_Options * dlg)=0A{ U=
T_ASSERT(widget && dlg); dlg->event_WidowOrphanControlToggled(); }=0A=0Asta=
tic void s_check_keeplinestogether_toggled(GtkWidget * widget, AP_UnixDialo=
g_Options * dlg)=0A{ UT_ASSERT(widget && dlg); dlg->event_KeepLinesTogether=
Toggled(); }=0A=0Astatic void s_check_keepwithnext_toggled(GtkWidget * widg=
et, AP_UnixDialog_Options * dlg)=0A{ UT_ASSERT(widget && dlg); dlg->event_K=
eepWithNextToggled(); }=0A=0Astatic void s_check_pagebreakbefore_toggled(Gt=
kWidget * widget, AP_UnixDialog_Options * dlg)=0A{ UT_ASSERT(widget && dlg)=
; dlg->event_PageBreakBeforeToggled(); }=0A=0Astatic void s_check_suppressl=
inenumbers_toggled(GtkWidget * widget, AP_UnixDialog_Options * dlg)=0A{ UT_=
ASSERT(widget && dlg); dlg->event_SuppressLineNumbersToggled(); }=0A=0Astat=
ic void s_check_nohyphenate_toggled(GtkWidget * widget, AP_UnixDialog_Optio=
ns * dlg)=0A{ UT_ASSERT(widget && dlg); dlg->event_NoHyphenateToggled(); }=
=0A#endif=0A=0A// preview drawing area=0A=0A/******************************=
***********************************/=0A=0Avoid AP_UnixDialog_Options::runMo=
dal(XAP_Frame * pFrame)=0A{=0A // Build the window's widgets and arrange=
them=0A GtkWidget * mainWindow =3D _constructWindow();=0A UT_ASSERT(=
mainWindow);=0A=0A // Populate the window's data items=0A _populateWi=
ndowData();=0A=0A // To center the dialog, we need the frame of its pare=
nt.=0A XAP_UnixFrame * pUnixFrame =3D static_cast<XAP_UnixFrame *>(pFram=
e);=0A UT_ASSERT(pUnixFrame);=0A =0A // Get the GtkWindow of the p=
arent frame=0A GtkWidget * parentWindow =3D pUnixFrame->getTopLevelWindo=
w();=0A UT_ASSERT(parentWindow);=0A =0A // Center our new dialog i=
n its parent and make it a transient=0A // so it won't get lost undernea=
th=0A centerDialog(parentWindow, mainWindow);=0A gtk_window_set_trans=
ient_for(GTK_WINDOW(mainWindow), GTK_WINDOW(parentWindow));=0A=0A // Sho=
w the top level dialog,=0A gtk_widget_show(mainWindow);=0A=0A // Make=
it modal, and stick it up top=0A gtk_grab_add(mainWindow);=0A=0A // =
Run into the GTK event loop for this window.=0A gtk_main();=0A=0A _st=
oreWindowData();=0A =0A gtk_widget_destroy(mainWindow);=0A}=0A=0Avoid=
AP_UnixDialog_Options::event_OK(void)=0A{=0A m_answer =3D AP_Dialog_Opt=
ions::a_OK;=0A gtk_main_quit();=0A}=0A=0Avoid AP_UnixDialog_Options::eve=
nt_Cancel(void)=0A{=0A m_answer =3D AP_Dialog_Options::a_CANCEL;=0A g=
tk_main_quit();=0A}=0A=0Avoid AP_UnixDialog_Options::event_WindowDelete(voi=
d)=0A{=0A m_answer =3D AP_Dialog_Options::a_CANCEL; =0A gtk_main_q=
uit();=0A}=0A=0A/****************************************/=0A=0A// Alignmen=
t methods=0A=0A//void AP_UnixDialog_Options::event_AlignmentChanged(void) {=
}=0A=0A/****************************************/=0A=0A// generic methods =
for spin buttons=0A#if 0=0Avoid AP_UnixDialog_Options::event_UpdateEntry(Gt=
kWidget * widget)=0A{=0A gchar * oldtext =3D gtk_entry_get_text(GTK_ENTR=
Y(widget));=0A=0A XML_Char * newtext =3D _filterUserInput((XML_Char *) o=
ldtext);=0A=0A // we have to protect this section with a lock, so that u=
pdating=0A // the text doesn't trigger this same event=0A {=0A =
gtk_object_set_data(GTK_OBJECT(widget), "updatelock", (void *) TRUE);=0A =
=0A if ( ((gboolean) gtk_object_get_data(GTK_OBJECT(widget), "upda=
telock")) =3D=3D FALSE)=0A gtk_entry_set_text(GTK_ENTRY(widget),=
(const gchar *) newtext);=0A=0A gtk_object_set_data(GTK_OBJECT(widg=
et), "updatelock", (void *) FALSE);=0A }=0A}=0A#endif=0A=0A#if 0=0Avoid =
AP_UnixDialog_Options::event_UnitSpinButtonChanged(GtkWidget * spinbutton, =
GtkAdjustment * adj)=0A{=0A UT_ASSERT(spinbutton && adj);=0A =0A c=
onst char * newvalue =3D=0A UT_convertToDimensionString(m_dim, (doub=
le) adj->value, ".1");=0A=0A UT_ASSERT(newvalue);=0A=0A GtkSpinButton=
* sb =3D GTK_SPIN_BUTTON(spinbutton);=0A=0A GtkEntry * entry =3D & sb->=
entry;=0A =0A gtk_entry_set_text(entry, newvalue);=0A}=0A=0Avoid AP_U=
nixDialog_Options::event_UnitlessSpinButtonChanged(GtkWidget * spinbutton, =
GtkAdjustment * adj)=0A{=0A UT_ASSERT(spinbutton && adj);=0A =0A c=
onst char * newvalue =3D=0A UT_convertToDimensionString(m_dim, (doub=
le) adj->value, ".1");=0A=0A UT_ASSERT(newvalue);=0A=0A GtkSpinButton=
* sb =3D GTK_SPIN_BUTTON(spinbutton);=0A=0A GtkEntry * entry =3D & sb->=
entry;=0A =0A gtk_entry_set_text(entry, newvalue);=0A}=0A#endif=0A=0A=
/****************************************/=0A=0A/**************************=
***************************************/=0A=0A#if 0=0A=0AAP_Dialog_Options:=
:tAlignment AP_UnixDialog_Options::_gatherAlignmentType(void) {}=0Avoid AP_=
UnixDialog_Options::_setAlignmentType(AP_Dialog_Options::tAlignment alignme=
nt) {}=0AAP_Dialog_Options::tSpecialIndent AP_UnixDialog_Options::_gatherSp=
ecialIndentType(void) {}=0Avoid AP_UnixDialog_Options::_setSpecialIndentTyp=
e(AP_Dialog_Options::tSpecialIndent indent) {}=0AAP_Dialog_Options::tLineSp=
acing AP_UnixDialog_Options::_gatherLineSpacingType(void) {}=0Avoid AP_Unix=
Dialog_Options::_setLineSpacingType(AP_Dialog_Options::tLineSpacing spacing=
) {}=0A =0Aconst XML_Char * AP_UnixDialog_Options::_gatherLeftIndent(=
void) {}=0Avoid AP_UnixDialog_Options::_setLeftIndent(const =
XML_Char * indent) {}=0Aconst XML_Char * AP_UnixDialog_Options::_gatherR=
ightIndent(void) {}=0Avoid AP_UnixDialog_Options::_setRightI=
ndent(const XML_Char * indent) {}=0Aconst XML_Char * AP_UnixDialog_Optio=
ns::_gatherSpecialIndent(void) {}=0Avoid AP_UnixDialog_Optio=
ns::_setSpecialIndent(const XML_Char * indent) {}=0A =0Aconst XML_Char *=
AP_UnixDialog_Options::_gatherBeforeSpacing(void) {}=0Avoid =
AP_UnixDialog_Options::_setBeforeSpacing(const XML_Char * spacing) {}=
=0Aconst XML_Char * AP_UnixDialog_Options::_gatherAfterSpacing(void) {}=
=0Avoid AP_UnixDialog_Options::_setAfterSpacing(const XML_Ch=
ar * spacing) {}=0Aconst XML_Char * AP_UnixDialog_Options::_gatherSpecia=
lSpacing(void) {} =0Avoid AP_UnixDialog_Options::_setSpec=
ialSpacing(const XML_Char * spacing) {}=0A =0AUT_Bool AP_=
UnixDialog_Options::_gatherWidowOrphanControl(void) {}=0Avoid =
AP_UnixDialog_Options::_setWidowOrphanControl(UT_Bool b) {}=0AUT_Bool =
AP_UnixDialog_Options::_gatherKeepLinesTogether(void) {}=0Avoid=
AP_UnixDialog_Options::_setKeepLinesTogether(UT_Bool b) {}=
=0AUT_Bool AP_UnixDialog_Options::_gatherKeepWithNext(void) =
{}=0Avoid AP_UnixDialog_Options::_setKeepWithNext(UT_Bool b)=
{}=0AUT_Bool AP_UnixDialog_Options::_gatherSuppressLineNumb=
ers(void) {}=0Avoid AP_UnixDialog_Options::_setSuppressLineN=
umbers(UT_Bool b) {}=0AUT_Bool AP_UnixDialog_Options::_gathe=
rNoHyphenate(void) {}=0Avoid AP_UnixDialog_Options::_setNoHy=
phenate(UT_Bool b) {}=0A=0A#endif=0A=0A/***********************************=
******************************/=0A=0AGtkWidget* AP_UnixDialog_Options::_con=
structWindow ()=0A{=0A GtkWidget *windowOptions;=0A GtkWidget *vbox1;=
=0A GtkWidget *notebook1;=0A GtkWidget *hbox1;=0A GtkWidget *vbox2=
;=0A GtkWidget *checkbuttonSpellCheckAsType;=0A GtkWidget *checkbutto=
nSpellHideErrors;=0A GtkWidget *checkbuttonSpellSuggest;=0A GtkWidget=
*checkbuttonSpellMainOnly;=0A GtkWidget *checkbuttonSpellUppercase;=0A =
GtkWidget *checkbuttonSpellNumbers;=0A GtkWidget *checkbuttonSpellInt=
ernet;=0A GtkWidget *hbox2;=0A GtkWidget *labelSpellCustom;=0A Gtk=
Widget *listSpellDicts;=0A GtkWidget *listSpellDicts_menu;=0A GtkWidg=
et *glade_menuitem;=0A GtkWidget *buttonSpellDictionary;=0A GtkWidget=
*labelSpell;=0A GtkWidget *hbox3;=0A GtkWidget *hbuttonbox2;=0A G=
tkWidget *buttonOK;=0A GtkWidget *buttonCancel;=0A=0A windowOptions =
=3D gtk_window_new (GTK_WINDOW_TOPLEVEL);=0A gtk_object_set_data (GTK_OB=
JECT (windowOptions), "windowOptions", windowOptions);=0A gtk_window_set=
_title (GTK_WINDOW (windowOptions), "Options");=0A=0A vbox1 =3D gtk_vbox=
_new (FALSE, 0);=0A gtk_widget_ref (vbox1);=0A gtk_object_set_data_fu=
ll (GTK_OBJECT (windowOptions), "vbox1", vbox1,=0A =
(GtkDestroyNotify) gtk_widget_unref);=0A gtk_widget_show (vbox1);=
=0A gtk_container_add (GTK_CONTAINER (windowOptions), vbox1);=0A=0A n=
otebook1 =3D gtk_notebook_new ();=0A gtk_widget_ref (notebook1);=0A g=
tk_object_set_data_full (GTK_OBJECT (windowOptions), "notebook1", notebook1=
,=0A (GtkDestroyNotify) gtk_widget_unref);=0A =
gtk_widget_show (notebook1);=0A gtk_box_pack_start (GTK_BOX (vbox1), =
notebook1, TRUE, TRUE, 0);=0A gtk_container_set_border_width (GTK_CONTAINER=
(notebook1), 10);=0A=0A //---------------------------------------------=
-------------=0A // begin spelling=0A=0A hbox1 =3D gtk_hbox_new (FALSE, =
0);=0A gtk_widget_ref (hbox1);=0A gtk_object_set_data_full (GTK_OBJEC=
T (windowOptions), "hbox1", hbox1,=0A (GtkDest=
royNotify) gtk_widget_unref);=0A gtk_widget_show (hbox1);=0A gtk_cont=
ainer_add (GTK_CONTAINER (notebook1), hbox1);=0A gtk_container_set_borde=
r_width (GTK_CONTAINER (hbox1), 10);=0A=0A vbox2 =3D gtk_vbox_new (FALSE=
, 0);=0A gtk_widget_ref (vbox2);=0A gtk_object_set_data_full (GTK_OBJ=
ECT (windowOptions), "vbox2", vbox2,=0A (GtkDe=
stroyNotify) gtk_widget_unref);=0A gtk_widget_show (vbox2);=0A gtk_bo=
x_pack_start (GTK_BOX (hbox1), vbox2, TRUE, TRUE, 5);=0A=0A checkbuttonS=
pellCheckAsType =3D gtk_check_button_new_with_label ("Check s&pelling as yo=
u type");=0A gtk_widget_ref (checkbuttonSpellCheckAsType);=0A gtk_obj=
ect_set_data_full (GTK_OBJECT (windowOptions), "checkbuttonSpellCheckAsType=
", checkbuttonSpellCheckAsType,=0A (GtkDestroy=
Notify) gtk_widget_unref);=0A gtk_widget_show (checkbuttonSpellCheckAsTy=
pe);=0A gtk_box_pack_start (GTK_BOX (vbox2), checkbuttonSpellCheckAsType=
, FALSE, FALSE, 0);=0A=0A checkbuttonSpellHideErrors =3D gtk_check_butto=
n_new_with_label ("Hide &spelling errors in the document");=0A gtk_widge=
t_ref (checkbuttonSpellHideErrors);=0A gtk_object_set_data_full (GTK_OBJ=
ECT (windowOptions), "checkbuttonSpellHideErrors", checkbuttonSpellHideErro=
rs,=0A (GtkDestroyNotify) gtk_widget_unref);=
=0A gtk_widget_show (checkbuttonSpellHideErrors);=0A gtk_box_pack_sta=
rt (GTK_BOX (vbox2), checkbuttonSpellHideErrors, FALSE, FALSE, 0);=0A=0A =
checkbuttonSpellSuggest =3D gtk_check_button_new_with_label ("A&lways sugg=
est corrections");=0A gtk_widget_ref (checkbuttonSpellSuggest);=0A gt=
k_object_set_data_full (GTK_OBJECT (windowOptions), "checkbuttonSpellSugges=
t", checkbuttonSpellSuggest,=0A (GtkDestroyNot=
ify) gtk_widget_unref);=0A gtk_widget_show (checkbuttonSpellSuggest);=0A=
gtk_box_pack_start (GTK_BOX (vbox2), checkbuttonSpellSuggest, FALSE, FA=
LSE, 0);=0A=0A checkbuttonSpellMainOnly =3D gtk_check_button_new_with_la=
bel ("Suggest from &main dictionary only");=0A gtk_widget_ref (checkbutt=
onSpellMainOnly);=0A gtk_object_set_data_full (GTK_OBJECT (windowOptions=
), "checkbuttonSpellMainOnly", checkbuttonSpellMainOnly,=0A =
(GtkDestroyNotify) gtk_widget_unref);=0A gtk_widget_show (=
checkbuttonSpellMainOnly);=0A gtk_box_pack_start (GTK_BOX (vbox2), check=
buttonSpellMainOnly, FALSE, FALSE, 0);=0A=0A checkbuttonSpellUppercase =
=3D gtk_check_button_new_with_label ("Ignore words in &UPPERCASE");=0A g=
tk_widget_ref (checkbuttonSpellUppercase);=0A gtk_object_set_data_full (=
GTK_OBJECT (windowOptions), "checkbuttonSpellUppercase", checkbuttonSpellUp=
percase,=0A (GtkDestroyNotify) gtk_widget_unre=
f);=0A gtk_widget_show (checkbuttonSpellUppercase);=0A gtk_box_pack_s=
tart (GTK_BOX (vbox2), checkbuttonSpellUppercase, FALSE, FALSE, 0);=0A=0A =
checkbuttonSpellNumbers =3D gtk_check_button_new_with_label ("Ignore word=
s with num&bers");=0A gtk_widget_ref (checkbuttonSpellNumbers);=0A gt=
k_object_set_data_full (GTK_OBJECT (windowOptions), "checkbuttonSpellNumber=
s", checkbuttonSpellNumbers,=0A (GtkDestroyNot=
ify) gtk_widget_unref);=0A gtk_widget_show (checkbuttonSpellNumbers);=0A=
gtk_box_pack_start (GTK_BOX (vbox2), checkbuttonSpellNumbers, FALSE, FA=
LSE, 0);=0A=0A checkbuttonSpellInternet =3D gtk_check_button_new_with_la=
bel ("Ignore Internet and &file addresses");=0A gtk_widget_ref (checkbut=
tonSpellInternet);=0A gtk_object_set_data_full (GTK_OBJECT (windowOption=
s), "checkbuttonSpellInternet", checkbuttonSpellInternet,=0A =
(GtkDestroyNotify) gtk_widget_unref);=0A gtk_widget_show =
(checkbuttonSpellInternet);=0A gtk_box_pack_start (GTK_BOX (vbox2), chec=
kbuttonSpellInternet, FALSE, FALSE, 0);=0A=0A hbox2 =3D gtk_hbox_new (FA=
LSE, 0);=0A gtk_widget_ref (hbox2);=0A gtk_object_set_data_full (GTK_=
OBJECT (windowOptions), "hbox2", hbox2,=0A (Gt=
kDestroyNotify) gtk_widget_unref);=0A gtk_widget_show (hbox2);=0A gtk=
_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, FALSE, 0);=0A=0A labelSp=
ellCustom =3D gtk_label_new ("Custom dickion&ary: ");=0A gtk_widget_ref =
(labelSpellCustom);=0A gtk_object_set_data_full (GTK_OBJECT (windowOptio=
ns), "labelSpellCustom", labelSpellCustom,=0A =
(GtkDestroyNotify) gtk_widget_unref);=0A gtk_widget_show (labelSpellCust=
om);=0A gtk_box_pack_start (GTK_BOX (hbox2), labelSpellCustom, FALSE, FA=
LSE, 0);=0A=0A listSpellDicts =3D gtk_option_menu_new ();=0A gtk_widg=
et_ref (listSpellDicts);=0A gtk_object_set_data_full (GTK_OBJECT (window=
Options), "listSpellDicts", listSpellDicts,=0A =
(GtkDestroyNotify) gtk_widget_unref);=0A gtk_widget_show (listSpellDict=
s);=0A gtk_box_pack_start (GTK_BOX (hbox2), listSpellDicts, FALSE, FALSE=
, 10);=0A listSpellDicts_menu =3D gtk_menu_new ();=0A glade_menuitem =
=3D gtk_menu_item_new_with_label ("custom.dic");=0A gtk_widget_show (gla=
de_menuitem);=0A gtk_menu_append (GTK_MENU (listSpellDicts_menu), glade_=
menuitem);=0A gtk_option_menu_set_menu (GTK_OPTION_MENU (listSpellDicts)=
, listSpellDicts_menu);=0A=0A buttonSpellDictionary =3D gtk_button_new_w=
ith_label ("&Dictionary...");=0A gtk_widget_ref (buttonSpellDictionary);=
=0A gtk_object_set_data_full (GTK_OBJECT (windowOptions), "buttonSpellDi=
ctionary", buttonSpellDictionary,=0A (GtkDestr=
oyNotify) gtk_widget_unref);=0A gtk_widget_show (buttonSpellDictionary);=
=0A gtk_box_pack_start (GTK_BOX (hbox2), buttonSpellDictionary, FALSE, F=
ALSE, 0);=0A=0A labelSpell =3D gtk_label_new ("Spelling");=0A gtk_wid=
get_ref (labelSpell);=0A gtk_object_set_data_full (GTK_OBJECT (windowOpt=
ions), "labelSpell", labelSpell,=0A (GtkDestro=
yNotify) gtk_widget_unref);=0A gtk_widget_show (labelSpell);=0A gtk_n=
otebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page =
(GTK_NOTEBOOK (notebook1), 0), labelSpell);=0A=0A hbox3 =3D gtk_hbox_new=
(FALSE, 0);=0A gtk_widget_ref (hbox3);=0A gtk_object_set_data_full (=
GTK_OBJECT (windowOptions), "hbox3", hbox3,=0A =
(GtkDestroyNotify) gtk_widget_unref);=0A gtk_widget_show (hbox3);=0A =
gtk_box_pack_start (GTK_BOX (vbox1), hbox3, FALSE, FALSE, 0);=0A=0A hbu=
ttonbox2 =3D gtk_hbutton_box_new ();=0A gtk_widget_ref (hbuttonbox2);=0A=
gtk_object_set_data_full (GTK_OBJECT (windowOptions), "hbuttonbox2", hb=
uttonbox2,=0A (GtkDestroyNotify) gtk_widget_un=
ref);=0A gtk_widget_show (hbuttonbox2);=0A gtk_box_pack_end (GTK_BOX =
(hbox3), hbuttonbox2, FALSE, TRUE, 0);=0A gtk_button_box_set_spacing (GT=
K_BUTTON_BOX (hbuttonbox2), 20);=0A=0A//-----------------------------------=
-------------------------=0A// end spelling stuff=0A=0A buttonOK =3D gtk=
_button_new_with_label ("Ok");=0A gtk_widget_ref (buttonOK);=0A gtk_o=
bject_set_data_full (GTK_OBJECT (windowOptions), "buttonOK", buttonOK,=0A =
(GtkDestroyNotify) gtk_widget_unref);=0A gtk=
_widget_show (buttonOK);=0A gtk_container_add (GTK_CONTAINER (hbuttonbox=
2), buttonOK);=0A GTK_WIDGET_SET_FLAGS (buttonOK, GTK_CAN_DEFAULT);=0A=
=0A buttonCancel =3D gtk_button_new_with_label ("Cancel");=0A gtk_wid=
get_ref (buttonCancel);=0A gtk_object_set_data_full (GTK_OBJECT (windowO=
ptions), "buttonCancel", buttonCancel,=0A (Gtk=
DestroyNotify) gtk_widget_unref);=0A gtk_widget_show (buttonCancel);=0A =
gtk_container_add (GTK_CONTAINER (hbuttonbox2), buttonCancel);=0A GTK=
_WIDGET_SET_FLAGS (buttonCancel, GTK_CAN_DEFAULT);=0A=0A ///////////////=
///////////////////////////////////////////////////////=0A // the contro=
l buttons=0A gtk_signal_connect(GTK_OBJECT(buttonOK),=0A =
"clicked",=0A GTK_SIGNAL_FUNC(s_ok_clicked),=
=0A (gpointer) this);=0A =0A gtk_signal_connect=
(GTK_OBJECT(buttonCancel),=0A "clicked",=0A =
GTK_SIGNAL_FUNC(s_cancel_clicked),=0A (g=
pointer) this);=0A=0A=0A // the catch-alls=0A gtk_signal_connect_afte=
r(GTK_OBJECT(windowOptions),=0A "delete_event",=
=0A GTK_SIGNAL_FUNC(s_delete_clicked),=0A =
(gpointer) this);=0A=0A gtk_signal_connect_after(=
GTK_OBJECT(windowOptions),=0A "destroy",=0A =
NULL,=0A NULL);=0A=0A =
// Update member variables with the important widgets that=0A // migh=
t need to be queried or altered later.=0A=0A m_windowMain =3D windowOpti=
ons;=0A=0A m_checkbuttonSpellCheckAsType =3D checkbuttonSpellCheckAsType=
;=0A m_checkbuttonSpellHideErrors =3D checkbuttonSpellHideErrors;=0A =
m_checkbuttonSpellSuggest =3D checkbuttonSpellSuggest;=0A m_checkbutton=
SpellMainOnly =3D checkbuttonSpellMainOnly;=0A m_checkbuttonSpellUpperc=
ase =3D checkbuttonSpellUppercase;=0A m_checkbuttonSpellNumbers =3D ch=
eckbuttonSpellNumbers;=0A m_checkbuttonSpellInternet =3D checkbuttonSpe=
llInternet;=0A=0A m_listSpellDicts =3D listSpellDicts;=0A m_listSpellDic=
ts_menu =3D listSpellDicts_menu;=0A m_buttonSpellDictionary =3D buttonS=
pellDictionary;=0A=0A m_buttonOK =3D buttonOK;=0A m_buttonCancel =3D =
buttonCancel;=0A return windowOptions;=0A}=0A=0Avoid AP_UnixDialog_Optio=
ns::_populateWindowData(void)=0A{=0A =0A // TODO: move this logic when we g=
et a PrefsListener API=0A const XML_Char * szAutoSpell;=0A if (m_pApp->getP=
refsValue(AP_PREF_KEY_AutoSpellCheck,&szAutoSpell))=0A m_SpellCheckAsType =
=3D (szAutoSpell[0] =3D=3D '1') ? UT_TRUE : UT_FALSE;=0A=0A _setSpellCheckA=
sType( m_SpellCheckAsType );=0A=0A#if 0=0A // alignment option menu =0A =
UT_ASSERT(m_listAlignment);=0A gtk_option_menu_set_history(GTK_OPTION=
_MENU(m_listAlignment),=0A (gint) m_paragrap=
hData.m_alignmentType);=0A=0A // indent and paragraph margins=0A UT_A=
SSERT(m_spinbuttonLeft);=0A gtk_entry_set_text(GTK_ENTRY(m_spinbuttonLef=
t),=0A (const gchar *) m_paragraphData.m_leftIndent);=
=0A=0A UT_ASSERT(m_spinbuttonRight);=0A gtk_entry_set_text(GTK_ENTRY(=
m_spinbuttonRight),=0A (const gchar *) m_paragraphDat=
a.m_rightIndent);=0A=0A UT_ASSERT(m_spinbuttonBy);=0A gtk_entry_set_t=
ext(GTK_ENTRY(m_spinbuttonBy),=0A (const gchar *) m_p=
aragraphData.m_specialIndent);=0A=0A UT_ASSERT(m_listSpecial);=0A gtk=
_option_menu_set_history(GTK_OPTION_MENU(m_listSpecial),=0A =
(gint) m_paragraphData.m_specialIndentType);=0A =0A /=
/ if m_specialIndentType is "(none)" (OptionsDialogData::indent_NONE)=0A =
// then the "By" spin should be disabled=0A=0A if (m_paragraphData.m_sp=
ecialIndentType =3D=3D OptionsDialogData::indent_NONE)=0A gtk_widget=
_set_sensitive(GTK_WIDGET(m_spinbuttonBy), FALSE);=0A else=0A gtk=
_widget_set_sensitive(GTK_WIDGET(m_spinbuttonBy), TRUE);=0A#endif =0A}=
=0A=0A=0AUT_Bool AP_UnixDialog_Options::_gatherSpellCheckAsType(void) =
=0A{ =0A return gtk_toggle_button_get_active ( =0A GTK_TOGGLE_BUTTON(m_c=
heckbuttonSpellCheckAsType) );=0A}=0A=0Avoid AP_UnixDialog_Options::=
_setSpellCheckAsType(UT_Bool b) =0A{ =0A gtk_toggle_button_set_active (GTK_=
TOGGLE_BUTTON(m_checkbuttonSpellCheckAsType), b );=0A}=0A=0AUT_Bool AP_=
UnixDialog_Options::_gatherSpellHideErrors(void) =0A{ =0A return gtk_toggle=
_button_get_active ( =0A GTK_TOGGLE_BUTTON(m_checkbuttonSpellHideErrors)=
);=0A}=0A=0Avoid AP_UnixDialog_Options::_setSpellHideErrors(UT_Bool=
b) =0A{ =0A gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(m_checkbuttonS=
pellHideErrors), b );=0A}=0A=0AUT_Bool AP_UnixDialog_Options::_gatherSp=
ellSuggest(void) =0A{ =0A return gtk_toggle_button_get_active ( =0A GTK_=
TOGGLE_BUTTON(m_checkbuttonSpellSuggest) );=0A}=0A=0Avoid AP_UnixDia=
log_Options::_setSpellSuggest(UT_Bool b) =0A{ =0A gtk_toggle_button_set_act=
ive (GTK_TOGGLE_BUTTON(m_checkbuttonSpellSuggest), b );=0A}=0A=0AUT_Bool =
AP_UnixDialog_Options::_gatherSpellMainOnly(void)=0A{ =0A return gtk_togg=
le_button_get_active ( =0A GTK_TOGGLE_BUTTON(m_checkbuttonSpellMainOnly)=
);=0A}=0A=0Avoid AP_UnixDialog_Options::_setSpellMainOnly(UT_Bool b=
)=0A{ =0A gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(m_checkbuttonSpel=
lMainOnly), b );=0A}=0A=0AUT_Bool AP_UnixDialog_Options::_gatherSpellUp=
percase(void)=0A{ =0A return gtk_toggle_button_get_active ( =0A GTK_TOGG=
LE_BUTTON(m_checkbuttonSpellUppercase) );=0A}=0A=0Avoid AP_UnixDialo=
g_Options::_setSpellUppercase(UT_Bool b)=0A{ =0A gtk_toggle_button_set_acti=
ve (GTK_TOGGLE_BUTTON(m_checkbuttonSpellUppercase), b );=0A}=0A=0AUT_Bool =
AP_UnixDialog_Options::_gatherSpellNumbers(void) =0A{ =0A return gtk_tog=
gle_button_get_active ( =0A GTK_TOGGLE_BUTTON(m_checkbuttonSpellNumbers)=
);=0A}=0A=0Avoid AP_UnixDialog_Options::_setSpellNumbers(UT_Bool b)=
=0A{ =0A gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(m_checkbuttonSpel=
lNumbers), b );=0A}=0A=0AUT_Bool AP_UnixDialog_Options::_gatherSpellInt=
ernet(void) =0A{ =0A return gtk_toggle_button_get_active ( =0A GTK_TOGGL=
E_BUTTON(m_checkbuttonSpellInternet) );=0A}=0A=0Avoid AP_UnixDialog_=
Options::_setSpellInternet(UT_Bool b) =0A{ =0A gtk_toggle_button_set_active=
(GTK_TOGGLE_BUTTON(m_checkbuttonSpellInternet), b );=0A}=0A=0A=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00wp/ap/win/ap_Win32Dialog_Options.h=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=000100664=000001025=000000764=00=
00000006566=0007001267175=00016257=00 0=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00ustar =00shack=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00shack=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00/* AbiWord=0A * Copyright (C) 1998 AbiSource, Inc.=0A =
* =0A * This program is free software; you can redistribute it and/or=0A * =
modify it under the terms of the GNU General Public License=0A * as publish=
ed by the Free Software Foundation; either version 2=0A * of the License, o=
r (at your option) any later version.=0A * =0A * This program is distribute=
d in the hope that it will be useful,=0A * but WITHOUT ANY WARRANTY; withou=
t even the implied warranty of=0A * MERCHANTABILITY or FITNESS FOR A PARTIC=
ULAR PURPOSE. See the=0A * GNU General Public License for more details.=0A=
* =0A * You should have received a copy of the GNU General Public License=
=0A * along with this program; if not, write to the Free Software=0A * Foun=
dation, Inc., 59 Temple Place - Suite 330, Boston, MA =0A * 02111-1307, US=
A.=0A */=0A=0A#ifndef AP_WIN32DIALOG_OPTIONS_H=0A#define AP_WIN32DIALOG_OPT=
IONS_H=0A=0A#include "xap_Win32FontManager.h"=0A=0A#include "ap_Dialog_Opti=
ons.h"=0A=0Aclass XAP_Win32Frame;=0A=0A/***********************************=
******************************/=0A=0Aclass AP_Win32Dialog_Options: public A=
P_Dialog_Options=0A{=0Apublic:=0A AP_Win32Dialog_Options(XAP_DialogFactory =
* pDlgFactory, XAP_Dialog_Id id);=0A virtual ~AP_Win32Dialog_Options(void);=
=0A=0A virtual void runModal(XAP_Frame * pFrame);=0A=0A static XAP_Dialog=
* static_constructor(XAP_DialogFactory *, XAP_Dialog_Id id);=0A=0A // cal=
lbacks can fire these events=0A virtual void event_OK(void);=0A virtual voi=
d event_Cancel(void);=0A virtual void event_WindowDelete(void);=0A=0A // In=
dents and Spacing page=0A// virtual void event_AlignmentChanged(void);=0A=
=0A // actions for all indent-related spin-button changes are the same=0A//=
virtual void event_UpdateEntry(GtkWidget * widget);=0A// virtual void even=
t_IndentSpinButtonChanged(GtkWidget * spinbutton, GtkAdjustment * adj);=0A/=
/ virtual void event_SpecialIndentListChanged(void);=0A=0A // actions for a=
ll spacing-related spin-button changes are the same=0A// virtual void event=
_SpacingSpinButtonChanged(GtkWidget * spinbutton, GtkAdjustment * adj);=0A/=
/ virtual void event_SpecialSpacingListChanged(void);=0A=0A // Line and Pag=
e Breaks=0A// virtual void event_WidowOrphanControlToggled(void);=0A// virt=
ual void event_KeepLinesTogetherToggled(void);=0A// virtual void event_Keep=
WithNextToggled(void);=0A// virtual void event_PageBreakBeforeToggled(void)=
;=0A=0A// virtual void event_SuppressLineNumbersToggled(void);=0A// virtual=
void event_NoHyphenateToggled(void);=0A =0A=0A protected:=0A=0A // we impl=
ement these so the XP dialog can set/grab our data=0A =0A virtual UT_Bool =
_gatherSpellCheckAsType(void);=0A virtual void _setSpellCheckAsType(UT_B=
ool b);=0A virtual UT_Bool _gatherSpellHideErrors(void);=0A virtual void =
_setSpellHideErrors(UT_Bool b);=0A virtual UT_Bool _gatherSpellSuggest(=
void);=0A virtual void _setSpellSuggest(UT_Bool b);=0A virtual UT_Bool =
_gatherSpellMainOnly(void);=0A virtual void _setSpellMainOnly(UT_Bool b);=
=0A virtual UT_Bool _gatherSpellUppercase(void);=0A virtual void _setSp=
ellUppercase(UT_Bool b);=0A virtual UT_Bool _gatherSpellNumbers(void);=0A=
virtual void _setSpellNumbers(UT_Bool b);=0A virtual UT_Bool _gatherSp=
ellInternet(void);=0A virtual void _setSpellInternet(UT_Bool b);=0A =0A p=
rotected:=0A //GR_Win32Graphics * m_unixGraphics;=0A =0A // private const=
ruction functions=0A /*GtkWidget * _constructWindow(void);=0A void _popula=
teWindowData(void);=0A void _enablePercentSpin(UT_Bool enable);=0A */=0A=
=0A // pointers to widgets we need to query/set=0A // there are a ton of th=
em in this dialog=0A=0A};=0A=0A#endif /* XAP_WIN32DIALOG_PARAGRAPH_H */=0A=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00wp/ap/win/ap_Win32Dialog_Options.cpp=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=000100664=000001025=000000764=00000=
00025677=0007001267141=00016607=00 0=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00ustar =00shack=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00shack=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00/* AbiWord=0A * Copyright (C) 1998 AbiSource, Inc.=0A * =
=0A * This program is free software; you can redistribute it and/or=0A * mo=
dify it under the terms of the GNU General Public License=0A * as published=
by the Free Software Foundation; either version 2=0A * of the License, or =
(at your option) any later version.=0A * =0A * This program is distributed =
in the hope that it will be useful,=0A * but WITHOUT ANY WARRANTY; without =
even the implied warranty of=0A * MERCHANTABILITY or FITNESS FOR A PARTICUL=
AR PURPOSE. See the=0A * GNU General Public License for more details.=0A *=
=0A * You should have received a copy of the GNU General Public License=0A=
* along with this program; if not, write to the Free Software=0A * Foundat=
ion, Inc., 59 Temple Place - Suite 330, Boston, MA =0A * 02111-1307, USA.=
=0A */=0A=0A#include "ut_types.h"=0A#include "ut_string.h"=0A#include "ut_a=
ssert.h"=0A#include "ut_debugmsg.h"=0A=0A// This header defines some functi=
ons for Win32 dialogs,=0A// like centering them, measuring them, etc.=0A#in=
clude "ut_dialogHelper.h"=0A=0A#include "gr_Win32Graphics.h"=0A=0A#include =
"xap_App.h"=0A#include "xap_Win32App.h"=0A#include "xap_Win32Frame.h"=0A#in=
clude "xap_Prefs.h"=0A=0A#include "ap_Dialog_Id.h"=0A#include "ap_Prefs_Sch=
emeIds.h"=0A=0A#include "ap_Strings.h"=0A=0A#include "ap_Win32Dialog_Option=
s.h"=0A=0A/****************************************************************=
*/=0A=0A#define WIDGET_DIALOG_TAG "dialog"=0A=0A/**************************=
***************************************/=0A=0AXAP_Dialog * AP_Win32Dialog_O=
ptions::static_constructor(XAP_DialogFactory * pFactory,=0A =
XAP_Dialog_Id id)=0A{=0A AP_Win=
32Dialog_Options * p =3D new AP_Win32Dialog_Options(pFactory,id);=0A ret=
urn p;=0A}=0A=0AAP_Win32Dialog_Options::AP_Win32Dialog_Options(XAP_DialogFa=
ctory * pDlgFactory,=0A XAP=
_Dialog_Id id)=0A : AP_Dialog_Options(pDlgFactory,id)=0A{=0A#if 0=0A XAP=
_Prefs *prefs =3D m_pApp->getPrefs();=0A UT_ASSERT(prefs);=0A UT_DEBUGMSG((=
"AP_Win32Dialog_Options::AP_Win32Dialog_Options[%s:%d]", __FILE__, __LINE__=
));=0A UT_DEBUGMSG((" current pref : %s",=0A prefs->getCurrentScheme()-=
>getSchemeName()) );=0A=0A UT_Bool b =3D prefs->savePrefsFile();=0A UT_DEBU=
GMSG((" prefs saved (%d) in %s", b, prefs->getPrefsPathname() ));=0A=0A =
UT_uint32 i;=0A XAP_PrefsScheme *ps;=0A for ( i =3D 0; (ps =3D prefs->getNt=
hScheme(i)) !=3D 0; i++ ) {=0A UT_DEBUGMSG((" %d [%s]", i, ps->getSchem=
eName() ));=0A =0A XML_Char const *pszKey, *pszValue;=0A for ( UT_uint32 =
j =3D 0; ps->getNthValue(j, &pszKey, &pszValue ); j++ ) {=0A UT_DEBUGMSG(=
(" %x %-30s : %s", j, pszKey, pszValue ));=0A }=0A }=0A#endif=0A}=
=0A=0AAP_Win32Dialog_Options::~AP_Win32Dialog_Options(void)=0A{=0A}=0A=0A/*=
****************************************************************/=0A=0A// s=
ample callback function=0Astatic void s_ok_clicked(GtkWidget * widget, AP_W=
in32Dialog_Options * dlg)=0A{ UT_ASSERT(widget && dlg); dlg->event_OK(); }=
=0A=0Astatic void s_cancel_clicked(GtkWidget * widget, AP_Win32Dialog_Optio=
ns * dlg)=0A{ UT_ASSERT(widget && dlg); dlg->event_Cancel(); }=0A=0Astatic =
void s_delete_clicked(GtkWidget * /* widget */,=0A =
gpointer /* data */,=0A AP_Win32Dialog_Opti=
ons * dlg)=0A{ UT_ASSERT(dlg); dlg->event_WindowDelete(); }=0A=0A// toggle =
buttons=0A#if 0=0Astatic void s_check_widoworphancontrol_toggled(GtkWidget =
* widget, AP_Win32Dialog_Options * dlg)=0A{ UT_ASSERT(widget && dlg); dlg->=
event_WidowOrphanControlToggled(); }=0A=0Astatic void s_check_keeplinestoge=
ther_toggled(GtkWidget * widget, AP_Win32Dialog_Options * dlg)=0A{ UT_ASSER=
T(widget && dlg); dlg->event_KeepLinesTogetherToggled(); }=0A=0Astatic void=
s_check_keepwithnext_toggled(GtkWidget * widget, AP_Win32Dialog_Options * =
dlg)=0A{ UT_ASSERT(widget && dlg); dlg->event_KeepWithNextToggled(); }=0A=
=0Astatic void s_check_pagebreakbefore_toggled(GtkWidget * widget, AP_Win32=
Dialog_Options * dlg)=0A{ UT_ASSERT(widget && dlg); dlg->event_PageBreakBef=
oreToggled(); }=0A=0Astatic void s_check_suppresslinenumbers_toggled(GtkWid=
get * widget, AP_Win32Dialog_Options * dlg)=0A{ UT_ASSERT(widget && dlg); d=
lg->event_SuppressLineNumbersToggled(); }=0A=0Astatic void s_check_nohyphen=
ate_toggled(GtkWidget * widget, AP_Win32Dialog_Options * dlg)=0A{ UT_ASSERT=
(widget && dlg); dlg->event_NoHyphenateToggled(); }=0A#endif=0A=0A// previe=
w drawing area=0A=0A/******************************************************=
***********/=0A=0Avoid AP_Win32Dialog_Options::runModal(XAP_Frame * pFrame)=
=0A{=0A#if 0=0A // Build the window's widgets and arrange them=0A Gtk=
Widget * mainWindow =3D _constructWindow();=0A UT_ASSERT(mainWindow);=0A=
=0A // Populate the window's data items=0A _populateWindowData();=0A=
=0A // To center the dialog, we need the frame of its parent.=0A XAP_=
Win32Frame * pWin32Frame =3D static_cast<XAP_Win32Frame *>(pFrame);=0A U=
T_ASSERT(pWin32Frame);=0A =0A // Get the GtkWindow of the parent fram=
e=0A GtkWidget * parentWindow =3D pWin32Frame->getTopLevelWindow();=0A =
UT_ASSERT(parentWindow);=0A =0A // Center our new dialog in its par=
ent and make it a transient=0A // so it won't get lost underneath=0A =
centerDialog(parentWindow, mainWindow);=0A gtk_window_set_transient_for(=
GTK_WINDOW(mainWindow), GTK_WINDOW(parentWindow));=0A=0A // Show the top=
level dialog,=0A gtk_widget_show(mainWindow);=0A=0A // Make it modal=
, and stick it up top=0A gtk_grab_add(mainWindow);=0A=0A // Run into =
the GTK event loop for this window.=0A gtk_main();=0A=0A _storeWindow=
Data();=0A =0A gtk_widget_destroy(mainWindow);=0A#endif=0A}=0A=0Avoid=
AP_Win32Dialog_Options::event_OK(void)=0A{=0A m_answer =3D AP_Dialog_Op=
tions::a_OK;=0A// gtk_main_quit();=0A}=0A=0Avoid AP_Win32Dialog_Options:=
:event_Cancel(void)=0A{=0A m_answer =3D AP_Dialog_Options::a_CANCEL;=0A/=
/ gtk_main_quit();=0A}=0A=0Avoid AP_Win32Dialog_Options::event_WindowDel=
ete(void)=0A{=0A m_answer =3D AP_Dialog_Options::a_CANCEL; =0A// g=
tk_main_quit();=0A}=0A=0A/****************************************/=0A=0A//=
Alignment methods=0A=0A//void AP_Win32Dialog_Options::event_AlignmentChang=
ed(void) { }=0A=0A/****************************************/=0A=0A// generi=
c methods for spin buttons=0A#if 0=0Avoid AP_Win32Dialog_Options::event_Upd=
ateEntry(GtkWidget * widget)=0A{=0A gchar * oldtext =3D gtk_entry_get_te=
xt(GTK_ENTRY(widget));=0A=0A XML_Char * newtext =3D _filterUserInput((XM=
L_Char *) oldtext);=0A=0A // we have to protect this section with a lock=
, so that updating=0A // the text doesn't trigger this same event=0A =
{=0A gtk_object_set_data(GTK_OBJECT(widget), "updatelock", (void *) =
TRUE);=0A =0A if ( ((gboolean) gtk_object_get_data(GTK_OBJECT(wid=
get), "updatelock")) =3D=3D FALSE)=0A gtk_entry_set_text(GTK_ENT=
RY(widget), (const gchar *) newtext);=0A=0A gtk_object_set_data(GTK_=
OBJECT(widget), "updatelock", (void *) FALSE);=0A }=0A}=0A#endif=0A=0A#i=
f 0=0Avoid AP_Win32Dialog_Options::event_UnitSpinButtonChanged(GtkWidget * =
spinbutton, GtkAdjustment * adj)=0A{=0A UT_ASSERT(spinbutton && adj);=0A=
=0A const char * newvalue =3D=0A UT_convertToDimensionString(=
m_dim, (double) adj->value, ".1");=0A=0A UT_ASSERT(newvalue);=0A=0A G=
tkSpinButton * sb =3D GTK_SPIN_BUTTON(spinbutton);=0A=0A GtkEntry * entr=
y =3D & sb->entry;=0A =0A gtk_entry_set_text(entry, newvalue);=0A}=0A=
=0Avoid AP_Win32Dialog_Options::event_UnitlessSpinButtonChanged(GtkWidget *=
spinbutton, GtkAdjustment * adj)=0A{=0A UT_ASSERT(spinbutton && adj);=
=0A =0A const char * newvalue =3D=0A UT_convertToDimensionStri=
ng(m_dim, (double) adj->value, ".1");=0A=0A UT_ASSERT(newvalue);=0A=0A =
GtkSpinButton * sb =3D GTK_SPIN_BUTTON(spinbutton);=0A=0A GtkEntry * e=
ntry =3D & sb->entry;=0A =0A gtk_entry_set_text(entry, newvalue);=0A}=
=0A#endif=0A=0A/****************************************/=0A=0A/***********=
******************************************************/=0A=0A#if 0=0A=0AAP_=
Dialog_Options::tAlignment AP_Win32Dialog_Options::_gatherAlignmentType(voi=
d) {}=0Avoid AP_Win32Dialog_Options::_setAlignmentType(AP_Dialog_Options::t=
Alignment alignment) {}=0AAP_Dialog_Options::tSpecialIndent AP_Win32Dialog_=
Options::_gatherSpecialIndentType(void) {}=0Avoid AP_Win32Dialog_Options::_=
setSpecialIndentType(AP_Dialog_Options::tSpecialIndent indent) {}=0AAP_Dial=
og_Options::tLineSpacing AP_Win32Dialog_Options::_gatherLineSpacingType(voi=
d) {}=0Avoid AP_Win32Dialog_Options::_setLineSpacingType(AP_Dialog_Options:=
:tLineSpacing spacing) {}=0A =0Aconst XML_Char * AP_Win32Dialog_Optio=
ns::_gatherLeftIndent(void) {}=0Avoid AP_Win32Dialog_Options=
::_setLeftIndent(const XML_Char * indent) {}=0Aconst XML_Char * AP_Win32=
Dialog_Options::_gatherRightIndent(void) {}=0Avoid AP_Win32D=
ialog_Options::_setRightIndent(const XML_Char * indent) {}=0Aconst XML_Char=
* AP_Win32Dialog_Options::_gatherSpecialIndent(void) {}=0Avoid =
AP_Win32Dialog_Options::_setSpecialIndent(const XML_Char * indent) {=
}=0A =0Aconst XML_Char * AP_Win32Dialog_Options::_gatherBeforeSpacing=
(void) {}=0Avoid AP_Win32Dialog_Options::_setBeforeSpacing(c=
onst XML_Char * spacing) {}=0Aconst XML_Char * AP_Win32Dialog_Options::_=
gatherAfterSpacing(void) {}=0Avoid AP_Win32Dialog_Options::_=
setAfterSpacing(const XML_Char * spacing) {}=0Aconst XML_Char * AP_Win32=
Dialog_Options::_gatherSpecialSpacing(void) {} =0Avoid AP=
_Win32Dialog_Options::_setSpecialSpacing(const XML_Char * spacing) {}=0A =
=0AUT_Bool AP_Win32Dialog_Options::_gatherWidowOrphanContro=
l(void) {}=0Avoid AP_Win32Dialog_Options::_setWidowOrphanCon=
trol(UT_Bool b) {}=0AUT_Bool AP_Win32Dialog_Options::_gather=
KeepLinesTogether(void) {}=0Avoid AP_Win32Dialog_Options::_s=
etKeepLinesTogether(UT_Bool b) {}=0AUT_Bool AP_Win32Dialog_O=
ptions::_gatherKeepWithNext(void) {}=0Avoid AP_Win32Dialog_O=
ptions::_setKeepWithNext(UT_Bool b) {}=0AUT_Bool AP_Win32Dia=
log_Options::_gatherSuppressLineNumbers(void) {}=0Avoid AP_W=
in32Dialog_Options::_setSuppressLineNumbers(UT_Bool b) {}=0AUT_Bool =
AP_Win32Dialog_Options::_gatherNoHyphenate(void) {}=0Avoid =
AP_Win32Dialog_Options::_setNoHyphenate(UT_Bool b) {}=0A=0A#endif=0A=
=0A/*****************************************************************/=0A=
=0A/*=0AGtkWidget* AP_Win32Dialog_Options::_constructWindow ()=0A{=0A}=0A*/=
=0A=0AUT_Bool AP_Win32Dialog_Options::_gatherSpellCheckAsType(void) { r=
eturn UT_TRUE; }=0Avoid AP_Win32Dialog_Options::_setSpellCheckAsType=
(UT_Bool b) { b =3D b; }=0AUT_Bool AP_Win32Dialog_Options::_gatherSpell=
HideErrors(void) { return UT_TRUE; }=0Avoid AP_Win32Dialog_Options::=
_setSpellHideErrors(UT_Bool b) { b =3D b; }=0AUT_Bool AP_Win32Dialog_Op=
tions::_gatherSpellSuggest(void) { return UT_TRUE; }=0Avoid AP_Win3=
2Dialog_Options::_setSpellSuggest(UT_Bool b) { b =3D b; }=0AUT_Bool AP=
_Win32Dialog_Options::_gatherSpellMainOnly(void) { return UT_TRUE; }=0Avoi=
d AP_Win32Dialog_Options::_setSpellMainOnly(UT_Bool b) { b =3D b; }=
=0AUT_Bool AP_Win32Dialog_Options::_gatherSpellUppercase(void) { retur=
n UT_TRUE; }=0Avoid AP_Win32Dialog_Options::_setSpellUppercase(UT_Bo=
ol b) { b =3D b; }=0AUT_Bool AP_Win32Dialog_Options::_gatherSpellNumber=
s(void) { return UT_TRUE; }=0Avoid AP_Win32Dialog_Options::_setSpel=
lNumbers(UT_Bool b) { b =3D b; }=0AUT_Bool AP_Win32Dialog_Options::_ga=
therSpellInternet(void) { return UT_TRUE; }=0Avoid AP_Win32Dialog_O=
ptions::_setSpellInternet(UT_Bool b) { b =3D b; }=0A=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00wp/ap/xp/ap_Dialog_Options.h=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=000100664=000001025=000000764=00=
00000004714=0007001264346=00015254=00 0=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00ustar =00shack=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00shack=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00/* AbiWord=0A * Copyright (C) 1998 AbiSource, Inc.=0A =
* =0A * This program is free software; you can redistribute it and/or=0A * =
modify it under the terms of the GNU General Public License=0A * as publish=
ed by the Free Software Foundation; either version 2=0A * of the License, o=
r (at your option) any later version.=0A * =0A * This program is distribute=
d in the hope that it will be useful,=0A * but WITHOUT ANY WARRANTY; withou=
t even the implied warranty of=0A * MERCHANTABILITY or FITNESS FOR A PARTIC=
ULAR PURPOSE. See the=0A * GNU General Public License for more details.=0A=
* =0A * You should have received a copy of the GNU General Public License=
=0A * along with this program; if not, write to the Free Software=0A * Foun=
dation, Inc., 59 Temple Place - Suite 330, Boston, MA =0A * 02111-1307, US=
A.=0A */=0A=0A#ifndef AP_DIALOG_OPTIONS_H=0A#define AP_DIALOG_OPTIONS_H=0A=
=0A#include "xap_Frame.h"=0A#include "xap_Dialog.h"=0A#include "xav_View.h"=
=0A=0Aclass XAP_Frame;=0A=0Aclass AP_Dialog_Options : public XAP_Dialog_Non=
Persistent=0A{=0A public:=0A=0A AP_Dialog_Options(XAP_DialogFactory * pDlgF=
actory, XAP_Dialog_Id id);=0A virtual ~AP_Dialog_Options(void);=0A=0A virtu=
al void runModal(XAP_Frame * pFrame) =3D 0;=0A=0A // answer from dialog=0A =
typedef enum { a_OK, a_CANCEL } tAnswer;=0A=0A AP_Dialog_Options::tAnswer g=
etAnswer(void) const;=0A=0A protected:=0A void _storeWindowData(void); // c=
alls the following functions to=0A // lookup values to set as prefe=
rences=0A // don't see any need to make virtual yet, all=0A /=
/ optdlgs should as for the same preferences=0A=0A virtual UT_Bool _gathe=
rSpellCheckAsType(void) =3D 0;=0A virtual void _setSpellCheckAsType(UT_Bo=
ol b) =3D 0;=0A virtual UT_Bool _gatherSpellHideErrors(void) =3D 0;=0A vi=
rtual void _setSpellHideErrors(UT_Bool b) =3D 0;=0A virtual UT_Bool _ga=
therSpellSuggest(void) =3D 0;=0A virtual void _setSpellSuggest(UT_Bool b)=
=3D 0;=0A virtual UT_Bool _gatherSpellMainOnly(void) =3D 0;=0A virtual v=
oid _setSpellMainOnly(UT_Bool b) =3D 0;=0A virtual UT_Bool _gatherSpell=
Uppercase(void) =3D 0;=0A virtual void _setSpellUppercase(UT_Bool b) =3D =
0;=0A virtual UT_Bool _gatherSpellNumbers(void) =3D 0;=0A virtual void =
_setSpellNumbers(UT_Bool b) =3D 0;=0A virtual UT_Bool _gatherSpellInterne=
t(void) =3D 0;=0A virtual void _setSpellInternet(UT_Bool b) =3D 0;=0A =0A=
protected:=0A =0A tAnswer m_answer;=0A UT_Bool m_SpellCheckAsType;=
=0A UT_Bool m_SpellHideErrors;=0A UT_Bool m_SpellSpellSuggest;=0A UT_=
Bool m_SpellMainOnly;=0A UT_Bool m_SpellUppercase;=0A UT_Bool m_Sp=
ellNumbers;=0A UT_Bool m_SpellInternet;=0A};=0A=0A#endif /* AP_DIALOG_PA=
RAGRAPH_H */=0A=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00wp/ap/xp/ap_Dialog_Options.cpp=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=000100664=000001025=000000764=00000000051=
02=0007001264601=00015571=00 0=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00ustar =00shack=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00shack=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00/* AbiWord=0A * Copyright (C) 1998 AbiSource, Inc.=0A * =0A * T=
his program is free software; you can redistribute it and/or=0A * modify it=
under the terms of the GNU General Public License=0A * as published by the=
Free Software Foundation; either version 2=0A * of the License, or (at you=
r option) any later version.=0A * =0A * This program is distributed in the =
hope that it will be useful,=0A * but WITHOUT ANY WARRANTY; without even th=
e implied warranty of=0A * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURP=
OSE. See the=0A * GNU General Public License for more details.=0A * =0A * =
You should have received a copy of the GNU General Public License=0A * alon=
g with this program; if not, write to the Free Software=0A * Foundation, In=
c., 59 Temple Place - Suite 330, Boston, MA =0A * 02111-1307, USA.=0A */=
=0A=0A#include <stdlib.h>=0A#include <stdio.h>=0A#include <string.h>=0A#inc=
lude "ut_assert.h"=0A#include "ut_string.h"=0A#include "ut_debugmsg.h"=0A=
=0A#include "xap_Dialog_Id.h"=0A#include "xap_DialogFactory.h"=0A#include "=
xap_Prefs.h"=0A=0A#include "ap_Dialog_Options.h"=0A#include "ap_Prefs_Schem=
eIds.h"=0A=0AAP_Dialog_Options::AP_Dialog_Options(XAP_DialogFactory * pDlgF=
actory, XAP_Dialog_Id id)=0A : XAP_Dialog_NonPersistent(pDlgFactory,id)=0A{=
=0A m_answer =3D a_OK;=0A}=0A=0AAP_Dialog_Options::~AP_Dialog_Options(void)=
=0A{=0A}=0A=0AAP_Dialog_Options::tAnswer AP_Dialog_Options::getAnswer(void)=
const=0A{=0A return m_answer;=0A}=0A=0A#define SAVE_PREF_BOOL(key,var) {sz=
Buffer[0] =3D ((var)=3D=3DUT_TRUE ? '1' : '0'); \=0A pPrefsScheme->=
setValue( key, szBuffer );}=0Avoid AP_Dialog_Options::_storeWindowData(void=
)=0A{=0A XAP_Prefs *pPrefs =3D m_pApp->getPrefs();=0A UT_ASSERT(pPrefs);=0A=
=0A XAP_PrefsScheme *pPrefsScheme =3D pPrefs->getCurrentScheme();=0A UT_ASS=
ERT(pPrefs->getCurrentScheme());=0A=0A // check to see if there is any othe=
r scheme besides _buildin_=0A UT_ASSERT( pPrefsScheme ); =0A if ( !strcmp( =
pPrefs->getCurrentScheme()->getSchemeName(), "_builtin_") ) {=0A // TODO: =
need to decide on a scheme default name=0A const XML_Char new_name[] =3D "=
user_prefs";=0A =0A pPrefsScheme =3D new XAP_PrefsScheme(new_name);=0A U=
T_ASSERT( pPrefsScheme ); =0A pPrefs->addScheme( pPrefsScheme );=0A pPref=
s->setCurrentScheme( new_name );=0A }=0A=0A // save the values to the Prefs=
classes=0A XML_Char szBuffer[] =3D { 0, 0 }; // needed by SAVE_PREF_BOOL =
macro=0A SAVE_PREF_BOOL( AP_PREF_KEY_AutoSpellCheck, _gatherSpellCheckAsTyp=
e() );=0A=0A // do we want to save the preferences automatically here?=0A /=
/ probably not, but for now, lets do until I add the TODO =0A // "do you wa=
nt to save your changes?" dialog=0A // shack@uiuc.edu=0A if ( pPrefs->get=
AutoSavePrefs() =3D=3D UT_FALSE ) {=0A // TODO: check the results=0A pPre=
fs->savePrefsFile();=0A }=0A}=0A#undef SAVE_PREF_BOOL=0A=0A=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=00=
=00=00=00=00=00=00=00=00=00=00=00=00=00
--zhXaljGHf11kAtnf--



This archive was generated by hypermail 1.03b2.