LMMS
Loading...
Searching...
No Matches
gui.h
Go to the documentation of this file.
1/* Calf DSP Library
2 * Universal GUI module
3 * Copyright (C) 2007-2011 Krzysztof Foltman
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General
16 * Public License along with this program; if not, write to the
17 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 * Boston, MA 02111-1307, USA.
19 */
20#ifndef __CALF_GUI_H
21#define __CALF_GUI_H
22
23#include <expat.h>
24#include <map>
25#include <set>
26#include <string>
27#include <vector>
28#include <gtk/gtk.h>
29#include "giface.h"
30#include "gui_config.h"
31#include "jackhost.h"
32
33namespace calf_plugins {
34
36{
38public:
40 bool check_redraw(GtkWidget *toplevel);
41};
42
43
45{
46 std::string path;
47 std::map<std::string, GdkPixbuf*> i;
48 GdkPixbuf *create_image (std::string image);
49 void recreate_images ();
50 void set_path (std::string p);
51 GdkPixbuf *get (std::string image);
52 gboolean available (std::string image);
53 image_factory (std::string p = "");
55};
56
57class plugin_gui;
58class jack_host;
59
61{
62public:
63 typedef std::map<std::string, std::string> xml_attribute_map;
64
65 GtkWidget *widget;
66 std::string control_name;
69public:
70 void require_attribute(const char *name);
71 void require_int_attribute(const char *name);
72 int get_int(const char *name, int def_value = 0);
73 float get_float(const char *name, float def_value = 0.f);
74 std::vector<double> get_vector(const char *name, std::string &value);
75
76public:
77 virtual GtkWidget *create(plugin_gui *_gui) { return NULL; }
78 virtual bool is_container() { return GTK_IS_CONTAINER(widget); };
79 virtual void set_visibilty(bool state);
80 virtual void add(control_base *ctl) { gtk_container_add(GTK_CONTAINER(widget), ctl->widget); }
82 virtual void set_std_properties();
84 virtual void created();
85 virtual ~control_base() {}
86};
87
88#define _GUARD_CHANGE_ if (in_change) return; guard_change __gc__(this);
89
91{
92protected:
93 GtkWidget *entrywin;
94public:
96 std::string param_variable;
100
103 guard_change(param_control *_pc) : pc(_pc) { pc->in_change++; }
104 ~guard_change() { pc->in_change--; }
105 };
106
108 inline const parameter_properties &get_props();
109
110 virtual GtkWidget *create(plugin_gui *_gui);
112 virtual GtkWidget *create(plugin_gui *_gui, int _param_no)=0;
114 virtual void get()=0;
116 virtual void set()=0;
118 virtual void created();
120 virtual void configure(const char *key, const char *value) {}
122 virtual void hook_params();
124 virtual void add_context_menu_handler();
125 virtual void on_idle() {}
126 virtual ~param_control();
127 virtual void do_popup_menu();
128 static gboolean on_button_press_event(GtkWidget *widget, GdkEventButton *event, void *user_data);
129 static gboolean on_popup_menu(GtkWidget *widget, void *user_data);
130 virtual void create_value_entry(GtkWidget *widget, int x, int y);
131 virtual void destroy_value_entry();
132 static gboolean value_entry_action(GtkEntry *widget, GdkEvent *event, void *user_data);
133 static gboolean value_entry_unfocus(GtkWidget *widget, GdkEventFocus *event, void *user_data);
134 static gboolean value_entry_click(GtkWidget *widget, GdkEventButton *event, void *user_data);
135};
136
137
140
142{
143protected:
145 std::multimap<int, param_control *> par2ctl;
146 XML_Parser parser;
148 std::map<std::string, int> param_name_map;
151 std::map<int, GSList *> param_radio_groups;
154 std::vector<control_base *> stack;
155
160 : gui(_gui), source(_source) {}
161 };
162 std::vector<automation_menu_entry *> automation_menu_callback_data;
163
164 static void on_automation_add(GtkWidget *widget, void *user_data);
165 static void on_automation_delete(GtkWidget *widget, void *user_data);
166 static void on_automation_set_lower(GtkWidget *widget, void *user_data);
167 static void on_automation_set_upper(GtkWidget *widget, void *user_data);
169public:
171 GtkWidget *container;
172 const char *effect_name;
175 std::vector<param_control *> params;
176 std::vector<int> read_serials;
177
178 /* For optional lv2ui:show interface. */
180 GtkWidget* optwidget;
181 GtkWidget* optwindow;
182 const char* opttitle;
183
185 GtkWidget *create_from_xml(plugin_ctl_iface *_plugin, const char *xml);
186 control_base *create_widget_from_xml(const char *element, const char *attributes[]);
187
188 void add_param_ctl(int param, param_control *ctl) { par2ctl.insert(std::pair<int, param_control *>(param, ctl)); }
189 void remove_param_ctl(int param, param_control *ctl);
190 void refresh();
191 void refresh(int param_no, param_control *originator = NULL);
192 int get_param_no_by_name(std::string param_name);
193 void xml_element_start(const char *element, const char *attributes[]);
194 void set_param_value(int param_no, float value, param_control *originator = NULL);
196 void send_configure(const char *key, const char *value);
198 void send_status(const char *key, const char *value);
199 void on_idle();
201 GSList *get_radio_group(int param);
203 void set_radio_group(int param, GSList *group);
205 void on_control_popup(param_control *ctl, int param_no);
209 void destroy_child_widgets(GtkWidget *parent);
210 ~plugin_gui();
211 static void xml_element_start(void *data, const char *element, const char *attributes[]);
212 static void xml_element_end(void *data, const char *element);
213};
214
215struct main_window_iface;
216struct main_window_owner_iface;
217
228
231{
233 virtual void init_gui(int &argc, char **&argv) = 0;
237 virtual void start_gui_loop() = 0;
239 virtual void quit_gui_loop() = 0;
241};
242
260
263{
265 virtual void set_owner(main_window_owner_iface *owner) = 0;
267 virtual void add_condition(const std::string &name) = 0;
269 virtual void create() = 0;
271 virtual void create_status_icon() = 0;
273 virtual void add_plugin(jack_host *plugin) = 0;
275 virtual void del_plugin(plugin_ctl_iface *plugin) = 0;
276 // Rename the plugin
277 virtual void rename_plugin(plugin_ctl_iface *plugin, std::string name) = 0;
279 virtual void refresh_plugin(plugin_ctl_iface *plugin) = 0;
281 virtual void refresh_plugin_param(plugin_ctl_iface *plugin, int param_no) = 0;
283 virtual void set_window(plugin_ctl_iface *plugin, plugin_gui_window *window) = 0;
285 virtual void refresh_all_presets(bool builtin_too) = 0;
287 virtual void open_file() = 0;
289 virtual bool save_file() = 0;
291 virtual void on_closed() = 0;
293 virtual void show_error(const std::string &text) = 0;
294
295
297};
298
300{
301 virtual void new_plugin(const char *name) = 0;
302 virtual void remove_plugin(plugin_ctl_iface *plugin) = 0;
303 virtual char *open_file(const char *name) = 0;
304 virtual char *save_file(const char *name) = 0;
305 virtual void reorder_plugins() = 0;
306 virtual void rename_plugin(plugin_ctl_iface *plugin, const char *name) = 0;
308 virtual std::string get_client_name() const = 0;
310 virtual void on_main_window_destroy() = 0;
312 virtual void on_idle() = 0;
314 virtual std::string get_current_filename() const = 0;
316 virtual void set_current_filename(const std::string &name) = 0;
318};
319
321 GdkScreen *screen;
322 int x, y, width, height;
323};
324
326{
327private:
330private:
331 static gboolean on_idle(void *data);
332protected:
333 void create_gui(plugin_ctl_iface *_jh);
334 static void on_window_destroyed(GtkWidget *window, gpointer data);
335 void cleanup();
336protected:
338 GtkWidget *container;
341public:
342 std::string prefix;
343 GtkWidget *toplevel;
345public:
347 GtkWidget *create(plugin_ctl_iface *_plugin);
350 plugin_gui *get_gui() { return gui; }
351 void refresh();
352 virtual void on_config_change() { }
354};
355
357{
358public:
359 GtkUIManager *ui_mgr;
362 GtkWidget *leftBG, *rightBG;
364 std::string make_gui_preset_list(GtkActionGroup *grp, bool builtin, char &ch);
365 std::string make_gui_command_list(GtkActionGroup *grp, const plugin_metadata_iface *metadata);
366 void fill_gui_presets(bool builtin, char &ch);
367 void create(plugin_ctl_iface *_plugin, const char *title, const char *effect);
368 GtkWidget *decorate(GtkWidget *widget);
369 void show_rack_ears(bool show);
370 void close();
371 virtual void on_config_change();
373 static void about_action(GtkAction *action, plugin_gui_window *gui_win);
374 static void help_action(GtkAction *action, plugin_gui_window *gui_win);
375 static void store_preset_action(GtkAction *action, plugin_gui_window *gui_win);
376
377};
378
379
381{
382 return *gui->plugin->get_metadata_iface()->get_param_props(param_no);
383}
384
385class null_audio_module;
386
388{
389 typedef void (*CommandFunc)(null_audio_module *);
392
394 : gui(_gui), function_idx(_idx)
395 {
396 }
397};
398
399void activate_command(GtkAction *action, activate_command_params *params);
400
402{
403public:
404 cairo_t *context;
405 virtual void set_source_rgba(float r, float g, float b, float a = 1.f) { cairo_set_source_rgba(context, r, g, b, a); }
406 virtual void set_line_width(float width) { cairo_set_line_width(context, width); }
407 virtual void set_dash(const double *dash, int length) { cairo_set_dash(context, dash, length, 0); }
408 virtual void draw_label(const char *label, float x, float y, int pos, float margin, float align) {
409 cairo_text_extents_t extents;
410 cairo_text_extents(context, label, &extents);
411 switch(pos) {
412 case 0:
413 default:
414 // top
415 cairo_move_to(context, x - extents.width / 2, y - margin);
416 break;
417 case 1:
418 // right
419 cairo_move_to(context, x + margin, y + 2);
420 break;
421 case 2:
422 // bottom
423 cairo_move_to(context, x - extents.width / 2, y + margin + extents.height);
424 break;
425 case 3:
426 // left
427 cairo_move_to(context, x - margin - extents.width, y + 2);
428 break;
429 }
430 cairo_show_text(context, label);
431 }
432};
433
434
435
436};
437
438#endif
#define NULL
Definition CarlaBridgeFormat.cpp:30
uint8_t a
Definition Spc_Cpu.h:141
Definition gui.h:402
virtual void set_source_rgba(float r, float g, float b, float a=1.f)
Definition gui.h:405
cairo_t * context
Definition gui.h:404
virtual void set_dash(const double *dash, int length)
Definition gui.h:407
virtual void draw_label(const char *label, float x, float y, int pos, float margin, float align)
Definition gui.h:408
virtual void set_line_width(float width)
Definition gui.h:406
Definition gui.h:61
virtual bool is_container()
Definition gui.h:78
plugin_gui * gui
Definition gui.h:68
GtkWidget * widget
Definition gui.h:65
virtual void created()
called after the control is created
Definition gui_controls.cpp:117
virtual void set_visibilty(bool state)
Definition gui_controls.cpp:90
xml_attribute_map attribs
Definition gui.h:67
int get_int(const char *name, int def_value=0)
Definition gui_controls.cpp:46
virtual void set_std_properties()
called from created() to set all the properties
Definition gui_controls.cpp:99
std::string control_name
Definition gui.h:66
virtual ~control_base()
Definition gui.h:85
float get_float(const char *name, float def_value=0.f)
Definition gui_controls.cpp:56
virtual GtkWidget * create(plugin_gui *_gui)
Definition gui.h:77
std::vector< double > get_vector(const char *name, std::string &value)
Definition gui_controls.cpp:69
void require_attribute(const char *name)
Definition gui_controls.cpp:31
virtual void add(control_base *ctl)
Definition gui.h:80
std::map< std::string, std::string > xml_attribute_map
Definition gui.h:63
void require_int_attribute(const char *name)
Definition gui_controls.cpp:38
calf_utils::config_db_iface * config_db
Definition gui.h:248
gui_environment()
Definition gui.cpp:502
calf_utils::gui_config gui_config
Definition gui.h:249
virtual calf_utils::gui_config * get_config()
Definition gui.h:256
std::set< std::string > conditions
Definition gui.h:251
image_factory images
Definition gui.h:252
virtual bool check_condition(const char *name)
Definition gui.h:254
virtual calf_utils::config_db_iface * get_config_db()
Definition gui.h:255
virtual calf_plugins::image_factory * get_image_factory()
Definition gui.h:257
~gui_environment()
Definition gui.cpp:539
GKeyFile * keyfile
Definition gui.h:247
Definition gui.h:91
static gboolean on_popup_menu(GtkWidget *widget, void *user_data)
virtual GtkWidget * create(plugin_gui *_gui)
Definition gui_controls.cpp:134
const parameter_properties & get_props()
Definition gui.h:380
int in_change
Definition gui.h:97
float old_displayed_value
Definition gui.h:99
virtual GtkWidget * create(plugin_gui *_gui, int _param_no)=0
called to create a widget for a control
static gboolean value_entry_action(GtkEntry *widget, GdkEvent *event, void *user_data)
Definition gui_controls.cpp:221
virtual void get()=0
called to transfer the value from control to parameter(s)
virtual void created()
called after the control is created
Definition gui_controls.cpp:154
static gboolean on_button_press_event(GtkWidget *widget, GdkEventButton *event, void *user_data)
Definition gui_controls.cpp:177
std::string param_variable
Definition gui.h:96
bool has_entry
Definition gui.h:98
GtkWidget * entrywin
Definition gui.h:93
virtual void create_value_entry(GtkWidget *widget, int x, int y)
Definition gui_controls.cpp:237
virtual void destroy_value_entry()
Definition gui_controls.cpp:208
static gboolean value_entry_unfocus(GtkWidget *widget, GdkEventFocus *event, void *user_data)
Definition gui_controls.cpp:214
param_control()
Definition gui_controls.cpp:125
virtual void hook_params()
called from created() to add hooks for parameters
Definition gui_controls.cpp:146
virtual void do_popup_menu()
Definition gui_controls.cpp:202
static gboolean value_entry_click(GtkWidget *widget, GdkEventButton *event, void *user_data)
virtual ~param_control()
Definition gui_controls.cpp:161
virtual void on_idle()
Definition gui.h:125
virtual void set()=0
called to transfer the value from parameter(s) to control
virtual void configure(const char *key, const char *value)
called on DSSI configure()
Definition gui.h:120
int param_no
Definition gui.h:95
virtual void add_context_menu_handler()
called from created() to add context menu handlers
Definition gui_controls.cpp:169
void refresh()
Definition plugin_gui_window.cpp:82
virtual void on_config_change()
Definition gui.h:352
GtkWidget * container
Definition gui.h:338
static gboolean on_idle(void *data)
Definition plugin_gui_window.cpp:51
plugin_gui_widget(gui_environment_iface *_env, main_window_iface *_main)
Definition plugin_gui_window.cpp:34
static void on_window_destroyed(GtkWidget *window, gpointer data)
Definition plugin_gui_window.cpp:44
int source_id
Definition gui.h:329
main_window_iface * get_main_window()
Definition gui.h:349
std::string prefix
Definition gui.h:342
plugin_gui * get_gui()
Definition gui.h:350
gui_environment_iface * environment
Definition gui.h:339
void create_gui(plugin_ctl_iface *_jh)
Definition plugin_gui_window.cpp:60
main_window_iface * main
Definition gui.h:340
window_state winstate
Definition gui.h:344
plugin_gui * gui
Definition gui.h:337
GtkWidget * create(plugin_ctl_iface *_plugin)
Definition plugin_gui_window.cpp:72
~plugin_gui_widget()
Definition plugin_gui_window.cpp:95
window_update_controller refresh_controller
Definition gui.h:328
gui_environment_iface * get_environment()
Definition gui.h:348
void cleanup()
Definition plugin_gui_window.cpp:88
GtkWidget * toplevel
Definition gui.h:343
GtkWidget * rightBG
Definition gui.h:362
static void help_action(GtkAction *action, plugin_gui_window *gui_win)
Definition plugin_gui_window.cpp:135
virtual void on_config_change()
Definition plugin_gui_window.cpp:446
GtkActionGroup * command_actions
Definition gui.h:360
std::string make_gui_command_list(GtkActionGroup *grp, const plugin_metadata_iface *metadata)
Definition plugin_gui_window.cpp:336
calf_utils::config_notifier_iface * notifier
Definition gui.h:361
void create(plugin_ctl_iface *_plugin, const char *title, const char *effect)
Definition plugin_gui_window.cpp:373
void fill_gui_presets(bool builtin, char &ch)
Definition plugin_gui_window.cpp:355
plugin_gui_window(gui_environment_iface *_env, main_window_iface *_main)
Definition plugin_gui_window.cpp:297
GtkUIManager * ui_mgr
Definition gui.h:359
GtkWidget * decorate(GtkWidget *widget)
Definition plugin_gui_window.cpp:457
static void about_action(GtkAction *action, plugin_gui_window *gui_win)
Definition plugin_gui_window.cpp:152
void close()
Definition plugin_gui_window.cpp:452
~plugin_gui_window()
Definition plugin_gui_window.cpp:512
std::string make_gui_preset_list(GtkActionGroup *grp, bool builtin, char &ch)
Definition plugin_gui_window.cpp:308
GtkActionGroup * std_actions
Definition gui.h:360
static void store_preset_action(GtkAction *action, plugin_gui_window *gui_win)
Definition plugin_gui_window.cpp:104
GtkActionGroup * user_preset_actions
Definition gui.h:360
GtkActionGroup * builtin_preset_actions
Definition gui.h:360
void show_rack_ears(bool show)
Definition plugin_gui_window.cpp:495
GtkWidget * leftBG
Definition gui.h:362
Definition gui.h:142
plugin_gui(plugin_gui_widget *_window)
Definition gui.cpp:34
std::map< std::string, int > param_name_map
Definition gui.h:148
int param_count
Definition gui.h:144
std::vector< param_control * > params
Definition gui.h:175
GSList * get_radio_group(int param)
Get a radio button group (if it exists) for a parameter.
Definition gui.cpp:340
void on_idle()
Definition gui.cpp:281
void remove_param_ctl(int param, param_control *ctl)
Definition gui.cpp:253
std::vector< int > read_serials
Definition gui.h:176
void cleanup_automation_entries()
Clean up callback data allocated for the automation pop-up menu.
Definition gui.cpp:396
void on_control_popup(param_control *ctl, int param_no)
Pop-up a context menu for a control.
Definition gui.cpp:403
static void on_automation_add(GtkWidget *widget, void *user_data)
Definition gui.cpp:355
void refresh()
Definition gui.cpp:309
void xml_element_start(const char *element, const char *attributes[])
Definition gui.cpp:138
const char * effect_name
Definition gui.h:172
int last_status_serial_no
Definition gui.h:150
const char * opttitle
Definition gui.h:182
GtkWidget * container
Definition gui.h:171
static void on_automation_set_lower(GtkWidget *widget, void *user_data)
Definition gui.cpp:384
void destroy_child_widgets(GtkWidget *parent)
Destroy all the widgets in the container.
Definition gui.cpp:463
XML_Parser parser
Definition gui.h:146
std::map< int, GSList * > param_radio_groups
Definition gui.h:151
control_base * create_widget_from_xml(const char *element, const char *attributes[])
Definition gui.cpp:51
int context_menu_param_no
Definition gui.h:152
void add_param_ctl(int param, param_control *ctl)
Definition gui.h:188
plugin_ctl_iface * plugin
Definition gui.h:173
bool optclosed
Definition gui.h:179
uint32_t context_menu_last_designator
Definition gui.h:153
void set_radio_group(int param, GSList *group)
Set a radio button group for a parameter.
Definition gui.cpp:350
~plugin_gui()
Definition gui.cpp:474
int get_param_no_by_name(std::string param_name)
Definition gui.cpp:126
std::multimap< int, param_control * > par2ctl
Definition gui.h:145
static void xml_element_end(void *data, const char *element)
Definition gui.cpp:177
void on_automation_set_lower_or_upper(automation_menu_entry *ame, bool is_upper)
Definition gui.cpp:367
static void on_automation_delete(GtkWidget *widget, void *user_data)
Definition gui.cpp:361
GtkWidget * optwindow
Definition gui.h:181
static void on_automation_set_upper(GtkWidget *widget, void *user_data)
Definition gui.cpp:390
void send_configure(const char *key, const char *value)
Called on change of configure variable.
Definition gui.cpp:229
std::vector< automation_menu_entry * > automation_menu_callback_data
Definition gui.h:162
GtkWidget * optwidget
Definition gui.h:180
std::vector< control_base * > stack
Definition gui.h:154
void send_status(const char *key, const char *value)
Called on change of status variable.
Definition gui.cpp:241
void set_param_value(int param_no, float value, param_control *originator=NULL)
Definition gui.cpp:328
plugin_gui_widget * window
Definition gui.h:170
GtkWidget * create_from_xml(plugin_ctl_iface *_plugin, const char *xml)
Definition gui.cpp:201
int ignore_stack
Definition gui.h:149
control_base * top_container
Definition gui.h:147
preset_access_iface * preset_access
Definition gui.h:174
bool check_redraw(GtkWidget *toplevel)
Definition gui.cpp:482
window_update_controller()
Definition gui.h:39
int refresh_counter
Definition gui.h:37
int y
Definition inflate.c:1588
int g
Definition inflate.c:1573
unsigned x[BMAX+1]
Definition inflate.c:1586
static PuglViewHint int value
Definition pugl.h:1708
char * argv[]
Definition unzip.c:738
static const char * title
Definition pugl.h:1747
static const char * name
Definition pugl.h:1582
static int width
Definition pugl.h:1593
static uintptr_t parent
Definition pugl.h:1644
JSAMPIMAGE data
Definition jpeglib.h:945
unsigned int uint32_t
Definition mid.cpp:100
Definition benchmark.cpp:53
void activate_command(GtkAction *action, activate_command_params *params)
Definition plugin_gui_window.cpp:223
png_uint_32 length
Definition png.c:2247
plugin_gui * gui
Definition gui.h:390
void(* CommandFunc)(null_audio_module *)
Definition gui.h:389
int function_idx
Definition gui.h:391
activate_command_params(plugin_gui *_gui, int _idx)
Definition gui.h:393
Definition giface.h:160
virtual calf_utils::config_db_iface * get_config_db()=0
virtual calf_plugins::image_factory * get_image_factory()=0
virtual calf_utils::gui_config * get_config()=0
virtual bool check_condition(const char *name)=0
virtual ~gui_environment_iface()
Definition gui.h:226
Definition gui.h:45
gboolean available(std::string image)
Definition gui.cpp:571
GdkPixbuf * get(std::string image)
Definition gui.cpp:564
std::string path
Definition gui.h:46
GdkPixbuf * create_image(std::string image)
Definition gui.cpp:548
void set_path(std::string p)
Definition gui.cpp:560
~image_factory()
Definition gui.cpp:637
std::map< std::string, GdkPixbuf * > i
Definition gui.h:47
image_factory(std::string p="")
Definition gui.cpp:577
void recreate_images()
Definition gui.cpp:554
Interface used by the plugin to communicate with the main hosting window.
Definition gui.h:263
virtual void create_status_icon()=0
Create the actual window associated with this interface.
virtual void refresh_plugin_param(plugin_ctl_iface *plugin, int param_no)=0
Refresh the plugin UI.
virtual ~main_window_iface()
Definition gui.h:296
virtual void del_plugin(plugin_ctl_iface *plugin)=0
Remove the plugin from the window.
virtual void add_plugin(jack_host *plugin)=0
Add the plugin to the window.
virtual void set_owner(main_window_owner_iface *owner)=0
Set owner pointer.
virtual void refresh_all_presets(bool builtin_too)=0
Refresh preset lists on all windows (if, for example, a new preset has been created).
virtual void refresh_plugin(plugin_ctl_iface *plugin)=0
Refresh the plugin UI.
virtual void rename_plugin(plugin_ctl_iface *plugin, std::string name)=0
virtual void set_window(plugin_ctl_iface *plugin, plugin_gui_window *window)=0
Bind the plugin window to the plugin.
virtual void create()=0
Create the actual window associated with this interface.
virtual bool save_file()=0
Default save file operation.
virtual void add_condition(const std::string &name)=0
Add a condition to the list of conditions supported by the host.
virtual void on_closed()=0
Called to clean up when host quits.
virtual void open_file()=0
Default open file operation.
virtual void show_error(const std::string &text)=0
Show an error message.
virtual ~main_window_owner_iface()
Definition gui.h:317
virtual char * save_file(const char *name)=0
virtual void new_plugin(const char *name)=0
virtual std::string get_client_name() const =0
Return JACK client name (or its counterpart) to put in window title bars.
virtual void on_idle()=0
Called from idle handler.
virtual void set_current_filename(const std::string &name)=0
Set the file name of the current rack.
virtual void remove_plugin(plugin_ctl_iface *plugin)=0
virtual char * open_file(const char *name)=0
virtual std::string get_current_filename() const =0
Get the file name of the current rack.
virtual void rename_plugin(plugin_ctl_iface *plugin, const char *name)=0
virtual void on_main_window_destroy()=0
Called on 'destroy' event of the main window.
guard_change(param_control *_pc)
Definition gui.h:103
param_control * pc
Definition gui.h:102
Range, default value, flags and names for a parameter.
Definition giface.h:128
Interface for host-GUI-plugin interaction (should be really split in two, but ... meh).
Definition giface.h:389
Definition gui.h:156
automation_menu_entry(plugin_gui *_gui, int _source)
Definition gui.h:159
int source
Definition gui.h:158
plugin_gui * gui
Definition gui.h:157
An interface returning metadata about a plugin.
Definition giface.h:332
Definition giface.h:795
'may receive configure variables' interface
Definition giface.h:291
'may receive new status values' interface
Definition giface.h:302
An interface that wraps UI-dependent elements of the session.
Definition gui.h:231
virtual void init_gui(int &argc, char **&argv)=0
Called to initialise the UI libraries.
virtual void start_gui_loop()=0
Called to start the UI loop.
virtual ~session_environment_iface()
Definition gui.h:240
virtual void quit_gui_loop()=0
Called from within event handlers to finish the UI loop.
virtual main_window_iface * create_main_window()=0
Create an appropriate version of the main window.
Definition gui.h:320
int y
Definition gui.h:322
GdkScreen * screen
Definition gui.h:321
int x
Definition gui.h:322
int height
Definition gui.h:322
int width
Definition gui.h:322
Definition gui_config.h:31
Definition gui_config.h:20
Definition gui_config.h:26
Definition gui_config.h:80
const char * text
Definition swell-functions.h:167
uch * p
Definition crypt.c:594
ZCONST char * key
Definition crypt.c:587
int r
Definition crypt.c:458
b
Definition crypt.c:628
#define void
Definition unzip.h:396
int argc
Definition zipinfo.c:455