Commit 2591f944 authored by claes's avatar claes

New method toolbar in xtt

parent 6cbe0f8a
/* /*
* Proview $Id: rt_xtt_gtk.cpp,v 1.3 2007-01-11 11:40:30 claes Exp $ * Proview $Id: rt_xtt_gtk.cpp,v 1.4 2007-01-17 06:18:10 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB. * Copyright (C) 2005 SSAB Oxelsund AB.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
...@@ -53,6 +53,7 @@ ...@@ -53,6 +53,7 @@
#include "co_wow_gtk.h" #include "co_wow_gtk.h"
#include "rt_xnav_msg.h" #include "rt_xnav_msg.h"
#include "rt_syi.h" #include "rt_syi.h"
#include "xtt_methodtoolbar_gtk.h"
void XttGtk::hotkey_Command( char *arg, void *userdata) void XttGtk::hotkey_Command( char *arg, void *userdata)
{ {
...@@ -469,6 +470,7 @@ XttGtk::~XttGtk() ...@@ -469,6 +470,7 @@ XttGtk::~XttGtk()
delete cmd_recall; delete cmd_recall;
delete value_recall; delete value_recall;
delete hotkey; delete hotkey;
delete methodtoolbar;
} }
static gint delete_event( GtkWidget *w, GdkEvent *event, gpointer xtt) static gint delete_event( GtkWidget *w, GdkEvent *event, gpointer xtt)
...@@ -783,6 +785,10 @@ XttGtk::XttGtk( int argc, char *argv[], int *return_sts) : ...@@ -783,6 +785,10 @@ XttGtk::XttGtk( int argc, char *argv[], int *return_sts) :
g_signal_connect(tools_zoom_reset, "clicked", G_CALLBACK(activate_zoom_reset), this); g_signal_connect(tools_zoom_reset, "clicked", G_CALLBACK(activate_zoom_reset), this);
gtk_toolbar_append_widget( tools, tools_zoom_reset,CoWowGtk::translate_utf8("Zoom reset"), ""); gtk_toolbar_append_widget( tools, tools_zoom_reset,CoWowGtk::translate_utf8("Zoom reset"), "");
// Toolbar
methodtoolbar = new XttMethodToolbarGtk(0);
GtkToolbar *tools2 = (GtkToolbar *) ((XttMethodToolbarGtk *)methodtoolbar)->build();
// Statusbar and cmd input // Statusbar and cmd input
GtkWidget *statusbar = gtk_hbox_new( FALSE, 0); GtkWidget *statusbar = gtk_hbox_new( FALSE, 0);
msg_label = gtk_label_new( ""); msg_label = gtk_label_new( "");
...@@ -811,11 +817,15 @@ XttGtk::XttGtk( int argc, char *argv[], int *return_sts) : ...@@ -811,11 +817,15 @@ XttGtk::XttGtk( int argc, char *argv[], int *return_sts) :
xnav->map_cb = ↦ xnav->map_cb = ↦
xnav->change_value_cb = &change_value; xnav->change_value_cb = &change_value;
xnav->set_dimension_cb = &set_dimension; xnav->set_dimension_cb = &set_dimension;
xnav->selection_changed_cb = &selection_changed;
xnav->attach_audio = attach_audio; xnav->attach_audio = attach_audio;
methodtoolbar->m_xnav = xnav;
GtkWidget *vbox = gtk_vbox_new( FALSE, 0); GtkWidget *vbox = gtk_vbox_new( FALSE, 0);
gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(menu_bar), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(menu_bar), FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(tools), FALSE, FALSE, 0); gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(tools), FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(tools2), FALSE, FALSE, 0);
gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(brow_widget), TRUE, TRUE, 0); gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(brow_widget), TRUE, TRUE, 0);
gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(statusbar), FALSE, FALSE, 3); gtk_box_pack_start( GTK_BOX(vbox), GTK_WIDGET(statusbar), FALSE, FALSE, 3);
...@@ -856,6 +866,7 @@ XttGtk::XttGtk( int argc, char *argv[], int *return_sts) : ...@@ -856,6 +866,7 @@ XttGtk::XttGtk( int argc, char *argv[], int *return_sts) :
gdk_display_get_default(), i)); gdk_display_get_default(), i));
gdk_window_add_filter( root, xtt_hotkey_filter, hotkey); gdk_window_add_filter( root, xtt_hotkey_filter, hotkey);
} }
methodtoolbar->set_sensitive();
xtt_mainloop(); xtt_mainloop();
......
/* /*
* Proview $Id: rt_xtt_main.h,v 1.1 2007-01-04 08:40:17 claes Exp $ * Proview $Id: rt_xtt_main.h,v 1.2 2007-01-17 06:18:11 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB. * Copyright (C) 2005 SSAB Oxelsund AB.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
class CoWow; class CoWow;
class CoWowTimer; class CoWowTimer;
class XttMethodToolbar;
class Xtt { class Xtt {
public: public:
...@@ -61,6 +62,7 @@ class Xtt { ...@@ -61,6 +62,7 @@ class Xtt {
pwr_tOName opplace_str; pwr_tOName opplace_str;
int quiet; int quiet;
int attach_audio; int attach_audio;
XttMethodToolbar *methodtoolbar;
Xtt( int argc, char *argv[], int *return_sts); Xtt( int argc, char *argv[], int *return_sts);
virtual ~Xtt() {} virtual ~Xtt() {}
...@@ -83,7 +85,8 @@ class Xtt { ...@@ -83,7 +85,8 @@ class Xtt {
static void xtt_message_cb( void *ctx, char severity, char *msg); static void xtt_message_cb( void *ctx, char severity, char *msg);
static void close_ok( void *ctx, void *data); static void close_ok( void *ctx, void *data);
static void change_value( void *ctx); static void change_value( void *ctx);
static void selection_changed( void *ctx);
void activate_print(); void activate_print();
void activate_find(); void activate_find();
void activate_findregex(); void activate_findregex();
...@@ -99,6 +102,7 @@ class Xtt { ...@@ -99,6 +102,7 @@ class Xtt {
void activate_help(); void activate_help();
void activate_help_project(); void activate_help_project();
void activate_help_proview(); void activate_help_proview();
void activate_method( char *method, char *filter);
static Xtt *hot_xtt; static Xtt *hot_xtt;
static xnav_sStartMenu alarm_menu[]; static xnav_sStartMenu alarm_menu[];
......
/* /*
* Proview $Id: xtt_main.cpp,v 1.1 2007-01-04 08:40:17 claes Exp $ * Proview $Id: xtt_main.cpp,v 1.2 2007-01-17 06:18:11 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB. * Copyright (C) 2005 SSAB Oxelsund AB.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
...@@ -42,11 +42,13 @@ ...@@ -42,11 +42,13 @@
#include "xtt_xnav.h" #include "xtt_xnav.h"
#include "xtt_item.h" #include "xtt_item.h"
#include "xtt_url.h" #include "xtt_url.h"
#include "xtt_methodtoolbar.h"
#include "co_lng.h" #include "co_lng.h"
#include "co_xhelp.h" #include "co_xhelp.h"
#include "co_wow.h" #include "co_wow.h"
#include "rt_xnav_msg.h" #include "rt_xnav_msg.h"
// Static variables // Static variables
Xtt *Xtt::hot_xtt = 0; Xtt *Xtt::hot_xtt = 0;
...@@ -237,6 +239,13 @@ void Xtt::change_value( void *ctx) ...@@ -237,6 +239,13 @@ void Xtt::change_value( void *ctx)
xtt->open_change_value(); xtt->open_change_value();
} }
void Xtt::selection_changed( void *ctx)
{
Xtt *xtt = (Xtt *) ctx;
xtt->methodtoolbar->set_sensitive();
}
// //
// Callbackfunctions from menu entries // Callbackfunctions from menu entries
// //
...@@ -397,6 +406,29 @@ void Xtt::activate_zoom_out() ...@@ -397,6 +406,29 @@ void Xtt::activate_zoom_out()
xnav->zoom( 1.0 / 1.18); xnav->zoom( 1.0 / 1.18);
} }
void Xtt::activate_method( char *method, char *filter)
{
int sts;
int is_attr;
pwr_sAttrRef aref;
xmenu_eItemType menu_type;
sts = xnav->get_select( &aref, &is_attr);
if ( aref.Flags.b.Object)
menu_type = xmenu_eItemType_Object;
else if ( aref.Flags.b.ObjectAttr)
menu_type = xmenu_eItemType_AttrObject;
else
menu_type = xmenu_eItemType_Attribute;
if ( ODD(sts))
xnav->call_method( method, filter, aref,
menu_type,
xmenu_mUtility_XNav,
xnav->priv, 0);
}
void Xtt::activate_help() void Xtt::activate_help()
{ {
CoXHelp::dhelp("overview", "", navh_eHelpFile_Base, NULL, 0); CoXHelp::dhelp("overview", "", navh_eHelpFile_Base, NULL, 0);
......
/*
* Proview $Id: xtt_methodtoolbar_gtk.cpp,v 1.1 2007-01-17 06:18:10 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* xtt_methodtoolbar_gtk.cpp -- Display method toolbar */
#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>
#include "co_dcli.h"
#include "co_wow_gtk.h"
#include "xtt_xnav.h"
#include "xtt_methodtoolbar_gtk.h"
XttMethodToolbarGtk::XttMethodToolbarGtk( XNav *xnav) :
XttMethodToolbar(xnav)
{
for ( int i = 0; i < m_size; i++) {
m_cb[i].mt = this;
m_cb[i].idx = i;
}
}
void XttMethodToolbarGtk::activate_button( GtkWidget *w, gpointer data)
{
XttMethodToolbarGtk *mt = ((xtt_sMethodButtonCb *)data)->mt;
int idx = ((xtt_sMethodButtonCb *)data)->idx;
int sts;
int is_attr;
pwr_sAttrRef aref;
xmenu_eItemType menu_type;
sts = mt->m_xnav->get_select( &aref, &is_attr);
if ( aref.Flags.b.Object)
menu_type = xmenu_eItemType_Object;
else if ( aref.Flags.b.ObjectAttr)
menu_type = xmenu_eItemType_AttrObject;
else
menu_type = xmenu_eItemType_Attribute;
if ( ODD(sts))
mt->m_xnav->call_method( mt->m_data[idx].method, mt->m_data[idx].filter, aref,
menu_type,
xmenu_mUtility_XNav,
mt->m_xnav->priv, 0);
}
GtkWidget *XttMethodToolbarGtk::build()
{
pwr_tFileName fname;
// Toolbar
m_toolbar_w = (GtkWidget *) g_object_new(GTK_TYPE_TOOLBAR, NULL);
for ( int i = 0; i < m_size; i++) {
m_button_w[i] = gtk_button_new();
dcli_translate_filename( fname, m_data[i].image);
gtk_container_add( GTK_CONTAINER(m_button_w[i]),
gtk_image_new_from_file( fname));
g_signal_connect( m_button_w[i], "clicked", G_CALLBACK(activate_button), &m_cb[i]);
g_object_set( m_button_w[i], "can-focus", FALSE, NULL);
gtk_toolbar_append_widget( GTK_TOOLBAR(m_toolbar_w), m_button_w[i], CoWowGtk::translate_utf8( m_data[i].tooltip), "");
}
return m_toolbar_w;
}
void XttMethodToolbarGtk::set_sensitive()
{
int is_attr;
pwr_sAttrRef aref;
xmenu_eItemType menu_type;
pwr_tStatus sts;
sts = m_xnav->get_select( &aref, &is_attr);
if ( EVEN(sts)) {
// Nothing selected
for ( int i = 0; i < m_size; i++)
gtk_widget_set_sensitive( m_button_w[i], FALSE);
}
else {
if ( aref.Flags.b.Object)
menu_type = xmenu_eItemType_Object;
else if ( aref.Flags.b.ObjectAttr)
menu_type = xmenu_eItemType_AttrObject;
else
menu_type = xmenu_eItemType_Attribute;
for ( int i = 0; i < m_size; i++) {
sts = m_xnav->check_object_methodfilter( aref, menu_type, xmenu_mUtility_XNav,
m_xnav->priv, m_data[i].name);
if ( ODD(sts))
gtk_widget_set_sensitive( m_button_w[i], TRUE);
else
gtk_widget_set_sensitive( m_button_w[i], FALSE);
}
}
}
/*
* Proview $Id: xtt_methodtoolbar_gtk.h,v 1.1 2007-01-17 06:18:10 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef xtt_methodtoolbar_gtk_h
#define xtt_methodtoolbar_gtk_h
#include "xtt_methodtoolbar.h"
class XttMethodToolbarGtk;
typedef struct {
XttMethodToolbarGtk *mt;
int idx;
} xtt_sMethodButtonCb;
class XttMethodToolbarGtk : public XttMethodToolbar {
public:
GtkWidget *m_toolbar_w;
GtkWidget *m_button_w[m_size];
xtt_sMethodButtonCb m_cb[m_size];
XttMethodToolbarGtk( XNav *xnav);
GtkWidget *build();
void set_sensitive();
static void activate_button( GtkWidget *w, gpointer data);
};
#endif
/* /*
* Proview $Id: xtt_menu.cpp,v 1.12 2007-01-04 08:22:47 claes Exp $ * Proview $Id: xtt_menu.cpp,v 1.13 2007-01-17 06:19:57 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB. * Copyright (C) 2005 SSAB Oxelsund AB.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
...@@ -489,6 +489,8 @@ int XNav::call_method( char *method, char *filter, ...@@ -489,6 +489,8 @@ int XNav::call_method( char *method, char *filter,
strcpy( mcp->Arg, arg); strcpy( mcp->Arg, arg);
sel_cnt = 1; sel_cnt = 1;
if ( mcp->Selected)
free( mcp->Selected);
mcp->Selected = (pwr_sAttrRef *) calloc( sel_cnt + 1, sizeof (pwr_sAttrRef)); mcp->Selected = (pwr_sAttrRef *) calloc( sel_cnt + 1, sizeof (pwr_sAttrRef));
mcp->Selected[0] = attrref; mcp->Selected[0] = attrref;
mcp->Selected[sel_cnt].Objid = pwr_cNObjid; mcp->Selected[sel_cnt].Objid = pwr_cNObjid;
...@@ -508,6 +510,9 @@ int XNav::call_method( char *method, char *filter, ...@@ -508,6 +510,9 @@ int XNav::call_method( char *method, char *filter,
sts = (method_func) ( mcp); sts = (method_func) ( mcp);
if ( EVEN(sts)) return sts; if ( EVEN(sts)) return sts;
free( mcp->Selected);
mcp->Selected = 0;
return XNAV__SUCCESS; return XNAV__SUCCESS;
} }
...@@ -536,6 +541,8 @@ int XNav::call_object_method( pwr_sAttrRef attrref, ...@@ -536,6 +541,8 @@ int XNav::call_object_method( pwr_sAttrRef attrref,
mcp->SelectedSet = xmenu_eMenuSet_Object; mcp->SelectedSet = xmenu_eMenuSet_Object;
sel_cnt = 1; sel_cnt = 1;
if ( mcp->Selected)
free( mcp->Selected);
mcp->Selected = (pwr_sAttrRef *) calloc( sel_cnt + 1, sizeof (pwr_sAttrRef)); mcp->Selected = (pwr_sAttrRef *) calloc( sel_cnt + 1, sizeof (pwr_sAttrRef));
mcp->Selected[0] = attrref; mcp->Selected[0] = attrref;
mcp->Selected[sel_cnt].Objid = pwr_cNObjid; mcp->Selected[sel_cnt].Objid = pwr_cNObjid;
...@@ -589,6 +596,8 @@ int XNav::check_object_methodfilter( pwr_sAttrRef attrref, ...@@ -589,6 +596,8 @@ int XNav::check_object_methodfilter( pwr_sAttrRef attrref,
mcp->SelectedSet = xmenu_eMenuSet_Object; mcp->SelectedSet = xmenu_eMenuSet_Object;
sel_cnt = 1; sel_cnt = 1;
if ( mcp->Selected)
free( mcp->Selected);
mcp->Selected = (pwr_sAttrRef *) calloc( sel_cnt + 1, sizeof (pwr_sAttrRef)); mcp->Selected = (pwr_sAttrRef *) calloc( sel_cnt + 1, sizeof (pwr_sAttrRef));
mcp->Selected[0] = attrref; mcp->Selected[0] = attrref;
mcp->Selected[sel_cnt].Objid = pwr_cNObjid; mcp->Selected[sel_cnt].Objid = pwr_cNObjid;
...@@ -642,6 +651,8 @@ void XNav::get_popup_menu_items( pwr_sAttrRef attrref, ...@@ -642,6 +651,8 @@ void XNav::get_popup_menu_items( pwr_sAttrRef attrref,
strcpy( mcp->Arg, arg); strcpy( mcp->Arg, arg);
sel_cnt = 1; sel_cnt = 1;
if ( mcp->Selected)
free( mcp->Selected);
mcp->Selected = (pwr_sAttrRef *) calloc( sel_cnt + 1, sizeof (pwr_sAttrRef)); mcp->Selected = (pwr_sAttrRef *) calloc( sel_cnt + 1, sizeof (pwr_sAttrRef));
mcp->Selected[0] = attrref; mcp->Selected[0] = attrref;
mcp->Selected[sel_cnt].Objid = pwr_cNObjid; mcp->Selected[sel_cnt].Objid = pwr_cNObjid;
......
/*
* Proview $Id: xtt_methodtoolbar.cpp,v 1.1 2007-01-17 06:19:57 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* xtt_methodtoolbar.cpp -- Display method toolbar */
#include <stdio.h>
#include <stdlib.h>
#include "xtt_methodtoolbar.h"
xtt_sMethodButton XttMethodToolbar::m_data[XttMethodToolbar::m_size] =
{{"Help", "$Object-Help", "$Object-HelpFilter", "$pwr_exe/xtt_meth_help.png", "Help"},
{"Note", "$Object-Note", "$Object-NoteFilter", "$pwr_exe/xtt_meth_note.png", "Note"},
{"Trend", "$Object-OpenTrend", "$Object-OpenTrendFilter", "$pwr_exe/xtt_meth_trend.png", "Trend"},
{"Fast", "$Object-OpenFast", "$Object-OpenFastFilter", "$pwr_exe/xtt_meth_fast.png", "Fast"},
{"Graph", "$Object-OpenGraph", "$Object-OpenGraphFilter", "$pwr_exe/xtt_meth_graph.png", "Graph"},
{"Object Graph", "$Object-OpenObjectGraph","$Object-OpenObjectGraphFilter", "$pwr_exe/xtt_meth_classgraph.png", "Object Graph"},
{"Open Plc", "$Object-OpenTrace", "$Object-OpenTraceFilter", "$pwr_exe/xtt_meth_trace.png", "Open Plc"},
{"DataSheet", "$Object-DataSheet", "$Object-DataSheetFilter", "$pwr_exe/xtt_meth_datasheet.png", "DataSheet"},
{"Hist Event...", "$Object-HistEvent", "$Object-HistEventFilter", "$pwr_exe/xtt_meth_histevent.png", "Hist Event..."},
{"Block Events...", "$Object-BlockEvents", "$Object-BlockEventsFilter", "$pwr_exe/xtt_meth_block.png", "Block Events..."},
{"Open Object", "$Object-OpenObject", "$Object-OpenObjectFilter", "$pwr_exe/xtt_meth_openobject.png", "Open Object"},
{"Crossreferences", "$Object-OpenCrossref", "$Object-OpenCrossrefFilter", "$pwr_exe/xtt_meth_crossref.png", "Crossreferences"},
{"CircuitDiagram", "$Object-CircuitDiagram", "$Object-CircuitDiagramFilter", "$pwr_exe/xtt_meth_circuitdiagram.png", "CircuitDiagram"},
{"Help Class", "$Object-HelpClass", "$Object-HelpClassFilter", "$pwr_exe/xtt_meth_classhelp.png", "Help Class"}};
/*
* Proview $Id: xtt_methodtoolbar.h,v 1.1 2007-01-17 06:19:57 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program, if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef xtt_methodtoolbar_h
#define xtt_methodtoolbar_h
class XNav;
typedef struct {
char name[80];
char method[80];
char filter[80];
char image[80];
char tooltip[80];
} xtt_sMethodButton;
class XttMethodToolbar {
public:
static const int m_size = 14;
static xtt_sMethodButton m_data[m_size];
XNav *m_xnav;
XttMethodToolbar( XNav *xnav) : m_xnav(xnav) {}
virtual ~XttMethodToolbar() {}
virtual void set_sensitive() {}
};
#endif
/* /*
* Proview $Id: xtt_xnav.cpp,v 1.30 2007-01-11 11:40:31 claes Exp $ * Proview $Id: xtt_xnav.cpp,v 1.31 2007-01-17 06:19:57 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB. * Copyright (C) 2005 SSAB Oxelsund AB.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
...@@ -987,7 +987,7 @@ XNav::XNav( ...@@ -987,7 +987,7 @@ XNav::XNav(
parent_ctx(xn_parent_ctx), parent_ctx(xn_parent_ctx),
brow_cnt(0), TraceList(NULL), trace_started(0), brow_cnt(0), TraceList(NULL), trace_started(0),
message_cb(NULL), close_cb(NULL), map_cb(NULL), change_value_cb(NULL), message_cb(NULL), close_cb(NULL), map_cb(NULL), change_value_cb(NULL),
set_dimension_cb(NULL), ccm_func_registred(0), verify(0), set_dimension_cb(NULL), selection_changed_cb(0), ccm_func_registred(0), verify(0),
menu_tree(NULL), ev(0), op(0), clog(0), closing_down(0), menu_tree(NULL), ev(0), op(0), clog(0), closing_down(0),
base_priv(pwr_mPrv_System), priv(pwr_mPrv_System), displayed(0), base_priv(pwr_mPrv_System), priv(pwr_mPrv_System), displayed(0),
current_logging_index(-1), search_last_found(0), search_compiled(0), current_logging_index(-1), search_last_found(0), search_compiled(0),
...@@ -1604,6 +1604,8 @@ int XNav::brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -1604,6 +1604,8 @@ int XNav::brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_CenterObject( xnav->brow->ctx, object, 0.25); brow_CenterObject( xnav->brow->ctx, object, 0.25);
if ( node_count) if ( node_count)
free( node_list); free( node_list);
if ( xnav->selection_changed_cb)
(xnav->selection_changed_cb)( xnav->parent_ctx);
break; break;
} }
case flow_eEvent_Key_Down: case flow_eEvent_Key_Down:
...@@ -1639,6 +1641,8 @@ int XNav::brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -1639,6 +1641,8 @@ int XNav::brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_CenterObject( xnav->brow->ctx, object, 0.75); brow_CenterObject( xnav->brow->ctx, object, 0.75);
if ( node_count) if ( node_count)
free( node_list); free( node_list);
if ( xnav->selection_changed_cb)
(xnav->selection_changed_cb)( xnav->parent_ctx);
break; break;
} }
case flow_eEvent_Key_PageDown: { case flow_eEvent_Key_PageDown: {
...@@ -1905,6 +1909,8 @@ int XNav::brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -1905,6 +1909,8 @@ int XNav::brow_cb( FlowCtx *ctx, flow_tEvent event)
default: default:
brow_SelectClear( xnav->brow->ctx); brow_SelectClear( xnav->brow->ctx);
} }
if ( xnav->selection_changed_cb)
(xnav->selection_changed_cb)( xnav->parent_ctx);
break; break;
case flow_eEvent_Radiobutton: case flow_eEvent_Radiobutton:
{ {
......
/* /*
* Proview $Id: xtt_xnav.h,v 1.19 2007-01-04 08:22:47 claes Exp $ * Proview $Id: xtt_xnav.h,v 1.20 2007-01-17 06:19:57 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB. * Copyright (C) 2005 SSAB Oxelsund AB.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
...@@ -279,6 +279,7 @@ class XNav { ...@@ -279,6 +279,7 @@ class XNav {
void (*map_cb)( void *); void (*map_cb)( void *);
void (*change_value_cb)( void *); void (*change_value_cb)( void *);
void (*set_dimension_cb)( void *, int, int); void (*set_dimension_cb)( void *, int, int);
void (*selection_changed_cb)( void *);
int ccm_func_registred; int ccm_func_registred;
int verify; int verify;
xnav_sMenu *menu_tree; xnav_sMenu *menu_tree;
......
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