From c4715537a91d397e73721b2c63ac4c51e21415a4 Mon Sep 17 00:00:00 2001 From: Pranav Kant Date: Fri, 19 Jun 2015 01:06:50 +0530 Subject: [PATCH 056/398] lokdocview: Use *get_instance_private () to get private structure Let lok_doc_view_get_instance_private () do the pointer arithmatic. Additionally, we are saving sizeof (void*) already in the _LOKDocView struct with this approach. Change-Id: I6d991d5834ef15dad24acb14a1d4bbf7d03df762 (cherry picked from commit cf14391bc25e977bf70870004d8df79926a99e0c) --- include/LibreOfficeKit/LibreOfficeKitGtk.h | 1 - libreofficekit/source/gtk/lokdocview.cxx | 129 ++++++++++++++++------------- 2 files changed, 73 insertions(+), 57 deletions(-) diff --git a/include/LibreOfficeKit/LibreOfficeKitGtk.h b/include/LibreOfficeKit/LibreOfficeKitGtk.h index 3eaf28352a11..3a1628b60e86 100644 --- a/include/LibreOfficeKit/LibreOfficeKitGtk.h +++ b/include/LibreOfficeKit/LibreOfficeKitGtk.h @@ -32,7 +32,6 @@ typedef struct _LOKDocViewPrivate LOKDocViewPrivate; struct _LOKDocView { GtkDrawingArea aDrawingArea; - LOKDocViewPrivate* priv; }; struct _LOKDocViewClass diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx index 144f17efba94..916c9f7cf60c 100644 --- a/libreofficekit/source/gtk/lokdocview.cxx +++ b/libreofficekit/source/gtk/lokdocview.cxx @@ -229,7 +229,7 @@ isEmptyRectangle(const GdkRectangle& rRectangle) static void signalKey (LOKDocView* pDocView, const GdkEvent* pEvent) { - LOKDocViewPrivate* priv = pDocView->priv; + LOKDocViewPrivate* priv = static_cast(lok_doc_view_get_instance_private (pDocView)); int nCharCode = 0; int nKeyCode = 0; guint keyval; @@ -292,7 +292,7 @@ static gboolean handleTimeout (gpointer pData) { LOKDocView* pDocView = LOK_DOC_VIEW (pData); - LOKDocViewPrivate* priv = pDocView->priv; + LOKDocViewPrivate* priv = static_cast(lok_doc_view_get_instance_private (pDocView)); if (priv->m_bEdit) { @@ -366,7 +366,7 @@ globalCallbackWorker(int nType, const char* pPayload, void* pData) static GdkRectangle payloadToRectangle (LOKDocView* pDocView, const char* pPayload) { - LOKDocViewPrivate* priv = pDocView->priv; + LOKDocViewPrivate* priv = static_cast(lok_doc_view_get_instance_private (pDocView)); GdkRectangle aRet; gchar** ppCoordinates = g_strsplit(pPayload, ", ", 4); gchar** ppCoordinate = ppCoordinates; @@ -418,7 +418,7 @@ payloadToRectangles(LOKDocView* pDocView, const char* pPayload) static void setTilesInvalid (LOKDocView* pDocView, const GdkRectangle& rRectangle) { - LOKDocViewPrivate* priv = pDocView->priv; + LOKDocViewPrivate* priv = static_cast(lok_doc_view_get_instance_private (pDocView)); GdkRectangle aRectanglePixels; GdkPoint aStart, aEnd; @@ -442,7 +442,7 @@ callback (gpointer pData) { CallbackData* pCallback = static_cast(pData); LOKDocView* pDocView = LOK_DOC_VIEW (pCallback->m_pDocView); - LOKDocViewPrivate* priv = pDocView->priv; + LOKDocViewPrivate* priv = static_cast(lok_doc_view_get_instance_private (pDocView)); switch (pCallback->m_nType) { @@ -560,7 +560,7 @@ renderHandle(LOKDocView* pDocView, cairo_surface_t* pHandle, GdkRectangle& rRectangle) { - LOKDocViewPrivate* priv = pDocView->priv; + LOKDocViewPrivate* priv = static_cast(lok_doc_view_get_instance_private (pDocView)); GdkPoint aCursorBottom; int nHandleWidth, nHandleHeight; double fHandleScale; @@ -593,7 +593,7 @@ renderGraphicHandle(LOKDocView* pDocView, const GdkRectangle& rSelection, cairo_surface_t* pHandle) { - LOKDocViewPrivate* priv = pDocView->priv; + LOKDocViewPrivate* priv = static_cast(lok_doc_view_get_instance_private (pDocView)); int nHandleWidth, nHandleHeight; GdkRectangle aSelection; @@ -660,7 +660,7 @@ renderGraphicHandle(LOKDocView* pDocView, static gboolean renderDocument(LOKDocView* pDocView, cairo_t* pCairo) { - LOKDocViewPrivate *priv = pDocView->priv; + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); GdkRectangle aVisibleArea; long nDocumentWidthPixels = twipToPixel(priv->m_nDocumentWidthTwips, priv->m_fZoom); long nDocumentHeightPixels = twipToPixel(priv->m_nDocumentHeightTwips, priv->m_fZoom); @@ -721,7 +721,7 @@ renderDocument(LOKDocView* pDocView, cairo_t* pCairo) static gboolean renderOverlay(LOKDocView* pDocView, cairo_t* pCairo) { - LOKDocViewPrivate *priv = pDocView->priv; + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); if (priv->m_bEdit && priv->m_bCursorVisible && priv->m_bCursorOverlayVisible && !isEmptyRectangle(priv->m_aVisibleCursor)) { @@ -799,7 +799,7 @@ static gboolean lok_doc_view_signal_button(GtkWidget* pWidget, GdkEventButton* pEvent) { LOKDocView* pDocView = LOK_DOC_VIEW (pWidget); - LOKDocViewPrivate *priv = pDocView->priv; + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); g_info("LOKDocView_Impl::signalButton: %d, %d (in twips: %d, %d)", (int)pEvent->x, (int)pEvent->y, @@ -942,7 +942,7 @@ static gboolean lok_doc_view_signal_motion (GtkWidget* pWidget, GdkEventMotion* pEvent) { LOKDocView* pDocView = LOK_DOC_VIEW (pWidget); - LOKDocViewPrivate *priv = pDocView->priv; + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); GdkPoint aPoint; if (priv->m_bInDragMiddleHandle) @@ -1001,8 +1001,8 @@ lok_doc_view_signal_motion (GtkWidget* pWidget, GdkEventMotion* pEvent) static void lok_doc_view_init (LOKDocView* pDocView) { - pDocView->priv = static_cast(lok_doc_view_get_instance_private (pDocView)); - pDocView->priv->m_bCursorVisible = true; + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); + priv->m_bCursorVisible = true; gtk_widget_add_events(GTK_WIDGET(pDocView), GDK_BUTTON_PRESS_MASK @@ -1015,7 +1015,7 @@ static void lok_doc_view_init (LOKDocView* pDocView) static void lok_doc_view_set_property (GObject* object, guint propId, const GValue *value, GParamSpec *pspec) { LOKDocView* pDocView = LOK_DOC_VIEW (object); - LOKDocViewPrivate* priv = pDocView->priv; + LOKDocViewPrivate* priv = static_cast(lok_doc_view_get_instance_private (pDocView)); switch (propId) { @@ -1045,7 +1045,7 @@ static void lok_doc_view_set_property (GObject* object, guint propId, const GVal static void lok_doc_view_get_property (GObject* object, guint propId, GValue *value, GParamSpec *pspec) { LOKDocView* pDocView = LOK_DOC_VIEW (object); - LOKDocViewPrivate* priv = pDocView->priv; + LOKDocViewPrivate* priv = static_cast(lok_doc_view_get_instance_private (pDocView)); switch (propId) { @@ -1097,7 +1097,7 @@ static gboolean lok_doc_view_draw (GtkWidget* pWidget, cairo_t* pCairo) static void lok_doc_view_finalize (GObject* object) { LOKDocView* pDocView = LOK_DOC_VIEW (object); - LOKDocViewPrivate* priv = pDocView->priv; + LOKDocViewPrivate* priv = static_cast(lok_doc_view_get_instance_private (pDocView)); if (priv->m_pDocument) priv->m_pDocument->pClass->destroy (priv->m_pDocument); @@ -1110,18 +1110,19 @@ static void lok_doc_view_finalize (GObject* object) static gboolean lok_doc_view_initable_init (GInitable *initable, GCancellable* /*cancellable*/, GError **error) { LOKDocView *pDocView = LOK_DOC_VIEW (initable); + LOKDocViewPrivate* priv = static_cast(lok_doc_view_get_instance_private (pDocView)); - if (pDocView->priv->m_pOffice != NULL) + if (priv->m_pOffice != NULL) return TRUE; - pDocView->priv->m_pOffice = lok_init (pDocView->priv->m_aLOPath); + priv->m_pOffice = lok_init (priv->m_aLOPath); - if (pDocView->priv->m_pOffice == NULL) + if (priv->m_pOffice == NULL) { g_set_error (error, g_quark_from_static_string ("LOK initialization error"), 0, "Failed to get LibreOfficeKit context. Make sure path (%s) is correct", - pDocView->priv->m_aLOPath); + priv->m_aLOPath); return FALSE; } @@ -1387,39 +1388,41 @@ lok_doc_view_new (const gchar* pPath, GCancellable *cancellable, GError **error) SAL_DLLPUBLIC_EXPORT gboolean lok_doc_view_open_document (LOKDocView* pDocView, const gchar* pPath) { - if ( pDocView->priv->m_pDocument ) + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); + + if ( priv->m_pDocument ) { - pDocView->priv->m_pDocument->pClass->destroy( pDocView->priv->m_pDocument ); - pDocView->priv->m_pDocument = 0; + priv->m_pDocument->pClass->destroy( priv->m_pDocument ); + priv->m_pDocument = 0; } - pDocView->priv->m_pOffice->pClass->registerCallback(pDocView->priv->m_pOffice, globalCallbackWorker, pDocView); - pDocView->priv->m_pDocument = pDocView->priv->m_pOffice->pClass->documentLoad( pDocView->priv->m_pOffice, pPath ); - if ( !pDocView->priv->m_pDocument ) + priv->m_pOffice->pClass->registerCallback(priv->m_pOffice, globalCallbackWorker, pDocView); + priv->m_pDocument = priv->m_pOffice->pClass->documentLoad( priv->m_pOffice, pPath ); + if ( !priv->m_pDocument ) { // FIXME: should have a GError parameter and populate it. - char *pError = pDocView->priv->m_pOffice->pClass->getError( pDocView->priv->m_pOffice ); + char *pError = priv->m_pOffice->pClass->getError( priv->m_pOffice ); fprintf( stderr, "Error opening document '%s'\n", pError ); return FALSE; } else { - pDocView->priv->m_pDocument->pClass->initializeForRendering(pDocView->priv->m_pDocument); - pDocView->priv->m_pDocument->pClass->registerCallback(pDocView->priv->m_pDocument, callbackWorker, pDocView); - pDocView->priv->m_pDocument->pClass->getDocumentSize(pDocView->priv->m_pDocument, &pDocView->priv->m_nDocumentWidthTwips, &pDocView->priv->m_nDocumentHeightTwips); + priv->m_pDocument->pClass->initializeForRendering(priv->m_pDocument); + priv->m_pDocument->pClass->registerCallback(priv->m_pDocument, callbackWorker, pDocView); + priv->m_pDocument->pClass->getDocumentSize(priv->m_pDocument, &priv->m_nDocumentWidthTwips, &priv->m_nDocumentHeightTwips); g_timeout_add(600, handleTimeout, pDocView); - float zoom = pDocView->priv->m_fZoom; - long nDocumentWidthTwips = pDocView->priv->m_nDocumentWidthTwips; - long nDocumentHeightTwips = pDocView->priv->m_nDocumentHeightTwips; + float zoom = priv->m_fZoom; + long nDocumentWidthTwips = priv->m_nDocumentWidthTwips; + long nDocumentHeightTwips = priv->m_nDocumentHeightTwips; long nDocumentWidthPixels = twipToPixel(nDocumentWidthTwips, zoom); long nDocumentHeightPixels = twipToPixel(nDocumentHeightTwips, zoom); // Total number of columns in this document. guint nColumns = ceil((double)nDocumentWidthPixels / nTileSizePixels); - pDocView->priv->m_aTileBuffer = TileBuffer(pDocView->priv->m_pDocument, - nColumns); + priv->m_aTileBuffer = TileBuffer(priv->m_pDocument, + nColumns); gtk_widget_set_size_request(GTK_WIDGET(pDocView), nDocumentWidthPixels, nDocumentHeightPixels); @@ -1436,7 +1439,8 @@ lok_doc_view_open_document (LOKDocView* pDocView, const gchar* pPath) SAL_DLLPUBLIC_EXPORT LibreOfficeKitDocument* lok_doc_view_get_document (LOKDocView* pDocView) { - return pDocView->priv->m_pDocument; + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); + return priv->m_pDocument; } /** @@ -1449,14 +1453,16 @@ lok_doc_view_get_document (LOKDocView* pDocView) SAL_DLLPUBLIC_EXPORT void lok_doc_view_set_zoom (LOKDocView* pDocView, float fZoom) { - pDocView->priv->m_fZoom = fZoom; - long nDocumentWidthPixels = twipToPixel(pDocView->priv->m_nDocumentWidthTwips, fZoom); - long nDocumentHeightPixels = twipToPixel(pDocView->priv->m_nDocumentHeightTwips, fZoom); + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); + + priv->m_fZoom = fZoom; + long nDocumentWidthPixels = twipToPixel(priv->m_nDocumentWidthTwips, fZoom); + long nDocumentHeightPixels = twipToPixel(priv->m_nDocumentHeightTwips, fZoom); // Total number of columns in this document. guint nColumns = ceil((double)nDocumentWidthPixels / nTileSizePixels); - pDocView->priv->m_aTileBuffer = TileBuffer(pDocView->priv->m_pDocument, - nColumns); + priv->m_aTileBuffer = TileBuffer(priv->m_pDocument, + nColumns); gtk_widget_set_size_request(GTK_WIDGET(pDocView), nDocumentWidthPixels, nDocumentHeightPixels); @@ -1471,38 +1477,44 @@ lok_doc_view_set_zoom (LOKDocView* pDocView, float fZoom) SAL_DLLPUBLIC_EXPORT float lok_doc_view_get_zoom (LOKDocView* pDocView) { - return pDocView->priv->m_fZoom; + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); + return priv->m_fZoom; } SAL_DLLPUBLIC_EXPORT int lok_doc_view_get_parts (LOKDocView* pDocView) { - return pDocView->priv->m_pDocument->pClass->getParts( pDocView->priv->m_pDocument ); + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); + return priv->m_pDocument->pClass->getParts( priv->m_pDocument ); } SAL_DLLPUBLIC_EXPORT int lok_doc_view_get_part (LOKDocView* pDocView) { - return pDocView->priv->m_pDocument->pClass->getPart( pDocView->priv->m_pDocument ); + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); + return priv->m_pDocument->pClass->getPart( priv->m_pDocument ); } SAL_DLLPUBLIC_EXPORT void lok_doc_view_set_part (LOKDocView* pDocView, int nPart) { - pDocView->priv->m_pDocument->pClass->setPart( pDocView->priv->m_pDocument, nPart ); + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); + priv->m_pDocument->pClass->setPart( priv->m_pDocument, nPart ); } SAL_DLLPUBLIC_EXPORT char* lok_doc_view_get_part_name (LOKDocView* pDocView, int nPart) { - return pDocView->priv->m_pDocument->pClass->getPartName( pDocView->priv->m_pDocument, nPart ); + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); + return priv->m_pDocument->pClass->getPartName( priv->m_pDocument, nPart ); } SAL_DLLPUBLIC_EXPORT void lok_doc_view_set_partmode(LOKDocView* pDocView, int nPartMode) { - pDocView->priv->m_pDocument->pClass->setPartMode( pDocView->priv->m_pDocument, nPartMode ); + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); + priv->m_pDocument->pClass->setPartMode( priv->m_pDocument, nPartMode ); } /** @@ -1516,16 +1528,17 @@ SAL_DLLPUBLIC_EXPORT void lok_doc_view_set_edit(LOKDocView* pDocView, gboolean bEdit) { - gboolean bWasEdit = pDocView->priv->m_bEdit; + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); + gboolean bWasEdit = priv->m_bEdit; - if (!pDocView->priv->m_bEdit && bEdit) + if (!priv->m_bEdit && bEdit) g_info("lok_doc_view_set_edit: entering edit mode"); - else if (pDocView->priv->m_bEdit && !bEdit) + else if (priv->m_bEdit && !bEdit) { g_info("lok_doc_view_set_edit: leaving edit mode"); - pDocView->priv->m_pDocument->pClass->resetSelection(pDocView->priv->m_pDocument); + priv->m_pDocument->pClass->resetSelection(priv->m_pDocument); } - pDocView->priv->m_bEdit = bEdit; + priv->m_bEdit = bEdit; g_signal_emit(pDocView, doc_view_signals[EDIT_CHANGED], 0, bWasEdit); gtk_widget_queue_draw(GTK_WIDGET(pDocView)); } @@ -1539,7 +1552,8 @@ lok_doc_view_set_edit(LOKDocView* pDocView, SAL_DLLPUBLIC_EXPORT gboolean lok_doc_view_get_edit (LOKDocView* pDocView) { - return pDocView->priv->m_bEdit; + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); + return priv->m_bEdit; } /** @@ -1555,7 +1569,8 @@ lok_doc_view_post_command (LOKDocView* pDocView, const char* pCommand, const char* pArguments) { - pDocView->priv->m_pDocument->pClass->postUnoCommand(pDocView->priv->m_pDocument, pCommand, pArguments); + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); + priv->m_pDocument->pClass->postUnoCommand(priv->m_pDocument, pCommand, pArguments); } /** @@ -1583,7 +1598,8 @@ lok_doc_view_post_key (LOKDocView* pDocView, GdkEvent* pEvent) SAL_DLLPUBLIC_EXPORT float lok_doc_view_pixel_to_twip (LOKDocView* pDocView, float fInput) { - return pixelToTwip(fInput, pDocView->priv->m_fZoom); + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); + return pixelToTwip(fInput, priv->m_fZoom); } /** @@ -1598,7 +1614,8 @@ lok_doc_view_pixel_to_twip (LOKDocView* pDocView, float fInput) SAL_DLLPUBLIC_EXPORT float lok_doc_view_twip_to_pixel (LOKDocView* pDocView, float fInput) { - return twipToPixel(fInput, pDocView->priv->m_fZoom); + LOKDocViewPrivate *priv = static_cast(lok_doc_view_get_instance_private (pDocView)); + return twipToPixel(fInput, priv->m_fZoom); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- 2.12.0