74 lines
1.7 KiB
C
74 lines
1.7 KiB
C
#pragma once
|
|
|
|
#include <stddef.h>
|
|
#include <zdwm/action.h>
|
|
#include <zdwm/bar.h>
|
|
#include <zdwm/listeners.h>
|
|
#include <zdwm/types.h>
|
|
|
|
typedef struct bar_workspace_palette_t {
|
|
const char *bg;
|
|
const char *fg;
|
|
const char *active_bg;
|
|
const char *active_fg;
|
|
const char *urgent_bg;
|
|
const char *urgent_fg;
|
|
} bar_workspace_palette_t;
|
|
|
|
typedef struct bar_workspace_t {
|
|
zdwm_workspace_t info;
|
|
size_t window_count;
|
|
size_t urgent_window_count;
|
|
} bar_workspace_t;
|
|
|
|
typedef struct bar_workspace_state_t {
|
|
zdwm_output_id_t output_id;
|
|
zdwm_workspace_id_t workspace_id;
|
|
bar_workspace_t *workspaces;
|
|
size_t count;
|
|
size_t capacity;
|
|
|
|
zdwm_window_t *windows;
|
|
size_t window_count;
|
|
size_t window_capacity;
|
|
|
|
bar_workspace_palette_t palette;
|
|
|
|
bool list_inited;
|
|
bool active_inited;
|
|
bool dirty;
|
|
} bar_workspace_state_t;
|
|
|
|
void *bar_workspaces_create_state(zdwm_output_id_t output_id, void *config);
|
|
void bar_workspaces_update(
|
|
zdwm_bar_item_t *item,
|
|
const zdwm_bar_cell_api_t *cell_api,
|
|
void *state
|
|
);
|
|
zdwm_action_t bar_workspace_on_click(
|
|
zdwm_bar_item_t *item,
|
|
size_t cell_index,
|
|
int32_t x,
|
|
void *state
|
|
);
|
|
void bar_workspace_destroy_state(void *state);
|
|
|
|
void bar_workspace_list_filter(
|
|
const zdwm_workspace_t *list,
|
|
size_t count,
|
|
void *user_data
|
|
);
|
|
void bar_workspace_active_updated(
|
|
zdwm_output_id_t output_id,
|
|
zdwm_workspace_id_t workspace_id,
|
|
void *user_data
|
|
);
|
|
void bar_workspace_initial_windows(
|
|
const zdwm_window_t *list,
|
|
size_t count,
|
|
void *user_data
|
|
);
|
|
void bar_workspace_window_added(const zdwm_window_t *window, void *user_data);
|
|
void bar_workspace_window_updated(const zdwm_window_t *window, void *user_data);
|
|
void bar_workspace_window_removed(zdwm_window_id_t window_id, void *user_data);
|