The Meta-Environment API
00001 #ifndef __SDF_MODULE_ACTIONS__ 00002 #define __SDF_MODULE_ACTIONS__ 00003 00004 #include <sdf-namespace.h> 00005 #include <configuration-manager.idef> 00006 #include <graph-painter.idef> 00007 00008 process SelectModule(ModuleId: module-id) is 00009 snd-msg(nav-select-module(ModuleId)) 00010 . snd-msg(gp-select-node("import-graph", SDF_NAMESPACE, ModuleId)) 00011 00012 process HandleModuleEvent(Type: term, Event: term, ModuleId: module-id) is 00013 let 00014 Action: str, 00015 Modulename: str 00016 in 00017 snd-msg(cm-get-action(Type, Event)) 00018 . rec-msg(cm-action(Action?)) 00019 . Action(ModuleId) 00020 endlet 00021 00022 process GetModulePopupEvents(Modulename: str, PopupMenu: list?) is 00023 let 00024 Events: list 00025 in 00026 snd-msg(cm-get-events(module-popup(Modulename))) 00027 . rec-msg(cm-events(PopupMenu?)) 00028 endlet 00029 00030 process HandleModulePopup is 00031 let 00032 GraphId: str, 00033 GraphType: str, 00034 ModuleId: module-id, 00035 Modulename: str, 00036 Menu: term, 00037 PopupMenu: list, 00038 Type: term 00039 in 00040 ( 00041 NAV-RequestPopup(ModuleId?) 00042 . MM-GetAttribute(ModuleId, SDF_NAMESPACE, "name", Modulename?) 00043 . GetModulePopupEvents(Modulename, PopupMenu?) 00044 . NAV-ShowPopup(ModuleId, PopupMenu) 00045 + 00046 NAV-PopupEvent(ModuleId?, Menu?) 00047 . HandleModuleEvent(module-popup, Menu, ModuleId) 00048 + 00049 GP-RequestPopup(GraphType?, GraphId?, ModuleId?) 00050 . 00051 if equal(GraphType, "import-graph") then 00052 MM-GetAttribute(ModuleId, SDF_NAMESPACE, "name", Modulename?) 00053 . GetModulePopupEvents(Modulename, PopupMenu?) 00054 . GP-ShowPopup("import-graph", SDF_NAMESPACE, ModuleId, PopupMenu) 00055 else 00056 tau 00057 fi 00058 + 00059 GP-PopupEvent(GraphType?, GraphId?, ModuleId?, Menu?) 00060 . 00061 if equal(GraphType, "import-graph") then 00062 HandleModuleEvent(module-popup, Menu, ModuleId) 00063 else 00064 tau 00065 fi 00066 ) 00067 * 00068 delta 00069 endlet 00070 00071 toolbus(HandleModulePopup) 00072 00073 #endif /* __SDF_MODULE_ACTIONS__ */