本文整理汇总了C++中G_THEMED_ICON函数的典型用法代码示例。如果您正苦于以下问题:C++ G_THEMED_ICON函数的具体用法?C++ G_THEMED_ICON怎么用?C++ G_THEMED_ICON使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了G_THEMED_ICON函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _g_icon_get_pixbuf
GdkPixbuf *
_g_icon_get_pixbuf (GIcon *icon,
int size,
GtkIconTheme *theme)
{
GdkPixbuf *pixbuf;
int w, h;
if (icon == NULL)
return NULL;
pixbuf = NULL;
if (G_IS_THEMED_ICON (icon))
pixbuf = get_themed_icon_pixbuf (G_THEMED_ICON (icon), size, theme);
if (G_IS_FILE_ICON (icon))
pixbuf = get_file_icon_pixbuf (G_FILE_ICON (icon), size);
if (pixbuf == NULL)
return NULL;
w = gdk_pixbuf_get_width (pixbuf);
h = gdk_pixbuf_get_height (pixbuf);
if (scale_keeping_ratio (&w, &h, size, size, FALSE)) {
GdkPixbuf *scaled;
scaled = gdk_pixbuf_scale_simple (pixbuf, w, h, GDK_INTERP_BILINEAR);
g_object_unref (pixbuf);
pixbuf = scaled;
}
return pixbuf;
}
示例2: ignore_drive
static gboolean
ignore_drive (GDrive *drive)
{
GIcon *icon;
if (g_drive_can_eject (drive) == FALSE ||
g_drive_has_media (drive) == FALSE) {
GRL_DEBUG ("%s: Not adding %s as cannot eject or has no media", __FUNCTION__,
g_drive_get_name (drive));
return TRUE;
}
/* Hack to avoid USB devices showing up
* https://bugzilla.gnome.org/show_bug.cgi?id=679624 */
icon = g_drive_get_icon (drive);
if (icon && G_IS_THEMED_ICON (icon)) {
const gchar * const * names;
names = g_themed_icon_get_names (G_THEMED_ICON (icon));
if (names && names[0] && !g_str_has_prefix (names[0], "drive-optical")) {
g_object_unref (icon);
GRL_DEBUG ("%s: Not adding drive %s as is not optical drive", __FUNCTION__,
g_drive_get_name (drive));
return TRUE;
}
}
g_clear_object (&icon);
return FALSE;
}
示例3: get_file_pixbuf
GdkPixbuf *
get_file_pixbuf (GSearchWindow * gsearch,
GFileInfo * file_info)
{
GdkPixbuf * pixbuf;
GIcon * icon = NULL;
const gchar * thumbnail_path = NULL;
if (file_info == NULL) {
return NULL;
}
icon = g_file_info_get_icon (file_info);
if (gsearch->show_thumbnails == TRUE) {
thumbnail_path = g_file_info_get_attribute_byte_string (file_info, G_FILE_ATTRIBUTE_THUMBNAIL_PATH);
}
if (thumbnail_path != NULL) {
pixbuf = gsearchtool_get_thumbnail_image (thumbnail_path);
}
else {
gchar * icon_string;
icon_string = g_icon_to_string (icon);
pixbuf = (GdkPixbuf *) g_hash_table_lookup (gsearch->search_results_filename_hash_table, icon_string);
if (pixbuf == NULL) {
pixbuf = get_themed_icon_pixbuf (G_THEMED_ICON (icon), ICON_SIZE, gtk_icon_theme_get_default ());
g_hash_table_insert (gsearch->search_results_filename_hash_table, g_strdup (icon_string), pixbuf);
}
g_free (icon_string);
}
return pixbuf;
}
示例4: getPixBuf
GdkPixbuf* getPixBuf(char* name)
{
GFile* file=g_file_new_for_path(name);
GFileInfo* file_info=g_file_query_info(file,"standard::*",G_FILE_QUERY_INFO_NONE,NULL,NULL);
GIcon* icon=g_file_info_get_icon(file_info);
GdkPixbuf* pix=NULL;
gchar* path;
gchar const* const* names;
GFile* icon_file;
char* newname;
if(G_IS_THEMED_ICON(icon))
{
names=g_themed_icon_get_names(G_THEMED_ICON(icon));
pix=gtk_icon_theme_load_icon(gtk_icon_theme_get_default(),*names,16,(GtkIconLookupFlags)(GTK_ICON_LOOKUP_USE_BUILTIN|GTK_ICON_LOOKUP_FORCE_SVG|GTK_ICON_LOOKUP_GENERIC_FALLBACK|GTK_ICON_LOOKUP_FORCE_SIZE),NULL);
if(pix==NULL)
{
asprintf(&newname,"gnome-mime-%s",*names);
pix=gtk_icon_theme_load_icon(gtk_icon_theme_get_default(),(const gchar*)newname,16,(GtkIconLookupFlags)(GTK_ICON_LOOKUP_USE_BUILTIN|GTK_ICON_LOOKUP_FORCE_SVG|GTK_ICON_LOOKUP_GENERIC_FALLBACK|GTK_ICON_LOOKUP_FORCE_SIZE),NULL);
debugFree(&newname);
}
}
else if(G_IS_FILE_ICON(icon))
{
icon_file=g_file_icon_get_file(G_FILE_ICON(icon));
path=g_file_get_path(icon_file);
pix=gdk_pixbuf_new_from_file_at_size(path,16,16,NULL);
debugFree(&path);
g_object_unref(G_OBJECT(icon_file));
}
g_object_unref(G_OBJECT(file));
g_object_unref(G_OBJECT(file_info));
return(pix);
}
示例5: gicon_to_string
static char *
gicon_to_string (GIcon *icon)
{
GFile *file;
const char *const *names;
if (G_IS_FILE_ICON (icon))
{
file = g_file_icon_get_file (G_FILE_ICON (icon));
if (file)
return g_file_get_path (file);
}
else if (G_IS_THEMED_ICON (icon))
{
names = g_themed_icon_get_names (G_THEMED_ICON (icon));
if (names)
return g_strdup (names[0]);
}
else if (G_IS_EMBLEMED_ICON (icon))
{
GIcon *base;
base = g_emblemed_icon_get_icon (G_EMBLEMED_ICON (icon));
return gicon_to_string (base);
}
return NULL;
}
示例6: get_icon_pixbuf_for_content_type
static GdkPixbuf*
get_icon_pixbuf_for_content_type (const char *ctype, size_t size)
{
GIcon *icon;
GdkPixbuf *pixbuf;
icon = g_content_type_get_icon (ctype);
pixbuf = NULL;
/* based on a snippet from http://www.gtkforums.com/about4721.html */
if (G_IS_THEMED_ICON(icon)) {
gchar const * const *names;
names = g_themed_icon_get_names (G_THEMED_ICON(icon));
pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default(),
*names, size, 0, NULL);
} else if (G_IS_FILE_ICON(icon)) {
GFile *icon_file;
gchar *path;
icon_file = g_file_icon_get_file (G_FILE_ICON(icon));
path = g_file_get_path (icon_file);
pixbuf = gdk_pixbuf_new_from_file_at_size (path, size, size, NULL);
g_free (path);
g_object_unref(icon_file);
}
g_object_unref(icon);
return pixbuf;
}
示例7: _gtk_icon_helper_get_icon_name
const gchar *
_gtk_icon_helper_get_icon_name (GtkIconHelper *self)
{
if (self->priv->storage_type != GTK_IMAGE_ICON_NAME)
return NULL;
return g_themed_icon_get_names (G_THEMED_ICON (self->priv->gicon))[0];
}
示例8: mx_icon_theme_get_icons
static GList *
mx_icon_theme_get_icons (MxIconTheme *theme,
const gchar *icon_name)
{
gint i;
GIcon *icon;
GList *data;
const gchar * const *names = NULL;
MxIconThemePrivate *priv = theme->priv;
/* Load the icon, or a fallback */
icon = g_themed_icon_new_with_default_fallbacks (icon_name);
names = g_themed_icon_get_names (G_THEMED_ICON (icon));
if (!names)
{
g_object_unref (icon);
return NULL;
}
data = NULL;
for (i = 0; names[i]; i++)
{
/* See if we've loaded this before */
GIcon *single_icon = g_themed_icon_new (names[i]);
gboolean success = g_hash_table_lookup_extended (priv->icon_hash,
single_icon,
NULL,
(gpointer *)&data);
g_object_unref (single_icon);
/* Found in cache on first hit, break */
if (success && (i == 0))
break;
/* Found in cache after searching the disk, store again as a new icon */
if (success)
{
/* If we found this as a fallback, store it so we don't look on
* disk again.
*/
if (data)
data = mx_icon_theme_copy_data_list (data);
g_hash_table_insert (priv->icon_hash, g_object_ref (icon), data);
break;
}
/* Try to load from disk */
if ((data = mx_icon_theme_load_icon (theme, names[i], icon)))
break;
}
g_object_unref (icon);
return data;
}
示例9: list_drives
static void
list_drives (GList *drives,
int indent)
{
GList *volumes, *l;
int c, i;
GDrive *drive;
char *name;
char **ids;
GIcon *icon;
for (c = 0, l = drives; l != NULL; l = l->next, c++)
{
drive = (GDrive *) l->data;
name = g_drive_get_name (drive);
g_print ("%*sDrive(%d): %s\n", indent, "", c, name);
g_free (name);
if (mount_list_info)
{
ids = g_drive_enumerate_identifiers (drive);
if (ids && ids[0] != NULL)
{
g_print ("%*sids:\n", indent+2, "");
for (i = 0; ids[i] != NULL; i++)
{
char *id = g_drive_get_identifier (drive,
ids[i]);
g_print ("%*s %s: '%s'\n", indent+2, "", ids[i], id);
g_free (id);
}
}
g_strfreev (ids);
icon = g_drive_get_icon (drive);
if (icon)
{
if (G_IS_THEMED_ICON (icon))
show_themed_icon_names (G_THEMED_ICON (icon), indent + 2);
g_object_unref (icon);
}
g_print ("%*sis_media_removable=%d\n", indent + 2, "", g_drive_is_media_removable (drive));
g_print ("%*shas_media=%d\n", indent + 2, "", g_drive_has_media (drive));
g_print ("%*sis_media_check_automatic=%d\n", indent + 2, "", g_drive_is_media_check_automatic (drive));
g_print ("%*scan_poll_for_media=%d\n", indent + 2, "", g_drive_can_poll_for_media (drive));
g_print ("%*scan_eject=%d\n", indent + 2, "", g_drive_can_eject (drive));
}
volumes = g_drive_get_volumes (drive);
list_volumes (volumes, indent + 2, FALSE);
g_list_foreach (volumes, (GFunc)g_object_unref, NULL);
g_list_free (volumes);
}
}
示例10: st_icon_get_icon_name
const gchar *
st_icon_get_icon_name (StIcon *icon)
{
StIconPrivate *priv;
g_return_val_if_fail (ST_IS_ICON (icon), NULL);
priv = icon->priv;
if (priv->gicon && G_IS_THEMED_ICON (priv->gicon))
return g_themed_icon_get_names (G_THEMED_ICON (priv->gicon)) [0];
else
return NULL;
}
示例11: set_icon
static void
set_icon(GtkWindow *window, const gchar *uri)
{
GFile *file;
GIcon *icon;
GFileInfo *info;
GdkScreen *screen;
GtkIconTheme *icon_theme;
const gchar *icon_name = NULL, *content_type;
screen = gtk_widget_get_screen (GTK_WIDGET (window));
icon_theme = gtk_icon_theme_get_for_screen (screen);
file = g_file_new_for_uri (uri);
info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
G_FILE_QUERY_INFO_NONE, NULL, NULL);
g_object_unref (file);
if (! info)
return;
content_type = g_file_info_get_content_type (info);
icon = g_content_type_get_icon (content_type);
if (G_IS_THEMED_ICON (icon)) {
const gchar * const *names = NULL;
names = g_themed_icon_get_names (G_THEMED_ICON (icon));
if (names) {
gint i;
for (i = 0; names[i]; i++) {
if (gtk_icon_theme_has_icon (icon_theme, names[i])) {
icon_name = names[i];
break;
}
}
}
}
if (icon_name) {
gtk_window_set_icon_name (window, icon_name);
}
g_object_unref (icon);
}
示例12: render_icon
static GdkPixbuf *
render_icon (GIcon *icon, gint icon_size)
{
GdkPixbuf *pixbuf;
GtkIconInfo *info;
pixbuf = NULL;
if (G_IS_THEMED_ICON (icon)) {
gchar const * const *names;
info = gtk_icon_theme_lookup_by_gicon (gtk_icon_theme_get_default (),
icon,
icon_size,
0);
if (info) {
pixbuf = gtk_icon_info_load_icon (info, NULL);
gtk_icon_info_free (info);
}
if (pixbuf == NULL) {
names = g_themed_icon_get_names (G_THEMED_ICON (icon));
pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
*names,
icon_size,
0, NULL);
}
}
else
if (G_IS_FILE_ICON (icon)) {
GFile *icon_file;
gchar *path;
icon_file = g_file_icon_get_file (G_FILE_ICON (icon));
path = g_file_get_path (icon_file);
pixbuf = gdk_pixbuf_new_from_file_at_size (path,
icon_size, icon_size,
NULL);
g_free (path);
g_object_unref (G_OBJECT (icon_file));
}
return pixbuf;
}
示例13: panel_util_get_icon_name_from_g_icon
char *
panel_util_get_icon_name_from_g_icon (GIcon *gicon)
{
const char * const *names;
GtkIconTheme *icon_theme;
int i;
if (!G_IS_THEMED_ICON (gicon))
return NULL;
names = g_themed_icon_get_names (G_THEMED_ICON (gicon));
icon_theme = gtk_icon_theme_get_default ();
for (i = 0; names[i] != NULL; i++) {
if (gtk_icon_theme_has_icon (icon_theme, names[i]))
return g_strdup (names[i]);
}
return NULL;
}
示例14: _gtk_icon_helper_set_use_fallback
gboolean
_gtk_icon_helper_set_use_fallback (GtkIconHelper *self,
gboolean use_fallback)
{
if (self->priv->use_fallback != use_fallback)
{
self->priv->use_fallback = use_fallback;
_gtk_icon_helper_invalidate (self);
if (self->priv->storage_type == GTK_IMAGE_ICON_NAME)
{
GIcon *old_icon = self->priv->gicon;
const char *icon_name = g_themed_icon_get_names (G_THEMED_ICON (self->priv->gicon))[0];
if (self->priv->use_fallback)
self->priv->gicon = g_themed_icon_new_with_default_fallbacks (icon_name);
else
self->priv->gicon = g_themed_icon_new (icon_name);
g_object_unref (old_icon);
}
return TRUE;
}
return FALSE;
}
示例15: add_drive
static GList *
add_drive (GList *media_list,
GDrive *drive,
GrlOpticalMediaSource *source)
{
GList *volumes, *i;
GIcon *icon;
if (g_drive_can_eject (drive) == FALSE ||
g_drive_has_media (drive) == FALSE) {
return media_list;
}
/* Hack to avoid USB devices showing up
* https://bugzilla.gnome.org/show_bug.cgi?id=679624 */
icon = g_drive_get_icon (drive);
if (icon && G_IS_THEMED_ICON (icon)) {
const gchar * const * names;
names = g_themed_icon_get_names (G_THEMED_ICON (icon));
if (names && names[0] && !g_str_has_prefix (names[0], "drive-optical")) {
g_object_unref (icon);
return media_list;
}
}
g_clear_object (&icon);
/* Repeat for all the drive's volumes */
volumes = g_drive_get_volumes (drive);
for (i = volumes; i != NULL; i = i->next) {
GVolume *volume = i->data;
media_list = add_volume (media_list, volume, drive, source);
g_object_unref (volume);
}
g_list_free (volumes);
return media_list;
}