sdgtk: add and use a custom listview widget

Nothing in GTK+ appears to be suited for what are virtually infinite
lists.  Our workaround with GtkLabel and GtkScrolledWindow has been
heavily suboptimal and needs to be replaced.

Use Pango directly to handle our relatively simple needs.

Upgrades:
 - the widget can be scrolled,
 - keywords are repeated for each definition line,
 - definition lines are now wrapped, and support 'g' and 'x' fields.

Downgrades:
 - text can no longer be selected, so far.
This commit is contained in:
2021-07-09 20:18:01 +02:00
parent f812fae922
commit 9d7bc2a839
6 changed files with 585 additions and 130 deletions

View File

@@ -157,7 +157,9 @@ target_link_libraries (${PROJECT_NAME} ${project_common_libraries})
pkg_check_modules (gtk gtk+-3.0)
if (gtk_FOUND)
add_executable (sdgtk EXCLUDE_FROM_ALL
src/sdgtk.c ${project_common_sources})
src/sdgtk.c
src/stardict-view.c
${project_common_sources})
target_include_directories (sdgtk PUBLIC ${gtk_INCLUDE_DIRS})
target_link_libraries (sdgtk ${gtk_LIBRARIES} ${project_common_libraries})
endif ()