This patch contains a few dialogs, updated and moved clipboard code into 
the xap where it should be, added cursor support, and some more various 
fixes.


/Johan Bj�rk

Index: wp/ap/qnx/ap_QNXApp.cpp
===================================================================
RCS file: /cvsroot/abi/src/wp/ap/qnx/ap_QNXApp.cpp,v
retrieving revision 1.29
diff -u -r1.29 ap_QNXApp.cpp
--- wp/ap/qnx/ap_QNXApp.cpp     20 Mar 2002 17:45:04 -0000      1.29
+++ wp/ap/qnx/ap_QNXApp.cpp     26 Mar 2002 03:12:22 -0000
@@ -339,118 +339,56 @@
 
 //////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////
-#define CLIP_FORMAT_COUNT 2
-#define Ph_CLIPBOARD_TYPE_RTF "RTF"
+#define Ph_CLIPBOARD_RTF "RTF"
+#define Ph_CLIPBOARD_TEXT "TEXT"
 
 void AP_QNXApp::copyToClipboard(PD_DocumentRange * pDocRange)
 {
-       PhClipHeader clip[CLIP_FORMAT_COUNT];           //RTF and 8 bit text
        UT_ByteBuf rtfbuf, txtbuf;
-       int                     format_count;
 
-       // copy the given subset of the given document to the
-       // system clipboard in a variety of formats.
-       //
-       m_pClipboard->clearClipboard();
-       
-       // also put RTF on the clipboard
-       format_count = 0;
-       
        IE_Exp_RTF * pExpRtf = new IE_Exp_RTF(pDocRange->m_pDoc);
        if (pExpRtf)
        {
-               UT_Error status;
-               status = pExpRtf->copyToBuffer(pDocRange,&rtfbuf);
+               pExpRtf->copyToBuffer(pDocRange,&rtfbuf);
                UT_Byte b = 0;
                rtfbuf.append(&b,1);                    // null terminate string
                UT_DEBUGMSG(("CopyToClipboard: copying %d bytes in RTF 
format.",rtfbuf.getLength()));
-#if defined(USE_ABI_CLIPBOARD)
-               m_pClipboard->addData(AP_CLIPBOARD_RTF,(UT_Byte 
*)rtfbuf.getPointer(0),rtfbuf.getLength());
-#else
-               strcpy(clip[format_count].type, Ph_CLIPBOARD_TYPE_RTF);
-               clip[format_count].length = rtfbuf.getLength();
-               clip[format_count].data = (void *)rtfbuf.getPointer(0);
-               format_count++;
-#endif
                DELETEP(pExpRtf);
        }
-
        // put raw 8bit text on the clipboard
-               
        IE_Exp_Text * pExpText = new IE_Exp_Text(pDocRange->m_pDoc);
        if (pExpText)
        {
-               UT_Error status;
-               status = pExpText->copyToBuffer(pDocRange,&txtbuf);
+               pExpText->copyToBuffer(pDocRange,&txtbuf);
                UT_Byte b = 0;
                txtbuf.append(&b,1);                    // null terminate string
                UT_DEBUGMSG(("CopyToClipboard: copying %d bytes in TEXTPLAIN 
format.\n",txtbuf.getLength()));
-#if defined(USE_ABI_CLIPBOARD)
-               m_pClipboard->addData(AP_CLIPBOARD_TEXTPLAIN_8BIT,(UT_Byte 
*)txtbuf.getPointer(0),txtbuf.getLength());
-#else
-               strcpy(clip[format_count].type, Ph_CLIPBOARD_TYPE_TEXT);
-               clip[format_count].length = txtbuf.getLength();
-               clip[format_count].data = (void *)txtbuf.getPointer(0);
-               format_count++;
-#endif
                DELETEP(pExpText);
        }
+       if(rtfbuf.getLength() > 0)
+               m_pClipboard->addData(Ph_CLIPBOARD_RTF,(UT_Byte 
+*)rtfbuf.getPointer(0),rtfbuf.getLength());
+       if(txtbuf.getLength() > 0)
+               m_pClipboard->addData(Ph_CLIPBOARD_TEXT,(UT_Byte 
+*)txtbuf.getPointer(0),txtbuf.getLength());            
 
-#if !defined(USE_ABI_CLIPBOARD)
-       PhClipboardCopy(PhInputGroup(NULL), format_count, clip);
-#endif
+       return;
 }
 
 void AP_QNXApp::pasteFromClipboard(PD_DocumentRange * pDocRange, bool bUseClipboard, 
                                                                        bool 
bHonorFormatting)
 {
-       PhClipHeader *clip;
-       void *handle;
-
        // paste from the system clipboard using the best-for-us format
        // that is present.
+       unsigned char * pData = NULL;
+       UT_uint32 iLen=0;
 
-
-       handle = PhClipboardPasteStart(PhInputGroup(NULL));
-
-       if (handle && (clip = PhClipboardPasteType(handle, Ph_CLIPBOARD_TYPE_RTF)) && 
bHonorFormatting) {
-               unsigned char * pData = (unsigned char *)clip->data;
-               UT_uint32 iLen = clip->length;
+       if (bHonorFormatting && 
+m_pClipboard->getClipboardData(AP_CLIPBOARD_RTF,(void**)&pData,&iLen)) {
                iLen = MyMin(iLen,strlen((const char *) pData));
                UT_DEBUGMSG(("PasteFromClipboard: pasting %d bytes in RTF 
format.\n",iLen));
                IE_Imp_RTF * pImpRTF = new IE_Imp_RTF(pDocRange->m_pDoc);
                pImpRTF->pasteFromBuffer(pDocRange,pData,iLen);
                DELETEP(pImpRTF);
        }
-       else if (handle && (clip = PhClipboardPasteType(handle, 
Ph_CLIPBOARD_TYPE_TEXT))) {
-               unsigned char * pData = (unsigned char *)clip->data;
-               UT_uint32 iLen = clip->length;
-               iLen = MyMin(iLen,strlen((const char *) pData));
-               UT_DEBUGMSG(("PasteFromClipboard: pasting %d bytes in TEXTPLAIN 
format.\n",iLen));
-               IE_Imp_Text * pImpText = new IE_Imp_Text(pDocRange->m_pDoc);
-               pImpText->pasteFromBuffer(pDocRange,pData,iLen);
-               DELETEP(pImpText);
-       }
-       else if (m_pClipboard->hasFormat(AP_CLIPBOARD_RTF))
-       {
-               unsigned char * pData = NULL;
-               UT_uint32 iLen = 0;
-               bool bResult;
-               bResult = 
m_pClipboard->getClipboardData(AP_CLIPBOARD_RTF,(void**)&pData,&iLen);
-               UT_ASSERT(bResult);
-               iLen = MyMin(iLen,strlen((const char *) pData));
-               UT_DEBUGMSG(("PasteFromClipboard: pasting %d bytes in RTF 
format.\n",iLen));
-               IE_Imp_RTF * pImpRTF = new IE_Imp_RTF(pDocRange->m_pDoc);
-               pImpRTF->pasteFromBuffer(pDocRange,pData,iLen);
-               DELETEP(pImpRTF);
-       }
-       else if (m_pClipboard->hasFormat(AP_CLIPBOARD_TEXTPLAIN_8BIT))
-       {
-               unsigned char * pData = NULL;
-               UT_uint32 iLen = 0;
-               bool bResult;
-               bResult = 
m_pClipboard->getClipboardData(AP_CLIPBOARD_TEXTPLAIN_8BIT,(void**)&pData,&iLen);
-               UT_ASSERT(bResult);
+       else if 
+(m_pClipboard->getClipboardData(AP_CLIPBOARD_TEXTPLAIN_8BIT,(void**)&pData,&iLen)) {
                iLen = MyMin(iLen,strlen((const char *) pData));
                UT_DEBUGMSG(("PasteFromClipboard: pasting %d bytes in TEXTPLAIN 
format.\n",iLen));
                IE_Imp_Text * pImpText = new IE_Imp_Text(pDocRange->m_pDoc);
@@ -459,36 +397,15 @@
        }
        else {
                // TODO figure out what to do with an image....
-               UT_DEBUGMSG(("PasteFromClipboard: TODO support this format..."));
+               UT_DEBUGMSG(("PasteFromClipboard: No TEXT or RTF data in clipboard. 
+TODO: Add Image support"));
        }
        
-       if (handle) {
-               PhClipboardPasteFinish(handle);
-       }
-
        return;
 }
 
 bool AP_QNXApp::canPasteFromClipboard(void)
 {
-       void *handle;
-
-       handle = PhClipboardPasteStart(PhInputGroup(NULL));
-       if (handle) {
-               if (PhClipboardPasteType(handle, Ph_CLIPBOARD_TYPE_RTF) ||
-                   PhClipboardPasteType(handle, Ph_CLIPBOARD_TYPE_TEXT)) {
-                       PhClipboardPasteFinish(handle);
-                       return true;
-               }
-               PhClipboardPasteFinish(handle);
-       }
-
-       if (m_pClipboard->hasFormat(AP_CLIPBOARD_RTF))
-               return true;
-       if (m_pClipboard->hasFormat(AP_CLIPBOARD_TEXTPLAIN_8BIT))
-               return true;
-
-       return false;
+       return true; 
 }
 
 /*****************************************************************/
Index: wp/ap/qnx/ap_QNXDialog_All.h
===================================================================
RCS file: /cvsroot/abi/src/wp/ap/qnx/ap_QNXDialog_All.h,v
retrieving revision 1.23
diff -u -r1.23 ap_QNXDialog_All.h
--- wp/ap/qnx/ap_QNXDialog_All.h        24 Oct 2001 22:13:10 -0000      1.23
+++ wp/ap/qnx/ap_QNXDialog_All.h        26 Mar 2002 03:12:22 -0000
@@ -43,7 +43,11 @@
 #      include "xap_QNXDlg_Zoom.h"
 #      include "xap_QNXDlg_Insert_Symbol.h"
 #      include "xap_QNXDlg_Language.h"
-#   include "xap_QNXDlg_PluginManager.h"
+# include "xap_QNXDlg_PluginManager.h"
+# include  "xap_QNXDlg_Password.h"
+# include  "xap_QNXDlg_ClipArt.h"
+# include  "xap_QNXDlg_Encoding.h"
+# include  "xap_QNXDlg_Image.h"
 
 #      include "ap_QNXDialog_Replace.h"
 #      include "ap_QNXDialog_Break.h"
@@ -66,7 +70,6 @@
 #   include "ap_QNXDialog_HdrFtr.h"
 #      include "ap_QNXDialog_InsertBookmark.h"
 #      include "ap_QNXDialog_InsertHyperlink.h"
-
        // ... add new dialogs here ...
 
 #else
@@ -83,8 +86,12 @@
        DeclareDialog(XAP_DIALOG_ID_INSERT_SYMBOL,      XAP_QNXDialog_Insert_Symbol)
        DeclareDialog(XAP_DIALOG_ID_INSERT_PICTURE,     XAP_QNXDialog_FileOpenSaveAs)
        DeclareDialog(XAP_DIALOG_ID_PLUGIN_MANAGER, XAP_QNXDialog_PluginManager)
-
        DeclareDialog(XAP_DIALOG_ID_ABOUT,                      XAP_QNXDialog_About)
+       DeclareDialog(XAP_DIALOG_ID_PASSWORD,   XAP_QNXDialog_Password)
+       DeclareDialog(XAP_DIALOG_ID_CLIPART,XAP_QNXDialog_ClipArt)
+       DeclareDialog(XAP_DIALOG_ID_ENCODING,XAP_QNXDialog_Encoding)
+       DeclareDialog(XAP_DIALOG_ID_IMAGE,XAP_QNXDialog_Image)
+
 
        DeclareDialog(AP_DIALOG_ID_REPLACE,                     AP_QNXDialog_Replace)
        DeclareDialog(AP_DIALOG_ID_FIND,                        AP_QNXDialog_Replace)
Index: wp/ap/qnx/ap_QNXDialog_HdrFtr.cpp
===================================================================
RCS file: /cvsroot/abi/src/wp/ap/qnx/ap_QNXDialog_HdrFtr.cpp,v
retrieving revision 1.2
diff -u -r1.2 ap_QNXDialog_HdrFtr.cpp
--- wp/ap/qnx/ap_QNXDialog_HdrFtr.cpp   21 Mar 2002 11:41:29 -0000      1.2
+++ wp/ap/qnx/ap_QNXDialog_HdrFtr.cpp   26 Mar 2002 03:12:22 -0000
@@ -16,7 +16,8 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  
  * 02111-1307, USA.
  */
-
+#include <Ph.h>
+#include <Pt.h>
 #include "ut_string.h"
 #include "ut_assert.h"
 #include "ut_debugmsg.h"
@@ -29,9 +30,80 @@
 #include "ap_Dialog_Id.h"
 #include "ap_Dialog_HdrFtr.h"
 #include "ap_QNXDialog_HdrFtr.h"
+#include "ut_qnxHelper.h"
 
 /*****************************************************************/
 
+int ph_event_ok( PtWidget_t *widget, AP_QNXDialog_HdrFtr * dlg, 
+           PtCallbackInfo_t *info)
+{
+UT_ASSERT(widget && dlg);
+dlg->event_OK();
+
+}
+
+void AP_QNXDialog_HdrFtr::event_OK(void)
+{
+setAnswer(AP_Dialog_HdrFtr::a_OK);
+done=1;
+}
+
+int ph_event_cancel( PtWidget_t *widget,AP_QNXDialog_HdrFtr *dlg, PtCallbackInfo_t 
+*info)
+{
+UT_ASSERT(widget && dlg);
+dlg->event_Cancel();
+}
+
+void AP_QNXDialog_HdrFtr::event_Cancel(void)
+{
+
+setAnswer(AP_Dialog_HdrFtr::a_CANCEL);
+done=1;
+}
+
+int ph_event_close( PtWidget_t *widget, AP_QNXDialog_HdrFtr * dlg, PtCallbackInfo_t 
+*info)
+{
+UT_ASSERT(widget && dlg);
+dlg->done=1;
+}
+
+int ph_activate_restart( PtWidget_t *widget, AP_QNXDialog_HdrFtr * dlg, 
+PtCallbackInfo_t *info)
+{
+UT_ASSERT(widget && dlg);
+dlg->RestartChanged();
+}
+
+int ph_HdrFirst( PtWidget_t *widget,AP_QNXDialog_HdrFtr * dlg, PtCallbackInfo_t *info)
+{
+UT_ASSERT(dlg);
+dlg->CheckChanged(AP_Dialog_HdrFtr::HdrFirst);
+}
+int ph_HdrLast( PtWidget_t *widget,AP_QNXDialog_HdrFtr * dlg, PtCallbackInfo_t *info)
+{
+UT_ASSERT(dlg);
+dlg->CheckChanged(AP_Dialog_HdrFtr::HdrLast);
+}
+int ph_HdrEven( PtWidget_t *widget,AP_QNXDialog_HdrFtr * dlg, PtCallbackInfo_t *info)
+{
+UT_ASSERT(dlg);
+dlg->CheckChanged(AP_Dialog_HdrFtr::HdrEven);
+}
+int ph_FtrFirst( PtWidget_t *widget,AP_QNXDialog_HdrFtr * dlg, PtCallbackInfo_t *info)
+{
+UT_ASSERT(dlg);
+dlg->CheckChanged(AP_Dialog_HdrFtr::FtrFirst);
+}
+int ph_FtrLast( PtWidget_t *widget,AP_QNXDialog_HdrFtr * dlg, PtCallbackInfo_t *info)
+{
+UT_ASSERT(dlg);
+dlg->CheckChanged(AP_Dialog_HdrFtr::FtrLast);
+}
+int ph_FtrEven( PtWidget_t *widget,AP_QNXDialog_HdrFtr * dlg, PtCallbackInfo_t *info)
+{
+UT_ASSERT(dlg);
+dlg->CheckChanged(AP_Dialog_HdrFtr::FtrEven);
+}
+
 XAP_Dialog * AP_QNXDialog_HdrFtr::static_constructor(XAP_DialogFactory * pFactory,
                                                                                       
                  XAP_Dialog_Id id)
 {
@@ -52,32 +124,283 @@
 void AP_QNXDialog_HdrFtr::runModal(XAP_Frame * pFrame)
 {
        UT_ASSERT(pFrame);
-
-/*
-       NOTE: This template can be used to create a working stub for a 
-       new dialog on this platform.  To do so:
+       PtWidget_t *mainWindow = _constructWindow();
+       UT_ASSERT(mainWindow);
+       connectFocus(mainWindow,pFrame);
        
-       1.  Copy this file (and its associated header file) and rename 
-               them accordingly. 
+   // To center the dialog, we need the frame of its parent.
+    XAP_QNXFrame * pQNXFrame = static_cast<XAP_QNXFrame *>(pFrame);
+    UT_ASSERT(pQNXFrame);
+    
+    // Get the Window of the parent frame
+    PtWidget_t * parentWindow = pQNXFrame->getTopLevelWindow();
+    UT_ASSERT(parentWindow);
+    
+    // Center our new dialog in its parent and make it a transient
+    // so it won't get lost underneath
+    // Make it modal, and stick it up top
+       UT_QNXCenterWindow(parentWindow, mainWindow);
+       UT_QNXBlockWidget(parentWindow, 1);
+
+    // Show the top level dialog,
+       PtRealizeWidget(mainWindow);
+
+    // Run the event loop for this window.
+       int count;
+       count = PtModalStart();
+       done=0;
+       do {
+               PtProcessEvent();
+       } while (!done);
+
+       PtModalEnd(MODAL_END_ARG(count));
+       UT_QNXBlockWidget(parentWindow,0);
+       PtDestroyWidget(mainWindow);
+}
 
-       2.  Do a case sensitive global replace on the words Stub and STUB
-               in both files. 
+PtWidget_t * AP_QNXDialog_HdrFtr::_constructWindow(void)
+{
+const XAP_StringSet *pSS = m_pApp->getStringSet();
+PtWidget_t *mainWindow;
+PtWidget_t *PtButton_ok;
+PtWidget_t *PtButton_cancel;
+PtWidget_t *toggleHeadEven;
+PtWidget_t *toggleHeadFirst;
+PtWidget_t *toggleHeadLast;
+PtWidget_t *toggleFootEven;
+PtWidget_t *toggleFootFirst;
+PtWidget_t *toggleFootLast;
+PtWidget_t *toggleRestartNewSection;
+PtWidget_t *textRestartNumber;
+PtWidget_t *UpDown;
+PtWidget_t *Pane1;
+PtWidget_t *RestartLabel;
+
+       /* The window itself */
+       PhDim_t dim = { 496,355 };
+       PtArg_t args[] = {
+               Pt_ARG(Pt_ARG_DIM,&dim,0),
+               
+Pt_ARG(Pt_ARG_WINDOW_TITLE,pSS->getValue(AP_STRING_ID_DLG_HdrFtr_Title),0),
+               Pt_ARG(Pt_ARG_WINDOW_RENDER_FLAGS,0,ABI_MODAL_WINDOW_RENDER_FLAGS),
+               Pt_ARG(Pt_ARG_WINDOW_MANAGED_FLAGS,0,ABI_MODAL_WINDOW_MANAGE_FLAGS)
+               };
+
+        /* Top PtPane, lower */ 
+        PhArea_t area1 = { { 0, 0 }, { 496, 322 } };
+        PtArg_t args1[] = {
+               Pt_ARG( Pt_ARG_AREA, &area1, 0 ),
+               Pt_ARG( Pt_ARG_FLAGS, 256,256 ),
+               Pt_ARG( Pt_ARG_ANCHOR_FLAGS, 1440,8191 ),
+               };
+/* 'Header' PtPane */
+        PhArea_t area2 = { { 3, 23 }, { 486, 95 } };
+        PtArg_t args2[] = {
+               Pt_ARG( Pt_ARG_AREA, &area2, 0 ),
+               Pt_ARG( Pt_ARG_FLAGS, 256,256 ),
+               Pt_ARG( Pt_ARG_BEVEL_WIDTH, 1, 0 ),
+               };
+       /* PtToggle , diff head even page */
+        PhArea_t area3 = { { 5, 5 }, { 466, 24 } };
+        PtArg_t args3[] = {
+               Pt_ARG( Pt_ARG_AREA, &area3, 0 ),
+               Pt_ARG( Pt_ARG_TEXT_STRING, 
+pSS->getValue(AP_STRING_ID_DLG_HdrFtr_HeaderEven), 0 ),
+               };
+               /* PtToggle, diff head first page */
+        PhArea_t area4 = { { 5, 31 }, { 469, 24 } };
+        PtArg_t args4[] = {
+               Pt_ARG( Pt_ARG_AREA, &area4, 0 ),
+               Pt_ARG( 
+Pt_ARG_TEXT_STRING,pSS->getValue(AP_STRING_ID_DLG_HdrFtr_HeaderFirst), 0 ),
+               };
+        /* PtToggle diff head last page */
+        PhArea_t area5 = { { 5, 58 }, { 469, 24 } };
+        PtArg_t args5[] = {
+               Pt_ARG( Pt_ARG_AREA, &area5, 0 ),
+               Pt_ARG( Pt_ARG_TEXT_STRING, 
+pSS->getValue(AP_STRING_ID_DLG_HdrFtr_HeaderLast) , 0 ),
+               };
+       /* Head label  */
+        PhArea_t area6 = { { 5, 0 }, { 206, 21 } };
+        PtArg_t args6[] = {
+               Pt_ARG( Pt_ARG_AREA, &area6, 0 ),
+               Pt_ARG( 
+Pt_ARG_TEXT_STRING,pSS->getValue(AP_STRING_ID_DLG_HdrFtr_HeaderFrame) , 0 ),
+               };
+               /* Footer label */
+        PhArea_t area7 = { { 5, 133 }, { 308, 21 } };
+        PtArg_t args7[] = {
+               Pt_ARG( Pt_ARG_AREA, &area7, 0 ),
+               Pt_ARG( 
+Pt_ARG_TEXT_STRING,pSS->getValue(AP_STRING_ID_DLG_HdrFtr_FooterFrame) , 0 ),
+               };
+       /*PtPane  Footer*/
+        PhArea_t area8 = { { 3, 159 }, { 486, 110 } };
+        PtArg_t args8[] = {
+               Pt_ARG( Pt_ARG_AREA, &area8, 0 ),
+               Pt_ARG( Pt_ARG_FLAGS, 256,256 ),
+               Pt_ARG( Pt_ARG_BEVEL_WIDTH, 1, 0 ),
+               };
+       /*PtToggle Diff foot first page */
+        PhArea_t area9 = { { 5, 31 }, { 472, 24 } };
+        PtArg_t args9[] = {
+               Pt_ARG( Pt_ARG_AREA, &area9, 0 ),
+               Pt_ARG( Pt_ARG_TEXT_STRING, 
+pSS->getValue(AP_STRING_ID_DLG_HdrFtr_FooterFirst), 0 ),
+               };
+        /*PtToggle Diff foor last page */
+        PhArea_t area10 = { { 5, 58 }, { 469, 24 } };
+        PtArg_t args10[] = {
+               Pt_ARG( Pt_ARG_AREA, &area10, 0 ),
+               Pt_ARG( Pt_ARG_TEXT_STRING, 
+pSS->getValue(AP_STRING_ID_DLG_HdrFtr_FooterLast), 0 ),
+               };
+       /*PtToggle, diff foot on even page */
+        PhArea_t area11 = { { 5, 5 }, { 472, 24 } };
+        PtArg_t args11[] = {
+               Pt_ARG( Pt_ARG_AREA, &area11, 0 ),
+               Pt_ARG( Pt_ARG_TEXT_STRING, 
+pSS->getValue(AP_STRING_ID_DLG_HdrFtr_FooterEven), 0 ),
+               };
+        /* PtToggle, restart page number on new section */
+        PhArea_t area12 = { { 10, 282 }, { 268, 24 } };
+        PtArg_t args12[] = {
+               Pt_ARG( Pt_ARG_AREA, &area12, 0 ),
+               Pt_ARG( 
+Pt_ARG_TEXT_STRING,pSS->getValue(AP_STRING_ID_DLG_HdrFtr_RestartCheck), 0 ),
+               };
+               /* PtLabel restart numbering at.. */
+        PhArea_t area13 = { { 288, 285 }, { 139, 21 } };
+        PtArg_t args13[] = {
+               Pt_ARG( Pt_ARG_AREA, &area13, 0 ),
+               Pt_ARG( 
+Pt_ARG_TEXT_STRING,pSS->getValue(AP_STRING_ID_DLG_HdrFtr_RestartNumbers) , 0 ),
+               };
+               /*PtText, where to restart numbering.  */
+        PhArea_t area14 = { { 432, 280 }, { 37, 27 } };
+        PtArg_t args14[] = {
+               Pt_ARG( Pt_ARG_AREA, &area14, 0 ),
+               Pt_ARG( Pt_ARG_TEXT_STRING,"0",0),
+               Pt_ARG( Pt_ARG_EDIT_MASK, "####", 0 ),
+               };
+               /*PtUpDown */
+        PhArea_t area15 = { { 468, 280 }, { 18, 27 } };
+        PtArg_t args15[] = {
+               Pt_ARG( Pt_ARG_AREA, &area15, 0 ),
+               };
+       /*PtPane for OK buttons. */
+        PhArea_t area16 = { { 0, 321 }, { 496, 33 } };
+        PtArg_t args16[] = {
+               Pt_ARG( Pt_ARG_AREA, &area16, 0 ),
+               Pt_ARG( Pt_ARG_FLAGS, 258,1334445470 ),
+               Pt_ARG( Pt_ARG_FILL_COLOR, 0xc0c0c0, 0 ),
+               Pt_ARG( Pt_ARG_BASIC_FLAGS, 67056,4194303 ),
+               };
+               /* PtButton Cancel */
+        PhArea_t area17 = { { 320, 2 }, { 82, 27 } };
+        PtArg_t args17[] = {
+               Pt_ARG( Pt_ARG_AREA, &area17, 0 ),
+               Pt_ARG( Pt_ARG_TEXT_STRING,pSS->getValue(XAP_STRING_ID_DLG_Cancel) , 0 
+),
+               Pt_ARG( Pt_ARG_ANCHOR_FLAGS, 48,8191 ),
+               };
+               /* PtButton OK*/
+        PhArea_t area18 = { { 408, 2 }, { 82, 27 } };
+        PtArg_t args18[] = {
+               Pt_ARG( Pt_ARG_AREA, &area18, 0 ),
+               Pt_ARG( Pt_ARG_TEXT_STRING, pSS->getValue(XAP_STRING_ID_DLG_OK), 0 ),
+               };
+
+       mainWindow=PtCreateWidget( PtWindow,NULL,sizeof(args) / sizeof(PtArg_t),args);
+       Pane1=PtCreateWidget( PtPane, NULL, sizeof(args1) / sizeof(PtArg_t), args1 );
+               PtCreateWidget( PtPane, NULL, sizeof(args2) / sizeof(PtArg_t), args2 );
+       toggleHeadEven=PtCreateWidget( PtToggleButton, NULL, sizeof(args3) / 
+sizeof(PtArg_t), args3 );
+       toggleHeadFirst=PtCreateWidget( PtToggleButton, NULL, sizeof(args4) / 
+sizeof(PtArg_t), args4 );
+       toggleHeadLast=PtCreateWidget( PtToggleButton, NULL, sizeof(args5) / 
+sizeof(PtArg_t), args5 );
+               PtCreateWidget( PtLabel, Pane1, sizeof(args6) / sizeof(PtArg_t), args6 
+);
+               PtCreateWidget( PtLabel,Pane1, sizeof(args7) / sizeof(PtArg_t), args7 
+);
+               PtCreateWidget( PtPane, Pane1, sizeof(args8) / sizeof(PtArg_t), args8 
+);
+       toggleFootFirst=PtCreateWidget( PtToggleButton, NULL, sizeof(args9) / 
+sizeof(PtArg_t), args9 );
+       toggleFootLast=PtCreateWidget( PtToggleButton, NULL, sizeof(args10) / 
+sizeof(PtArg_t), args10 );
+       toggleFootEven=PtCreateWidget( PtToggleButton, NULL, sizeof(args11) / 
+sizeof(PtArg_t), args11 );
+       toggleRestartNewSection=PtCreateWidget( PtToggleButton, Pane1, sizeof(args12) 
+/ sizeof(PtArg_t), args12 );
+       RestartLabel=PtCreateWidget( PtLabel, Pane1, sizeof(args13) / sizeof(PtArg_t), 
+args13 );
+       textRestartNumber=PtCreateWidget( PtText, Pane1, sizeof(args14) / 
+sizeof(PtArg_t), args14 );
+       UpDown=PtCreateWidget( PtUpDown, Pane1, sizeof(args15) / sizeof(PtArg_t), 
+args15 );
+               PtCreateWidget( PtPane, mainWindow, sizeof(args16) / sizeof(PtArg_t), 
+args16 );
+       PtButton_cancel=PtCreateWidget( PtButton, NULL, sizeof(args17) / 
+sizeof(PtArg_t), args17 );
+       PtButton_ok=PtCreateWidget( PtButton, NULL, sizeof(args18) / sizeof(PtArg_t), 
+args18 );
 
-       3.  Add stubs for any required methods expected by the XP class. 
-               If the build fails because you didn't do this step properly,
-               you've just broken the donut rule.  
-
-       4.      Replace this useless comment with specific instructions to 
-               whoever's porting your dialog so they know what to do.
-               Skipping this step may not cost you any donuts, but it's 
-               rude.  
-
-       This file should *only* be used for stubbing out platforms which 
-       you don't know how to implement.  When implementing a new dialog 
-       for your platform, you're probably better off starting with code
-       from another working dialog.  
-*/     
+       
+       PtAddCallback(PtButton_cancel,Pt_CB_ACTIVATE,ph_event_cancel,this);
+       PtAddCallback(PtButton_ok,Pt_CB_ACTIVATE,ph_event_ok,this);
+       PtAddCallback(mainWindow,Pt_CB_WINDOW_CLOSING,ph_event_close,this);
+       PtAddCallback(toggleRestartNewSection,Pt_CB_ACTIVATE,ph_activate_restart,this);
+       PtAddCallback(toggleHeadEven,Pt_CB_ACTIVATE,ph_HdrEven,this);
+       PtAddCallback(toggleHeadFirst,Pt_CB_ACTIVATE,ph_HdrFirst,this);
+       PtAddCallback(toggleHeadLast,Pt_CB_ACTIVATE,ph_HdrLast,this);
+       PtAddCallback(toggleFootEven,Pt_CB_ACTIVATE,ph_FtrEven,this);
+       PtAddCallback(toggleFootFirst,Pt_CB_ACTIVATE,ph_FtrFirst,this);
+       PtAddCallback(toggleFootLast,Pt_CB_ACTIVATE,ph_FtrLast,this);
+
+
+       m_wHdrFtr[HdrEven]= toggleHeadEven;
+       m_wHdrFtr[HdrFirst]= toggleHeadFirst;
+       m_wHdrFtr[HdrLast]= toggleHeadLast;
+       m_wHdrFtr[FtrEven]= toggleFootEven;
+       m_wHdrFtr[FtrFirst]= toggleFootFirst;
+       m_wHdrFtr[FtrLast]= toggleFootLast;
+       m_RestartLabel=RestartLabel;
+       m_RestartUpDown= UpDown;
+       m_RestartText=textRestartNumber;
+       m_RestartToggle=toggleRestartNewSection;
+       /* Set up the default state */
+       
+       if(isRestart()) {
+               PtSetResource(toggleRestartNewSection,Pt_ARG_FLAGS,Pt_TRUE,Pt_SET);
+       } else {
+               PtSetResource(m_RestartLabel,   
+Pt_ARG_FLAGS,Pt_TRUE,Pt_GHOST|Pt_BLOCKED);
+               
+PtSetResource(m_RestartUpDown,Pt_ARG_FLAGS,Pt_TRUE,Pt_GHOST|Pt_BLOCKED);
+               PtSetResource(m_RestartText,Pt_ARG_FLAGS,Pt_TRUE,Pt_GHOST|Pt_BLOCKED);
+       }
+
+       UT_sint32 j = (UT_sint32) HdrEven;
+       for(j = (UT_sint32) HdrEven ; j<= (UT_sint32) FtrLast; j++)
+       {
+               bool value = getValue( (HdrFtr_Control) j);
+               if(value)
+               {
+                PtSetResource(m_wHdrFtr[j],Pt_ARG_FLAGS,Pt_TRUE,Pt_SET);
+               }
+               else
+               {
+                        PtSetResource(m_wHdrFtr[j],Pt_ARG_FLAGS,Pt_FALSE,Pt_SET);
+               }
+       }
+return mainWindow;
+}
 
-       UT_ASSERT(UT_NOT_IMPLEMENTED);
+void AP_QNXDialog_HdrFtr::CheckChanged(AP_Dialog_HdrFtr::HdrFtr_Control which)
+{
+bool value=false;
+long *flags;
+
+PtGetResource(m_wHdrFtr[which],Pt_ARG_FLAGS,&flags,0);
+if(*flags & Pt_SET)
+       value=true;
+setValue(which,value,true);
 }
 
+
+void AP_QNXDialog_HdrFtr::RestartChanged(void)
+{
+char *text;
+long * flags;
+UT_sint32 RestartValue;
+
+PtGetResource(m_RestartText,Pt_ARG_TEXT_STRING,&text,0);
+PtGetResource(m_RestartToggle,Pt_ARG_FLAGS,&flags,0);
+
+RestartValue=atoi(text);
+if(Pt_SET & *flags)
+       {
+               PtSetResource(m_RestartLabel,   
+Pt_ARG_FLAGS,Pt_FALSE,Pt_GHOST|Pt_BLOCKED);
+               
+PtSetResource(m_RestartUpDown,Pt_ARG_FLAGS,Pt_FALSE,Pt_GHOST|Pt_BLOCKED);
+               PtSetResource(m_RestartText,Pt_ARG_FLAGS,Pt_FALSE,Pt_GHOST|Pt_BLOCKED);
+               setRestart(true,RestartValue,true);
+       }else {
+               PtSetResource(m_RestartLabel,   
+Pt_ARG_FLAGS,Pt_TRUE,Pt_GHOST|Pt_BLOCKED);
+               
+PtSetResource(m_RestartUpDown,Pt_ARG_FLAGS,Pt_TRUE,Pt_GHOST|Pt_BLOCKED);
+               PtSetResource(m_RestartText,Pt_ARG_FLAGS,Pt_TRUE,Pt_GHOST|Pt_BLOCKED);
+               setRestart(false,RestartValue,true);
+       }
+}
Index: wp/ap/qnx/ap_QNXDialog_HdrFtr.h
===================================================================
RCS file: /cvsroot/abi/src/wp/ap/qnx/ap_QNXDialog_HdrFtr.h,v
retrieving revision 1.2
diff -u -r1.2 ap_QNXDialog_HdrFtr.h
--- wp/ap/qnx/ap_QNXDialog_HdrFtr.h     21 Mar 2002 11:41:31 -0000      1.2
+++ wp/ap/qnx/ap_QNXDialog_HdrFtr.h     26 Mar 2002 03:12:22 -0000
@@ -34,9 +34,19 @@
        virtual void                    runModal(XAP_Frame * pFrame);
 
        static XAP_Dialog *             static_constructor(XAP_DialogFactory *, 
XAP_Dialog_Id id);
-       
-protected:
+       int done;
+       void event_OK(void);
+       void event_Cancel(void);
+       void CheckChanged(HdrFtr_Control which);
+       void RestartChanged(void);
 
+protected:
+       PtWidget_t * m_wHdrFtr[6];
+       PtWidget_t * m_RestartLabel;
+       PtWidget_t * m_RestartUpDown;
+       PtWidget_t * m_RestartText;
+       PtWidget_t * m_RestartToggle;
+       PtWidget_t * _constructWindow(void);
 };
 
 #endif /* AP_QNXDIALOG_HDRFTR_H */
Index: wp/ap/qnx/ap_QNXDialog_PageNumbers.cpp
===================================================================
RCS file: /cvsroot/abi/src/wp/ap/qnx/ap_QNXDialog_PageNumbers.cpp,v
retrieving revision 1.7
diff -u -r1.7 ap_QNXDialog_PageNumbers.cpp
--- wp/ap/qnx/ap_QNXDialog_PageNumbers.cpp      12 Feb 2001 00:59:28 -0000      1.7
+++ wp/ap/qnx/ap_QNXDialog_PageNumbers.cpp      26 Mar 2002 03:12:22 -0000
@@ -309,7 +309,7 @@
        m_vecalign.addItem((void *)AP_Dialog_PageNumbers::id_LALIGN);
        m_vecalign.addItem((void *)AP_Dialog_PageNumbers::id_CALIGN);
        PtAddCallback(combo2, Pt_CB_SELECTION, s_alignment_changed, this);
-       UT_QNXComboSetPos(combo2, 1);
+       UT_QNXComboSetPos(combo2, 3);
 
        //Create the preview area
        //frame1 = gtk_frame_new (pSS->getValue(AP_STRING_ID_DLG_PageNumbers_Preview));
Index: af/xap/qnx/xap_QNXDlg_PluginManager.cpp
===================================================================
RCS file: /cvsroot/abi/src/af/xap/qnx/xap_QNXDlg_PluginManager.cpp,v
retrieving revision 1.5
diff -u -r1.5 xap_QNXDlg_PluginManager.cpp
--- af/xap/qnx/xap_QNXDlg_PluginManager.cpp     20 Mar 2002 17:44:32 -0000      1.5
+++ af/xap/qnx/xap_QNXDlg_PluginManager.cpp     26 Mar 2002 03:12:23 -0000
@@ -379,7 +379,7 @@
        const XAP_StringSet * pSS = m_pApp->getStringSet();
 
        PtArg_t args[10];
-       int n;
+       int n=0;
 
        PtSetArg(&args[n++], Pt_ARG_WINDOW_TITLE, 
pSS->getValue(XAP_STRING_ID_DLG_PLUGIN_MANAGER_TITLE) , 0);
        PtSetArg(&args[n++], Pt_ARG_WINDOW_RENDER_FLAGS, 0, 
ABI_MODAL_WINDOW_RENDER_FLAGS);
Index: af/xap/qnx/xap_QNXDlg_PluginManager.h
===================================================================
RCS file: /cvsroot/abi/src/af/xap/qnx/xap_QNXDlg_PluginManager.h,v
retrieving revision 1.2
diff -u -r1.2 xap_QNXDlg_PluginManager.h
--- af/xap/qnx/xap_QNXDlg_PluginManager.h       20 Jun 2001 11:08:06 -0000      1.2
+++ af/xap/qnx/xap_QNXDlg_PluginManager.h       26 Mar 2002 03:12:23 -0000
@@ -43,6 +43,12 @@
 
 protected:
        PtWidget_t * m_windowMain;
+       PtWidget_t * m_clist;
+       PtWidget_t * m_name;
+       PtWidget_t * m_author;
+       PtWidget_t * m_version;
+       PtWidget_t * m_desc;
+
 
        void _constructWindowContents (PtWidget_t * container);
        virtual PtWidget_t * _constructWindow ();
@@ -51,12 +57,6 @@
        void _refreshAll ();
        void _refreshTab1 ();
        void _refreshTab2 ();
-
-       PtWidget_t * m_clist;
-       PtWidget_t * m_name;
-       PtWidget_t * m_author;
-       PtWidget_t * m_version;
-       PtWidget_t * m_desc;
 
        XAP_Frame * m_pFrame;
        int             done;
Index: af/xap/qnx/xap_QNXDlg_Encoding.cpp
===================================================================
RCS file: /cvsroot/abi/src/af/xap/qnx/xap_QNXDlg_Encoding.cpp,v
retrieving revision 1.1
diff -u -r1.1 xap_QNXDlg_Encoding.cpp
--- af/xap/qnx/xap_QNXDlg_Encoding.cpp  13 Jun 2001 21:09:05 -0000      1.1
+++ af/xap/qnx/xap_QNXDlg_Encoding.cpp  26 Mar 2002 03:12:23 -0000
@@ -131,6 +131,7 @@
        if(mainWindow && GTK_IS_WIDGET(mainWindow))
                gtk_widget_destroy(mainWindow);
 #else
+               UT_ASSERT(UT_NOT_IMPLEMENTED);
        _setAnswer (XAP_Dialog_Encoding::a_CANCEL);
 #endif
 }
Index: af/xap/qnx/xap_QNXDlg_Password.cpp
===================================================================
RCS file: /cvsroot/abi/src/af/xap/qnx/xap_QNXDlg_Password.cpp,v
retrieving revision 1.1
diff -u -r1.1 xap_QNXDlg_Password.cpp
--- af/xap/qnx/xap_QNXDlg_Password.cpp  17 Oct 2001 17:17:05 -0000      1.1
+++ af/xap/qnx/xap_QNXDlg_Password.cpp  26 Mar 2002 03:12:23 -0000
@@ -36,6 +36,18 @@
 
 /*****************************************************************/
 
+int pass_validate( XAP_QNXDialog_Password *dlg,
+              char const *password_entered )
+{
+dlg->SetPassword((char*)password_entered);
+return Pt_PWD_ACCEPT;
+}
+
+void * XAP_QNXDialog_Password::SetPassword(char* pass)
+{
+m_pass=strdup(pass);
+}
+
 XAP_Dialog * XAP_QNXDialog_Password::static_constructor(XAP_DialogFactory * pFactory,
                                                                                       
                  XAP_Dialog_Id id)
 {
@@ -47,40 +59,52 @@
                                                                                       
    XAP_Dialog_Id id)
        : XAP_Dialog_Password(pDlgFactory,id)
 {
+m_pass=0;
 }
 
 XAP_QNXDialog_Password::~XAP_QNXDialog_Password(void)
 {
+if(m_pass)
+       free(m_pass);
 }
 
 void XAP_QNXDialog_Password::runModal(XAP_Frame * pFrame)
-{
+{      
        UT_ASSERT(pFrame);
-
-/*
-       NOTE: This template can be used to create a working stub for a 
-       new dialog on this platform.  To do so:
+       int pwdreturn;
+       const XAP_StringSet * pSS = m_pApp->getStringSet();
+       char **buttons=(char**)calloc(2,sizeof(char*));
+       buttons[0]= (char*) pSS->getValue(XAP_STRING_ID_DLG_Cancel);
+       buttons[1]=(char*)pSS->getValue(XAP_STRING_ID_DLG_OK);
+    
+
+  // To center the dialog, we need the frame of its parent.
+   XAP_QNXFrame * pQNXFrame = static_cast<XAP_QNXFrame *>(pFrame);
+   UT_ASSERT(pQNXFrame);
+     
+       // Get the Window of the parent frame
+  PtWidget_t * parentWindow = pQNXFrame->getTopLevelWindow();
+  UT_ASSERT(parentWindow);
        
-       1.  Copy this file (and its associated header file) and rename 
-               them accordingly. 
-
-       2.  Do a case sensitive global replace on the words Stub and STUB
-               in both files. 
-
-       3.  Add stubs for any required methods expected by the XP class. 
-               If the build fails because you didn't do this step properly,
-               you've just broken the donut rule.  
-
-       4.      Replace this useless comment with specific instructions to 
-               whoever's porting your dialog so they know what to do.
-               Skipping this step may not cost you any donuts, but it's 
-               rude.  
-
-       This file should *only* be used for stubbing out platforms which 
-       you don't know how to implement.  When implementing a new dialog 
-       for your platform, you're probably better off starting with code
-       from another working dialog.  
-*/     
-
-       UT_ASSERT(UT_NOT_IMPLEMENTED);
+       pwdreturn=PtPassword(parentWindow, /* Parent */
+                                                 NULL, /* Location */
+                                                       
+pSS->getValue(XAP_STRING_ID_DLG_Password_Title), /* Title*/
+                                                       NULL, /* Image*/
+                                                       
+pSS->getValue(XAP_STRING_ID_DLG_Password_Title), /* Msg */
+                                                       NULL, /* font*/
+                                                       (const char **)buttons, /* 
+button strings */
+                                                       NULL, /* font*/
+                                                       NULL, /* font*/
+                                                       pass_validate,          /* 
+fake validation.*/
+                                                       this, /* validate data.*/
+                                                       "*",
+                                                       Pt_CENTER|Pt_BLOCK_ALL);
+       if(pwdreturn == Pt_PWD_CANCEL)
+                 setAnswer(XAP_Dialog_Password::a_Cancel);
+       if(pwdreturn == Pt_PWD_ACCEPT) {
+               setPassword(m_pass);
+               setAnswer(XAP_Dialog_Password::a_OK);
+       }
+       free(buttons);
 }
+
Index: af/xap/qnx/xap_QNXDlg_Password.h
===================================================================
RCS file: /cvsroot/abi/src/af/xap/qnx/xap_QNXDlg_Password.h,v
retrieving revision 1.1
diff -u -r1.1 xap_QNXDlg_Password.h
--- af/xap/qnx/xap_QNXDlg_Password.h    17 Oct 2001 17:17:05 -0000      1.1
+++ af/xap/qnx/xap_QNXDlg_Password.h    26 Mar 2002 03:12:23 -0000
@@ -36,9 +36,9 @@
        virtual void                    runModal(XAP_Frame * pFrame);
 
        static XAP_Dialog *             static_constructor(XAP_DialogFactory *, 
XAP_Dialog_Id id);
-       
+       void *SetPassword(char* pass);
 protected:
-
+char *m_pass;
 };
 
 #endif /* XAP_QNXDIALOG_PASSWORD_H */
Index: af/xap/qnx/xap_QNXClipboard.cpp
===================================================================
RCS file: /cvsroot/abi/src/af/xap/qnx/xap_QNXClipboard.cpp,v
retrieving revision 1.3
diff -u -r1.3 xap_QNXClipboard.cpp
--- af/xap/qnx/xap_QNXClipboard.cpp     6 Feb 2001 22:54:17 -0000       1.3
+++ af/xap/qnx/xap_QNXClipboard.cpp     26 Mar 2002 03:12:23 -0000
@@ -18,6 +18,7 @@
  */
 
 #include <string.h>
+#include <Ph.h>
 
 #include "ut_debugmsg.h"
 #include "ut_string.h"
@@ -50,14 +51,31 @@
 //////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////
 
+#define Ph_CLIPBOARD_RTF "RTF"
+#define Ph_CLIPBOARD_TEXT "TEXT"
+
 bool XAP_QNXClipboard::addData(const char* format, void* pData, UT_sint32 iNumBytes)
 {
-       return XAP_FakeClipboard::addData(format, pData, iNumBytes);
+
+       if(strcmp(Ph_CLIPBOARD_TEXT,format)==0){
+               PhClipboardCopyString(PhInputGroup(0),(char*)pData);
+       }
+       else if(strcmp(Ph_CLIPBOARD_RTF,format)==0) {
+       PhClipHeader clip = {Ph_CLIPBOARD_RTF,iNumBytes,0,pData};
+       PhClipboardCopy(PhInputGroup(0),1,&clip);
+       }
+       else
+               XAP_FakeClipboard::addData(format, pData, iNumBytes);
 }
 
 bool XAP_QNXClipboard::hasFormat(const char *format)
 {
-       return XAP_FakeClipboard::hasFormat(format);
+       void *cbdata;
+       cbdata=PhClipboardPasteStart(PhInputGroup(0));
+       if(!PhClipboardPasteType(cbdata,(char*)format)|| 
+(XAP_FakeClipboard::hasFormat(format)==false))
+       return false;
+PhClipboardPasteFinish(cbdata);
+return true;
 }
 
 bool XAP_QNXClipboard::clearClipboard()
@@ -67,7 +85,15 @@
 
 bool XAP_QNXClipboard::getClipboardData(const char* format, void ** ppData, UT_uint32 
* pLen)
 {
-       return XAP_FakeClipboard::getClipboardData(format, ppData, pLen);
+       void *cbdata;
+       PhClipHeader *clip;
+       cbdata=PhClipboardPasteStart(PhInputGroup(0));
+       clip=PhClipboardPasteType(cbdata,(char*)format);        
+if(clip){
+       (char*)*ppData=strdup((char*)clip->data);
+
+       *pLen=strlen((char*)*ppData);
+       return true;
+} 
+return XAP_FakeClipboard::getClipboardData(format, ppData, pLen);
 }
-       
-
Index: af/xap/qnx/xap_QNXFrame.cpp
===================================================================
RCS file: /cvsroot/abi/src/af/xap/qnx/xap_QNXFrame.cpp,v
retrieving revision 1.22
diff -u -r1.22 xap_QNXFrame.cpp
--- af/xap/qnx/xap_QNXFrame.cpp 17 Sep 2001 13:45:57 -0000      1.22
+++ af/xap/qnx/xap_QNXFrame.cpp 26 Mar 2002 03:12:23 -0000
@@ -532,9 +532,7 @@
        char execstring[4096];
 
        //TODO: I should use spawn here
-       snprintf(execstring, 4096, "voyager -u %s &", szURL);
-       system(execstring);
-
+       spawnlp(P_NOWAITO,"voyager","voyager","-u",szURL,NULL);
        return true;
 }
 
Index: af/gr/qnx/gr_QNXGraphics.cpp
===================================================================
RCS file: /cvsroot/abi/src/af/gr/qnx/gr_QNXGraphics.cpp,v
retrieving revision 1.41
diff -u -r1.41 gr_QNXGraphics.cpp
--- af/gr/qnx/gr_QNXGraphics.cpp        21 Mar 2002 11:41:23 -0000      1.41
+++ af/gr/qnx/gr_QNXGraphics.cpp        26 Mar 2002 03:12:23 -0000
@@ -486,6 +486,7 @@
 //////////////////////////////////////////////////////////////////
 void GR_Font::s_getGenericFontProperties(const char *szFontName, FontFamilyEnum * 
pff, FontPitchEnum * pfp, bool * pbTrueType)
 {
+
 #if 0
    switch (xx & 0xf0)
    {
@@ -506,9 +507,10 @@
    *pbTrueType = ((xx & TMPF_TRUETYPE) == TMPF_TRUETYPE);
 #endif
        printf("SET GENERIC FONT ... WHY HERE?\n");
-       *pff = FF_Unknown;
+       *pff = FF_Roman;
        *pfp = FP_Variable;
        *pbTrueType = 0;
+//XXX.
 }
 
 
@@ -824,81 +826,92 @@
 
 void GR_QNXGraphics::setCursor(GR_Graphics::Cursor c)
 {
-#if 0
+unsigned short cursor_number=0;
        if (m_cursor == c)
                return;
        
        m_cursor = c;
-       
-       GdkCursorType cursor_number;
-       
+
        switch (c)
        {
        default:
                UT_ASSERT(UT_NOT_IMPLEMENTED);
                /*FALLTHRU*/
        case GR_CURSOR_DEFAULT:
-               cursor_number = GDK_TOP_LEFT_ARROW;
+               cursor_number = Ph_CURSOR_POINTER;
                break;
                
        case GR_CURSOR_IBEAM:
-               cursor_number = GDK_XTERM;
+               cursor_number = Ph_CURSOR_POINTER; //XXX: Wtf is IBEAM ?
                break;
 
        case GR_CURSOR_RIGHTARROW:
-               cursor_number = GDK_SB_RIGHT_ARROW; //GDK_ARROW;
+               cursor_number = Ph_CURSOR_DRAG_RIGHT; 
                break;
                
 #ifdef BIDI_ENABLED
-//#error choose a suitable cursor; this is just a placeholder !!!              
        case GR_CURSOR_LEFTARROW:
-               cursor_number = GDK_SB_LEFT_ARROW; //GDK_ARROW;
+               cursor_number = Ph_CURSOR_DRAG_LEFT; //GDK_ARROW;
                break;
 #endif
 
        case GR_CURSOR_IMAGE:
-               cursor_number = GDK_FLEUR;
+               cursor_number = Ph_CURSOR_POINTER; //XXX: ???
                break;
                
        case GR_CURSOR_IMAGESIZE_NW:
-               cursor_number = GDK_TOP_LEFT_CORNER;
+               cursor_number = Ph_CURSOR_DRAG_TL;
                break;
                
        case GR_CURSOR_IMAGESIZE_N:
-               cursor_number = GDK_TOP_SIDE;
+               cursor_number = Ph_CURSOR_DRAG_TOP;
                break;
                
        case GR_CURSOR_IMAGESIZE_NE:
-               cursor_number = GDK_TOP_RIGHT_CORNER;
+               cursor_number = Ph_CURSOR_DRAG_TR;
                break;
                
        case GR_CURSOR_IMAGESIZE_E:
-               cursor_number = GDK_RIGHT_SIDE;
+               cursor_number = Ph_CURSOR_DRAG_RIGHT;
                break;
                
        case GR_CURSOR_IMAGESIZE_SE:
-               cursor_number = GDK_BOTTOM_RIGHT_CORNER;
+               cursor_number = Ph_CURSOR_DRAG_BR;
                break;
                
        case GR_CURSOR_IMAGESIZE_S:
-               cursor_number = GDK_BOTTOM_SIDE;
+               cursor_number = Ph_CURSOR_DRAG_BOTTOM;
                break;
                
        case GR_CURSOR_IMAGESIZE_SW:
-               cursor_number = GDK_BOTTOM_LEFT_CORNER;
+               cursor_number = Ph_CURSOR_DRAG_BL;
                break;
                
        case GR_CURSOR_IMAGESIZE_W:
-               cursor_number = GDK_LEFT_SIDE;
+               cursor_number = Ph_CURSOR_DRAG_LEFT;
+               break;
+
+       case GR_CURSOR_LEFTRIGHT:
+               cursor_number=Ph_CURSOR_DRAG_HORIZONTAL;
+               break;
+       case GR_CURSOR_UPDOWN:
+               cursor_number=Ph_CURSOR_DRAG_VERTICAL;
+               break;
+       case GR_CURSOR_EXCHANGE:
+               cursor_number=Ph_CURSOR_POINTER;
+               break;
+       case GR_CURSOR_GRAB:
+               cursor_number=Ph_CURSOR_MOVE;
+               break;
+       case GR_CURSOR_LINK:
+               cursor_number=Ph_CURSOR_FINGER;
+               break;  
+       case GR_CURSOR_WAIT:
+               cursor_number= Ph_CURSOR_WAIT;
                break;
        }
 
-       GdkCursor * cursor = gdk_cursor_new(cursor_number);
-       gdk_window_set_cursor(m_pWin, cursor);
-       gdk_cursor_destroy(cursor);
-#else
-       UT_DEBUGMSG(("TODO: Set the cursor type "));
-#endif
+       PtSetResource(m_pWin,Pt_ARG_CURSOR_TYPE,cursor_number,0);
 }
 
 GR_Graphics::Cursor GR_QNXGraphics::getCursor(void) const
Index: config/platforms/nto.mk
===================================================================
RCS file: /cvsroot/abi/src/config/platforms/nto.mk,v
retrieving revision 1.10
diff -u -r1.10 nto.mk
--- config/platforms/nto.mk     21 Mar 2002 18:30:37 -0000      1.10
+++ config/platforms/nto.mk     26 Mar 2002 03:12:24 -0000
@@ -40,7 +40,7 @@
 
 # Define tools (should gcc be cc/qcc ... same for ar?)
 CC             = qcc
-CCC            = g++ 
+CCC            = QCC -Vgcc_ntox86_gpp
 RANLIB         = touch
 
 # Suffixes

Reply via email to