Blame SOURCES/0133-gtktiledviewer-factor-out-createWindow-from-main.patch

f325b2
From c918ee9ef3a098d22162010e8a142dbecf289e72 Mon Sep 17 00:00:00 2001
f325b2
From: Miklos Vajna <vmiklos@collabora.co.uk>
f325b2
Date: Tue, 15 Sep 2015 14:51:06 +0200
f325b2
Subject: [PATCH 133/398] gtktiledviewer: factor out createWindow() from main()
f325b2
f325b2
Change-Id: Ib7ccd2192247805205b65e5e8da67bcc826f4d31
f325b2
(cherry picked from commit 2b69ce33edaed9eaa018821180a00d563ad1ba18)
f325b2
---
f325b2
 .../qa/gtktiledviewer/gtktiledviewer.cxx           | 228 +++++++++++----------
f325b2
 1 file changed, 116 insertions(+), 112 deletions(-)
f325b2
f325b2
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
f325b2
index efbb90800301..b43f785a300a 100644
f325b2
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
f325b2
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
f325b2
@@ -546,70 +546,58 @@ static void openDocumentCallback (GObject* source_object, GAsyncResult* res, gpo
f325b2
     gtk_widget_hide(rWindow.m_pStatusBar);
f325b2
 }
f325b2
 
f325b2
-int main( int argc, char* argv[] )
f325b2
+/// Creates the GtkWindow that has main widget as children and registers it in the window map.
f325b2
+static GtkWidget* createWindow(TiledWindow& rWindow)
f325b2
 {
f325b2
-    if( argc < 3 ||
f325b2
-        ( argc > 1 && ( !strcmp( argv[1], "--help" ) || !strcmp( argv[1], "-h" ) ) ) )
f325b2
-        return help();
f325b2
-
f325b2
-    if ( argv[1][0] != '/' )
f325b2
-    {
f325b2
-        fprintf(stderr, "Absolute path required to libreoffice install\n");
f325b2
-        return 1;
f325b2
-    }
f325b2
-
f325b2
-    gtk_init( &argc, &argv );
f325b2
-
f325b2
-    GtkWidget *pWindow = gtk_window_new( GTK_WINDOW_TOPLEVEL );
f325b2
-    TiledWindow aWindow;
f325b2
-    gtk_window_set_title( GTK_WINDOW(pWindow), "LibreOfficeKit GTK Tiled Viewer" );
f325b2
+    GtkWidget *pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
f325b2
+    gtk_window_set_title(GTK_WINDOW(pWindow), "LibreOfficeKit GTK Tiled Viewer");
f325b2
     gtk_window_set_default_size(GTK_WINDOW(pWindow), 1024, 768);
f325b2
-    g_signal_connect( pWindow, "destroy", G_CALLBACK(gtk_main_quit), NULL );
f325b2
+    g_signal_connect(pWindow, "destroy", G_CALLBACK(gtk_main_quit), 0);
f325b2
 
f325b2
-    aWindow.m_pVBox = gtk_box_new( GTK_ORIENTATION_VERTICAL, 0 );
f325b2
-    gtk_container_add( GTK_CONTAINER(pWindow), aWindow.m_pVBox );
f325b2
+    rWindow.m_pVBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
f325b2
+    gtk_container_add(GTK_CONTAINER(pWindow), rWindow.m_pVBox);
f325b2
 
f325b2
     // Toolbar
f325b2
     GtkWidget* pToolbar = gtk_toolbar_new();
f325b2
-    gtk_toolbar_set_style( GTK_TOOLBAR(pToolbar), GTK_TOOLBAR_ICONS );
f325b2
+    gtk_toolbar_set_style(GTK_TOOLBAR(pToolbar), GTK_TOOLBAR_ICONS);
f325b2
 
f325b2
-    GtkToolItem* pZoomIn = gtk_tool_button_new( NULL, NULL );
f325b2
+    GtkToolItem* pZoomIn = gtk_tool_button_new(NULL, NULL);
f325b2
     gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (pZoomIn), "zoom-in-symbolic");
f325b2
     gtk_tool_item_set_tooltip_text(pZoomIn, "Zoom In");
f325b2
-    gtk_toolbar_insert( GTK_TOOLBAR(pToolbar), pZoomIn, 0);
f325b2
-    g_signal_connect( G_OBJECT(pZoomIn), "clicked", G_CALLBACK(changeZoom), NULL );
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), pZoomIn, 0);
f325b2
+    g_signal_connect(G_OBJECT(pZoomIn), "clicked", G_CALLBACK(changeZoom), NULL);
f325b2
 
f325b2
-    GtkToolItem* pZoom1 = gtk_tool_button_new( NULL, NULL );
f325b2
-    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (pZoom1), "zoom-original-symbolic");
f325b2
+    GtkToolItem* pZoom1 = gtk_tool_button_new(NULL, NULL);
f325b2
+    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(pZoom1), "zoom-original-symbolic");
f325b2
     gtk_tool_item_set_tooltip_text(pZoom1, "Normal Size");
f325b2
-    gtk_toolbar_insert( GTK_TOOLBAR(pToolbar), pZoom1, -1);
f325b2
-    g_signal_connect( G_OBJECT(pZoom1), "clicked", G_CALLBACK(changeZoom), NULL );
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), pZoom1, -1);
f325b2
+    g_signal_connect(G_OBJECT(pZoom1), "clicked", G_CALLBACK(changeZoom), NULL);
f325b2
 
f325b2
-    GtkToolItem* pZoomOut = gtk_tool_button_new( NULL, NULL );
f325b2
+    GtkToolItem* pZoomOut = gtk_tool_button_new(NULL, NULL);
f325b2
     gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (pZoomOut), "zoom-out-symbolic");
f325b2
     gtk_tool_item_set_tooltip_text(pZoomOut, "Zoom Out");
f325b2
-    gtk_toolbar_insert( GTK_TOOLBAR(pToolbar), pZoomOut, -1);
f325b2
-    g_signal_connect( G_OBJECT(pZoomOut), "clicked", G_CALLBACK(changeZoom), NULL );
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), pZoomOut, -1);
f325b2
+    g_signal_connect(G_OBJECT(pZoomOut), "clicked", G_CALLBACK(changeZoom), NULL);
f325b2
 
f325b2
     GtkToolItem* pSeparator1 = gtk_separator_tool_item_new();
f325b2
-    gtk_toolbar_insert( GTK_TOOLBAR(pToolbar), pSeparator1, -1);
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), pSeparator1, -1);
f325b2
 
f325b2
     GtkToolItem* pPartSelectorToolItem = gtk_tool_item_new();
f325b2
     GtkWidget* pComboBox = gtk_combo_box_text_new();
f325b2
-    gtk_container_add( GTK_CONTAINER(pPartSelectorToolItem), pComboBox );
f325b2
-    gtk_toolbar_insert( GTK_TOOLBAR(pToolbar), pPartSelectorToolItem, -1 );
f325b2
+    gtk_container_add(GTK_CONTAINER(pPartSelectorToolItem), pComboBox);
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), pPartSelectorToolItem, -1);
f325b2
 
f325b2
-    aWindow.m_pPartSelector = GTK_COMBO_BOX_TEXT(pComboBox);
f325b2
+    rWindow.m_pPartSelector = GTK_COMBO_BOX_TEXT(pComboBox);
f325b2
 
f325b2
     GtkToolItem* pSeparator2 = gtk_separator_tool_item_new();
f325b2
-    gtk_toolbar_insert( GTK_TOOLBAR(pToolbar), pSeparator2, -1);
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), pSeparator2, -1);
f325b2
 
f325b2
     GtkToolItem* pPartModeSelectorToolItem = gtk_tool_item_new();
f325b2
-    aWindow.m_pPartModeComboBox = gtk_combo_box_text_new();
f325b2
-    gtk_container_add(GTK_CONTAINER(pPartModeSelectorToolItem), aWindow.m_pPartModeComboBox);
f325b2
-    gtk_toolbar_insert( GTK_TOOLBAR(pToolbar), pPartModeSelectorToolItem, -1 );
f325b2
+    rWindow.m_pPartModeComboBox = gtk_combo_box_text_new();
f325b2
+    gtk_container_add(GTK_CONTAINER(pPartModeSelectorToolItem), rWindow.m_pPartModeComboBox);
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), pPartModeSelectorToolItem, -1);
f325b2
 
f325b2
-    gtk_toolbar_insert( GTK_TOOLBAR(pToolbar), gtk_separator_tool_item_new(), -1);
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), gtk_separator_tool_item_new(), -1);
f325b2
 
f325b2
     // Cut, copy & paste.
f325b2
     GtkToolItem* pCopyButton = gtk_tool_button_new( NULL, NULL);
f325b2
@@ -620,7 +608,7 @@ int main( int argc, char* argv[] )
f325b2
     gtk_toolbar_insert( GTK_TOOLBAR(pToolbar), gtk_separator_tool_item_new(), -1);
f325b2
 
f325b2
     GtkToolItem* pEnableEditing = gtk_toggle_tool_button_new();
f325b2
-    aWindow.m_pEnableEditing = pEnableEditing;
f325b2
+    rWindow.m_pEnableEditing = pEnableEditing;
f325b2
     gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (pEnableEditing), "insert-text-symbolic");
f325b2
     gtk_tool_item_set_tooltip_text(pEnableEditing, "Edit");
f325b2
     gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), pEnableEditing, -1);
f325b2
@@ -638,77 +626,115 @@ int main( int argc, char* argv[] )
f325b2
     gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), pNewViewButton, -1);
f325b2
     g_signal_connect(G_OBJECT(pNewViewButton), "clicked", G_CALLBACK(createView), NULL);
f325b2
 
f325b2
-    gtk_toolbar_insert( GTK_TOOLBAR(pToolbar), gtk_separator_tool_item_new(), -1);
f325b2
-
f325b2
-    aWindow.m_pBold = gtk_toggle_tool_button_new();
f325b2
-    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (aWindow.m_pBold), "format-text-bold-symbolic");
f325b2
-    gtk_tool_item_set_tooltip_text(aWindow.m_pBold, "Bold");
f325b2
-    gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), aWindow.m_pBold, -1);
f325b2
-    g_signal_connect(G_OBJECT(aWindow.m_pBold), "toggled", G_CALLBACK(toggleToolItem), NULL);
f325b2
-    lcl_registerToolItem(aWindow, aWindow.m_pBold, ".uno:Bold");
f325b2
-
f325b2
-    aWindow.m_pItalic = gtk_toggle_tool_button_new();
f325b2
-    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (aWindow.m_pItalic), "format-text-italic-symbolic");
f325b2
-    gtk_tool_item_set_tooltip_text(aWindow.m_pItalic, "Italic");
f325b2
-    gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), aWindow.m_pItalic, -1);
f325b2
-    g_signal_connect(G_OBJECT(aWindow.m_pItalic), "toggled", G_CALLBACK(toggleToolItem), NULL);
f325b2
-    lcl_registerToolItem(aWindow, aWindow.m_pItalic, ".uno:Italic");
f325b2
-
f325b2
-    aWindow.m_pUnderline = gtk_toggle_tool_button_new();
f325b2
-    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (aWindow.m_pUnderline), "format-text-underline-symbolic");
f325b2
-    gtk_tool_item_set_tooltip_text(aWindow.m_pUnderline, "Underline");
f325b2
-    gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), aWindow.m_pUnderline, -1);
f325b2
-    g_signal_connect(G_OBJECT(aWindow.m_pUnderline), "toggled", G_CALLBACK(toggleToolItem), NULL);
f325b2
-    lcl_registerToolItem(aWindow, aWindow.m_pUnderline, ".uno:Underline");
f325b2
-
f325b2
-    aWindow.m_pStrikethrough = gtk_toggle_tool_button_new ();
f325b2
-    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(aWindow.m_pStrikethrough), "format-text-strikethrough-symbolic");
f325b2
-    gtk_tool_item_set_tooltip_text(aWindow.m_pStrikethrough, "Strikethrough");
f325b2
-    gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), aWindow.m_pStrikethrough, -1);
f325b2
-    g_signal_connect(G_OBJECT(aWindow.m_pStrikethrough), "toggled", G_CALLBACK(toggleToolItem), NULL);
f325b2
-    lcl_registerToolItem(aWindow, aWindow.m_pStrikethrough, ".uno:Strikeout");
f325b2
-
f325b2
-    gtk_box_pack_start( GTK_BOX(aWindow.m_pVBox), pToolbar, FALSE, FALSE, 0 ); // Adds to top.
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), gtk_separator_tool_item_new(), -1);
f325b2
+
f325b2
+    rWindow.m_pBold = gtk_toggle_tool_button_new();
f325b2
+    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(rWindow.m_pBold), "format-text-bold-symbolic");
f325b2
+    gtk_tool_item_set_tooltip_text(rWindow.m_pBold, "Bold");
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), rWindow.m_pBold, -1);
f325b2
+    g_signal_connect(G_OBJECT(rWindow.m_pBold), "toggled", G_CALLBACK(toggleToolItem), NULL);
f325b2
+    lcl_registerToolItem(rWindow, rWindow.m_pBold, ".uno:Bold");
f325b2
+
f325b2
+    rWindow.m_pItalic = gtk_toggle_tool_button_new();
f325b2
+    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (rWindow.m_pItalic), "format-text-italic-symbolic");
f325b2
+    gtk_tool_item_set_tooltip_text(rWindow.m_pItalic, "Italic");
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), rWindow.m_pItalic, -1);
f325b2
+    g_signal_connect(G_OBJECT(rWindow.m_pItalic), "toggled", G_CALLBACK(toggleToolItem), NULL);
f325b2
+    lcl_registerToolItem(rWindow, rWindow.m_pItalic, ".uno:Italic");
f325b2
+
f325b2
+    rWindow.m_pUnderline = gtk_toggle_tool_button_new();
f325b2
+    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (rWindow.m_pUnderline), "format-text-underline-symbolic");
f325b2
+    gtk_tool_item_set_tooltip_text(rWindow.m_pUnderline, "Underline");
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), rWindow.m_pUnderline, -1);
f325b2
+    g_signal_connect(G_OBJECT(rWindow.m_pUnderline), "toggled", G_CALLBACK(toggleToolItem), NULL);
f325b2
+    lcl_registerToolItem(rWindow, rWindow.m_pUnderline, ".uno:Underline");
f325b2
+
f325b2
+    rWindow.m_pStrikethrough = gtk_toggle_tool_button_new ();
f325b2
+    gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(rWindow.m_pStrikethrough), "format-text-strikethrough-symbolic");
f325b2
+    gtk_tool_item_set_tooltip_text(rWindow.m_pStrikethrough, "Strikethrough");
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), rWindow.m_pStrikethrough, -1);
f325b2
+    g_signal_connect(G_OBJECT(rWindow.m_pStrikethrough), "toggled", G_CALLBACK(toggleToolItem), NULL);
f325b2
+    lcl_registerToolItem(rWindow, rWindow.m_pStrikethrough, ".uno:Strikeout");
f325b2
+
f325b2
+    gtk_box_pack_start(GTK_BOX(rWindow.m_pVBox), pToolbar, FALSE, FALSE, 0 ); // Adds to top.
f325b2
 
f325b2
     // Findbar
f325b2
-    aWindow.m_pFindbar = gtk_toolbar_new();
f325b2
-    gtk_toolbar_set_style(GTK_TOOLBAR(aWindow.m_pFindbar), GTK_TOOLBAR_ICONS);
f325b2
+    rWindow.m_pFindbar = gtk_toolbar_new();
f325b2
+    gtk_toolbar_set_style(GTK_TOOLBAR(rWindow.m_pFindbar), GTK_TOOLBAR_ICONS);
f325b2
 
f325b2
     GtkToolItem* pFindbarClose = gtk_tool_button_new( NULL, NULL);
f325b2
     gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (pFindbarClose), "window-close-symbolic");
f325b2
-    gtk_toolbar_insert(GTK_TOOLBAR(aWindow.m_pFindbar), pFindbarClose, -1);
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(rWindow.m_pFindbar), pFindbarClose, -1);
f325b2
     g_signal_connect(G_OBJECT(pFindbarClose), "clicked", G_CALLBACK(toggleFindbar), NULL);
f325b2
 
f325b2
     GtkToolItem* pEntryContainer = gtk_tool_item_new();
f325b2
-    aWindow.m_pFindbarEntry = gtk_entry_new();
f325b2
-    gtk_container_add(GTK_CONTAINER(pEntryContainer), aWindow.m_pFindbarEntry);
f325b2
-    g_signal_connect(aWindow.m_pFindbarEntry, "key-press-event", G_CALLBACK(signalFindbar), 0);
f325b2
-    gtk_toolbar_insert(GTK_TOOLBAR(aWindow.m_pFindbar), pEntryContainer, -1);
f325b2
+    rWindow.m_pFindbarEntry = gtk_entry_new();
f325b2
+    gtk_container_add(GTK_CONTAINER(pEntryContainer), rWindow.m_pFindbarEntry);
f325b2
+    g_signal_connect(rWindow.m_pFindbarEntry, "key-press-event", G_CALLBACK(signalFindbar), 0);
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(rWindow.m_pFindbar), pEntryContainer, -1);
f325b2
 
f325b2
     GtkToolItem* pFindbarNext = gtk_tool_button_new( NULL, NULL);
f325b2
     gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (pFindbarNext), "go-down-symbolic");
f325b2
-    gtk_toolbar_insert(GTK_TOOLBAR(aWindow.m_pFindbar), pFindbarNext, -1);
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(rWindow.m_pFindbar), pFindbarNext, -1);
f325b2
     g_signal_connect(G_OBJECT(pFindbarNext), "clicked", G_CALLBACK(signalSearchNext), NULL);
f325b2
 
f325b2
     GtkToolItem* pFindbarPrev = gtk_tool_button_new( NULL, NULL);
f325b2
     gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (pFindbarPrev), "go-up-symbolic");
f325b2
-    gtk_toolbar_insert(GTK_TOOLBAR(aWindow.m_pFindbar), pFindbarPrev, -1);
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(rWindow.m_pFindbar), pFindbarPrev, -1);
f325b2
     g_signal_connect(G_OBJECT(pFindbarPrev), "clicked", G_CALLBACK(signalSearchPrev), NULL);
f325b2
 
f325b2
     GtkToolItem* pFindbarLabelContainer = gtk_tool_item_new();
f325b2
-    aWindow.m_pFindbarLabel = gtk_label_new("");
f325b2
-    gtk_container_add(GTK_CONTAINER(pFindbarLabelContainer), aWindow.m_pFindbarLabel);
f325b2
-    gtk_toolbar_insert(GTK_TOOLBAR(aWindow.m_pFindbar), pFindbarLabelContainer, -1);
f325b2
+    rWindow.m_pFindbarLabel = gtk_label_new("");
f325b2
+    gtk_container_add(GTK_CONTAINER(pFindbarLabelContainer), rWindow.m_pFindbarLabel);
f325b2
+    gtk_toolbar_insert(GTK_TOOLBAR(rWindow.m_pFindbar), pFindbarLabelContainer, -1);
f325b2
+
f325b2
+    gtk_box_pack_end(GTK_BOX(rWindow.m_pVBox), rWindow.m_pFindbar, FALSE, FALSE, 0);
f325b2
+
f325b2
+    // Scrolled window for DocView
f325b2
+    rWindow.m_pScrolledWindow = gtk_scrolled_window_new(0, 0);
f325b2
+    gtk_widget_set_hexpand(rWindow.m_pScrolledWindow, TRUE);
f325b2
+    gtk_widget_set_vexpand(rWindow.m_pScrolledWindow, TRUE);
f325b2
+    gtk_container_add(GTK_CONTAINER(rWindow.m_pVBox), rWindow.m_pScrolledWindow);
f325b2
 
f325b2
-    gtk_box_pack_end(GTK_BOX(aWindow.m_pVBox), aWindow.m_pFindbar, FALSE, FALSE, 0);
f325b2
+    gtk_container_add(GTK_CONTAINER(rWindow.m_pScrolledWindow), rWindow.m_pDocView);
f325b2
+
f325b2
+    GtkWidget* pProgressBar = gtk_progress_bar_new ();
f325b2
+    g_signal_connect(rWindow.m_pDocView, "load-changed", G_CALLBACK(loadChanged), pProgressBar);
f325b2
+
f325b2
+    GtkWidget* pStatusBar = gtk_statusbar_new();
f325b2
+    rWindow.m_pStatusBar = pStatusBar;
f325b2
+    gtk_container_forall(GTK_CONTAINER(pStatusBar), removeChildrenFromStatusbar, pStatusBar);
f325b2
+    gtk_container_add (GTK_CONTAINER(rWindow.m_pVBox), pStatusBar);
f325b2
+    gtk_container_add (GTK_CONTAINER(pStatusBar), pProgressBar);
f325b2
+    gtk_widget_set_hexpand(pProgressBar, true);
f325b2
+
f325b2
+    gtk_widget_show_all(pWindow);
f325b2
+    // Hide the findbar by default.
f325b2
+    gtk_widget_hide(rWindow.m_pFindbar);
f325b2
+
f325b2
+    g_aWindows[pWindow] = rWindow;
f325b2
+    return pWindow;
f325b2
+}
f325b2
+
f325b2
+int main( int argc, char* argv[] )
f325b2
+{
f325b2
+    if( argc < 3 ||
f325b2
+        ( argc > 1 && ( !strcmp( argv[1], "--help" ) || !strcmp( argv[1], "-h" ) ) ) )
f325b2
+        return help();
f325b2
+
f325b2
+    if ( argv[1][0] != '/' )
f325b2
+    {
f325b2
+        fprintf(stderr, "Absolute path required to libreoffice install\n");
f325b2
+        return 1;
f325b2
+    }
f325b2
+
f325b2
+    gtk_init( &argc, &argv );
f325b2
 
f325b2
     // Docview
f325b2
     GtkWidget* pDocView = lok_doc_view_new (argv[1], NULL, NULL);
f325b2
-    aWindow.m_pDocView = pDocView;
f325b2
 #if GLIB_CHECK_VERSION(2,40,0)
f325b2
     g_assert_nonnull(pDocView);
f325b2
 #endif
f325b2
-
f325b2
     g_signal_connect(pDocView, "edit-changed", G_CALLBACK(signalEdit), NULL);
f325b2
     g_signal_connect(pDocView, "command-changed", G_CALLBACK(signalCommand), NULL);
f325b2
     g_signal_connect(pDocView, "search-not-found", G_CALLBACK(signalSearch), NULL);
f325b2
@@ -717,32 +743,10 @@ int main( int argc, char* argv[] )
f325b2
     g_signal_connect(pDocView, "hyperlink-clicked", G_CALLBACK(signalHyperlink), NULL);
f325b2
     g_signal_connect(pDocView, "cursor-changed", G_CALLBACK(cursorChanged), NULL);
f325b2
 
f325b2
-
f325b2
-    // Scrolled window for DocView
f325b2
-    aWindow.m_pScrolledWindow = gtk_scrolled_window_new(0, 0);
f325b2
-    gtk_widget_set_hexpand (aWindow.m_pScrolledWindow, TRUE);
f325b2
-    gtk_widget_set_vexpand (aWindow.m_pScrolledWindow, TRUE);
f325b2
-    gtk_container_add(GTK_CONTAINER(aWindow.m_pVBox), aWindow.m_pScrolledWindow);
f325b2
-
f325b2
-    gtk_container_add(GTK_CONTAINER(aWindow.m_pScrolledWindow), pDocView);
f325b2
-
f325b2
-    GtkWidget* pProgressBar = gtk_progress_bar_new ();
f325b2
-    g_signal_connect(pDocView, "load-changed", G_CALLBACK(loadChanged), pProgressBar);
f325b2
-
f325b2
-    GtkWidget* pStatusBar = gtk_statusbar_new ();
f325b2
-    aWindow.m_pStatusBar = pStatusBar;
f325b2
-    gtk_container_forall(GTK_CONTAINER(pStatusBar), removeChildrenFromStatusbar, pStatusBar);
f325b2
-    gtk_container_add (GTK_CONTAINER(aWindow.m_pVBox), pStatusBar);
f325b2
-    gtk_container_add (GTK_CONTAINER(pStatusBar), pProgressBar);
f325b2
-    gtk_widget_set_hexpand(pProgressBar, true);
f325b2
-
f325b2
-    gtk_widget_show_all( pWindow );
f325b2
-    // Hide the findbar by default.
f325b2
-    gtk_widget_hide(aWindow.m_pFindbar);
f325b2
-
f325b2
-    g_aWindows[pWindow] = aWindow;
f325b2
-
f325b2
-    lok_doc_view_open_document( LOK_DOC_VIEW(pDocView), argv[2], NULL, openDocumentCallback, pDocView );
f325b2
+    TiledWindow aWindow;
f325b2
+    aWindow.m_pDocView = pDocView;
f325b2
+    createWindow(aWindow);
f325b2
+    lok_doc_view_open_document(LOK_DOC_VIEW(pDocView), argv[2], NULL, openDocumentCallback, pDocView);
f325b2
 
f325b2
     gtk_main();
f325b2
 
f325b2
-- 
f325b2
2.12.0
f325b2