Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
f6ef6af2
Kaydet (Commit)
f6ef6af2
authored
Eyl 15, 2015
tarafından
Miklos Vajna
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
gtktiledviewer: allow multiple DocView instances
Change-Id: I4e8a08d71a94445e8fd30563867a2741cad862e5
üst
20df29e6
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
70 additions
and
39 deletions
+70
-39
gtktiledviewer.cxx
libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
+70
-39
No files found.
libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
Dosyayı görüntüle @
f6ef6af2
...
@@ -30,7 +30,6 @@ static int help()
...
@@ -30,7 +30,6 @@ static int help()
return
1
;
return
1
;
}
}
static
GtkWidget
*
pDocView
;
static
GtkWidget
*
pStatusBar
;
static
GtkWidget
*
pStatusBar
;
static
GtkToolItem
*
pEnableEditing
;
static
GtkToolItem
*
pEnableEditing
;
static
GtkToolItem
*
pBold
;
static
GtkToolItem
*
pBold
;
...
@@ -50,6 +49,24 @@ static GtkWidget* pFindbar;
...
@@ -50,6 +49,24 @@ static GtkWidget* pFindbar;
static
GtkWidget
*
pFindbarEntry
;
static
GtkWidget
*
pFindbarEntry
;
static
GtkWidget
*
pFindbarLabel
;
static
GtkWidget
*
pFindbarLabel
;
class
TiledWindow
{
public
:
GtkWidget
*
m_pDocView
;
TiledWindow
()
:
m_pDocView
(
0
)
{
}
};
static
std
::
map
<
GtkWidget
*
,
TiledWindow
>
g_aWindows
;
static
TiledWindow
&
lcl_getTiledWindow
(
GtkWidget
*
pWidget
)
{
return
g_aWindows
[
gtk_widget_get_toplevel
(
pWidget
)];
}
static
void
lcl_registerToolItem
(
GtkToolItem
*
pItem
,
const
std
::
string
&
rName
)
static
void
lcl_registerToolItem
(
GtkToolItem
*
pItem
,
const
std
::
string
&
rName
)
{
{
g_aToolItemCommandNames
[
pItem
]
=
rName
;
g_aToolItemCommandNames
[
pItem
]
=
rName
;
...
@@ -60,7 +77,7 @@ const float fZooms[] = { 0.25, 0.5, 0.75, 1.0, 1.5, 2.0, 3.0, 5.0 };
...
@@ -60,7 +77,7 @@ const float fZooms[] = { 0.25, 0.5, 0.75, 1.0, 1.5, 2.0, 3.0, 5.0 };
/// Get the visible area of the scrolled window
/// Get the visible area of the scrolled window
static
void
getVisibleAreaTwips
(
GdkRectangle
*
pArea
)
static
void
getVisibleAreaTwips
(
G
tkWidget
*
pDocView
,
G
dkRectangle
*
pArea
)
{
{
#if GTK_CHECK_VERSION(2,14,0) // we need gtk_adjustment_get_page_size()
#if GTK_CHECK_VERSION(2,14,0) // we need gtk_adjustment_get_page_size()
GtkAdjustment
*
pHAdjustment
=
gtk_scrolled_window_get_hadjustment
(
GTK_SCROLLED_WINDOW
(
pScrolledWindow
));
GtkAdjustment
*
pHAdjustment
=
gtk_scrolled_window_get_hadjustment
(
GTK_SCROLLED_WINDOW
(
pScrolledWindow
));
...
@@ -79,6 +96,9 @@ static void getVisibleAreaTwips(GdkRectangle* pArea)
...
@@ -79,6 +96,9 @@ static void getVisibleAreaTwips(GdkRectangle* pArea)
static
void
changeZoom
(
GtkWidget
*
pButton
,
gpointer
/* pItem */
)
static
void
changeZoom
(
GtkWidget
*
pButton
,
gpointer
/* pItem */
)
{
{
TiledWindow
&
rWindow
=
lcl_getTiledWindow
(
pButton
);
GtkWidget
*
pDocView
=
rWindow
.
m_pDocView
;
const
char
*
sName
=
gtk_tool_button_get_icon_name
(
GTK_TOOL_BUTTON
(
pButton
)
);
const
char
*
sName
=
gtk_tool_button_get_icon_name
(
GTK_TOOL_BUTTON
(
pButton
)
);
float
fZoom
=
0
;
float
fZoom
=
0
;
...
@@ -125,9 +145,11 @@ static void changeZoom( GtkWidget* pButton, gpointer /* pItem */ )
...
@@ -125,9 +145,11 @@ static void changeZoom( GtkWidget* pButton, gpointer /* pItem */ )
}
}
/// User clicked on the button -> inform LOKDocView.
/// User clicked on the button -> inform LOKDocView.
static
void
toggleEditing
(
GtkWidget
*
/*pButton*/
,
gpointer
/*pItem*/
)
static
void
toggleEditing
(
GtkWidget
*
pButton
,
gpointer
/*pItem*/
)
{
{
LOKDocView
*
pLOKDocView
=
LOK_DOC_VIEW
(
pDocView
);
TiledWindow
&
rWindow
=
lcl_getTiledWindow
(
pButton
);
LOKDocView
*
pLOKDocView
=
LOK_DOC_VIEW
(
rWindow
.
m_pDocView
);
bool
bActive
=
gtk_toggle_tool_button_get_active
(
GTK_TOGGLE_TOOL_BUTTON
(
pEnableEditing
));
bool
bActive
=
gtk_toggle_tool_button_get_active
(
GTK_TOGGLE_TOOL_BUTTON
(
pEnableEditing
));
if
(
bool
(
lok_doc_view_get_edit
(
pLOKDocView
))
!=
bActive
)
if
(
bool
(
lok_doc_view_get_edit
(
pLOKDocView
))
!=
bActive
)
lok_doc_view_set_edit
(
pLOKDocView
,
bActive
);
lok_doc_view_set_edit
(
pLOKDocView
,
bActive
);
...
@@ -148,9 +170,10 @@ static void toggleFindbar(GtkWidget* /*pButton*/, gpointer /*pItem*/)
...
@@ -148,9 +170,10 @@ static void toggleFindbar(GtkWidget* /*pButton*/, gpointer /*pItem*/)
}
}
/// Calls lok::Document::createView().
/// Calls lok::Document::createView().
static
void
createView
(
GtkWidget
*
/*pButton*/
,
gpointer
/*pItem*/
)
static
void
createView
(
GtkWidget
*
pButton
,
gpointer
/*pItem*/
)
{
{
LOKDocView
*
pLOKDocView
=
LOK_DOC_VIEW
(
pDocView
);
TiledWindow
&
rWindow
=
lcl_getTiledWindow
(
pButton
);
LOKDocView
*
pLOKDocView
=
LOK_DOC_VIEW
(
rWindow
.
m_pDocView
);
LibreOfficeKitDocument
*
pDocument
=
lok_doc_view_get_document
(
pLOKDocView
);
LibreOfficeKitDocument
*
pDocument
=
lok_doc_view_get_document
(
pLOKDocView
);
pDocument
->
pClass
->
createView
(
pDocument
);
pDocument
->
pClass
->
createView
(
pDocument
);
}
}
...
@@ -185,14 +208,15 @@ static void clipboardSetHtml(GtkClipboard* pClipboard, const char* pSelection)
...
@@ -185,14 +208,15 @@ static void clipboardSetHtml(GtkClipboard* pClipboard, const char* pSelection)
}
}
/// Handler for the copy button: write clipboard.
/// Handler for the copy button: write clipboard.
static
void
doCopy
(
GtkWidget
*
/*pButton*/
,
gpointer
/*pItem*/
)
static
void
doCopy
(
GtkWidget
*
pButton
,
gpointer
/*pItem*/
)
{
{
LOKDocView
*
pLOKDocView
=
LOK_DOC_VIEW
(
pDocView
);
TiledWindow
&
rWindow
=
lcl_getTiledWindow
(
pButton
);
LOKDocView
*
pLOKDocView
=
LOK_DOC_VIEW
(
rWindow
.
m_pDocView
);
LibreOfficeKitDocument
*
pDocument
=
lok_doc_view_get_document
(
pLOKDocView
);
LibreOfficeKitDocument
*
pDocument
=
lok_doc_view_get_document
(
pLOKDocView
);
char
*
pUsedFormat
=
0
;
char
*
pUsedFormat
=
0
;
char
*
pSelection
=
pDocument
->
pClass
->
getTextSelection
(
pDocument
,
"text/html"
,
&
pUsedFormat
);
char
*
pSelection
=
pDocument
->
pClass
->
getTextSelection
(
pDocument
,
"text/html"
,
&
pUsedFormat
);
GtkClipboard
*
pClipboard
=
gtk_clipboard_get_for_display
(
gtk_widget_get_display
(
pDocView
),
GDK_SELECTION_CLIPBOARD
);
GtkClipboard
*
pClipboard
=
gtk_clipboard_get_for_display
(
gtk_widget_get_display
(
rWindow
.
m_
pDocView
),
GDK_SELECTION_CLIPBOARD
);
std
::
string
aUsedFormat
(
pUsedFormat
);
std
::
string
aUsedFormat
(
pUsedFormat
);
if
(
aUsedFormat
==
"text/plain;charset=utf-8"
)
if
(
aUsedFormat
==
"text/plain;charset=utf-8"
)
gtk_clipboard_set_text
(
pClipboard
,
pSelection
,
-
1
);
gtk_clipboard_set_text
(
pClipboard
,
pSelection
,
-
1
);
...
@@ -205,7 +229,7 @@ static void doCopy(GtkWidget* /*pButton*/, gpointer /*pItem*/)
...
@@ -205,7 +229,7 @@ static void doCopy(GtkWidget* /*pButton*/, gpointer /*pItem*/)
/// Searches for the next or previous text of pFindbarEntry.
/// Searches for the next or previous text of pFindbarEntry.
static
void
doSearch
(
bool
bBackwards
)
static
void
doSearch
(
GtkWidget
*
pButton
,
bool
bBackwards
)
{
{
GtkEntry
*
pEntry
=
GTK_ENTRY
(
pFindbarEntry
);
GtkEntry
*
pEntry
=
GTK_ENTRY
(
pFindbarEntry
);
const
char
*
pText
=
gtk_entry_get_text
(
pEntry
);
const
char
*
pText
=
gtk_entry_get_text
(
pEntry
);
...
@@ -215,9 +239,10 @@ static void doSearch(bool bBackwards)
...
@@ -215,9 +239,10 @@ static void doSearch(bool bBackwards)
aTree
.
put
(
boost
::
property_tree
::
ptree
::
path_type
(
"SearchItem.Backward/type"
,
'/'
),
"boolean"
);
aTree
.
put
(
boost
::
property_tree
::
ptree
::
path_type
(
"SearchItem.Backward/type"
,
'/'
),
"boolean"
);
aTree
.
put
(
boost
::
property_tree
::
ptree
::
path_type
(
"SearchItem.Backward/value"
,
'/'
),
bBackwards
);
aTree
.
put
(
boost
::
property_tree
::
ptree
::
path_type
(
"SearchItem.Backward/value"
,
'/'
),
bBackwards
);
LOKDocView
*
pLOKDocView
=
LOK_DOC_VIEW
(
pDocView
);
TiledWindow
&
rWindow
=
lcl_getTiledWindow
(
pButton
);
LOKDocView
*
pLOKDocView
=
LOK_DOC_VIEW
(
rWindow
.
m_pDocView
);
GdkRectangle
aArea
;
GdkRectangle
aArea
;
getVisibleAreaTwips
(
&
aArea
);
getVisibleAreaTwips
(
rWindow
.
m_pDocView
,
&
aArea
);
aTree
.
put
(
boost
::
property_tree
::
ptree
::
path_type
(
"SearchItem.SearchStartPointX/type"
,
'/'
),
"long"
);
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.SearchStartPointX/value"
,
'/'
),
aArea
.
x
);
aTree
.
put
(
boost
::
property_tree
::
ptree
::
path_type
(
"SearchItem.SearchStartPointY/type"
,
'/'
),
"long"
);
aTree
.
put
(
boost
::
property_tree
::
ptree
::
path_type
(
"SearchItem.SearchStartPointY/type"
,
'/'
),
"long"
);
...
@@ -230,19 +255,19 @@ static void doSearch(bool bBackwards)
...
@@ -230,19 +255,19 @@ static void doSearch(bool bBackwards)
}
}
/// Click handler for the search next button.
/// Click handler for the search next button.
static
void
signalSearchNext
(
GtkWidget
*
/*pButton*/
,
gpointer
/*pItem*/
)
static
void
signalSearchNext
(
GtkWidget
*
pButton
,
gpointer
/*pItem*/
)
{
{
doSearch
(
/*bBackwards=*/
false
);
doSearch
(
pButton
,
/*bBackwards=*/
false
);
}
}
/// Click handler for the search previous button.
/// Click handler for the search previous button.
static
void
signalSearchPrev
(
GtkWidget
*
/*pButton*/
,
gpointer
/*pItem*/
)
static
void
signalSearchPrev
(
GtkWidget
*
pButton
,
gpointer
/*pItem*/
)
{
{
doSearch
(
/*bBackwards=*/
true
);
doSearch
(
pButton
,
/*bBackwards=*/
true
);
}
}
/// Handles the key-press-event of the search entry widget.
/// Handles the key-press-event of the search entry widget.
static
gboolean
signalFindbar
(
GtkWidget
*
/*pWidget*/
,
GdkEventKey
*
pEvent
,
gpointer
/*pData*/
)
static
gboolean
signalFindbar
(
GtkWidget
*
pWidget
,
GdkEventKey
*
pEvent
,
gpointer
/*pData*/
)
{
{
gtk_label_set_text
(
GTK_LABEL
(
pFindbarLabel
),
""
);
gtk_label_set_text
(
GTK_LABEL
(
pFindbarLabel
),
""
);
switch
(
pEvent
->
keyval
)
switch
(
pEvent
->
keyval
)
...
@@ -250,7 +275,7 @@ static gboolean signalFindbar(GtkWidget* /*pWidget*/, GdkEventKey* pEvent, gpoin
...
@@ -250,7 +275,7 @@ static gboolean signalFindbar(GtkWidget* /*pWidget*/, GdkEventKey* pEvent, gpoin
case
GDK_KEY_Return
:
case
GDK_KEY_Return
:
{
{
// Search forward.
// Search forward.
doSearch
(
/*bBackwards=*/
false
);
doSearch
(
pWidget
,
/*bBackwards=*/
false
);
return
TRUE
;
return
TRUE
;
}
}
case
GDK_KEY_Escape
:
case
GDK_KEY_Escape
:
...
@@ -331,7 +356,7 @@ static void signalHyperlink(LOKDocView* /*pLOKDocView*/, char* pPayload, gpointe
...
@@ -331,7 +356,7 @@ static void signalHyperlink(LOKDocView* /*pLOKDocView*/, char* pPayload, gpointe
}
}
/// Cursor position changed
/// Cursor position changed
static
void
cursorChanged
(
LOKDocView
*
/*pDocView*/
,
gint
nX
,
gint
nY
,
static
void
cursorChanged
(
LOKDocView
*
pDocView
,
gint
nX
,
gint
nY
,
gint
/*nWidth*/
,
gint
/*nHeight*/
,
gpointer
/*pData*/
)
gint
/*nWidth*/
,
gint
/*nHeight*/
,
gpointer
/*pData*/
)
{
{
GtkAdjustment
*
vadj
=
gtk_scrolled_window_get_vadjustment
(
GTK_SCROLLED_WINDOW
(
pScrolledWindow
));
GtkAdjustment
*
vadj
=
gtk_scrolled_window_get_vadjustment
(
GTK_SCROLLED_WINDOW
(
pScrolledWindow
));
...
@@ -340,7 +365,7 @@ static void cursorChanged(LOKDocView* /*pDocView*/, gint nX, gint nY,
...
@@ -340,7 +365,7 @@ static void cursorChanged(LOKDocView* /*pDocView*/, gint nX, gint nY,
gdouble
upper
;
gdouble
upper
;
gint
x
=
-
1
,
y
=
-
1
;
gint
x
=
-
1
,
y
=
-
1
;
getVisibleAreaTwips
(
&
visArea
);
getVisibleAreaTwips
(
GTK_WIDGET
(
pDocView
),
&
visArea
);
// check vertically
// check vertically
if
(
nY
<
visArea
.
y
)
if
(
nY
<
visArea
.
y
)
...
@@ -382,7 +407,8 @@ static void toggleToolItem(GtkWidget* pWidget, gpointer /*pData*/)
...
@@ -382,7 +407,8 @@ static void toggleToolItem(GtkWidget* pWidget, gpointer /*pData*/)
{
{
if
(
g_bToolItemBroadcast
)
if
(
g_bToolItemBroadcast
)
{
{
LOKDocView
*
pLOKDocView
=
LOK_DOC_VIEW
(
pDocView
);
TiledWindow
&
rWindow
=
lcl_getTiledWindow
(
pWidget
);
LOKDocView
*
pLOKDocView
=
LOK_DOC_VIEW
(
rWindow
.
m_pDocView
);
GtkToolItem
*
pItem
=
GTK_TOOL_ITEM
(
pWidget
);
GtkToolItem
*
pItem
=
GTK_TOOL_ITEM
(
pWidget
);
const
std
::
string
&
rString
=
g_aToolItemCommandNames
[
pItem
];
const
std
::
string
&
rString
=
g_aToolItemCommandNames
[
pItem
];
g_info
(
"toggleToolItem: lok_doc_view_post_command('%s')"
,
rString
.
c_str
());
g_info
(
"toggleToolItem: lok_doc_view_post_command('%s')"
,
rString
.
c_str
());
...
@@ -390,13 +416,13 @@ static void toggleToolItem(GtkWidget* pWidget, gpointer /*pData*/)
...
@@ -390,13 +416,13 @@ static void toggleToolItem(GtkWidget* pWidget, gpointer /*pData*/)
}
}
}
}
static
void
populatePartSelector
()
static
void
populatePartSelector
(
LOKDocView
*
pLOKDocView
)
{
{
gtk_list_store_clear
(
GTK_LIST_STORE
(
gtk_list_store_clear
(
GTK_LIST_STORE
(
gtk_combo_box_get_model
(
gtk_combo_box_get_model
(
GTK_COMBO_BOX
(
pPartSelector
)
))
);
GTK_COMBO_BOX
(
pPartSelector
)
))
);
if
(
!
pDocView
)
if
(
!
pLOKDocView
)
{
{
return
;
return
;
}
}
...
@@ -404,35 +430,35 @@ static void populatePartSelector()
...
@@ -404,35 +430,35 @@ static void populatePartSelector()
const
int
nMaxLength
=
50
;
const
int
nMaxLength
=
50
;
char
sText
[
nMaxLength
];
char
sText
[
nMaxLength
];
int
nParts
=
lok_doc_view_get_parts
(
LOK_DOC_VIEW
(
pDocView
)
);
int
nParts
=
lok_doc_view_get_parts
(
pLOKDocView
);
for
(
int
i
=
0
;
i
<
nParts
;
i
++
)
for
(
int
i
=
0
;
i
<
nParts
;
i
++
)
{
{
char
*
pName
=
lok_doc_view_get_part_name
(
LOK_DOC_VIEW
(
pDocView
),
i
);
char
*
pName
=
lok_doc_view_get_part_name
(
pLOKDocView
,
i
);
assert
(
pName
);
assert
(
pName
);
snprintf
(
sText
,
nMaxLength
,
"%i (%s)"
,
i
+
1
,
pName
);
snprintf
(
sText
,
nMaxLength
,
"%i (%s)"
,
i
+
1
,
pName
);
free
(
pName
);
free
(
pName
);
gtk_combo_box_text_append_text
(
pPartSelector
,
sText
);
gtk_combo_box_text_append_text
(
pPartSelector
,
sText
);
}
}
gtk_combo_box_set_active
(
GTK_COMBO_BOX
(
pPartSelector
),
gtk_combo_box_set_active
(
GTK_COMBO_BOX
(
pPartSelector
),
lok_doc_view_get_part
(
pLOKDocView
));
lok_doc_view_get_part
(
LOK_DOC_VIEW
(
pDocView
)
)
);
}
}
static
void
signalSize
(
LOKDocView
*
/*pLOKDocView*/
,
gpointer
/*pData*/
)
static
void
signalSize
(
LOKDocView
*
pLOKDocView
,
gpointer
/*pData*/
)
{
{
g_bPartSelectorBroadcast
=
false
;
g_bPartSelectorBroadcast
=
false
;
populatePartSelector
();
populatePartSelector
(
pLOKDocView
);
g_bPartSelectorBroadcast
=
true
;
g_bPartSelectorBroadcast
=
true
;
}
}
static
void
changePart
(
GtkWidget
*
pSelector
,
gpointer
/* pItem */
)
static
void
changePart
(
GtkWidget
*
pSelector
,
gpointer
/* pItem */
)
{
{
int
nPart
=
gtk_combo_box_get_active
(
GTK_COMBO_BOX
(
pSelector
)
);
int
nPart
=
gtk_combo_box_get_active
(
GTK_COMBO_BOX
(
pSelector
)
);
TiledWindow
&
rWindow
=
lcl_getTiledWindow
(
pSelector
);
if
(
g_bPartSelectorBroadcast
&&
pDocView
)
if
(
g_bPartSelectorBroadcast
&&
rWindow
.
m_
pDocView
)
{
{
lok_doc_view_set_part
(
LOK_DOC_VIEW
(
pDocView
),
nPart
);
lok_doc_view_set_part
(
LOK_DOC_VIEW
(
rWindow
.
m_
pDocView
),
nPart
);
lok_doc_view_reset_view
(
LOK_DOC_VIEW
(
pDocView
)
);
lok_doc_view_reset_view
(
LOK_DOC_VIEW
(
rWindow
.
m_
pDocView
)
);
}
}
}
}
...
@@ -454,32 +480,33 @@ static void changePartMode( GtkWidget* pSelector, gpointer /* pItem */ )
...
@@ -454,32 +480,33 @@ static void changePartMode( GtkWidget* pSelector, gpointer /* pItem */ )
// I.e. the ordering above should match the enum member ordering.
// I.e. the ordering above should match the enum member ordering.
LibreOfficeKitPartMode
ePartMode
=
LibreOfficeKitPartMode
ePartMode
=
LibreOfficeKitPartMode
(
gtk_combo_box_get_active
(
GTK_COMBO_BOX
(
pSelector
)
)
);
LibreOfficeKitPartMode
(
gtk_combo_box_get_active
(
GTK_COMBO_BOX
(
pSelector
)
)
);
TiledWindow
&
rWindow
=
lcl_getTiledWindow
(
pSelector
);
if
(
pDocView
)
if
(
rWindow
.
m_
pDocView
)
{
{
lok_doc_view_set_partmode
(
LOK_DOC_VIEW
(
pDocView
),
ePartMode
);
lok_doc_view_set_partmode
(
LOK_DOC_VIEW
(
rWindow
.
m_
pDocView
),
ePartMode
);
}
}
}
}
static
void
openDocumentCallback
(
GObject
*
source_object
,
GAsyncResult
*
res
,
gpointer
/*userdata*/
)
static
void
openDocumentCallback
(
GObject
*
source_object
,
GAsyncResult
*
res
,
gpointer
/*userdata*/
)
{
{
LOKDocView
*
pDocView
1
=
LOK_DOC_VIEW
(
source_object
);
LOKDocView
*
pDocView
=
LOK_DOC_VIEW
(
source_object
);
GError
*
error
=
NULL
;
GError
*
error
=
NULL
;
GList
*
focusChain
=
NULL
;
GList
*
focusChain
=
NULL
;
if
(
!
lok_doc_view_open_document_finish
(
pDocView
1
,
res
,
&
error
))
if
(
!
lok_doc_view_open_document_finish
(
pDocView
,
res
,
&
error
))
{
{
g_warning
(
"Error occurred while opening the document : %s"
,
error
->
message
);
g_warning
(
"Error occurred while opening the document : %s"
,
error
->
message
);
g_error_free
(
error
);
g_error_free
(
error
);
}
}
populatePartSelector
();
populatePartSelector
(
pDocView
);
populatePartModeSelector
(
GTK_COMBO_BOX_TEXT
(
pPartModeComboBox
)
);
populatePartModeSelector
(
GTK_COMBO_BOX_TEXT
(
pPartModeComboBox
)
);
// Connect these signals after populating the selectors, to avoid re-rendering on setting the default part/partmode.
// Connect these signals after populating the selectors, to avoid re-rendering on setting the default part/partmode.
g_signal_connect
(
G_OBJECT
(
pPartModeComboBox
),
"changed"
,
G_CALLBACK
(
changePartMode
),
0
);
g_signal_connect
(
G_OBJECT
(
pPartModeComboBox
),
"changed"
,
G_CALLBACK
(
changePartMode
),
0
);
g_signal_connect
(
G_OBJECT
(
pPartSelector
),
"changed"
,
G_CALLBACK
(
changePart
),
0
);
g_signal_connect
(
G_OBJECT
(
pPartSelector
),
"changed"
,
G_CALLBACK
(
changePart
),
0
);
focusChain
=
g_list_append
(
focusChain
,
pDocView
1
);
focusChain
=
g_list_append
(
focusChain
,
pDocView
);
gtk_container_set_focus_chain
(
GTK_CONTAINER
(
pVBox
),
focusChain
);
gtk_container_set_focus_chain
(
GTK_CONTAINER
(
pVBox
),
focusChain
);
gtk_widget_hide
(
pStatusBar
);
gtk_widget_hide
(
pStatusBar
);
...
@@ -640,7 +667,7 @@ int main( int argc, char* argv[] )
...
@@ -640,7 +667,7 @@ int main( int argc, char* argv[] )
gtk_box_pack_end
(
GTK_BOX
(
pVBox
),
pFindbar
,
FALSE
,
FALSE
,
0
);
gtk_box_pack_end
(
GTK_BOX
(
pVBox
),
pFindbar
,
FALSE
,
FALSE
,
0
);
// Docview
// Docview
pDocView
=
lok_doc_view_new
(
argv
[
1
],
NULL
,
NULL
);
GtkWidget
*
pDocView
=
lok_doc_view_new
(
argv
[
1
],
NULL
,
NULL
);
#if GLIB_CHECK_VERSION(2,40,0)
#if GLIB_CHECK_VERSION(2,40,0)
g_assert_nonnull
(
pDocView
);
g_assert_nonnull
(
pDocView
);
#endif
#endif
...
@@ -675,6 +702,10 @@ int main( int argc, char* argv[] )
...
@@ -675,6 +702,10 @@ int main( int argc, char* argv[] )
// Hide the findbar by default.
// Hide the findbar by default.
gtk_widget_hide
(
pFindbar
);
gtk_widget_hide
(
pFindbar
);
TiledWindow
aWindow
;
aWindow
.
m_pDocView
=
pDocView
;
g_aWindows
[
pWindow
]
=
aWindow
;
lok_doc_view_open_document
(
LOK_DOC_VIEW
(
pDocView
),
argv
[
2
],
NULL
,
openDocumentCallback
,
pDocView
);
lok_doc_view_open_document
(
LOK_DOC_VIEW
(
pDocView
),
argv
[
2
],
NULL
,
openDocumentCallback
,
pDocView
);
gtk_main
();
gtk_main
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment