Commit 8109746a authored by claes's avatar claes

*** empty log message ***

parent 6b752c9c
...@@ -257,7 +257,7 @@ static int adminnav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -257,7 +257,7 @@ static int adminnav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( adminnav->brow->ctx); brow_SelectClear( adminnav->brow->ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( adminnav->brow->ctx, object); brow_SelectInsert( adminnav->brow->ctx, object);
if ( !brow_IsVisible( adminnav->brow->ctx, object)) if ( !brow_IsVisible( adminnav->brow->ctx, object, flow_eVisible_Full))
brow_CenterObject( adminnav->brow->ctx, object, 0.25); brow_CenterObject( adminnav->brow->ctx, object, 0.25);
if ( node_count) if ( node_count)
free( node_list); free( node_list);
...@@ -293,7 +293,7 @@ static int adminnav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -293,7 +293,7 @@ static int adminnav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( adminnav->brow->ctx); brow_SelectClear( adminnav->brow->ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( adminnav->brow->ctx, object); brow_SelectInsert( adminnav->brow->ctx, object);
if ( !brow_IsVisible( adminnav->brow->ctx, object)) if ( !brow_IsVisible( adminnav->brow->ctx, object, flow_eVisible_Full))
brow_CenterObject( adminnav->brow->ctx, object, 0.75); brow_CenterObject( adminnav->brow->ctx, object, 0.75);
if ( node_count) if ( node_count)
free( node_list); free( node_list);
...@@ -386,7 +386,7 @@ static int adminnav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -386,7 +386,7 @@ static int adminnav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( adminnav->brow->ctx); brow_SelectClear( adminnav->brow->ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( adminnav->brow->ctx, object); brow_SelectInsert( adminnav->brow->ctx, object);
if ( !brow_IsVisible( adminnav->brow->ctx, object)) if ( !brow_IsVisible( adminnav->brow->ctx, object, flow_eVisible_Full))
brow_CenterObject( adminnav->brow->ctx, object, 0.25); brow_CenterObject( adminnav->brow->ctx, object, 0.25);
free( node_list); free( node_list);
break; break;
......
...@@ -180,6 +180,9 @@ XmAnyCallbackStruct *data; ...@@ -180,6 +180,9 @@ XmAnyCallbackStruct *data;
sts = vldh_wind_save( foectx->grectx->wind); sts = vldh_wind_save( foectx->grectx->wind);
foe_enable_ldh_cb(foectx); foe_enable_ldh_cb(foectx);
error_msg( sts); error_msg( sts);
gre_save(foectx->grectx, 0);
NORMAL_CURSOR; NORMAL_CURSOR;
if ( ODD(sts)) if ( ODD(sts))
...@@ -2952,6 +2955,9 @@ static void foe_exit_save( ...@@ -2952,6 +2955,9 @@ static void foe_exit_save(
foe_disable_ldh_cb(foectx); foe_disable_ldh_cb(foectx);
sts = vldh_wind_save( foectx->grectx->wind); sts = vldh_wind_save( foectx->grectx->wind);
error_msg( sts); error_msg( sts);
gre_save(foectx->grectx, 0);
NORMAL_CURSOR; NORMAL_CURSOR;
if ( sts == VLDH__PLCNOTSAVED ) if ( sts == VLDH__PLCNOTSAVED )
{ {
......
...@@ -1847,8 +1847,10 @@ int foe_new_local( ...@@ -1847,8 +1847,10 @@ int foe_new_local(
foectx->classeditor = 1; foectx->classeditor = 1;
if ( foectx->access == foe_eFuncAccess_Edit) if ( foectx->access == foe_eFuncAccess_Edit)
foe_edit_set_entries ( foectx); foe_edit_set_entries ( foectx);
/* Write document headers /CJ 050415 */
gre_init_docobjects( foectx->grectx);
return FOE__SUCCESS; return FOE__SUCCESS;
} }
...@@ -2911,7 +2913,7 @@ int foe_print_overview ( ...@@ -2911,7 +2913,7 @@ int foe_print_overview (
if ( EVEN(sts)) return sts; if ( EVEN(sts)) return sts;
/* Init the document objects */ /* Init the document objects */
gre_init_docobjects( foectx->grectx); // gre_init_docobjects( foectx->grectx);
doc_count = 0; doc_count = 0;
node_ptr = nodelist; node_ptr = nodelist;
...@@ -2977,7 +2979,7 @@ int foe_print_document( ...@@ -2977,7 +2979,7 @@ int foe_print_document(
sts = vldh_get_nodes( wind, &node_count, &nodelist); sts = vldh_get_nodes( wind, &node_count, &nodelist);
if ( EVEN(sts)) return sts; if ( EVEN(sts)) return sts;
gre_init_docobjects( foectx->grectx); // gre_init_docobjects( foectx->grectx);
doc_count = 0; doc_count = 0;
node_ptr = nodelist; node_ptr = nodelist;
...@@ -3031,7 +3033,7 @@ int foe_print_selected_document( ...@@ -3031,7 +3033,7 @@ int foe_print_selected_document(
if ( EVEN(sts)) return sts; if ( EVEN(sts)) return sts;
gre_unselect( foectx->grectx); gre_unselect( foectx->grectx);
gre_init_docobjects( foectx->grectx); // gre_init_docobjects( foectx->grectx);
doc_count = 0; doc_count = 0;
node_ptr = nodelist; node_ptr = nodelist;
...@@ -3444,6 +3446,8 @@ static void foe_edit_exit_save( ...@@ -3444,6 +3446,8 @@ static void foe_edit_exit_save(
return; return;
} }
gre_save(foectx->grectx, 0);
/* Change the funktion */ /* Change the funktion */
switch( foectx->wanted_function) switch( foectx->wanted_function)
{ {
......
...@@ -1154,6 +1154,9 @@ int gre_undelete( ...@@ -1154,6 +1154,9 @@ int gre_undelete(
sts = goec_con_draw( grectx, grectx->del_con_list[i], GRE_CON_CREATE, sts = goec_con_draw( grectx, grectx->del_con_list[i], GRE_CON_CREATE,
0); 0);
} }
/* Update header /CJ 050415 */
gre_init_docobjects(grectx);
grectx->del_node_count = 0; grectx->del_node_count = 0;
grectx->del_con_count = 0; grectx->del_con_count = 0;
...@@ -3084,6 +3087,12 @@ int gre_create_node( ...@@ -3084,6 +3087,12 @@ int gre_create_node(
UPDATE_SCREEN UPDATE_SCREEN
*node = node_object; *node = node_object;
/* Update header /CJ 050415 */
if (class == pwr_cClass_Document) {
gre_init_docobjects(grectx);
}
return GRE__SUCCESS; return GRE__SUCCESS;
} }
...@@ -3391,6 +3400,9 @@ void gre_paste ( ...@@ -3391,6 +3400,9 @@ void gre_paste (
flow_Paste( grectx->flow_ctx); flow_Paste( grectx->flow_ctx);
flow_SetSelectHighlight( grectx->flow_ctx); flow_SetSelectHighlight( grectx->flow_ctx);
/* Update header /CJ 050415 */
gre_init_docobjects(grectx);
} }
...@@ -3853,6 +3865,10 @@ int gre_node_update ( ...@@ -3853,6 +3865,10 @@ int gre_node_update (
gre_message ( grectx, message); gre_message ( grectx, message);
BEEP; BEEP;
} }
/* Update the document headers /CJ 050415 */
gre_init_docobjects( grectx);
return GRE__SUCCESS; return GRE__SUCCESS;
} }
...@@ -4163,6 +4179,8 @@ int gre_init_docobjects( ...@@ -4163,6 +4179,8 @@ int gre_init_docobjects(
vldh_t_node *node_ptr; vldh_t_node *node_ptr;
int i; int i;
char *parvalue; char *parvalue;
pwr_tTime mod_time;
pwr_tTime *mod_time_ptr;
wind = grectx->wind; wind = grectx->wind;
plc = wind->hw.plc; plc = wind->hw.plc;
...@@ -4173,7 +4191,15 @@ int gre_init_docobjects( ...@@ -4173,7 +4191,15 @@ int gre_init_docobjects(
sts = vldh_get_nodes( wind, &node_count, &nodelist); sts = vldh_get_nodes( wind, &node_count, &nodelist);
if ( EVEN(sts)) return sts; if ( EVEN(sts)) return sts;
/* Loop all nodes once first in order to count documents. /CJ 050415 */
doc_count = 0; doc_count = 0;
node_ptr = nodelist;
for ( i = 0; i < node_count; i++)
{
if ( vldh_check_document( wind->hw.ldhses, (*node_ptr)->ln.oid)) doc_count++;
node_ptr++;
}
node_ptr = nodelist; node_ptr = nodelist;
for ( i = 0; i < node_count; i++) for ( i = 0; i < node_count; i++)
{ {
...@@ -4181,7 +4207,6 @@ int gre_init_docobjects( ...@@ -4181,7 +4207,6 @@ int gre_init_docobjects(
(*node_ptr)->ln.oid)) (*node_ptr)->ln.oid))
{ {
doc_obj = *node_ptr; doc_obj = *node_ptr;
doc_count++;
/* System name in annotation nr 0 */ /* System name in annotation nr 0 */
flow_SetAnnotation( doc_obj->hn.node_id, 0, systemname, flow_SetAnnotation( doc_obj->hn.node_id, 0, systemname,
...@@ -4223,12 +4248,22 @@ int gre_init_docobjects( ...@@ -4223,12 +4248,22 @@ int gre_init_docobjects(
free((char *) parvalue); free((char *) parvalue);
} }
/* Time in annot 4 */ /* PLC Window's Modified Time in annot 4 */
time_AtoAscii(NULL, time_eFormat_DateAndTime, mod_time_ptr = NULL;
timstr, sizeof(timstr)); sts = ldh_GetObjectPar( wind->hw.ldhses,
wind->lw.oid,
"DevBody", "Modified",
(char **)&mod_time_ptr, &size);
if (ODD(sts)) {
memcpy(&mod_time, mod_time_ptr, sizeof(mod_time));
free((char *) mod_time_ptr);
mod_time_ptr = &mod_time;
}
time_AtoAscii(mod_time_ptr, time_eFormat_DateAndTime, timstr, sizeof(timstr));
timstr[strlen(timstr) - 6] = '\0'; timstr[strlen(timstr) - 6] = '\0';
flow_SetAnnotation( doc_obj->hn.node_id, 4, timstr, flow_SetAnnotation( doc_obj->hn.node_id, 4, timstr, strlen(timstr));
strlen(timstr));
/* Signature in annotations nr 5 */ /* Signature in annotations nr 5 */
sts = ldh_GetObjectPar( wind->hw.ldhses, sts = ldh_GetObjectPar( wind->hw.ldhses,
...@@ -4432,6 +4467,9 @@ int gre_save( gre_ctx grectx, char *filename) ...@@ -4432,6 +4467,9 @@ int gre_save( gre_ctx grectx, char *filename)
char fname[200]; char fname[200];
int sts; int sts;
/* Update document headers before saving flow file /CJ 050415 */
gre_init_docobjects(grectx);
if ( !filename) { if ( !filename) {
sprintf( fname, "pwrp_load:pwr_%s.flw", sprintf( fname, "pwrp_load:pwr_%s.flw",
vldh_IdToStr(0, grectx->wind->lw.oid)); vldh_IdToStr(0, grectx->wind->lw.oid));
......
...@@ -945,7 +945,7 @@ static int nav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -945,7 +945,7 @@ static int nav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( nav->brow_ctx); brow_SelectClear( nav->brow_ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( nav->brow_ctx, object); brow_SelectInsert( nav->brow_ctx, object);
if ( !brow_IsVisible( nav->brow_ctx, object)) if ( !brow_IsVisible( nav->brow_ctx, object, flow_eVisible_Full))
brow_CenterObject( nav->brow_ctx, object, 0.25); brow_CenterObject( nav->brow_ctx, object, 0.25);
if ( node_count) if ( node_count)
free( node_list); free( node_list);
...@@ -987,7 +987,7 @@ static int nav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -987,7 +987,7 @@ static int nav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( nav->brow_ctx); brow_SelectClear( nav->brow_ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( nav->brow_ctx, object); brow_SelectInsert( nav->brow_ctx, object);
if ( !brow_IsVisible( nav->brow_ctx, object)) if ( !brow_IsVisible( nav->brow_ctx, object, flow_eVisible_Full))
brow_CenterObject( nav->brow_ctx, object, 0.75); brow_CenterObject( nav->brow_ctx, object, 0.75);
if ( node_count) if ( node_count)
free( node_list); free( node_list);
...@@ -1079,7 +1079,7 @@ static int nav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -1079,7 +1079,7 @@ static int nav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( nav->brow_ctx); brow_SelectClear( nav->brow_ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( nav->brow_ctx, object); brow_SelectInsert( nav->brow_ctx, object);
if ( !brow_IsVisible( nav->brow_ctx, object)) if ( !brow_IsVisible( nav->brow_ctx, object, flow_eVisible_Full))
brow_CenterObject( nav->brow_ctx, object, 0.25); brow_CenterObject( nav->brow_ctx, object, 0.25);
free( node_list); free( node_list);
nav->last_selected = object; nav->last_selected = object;
......
...@@ -1158,7 +1158,7 @@ static int pal_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -1158,7 +1158,7 @@ static int pal_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( pal->brow_ctx); brow_SelectClear( pal->brow_ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( pal->brow_ctx, object); brow_SelectInsert( pal->brow_ctx, object);
if ( !brow_IsVisible( pal->brow_ctx, object)) if ( !brow_IsVisible( pal->brow_ctx, object, flow_eVisible_Full))
brow_CenterObject( pal->brow_ctx, object, 0.25); brow_CenterObject( pal->brow_ctx, object, 0.25);
if ( node_count) if ( node_count)
free( node_list); free( node_list);
...@@ -1200,7 +1200,7 @@ static int pal_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -1200,7 +1200,7 @@ static int pal_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( pal->brow_ctx); brow_SelectClear( pal->brow_ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( pal->brow_ctx, object); brow_SelectInsert( pal->brow_ctx, object);
if ( !brow_IsVisible( pal->brow_ctx, object)) if ( !brow_IsVisible( pal->brow_ctx, object, flow_eVisible_Full))
brow_CenterObject( pal->brow_ctx, object, 0.75); brow_CenterObject( pal->brow_ctx, object, 0.75);
if ( node_count) if ( node_count)
free( node_list); free( node_list);
...@@ -1276,7 +1276,7 @@ static int pal_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -1276,7 +1276,7 @@ static int pal_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( pal->brow_ctx); brow_SelectClear( pal->brow_ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( pal->brow_ctx, object); brow_SelectInsert( pal->brow_ctx, object);
if ( !brow_IsVisible( pal->brow_ctx, object)) if ( !brow_IsVisible( pal->brow_ctx, object, flow_eVisible_Full))
brow_CenterObject( pal->brow_ctx, object, 0.25); brow_CenterObject( pal->brow_ctx, object, 0.25);
free( node_list); free( node_list);
pal->last_selected = object; pal->last_selected = object;
......
...@@ -1147,7 +1147,7 @@ int trv_get_objects_hcn ( ...@@ -1147,7 +1147,7 @@ int trv_get_objects_hcn (
pwr_tObjid hierobjdid, pwr_tObjid hierobjdid,
pwr_tClassId *classid, pwr_tClassId *classid,
char *name, char *name,
int (*backcall)( pwr_tObjid, void *, void *, void *, void *, void *), int (*backcall)( pwr_sAttrRef *, void *, void *, void *, void *, void *),
void *arg1, void *arg1,
void *arg2, void *arg2,
void *arg3, void *arg3,
......
...@@ -93,7 +93,7 @@ int trv_get_objects_hcn ( ...@@ -93,7 +93,7 @@ int trv_get_objects_hcn (
pwr_tObjid hierobjdid, pwr_tObjid hierobjdid,
pwr_tClassId *classid, pwr_tClassId *classid,
char *name, char *name,
int (*backcall)( pwr_tObjid, void *, void *, void *, void *, void*), int (*backcall)( pwr_sAttrRef *, void *, void *, void *, void *, void*),
void *arg1, void *arg1,
void *arg2, void *arg2,
void *arg3, void *arg3,
......
...@@ -409,7 +409,7 @@ static void uted_activate_helputils ( ...@@ -409,7 +409,7 @@ static void uted_activate_helputils (
XmAnyCallbackStruct *data XmAnyCallbackStruct *data
) )
{ {
xhelp_help( "utilities", 0, navh_eHelpFile_Base, 0, 1); xhelp_help( "utilities_refman", 0, navh_eHelpFile_Other, "$pwr_lang/man_dg.dat", 1);
} }
static void uted_activate_helppwr_plc ( static void uted_activate_helppwr_plc (
...@@ -418,7 +418,7 @@ static void uted_activate_helppwr_plc ( ...@@ -418,7 +418,7 @@ static void uted_activate_helppwr_plc (
XmAnyCallbackStruct *data XmAnyCallbackStruct *data
) )
{ {
xhelp_help( "help command", 0, navh_eHelpFile_Base, 0, 1); xhelp_help( "help command", 0, navh_eHelpFile_Other, "$pwr_lang/man_dg.dat", 1);
} }
static void uted_activate_batch ( static void uted_activate_batch (
......
...@@ -55,9 +55,9 @@ wb_vrepmem::~wb_vrepmem() ...@@ -55,9 +55,9 @@ wb_vrepmem::~wb_vrepmem()
clear(); clear();
} }
void wb_vrepmem::loadWbl( char *filename, pwr_tStatus *sts) void wb_vrepmem::loadWbl( char *filename, pwr_tStatus *sts, bool reload)
{ {
if ( m_erep->refMerepOccupied()) { if ( !reload && m_erep->refMerepOccupied()) {
*sts = LDH__OTHERSESS; *sts = LDH__OTHERSESS;
return; return;
} }
...@@ -1796,7 +1796,7 @@ bool wb_vrepmem::commit(pwr_tStatus *sts) ...@@ -1796,7 +1796,7 @@ bool wb_vrepmem::commit(pwr_tStatus *sts)
// Reload to get new template objects // Reload to get new template objects
clear(); clear();
loadWbl( m_filename, sts); loadWbl( m_filename, sts, true);
return true; return true;
} }
...@@ -1806,7 +1806,7 @@ bool wb_vrepmem::abort(pwr_tStatus *sts) ...@@ -1806,7 +1806,7 @@ bool wb_vrepmem::abort(pwr_tStatus *sts)
// Reload // Reload
if ( m_classeditor) { if ( m_classeditor) {
clear(); clear();
loadWbl( m_filename, sts); loadWbl( m_filename, sts, true);
} }
return true; return true;
......
...@@ -334,7 +334,7 @@ public: ...@@ -334,7 +334,7 @@ public:
virtual bool importDocBlock(pwr_tOid oid, size_t size, char *block); virtual bool importDocBlock(pwr_tOid oid, size_t size, char *block);
virtual bool importMeta(dbs_sMenv *mep) { return true;} virtual bool importMeta(dbs_sMenv *mep) { return true;}
bool importBuildObject( mem_object *memo); bool importBuildObject( mem_object *memo);
void loadWbl( char *filename, pwr_tStatus *sts); void loadWbl( char *filename, pwr_tStatus *sts, bool reload = false);
void freeObject( mem_object *mem); void freeObject( mem_object *mem);
void clear(); void clear();
bool classeditorCheck( ldh_eDest dest_code, mem_object *dest, pwr_tCid cid, bool classeditorCheck( ldh_eDest dest_code, mem_object *dest, pwr_tCid cid,
......
...@@ -184,7 +184,8 @@ static void watt_activate_exit( Widget w, WAtt *watt, XmAnyCallbackStruct *data) ...@@ -184,7 +184,8 @@ static void watt_activate_exit( Widget w, WAtt *watt, XmAnyCallbackStruct *data)
static void watt_activate_help( Widget w, WAtt *watt, XmAnyCallbackStruct *data) static void watt_activate_help( Widget w, WAtt *watt, XmAnyCallbackStruct *data)
{ {
CoXHelp::dhelp( "object editor", 0, navh_eHelpFile_Base, 0, true); CoXHelp::dhelp( "objecteditor_refman", 0, navh_eHelpFile_Other,
"$pwr_lang/man_dg.dat", true);
} }
static void watt_create_msg_label( Widget w, WAtt *watt, XmAnyCallbackStruct *data) static void watt_create_msg_label( Widget w, WAtt *watt, XmAnyCallbackStruct *data)
......
...@@ -265,7 +265,7 @@ static int wattnav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -265,7 +265,7 @@ static int wattnav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( wattnav->brow->ctx); brow_SelectClear( wattnav->brow->ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( wattnav->brow->ctx, object); brow_SelectInsert( wattnav->brow->ctx, object);
if ( !brow_IsVisible( wattnav->brow->ctx, object)) if ( !brow_IsVisible( wattnav->brow->ctx, object, flow_eVisible_Full))
brow_CenterObject( wattnav->brow->ctx, object, 0.25); brow_CenterObject( wattnav->brow->ctx, object, 0.25);
if ( node_count) if ( node_count)
free( node_list); free( node_list);
...@@ -301,7 +301,7 @@ static int wattnav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -301,7 +301,7 @@ static int wattnav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( wattnav->brow->ctx); brow_SelectClear( wattnav->brow->ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( wattnav->brow->ctx, object); brow_SelectInsert( wattnav->brow->ctx, object);
if ( !brow_IsVisible( wattnav->brow->ctx, object)) if ( !brow_IsVisible( wattnav->brow->ctx, object, flow_eVisible_Full))
brow_CenterObject( wattnav->brow->ctx, object, 0.75); brow_CenterObject( wattnav->brow->ctx, object, 0.75);
if ( node_count) if ( node_count)
free( node_list); free( node_list);
...@@ -398,7 +398,7 @@ static int wattnav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -398,7 +398,7 @@ static int wattnav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( wattnav->brow->ctx); brow_SelectClear( wattnav->brow->ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( wattnav->brow->ctx, object); brow_SelectInsert( wattnav->brow->ctx, object);
if ( !brow_IsVisible( wattnav->brow->ctx, object)) if ( !brow_IsVisible( wattnav->brow->ctx, object, flow_eVisible_Full))
brow_CenterObject( wattnav->brow->ctx, object, 0.25); brow_CenterObject( wattnav->brow->ctx, object, 0.25);
free( node_list); free( node_list);
break; break;
......
...@@ -890,8 +890,9 @@ void wb_wblnode::buildBody( ref_wblnode object) ...@@ -890,8 +890,9 @@ void wb_wblnode::buildBody( ref_wblnode object)
m_vrep->error( "Bad body name", getFileName(), line_number); m_vrep->error( "Bad body name", getFileName(), line_number);
} }
first_child = getFirstChild(); for ( first_child = getFirstChild();
if ( first_child) first_child;
first_child = first_child->getNextSibling())
first_child->buildAttr( object, bix); first_child->buildAttr( object, bix);
next_sibling = getNextSibling(); next_sibling = getNextSibling();
...@@ -1045,9 +1046,6 @@ void wb_wblnode::buildAttr( ref_wblnode object, pwr_eBix bix) ...@@ -1045,9 +1046,6 @@ void wb_wblnode::buildAttr( ref_wblnode object, pwr_eBix bix)
default: default:
; ;
} }
next_sibling = getNextSibling();
if ( next_sibling)
next_sibling->buildAttr( object, bix);
} }
void wb_wblnode::buildBuff( ref_wblnode object, pwr_eBix bix, pwr_tCid buffer_cid, void wb_wblnode::buildBuff( ref_wblnode object, pwr_eBix bix, pwr_tCid buffer_cid,
......
...@@ -628,6 +628,31 @@ static int wccm_getnodeobject_func( ...@@ -628,6 +628,31 @@ static int wccm_getnodeobject_func(
return 1; return 1;
} }
static int wccm_getprojectname_func(
void *filectx,
ccm_s_arg *arg_list,
int arg_count,
int *return_decl,
float *return_float,
int *return_int,
char *return_string)
{
int sts;
char projectname[80];
if ( arg_count != 0)
return CCM__ARGMISM;
sts = utl_get_projectname( projectname);
if ( ODD(sts))
strcpy( return_string, projectname);
else
strcpy( return_string, "");
*return_decl = CCM_DECL_STRING;
return 1;
}
/************************************************************************* /*************************************************************************
* *
* Name: wccm_register() * Name: wccm_register()
...@@ -675,6 +700,8 @@ int wccm_register( ...@@ -675,6 +700,8 @@ int wccm_register(
if ( EVEN(sts)) return sts; if ( EVEN(sts)) return sts;
sts = ccm_register_function( "ObjectExist", wccm_objectexist_func); sts = ccm_register_function( "ObjectExist", wccm_objectexist_func);
if ( EVEN(sts)) return sts; if ( EVEN(sts)) return sts;
sts = ccm_register_function( "GetProjectName", wccm_getprojectname_func);
if ( EVEN(sts)) return sts;
sts = ccm_create_external_var( "cmd_status", CCM_DECL_INT, 0, 1, sts = ccm_create_external_var( "cmd_status", CCM_DECL_INT, 0, 1,
NULL); NULL);
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include <X11/Xlib.h> #include <X11/Xlib.h>
#include <X11/Xutil.h> #include <X11/Xutil.h>
#include <Xm/ToggleBG.h> #include <Xm/ToggleBG.h>
#include <Xm/ToggleB.h>
#include <Xm/RowColumn.h> #include <Xm/RowColumn.h>
extern "C" { extern "C" {
...@@ -233,7 +234,8 @@ static void wda_activate_prevattr( Widget w, Wda *wda, XmAnyCallbackStruct *data ...@@ -233,7 +234,8 @@ static void wda_activate_prevattr( Widget w, Wda *wda, XmAnyCallbackStruct *data
static void wda_activate_help( Widget w, Wda *wda, XmAnyCallbackStruct *data) static void wda_activate_help( Widget w, Wda *wda, XmAnyCallbackStruct *data)
{ {
CoXHelp::dhelp( "spreadsheet editor", 0, navh_eHelpFile_Base, 0, true); CoXHelp::dhelp( "spreadsheeteditor_refman", 0, navh_eHelpFile_Other,
"$pwr_lang/man_dg.dat", true);
} }
static void wda_create_msg_label( Widget w, Wda *wda, XmAnyCallbackStruct *data) static void wda_create_msg_label( Widget w, Wda *wda, XmAnyCallbackStruct *data)
...@@ -281,6 +283,11 @@ static void wdaclass_create_classvalue( Widget w, Wda *wda, XmAnyCallbackStruct ...@@ -281,6 +283,11 @@ static void wdaclass_create_classvalue( Widget w, Wda *wda, XmAnyCallbackStruct
wda->wdaclass_classvalue = w; wda->wdaclass_classvalue = w;
} }
static void wdaclass_create_attrobjects( Widget w, Wda *wda, XmAnyCallbackStruct *data)
{
wda->wdaclass_attrobjects = w;
}
static void wdaclass_activate_ok( Widget w, Wda *wda, XmAnyCallbackStruct *data) static void wdaclass_activate_ok( Widget w, Wda *wda, XmAnyCallbackStruct *data)
{ {
char *hiername; char *hiername;
...@@ -290,6 +297,7 @@ static void wdaclass_activate_ok( Widget w, Wda *wda, XmAnyCallbackStruct *data) ...@@ -290,6 +297,7 @@ static void wdaclass_activate_ok( Widget w, Wda *wda, XmAnyCallbackStruct *data)
hiername = XmTextGetString( wda->wdaclass_hiervalue); hiername = XmTextGetString( wda->wdaclass_hiervalue);
classname = XmTextGetString( wda->wdaclass_classvalue); classname = XmTextGetString( wda->wdaclass_classvalue);
wda->attrobjects = XmToggleButtonGetState(wda->wdaclass_attrobjects);
if ( strcmp( hiername, "") == 0) if ( strcmp( hiername, "") == 0)
wda->objid = pwr_cNObjid; wda->objid = pwr_cNObjid;
...@@ -319,7 +327,7 @@ static void wdaclass_activate_ok( Widget w, Wda *wda, XmAnyCallbackStruct *data) ...@@ -319,7 +327,7 @@ static void wdaclass_activate_ok( Widget w, Wda *wda, XmAnyCallbackStruct *data)
else { else {
// Find new attributes // Find new attributes
sts = ((WdaNav *)wda->wdanav)->update( wda->objid, wda->classid, sts = ((WdaNav *)wda->wdanav)->update( wda->objid, wda->classid,
wda->attribute); wda->attribute, wda->attrobjects);
if ( EVEN(sts)) if ( EVEN(sts))
wow_DisplayError( wda->parent_wid, "Spreadsheet error", wow_DisplayError( wda->parent_wid, "Spreadsheet error",
wnav_get_message( sts)); wnav_get_message( sts));
...@@ -548,6 +556,8 @@ void Wda::open_class_dialog() ...@@ -548,6 +556,8 @@ void Wda::open_class_dialog()
XmTextSetString( wdaclass_hiervalue, hierstr); XmTextSetString( wdaclass_hiervalue, hierstr);
XmTextSetString( wdaclass_classvalue, classstr); XmTextSetString( wdaclass_classvalue, classstr);
XmToggleButtonSetState( wdaclass_attrobjects,
(Boolean) attrobjects, False);
XtManageChild( wdaclass_dia); XtManageChild( wdaclass_dia);
} }
...@@ -646,7 +656,7 @@ int Wda::next_attr() ...@@ -646,7 +656,7 @@ int Wda::next_attr()
get_next = 1; get_next = 1;
else if ( get_next) { else if ( get_next) {
strcpy( attribute, bodydef[j].ParName); strcpy( attribute, bodydef[j].ParName);
sts = ((WdaNav *)wdanav)->update( objid, classid, attribute); sts = ((WdaNav *)wdanav)->update( objid, classid, attribute, attrobjects);
free((char *) bodydef); free((char *) bodydef);
return WDA__SUCCESS; return WDA__SUCCESS;
} }
...@@ -695,7 +705,7 @@ int Wda::prev_attr() ...@@ -695,7 +705,7 @@ int Wda::prev_attr()
} }
else { else {
strcpy( attribute, prev_attr); strcpy( attribute, prev_attr);
sts = ((WdaNav *)wdanav)->update( objid, classid, attribute); sts = ((WdaNav *)wdanav)->update( objid, classid, attribute, attrobjects);
free((char *) bodydef); free((char *) bodydef);
return WDA__SUCCESS; return WDA__SUCCESS;
} }
...@@ -707,7 +717,7 @@ int Wda::prev_attr() ...@@ -707,7 +717,7 @@ int Wda::prev_attr()
if ( get_last && strcmp( prev_attr, "") != 0) { if ( get_last && strcmp( prev_attr, "") != 0) {
strcpy( attribute, prev_attr); strcpy( attribute, prev_attr);
sts = ((WdaNav *)wdanav)->update( objid, classid, attribute); sts = ((WdaNav *)wdanav)->update( objid, classid, attribute, attrobjects);
return WDA__SUCCESS; return WDA__SUCCESS;
} }
return WDA__NOPREVATTR; return WDA__NOPREVATTR;
...@@ -720,7 +730,7 @@ static void wda_set_attr_cb( void *ctx, char *text) ...@@ -720,7 +730,7 @@ static void wda_set_attr_cb( void *ctx, char *text)
strcpy( wda->attribute, text); strcpy( wda->attribute, text);
sts = ((WdaNav *)wda->wdanav)->update( wda->objid, wda->classid, sts = ((WdaNav *)wda->wdanav)->update( wda->objid, wda->classid,
wda->attribute); wda->attribute, wda->attrobjects);
if ( EVEN(sts)) if ( EVEN(sts))
wow_DisplayError( wda->parent_wid, "Spreadsheet error", wow_DisplayError( wda->parent_wid, "Spreadsheet error",
wnav_get_message( sts)); wnav_get_message( sts));
...@@ -750,7 +760,7 @@ Wda::Wda( ...@@ -750,7 +760,7 @@ Wda::Wda(
editmode(wa_editmode), editmode(wa_editmode),
input_open(0), input_multiline(0), input_open(0), input_multiline(0),
close_cb(0), redraw_cb(0), client_data(0), close_cb(0), redraw_cb(0), client_data(0),
set_focus_disabled(0) set_focus_disabled(0), attrobjects(0)
{ {
char uid_filename[120] = {"pwr_exe:wb_wda.uid"}; char uid_filename[120] = {"pwr_exe:wb_wda.uid"};
char *uid_filename_p = uid_filename; char *uid_filename_p = uid_filename;
...@@ -795,7 +805,8 @@ Wda::Wda( ...@@ -795,7 +805,8 @@ Wda::Wda(
{"wdaclass_activate_ok",(caddr_t)wdaclass_activate_ok }, {"wdaclass_activate_ok",(caddr_t)wdaclass_activate_ok },
{"wdaclass_activate_cancel",(caddr_t)wdaclass_activate_cancel }, {"wdaclass_activate_cancel",(caddr_t)wdaclass_activate_cancel },
{"wdaclass_create_hiervalue",(caddr_t)wdaclass_create_hiervalue }, {"wdaclass_create_hiervalue",(caddr_t)wdaclass_create_hiervalue },
{"wdaclass_create_classvalue",(caddr_t)wdaclass_create_classvalue } {"wdaclass_create_classvalue",(caddr_t)wdaclass_create_classvalue },
{"wdaclass_create_attrobjects",(caddr_t)wdaclass_create_attrobjects }
}; };
static int reglist_num = (sizeof reglist / sizeof reglist[0]); static int reglist_num = (sizeof reglist / sizeof reglist[0]);
......
...@@ -61,6 +61,7 @@ class Wda { ...@@ -61,6 +61,7 @@ class Wda {
Widget wdaclass_dia; Widget wdaclass_dia;
Widget wdaclass_hiervalue; Widget wdaclass_hiervalue;
Widget wdaclass_classvalue; Widget wdaclass_classvalue;
Widget wdaclass_attrobjects;
Widget wdaattr_dia; Widget wdaattr_dia;
int input_open; int input_open;
int input_multiline; int input_multiline;
...@@ -75,6 +76,7 @@ class Wda { ...@@ -75,6 +76,7 @@ class Wda {
XtIntervalId focus_timerid; XtIntervalId focus_timerid;
static char value_recall[30][160]; static char value_recall[30][160];
int value_current_recall; int value_current_recall;
int attrobjects;
void message( char severity, char *message); void message( char severity, char *message);
void set_prompt( char *prompt); void set_prompt( char *prompt);
......
...@@ -48,7 +48,7 @@ extern "C" { ...@@ -48,7 +48,7 @@ extern "C" {
static char null_str[] = ""; static char null_str[] = "";
static int wdanav_init_brow_cb( FlowCtx *fctx, void *client_data); static int wdanav_init_brow_cb( FlowCtx *fctx, void *client_data);
static int wdanav_attr_found_cb( pwr_tObjid objid, void *a1, void *a2, static int wdanav_attr_found_cb( pwr_sAttrRef *aref, void *a1, void *a2,
void *a3, void *a4, void *a5); void *a3, void *a4, void *a5);
void WdaNav::message( char sev, char *text) void WdaNav::message( char sev, char *text)
...@@ -85,7 +85,7 @@ WdaNav::WdaNav( ...@@ -85,7 +85,7 @@ WdaNav::WdaNav(
advanced_user(wa_advanced_user), advanced_user(wa_advanced_user),
display_objectname(wa_display_objectname), bypass(0), display_objectname(wa_display_objectname), bypass(0),
trace_started(0), message_cb(NULL), utility(wa_utility), trace_started(0), message_cb(NULL), utility(wa_utility),
displayed(0) displayed(0), attrobjects(0)
{ {
strcpy( name, wa_name); strcpy( name, wa_name);
strcpy( attribute, wa_attribute); strcpy( attribute, wa_attribute);
...@@ -248,7 +248,7 @@ static int wdanav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -248,7 +248,7 @@ static int wdanav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( wdanav->brow->ctx); brow_SelectClear( wdanav->brow->ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( wdanav->brow->ctx, object); brow_SelectInsert( wdanav->brow->ctx, object);
if ( !brow_IsVisible( wdanav->brow->ctx, object)) if ( !brow_IsVisible( wdanav->brow->ctx, object, flow_eVisible_Full))
brow_CenterObject( wdanav->brow->ctx, object, 0.25); brow_CenterObject( wdanav->brow->ctx, object, 0.25);
if ( node_count) if ( node_count)
free( node_list); free( node_list);
...@@ -284,7 +284,7 @@ static int wdanav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -284,7 +284,7 @@ static int wdanav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( wdanav->brow->ctx); brow_SelectClear( wdanav->brow->ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( wdanav->brow->ctx, object); brow_SelectInsert( wdanav->brow->ctx, object);
if ( !brow_IsVisible( wdanav->brow->ctx, object)) if ( !brow_IsVisible( wdanav->brow->ctx, object, flow_eVisible_Full))
brow_CenterObject( wdanav->brow->ctx, object, 0.75); brow_CenterObject( wdanav->brow->ctx, object, 0.75);
if ( node_count) if ( node_count)
free( node_list); free( node_list);
...@@ -378,7 +378,7 @@ static int wdanav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -378,7 +378,7 @@ static int wdanav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( wdanav->brow->ctx); brow_SelectClear( wdanav->brow->ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( wdanav->brow->ctx, object); brow_SelectInsert( wdanav->brow->ctx, object);
if ( !brow_IsVisible( wdanav->brow->ctx, object)) if ( !brow_IsVisible( wdanav->brow->ctx, object, flow_eVisible_Full))
brow_CenterObject( wdanav->brow->ctx, object, 0.25); brow_CenterObject( wdanav->brow->ctx, object, 0.25);
free( node_list); free( node_list);
break; break;
...@@ -671,7 +671,7 @@ int WdaNav::get_attr() ...@@ -671,7 +671,7 @@ int WdaNav::get_attr()
if ( classid == 0) if ( classid == 0)
return WDA__SUCCESS; return WDA__SUCCESS;
brow_SetNodraw( brow->ctx); brow_SetNodraw( brow->ctx);
found = 0; found = 0;
...@@ -724,10 +724,16 @@ int WdaNav::get_attr() ...@@ -724,10 +724,16 @@ int WdaNav::get_attr()
classid_vect[0] = classid; classid_vect[0] = classid;
classid_vect[1] = 0; classid_vect[1] = 0;
trv_get_objects_hcn( ldhses, objid, classid_vect, NULL, wdanav_attr_found_cb, if ( !attrobjects) {
(void *)this, (void *) &bodydef[j], (void *) body, trv_get_objects_hcn( ldhses, objid, classid_vect, NULL, wdanav_attr_found_cb,
NULL, NULL); (void *)this, (void *) &bodydef[j], (void *) body,
NULL, NULL);
}
else {
trv_get_attrobjects( ldhses, objid, classid_vect, NULL, trv_eDepth_Deep,
wdanav_attr_found_cb, (void *)this, (void *) &bodydef[j],
(void *) body, NULL, NULL);
}
free((char *) bodydef); free((char *) bodydef);
brow_ResetNodraw( brow->ctx); brow_ResetNodraw( brow->ctx);
...@@ -735,17 +741,33 @@ int WdaNav::get_attr() ...@@ -735,17 +741,33 @@ int WdaNav::get_attr()
return WDA__SUCCESS; return WDA__SUCCESS;
} }
static int wdanav_attr_found_cb( pwr_tObjid objid, void *a1, void *a2, static int wdanav_attr_found_cb( pwr_sAttrRef *aref, void *a1, void *a2,
void *a3, void *a4, void *a5) void *a3, void *a4, void *a5)
{ {
WdaNav *wdanav = (WdaNav *) a1; WdaNav *wdanav = (WdaNav *) a1;
ldh_sParDef *bodydef = (ldh_sParDef *) a2; ldh_sParDef *bodydef = (ldh_sParDef *) a2;
char *body = (char *) a3; char *body = (char *) a3;
pwr_tObjid objid = aref->Objid;
char *name;
char *s;
pwr_tAName aname;
pwr_tStatus sts;
int size;
sts = ldh_AttrRefToName( wdanav->ldhses, aref, ldh_eName_Aref, &name, &size);
if ( EVEN(sts)) return sts;
if ( !(s = strchr( name, '.')))
strcpy( aname, bodydef[0].ParName);
else {
strcpy( aname, s+1);
strcat( aname, ".");
strcat( aname, bodydef[0].ParName);
}
if ( bodydef[0].Par->Output.Info.Elements <= 1) if ( bodydef[0].Par->Output.Info.Elements <= 1)
new WItemAttr( wdanav->brow, wdanav->ldhses, objid, NULL, new WItemAttr( wdanav->brow, wdanav->ldhses, objid, NULL,
flow_eDest_IntoLast, bodydef[0].ParName, flow_eDest_IntoLast, aname,
bodydef[0].Par->Output.Info.Type, bodydef[0].Par->Output.Info.Type,
bodydef[0].Par->Output.TypeRef, bodydef[0].Par->Output.TypeRef,
bodydef[0].Par->Output.Info.Size, bodydef[0].Par->Output.Info.Size,
...@@ -753,7 +775,7 @@ static int wdanav_attr_found_cb( pwr_tObjid objid, void *a1, void *a2, ...@@ -753,7 +775,7 @@ static int wdanav_attr_found_cb( pwr_tObjid objid, void *a1, void *a2,
body, 1); body, 1);
else else
new WItemAttrArray( wdanav->brow, wdanav->ldhses, objid, NULL, new WItemAttrArray( wdanav->brow, wdanav->ldhses, objid, NULL,
flow_eDest_IntoLast, bodydef[0].ParName, flow_eDest_IntoLast, aname,
bodydef[0].Par->Output.Info.Elements, bodydef[0].Par->Output.Info.Elements,
bodydef[0].Par->Output.Info.Type, bodydef[0].Par->Output.Info.Type,
bodydef[0].Par->Output.TypeRef, bodydef[0].Par->Output.TypeRef,
...@@ -854,7 +876,7 @@ int WdaNav::find_by_objid( pwr_tObjid oi, brow_tObject *object) ...@@ -854,7 +876,7 @@ int WdaNav::find_by_objid( pwr_tObjid oi, brow_tObject *object)
} }
int WdaNav::update( pwr_tObjid new_objid, pwr_tClassId new_classid, int WdaNav::update( pwr_tObjid new_objid, pwr_tClassId new_classid,
char *new_attribute) char *new_attribute, int new_attrobjects)
{ {
int sts; int sts;
int keep_select; int keep_select;
...@@ -866,7 +888,8 @@ int WdaNav::update( pwr_tObjid new_objid, pwr_tClassId new_classid, ...@@ -866,7 +888,8 @@ int WdaNav::update( pwr_tObjid new_objid, pwr_tClassId new_classid,
if ( cdh_ObjidIsEqual( objid, new_objid) && if ( cdh_ObjidIsEqual( objid, new_objid) &&
classid == new_classid && classid == new_classid &&
strcmp( attribute, new_attribute) == 0) strcmp( attribute, new_attribute) == 0 &&
attrobjects == new_attrobjects)
return WDA__SUCCESS; return WDA__SUCCESS;
if ( cdh_ObjidIsEqual( objid, new_objid) && if ( cdh_ObjidIsEqual( objid, new_objid) &&
...@@ -890,6 +913,7 @@ int WdaNav::update( pwr_tObjid new_objid, pwr_tClassId new_classid, ...@@ -890,6 +913,7 @@ int WdaNav::update( pwr_tObjid new_objid, pwr_tClassId new_classid,
objid = new_objid; objid = new_objid;
classid = new_classid; classid = new_classid;
strcpy( attribute, new_attribute); strcpy( attribute, new_attribute);
attrobjects = new_attrobjects;
brow_SetNodraw( brow->ctx); brow_SetNodraw( brow->ctx);
brow_DeleteAll( brow->ctx); brow_DeleteAll( brow->ctx);
...@@ -907,7 +931,7 @@ int WdaNav::update( pwr_tObjid new_objid, pwr_tClassId new_classid, ...@@ -907,7 +931,7 @@ int WdaNav::update( pwr_tObjid new_objid, pwr_tClassId new_classid,
} }
else { else {
// Scroll to top position // Scroll to top position
if ( brow_GetFirst( brow->ctx, &object)) if ( ODD( brow_GetFirst( brow->ctx, &object)))
brow_CenterObject( brow->ctx, object, 0.0); brow_CenterObject( brow->ctx, object, 0.0);
} }
......
...@@ -74,6 +74,7 @@ class WdaNav { ...@@ -74,6 +74,7 @@ class WdaNav {
void (*change_value_cb)( void *); void (*change_value_cb)( void *);
wb_eUtility utility; wb_eUtility utility;
int displayed; int displayed;
int attrobjects;
void start_trace( pwr_tObjid Objid, char *object_str); void start_trace( pwr_tObjid Objid, char *object_str);
int set_attr_value( brow_tObject node, char *name, char *value_str); int set_attr_value( brow_tObject node, char *name, char *value_str);
...@@ -91,7 +92,7 @@ class WdaNav { ...@@ -91,7 +92,7 @@ class WdaNav {
{ this->editmode = editmode; this->ldhses = ldhses;}; { this->editmode = editmode; this->ldhses = ldhses;};
int select_by_name( char *name); int select_by_name( char *name);
int update( pwr_tObjid new_objid, pwr_tClassId new_classid, int update( pwr_tObjid new_objid, pwr_tClassId new_classid,
char *new_attribute); char *new_attribute, int new_attrobjects);
int find_by_objid( pwr_tObjid oi, brow_tObject *object); int find_by_objid( pwr_tObjid oi, brow_tObject *object);
int print( char *filename); int print( char *filename);
}; };
......
...@@ -1253,7 +1253,7 @@ static int wnav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -1253,7 +1253,7 @@ static int wnav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( wnav->brow->ctx, object); brow_SelectInsert( wnav->brow->ctx, object);
} }
if ( !brow_IsVisible( wnav->brow->ctx, object)) if ( !brow_IsVisible( wnav->brow->ctx, object, flow_eVisible_Full))
brow_CenterObject( wnav->brow->ctx, object, 0.25); brow_CenterObject( wnav->brow->ctx, object, 0.25);
if ( node_count) if ( node_count)
free( node_list); free( node_list);
...@@ -1330,7 +1330,7 @@ static int wnav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -1330,7 +1330,7 @@ static int wnav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( wnav->brow->ctx, object); brow_SelectInsert( wnav->brow->ctx, object);
} }
if ( !brow_IsVisible( wnav->brow->ctx, object)) if ( !brow_IsVisible( wnav->brow->ctx, object, flow_eVisible_Full))
brow_CenterObject( wnav->brow->ctx, object, 0.75); brow_CenterObject( wnav->brow->ctx, object, 0.75);
if ( node_count) if ( node_count)
free( node_list); free( node_list);
...@@ -1523,7 +1523,7 @@ static int wnav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -1523,7 +1523,7 @@ static int wnav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( wnav->brow->ctx); brow_SelectClear( wnav->brow->ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( wnav->brow->ctx, object); brow_SelectInsert( wnav->brow->ctx, object);
if ( !brow_IsVisible( wnav->brow->ctx, object)) if ( !brow_IsVisible( wnav->brow->ctx, object, flow_eVisible_Full))
brow_CenterObject( wnav->brow->ctx, object, 0.25); brow_CenterObject( wnav->brow->ctx, object, 0.25);
free( node_list); free( node_list);
wnav->last_selected = object; wnav->last_selected = object;
......
...@@ -154,7 +154,14 @@ extern "C" { ...@@ -154,7 +154,14 @@ extern "C" {
#include "xnav_bitmap_object18.h" #include "xnav_bitmap_object18.h"
#include "xnav_bitmap_object20.h" #include "xnav_bitmap_object20.h"
#include "xnav_bitmap_object24.h" #include "xnav_bitmap_object24.h"
#include "xnav_bitmap_attrref8.h"
#include "xnav_bitmap_attrref10.h"
#include "xnav_bitmap_attrref12.h" #include "xnav_bitmap_attrref12.h"
#include "xnav_bitmap_attrref14.h"
#include "xnav_bitmap_attrref16.h"
#include "xnav_bitmap_attrref18.h"
#include "xnav_bitmap_attrref20.h"
#include "xnav_bitmap_attrref24.h"
#include "xnav_bitmap_attrxref12.h" #include "xnav_bitmap_attrxref12.h"
#include "xnav_bitmap_ref_err12.h" #include "xnav_bitmap_ref_err12.h"
#include "xnav_bitmap_crossref_err12.h" #include "xnav_bitmap_crossref_err12.h"
...@@ -710,12 +717,34 @@ void WNavBrow::allocate_pixmaps() ...@@ -710,12 +717,34 @@ void WNavBrow::allocate_pixmaps()
brow_AllocAnnotPixmap( ctx, &pixmap_data, &pixmap_object); brow_AllocAnnotPixmap( ctx, &pixmap_data, &pixmap_object);
for ( i = 0; i < 9; i++) i = 0;
{ pixmap_data[i].width =xnav_bitmap_attrref8_width;
pixmap_data[i].width =xnav_bitmap_attrref12_width; pixmap_data[i].height =xnav_bitmap_attrref8_height;
pixmap_data[i].height =xnav_bitmap_attrref12_height; pixmap_data[i++].bits = (char *)xnav_bitmap_attrref8_bits;
pixmap_data[i].bits = (char *)xnav_bitmap_attrref12_bits; pixmap_data[i].width =xnav_bitmap_attrref10_width;
} pixmap_data[i].height =xnav_bitmap_attrref10_height;
pixmap_data[i++].bits = (char *)xnav_bitmap_attrref10_bits;
pixmap_data[i].width =xnav_bitmap_attrref12_width;
pixmap_data[i].height =xnav_bitmap_attrref12_height;
pixmap_data[i++].bits = (char *)xnav_bitmap_attrref12_bits;
pixmap_data[i].width =xnav_bitmap_attrref14_width;
pixmap_data[i].height =xnav_bitmap_attrref14_height;
pixmap_data[i++].bits = (char *)xnav_bitmap_attrref14_bits;
pixmap_data[i].width =xnav_bitmap_attrref16_width;
pixmap_data[i].height =xnav_bitmap_attrref16_height;
pixmap_data[i++].bits = (char *)xnav_bitmap_attrref16_bits;
pixmap_data[i].width =xnav_bitmap_attrref18_width;
pixmap_data[i].height =xnav_bitmap_attrref18_height;
pixmap_data[i++].bits = (char *)xnav_bitmap_attrref18_bits;
pixmap_data[i].width =xnav_bitmap_attrref20_width;
pixmap_data[i].height =xnav_bitmap_attrref20_height;
pixmap_data[i++].bits = (char *)xnav_bitmap_attrref20_bits;
pixmap_data[i].width =xnav_bitmap_attrref20_width;
pixmap_data[i].height =xnav_bitmap_attrref20_height;
pixmap_data[i++].bits = (char *)xnav_bitmap_attrref20_bits;
pixmap_data[i].width =xnav_bitmap_attrref24_width;
pixmap_data[i].height =xnav_bitmap_attrref24_height;
pixmap_data[i++].bits = (char *)xnav_bitmap_attrref24_bits;
brow_AllocAnnotPixmap( ctx, &pixmap_data, &pixmap_attrref); brow_AllocAnnotPixmap( ctx, &pixmap_data, &pixmap_attrref);
......
...@@ -1069,6 +1069,11 @@ WItemAttr::WItemAttr( ...@@ -1069,6 +1069,11 @@ WItemAttr::WItemAttr(
dest, dest_code, (void *) this, 1, &node); dest, dest_code, (void *) this, 1, &node);
brow_SetAnnotPixmap( node, 0, brow->pixmap_ref); brow_SetAnnotPixmap( node, 0, brow->pixmap_ref);
break; break;
case pwr_eType_AttrRef:
brow_CreateNode( brow->ctx, attr_name, nc,
dest, dest_code, (void *) this, 1, &node);
brow_SetAnnotPixmap( node, 0, brow->pixmap_attrref);
break;
case pwr_eType_Enum: case pwr_eType_Enum:
brow_CreateNode( brow->ctx, attr_name, nc, brow_CreateNode( brow->ctx, attr_name, nc,
dest, dest_code, (void *) this, 1, &node); dest, dest_code, (void *) this, 1, &node);
......
...@@ -148,7 +148,7 @@ static int wpkgnav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -148,7 +148,7 @@ static int wpkgnav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( wpkgnav->brow->ctx); brow_SelectClear( wpkgnav->brow->ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( wpkgnav->brow->ctx, object); brow_SelectInsert( wpkgnav->brow->ctx, object);
if ( !brow_IsVisible( wpkgnav->brow->ctx, object)) if ( !brow_IsVisible( wpkgnav->brow->ctx, object, flow_eVisible_Full))
brow_CenterObject( wpkgnav->brow->ctx, object, 0.25); brow_CenterObject( wpkgnav->brow->ctx, object, 0.25);
if ( node_count) if ( node_count)
free( node_list); free( node_list);
...@@ -184,7 +184,7 @@ static int wpkgnav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -184,7 +184,7 @@ static int wpkgnav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( wpkgnav->brow->ctx); brow_SelectClear( wpkgnav->brow->ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( wpkgnav->brow->ctx, object); brow_SelectInsert( wpkgnav->brow->ctx, object);
if ( !brow_IsVisible( wpkgnav->brow->ctx, object)) if ( !brow_IsVisible( wpkgnav->brow->ctx, object, flow_eVisible_Full))
brow_CenterObject( wpkgnav->brow->ctx, object, 0.75); brow_CenterObject( wpkgnav->brow->ctx, object, 0.75);
if ( node_count) if ( node_count)
free( node_list); free( node_list);
...@@ -262,7 +262,7 @@ static int wpkgnav_brow_cb( FlowCtx *ctx, flow_tEvent event) ...@@ -262,7 +262,7 @@ static int wpkgnav_brow_cb( FlowCtx *ctx, flow_tEvent event)
brow_SelectClear( wpkgnav->brow->ctx); brow_SelectClear( wpkgnav->brow->ctx);
brow_SetInverse( object, 1); brow_SetInverse( object, 1);
brow_SelectInsert( wpkgnav->brow->ctx, object); brow_SelectInsert( wpkgnav->brow->ctx, object);
if ( !brow_IsVisible( wpkgnav->brow->ctx, object)) if ( !brow_IsVisible( wpkgnav->brow->ctx, object, flow_eVisible_Full))
brow_CenterObject( wpkgnav->brow->ctx, object, 0.25); brow_CenterObject( wpkgnav->brow->ctx, object, 0.25);
free( node_list); free( node_list);
break; break;
......
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