wlmaker
Loading...
Searching...
No Matches
titlebar.c File Reference
#include "titlebar.h"
#include "box.h"
#include "button.h"
#include "buffer.h"
#include "gfxbuf.h"
#include "primitives.h"
#include "titlebar_button.h"
#include "titlebar_title.h"
#include "window.h"
#include <wlr/interfaces/wlr_buffer.h>
Include dependency graph for titlebar.c:

Classes

struct  _wlmtk_titlebar_t
 

Functions

static void _wlmtk_titlebar_element_destroy (wlmtk_element_t *element_ptr)
 
static bool redraw_buffers (wlmtk_titlebar_t *titlebar_ptr, unsigned width)
 
static bool redraw (wlmtk_titlebar_t *titlebar_ptr)
 
wlmtk_titlebar_twlmtk_titlebar_create (wlmtk_env_t *env_ptr, wlmtk_window_t *window_ptr, const wlmtk_titlebar_style_t *style_ptr)
 
void wlmtk_titlebar_destroy (wlmtk_titlebar_t *titlebar_ptr)
 
bool wlmtk_titlebar_set_width (wlmtk_titlebar_t *titlebar_ptr, unsigned width)
 
void wlmtk_titlebar_set_activated (wlmtk_titlebar_t *titlebar_ptr, bool activated)
 
bool wlmtk_titlebar_is_activated (wlmtk_titlebar_t *titlebar_ptr)
 
void wlmtk_titlebar_set_title (wlmtk_titlebar_t *titlebar_ptr, const char *title_ptr)
 
wlmtk_element_twlmtk_titlebar_element (wlmtk_titlebar_t *titlebar_ptr)
 
static void test_create_destroy (bs_test_t *test_ptr)
 
static void test_variable_width (bs_test_t *test_ptr)
 

Variables

static const wlmtk_element_vmt_t titlebar_element_vmt
 
const bs_test_case_t wlmtk_titlebar_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

◆ _wlmtk_titlebar_element_destroy()

void _wlmtk_titlebar_element_destroy ( wlmtk_element_t * element_ptr)
static

Virtual destructor, wraps to our dtor.

◆ redraw()

bool redraw ( wlmtk_titlebar_t * titlebar_ptr)
static

Redraws the titlebar elements.

◆ redraw_buffers()

bool redraw_buffers ( wlmtk_titlebar_t * titlebar_ptr,
unsigned width )
static

Redraws the titlebar's background in appropriate size.

◆ test_create_destroy()

void test_create_destroy ( bs_test_t * test_ptr)
static

Tests setup and teardown.

◆ test_variable_width()

void test_variable_width ( bs_test_t * test_ptr)
static

Tests titlebar with variable width.

◆ wlmtk_titlebar_create()

wlmtk_titlebar_t * wlmtk_titlebar_create ( wlmtk_env_t * env_ptr,
wlmtk_window_t * window_ptr,
const wlmtk_titlebar_style_t * style_ptr )

Creates a title bar, suitable as a window title.

Parameters
env_ptr
window_ptr
style_ptr
Returns
Pointer to the title bar state, or NULL on error. Must be free'd by calling wlmtk_titlebar_destroy.

◆ wlmtk_titlebar_destroy()

void wlmtk_titlebar_destroy ( wlmtk_titlebar_t * titlebar_ptr)

Destroys the title bar.

Parameters
titlebar_ptr

◆ wlmtk_titlebar_element()

wlmtk_element_t * wlmtk_titlebar_element ( wlmtk_titlebar_t * titlebar_ptr)

Returns the super Element of the titlebar.

Parameters
titlebar_ptr
Returns
Pointer to the wlmtk_element_t base instantiation to titlebar_ptr.

◆ wlmtk_titlebar_is_activated()

bool wlmtk_titlebar_is_activated ( wlmtk_titlebar_t * titlebar_ptr)

Returns whether the title bar is activated.

◆ wlmtk_titlebar_set_activated()

void wlmtk_titlebar_set_activated ( wlmtk_titlebar_t * titlebar_ptr,
bool activated )

Sets whether the title bar is activated.

Parameters
titlebar_ptr
activated

◆ wlmtk_titlebar_set_title()

void wlmtk_titlebar_set_title ( wlmtk_titlebar_t * titlebar_ptr,
const char * title_ptr )

Updates the title text of the titlebar.

Parameters
titlebar_ptr
title_ptrExpected to remain valid until the next call of wlmtk_titlebar_set_title or until the titlebar_ptr is destroyed.

◆ wlmtk_titlebar_set_width()

bool wlmtk_titlebar_set_width ( wlmtk_titlebar_t * titlebar_ptr,
unsigned width )

Sets the width of the title bar.

Parameters
titlebar_ptr
width
Returns
Whether the operation was successful.

Variable Documentation

◆ titlebar_element_vmt

const wlmtk_element_vmt_t titlebar_element_vmt
static
Initial value:
= {
}
static void _wlmtk_titlebar_element_destroy(wlmtk_element_t *element_ptr)
Definition titlebar.c:267

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

◆ wlmtk_titlebar_test_cases

const bs_test_case_t wlmtk_titlebar_test_cases[]
Initial value:
= {
{ 1, "create_destroy", test_create_destroy },
{ 1, "variable_width", test_variable_width },
{ 0, NULL, NULL }
}
static void test_create_destroy(bs_test_t *test_ptr)
Definition titlebar.c:391
static void test_variable_width(bs_test_t *test_ptr)
Definition titlebar.c:405

Unit test cases.