wlmaker
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
titlebar_button.c File Reference
#include "titlebar_button.h"
#include <libbase/libbase.h>
#include <linux/input-event-codes.h>
#include <stdlib.h>
#include <wlr/interfaces/wlr_buffer.h>
#include "buffer.h"
#include "button.h"
#include "content.h"
#include "gfxbuf.h"
#include "input.h"
#include "primitives.h"
Include dependency graph for titlebar_button.c:

Classes

struct  _wlmtk_titlebar_button_t
 

Functions

static void titlebar_button_element_destroy (wlmtk_element_t *element_ptr)
 
static void titlebar_button_clicked (wlmtk_button_t *button_ptr)
 
static void update_buffers (wlmtk_titlebar_button_t *titlebar_button_ptr)
 
static struct wlr_buffer * create_buf (bs_gfxbuf_t *gfxbuf_ptr, int position, bool pressed, bool focussed, const wlmtk_titlebar_style_t *style_ptr, wlmtk_titlebar_button_draw_t draw)
 
wlmtk_titlebar_button_twlmtk_titlebar_button_create (void(*click_handler)(wlmtk_window_t *window_ptr), wlmtk_window_t *window_ptr, wlmtk_titlebar_button_draw_t draw)
 
void wlmtk_titlebar_button_destroy (wlmtk_titlebar_button_t *titlebar_button_ptr)
 
void wlmtk_titlebar_button_set_activated (wlmtk_titlebar_button_t *titlebar_button_ptr, bool activated)
 
bool wlmtk_titlebar_button_redraw (wlmtk_titlebar_button_t *titlebar_button_ptr, bs_gfxbuf_t *focussed_gfxbuf_ptr, bs_gfxbuf_t *blurred_gfxbuf_ptr, int position, const wlmtk_titlebar_style_t *style_ptr)
 
wlmtk_element_twlmtk_titlebar_button_element (wlmtk_titlebar_button_t *titlebar_button_ptr)
 
static void test_button (bs_test_t *test_ptr)
 

Variables

static const wlmtk_element_vmt_t titlebar_button_element_vmt
 
static const wlmtk_button_vmt_t titlebar_button_vmt
 
const bs_test_case_t wlmtk_titlebar_button_test_cases []
 

Detailed Description

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Function Documentation

◆ create_buf()

struct wlr_buffer * create_buf ( bs_gfxbuf_t *  gfxbuf_ptr,
int  position,
bool  pressed,
bool  focussed,
const wlmtk_titlebar_style_t style_ptr,
wlmtk_titlebar_button_draw_t  draw 
)
static

Helper: Creates a WLR buffer for the button.

◆ test_button()

void test_button ( bs_test_t *  test_ptr)
static

Tests button visualization.

◆ titlebar_button_clicked()

void titlebar_button_clicked ( wlmtk_button_t button_ptr)
static

Handles button clicks: Passes the request to the window.

◆ titlebar_button_element_destroy()

void titlebar_button_element_destroy ( wlmtk_element_t element_ptr)
static

Virtual destructor, wraps to wlmtk_titlebar_button_destroy.

◆ update_buffers()

void update_buffers ( wlmtk_titlebar_button_t titlebar_button_ptr)
static

Updates the button's buffer depending on activation status.

◆ wlmtk_titlebar_button_create()

wlmtk_titlebar_button_t * wlmtk_titlebar_button_create ( void(*)(wlmtk_window_t *window_ptr)  click_handler,
wlmtk_window_t window_ptr,
wlmtk_titlebar_button_draw_t  draw 
)

Creates a button for the titlebar.

Parameters
click_handler
window_ptr
draw
Returns
Pointer to the titlebar button, or NULL on error.

◆ wlmtk_titlebar_button_destroy()

void wlmtk_titlebar_button_destroy ( wlmtk_titlebar_button_t titlebar_button_ptr)

Destroys the titlebar button.

Parameters
titlebar_button_ptr

◆ wlmtk_titlebar_button_element()

wlmtk_element_t * wlmtk_titlebar_button_element ( wlmtk_titlebar_button_t titlebar_button_ptr)

Returns the titlebar button's super element.

Parameters
titlebar_button_ptr
Returns
Pointer to the superclass wlmtk_element_t.

◆ wlmtk_titlebar_button_redraw()

bool wlmtk_titlebar_button_redraw ( wlmtk_titlebar_button_t titlebar_button_ptr,
bs_gfxbuf_t *  focussed_gfxbuf_ptr,
bs_gfxbuf_t *  blurred_gfxbuf_ptr,
int  position,
const wlmtk_titlebar_style_t style_ptr 
)

Redraws the titlebar button for given textures, position and style.

Parameters
titlebar_button_ptr
focussed_gfxbuf_ptr
blurred_gfxbuf_ptr
position
style_ptr
Returns
true on success.

◆ wlmtk_titlebar_button_set_activated()

void wlmtk_titlebar_button_set_activated ( wlmtk_titlebar_button_t titlebar_button_ptr,
bool  activated 
)

Sets the activation status (focussed / blurred) of the titlebar button.

Parameters
titlebar_button_ptr
activated

Variable Documentation

◆ titlebar_button_element_vmt

const wlmtk_element_vmt_t titlebar_button_element_vmt
static
Initial value:
= {
}
static void titlebar_button_element_destroy(wlmtk_element_t *element_ptr)
Definition titlebar_button.c:201

Extension to the superclass element's virtual method table.

◆ titlebar_button_vmt

const wlmtk_button_vmt_t titlebar_button_vmt
static
Initial value:
= {
}
static void titlebar_button_clicked(wlmtk_button_t *button_ptr)
Definition titlebar_button.c:211

Extension to the parent button class' virtual methods.

◆ wlmtk_titlebar_button_test_cases

const bs_test_case_t wlmtk_titlebar_button_test_cases[]
Initial value:
= {
{ 1, "button", test_button },
{ 0, NULL, NULL }
}
static void test_button(bs_test_t *test_ptr)
Definition titlebar_button.c:284

Unit test cases.