summaryrefslogtreecommitdiff
path: root/libreofficekit/qa/gtktiledviewer
diff options
context:
space:
mode:
authorPranav Kant <pranavk@gnome.org>2015-06-09 16:27:37 +0530
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-06-12 15:20:52 +0200
commit8d0b34c3a6292ce9c5a081ef95890ae0c5e07ac7 (patch)
tree52b12991c668a61e74c8cc99739ec0a37d9b764b /libreofficekit/qa/gtktiledviewer
parent12b73697ed5787a621910623d76a6e241b04bd1a (diff)
lokdocview: Change parent class to GtkDrawingArea
It is not the job of the widget to provide the scroll bars. Change-Id: Iafc5724ed5b21717d711bb8f7e1a076dd1288b76
Diffstat (limited to 'libreofficekit/qa/gtktiledviewer')
-rw-r--r--libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx27
1 files changed, 25 insertions, 2 deletions
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
index 38b29ee40a3b..c8b47f7c7142 100644
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
@@ -38,6 +38,7 @@ static GtkToolItem* pBold;
static GtkToolItem* pItalic;
static GtkToolItem* pUnderline;
static GtkToolItem* pStrikethrough;
+static GtkWidget* pScrolledWindow;
std::map<GtkToolItem*, std::string> g_aToolItemCommandNames;
std::map<std::string, GtkToolItem*> g_aCommandNameToolItems;
bool g_bToolItemBroadcast = true;
@@ -134,6 +135,23 @@ static void toggleFindbar(GtkWidget* /*pButton*/, gpointer /*pItem*/)
#endif
}
+/// Get the visible area of the scrolled window
+static void getVisibleAreaTwips(GdkRectangle* pArea)
+{
+ GtkAdjustment* pHAdjustment = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(pScrolledWindow));
+ GtkAdjustment* pVAdjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(pScrolledWindow));
+
+ pArea->x = lok_doc_view_pixel_to_twip(LOK_DOC_VIEW(pDocView),
+ gtk_adjustment_get_value(pHAdjustment));
+ pArea->y = lok_doc_view_pixel_to_twip(LOK_DOC_VIEW(pDocView),
+ gtk_adjustment_get_value(pVAdjustment));
+ pArea->width = lok_doc_view_pixel_to_twip(LOK_DOC_VIEW(pDocView),
+ gtk_adjustment_get_page_size(pHAdjustment));
+ pArea->height = lok_doc_view_pixel_to_twip(LOK_DOC_VIEW(pDocView),
+ gtk_adjustment_get_page_size(pVAdjustment));
+}
+
+
/// Handles the key-press-event of the window.
static gboolean signalKey(GtkWidget* pWidget, GdkEventKey* pEvent, gpointer pData)
{
@@ -161,7 +179,7 @@ static void doSearch(bool bBackwards)
LOKDocView* pLOKDocView = LOK_DOC_VIEW(pDocView);
GdkRectangle aArea;
- lok_doc_view_get_visarea(pLOKDocView, &aArea);
+ getVisibleAreaTwips(&aArea);
aTree.put(boost::property_tree::ptree::path_type("SearchItem.SearchStartPointX/type", '/'), "long");
aTree.put(boost::property_tree::ptree::path_type("SearchItem.SearchStartPointX/value", '/'), aArea.x);
aTree.put(boost::property_tree::ptree::path_type("SearchItem.SearchStartPointY/type", '/'), "long");
@@ -461,7 +479,12 @@ int main( int argc, char* argv[] )
g_signal_connect(pWindow, "key-press-event", G_CALLBACK(signalKey), pDocView);
g_signal_connect(pWindow, "key-release-event", G_CALLBACK(signalKey), pDocView);
- gtk_container_add( GTK_CONTAINER(pVBox), pDocView );
+ // Scrolled window for DocView
+ pScrolledWindow = gtk_scrolled_window_new(0, 0);
+ gtk_container_add(GTK_CONTAINER(pVBox), pScrolledWindow);
+
+ // DocView doesn't have scrolling capability, so need a viewport
+ gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(pScrolledWindow), pDocView);
gtk_widget_show_all( pWindow );
// Hide the findbar by default.