Switch to side-by-side view

--- a/src/query/reslistpager.h
+++ b/src/query/reslistpager.h
@@ -1,6 +1,6 @@
 #ifndef _reslistpager_h_included_
 #define _reslistpager_h_included_
-/* @(#$Id: reslistpager.h,v 1.3 2008-12-04 11:49:59 dockes Exp $  (C) 2007 J.F.Dockes */
+/* @(#$Id: reslistpager.h,v 1.4 2008-12-16 14:20:10 dockes Exp $  (C) 2007 J.F.Dockes */
 
 #include <vector>
 using std::vector;
@@ -8,24 +8,31 @@
 #include "refcntr.h"
 #include "docseq.h"
 
+class PlainToRich;
+
 /**
- * Produces html text for a paged result list. 
+ * Manage a paged HTML result list. 
  */
 class ResListPager {
 public:
-    ResListPager() : m_pagesize(10), m_hasNext(false) {}
+    ResListPager(int pagesize=10) : m_pagesize(pagesize) {initall();}
+    ResListPager(RefCntr<DocSequence> src, int pagesize)
+	: m_pagesize(pagesize)
+    {
+	initall();
+	m_docSource = src;
+    }
+    virtual ~ResListPager() {}
+
+    void setHighLighter(PlainToRich *ptr) {m_hiliter = ptr;}
     void setDocSource(RefCntr<DocSequence> src)
     {
 	m_winfirst = -1;
-	m_docSource = src;
 	m_hasNext = false;
 	m_respage.clear();
+	m_docSource = src;
     }
-    ResListPager(RefCntr<DocSequence> src, int pagesize)
-	: m_winfirst(-1), m_docSource(src), m_pagesize(pagesize), 
-	m_hasNext(false) 
-    {}
-    virtual ~ResListPager() {}
+
     int pageNumber() 
     {
 	if (m_winfirst < 0 || m_pagesize <= 0)
@@ -55,13 +62,28 @@
 
     // Things that need to be reimplemented in the subclass:
     virtual bool append(const string& data);
-    virtual string tr(const string& in);
+    virtual bool append(const string& data, int, const Rcl::Doc&)
+    {
+	return append(data);
+    }
+    virtual string trans(const string& in);
     virtual string detailsLink();
     virtual const string &parFormat();
     virtual string nextUrl();
     virtual string prevUrl();
     virtual string pageTop() {return string();}
+    virtual string iconPath(const string& mtype);
 private:
+    void initall() 
+    {
+	m_winfirst = -1;
+	m_hasNext = false;
+	m_respage.clear();
+	m_queryBuildAbstract = true;
+	m_queryReplaceAbstract = false;
+	m_hiliter = 0;
+    }
+
     // First docnum (from docseq) in current page
     int                  m_winfirst;
     RefCntr<DocSequence> m_docSource;
@@ -69,6 +91,9 @@
 
     bool                 m_hasNext;
     vector<ResListEntry> m_respage;
+    bool                 m_queryBuildAbstract;
+    bool                 m_queryReplaceAbstract;
+    PlainToRich         *m_hiliter;
 };
 
 #endif /* _reslistpager_h_included_ */