Commit 937ae7eb authored by Claes Sjofors's avatar Claes Sjofors

Xtt trace, toolbar button to open parent trace window

parent 884c8b73
...@@ -112,6 +112,13 @@ void RtTraceGtk::activate_display_object(GtkWidget *w, gpointer data) ...@@ -112,6 +112,13 @@ void RtTraceGtk::activate_display_object(GtkWidget *w, gpointer data)
tractx->activate_display_object(); tractx->activate_display_object();
} }
void RtTraceGtk::activate_parent_window(GtkWidget *w, gpointer data)
{
RtTrace *tractx = (RtTrace *)data;
tractx->activate_parent_window();
}
void RtTraceGtk::activate_collect_insert(GtkWidget *w, gpointer data) void RtTraceGtk::activate_collect_insert(GtkWidget *w, gpointer data)
{ {
RtTrace *tractx = (RtTrace *)data; RtTrace *tractx = (RtTrace *)data;
...@@ -312,6 +319,8 @@ RtTraceGtk::RtTraceGtk( void *tr_parent_ctx, GtkWidget *tr_parent_wid, pwr_tObji ...@@ -312,6 +319,8 @@ RtTraceGtk::RtTraceGtk( void *tr_parent_ctx, GtkWidget *tr_parent_wid, pwr_tObji
pwr_tAName hostname; pwr_tAName hostname;
pwr_tOName plcconnect; pwr_tOName plcconnect;
pwr_tFileName fname; pwr_tFileName fname;
pwr_tObjid parent;
pwr_tCid parent_cid;
sts = gdh_ObjidToName( tr_objid, name, sizeof(name), cdh_mNName); sts = gdh_ObjidToName( tr_objid, name, sizeof(name), cdh_mNName);
if (EVEN(sts)) { if (EVEN(sts)) {
...@@ -613,6 +622,20 @@ RtTraceGtk::RtTraceGtk( void *tr_parent_ctx, GtkWidget *tr_parent_wid, pwr_tObji ...@@ -613,6 +622,20 @@ RtTraceGtk::RtTraceGtk( void *tr_parent_ctx, GtkWidget *tr_parent_wid, pwr_tObji
// Toolbar // Toolbar
GtkToolbar *tools = (GtkToolbar *) g_object_new(GTK_TYPE_TOOLBAR, NULL); GtkToolbar *tools = (GtkToolbar *) g_object_new(GTK_TYPE_TOOLBAR, NULL);
// Open parent window for subwindows
sts = gdh_GetParent( objid, &parent);
if ( ODD(sts)) {
sts = gdh_GetObjectClass( parent, &parent_cid);
if ( ODD(sts) && parent_cid != pwr_cClass_plc) {
GtkWidget *tools_parent_window = gtk_button_new();
dcli_translate_filename( fname, "$pwr_exe/xtt_up.png");
gtk_container_add( GTK_CONTAINER(tools_parent_window),
gtk_image_new_from_file( fname));
g_signal_connect(tools_parent_window, "clicked", G_CALLBACK(activate_parent_window), this);
gtk_toolbar_append_widget( tools, tools_parent_window, "Open parent window", "");
}
}
GtkWidget *tools_display_object = gtk_button_new(); GtkWidget *tools_display_object = gtk_button_new();
dcli_translate_filename( fname, "$pwr_exe/xtt_navigator.png"); dcli_translate_filename( fname, "$pwr_exe/xtt_navigator.png");
gtk_container_add( GTK_CONTAINER(tools_display_object), gtk_container_add( GTK_CONTAINER(tools_display_object),
......
...@@ -66,6 +66,7 @@ class RtTraceGtk : public RtTrace { ...@@ -66,6 +66,7 @@ class RtTraceGtk : public RtTrace {
static void activate_savetrace(GtkWidget *w, gpointer data); static void activate_savetrace(GtkWidget *w, gpointer data);
static void activate_restoretrace(GtkWidget *w, gpointer data); static void activate_restoretrace(GtkWidget *w, gpointer data);
static void activate_cleartrace(GtkWidget *w, gpointer data); static void activate_cleartrace(GtkWidget *w, gpointer data);
static void activate_parent_window(GtkWidget *w, gpointer data);
static void activate_display_object(GtkWidget *w, gpointer data); static void activate_display_object(GtkWidget *w, gpointer data);
static void activate_collect_insert(GtkWidget *w, gpointer data); static void activate_collect_insert(GtkWidget *w, gpointer data);
static void activate_open_object(GtkWidget *w, gpointer data); static void activate_open_object(GtkWidget *w, gpointer data);
......
...@@ -470,6 +470,29 @@ void RtTrace::activate_cleartrace() ...@@ -470,6 +470,29 @@ void RtTrace::activate_cleartrace()
flow_RemoveTraceObjects( flow_ctx); flow_RemoveTraceObjects( flow_ctx);
} }
void RtTrace::activate_parent_window()
{
int sts;
pwr_tAttrRef attrref;
pwr_tOid parent;
xmenu_eItemType itemtype;
sts = gdh_GetParent( objid, &parent);
if ( EVEN(sts)) return;
itemtype = xmenu_eItemType_Object;
attrref = cdh_ObjidToAref( parent);
if ( call_method_cb) {
(call_method_cb)( parent_ctx,
"$Object-OpenTrace",
"$Object-OpenTraceFilter",
attrref,
itemtype,
xmenu_mUtility_XNav, NULL);
}
}
void RtTrace::activate_display_object() void RtTrace::activate_display_object()
{ {
flow_tObject node; flow_tObject node;
......
...@@ -113,6 +113,7 @@ class RtTrace { ...@@ -113,6 +113,7 @@ class RtTrace {
void activate_savetrace(); void activate_savetrace();
void activate_restoretrace(); void activate_restoretrace();
void activate_cleartrace(); void activate_cleartrace();
void activate_parent_window();
void activate_display_object(); void activate_display_object();
void activate_collect_insert(); void activate_collect_insert();
void activate_open_object(); void activate_open_object();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment