wlmaker
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
resizebar.c File Reference
#include "resizebar.h"
#include <cairo.h>
#include <libbase/libbase.h>
#include <libbase/plist.h>
#include <stdlib.h>
#include <toolkit/box.h>
#include <toolkit/primitives.h>
#include <toolkit/resizebar_area.h>
#include <wlr/interfaces/wlr_buffer.h>
#include <wlr/util/edges.h>
#include "test.h"
Include dependency graph for resizebar.c:

Classes

struct  _wlmtk_resizebar_t
 

Functions

static void _wlmtk_resizebar_element_destroy (wlmtk_element_t *element_ptr)
 
static bool _wlmtk_resizebar_redraw (wlmtk_resizebar_t *resizebar_ptr, const struct wlmtk_resizebar_style *style_ptr, unsigned width)
 
static bool redraw_buffers (wlmtk_resizebar_t *resizebar_ptr, const struct wlmtk_resizebar_style *style_ptr, unsigned width)
 
wlmtk_resizebar_twlmtk_resizebar_create (wlmtk_window_t *window_ptr, const struct wlmtk_resizebar_style *style_ptr)
 
void wlmtk_resizebar_destroy (wlmtk_resizebar_t *resizebar_ptr)
 
bool wlmtk_resizebar_set_width (wlmtk_resizebar_t *resizebar_ptr, unsigned width)
 
bool wlmtk_resizebar_set_style (wlmtk_resizebar_t *resizebar_ptr, const struct wlmtk_resizebar_style *style_ptr)
 
wlmtk_element_twlmtk_resizebar_element (wlmtk_resizebar_t *resizebar_ptr)
 
static void test_variable_width (bs_test_t *test_ptr)
 

Variables

static const wlmtk_element_vmt_t resizebar_element_vmt
 
const bspl_desc_t wlmtk_resizebar_style_desc []
 
static const bs_test_case_t _wlmtk_resizebar_test_cases []
 
const bs_test_set_t wlmtk_resizebar_test_set
 

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

◆ _wlmtk_resizebar_element_destroy()

void _wlmtk_resizebar_element_destroy ( wlmtk_element_t element_ptr)
static

Virtual destructor: Wraps to our dtor.

◆ _wlmtk_resizebar_redraw()

bool _wlmtk_resizebar_redraw ( wlmtk_resizebar_t resizebar_ptr,
const struct wlmtk_resizebar_style style_ptr,
unsigned  width 
)
static

Redraws the resizebar.

◆ redraw_buffers()

bool redraw_buffers ( wlmtk_resizebar_t resizebar_ptr,
const struct wlmtk_resizebar_style style_ptr,
unsigned  width 
)
static

Redraws the resizebar's background in appropriate size.

◆ test_variable_width()

void test_variable_width ( bs_test_t *  test_ptr)
static

Performs resizing and verifies the elements are shown as expected.

◆ wlmtk_resizebar_create()

wlmtk_resizebar_t * wlmtk_resizebar_create ( wlmtk_window_t window_ptr,
const struct wlmtk_resizebar_style style_ptr 
)

Creates the resize bar.

Parameters
window_ptr
style_ptrStyle. Must outlive the resize bar, or until next call to wlmtk_resizebar_set_style.
Returns
Pointer to the resizebar state, or NULL on error.

◆ wlmtk_resizebar_destroy()

void wlmtk_resizebar_destroy ( wlmtk_resizebar_t resizebar_ptr)

Destroys the resize bar.

Parameters
resizebar_ptr

◆ wlmtk_resizebar_element()

wlmtk_element_t * wlmtk_resizebar_element ( wlmtk_resizebar_t resizebar_ptr)

Returns the super Element of the resizebar.

Parameters
resizebar_ptr
Returns
Pointer to the element.

◆ wlmtk_resizebar_set_style()

bool wlmtk_resizebar_set_style ( wlmtk_resizebar_t resizebar_ptr,
const struct wlmtk_resizebar_style style_ptr 
)

Sets the resizebar's style.

Parameters
resizebar_ptr
style_ptrStyle. Must outlive the resize bar, or until next call to wlmtk_resizebar_set_style.
Returns
true on success.

◆ wlmtk_resizebar_set_width()

bool wlmtk_resizebar_set_width ( wlmtk_resizebar_t resizebar_ptr,
unsigned  width 
)

Sets the width of the resize bar.

Parameters
resizebar_ptr
width
Returns
true on success.

Variable Documentation

◆ _wlmtk_resizebar_test_cases

const bs_test_case_t _wlmtk_resizebar_test_cases[]
static
Initial value:
= {
{ 1, "variable_width", test_variable_width },
}
static void test_variable_width(bs_test_t *test_ptr)
Definition resizebar.c:320

Test cases

◆ resizebar_element_vmt

const wlmtk_element_vmt_t resizebar_element_vmt
static
Initial value:
= {
}
static void _wlmtk_resizebar_element_destroy(wlmtk_element_t *element_ptr)
Definition resizebar.c:216

Virtual method table extension for the resizebar's element superclass.

◆ wlmtk_resizebar_style_desc

const bspl_desc_t wlmtk_resizebar_style_desc[]
Initial value:
= {
BSPL_DESC_CUSTOM(
"Fill", true, struct wlmtk_resizebar_style, fill, fill,
wlmtk_style_decode_fill, NULL, NULL, NULL),
BSPL_DESC_UINT64(
"Height", true, struct wlmtk_resizebar_style, height, height, 7),
BSPL_DESC_UINT64(
"BezelWidth", true, struct wlmtk_resizebar_style, bezel_width, bezel_width,
1),
BSPL_DESC_UINT64(
"CornerWidth", true, struct wlmtk_resizebar_style, corner_width,
corner_width, 1),
}
Definition resizebar.h:36
bool wlmtk_style_decode_fill(bspl_object_t *object_ptr, const union bspl_desc_value *desc_value_ptr, void *value_ptr)
Definition style.c:107

Descriptor for decoding the "ResizeBar" dict below "Window".

◆ wlmtk_resizebar_test_set

const bs_test_set_t wlmtk_resizebar_test_set
Initial value:
= BS_TEST_SET(
true, "resizebar", _wlmtk_resizebar_test_cases)
static const bs_test_case_t _wlmtk_resizebar_test_cases[]
Definition resizebar.c:310

Unit test cases.