Commit 560722ce authored by Claes Sjofors's avatar Claes Sjofors

Ge, transient for graphs implemented

parent cfc0bda9
...@@ -2057,6 +2057,11 @@ a XttGraph object. ...@@ -2057,6 +2057,11 @@ a XttGraph object.
/focus <t>Name of a value input object. The object will gain input focus /focus <t>Name of a value input object. The object will gain input focus
<t>when the graph is opened. <t>when the graph is opened.
/inputempty <t>The input label of the input focus object will be empty. /inputempty <t>The input label of the input focus object will be empty.
/pwindow <t>Filename of another window that this graph should be placed
<t>on top of. The string $current will denote the current window
<t>when the graph is opened from a push button in this window.
/pinstance <t>Instance name for the pwindow graph, if pwindow is an object
<t>graph.
</TOPIC> </TOPIC>
<TOPIC> open jgraph <style> function <TOPIC> open jgraph <style> function
......
...@@ -2018,6 +2018,10 @@ XttGraph objekt. ...@@ -2018,6 +2018,10 @@ XttGraph objekt.
/focus <t>Namn på ett inmatnings objekt. Objektet kommer att ges input focus /focus <t>Namn på ett inmatnings objekt. Objektet kommer att ges input focus
<t>när grafen öppnas. <t>när grafen öppnas.
/inputempty <t>Texten i inmatningsfältet töms. /inputempty <t>Texten i inmatningsfältet töms.
/pwindow <t>Filnamn för ett annat fönster som grafen ska placera ovanför.
<t>Strängen $current anger nuvarande fönster när grafen öppnas från en
<t>tryckknapp i detta fönster.
/pinstance <t>Instance namn för pwindow grafen, om pwindow är en objektsbild.
</TOPIC> </TOPIC>
<TOPIC> open jgraph <style> function <TOPIC> open jgraph <style> function
......
...@@ -284,8 +284,8 @@ XttGeGtk::XttGeGtk( GtkWidget *xg_parent_wid, void *xg_parent_ctx, const char *x ...@@ -284,8 +284,8 @@ XttGeGtk::XttGeGtk( GtkWidget *xg_parent_wid, void *xg_parent_ctx, const char *x
const char *xg_filename, int xg_scrollbar, int xg_menu, int xg_navigator, const char *xg_filename, int xg_scrollbar, int xg_menu, int xg_navigator,
int xg_width, int xg_height, int x, int y, double scan_time, int xg_width, int xg_height, int x, int y, double scan_time,
const char *object_name, int use_default_access, unsigned int access, const char *object_name, int use_default_access, unsigned int access,
unsigned int options, unsigned int options, void *basewidget,
int (*xg_command_cb) (XttGe *, char *), int (*xg_command_cb) (XttGe *, char *, void *),
int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **), int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **),
int (*xg_is_authorized_cb) (void *, unsigned int)) : int (*xg_is_authorized_cb) (void *, unsigned int)) :
XttGe( xg_parent_ctx, xg_name, xg_filename, xg_scrollbar, xg_menu, xg_navigator, xg_width, XttGe( xg_parent_ctx, xg_name, xg_filename, xg_scrollbar, xg_menu, xg_navigator, xg_width,
...@@ -333,6 +333,10 @@ XttGeGtk::XttGeGtk( GtkWidget *xg_parent_wid, void *xg_parent_ctx, const char *x ...@@ -333,6 +333,10 @@ XttGeGtk::XttGeGtk( GtkWidget *xg_parent_wid, void *xg_parent_ctx, const char *x
CoWowGtk::SetWindowIcon( toplevel); CoWowGtk::SetWindowIcon( toplevel);
if ( basewidget) {
gtk_window_set_transient_for(GTK_WINDOW(toplevel), GTK_WINDOW(basewidget));
}
if ( xg_menu) { if ( xg_menu) {
GtkAccelGroup *accel_g = (GtkAccelGroup *) g_object_new(GTK_TYPE_ACCEL_GROUP, NULL); GtkAccelGroup *accel_g = (GtkAccelGroup *) g_object_new(GTK_TYPE_ACCEL_GROUP, NULL);
gtk_window_add_accel_group(GTK_WINDOW(toplevel), accel_g); gtk_window_add_accel_group(GTK_WINDOW(toplevel), accel_g);
......
...@@ -66,8 +66,8 @@ class XttGeGtk : public XttGe { ...@@ -66,8 +66,8 @@ class XttGeGtk : public XttGe {
XttGeGtk( GtkWidget *parent_wid, void *parent_ctx, const char *name, const char *filename, XttGeGtk( GtkWidget *parent_wid, void *parent_ctx, const char *name, const char *filename,
int scrollbar, int menu, int navigator, int width, int height, int scrollbar, int menu, int navigator, int width, int height,
int x, int y, double scan_time, const char *object_name, int use_default_access, int x, int y, double scan_time, const char *object_name, int use_default_access,
unsigned int access, unsigned int options, unsigned int access, unsigned int options, void *basewidget,
int (*xg_command_cb) (XttGe *, char *), int (*xg_command_cb) (XttGe *, char *, void *),
int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **), int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **),
int (*xg_is_authorized_cb) (void *, unsigned int)); int (*xg_is_authorized_cb) (void *, unsigned int));
~XttGeGtk(); ~XttGeGtk();
...@@ -76,6 +76,7 @@ class XttGeGtk : public XttGe { ...@@ -76,6 +76,7 @@ class XttGeGtk : public XttGe {
void set_size( int width, int height); void set_size( int width, int height);
void create_confirm_dialog(); void create_confirm_dialog();
void confirm_reply( int ok); void confirm_reply( int ok);
void *get_widget() { return toplevel;}
static void ge_change_value_cb( void *ge_ctx, void *value_object, char *text); static void ge_change_value_cb( void *ge_ctx, void *value_object, char *text);
static void confirm_cb( void *ge_ctx, void *confirm_object, char *text); static void confirm_cb( void *ge_ctx, void *confirm_object, char *text);
......
...@@ -286,14 +286,14 @@ XttGe *XNavGtk::xnav_ge_new( const char *name, const char *filename, int scrollb ...@@ -286,14 +286,14 @@ XttGe *XNavGtk::xnav_ge_new( const char *name, const char *filename, int scrollb
int navigator, int width, int height, int x, int y, int navigator, int width, int height, int x, int y,
double scan_time, const char *object_name, double scan_time, const char *object_name,
int use_default_access, unsigned int access, int use_default_access, unsigned int access,
unsigned int options, unsigned int options, void *basewidget,
int (*command_cb) (XttGe *, char *), int (*command_cb) (XttGe *, char *, void *),
int (*get_current_objects_cb) (void *, pwr_sAttrRef **, int **), int (*get_current_objects_cb) (void *, pwr_sAttrRef **, int **),
int (*is_authorized_cb) (void *, unsigned int)) int (*is_authorized_cb) (void *, unsigned int))
{ {
return new XttGeGtk( parent_wid, this, name, filename, scrollbar, menu, navigator, return new XttGeGtk( parent_wid, this, name, filename, scrollbar, menu, navigator,
width, height, x, y, scan_time, object_name, use_default_access, width, height, x, y, scan_time, object_name, use_default_access,
access, options, command_cb, get_current_objects_cb, is_authorized_cb); access, options, basewidget, command_cb, get_current_objects_cb, is_authorized_cb);
} }
GeCurve *XNavGtk::gecurve_new( char *name, char *filename, GeCurveData *data, GeCurve *XNavGtk::gecurve_new( char *name, char *filename, GeCurveData *data,
......
...@@ -89,7 +89,8 @@ class XNavGtk : public XNav { ...@@ -89,7 +89,8 @@ class XNavGtk : public XNav {
int navigator, int width, int height, int x, int y, int navigator, int width, int height, int x, int y,
double scan_time, const char *object_name, double scan_time, const char *object_name,
int use_default_access, unsigned int access, unsigned int options, int use_default_access, unsigned int access, unsigned int options,
int (*xg_command_cb) (XttGe *, char *), void *basewidget,
int (*xg_command_cb) (XttGe *, char *, void *),
int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **), int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **),
int (*xg_is_authorized_cb) (void *, unsigned int)); int (*xg_is_authorized_cb) (void *, unsigned int));
GeCurve *gecurve_new( char *name, char *filename, GeCurveData *data, GeCurve *gecurve_new( char *name, char *filename, GeCurveData *data,
......
...@@ -314,7 +314,7 @@ XttGeMotif::XttGeMotif( Widget xg_parent_wid, void *xg_parent_ctx, const char *x ...@@ -314,7 +314,7 @@ XttGeMotif::XttGeMotif( Widget xg_parent_wid, void *xg_parent_ctx, const char *x
int xg_navigator, int xg_width, int xg_height, int x, int y, int xg_navigator, int xg_width, int xg_height, int x, int y,
double scan_time, const char *object_name, double scan_time, const char *object_name,
int use_default_access, unsigned int access, unsigned int options, int use_default_access, unsigned int access, unsigned int options,
int (*xg_command_cb) (XttGe *, char *), int (*xg_command_cb) (XttGe *, char *, void *),
int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **), int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **),
int (*xg_is_authorized_cb) (void *, unsigned int)) : int (*xg_is_authorized_cb) (void *, unsigned int)) :
XttGe( xg_parent_ctx, xg_name, xg_filename, xg_scrollbar, xg_menu, xg_navigator, xg_width, XttGe( xg_parent_ctx, xg_name, xg_filename, xg_scrollbar, xg_menu, xg_navigator, xg_width,
......
...@@ -62,7 +62,7 @@ class XttGeMotif : public XttGe { ...@@ -62,7 +62,7 @@ class XttGeMotif : public XttGe {
int scrollbar, int menu, int navigator, int width, int height, int scrollbar, int menu, int navigator, int width, int height,
int x, int y, double scan_time, const char *object_name, int use_default_access, int x, int y, double scan_time, const char *object_name, int use_default_access,
unsigned int access, unsigned int options, unsigned int access, unsigned int options,
int (*xg_command_cb) (XttGe *, char *), int (*xg_command_cb) (XttGe *, char *, void *),
int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **), int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **),
int (*xg_is_authorized_cb) (void *, unsigned int)); int (*xg_is_authorized_cb) (void *, unsigned int));
~XttGeMotif(); ~XttGeMotif();
......
...@@ -292,7 +292,8 @@ XttGe *XNavMotif::xnav_ge_new( const char *name, const char *filename, int scrol ...@@ -292,7 +292,8 @@ XttGe *XNavMotif::xnav_ge_new( const char *name, const char *filename, int scrol
int navigator, int width, int height, int x, int y, int navigator, int width, int height, int x, int y,
double scan_time, const char *object_name, double scan_time, const char *object_name,
int use_default_access, unsigned int access, unsigned int options, int use_default_access, unsigned int access, unsigned int options,
int (*command_cb) (XttGe *, char *), void *basewidget,
int (*command_cb) (XttGe *, char *, void *),
int (*get_current_objects_cb) (void *, pwr_sAttrRef **, int **), int (*get_current_objects_cb) (void *, pwr_sAttrRef **, int **),
int (*is_authorized_cb) (void *, unsigned int)) int (*is_authorized_cb) (void *, unsigned int))
{ {
......
...@@ -83,7 +83,8 @@ class XNavMotif : public XNav { ...@@ -83,7 +83,8 @@ class XNavMotif : public XNav {
int navigator, int width, int height, int x, int y, int navigator, int width, int height, int x, int y,
double scan_time, const char *object_name, double scan_time, const char *object_name,
int use_default_access, unsigned int access, unsigned int options, int use_default_access, unsigned int access, unsigned int options,
int (*xg_command_cb) (XttGe *, char *), void *basewidget,
int (*xg_command_cb) (XttGe *, char *, void *),
int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **), int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **),
int (*xg_is_authorized_cb) (void *, unsigned int)); int (*xg_is_authorized_cb) (void *, unsigned int));
GeCurve *gecurve_new( char *name, char *filename, GeCurveData *data, GeCurve *gecurve_new( char *name, char *filename, GeCurveData *data,
......
...@@ -1961,7 +1961,7 @@ static pwr_tStatus CrrOpenTraceFilter( xmenu_sMenuCall *ip) ...@@ -1961,7 +1961,7 @@ static pwr_tStatus CrrOpenTraceFilter( xmenu_sMenuCall *ip)
// Open graph // Open graph
static pwr_tStatus CrrOpenGraph( xmenu_sMenuCall *ip) static pwr_tStatus CrrOpenGraph( xmenu_sMenuCall *ip)
{ {
((XNav *)ip->EditorContext)->exec_xttgraph( ip->Pointed.Objid, 0, 0, 0, 0, 0, 0); ((XNav *)ip->EditorContext)->exec_xttgraph( ip->Pointed.Objid, 0, 0, 0, 0, 0, 0, 0);
return XNAV__SUCCESS; return XNAV__SUCCESS;
} }
......
...@@ -97,7 +97,7 @@ int XttGe::ge_command_cb( void *ge_ctx, char *cmd) ...@@ -97,7 +97,7 @@ int XttGe::ge_command_cb( void *ge_ctx, char *cmd)
if ( ge->command_cb) if ( ge->command_cb)
{ {
sts = (ge->command_cb)( ge, cmd); sts = (ge->command_cb)( ge, cmd, ge_ctx);
return sts; return sts;
} }
return 0; return 0;
...@@ -247,7 +247,7 @@ XttGe::XttGe( void *xg_parent_ctx, const char *xg_name, const char *xg_filename, ...@@ -247,7 +247,7 @@ XttGe::XttGe( void *xg_parent_ctx, const char *xg_name, const char *xg_filename,
int xg_scrollbar, int xg_menu, int xg_navigator, int xg_width, int xg_height, int xg_scrollbar, int xg_menu, int xg_navigator, int xg_width, int xg_height,
int x, int y, double scan_time, const char *object_name, int x, int y, double scan_time, const char *object_name,
int use_default_access, unsigned int access, int use_default_access, unsigned int access,
int (*xg_command_cb) (XttGe *, char *), int (*xg_command_cb) (XttGe *, char *, void *),
int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **), int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **),
int (*xg_is_authorized_cb) (void *, unsigned int)) : int (*xg_is_authorized_cb) (void *, unsigned int)) :
parent_ctx(xg_parent_ctx), scrollbar(xg_scrollbar), parent_ctx(xg_parent_ctx), scrollbar(xg_scrollbar),
......
...@@ -57,7 +57,7 @@ class XttGe { ...@@ -57,7 +57,7 @@ class XttGe {
void *current_confirm_object; void *current_confirm_object;
int value_input_open; int value_input_open;
int confirm_open; int confirm_open;
int (*command_cb)(XttGe *, char *); int (*command_cb)(XttGe *, char *, void *);
void (*close_cb)(XttGe *); void (*close_cb)(XttGe *);
void (*help_cb)(XttGe *, const char *key); void (*help_cb)(XttGe *, const char *key);
void (*display_in_xnav_cb)(void *, pwr_sAttrRef *); void (*display_in_xnav_cb)(void *, pwr_sAttrRef *);
...@@ -76,7 +76,7 @@ class XttGe { ...@@ -76,7 +76,7 @@ class XttGe {
int scrollbar, int menu, int navigator, int width, int height, int scrollbar, int menu, int navigator, int width, int height,
int x, int y, double scan_time, const char *object_name, int use_default_access, int x, int y, double scan_time, const char *object_name, int use_default_access,
unsigned int access, unsigned int access,
int (*xg_command_cb) (XttGe *, char *), int (*xg_command_cb) (XttGe *, char *, void *),
int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **), int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **),
int (*xg_is_authorized_cb) (void *, unsigned int)); int (*xg_is_authorized_cb) (void *, unsigned int));
virtual ~XttGe(); virtual ~XttGe();
...@@ -84,6 +84,7 @@ class XttGe { ...@@ -84,6 +84,7 @@ class XttGe {
virtual void pop() {} virtual void pop() {}
virtual void set_size( int width, int height) {} virtual void set_size( int width, int height) {}
virtual void confirm_reply( int ok) {} virtual void confirm_reply( int ok) {}
virtual void *get_widget() { return 0;}
void message( char severity, const char *msg); void message( char severity, const char *msg);
void print(); void print();
......
...@@ -1457,7 +1457,7 @@ int ItemFile::open_children( XNavBrow *brow, double x, double y) ...@@ -1457,7 +1457,7 @@ int ItemFile::open_children( XNavBrow *brow, double x, double y)
break; break;
} }
case item_eFileType_Graph: case item_eFileType_Graph:
xnav->open_graph( name, file_name, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); xnav->open_graph( name, file_name, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
break; break;
case item_eFileType_RttLog: case item_eFileType_RttLog:
xnav->open_rttlog( name, file_name); xnav->open_rttlog( name, file_name);
......
...@@ -360,6 +360,7 @@ class XNav { ...@@ -360,6 +360,7 @@ class XNav {
CoLogin *cologin; CoLogin *cologin;
sevcli_tCtx scctx; sevcli_tCtx scctx;
XColWind *last_xcolwind; XColWind *last_xcolwind;
void *current_gectx;
virtual void set_inputfocus() {} virtual void set_inputfocus() {}
virtual void pop() {} virtual void pop() {}
...@@ -394,7 +395,8 @@ class XNav { ...@@ -394,7 +395,8 @@ class XNav {
int navigator, int width, int height, int x, int y, int navigator, int width, int height, int x, int y,
double scan_time, const char *object_name, double scan_time, const char *object_name,
int use_default_access, unsigned int access, unsigned int options, int use_default_access, unsigned int access, unsigned int options,
int (*xg_command_cb) (XttGe *, char *), void *basewidget,
int (*xg_command_cb) (XttGe *, char *, void *),
int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **), int (*xg_get_current_objects_cb) (void *, pwr_sAttrRef **, int **),
int (*xg_is_authorized_cb) (void *, unsigned int)) {return 0;} int (*xg_is_authorized_cb) (void *, unsigned int)) {return 0;}
virtual GeCurve *gecurve_new( char *name, char *filename, GeCurveData *data, virtual GeCurve *gecurve_new( char *name, char *filename, GeCurveData *data,
...@@ -538,11 +540,11 @@ class XNav { ...@@ -538,11 +540,11 @@ class XNav {
void open_graph( const char *name, const char *filename, int scrollbar, int menu, void open_graph( const char *name, const char *filename, int scrollbar, int menu,
int navigator, int width, int height, int x, int y, const char *object_name, int navigator, int width, int height, int x, int y, const char *object_name,
const char *focus, int inputempty, int use_default_access, const char *focus, int inputempty, int use_default_access,
unsigned int access, unsigned int options); unsigned int access, unsigned int options, void *basewidget);
void close_graph( char *filename, char *object_name); void close_graph( char *filename, char *object_name);
int exec_xttgraph( pwr_tObjid xttgraph, char *instance, int exec_xttgraph( pwr_tObjid xttgraph, char *instance,
char *focus, int inputempty, char *focus, int inputempty, int use_default_access, unsigned int access,
int use_default_access, unsigned int access, unsigned int options); unsigned int options, void *basewidget);
void ge_event_exec( int type, char *name, char *instance, void *event, unsigned int size); void ge_event_exec( int type, char *name, char *instance, void *event, unsigned int size);
int set_parameter( char *name_str, char *value_str, int bypass); int set_parameter( char *name_str, char *value_str, int bypass);
void open_rttlog( char *name, char *filename); void open_rttlog( char *name, char *filename);
......
...@@ -158,7 +158,7 @@ static int xnav_attribute_func ( ...@@ -158,7 +158,7 @@ static int xnav_attribute_func (
ccm_tFloat *return_float, ccm_tFloat *return_float,
ccm_tInt *return_int, ccm_tInt *return_int,
char *return_string); char *return_string);
static int xnav_ge_command_cb( XttGe *gectx, char *command); static int xnav_ge_command_cb( XttGe *gectx, char *command, void *caller);
static void xnav_ge_close_cb( XttGe *gectx); static void xnav_ge_close_cb( XttGe *gectx);
//new code by Jonas Nylund 030131 //new code by Jonas Nylund 030131
static void xnav_hist_close_cb( void *ctx); static void xnav_hist_close_cb( void *ctx);
...@@ -262,7 +262,8 @@ dcli_tCmdTable xnav_command_table[] = { ...@@ -262,7 +262,8 @@ dcli_tCmdTable xnav_command_table[] = {
"/SCROLLBAR", "/WIDTH", "/HEIGHT", "/MENU", "/SCROLLBAR", "/WIDTH", "/HEIGHT", "/MENU",
"/NAVIGATOR", "/CENTER", "/OBJECT", "/NEW", "/NAVIGATOR", "/CENTER", "/OBJECT", "/NEW",
"/INSTANCE", "/COLLECT", "/FOCUS", "/INPUTEMPTY", "/INSTANCE", "/COLLECT", "/FOCUS", "/INPUTEMPTY",
"/ENTRY", "/TITLE", "/ACCESS", "/CLASSGRAPH", "/PARENT", "/BYPASS", "/ENTRY", "/TITLE", "/ACCESS", "/CLASSGRAPH", "/PARENT", "/PWINDOW",
"/PINSTANCE", "/BYPASS",
"/CLOSEBUTTON", "/TARGET", "/TRIGGER", "/TYPE", "/FTYPE", "/CLOSEBUTTON", "/TARGET", "/TRIGGER", "/TYPE", "/FTYPE",
"/FULLSCREEN", "/MAXIMIZE", "/FULLMAXIMIZE", "/ICONIFY", "/HIDE", ""} "/FULLSCREEN", "/MAXIMIZE", "/FULLMAXIMIZE", "/ICONIFY", "/HIDE", ""}
}, },
...@@ -2528,6 +2529,10 @@ static int xnav_open_func( void *client_data, ...@@ -2528,6 +2529,10 @@ static int xnav_open_func( void *client_data,
int parent; int parent;
pwr_tStatus sts; pwr_tStatus sts;
unsigned int options = 0; unsigned int options = 0;
pwr_tFileName pwindow_str;
pwr_tAName pinstance_str;
void *basewidget = 0;
parent = ODD( dcli_get_qualifier( "/PARENT", 0, 0)); parent = ODD( dcli_get_qualifier( "/PARENT", 0, 0));
...@@ -2542,6 +2547,27 @@ static int xnav_open_func( void *client_data, ...@@ -2542,6 +2547,27 @@ static int xnav_open_func( void *client_data,
if ( ODD( dcli_get_qualifier( "/HIDE", 0, 0))) if ( ODD( dcli_get_qualifier( "/HIDE", 0, 0)))
options |= ge_mOptions_Invisible; options |= ge_mOptions_Invisible;
if ( ODD( dcli_get_qualifier( "/PWINDOW", pwindow_str, sizeof(pwindow_str)))) {
char *pinstance_p = 0;
XttGe *gectx;
if ( cdh_NoCaseStrcmp(pwindow_str, "$current") == 0) {
pwr_tFileName name;
pwr_tAName inst;
if ( xnav->appl.find( applist_eType_Graph, xnav->current_gectx, name, inst))
basewidget = ((XttGe *)xnav->current_gectx)->get_widget();
}
else {
if ( ODD( dcli_get_qualifier( "/PINSTANCE", pinstance_str, sizeof(pinstance_str)))) {
pinstance_p = pinstance_str;
}
if ( xnav->appl.find( applist_eType_Graph, pwindow_str, pinstance_p,
(void **) &gectx))
basewidget = gectx->get_widget();
}
}
if ( ODD( dcli_get_qualifier( "/INSTANCE", instance_str, sizeof(instance_str)))) { if ( ODD( dcli_get_qualifier( "/INSTANCE", instance_str, sizeof(instance_str)))) {
instance_p = instance_str; instance_p = instance_str;
...@@ -2677,7 +2703,7 @@ static int xnav_open_func( void *client_data, ...@@ -2677,7 +2703,7 @@ static int xnav_open_func( void *client_data,
use_default_access = 0; use_default_access = 0;
xnav->exec_xttgraph( objid, instance_p, focus_p, inputempty, use_default_access, access, xnav->exec_xttgraph( objid, instance_p, focus_p, inputempty, use_default_access, access,
options); options, basewidget);
} }
else { else {
pwr_tFileName file_str; pwr_tFileName file_str;
...@@ -2700,7 +2726,7 @@ static int xnav_open_func( void *client_data, ...@@ -2700,7 +2726,7 @@ static int xnav_open_func( void *client_data,
navigator = ODD( dcli_get_qualifier( "/NAVIGATOR", 0, 0)); navigator = ODD( dcli_get_qualifier( "/NAVIGATOR", 0, 0));
xnav->open_graph( "Collect", "_none_", scrollbar, menu, navigator, xnav->open_graph( "Collect", "_none_", scrollbar, menu, navigator,
0, 0, 0, 0, "collect", NULL, 0, 0, 0, options); 0, 0, 0, 0, "collect", NULL, 0, 0, 0, options, basewidget);
return XNAV__SUCCESS; return XNAV__SUCCESS;
} }
if ( ODD( dcli_get_qualifier( "dcli_arg2", file_str, sizeof(file_str)))) { if ( ODD( dcli_get_qualifier( "dcli_arg2", file_str, sizeof(file_str)))) {
...@@ -2834,7 +2860,7 @@ static int xnav_open_func( void *client_data, ...@@ -2834,7 +2860,7 @@ static int xnav_open_func( void *client_data,
xnav->open_graph( name_str, file_str, scrollbar, menu, navigator, xnav->open_graph( name_str, file_str, scrollbar, menu, navigator,
width, height, 0, 0, instance_p, focus_p, inputempty, width, height, 0, 0, instance_p, focus_p, inputempty,
use_default_access, access, options); use_default_access, access, options, basewidget);
return XNAV__SUCCESS; return XNAV__SUCCESS;
} }
} }
...@@ -4235,8 +4261,9 @@ static void xnav_ge_help_cb( XttGe *gectx, const char *key) ...@@ -4235,8 +4261,9 @@ static void xnav_ge_help_cb( XttGe *gectx, const char *key)
xnav->message( ' ', null_str); xnav->message( ' ', null_str);
} }
static int xnav_ge_command_cb( XttGe *gectx, char *command) static int xnav_ge_command_cb( XttGe *gectx, char *command, void *caller)
{ {
((XNav *)gectx->parent_ctx)->current_gectx = caller;
((XNav *)gectx->parent_ctx)->command( command); ((XNav *)gectx->parent_ctx)->command( command);
return ((XNav *)gectx->parent_ctx)->get_command_sts(); return ((XNav *)gectx->parent_ctx)->get_command_sts();
} }
...@@ -7586,7 +7613,7 @@ static int xnav_ge_get_current_objects_cb( void *vxnav, pwr_sAttrRef **alist, ...@@ -7586,7 +7613,7 @@ static int xnav_ge_get_current_objects_cb( void *vxnav, pwr_sAttrRef **alist,
void XNav::open_graph( const char *name, const char *filename, int scrollbar, int menu, void XNav::open_graph( const char *name, const char *filename, int scrollbar, int menu,
int navigator, int width, int height, int x, int y, int navigator, int width, int height, int x, int y,
const char *object_name, const char *focus_name, int input_focus_empty, const char *object_name, const char *focus_name, int input_focus_empty,
int use_default_access, unsigned int access, unsigned int options) int use_default_access, unsigned int access, unsigned int options, void *basewidget)
{ {
XttGe *gectx; XttGe *gectx;
...@@ -7600,7 +7627,7 @@ void XNav::open_graph( const char *name, const char *filename, int scrollbar, in ...@@ -7600,7 +7627,7 @@ void XNav::open_graph( const char *name, const char *filename, int scrollbar, in
{ {
gectx = xnav_ge_new( name, filename, gectx = xnav_ge_new( name, filename,
scrollbar, menu, navigator, width, height, x, y, gbl.scantime, scrollbar, menu, navigator, width, height, x, y, gbl.scantime,
object_name, use_default_access, access, options, object_name, use_default_access, access, options, basewidget,
&xnav_ge_command_cb, &xnav_ge_command_cb,
&xnav_ge_get_current_objects_cb, &xnav_ge_is_authorized_cb); &xnav_ge_get_current_objects_cb, &xnav_ge_is_authorized_cb);
gectx->close_cb = xnav_ge_close_cb; gectx->close_cb = xnav_ge_close_cb;
...@@ -7632,7 +7659,7 @@ void XNav::close_graph( char *filename, char *object_name) ...@@ -7632,7 +7659,7 @@ void XNav::close_graph( char *filename, char *object_name)
int XNav::exec_xttgraph( pwr_tObjid xttgraph, char *instance, int XNav::exec_xttgraph( pwr_tObjid xttgraph, char *instance,
char *focus, int inputempty, char *focus, int inputempty,
int use_default_access, unsigned int access, int use_default_access, unsigned int access,
unsigned int options) unsigned int options, void *basewidget)
{ {
pwr_sClass_XttGraph xttgraph_o; pwr_sClass_XttGraph xttgraph_o;
char action[80]; char action[80];
...@@ -7678,7 +7705,7 @@ int XNav::exec_xttgraph( pwr_tObjid xttgraph, char *instance, ...@@ -7678,7 +7705,7 @@ int XNav::exec_xttgraph( pwr_tObjid xttgraph, char *instance,
open_graph( xttgraph_o.Title, action, scrollbars, open_graph( xttgraph_o.Title, action, scrollbars,
menu, navigator, xttgraph_o.Width, menu, navigator, xttgraph_o.Width,
xttgraph_o.Height, xttgraph_o.X, xttgraph_o.Y, instance, xttgraph_o.Height, xttgraph_o.X, xttgraph_o.Y, instance,
focus, inputempty, use_default_access, access, options); focus, inputempty, use_default_access, access, options, basewidget);
} }
else if ( (strstr( action, ".class"))) else if ( (strstr( action, ".class")))
{ {
......
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