|
1 | 1 | /*
|
2 |
| - * Copyright (C) 2020 Linux Studio Plugins Project <https://lsp-plug.in/> |
3 |
| - * (C) 2020 Vladimir Sadovnikov <[email protected]> |
| 2 | + * Copyright (C) 2023 Linux Studio Plugins Project <https://lsp-plug.in/> |
| 3 | + * (C) 2023 Vladimir Sadovnikov <[email protected]> |
4 | 4 | *
|
5 | 5 | * This file is part of lsp-tk-lib
|
6 | 6 | * Created on: 20 авг. 2020 г.
|
@@ -58,9 +58,14 @@ namespace lsp
|
58 | 58 | public:
|
59 | 59 | static const w_class_t metadata;
|
60 | 60 |
|
61 |
| - private: |
62 |
| - Graph & operator = (const Graph &); |
63 |
| - Graph(const Graph &); |
| 61 | + protected: |
| 62 | + typedef struct w_alloc_t |
| 63 | + { |
| 64 | + ws::rectangle_t sRect; |
| 65 | + ssize_t nGroup; |
| 66 | + ssize_t nPriority; |
| 67 | + GraphItem *pWidget; |
| 68 | + } w_alloc_t; |
64 | 69 |
|
65 | 70 | protected:
|
66 | 71 | prop::WidgetList<GraphItem> vItems; // Overall list of graph items
|
@@ -89,23 +94,31 @@ namespace lsp
|
89 | 94 | static void on_add_item(void *obj, Property *prop, void *w);
|
90 | 95 | static void on_remove_item(void *obj, Property *prop, void *w);
|
91 | 96 |
|
| 97 | + static ssize_t check_collision(const w_alloc_t *a, const w_alloc_t *b); |
| 98 | + static ssize_t compare_walloc(const w_alloc_t *a, const w_alloc_t *b); |
| 99 | + |
92 | 100 | protected:
|
93 |
| - virtual Widget *find_widget(ssize_t x, ssize_t y); |
94 |
| - virtual void size_request(ws::size_limit_t *r); |
95 |
| - virtual void property_changed(Property *prop); |
96 |
| - virtual void realize(const ws::rectangle_t *r); |
97 |
| - virtual void hide_widget(); |
| 101 | + virtual Widget *find_widget(ssize_t x, ssize_t y) override; |
| 102 | + virtual void size_request(ws::size_limit_t *r) override; |
| 103 | + virtual void property_changed(Property *prop) override; |
| 104 | + virtual void realize(const ws::rectangle_t *r) override; |
| 105 | + virtual void hide_widget() override; |
98 | 106 |
|
99 | 107 | void sync_lists();
|
100 | 108 | void drop_glass();
|
101 | 109 |
|
102 | 110 | public:
|
103 | 111 | explicit Graph(Display *dpy);
|
| 112 | + Graph(const Graph &) = delete; |
| 113 | + Graph(Graph &&) = delete; |
104 | 114 | virtual ~Graph();
|
105 | 115 |
|
| 116 | + Graph & operator = (const Graph &) = delete; |
| 117 | + Graph & operator = (Graph &&) = delete; |
| 118 | + |
106 | 119 | public:
|
107 |
| - virtual status_t init(); |
108 |
| - virtual void destroy(); |
| 120 | + virtual status_t init() override; |
| 121 | + virtual void destroy() override; |
109 | 122 |
|
110 | 123 | public:
|
111 | 124 | LSP_TK_PROPERTY(WidgetList<GraphItem>, items, &vItems);
|
@@ -181,19 +194,19 @@ namespace lsp
|
181 | 194 | status_t axis_to_xy(size_t index, ssize_t *x, ssize_t *y, float value);
|
182 | 195 |
|
183 | 196 | public:
|
184 |
| - virtual status_t add(Widget *child); |
| 197 | + virtual status_t add(Widget *child) override; |
185 | 198 |
|
186 |
| - virtual status_t remove(Widget *child); |
| 199 | + virtual status_t remove(Widget *child) override; |
187 | 200 |
|
188 |
| - virtual status_t remove_all(); |
| 201 | + virtual status_t remove_all() override; |
189 | 202 |
|
190 |
| - virtual void render(ws::ISurface *s, const ws::rectangle_t *area, bool force); |
| 203 | + virtual void render(ws::ISurface *s, const ws::rectangle_t *area, bool force) override; |
191 | 204 |
|
192 |
| - virtual void draw(ws::ISurface *s); |
| 205 | + virtual void draw(ws::ISurface *s) override; |
193 | 206 | };
|
194 | 207 |
|
195 |
| - } |
196 |
| -} |
| 208 | + } /* namespace tk */ |
| 209 | +} /* namespace lsp */ |
197 | 210 |
|
198 | 211 |
|
199 | 212 | #endif /* LSP_PLUG_IN_TK_WIDGETS_GRAPH_GRAPH_H_ */
|
0 commit comments