wlmaker
Loading...
Searching...
No Matches
Classes | Functions | Variables
launcher.c File Reference
#include "launcher.h"
#include <cairo.h>
#include <libbase/libbase.h>
#include <libbase/plist.h>
#include <libbase/signal.h>
#include <linux/input-event-codes.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include "toplevel.h"
#include "toolkit/toolkit.h"
Include dependency graph for launcher.c:

Classes

struct  _wlmdock_launcher_t
 

Functions

static void _wlmdock_launcher_update_overlay (wlmdock_launcher_t *launcher_ptr)
 
static struct wlr_buffer * _wlmdock_launcher_create_overlay_buffer (wlmdock_launcher_t *launcher_ptr)
 
static void _wlmdock_launcher_element_destroy (wlmtk_element_t *element_ptr)
 
static bool _wlmdock_launcher_pointer_button (wlmtk_element_t *element_ptr, const wlmtk_button_event_t *button_event_ptr)
 
static void _wlmdock_launcher_start (wlmdock_launcher_t *launcher_ptr)
 
static void _wlmdock_launcher_handle_terminated (void *userdata_ptr, struct wlm_util_subprocess *subprocess_handle_ptr, int state, int code)
 
static void _wlmdock_launcher_handle_app_id_changed (struct bs_listener *listener_ptr, void *userdata_ptr)
 
static bool _wlmdock_launcher_set_content_size (wlmtk_tile_t *tile_ptr, uint64_t content_size)
 
wlmdock_launcher_t * wlmdock_launcher_create_from_plist (const struct wlmtk_tile_style *style_ptr, bspl_dict_t *dict_ptr, struct wlmdock_toplevel_tracker *tracker_ptr, wlm_util_subprocess_monitor_t *monitor_ptr, wlm_util_files_t *files_ptr)
 
void wlmdock_launcher_destroy (wlmdock_launcher_t *launcher_ptr)
 
wlmtk_tile_t * wlmdock_launcher_tile (wlmdock_launcher_t *launcher_ptr)
 
static void test_create_from_plist (bs_test_t *test_ptr)
 

Variables

static const bspl_desc_t _wlmdock_launcher_plist_desc []
 
static const wlmtk_element_vmt_t _wlmdock_launcher_element_vmt
 
static const wlmtk_tile_vmt_t _wlmdock_launcher_tile_vmt
 
static const bs_test_case_t wlmdock_launcher_test_cases []
 
const bs_test_set_t wlmdock_launcher_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

◆ _wlmdock_launcher_create_overlay_buffer()

struct wlr_buffer * _wlmdock_launcher_create_overlay_buffer ( wlmdock_launcher_t *  launcher_ptr)
static

Creates an overlay wlr_buffer.

◆ _wlmdock_launcher_element_destroy()

void _wlmdock_launcher_element_destroy ( wlmtk_element_t *  element_ptr)
static

Implements wlmtk_element_vmt_t::destroy. Calls wlmdock_launcher_destroy.

Parameters
element_ptr

◆ _wlmdock_launcher_handle_app_id_changed()

void _wlmdock_launcher_handle_app_id_changed ( struct bs_listener *  listener_ptr,
void *  userdata_ptr 
)
static

◆ _wlmdock_launcher_handle_terminated()

void _wlmdock_launcher_handle_terminated ( void *  userdata_ptr,
struct wlm_util_subprocess *  subprocess_handle_ptr,
int  exit_status,
int  signal_number 
)
static

Callback handler for when the registered subprocess terminates.

Parameters
userdata_ptrPoints to wlmdock_launcher_t.
subprocess_handle_ptr
exit_status
signal_number

◆ _wlmdock_launcher_pointer_button()

bool _wlmdock_launcher_pointer_button ( wlmtk_element_t *  element_ptr,
const wlmtk_button_event_t *  button_event_ptr 
)
static

Implements wlmtk_element_vmt_t::pointer_button.

Parameters
element_ptr
button_event_ptr
Returns
true always.

◆ _wlmdock_launcher_set_content_size()

bool _wlmdock_launcher_set_content_size ( wlmtk_tile_t *  tile_ptr,
uint64_t  content_size 
)
static

Implements wlmtk_tile_vmt_t::set_content_size. Set the image size.

◆ _wlmdock_launcher_start()

void _wlmdock_launcher_start ( wlmdock_launcher_t *  launcher_ptr)
static

Starts the application, called when the launcher is clicked.

Parameters
launcher_ptr

◆ _wlmdock_launcher_update_overlay()

void _wlmdock_launcher_update_overlay ( wlmdock_launcher_t *  launcher_ptr)
static

Redraws the overlay element.

◆ test_create_from_plist()

void test_create_from_plist ( bs_test_t *  test_ptr)
static

Exercises plist parser.

◆ wlmdock_launcher_create_from_plist()

wlmdock_launcher_t * wlmdock_launcher_create_from_plist ( const struct wlmtk_tile_style *  style_ptr,
bspl_dict_t *  dict_ptr,
struct wlmdock_toplevel_tracker *  tracker_ptr,
wlm_util_subprocess_monitor_t *  monitor_ptr,
wlm_util_files_t *  files_ptr 
)

Creates an application launcher, configured from a plist dict.

Parameters
style_ptr
dict_ptr
tracker_ptr
monitor_ptr
files_ptr
Returns
Pointer to the launcher handle or NULL on error.

◆ wlmdock_launcher_destroy()

void wlmdock_launcher_destroy ( wlmdock_launcher_t *  launcher_ptr)

Destroys the application launcher.

Parameters
launcher_ptr

◆ wlmdock_launcher_tile()

wlmtk_tile_t * wlmdock_launcher_tile ( wlmdock_launcher_t *  launcher_ptr)
Returns
A pointer to the wlmtk_tile_t superclass of launcher_ptr.

Variable Documentation

◆ _wlmdock_launcher_element_vmt

const wlmtk_element_vmt_t _wlmdock_launcher_element_vmt
static
Initial value:
= {
}
static bool _wlmdock_launcher_pointer_button(wlmtk_element_t *element_ptr, const wlmtk_button_event_t *button_event_ptr)
Definition launcher.c:391
static void _wlmdock_launcher_element_destroy(wlmtk_element_t *element_ptr)
Definition launcher.c:373

The launcher's extension to wlmtk_element_t virtual method table.

◆ _wlmdock_launcher_plist_desc

const bspl_desc_t _wlmdock_launcher_plist_desc[]
static
Initial value:
= {
BSPL_DESC_STRING(
"AppID", true, wlmdock_launcher_t, app_id_ptr, app_id_ptr, ""),
BSPL_DESC_STRING(
"CommandLine", true, wlmdock_launcher_t, cmdline_ptr, cmdline_ptr, ""),
BSPL_DESC_STRING(
"Icon", true, wlmdock_launcher_t, icon_path_ptr, icon_path_ptr, ""),
BSPL_DESC_SENTINEL(),
}
Definition launcher.c:43

Plist descroptor for a launcher.

◆ _wlmdock_launcher_tile_vmt

const wlmtk_tile_vmt_t _wlmdock_launcher_tile_vmt
static
Initial value:
= {
}
static bool _wlmdock_launcher_set_content_size(wlmtk_tile_t *tile_ptr, uint64_t content_size)
Definition launcher.c:511

Launcher's extension to wlmtk_tile_t virtual method table.

◆ wlmdock_launcher_test_cases

const bs_test_case_t wlmdock_launcher_test_cases[]
static
Initial value:
= {
{ true, "create_from_plist", test_create_from_plist },
}
static void test_create_from_plist(bs_test_t *test_ptr)
Definition launcher.c:544

Unit test cases.

◆ wlmdock_launcher_test_set

const bs_test_set_t wlmdock_launcher_test_set
Initial value:
= BS_TEST_SET(
true, "launcher", wlmdock_launcher_test_cases)
static const bs_test_case_t wlmdock_launcher_test_cases[]
Definition launcher.c:534

Unit test set.