Changeset 8a4d7e354f95ed66450b43c1660d8d85e4c3a6d1
- Timestamp:
- 09/05/10 18:51:17 (3 years ago)
- Children:
- e94e85da234ab3b679e5c7ec0a270ff1dc607bf0
- Parents:
- 649f30fea6f4d836484f964d2f05a593262b8449
- git-committer:
- Nedko Arnaudov <nedko@arnaudov.name> / 2010-09-05T18:51:17Z+0300
- Location:
- gui
- Files:
-
- 8 modified
-
canvas.cpp (modified) (7 diffs)
-
canvas.h (modified) (2 diffs)
-
graph_canvas.c (modified) (3 diffs)
-
graph_canvas.h (modified) (2 diffs)
-
graph_view.c (modified) (2 diffs)
-
menu.c (modified) (1 diff)
-
menu.h (modified) (2 diffs)
-
world_tree.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
gui/canvas.cpp
ra40d402 r8a4d7e3 3 3 * LADI Session Handler (ladish) 4 4 * 5 * Copyright (C) 2008, 2009 Nedko Arnaudov <nedko@arnaudov.name>5 * Copyright (C) 2008, 2009, 2010 Nedko Arnaudov <nedko@arnaudov.name> 6 6 * Copyright (C) 2007 Dave Robillard <http://drobilla.net> 7 7 * … … 40 40 void (* connect_request)(void * port1_context, void * port2_context), 41 41 void (* disconnect_request)(void * port1_context, void * port2_context), 42 void (* module_location_changed)(void * module_context, double x, double y)) 42 void (* module_location_changed)(void * module_context, double x, double y), 43 void (* fill_canvas_menu)(GtkMenu * menu), 44 void (* fill_module_menu)(GtkMenu * menu, void * module_context), 45 void (* fill_port_menu)(GtkMenu * menu, void * port_context)) 43 46 : FlowCanvas::Canvas(width, height) 44 47 , m_connect_request(connect_request) 45 48 , m_disconnect_request(disconnect_request) 46 49 , m_module_location_changed(module_location_changed) 50 , m_fill_canvas_menu(fill_canvas_menu) 51 , m_fill_module_menu(fill_module_menu) 52 , m_fill_port_menu(fill_port_menu) 47 53 {} 48 54 … … 67 73 } 68 74 75 virtual bool canvas_event(GdkEvent * event); 76 69 77 virtual void connect(boost::shared_ptr<FlowCanvas::Connectable> port1, boost::shared_ptr<FlowCanvas::Connectable> port2); 70 78 virtual void disconnect(boost::shared_ptr<FlowCanvas::Connectable> port1, boost::shared_ptr<FlowCanvas::Connectable> port2); … … 73 81 void (* m_disconnect_request)(void * port1_context, void * port2_context); 74 82 void (* m_module_location_changed)(void * module_context, double x, double y); 83 void (* m_fill_canvas_menu)(GtkMenu * menu); 84 void (* m_fill_module_menu)(GtkMenu * menu, void * module_context); 85 void (* m_fill_port_menu)(GtkMenu * menu, void * port_context); 75 86 }; 76 87 … … 101 112 _menu = new Gtk::Menu(); 102 113 _menu->items().push_back(Gtk::Menu_Helpers::MenuElem("Disconnect All", sigc::mem_fun(this, &module_cls::menu_disconnect_all))); 114 void (* fill_module_menu)(GtkMenu * menu, void * module_context) = boost::dynamic_pointer_cast<canvas_cls>(canvas().lock())->m_fill_module_menu; 115 if (fill_module_menu != NULL) 116 { 117 fill_module_menu(_menu->gobj(), m_context); 118 } 103 119 } 104 120 … … 147 163 void (* disconnect_request)(void * port1_context, void * port2_context), 148 164 void (* module_location_changed)(void * module_context, double x, double y), 165 void (* fill_canvas_menu)(GtkMenu * menu), 166 void (* fill_module_menu)(GtkMenu * menu, void * module_context), 167 void (* fill_port_menu)(GtkMenu * menu, void * port_context), 149 168 canvas_handle * canvas_handle_ptr) 150 169 { 151 170 boost::shared_ptr<canvas_cls> * canvas; 152 171 153 canvas = new boost::shared_ptr<canvas_cls>(new canvas_cls(width, height, connect_request, disconnect_request, module_location_changed)); 172 canvas = new boost::shared_ptr<canvas_cls>(new canvas_cls(width, 173 height, 174 connect_request, 175 disconnect_request, 176 module_location_changed, 177 fill_canvas_menu, 178 fill_module_menu, 179 fill_port_menu)); 154 180 155 181 *canvas_handle_ptr = (canvas_handle)canvas; … … 365 391 #undef port2_ptr 366 392 393 bool canvas_cls::canvas_event(GdkEvent * event) 394 { 395 assert(event); 396 397 if (m_fill_canvas_menu != NULL && event->type == GDK_BUTTON_PRESS && event->button.button == 3) 398 { 399 Gtk::Menu * menu_ptr; 400 menu_ptr = new Gtk::Menu(); 401 m_fill_canvas_menu(menu_ptr->gobj()); 402 menu_ptr->show_all(); 403 menu_ptr->popup(event->button.button, event->button.time); 404 return true; 405 } 406 407 return Canvas::canvas_event(event); 408 } 409 367 410 void 368 411 canvas_cls::connect( -
gui/canvas.h
r093af66 r8a4d7e3 3 3 * LADI Session Handler (ladish) 4 4 * 5 * Copyright (C) 2009 Nedko Arnaudov <nedko@arnaudov.name>5 * Copyright (C) 2009, 2010 Nedko Arnaudov <nedko@arnaudov.name> 6 6 * 7 7 ************************************************************************** … … 52 52 void (* disconnect_request)(void * port1_context, void * port2_context), 53 53 void (* module_location_changed)(void * module_context, double x, double y), 54 void (* fill_canvas_menu)(GtkMenu * menu), 55 void (* fill_module_menu)(GtkMenu * menu, void * module_context), 56 void (* fill_port_menu)(GtkMenu * menu, void * port_context), 54 57 canvas_handle * canvas_handle_ptr); 55 58 -
gui/graph_canvas.c
r093af66 r8a4d7e3 3 3 * LADI Session Handler (ladish) 4 4 * 5 * Copyright (C) 2009 Nedko Arnaudov <nedko@arnaudov.name>5 * Copyright (C) 2009, 2010 Nedko Arnaudov <nedko@arnaudov.name> 6 6 * 7 7 ************************************************************************** … … 175 175 int width, 176 176 int height, 177 void (* fill_canvas_menu)(GtkMenu * menu), 177 178 graph_canvas_handle * graph_canvas_handle_ptr) 178 179 { … … 185 186 } 186 187 187 if (!canvas_create(width, height, connect_request, disconnect_request, module_location_changed, &graph_canvas_ptr->canvas)) 188 if (!canvas_create( 189 width, 190 height, 191 connect_request, 192 disconnect_request, 193 module_location_changed, 194 fill_canvas_menu, 195 NULL, 196 NULL, 197 &graph_canvas_ptr->canvas)) 188 198 { 189 199 free(graph_canvas_ptr); -
gui/graph_canvas.h
rb5565fd r8a4d7e3 3 3 * LADI Session Handler (ladish) 4 4 * 5 * Copyright (C) 2009 Nedko Arnaudov <nedko@arnaudov.name>5 * Copyright (C) 2009, 2010 Nedko Arnaudov <nedko@arnaudov.name> 6 6 * 7 7 ************************************************************************** … … 37 37 int width, 38 38 int height, 39 void (* fill_canvas_menu)(GtkMenu * menu), 39 40 graph_canvas_handle * graph_canvas_ptr); 40 41 -
gui/graph_view.c
r7eaf2d1 r8a4d7e3 177 177 #undef view_ptr 178 178 179 static void fill_canvas_menu(GtkMenu * menu) 180 { 181 fill_view_popup_menu(menu, (graph_view_handle)g_current_view); 182 } 183 179 184 bool 180 185 create_view( … … 213 218 } 214 219 215 if (!graph_canvas_create(1600 * 2, 1200 * 2, &view_ptr->graph_canvas))220 if (!graph_canvas_create(1600 * 2, 1200 * 2, fill_canvas_menu, &view_ptr->graph_canvas)) 216 221 { 217 222 goto destroy_graph; -
gui/menu.c
r997208c r8a4d7e3 225 225 gtk_widget_set_sensitive(g_menu_item_save_as_project, room); 226 226 } 227 228 static void on_popup_menu_action_start_app(GtkWidget * menuitem, gpointer userdata) 229 { 230 menu_request_start_app(); 231 } 232 233 static void on_popup_menu_action_create_room(GtkWidget * menuitem, gpointer userdata) 234 { 235 menu_request_create_room(); 236 } 237 238 static void on_popup_menu_action_destroy_room(GtkWidget * menuitem, gpointer userdata) 239 { 240 menu_request_destroy_room(); 241 } 242 243 static void on_popup_menu_action_load_project(GtkWidget * menuitem, gpointer userdata) 244 { 245 menu_request_load_project(); 246 } 247 248 static void on_popup_menu_action_unload_project(GtkWidget * menuitem, gpointer userdata) 249 { 250 menu_request_unload_project(); 251 } 252 253 static void on_popup_menu_action_save_project(GtkWidget * menuitem, gpointer userdata) 254 { 255 menu_request_save_project(); 256 } 257 258 static void on_popup_menu_action_save_project_as(GtkWidget * menuitem, gpointer userdata) 259 { 260 menu_request_save_as_project(); 261 } 262 263 void fill_view_popup_menu(GtkMenu * menu, graph_view_handle view) 264 { 265 GtkWidget * menuitem; 266 267 log_info("filling view menu..."); 268 269 if (graph_view_get_app_supervisor(view) != NULL) 270 { 271 menuitem = gtk_menu_item_new_with_label("Run..."); 272 g_signal_connect(menuitem, "activate", (GCallback)on_popup_menu_action_start_app, NULL); 273 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 274 } 275 276 if (is_room_view(view)) 277 { 278 menuitem = gtk_menu_item_new_with_label("Load Project..."); 279 g_signal_connect(menuitem, "activate", (GCallback)on_popup_menu_action_load_project, NULL); 280 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 281 282 menuitem = gtk_menu_item_new_with_label("Unload Project"); 283 g_signal_connect(menuitem, "activate", (GCallback)on_popup_menu_action_unload_project, NULL); 284 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 285 286 menuitem = gtk_menu_item_new_with_label("Save Project..."); 287 g_signal_connect(menuitem, "activate", (GCallback)on_popup_menu_action_save_project, NULL); 288 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 289 290 menuitem = gtk_menu_item_new_with_label("Save Project As..."); 291 g_signal_connect(menuitem, "activate", (GCallback)on_popup_menu_action_save_project_as, NULL); 292 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 293 294 menuitem = gtk_separator_menu_item_new(); /* separator */ 295 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 296 297 menuitem = gtk_menu_item_new_with_label("Destroy Room"); 298 g_signal_connect(menuitem, "activate", (GCallback)on_popup_menu_action_destroy_room, NULL); 299 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 300 } 301 else 302 { 303 menuitem = gtk_menu_item_new_with_label("Create Room..."); 304 g_signal_connect(menuitem, "activate", (GCallback)on_popup_menu_action_create_room, NULL); 305 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 306 } 307 } -
gui/menu.h
r997208c r8a4d7e3 28 28 #define MENU_H__37ACA2FE_C43D_4FA8_B7CF_6DD345F17CD1__INCLUDED 29 29 30 #include "graph_view.h" 31 30 32 void menu_init(void); 31 33 void menu_studio_state_changed(unsigned int studio_state); … … 33 35 bool menu_set_jack_latency(uint32_t buffer_size, bool force, bool * changed_ptr); 34 36 void menu_view_activated(bool room); 37 void fill_view_popup_menu(GtkMenu * menu, graph_view_handle view); 35 38 36 39 void menu_request_daemon_exit(void); -
gui/world_tree.c
r649f30f r8a4d7e3 330 330 } 331 331 332 void on_popup_menu_action_start_app(GtkWidget * menuitem, gpointer userdata)333 {334 menu_request_start_app();335 }336 337 void on_popup_menu_action_create_room(GtkWidget * menuitem, gpointer userdata)338 {339 menu_request_create_room();340 }341 342 void on_popup_menu_action_destroy_room(GtkWidget * menuitem, gpointer userdata)343 {344 menu_request_destroy_room();345 }346 347 void on_popup_menu_action_load_project(GtkWidget * menuitem, gpointer userdata)348 {349 menu_request_load_project();350 }351 352 void on_popup_menu_action_unload_project(GtkWidget * menuitem, gpointer userdata)353 {354 menu_request_unload_project();355 }356 357 void on_popup_menu_action_save_project(GtkWidget * menuitem, gpointer userdata)358 {359 menu_request_save_project();360 }361 362 void on_popup_menu_action_save_project_as(GtkWidget * menuitem, gpointer userdata)363 {364 menu_request_save_as_project();365 }366 367 332 void popup_menu(GtkWidget * treeview, GdkEventButton * event) 368 333 { … … 429 394 else if (type == entry_type_view) 430 395 { 431 if (graph_view_get_app_supervisor(view) != NULL) 432 { 433 menuitem = gtk_menu_item_new_with_label("Run..."); 434 g_signal_connect(menuitem, "activate", (GCallback)on_popup_menu_action_start_app, NULL); 435 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 436 } 437 438 if (is_room_view(view)) 439 { 440 menuitem = gtk_menu_item_new_with_label("Load Project..."); 441 g_signal_connect(menuitem, "activate", (GCallback)on_popup_menu_action_load_project, NULL); 442 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 443 444 menuitem = gtk_menu_item_new_with_label("Unload Project"); 445 g_signal_connect(menuitem, "activate", (GCallback)on_popup_menu_action_unload_project, NULL); 446 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 447 448 menuitem = gtk_menu_item_new_with_label("Save Project..."); 449 g_signal_connect(menuitem, "activate", (GCallback)on_popup_menu_action_save_project, NULL); 450 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 451 452 menuitem = gtk_menu_item_new_with_label("Save Project As..."); 453 g_signal_connect(menuitem, "activate", (GCallback)on_popup_menu_action_save_project_as, NULL); 454 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 455 456 menuitem = gtk_separator_menu_item_new(); /* separator */ 457 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 458 459 menuitem = gtk_menu_item_new_with_label("Destroy Room"); 460 g_signal_connect(menuitem, "activate", (GCallback)on_popup_menu_action_destroy_room, NULL); 461 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 462 } 463 else 464 { 465 menuitem = gtk_menu_item_new_with_label("Create Room..."); 466 g_signal_connect(menuitem, "activate", (GCallback)on_popup_menu_action_create_room, NULL); 467 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 468 } 396 fill_view_popup_menu(GTK_MENU(menu), view); 469 397 } 470 398 else
