Skip to content

Commit 03d1677

Browse files
committed
Release 1.0.29
* Added text clipping function for tk::Label. * Implemented AudioEnvelope widget and it'\''s integration into AudioSample. * Implemented ws::IDisplay::get_file_descriptor method for obtaining event loop descriptor for Unix-based systems that use X11 protocol * Updated module versions in dependencies.
2 parents 6b86661 + f405563 commit 03d1677

File tree

26 files changed

+2243
-177
lines changed

26 files changed

+2243
-177
lines changed

CHANGELOG

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22
* RECENT CHANGES
33
*******************************************************************************
44

5+
=== 1.0.29 ===
6+
* Added text clipping function for tk::Label.
7+
* Implemented AudioEnvelope widget and it's integration into AudioSample.
8+
* Implemented ws::IDisplay::get_file_descriptor method for obtaining event loop
9+
descriptor for Unix-based systems that use X11 protocol
10+
* Updated module versions in dependencies.
11+
512
=== 1.0.28 ===
613
* Added support of background color, brightness and background brightness for
714
inactive widgets.

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ The full list of provided widgets:
8080
* Void - void widget which can be used for filling empty area.
8181
* Specifific widgets
8282
* AudioChannel - single audio channel oscillogram.
83+
* AudioEnvelope - widget that allows to build and control parameters of AHDBSSR (Attack,
84+
Hold, Decay, Break, Slope, Sustain, Release) audio envelope and integrate into
85+
AudioSample widget.
8386
* AudioSample - oscillogram of audio sample with multiple audio channels.
8487
* FileButton - button of 1.44" disk form for loading/saving files.
8588
* Fraction - music fraction with numerator and denominator.

dependencies.mk

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,10 @@ endif
107107
MACOS_DEPENDENCIES = \
108108
LIBAUDIOTOOLBOX \
109109
LIBCOREFOUNDATION \
110+
LIBFONTCONFIG \
111+
LIBFREETYPE \
112+
LIBCOCOA \
113+
LIBCAIRO \
110114
LIBICONV
111115

112116
MACOS_TEST_DEPENDENCIES =

include/lsp-plug.in/tk/sys/Display.h

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
2-
* Copyright (C) 2023 Linux Studio Plugins Project <https://lsp-plug.in/>
3-
* (C) 2023 Vladimir Sadovnikov <[email protected]>
2+
* Copyright (C) 2025 Linux Studio Plugins Project <https://lsp-plug.in/>
3+
* (C) 2025 Vladimir Sadovnikov <[email protected]>
44
*
55
* This file is part of lsp-tk-lib
66
* Created on: 19 июн. 2017 г.
@@ -47,9 +47,6 @@ namespace lsp
4747
class Display: public Atoms
4848
{
4949
private:
50-
Display & operator = (const Display &);
51-
Display(const Display &);
52-
5350
friend class Schema;
5451

5552
protected:
@@ -88,6 +85,10 @@ namespace lsp
8885
* @param settings additional display settings
8986
*/
9087
explicit Display(display_settings_t *settings = NULL);
88+
Display(const Display &) = delete;
89+
Display(Display &&) = delete;
90+
Display & operator = (const Display &) = delete;
91+
Display & operator = (Display &&) = delete;
9192

9293
/** Destructor
9394
*
@@ -363,6 +364,16 @@ namespace lsp
363364
* @return previous value of the idle interval
364365
*/
365366
size_t set_idle_interval(size_t interval);
367+
368+
/**
369+
* Obtain the file descriptor of the connection associated with the event loop
370+
* if it is supported (usually Unix-based systems with X11 protocol).
371+
*
372+
* @param fd pointer to store file descriptor
373+
* @return status of operation, STATUS_NOT_SUPPORTED if platform does
374+
* not support file desciptors for event loops
375+
*/
376+
status_t get_file_descriptor(int *fd);
366377
};
367378

368379
} /* namespace tk */

include/lsp-plug.in/tk/tk.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@
189189

190190
// Specific widgets
191191
#include <lsp-plug.in/tk/widgets/specific/AudioChannel.h>
192+
#include <lsp-plug.in/tk/widgets/specific/AudioEnvelope.h>
192193
#include <lsp-plug.in/tk/widgets/specific/AudioSample.h>
193194
#include <lsp-plug.in/tk/widgets/specific/FileButton.h>
194195
#include <lsp-plug.in/tk/widgets/specific/Fraction.h>

include/lsp-plug.in/tk/version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
#define LSP_TK_LIB_MAJOR 1
2626
#define LSP_TK_LIB_MINOR 0
27-
#define LSP_TK_LIB_MICRO 28
27+
#define LSP_TK_LIB_MICRO 29
2828

2929
#if defined(LSP_TK_LIB_PUBLISHER)
3030
#define LSP_TK_LIB_PUBLIC LSP_EXPORT_MODIFIER

include/lsp-plug.in/tk/widgets/containers/Window.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,9 @@ namespace lsp
291291
// Get last surface type used
292292
ws::surface_type_t surface_type() const;
293293

294+
// Get active keys
295+
const lltl::darray<ws::code_t> *active_keys() const;
296+
294297
//---------------------------------------------------------------------------------
295298
// Event handling
296299
public:

include/lsp-plug.in/tk/widgets/simple/Bevel.h

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
2-
* Copyright (C) 2021 Linux Studio Plugins Project <https://lsp-plug.in/>
3-
* (C) 2021 Vladimir Sadovnikov <[email protected]>
2+
* Copyright (C) 2025 Linux Studio Plugins Project <https://lsp-plug.in/>
3+
* (C) 2025 Vladimir Sadovnikov <[email protected]>
44
*
55
* This file is part of lsp-tk-lib
66
* Created on: 13 июн. 2021 г.
@@ -48,10 +48,6 @@ namespace lsp
4848
*/
4949
class Bevel: public Widget
5050
{
51-
private:
52-
Bevel & operator = (const Bevel &);
53-
Bevel(const Bevel &);
54-
5551
public:
5652
static const w_class_t metadata;
5753

@@ -75,7 +71,12 @@ namespace lsp
7571

7672
public:
7773
explicit Bevel(Display *dpy);
78-
virtual ~Bevel();
74+
Bevel(const Bevel &) = delete;
75+
Bevel(Bevel &&) = delete;
76+
virtual ~Bevel() override;
77+
78+
Bevel & operator = (const Bevel &) = delete;
79+
Bevel & operator = (Bevel &&) = delete;
7980

8081
public:
8182
LSP_TK_PROPERTY(SizeConstraints, constraints, &sConstraints)
@@ -86,13 +87,13 @@ namespace lsp
8687
LSP_TK_PROPERTY(Arrangement, arrangement, &sArrangement)
8788

8889
protected:
89-
virtual void size_request(ws::size_limit_t *r);
90-
virtual void property_changed(Property *prop);
90+
virtual void size_request(ws::size_limit_t *r) override;
91+
virtual void property_changed(Property *prop) override;
9192

9293
public:
93-
virtual status_t init();
94+
virtual status_t init() override;
9495

95-
virtual void render(ws::ISurface *s, const ws::rectangle_t *area, bool force);
96+
virtual void render(ws::ISurface *s, const ws::rectangle_t *area, bool force) override;
9697
};
9798

9899
} /* namespace tk */

include/lsp-plug.in/tk/widgets/simple/Label.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,12 @@ namespace lsp
5454
LabelColors vColors[LABEL_TOTAL];
5555

5656
prop::TextLayout sTextLayout; // Text layout
57+
prop::TextLayout sClipTextLayout;// Text layout when clipping
5758
prop::TextAdjust sTextAdjust; // Text adjustment
5859
prop::Font sFont; // Font parameters
5960
prop::Boolean sHover; // Hover enable
6061
prop::String sText; // Text to display
62+
prop::Boolean sTextClip; // Clip text
6163
prop::SizeConstraints sConstraints; // Size constraints
6264
prop::Padding sIPadding; // Internal padding
6365
LSP_TK_STYLE_DEF_END
@@ -104,10 +106,12 @@ namespace lsp
104106

105107
style::LabelColors vColors[style::LABEL_TOTAL];
106108
prop::TextLayout sTextLayout; // Text layout
109+
prop::TextLayout sClipTextLayout;// Text layout when clipping
107110
prop::TextAdjust sTextAdjust; // Text adjustment
108111
prop::Font sFont; // Font parameters
109112
prop::Boolean sHover; // Hover enable
110113
prop::String sText; // Text to display
114+
prop::Boolean sTextClip; // Clip text
111115
prop::SizeConstraints sConstraints; // Size constraints
112116
prop::Padding sIPadding; // Internal padding
113117
prop::WidgetPtr<Menu> sPopup; // Popup menu
@@ -145,6 +149,7 @@ namespace lsp
145149

146150
public:
147151
LSP_TK_PROPERTY(TextLayout, text_layout, &sTextLayout)
152+
LSP_TK_PROPERTY(TextLayout, clip_text_layout, &sClipTextLayout)
148153
LSP_TK_PROPERTY(TextAdjust, text_adjust, &sTextAdjust)
149154
LSP_TK_PROPERTY(Font, font, &sFont)
150155
LSP_TK_PROPERTY(Color, color, &vColors[LBL_0].sColor)
@@ -153,6 +158,7 @@ namespace lsp
153158
LSP_TK_PROPERTY(Color, inactive_hover_color, &vColors[LBL_3].sColor)
154159
LSP_TK_PROPERTY(Boolean, hover, &sHover)
155160
LSP_TK_PROPERTY(String, text, &sText)
161+
LSP_TK_PROPERTY(Boolean, text_clip, &sTextClip)
156162
LSP_TK_PROPERTY(SizeConstraints, constraints, &sConstraints)
157163
LSP_TK_PROPERTY(Padding, ipadding, &sIPadding)
158164
LSP_TK_PROPERTY(WidgetPtr<Menu>, popup, &sPopup)

0 commit comments

Comments
 (0)