diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2021-06-16 08:29:52 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2021-06-16 08:29:52 +0200 |
commit | 8b63acd444b8e8ad757e25b1f2fca0ec037f149f (patch) | |
tree | 56e94f1e7b135f3c5f6151deea4a3c2772110d9f /src/utils.c | |
parent | db18ded6c8a4ab9d4a0921a3f52e8f3507607238 (diff) | |
parent | a30fd6325b842dad70812f78a919744ab854d7ee (diff) | |
download | libayatana-common-8b63acd444b8e8ad757e25b1f2fca0ec037f149f.tar.gz libayatana-common-8b63acd444b8e8ad757e25b1f2fca0ec037f149f.tar.bz2 libayatana-common-8b63acd444b8e8ad757e25b1f2fca0ec037f149f.zip |
Merge branch 'tari01-pr/add-menu-item-lengths'
Attributes GH PR #25: https://github.com/AyatanaIndicators/libayatana-common/pull/25
Diffstat (limited to 'src/utils.c')
-rw-r--r-- | src/utils.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c index d735172..1d21b02 100644 --- a/src/utils.c +++ b/src/utils.c @@ -273,3 +273,29 @@ ayatana_common_utils_zenity_warning (const char * icon_name, g_free (zenity); return confirmed; } + +void ayatana_common_utils_elipsize(char *sText) +{ + guint nMaxLetters = 50; + glong nLetters = g_utf8_strlen(sText, -1); + GSettingsSchemaSource *pSource = g_settings_schema_source_get_default(); + + if (pSource != NULL) + { + GSettingsSchema *pSchema = g_settings_schema_source_lookup(pSource, "org.ayatana.common", FALSE); + + if (pSchema != NULL) + { + g_settings_schema_unref(pSchema); + GSettings *pSettings = g_settings_new("org.ayatana.common"); + nMaxLetters = g_settings_get_uint(pSettings, "max-menu-text-length"); + g_object_unref(pSettings); + } + } + + if (nLetters > nMaxLetters + 4) + { + gchar *pLastChar = g_utf8_offset_to_pointer(sText, nMaxLetters); + memcpy(pLastChar, "...\0", 4); + } +} |