summaryrefslogtreecommitdiff
path: root/libreofficekit/qa
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-09-15 12:10:03 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-09-21 07:30:15 +0200
commit36fa8d443a9ad87ee7077be7263870fab9dd6261 (patch)
treee91bd6972431141b8ef1da8a7be3889a7ab345a3 /libreofficekit/qa
parentf6ef6af23db8b718ef75f66680f696396fa74eaf (diff)
gtktiledviewer: allow multiple status bars
Change-Id: I84c4102937deee662814c41607ee8de380a067f2
Diffstat (limited to 'libreofficekit/qa')
-rw-r--r--libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx18
1 files changed, 12 insertions, 6 deletions
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
index da2ef0701c1a..c0fcc43c9d9e 100644
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
@@ -30,7 +30,6 @@ static int help()
return 1;
}
-static GtkWidget* pStatusBar;
static GtkToolItem* pEnableEditing;
static GtkToolItem* pBold;
static GtkToolItem* pItalic;
@@ -49,13 +48,16 @@ static GtkWidget* pFindbar;
static GtkWidget* pFindbarEntry;
static GtkWidget* pFindbarLabel;
+/// Represents all the state that is specific to one GtkWindow of this app.
class TiledWindow
{
public:
GtkWidget* m_pDocView;
+ GtkWidget* m_pStatusBar;
TiledWindow()
- : m_pDocView(0)
+ : m_pDocView(0),
+ m_pStatusBar(0)
{
}
};
@@ -462,8 +464,10 @@ static void changePart( GtkWidget* pSelector, gpointer /* pItem */ )
}
}
-static void removeChildrenFromStatusbar(GtkWidget* children, gpointer)
+static void removeChildrenFromStatusbar(GtkWidget* children, gpointer pData)
{
+ GtkWidget* pStatusBar = static_cast<GtkWidget*>(pData);
+
gtk_container_remove(GTK_CONTAINER(pStatusBar), children);
}
@@ -491,6 +495,7 @@ static void changePartMode( GtkWidget* pSelector, gpointer /* pItem */ )
static void openDocumentCallback (GObject* source_object, GAsyncResult* res, gpointer /*userdata*/)
{
LOKDocView* pDocView = LOK_DOC_VIEW (source_object);
+ TiledWindow& rWindow = lcl_getTiledWindow(GTK_WIDGET(pDocView));
GError* error = NULL;
GList *focusChain = NULL;
@@ -509,7 +514,7 @@ static void openDocumentCallback (GObject* source_object, GAsyncResult* res, gpo
focusChain = g_list_append( focusChain, pDocView );
gtk_container_set_focus_chain ( GTK_CONTAINER (pVBox), focusChain );
- gtk_widget_hide (pStatusBar);
+ gtk_widget_hide(rWindow.m_pStatusBar);
}
int main( int argc, char* argv[] )
@@ -692,8 +697,8 @@ int main( int argc, char* argv[] )
GtkWidget* pProgressBar = gtk_progress_bar_new ();
g_signal_connect(pDocView, "load-changed", G_CALLBACK(loadChanged), pProgressBar);
- pStatusBar = gtk_statusbar_new ();
- gtk_container_forall(GTK_CONTAINER(pStatusBar), removeChildrenFromStatusbar, NULL);
+ GtkWidget* pStatusBar = gtk_statusbar_new ();
+ gtk_container_forall(GTK_CONTAINER(pStatusBar), removeChildrenFromStatusbar, pStatusBar);
gtk_container_add (GTK_CONTAINER(pVBox), pStatusBar);
gtk_container_add (GTK_CONTAINER(pStatusBar), pProgressBar);
gtk_widget_set_hexpand(pProgressBar, true);
@@ -704,6 +709,7 @@ int main( int argc, char* argv[] )
TiledWindow aWindow;
aWindow.m_pDocView = pDocView;
+ aWindow.m_pStatusBar = pStatusBar;
g_aWindows[pWindow] = aWindow;
lok_doc_view_open_document( LOK_DOC_VIEW(pDocView), argv[2], NULL, openDocumentCallback, pDocView );