labwc/include/scaled-buffer/scaled-icon-buffer.h
John Lindgren cb49bddf63 tree-wide: auto-replace of (struct server *)
#!/bin/bash
    read -r -d '' EXPRS << EOF
    s/xwayland->server/xwayland->svr/g;

    s/\t*struct server \*server;\n//g;
    s/\t*struct server \*server =.*?;\n//gs;
    s/\t*.* = ([a-z_]*->)*server[;,]\n//g;
    s/\{\n\n/\{\n/g;
    s/\n\n+/\n\n/g;

    s/\(\s*struct server \*server\)/(void)/g;
    s/\(\s*struct server \*server,\s*/(/g;
    s/,\s*struct server \*server\)/)/g;
    s/,\s*struct server \*server,\s*/, /g;

    s/\(\s*([a-z_]*->)*server\)/()/g;
    s/\(\s*([a-z_]*->)*server,\s*/(/g;
    s/,\s*([a-z_]*->)*server\)/)/g;
    s/,\s*([a-z_]*->)*server,\s*/, /g;

    s/([a-z_]*->)*server->/g_server./g;

    s/xwayland->svr/xwayland->server/g;
    EOF

    find src include \( -name \*.c -o -name \*.h \) -exec \
        perl -0777 -i -pe "$EXPRS" \{\} \;
2026-03-21 21:35:33 +00:00

49 lines
1.3 KiB
C

/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef LABWC_SCALED_ICON_BUFFER_H
#define LABWC_SCALED_ICON_BUFFER_H
#include <stdbool.h>
#include <wayland-server-core.h>
struct wlr_scene_tree;
struct wlr_scene_node;
struct wlr_scene_buffer;
struct scaled_icon_buffer {
struct scaled_buffer *scaled_buffer;
struct wlr_scene_buffer *scene_buffer;
/* for window icon */
struct view *view;
char *view_app_id;
char *view_icon_name;
bool view_icon_prefer_client;
struct wl_array view_icon_buffers;
struct {
struct wl_listener new_app_id;
struct wl_listener new_title;
struct wl_listener set_icon;
struct wl_listener destroy;
} on_view;
/* for general icon (e.g. in menus) */
char *icon_name;
int width;
int height;
};
/*
* Create an auto scaling icon buffer, providing a wlr_scene_buffer node for
* display. It gets destroyed automatically when the backing scaled_buffer
* is being destroyed which in turn happens automatically when the backing
* wlr_scene_buffer (or one of its parents) is being destroyed.
*/
struct scaled_icon_buffer *scaled_icon_buffer_create(
struct wlr_scene_tree *parent, int width, int height);
void scaled_icon_buffer_set_view(struct scaled_icon_buffer *self,
struct view *view);
void scaled_icon_buffer_set_icon_name(struct scaled_icon_buffer *self,
const char *icon_name);
#endif /* LABWC_SCALED_ICON_BUFFER_H */