mirror of
https://github.com/labwc/labwc.git
synced 2025-11-02 09:01:47 -05:00
Support hover icons in titlebar (#1280)
Allow both max_toggled_hover and max_hover_toggled names for icons
This commit is contained in:
parent
5d2f594626
commit
c79b8ba8a7
8 changed files with 258 additions and 30 deletions
|
|
@ -5,7 +5,7 @@
|
|||
struct lab_data_buffer;
|
||||
|
||||
/* button_xbm_load - Convert xbm file to buffer with cairo surface */
|
||||
void button_xbm_load(const char *button_name, struct lab_data_buffer **buffer,
|
||||
char *fallback_button, float *rgba);
|
||||
void button_xbm_load(const char *button_name, const char *alt_name,
|
||||
struct lab_data_buffer **buffer, char *fallback_button, float *rgba);
|
||||
|
||||
#endif /* LABWC_BUTTON_XBM_H */
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
#include <wlr/util/box.h>
|
||||
#include "common/macros.h"
|
||||
#include "ssd.h"
|
||||
#include "view.h"
|
||||
|
||||
#define FOR_EACH(tmp, ...) \
|
||||
{ \
|
||||
|
|
@ -17,7 +18,10 @@
|
|||
struct ssd_button {
|
||||
struct view *view;
|
||||
enum ssd_part_type type;
|
||||
struct wlr_scene_node *normal;
|
||||
struct wlr_scene_node *hover;
|
||||
struct wlr_scene_node *toggled;
|
||||
struct wlr_scene_node *toggled_hover;
|
||||
struct wlr_scene_node *background;
|
||||
|
||||
struct wl_listener destroy;
|
||||
|
|
@ -96,6 +100,8 @@ struct ssd_part {
|
|||
struct ssd_hover_state {
|
||||
struct view *view;
|
||||
struct wlr_scene_node *node;
|
||||
struct wlr_scene_node *old_node;
|
||||
int maximized;
|
||||
};
|
||||
|
||||
struct wlr_buffer;
|
||||
|
|
@ -115,12 +121,16 @@ struct ssd_part *add_scene_buffer(
|
|||
struct ssd_part *add_scene_button(
|
||||
struct wl_list *part_list, enum ssd_part_type type,
|
||||
struct wlr_scene_tree *parent, float *bg_color,
|
||||
struct wlr_buffer *icon_buffer, int x, struct view *view);
|
||||
struct wlr_buffer *icon_buffer, struct wlr_buffer *hover_buffer,
|
||||
int x, struct view *view);
|
||||
void
|
||||
add_toggled_icon(struct wl_list *part_list, enum ssd_part_type type,
|
||||
struct wlr_buffer *icon_buffer, struct wlr_buffer *hover_buffer);
|
||||
struct ssd_part *add_scene_button_corner(
|
||||
struct wl_list *part_list, enum ssd_part_type type,
|
||||
enum ssd_part_type corner_type, struct wlr_scene_tree *parent,
|
||||
struct wlr_buffer *corner_buffer, struct wlr_buffer *icon_buffer,
|
||||
int x, struct view *view);
|
||||
struct wlr_buffer *hover_buffer, int x, struct view *view);
|
||||
|
||||
/* SSD internal helpers */
|
||||
struct ssd_part *ssd_get_part(
|
||||
|
|
|
|||
|
|
@ -79,14 +79,28 @@ struct theme {
|
|||
/* textures */
|
||||
struct lab_data_buffer *button_close_active_unpressed;
|
||||
struct lab_data_buffer *button_maximize_active_unpressed;
|
||||
struct lab_data_buffer *button_restore_active_unpressed;
|
||||
struct lab_data_buffer *button_iconify_active_unpressed;
|
||||
struct lab_data_buffer *button_menu_active_unpressed;
|
||||
|
||||
struct lab_data_buffer *button_close_inactive_unpressed;
|
||||
struct lab_data_buffer *button_maximize_inactive_unpressed;
|
||||
struct lab_data_buffer *button_restore_inactive_unpressed;
|
||||
struct lab_data_buffer *button_iconify_inactive_unpressed;
|
||||
struct lab_data_buffer *button_menu_inactive_unpressed;
|
||||
|
||||
struct lab_data_buffer *button_close_active_hover;
|
||||
struct lab_data_buffer *button_maximize_active_hover;
|
||||
struct lab_data_buffer *button_restore_active_hover;
|
||||
struct lab_data_buffer *button_iconify_active_hover;
|
||||
struct lab_data_buffer *button_menu_active_hover;
|
||||
|
||||
struct lab_data_buffer *button_close_inactive_hover;
|
||||
struct lab_data_buffer *button_maximize_inactive_hover;
|
||||
struct lab_data_buffer *button_restore_inactive_hover;
|
||||
struct lab_data_buffer *button_iconify_inactive_hover;
|
||||
struct lab_data_buffer *button_menu_inactive_hover;
|
||||
|
||||
struct lab_data_buffer *corner_top_left_active_normal;
|
||||
struct lab_data_buffer *corner_top_right_active_normal;
|
||||
struct lab_data_buffer *corner_top_left_inactive_normal;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue