Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
proview
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Esteban Blanc
proview
Commits
057dd1bb
Commit
057dd1bb
authored
Sep 13, 2004
by
claes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
New focustimer class, different pixmaps in menu, list of volumes and nodes
parent
744477d1
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
406 additions
and
92 deletions
+406
-92
xtt/exe/rt_xtt/src/rt_xtt.cpp
xtt/exe/rt_xtt/src/rt_xtt.cpp
+76
-44
xtt/exe/rt_xtt/src/rt_xtt.h
xtt/exe/rt_xtt/src/rt_xtt.h
+5
-0
xtt/lib/xtt/src/xtt_ev.cpp
xtt/lib/xtt/src/xtt_ev.cpp
+19
-2
xtt/lib/xtt/src/xtt_ev.h
xtt/lib/xtt/src/xtt_ev.h
+9
-0
xtt/lib/xtt/src/xtt_focustimer.h
xtt/lib/xtt/src/xtt_focustimer.h
+37
-0
xtt/lib/xtt/src/xtt_ge.cpp
xtt/lib/xtt/src/xtt_ge.cpp
+2
-0
xtt/lib/xtt/src/xtt_item.cpp
xtt/lib/xtt/src/xtt_item.cpp
+82
-27
xtt/lib/xtt/src/xtt_item.h
xtt/lib/xtt/src/xtt_item.h
+6
-6
xtt/lib/xtt/src/xtt_xnav.cpp
xtt/lib/xtt/src/xtt_xnav.cpp
+11
-8
xtt/lib/xtt/src/xtt_xnav.h
xtt/lib/xtt/src/xtt_xnav.h
+11
-1
xtt/lib/xtt/src/xtt_xnav_brow.cpp
xtt/lib/xtt/src/xtt_xnav_brow.cpp
+11
-0
xtt/lib/xtt/src/xtt_xnav_brow.h
xtt/lib/xtt/src/xtt_xnav_brow.h
+1
-0
xtt/lib/xtt/src/xtt_xnav_command.cpp
xtt/lib/xtt/src/xtt_xnav_command.cpp
+136
-4
No files found.
xtt/exe/rt_xtt/src/rt_xtt.cpp
View file @
057dd1bb
...
...
@@ -50,7 +50,9 @@ extern "C" {
#include "xtt_url.h"
#include "co_lng.h"
#include "co_xhelp.h"
#include "co_wow.h"
#include "rt_xnav_msg.h"
#include "xtt_focustimer.h"
//
//
...
...
@@ -72,47 +74,50 @@ static XtActionsRec HotkeyActions[] = {
};
static
xnav_sStartMenu
alarm_menu
[]
=
{
{
"Alarm list"
,
xnav_eItemType_Command
,
(
void
*
)
"show alarm"
},
{
"Event list"
,
xnav_eItemType_Command
,
(
void
*
)
"show event"
},
{
"Historical list"
,
xnav_eItemType_Command
,
(
void
*
)
"show hist"
},
{
""
,
0
,
NULL
}};
{
"Alarm list"
,
xnav_eItemType_Command
,
menu_ePixmap_List
,
(
void
*
)
"show alarm"
},
{
"Event list"
,
xnav_eItemType_Command
,
menu_ePixmap_List
,
(
void
*
)
"show event"
},
{
"Historical list"
,
xnav_eItemType_Command
,
menu_ePixmap_List
,
(
void
*
)
"show hist"
},
{
""
,
0
,
0
,
NULL
}};
static
xnav_sStartMenu
nethandler_menu
[]
=
{
{
"Link"
,
xnav_eItemType_Command
,
(
void
*
)
"show link"
},
{
"Subscription Client"
,
xnav_eItemType_Command
,
(
void
*
)
"show subcli"
},
{
"Subscription Server"
,
xnav_eItemType_Command
,
(
void
*
)
"show subsrv"
},
{
""
,
0
,
NULL
}};
{
"Link"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show link"
},
{
"Subscription Client"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show subcli"
},
{
"Subscription Server"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show subsrv"
},
{
""
,
0
,
0
,
NULL
}};
static
xnav_sStartMenu
communication_menu
[]
=
{
{
"RemNode"
,
xnav_eItemType_Command
,
(
void
*
)
"show remnode"
},
{
"RemTrans"
,
xnav_eItemType_Command
,
(
void
*
)
"show remtrans"
},
{
""
,
0
,
NULL
}};
{
"RemNode"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show remnode"
},
{
"RemTrans"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show remtrans"
},
{
""
,
0
,
0
,
NULL
}};
static
xnav_sStartMenu
logging_menu
[]
=
{
{
"Logging entry 1"
,
xnav_eItemType_Command
,
(
void
*
)
"show logging/entry=1"
},
{
"Logging entry 2"
,
xnav_eItemType_Command
,
(
void
*
)
"show logging/entry=2"
},
{
"Logging entry 3"
,
xnav_eItemType_Command
,
(
void
*
)
"show logging/entry=3"
},
{
"Logging entry 4"
,
xnav_eItemType_Command
,
(
void
*
)
"show logging/entry=4"
},
{
"Logging entry 5"
,
xnav_eItemType_Command
,
(
void
*
)
"show logging/entry=5"
},
{
"Logging entry 6"
,
xnav_eItemType_Command
,
(
void
*
)
"show logging/entry=6"
},
{
"Logging entry 7"
,
xnav_eItemType_Command
,
(
void
*
)
"show logging/entry=7"
},
{
"Logging entry 8"
,
xnav_eItemType_Command
,
(
void
*
)
"show logging/entry=8"
},
{
"Logging entry 9"
,
xnav_eItemType_Command
,
(
void
*
)
"show logging/entry=9"
},
{
"Logging entry 10"
,
xnav_eItemType_Command
,
(
void
*
)
"show logging/entry=10"
},
{
""
,
0
,
NULL
}};
{
"Logging entry 1"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show logging/entry=1"
},
{
"Logging entry 2"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show logging/entry=2"
},
{
"Logging entry 3"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show logging/entry=3"
},
{
"Logging entry 4"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show logging/entry=4"
},
{
"Logging entry 5"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show logging/entry=5"
},
{
"Logging entry 6"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show logging/entry=6"
},
{
"Logging entry 7"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show logging/entry=7"
},
{
"Logging entry 8"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show logging/entry=8"
},
{
"Logging entry 9"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show logging/entry=9"
},
{
"Logging entry 10"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show logging/entry=10"
},
{
""
,
0
,
0
,
NULL
}};
static
xnav_sStartMenu
system_menu
[]
=
{
{
"Nethandler"
,
xnav_eItemType_Menu
,
(
void
*
)
&
nethandler_menu
},
{
"Communication"
,
xnav_eItemType_Menu
,
(
void
*
)
&
communication_menu
},
{
"Device"
,
xnav_eItemType_Command
,
(
void
*
)
"show device"
},
{
"PlcThread"
,
xnav_eItemType_Command
,
(
void
*
)
"show plcthread"
},
{
"PlcPgm"
,
xnav_eItemType_Command
,
(
void
*
)
"show plcpgm"
},
{
"Logging"
,
xnav_eItemType_Menu
,
(
void
*
)
&
logging_menu
},
{
"System Messages"
,
xnav_eItemType_Command
,
(
void
*
)
"open consolelog"
},
{
""
,
0
,
NULL
}};
{
"Nethandler"
,
xnav_eItemType_Menu
,
menu_ePixmap_Map
,
(
void
*
)
&
nethandler_menu
},
{
"Communication"
,
xnav_eItemType_Menu
,
menu_ePixmap_Map
,
(
void
*
)
&
communication_menu
},
{
"Device"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show device"
},
{
"PlcThread"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show plcthread"
},
{
"PlcPgm"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show plcpgm"
},
{
"Logging"
,
xnav_eItemType_Menu
,
menu_ePixmap_Map
,
(
void
*
)
&
logging_menu
},
{
"System Messages"
,
xnav_eItemType_Command
,
menu_ePixmap_List
,
(
void
*
)
"open consolelog"
},
{
"System Status"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show nodeinfo"
},
{
"Nodes"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show nodeobjects"
},
{
"Volumes"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show volumes"
},
{
""
,
0
,
0
,
NULL
}};
static
xnav_sStartMenu
root_menu
[]
=
{
{
"Database"
,
xnav_eItemType_Command
,
(
void
*
)
"show database"
},
{
"Alarm"
,
xnav_eItemType_Menu
,
(
void
*
)
&
alarm_menu
},
{
"Store"
,
xnav_eItemType_Command
,
(
void
*
)
"show file"
},
{
"System"
,
xnav_eItemType_Menu
,
(
void
*
)
&
system_menu
},
{
"
Exit"
,
xnav_eItemType_Command
,
(
void
*
)
"exit"
},
{
""
,
0
,
NULL
}};
{
"Database"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show database"
},
{
"Alarm"
,
xnav_eItemType_Menu
,
menu_ePixmap_Map
,
(
void
*
)
&
alarm_menu
},
{
"Store"
,
xnav_eItemType_Command
,
menu_ePixmap_Map
,
(
void
*
)
"show file"
},
{
"System"
,
xnav_eItemType_Menu
,
menu_ePixmap_Map
,
(
void
*
)
&
system_menu
},
{
"
Close"
,
xnav_eItemType_Command
,
menu_ePixmap_Leaf
,
(
void
*
)
"exit"
},
{
""
,
0
,
0
,
NULL
}};
...
...
@@ -139,6 +144,7 @@ typedef struct xtt_sCtx {
Widget
india_label
;
Widget
india_text
;
void
(
*
india_ok_cb
)(
struct
xtt_sCtx
*
,
char
*
);
FocusTimer
focustimer
;
}
*
xtt_tCtx
;
static
Xtt
*
hot_xtt
;
...
...
@@ -366,16 +372,24 @@ static void xtt_message( void *ctx, char severity, char *message)
XmStringFree
(
cstr
);
}
static
void
xtt_close_ok
(
void
*
ctx
,
void
*
data
)
{
Xtt
*
xtt
=
(
Xtt
*
)
ctx
;
delete
xtt
->
xnav
;
exit
(
0
);
}
static
void
xtt_close
(
void
*
ctx
)
{
Xtt
*
xtt
=
(
Xtt
*
)
ctx
;
if
(
!
xtt
->
xnav
->
op
)
{
delete
xtt
->
xnav
;
exit
(
0
);
if
(
!
xtt
->
xnav
->
op
)
{
wow_DisplayQuestion
(
xtt
,
xtt
->
toplevel
,
"Confirm"
,
"Do you want to close"
,
xtt_close_ok
,
0
,
0
);
// delete xtt->xnav;
// exit(0);
}
else
{
else
{
xtt
->
xnav
->
displayed
=
0
;
flow_UnmapWidget
(
xtt
->
toplevel
);
}
...
...
@@ -555,6 +569,7 @@ static void xtt_activate_opengraph( Widget w, Xtt *xtt, XmAnyCallbackStruct *dat
int
sts
;
pwr_tClassId
classid
;
char
name
[
120
];
char
vname
[
120
];
char
classname
[
80
];
char
filename
[
120
];
char
fname
[
120
];
...
...
@@ -580,12 +595,16 @@ static void xtt_activate_opengraph( Widget w, Xtt *xtt, XmAnyCallbackStruct *dat
name
,
sizeof
(
name
),
cdh_mNName
);
if
(
EVEN
(
sts
))
return
;
sts
=
gdh_ObjidToName
(
attrref
.
Objid
,
vname
,
sizeof
(
vname
),
cdh_mName_volumeStrict
);
if
(
EVEN
(
sts
))
return
;
sts
=
gdh_GetObjectClass
(
attrref
.
Objid
,
&
classid
);
if
(
EVEN
(
sts
))
return
;
if
(
classid
==
pwr_cClass_DsTrend
||
classid
==
pwr_cClass_PlotGroup
)
{
// Open trend
sprintf
(
cmd
,
"open trend /name=%s /title=
\"
%s
\"
"
,
name
,
name
);
sprintf
(
cmd
,
"open trend /name=%s /title=
\"
%s
\"
"
,
v
name
,
name
);
xtt
->
xnav
->
command
(
cmd
);
return
;
...
...
@@ -616,7 +635,7 @@ static void xtt_activate_opengraph( Widget w, Xtt *xtt, XmAnyCallbackStruct *dat
}
}
sprintf
(
cmd
,
"open graph %s/inst=%s/name=
\"
%s
\"
"
,
filename
,
name
,
name
);
filename
,
v
name
,
name
);
// Add scrollbars for some classes
switch
(
classid
)
{
...
...
@@ -790,8 +809,21 @@ static void xtt_action_inputfocus( Widget w, XmAnyCallbackStruct *data)
XtSetArg
(
args
[
0
],
XmNuserData
,
&
xtt
);
XtGetValues
(
w
,
args
,
1
);
if
(
mrm_IsIconicState
(
w
))
return
;
if
(
xtt
->
xnav
)
{
if
(
xtt
->
focustimer
.
disabled
())
{
// printf( "Inputfocus disabled\n");
return
;
}
else
{
// printf( "Set Inputfocus\n");
}
xtt
->
xnav
->
set_inputfocus
();
xtt
->
focustimer
.
disable
(
xtt
->
toplevel
,
400
);
}
}
...
...
xtt/exe/rt_xtt/src/rt_xtt.h
View file @
057dd1bb
...
...
@@ -38,6 +38,10 @@ extern "C" {
#include "xtt_xnav.h"
#endif
#ifndef xtt_focustimer_h
#include "xtt_focustimer.h"
#endif
class
Xtt
{
public:
Xtt
(
int
argc
,
char
*
argv
[],
int
*
sts
);
...
...
@@ -65,6 +69,7 @@ class Xtt {
void
(
*
india_ok_cb
)(
Xtt
*
,
char
*
);
qcom_sQid
queid
;
XtIntervalId
timerid
;
FocusTimer
focustimer
;
};
#endif
...
...
xtt/lib/xtt/src/xtt_ev.cpp
View file @
057dd1bb
...
...
@@ -32,6 +32,7 @@ extern "C" {
#include "flow_x.h"
}
#include "co_lng.h"
#include "co_mrm_util.h"
#include "xtt_ev.h"
#include "rt_xnav_msg.h"
...
...
@@ -392,8 +393,16 @@ static void ev_eve_action_inputfocus( Widget w, XmAnyCallbackStruct *data)
XtSetArg
(
args
[
0
],
XmNuserData
,
&
ev
);
XtGetValues
(
w
,
args
,
1
);
if
(
ev
&&
ev
->
eve_displayed
)
if
(
mrm_IsIconicState
(
w
))
return
;
if
(
ev
&&
ev
->
eve_displayed
)
{
if
(
ev
->
eve_focustimer
.
disabled
())
return
;
ev
->
eve
->
set_input_focus
();
ev
->
eve_focustimer
.
disable
(
ev
->
toplevel_eve
,
400
);
}
}
static
void
ev_ala_action_inputfocus
(
Widget
w
,
XmAnyCallbackStruct
*
data
)
...
...
@@ -404,8 +413,16 @@ static void ev_ala_action_inputfocus( Widget w, XmAnyCallbackStruct *data)
XtSetArg
(
args
[
0
],
XmNuserData
,
&
ev
);
XtGetValues
(
w
,
args
,
1
);
if
(
ev
&&
ev
->
ala_displayed
)
if
(
mrm_IsIconicState
(
w
))
return
;
if
(
ev
&&
ev
->
ala_displayed
)
{
if
(
ev
->
ala_focustimer
.
disabled
())
return
;
ev
->
ala
->
set_input_focus
();
ev
->
ala_focustimer
.
disable
(
ev
->
toplevel_ala
,
400
);
}
}
static
void
ev_eve_activate_exit
(
Widget
w
,
Ev
*
ev
,
XmAnyCallbackStruct
*
data
)
...
...
xtt/lib/xtt/src/xtt_ev.h
View file @
057dd1bb
...
...
@@ -24,6 +24,10 @@ extern "C" {
# include "xtt_evlist.h"
#endif
#ifndef xtt_focustimer_h
# include "xtt_focustimer.h"
#endif
class
Ev
{
public:
Ev
(
...
...
@@ -68,6 +72,8 @@ class Ev {
int
beep
;
int
eve_size
;
int
ala_size
;
FocusTimer
eve_focustimer
;
FocusTimer
ala_focustimer
;
int
outunit_connect
(
pwr_tObjid
user
);
void
update
(
double
scantime
);
...
...
@@ -84,3 +90,6 @@ class Ev {
};
#endif
xtt/lib/xtt/src/xtt_focustimer.h
0 → 100644
View file @
057dd1bb
#ifndef xtt_focustimer_h
#define xtt_focustimer_h
class
FocusTimer
{
public:
FocusTimer
()
:
set_focus_disabled
(
0
),
request_cnt
(
0
),
focus_timerid
(
0
)
{
}
void
disable
(
Widget
w
,
int
time
)
{
set_focus_disabled
++
;
request_cnt
=
0
;
focus_timerid
=
XtAppAddTimeOut
(
XtWidgetToApplicationContext
(
w
),
time
,
enable_set_focus
,
this
);
}
int
disabled
()
{
// Return false on first request after disable
request_cnt
++
;
return
(
request_cnt
>
1
);
}
private:
int
set_focus_disabled
;
int
request_cnt
;
XtIntervalId
focus_timerid
;
static
void
enable_set_focus
(
void
*
ft
,
XtIntervalId
*
id
)
{
((
FocusTimer
*
)
ft
)
->
set_focus_disabled
--
;
}
public:
~
FocusTimer
()
{
if
(
set_focus_disabled
)
XtRemoveTimeOut
(
focus_timerid
);
}
};
#endif
xtt/lib/xtt/src/xtt_ge.cpp
View file @
057dd1bb
...
...
@@ -358,6 +358,8 @@ extern "C" void ge_delete( ge_tCtx gectx)
{
if
(
gectx
->
close_cb
)
(
gectx
->
close_cb
)(
gectx
);
if
(
gectx
->
set_focus_disabled
)
XtRemoveTimeOut
(
gectx
->
focus_timerid
);
delete
(
Graph
*
)((
Graph
*
)
gectx
->
graph
);
XtDestroyWidget
(
gectx
->
toplevel
);
free
(
(
char
*
)
gectx
);
...
...
xtt/lib/xtt/src/xtt_item.cpp
View file @
057dd1bb
...
...
@@ -74,10 +74,17 @@ ItemObject::ItemObject( XNavBrow *brow, pwr_tObjid item_objid,
if
(
EVEN
(
sts
))
throw
co_error
(
sts
);
if
(
!
is_root
)
{
sts
=
gdh_ObjidToName
(
objid
,
segname
,
sizeof
(
segname
),
cdh_mName_object
);
if
(
objid
.
oix
!=
0
)
{
sts
=
gdh_ObjidToName
(
objid
,
segname
,
sizeof
(
segname
),
cdh_mName_object
);
brow_CreateNode
(
brow
->
ctx
,
segname
,
brow
->
nc_object
,
dest
,
dest_code
,
(
void
*
)
this
,
1
,
&
node
);
}
else
{
sts
=
gdh_VolumeIdToName
(
objid
.
vid
,
segname
,
sizeof
(
segname
));
brow_CreateNode
(
brow
->
ctx
,
segname
,
brow
->
nc_table
,
dest
,
dest_code
,
(
void
*
)
this
,
1
,
&
node
);
}
if
(
EVEN
(
sts
))
throw
co_error
(
sts
);
brow_CreateNode
(
brow
->
ctx
,
segname
,
brow
->
nc_object
,
dest
,
dest_code
,
(
void
*
)
this
,
1
,
&
node
);
// Set pixmap
sts
=
gdh_GetChild
(
objid
,
&
child
);
...
...
@@ -97,14 +104,31 @@ ItemObject::ItemObject( XNavBrow *brow, pwr_tObjid item_objid,
brow_SetAnnotation
(
node
,
1
,
segname
,
strlen
(
segname
));
// Set description annotation
sts
=
gdh_ObjidToName
(
objid
,
segname
,
sizeof
(
segname
),
cdh_mN
Name
);
sts
=
gdh_ObjidToName
(
objid
,
segname
,
sizeof
(
segname
),
cdh_mN
ame_volumeStrict
);
if
(
EVEN
(
sts
))
throw
co_error
(
sts
);
strcat
(
segname
,
".Description"
);
sts
=
gdh_GetObjectInfo
(
segname
,
descr
,
sizeof
(
descr
));
if
(
ODD
(
sts
))
brow_SetAnnotation
(
node
,
2
,
descr
,
strlen
(
descr
));
if
(
objid
.
oix
!=
0
)
{
strcat
(
segname
,
".Description"
);
sts
=
gdh_GetObjectInfo
(
segname
,
descr
,
sizeof
(
descr
));
if
(
ODD
(
sts
))
brow_SetAnnotation
(
node
,
2
,
descr
,
strlen
(
descr
));
}
else
{
gdh_sVolumeInfo
info
;
sts
=
gdh_GetVolumeInfo
(
objid
.
vid
,
&
info
);
if
(
ODD
(
sts
))
{
time_AtoAscii
(
&
info
.
time
,
time_eFormat_DateAndTime
,
descr
,
sizeof
(
descr
));
strcat
(
descr
,
" "
);
if
(
info
.
isLoaded
)
strcat
(
descr
,
"L"
);
if
(
info
.
isCached
)
strcat
(
descr
,
"C"
);
if
(
info
.
isMounted
)
strcat
(
descr
,
"M"
);
brow_SetAnnotation
(
node
,
3
,
descr
,
strlen
(
descr
));
}
}
}
}
...
...
@@ -830,7 +854,12 @@ int ItemHelp::open_children( XNavBrow *brow, XNav *xnav, double x, double y)
}
else
if
(
strcmp
(
link
,
""
)
!=
0
)
{
if
(
(
strstr
(
link
,
".htm"
)
!=
0
)
||
(
strstr
(
link
,
".pdf"
)
!=
0
))
{
if
(
strncmp
(
link
,
"$web:"
,
5
)
==
0
)
{
// Open the url
xnav_open_URL
(
&
link
[
5
]);
}
else
if
(
(
strstr
(
link
,
".htm"
)
!=
0
)
||
(
strstr
(
link
,
".pdf"
)
!=
0
))
{
// Open the url
xnav_open_URL
(
link
);
}
...
...
@@ -882,7 +911,12 @@ int ItemHelpBold::open_children( XNavBrow *brow, XNav *xnav, double x, double y)
}
else
if
(
strcmp
(
link
,
""
)
!=
0
)
{
if
(
(
strstr
(
link
,
".htm"
)
!=
0
)
||
(
strstr
(
link
,
".pdf"
)
!=
0
))
{
if
(
strncmp
(
link
,
"$web:"
,
5
)
==
0
)
{
// Open the url
xnav_open_URL
(
&
link
[
5
]);
}
else
if
(
(
strstr
(
link
,
".htm"
)
!=
0
)
||
(
strstr
(
link
,
".pdf"
)
!=
0
))
{
// Open the url
xnav_open_URL
(
link
);
}
...
...
@@ -1111,29 +1145,48 @@ int ItemMenu::open_children( XNavBrow *brow, double x, double y)
// Display childlist
Item
*
item
;
xnav_sMenu
*
menu
;
flow_sAnnotPixmap
*
pixmap
;
brow_SetNodraw
(
brow
->
ctx
);
menu
=
*
child_list
;
while
(
menu
)
{
switch
(
menu
->
item_type
)
{
case
xnav_eItemType_Menu
:
item
=
(
Item
*
)
new
ItemMenu
(
brow
,
menu
->
title
,
node
,
flow_eDest_IntoLast
,
&
menu
->
child_list
,
0
);
break
;
case
xnav_eItemType_Command
:
item
=
(
Item
*
)
new
ItemCommand
(
brow
,
menu
->
title
,
node
,
flow_eDest_IntoLast
,
menu
->
command
,
0
,
brow
->
pixmap_map
);
break
;
default:
;
switch
(
menu
->
pixmap
)
{
case
menu_ePixmap_Map
:
pixmap
=
brow
->
pixmap_map
;
break
;
case
menu_ePixmap_Graph
:
pixmap
=
brow
->
pixmap_graph
;
break
;
case
menu_ePixmap_Script
:
pixmap
=
brow
->
pixmap_script
;
break
;
case
menu_ePixmap_List
:
pixmap
=
brow
->
pixmap_list
;
break
;
case
menu_ePixmap_Leaf
:
pixmap
=
brow
->
pixmap_leaf
;
break
;
default:
pixmap
=
brow
->
pixmap_map
;
}
switch
(
menu
->
item_type
)
{
case
xnav_eItemType_Menu
:
item
=
(
Item
*
)
new
ItemMenu
(
brow
,
menu
->
title
,
node
,
flow_eDest_IntoLast
,
&
menu
->
child_list
,
0
);
break
;
case
xnav_eItemType_Command
:
item
=
(
Item
*
)
new
ItemCommand
(
brow
,
menu
->
title
,
0
,
node
,
flow_eDest_IntoLast
,
menu
->
command
,
0
,
pixmap
);
break
;
default:
;
}
menu
=
menu
->
next
;
if
(
!
is_root
)
{
if
(
!
is_root
)
{
brow_SetOpen
(
node
,
xnav_mOpen_Children
);
brow_SetAnnotPixmap
(
node
,
0
,
brow
->
pixmap_openmap
);
}
...
...
@@ -1167,7 +1220,7 @@ int ItemMenu::close( XNavBrow *brow, double x, double y)
return
1
;
}
ItemCommand
::
ItemCommand
(
XNavBrow
*
brow
,
char
*
item_name
,
ItemCommand
::
ItemCommand
(
XNavBrow
*
brow
,
char
*
item_name
,
char
*
item_text
,
brow_tNode
dest
,
flow_eDest
dest_code
,
char
*
item_command
,
int
item_is_root
,
flow_sAnnotPixmap
*
pixmap
)
:
Item
(
pwr_cNObjid
,
item_is_root
)
...
...
@@ -1185,6 +1238,8 @@ ItemCommand::ItemCommand( XNavBrow *brow, char *item_name,
brow_SetAnnotPixmap
(
node
,
0
,
pixmap
);
// Set object name annotation
brow_SetAnnotation
(
node
,
0
,
name
,
strlen
(
name
));
if
(
item_text
!=
0
)
brow_SetAnnotation
(
node
,
1
,
item_text
,
strlen
(
item_text
));
}
}
...
...
xtt/lib/xtt/src/xtt_item.h
View file @
057dd1bb
...
...
@@ -265,18 +265,18 @@ class ItemCollect : public ItemBaseAttr {
};
class
ItemMenu
:
public
Item
{
public:
ItemMenu
(
XNavBrow
*
brow
,
char
*
item_name
,
public:
ItemMenu
(
XNavBrow
*
brow
,
char
*
item_name
,
brow_tNode
dest
,
flow_eDest
dest_code
,
xnav_sMenu
**
item_child_list
,
int
item_is_root
);
xnav_sMenu
**
child_list
;
int
open_children
(
XNavBrow
*
brow
,
double
x
,
double
y
);
int
close
(
XNavBrow
*
brow
,
double
x
,
double
y
);
xnav_sMenu
**
child_list
;
int
open_children
(
XNavBrow
*
brow
,
double
x
,
double
y
);
int
close
(
XNavBrow
*
brow
,
double
x
,
double
y
);
};
class
ItemCommand
:
public
Item
{
public:
ItemCommand
(
XNavBrow
*
brow
,
char
*
item_name
,
ItemCommand
(
XNavBrow
*
brow
,
char
*
item_name
,
char
*
item_text
,
brow_tNode
dest
,
flow_eDest
dest_code
,
char
*
item_command
,
int
item_is_root
,
flow_sAnnotPixmap
*
pixmap
);
char
command
[
200
];
...
...
xtt/lib/xtt/src/xtt_xnav.cpp
View file @
057dd1bb
...
...
@@ -2658,28 +2658,28 @@ int XNav::show_logging( int index)
(
void
*
)
&
logg
[
index
].
active
,
NULL
,
flow_eDest_IntoLast
);
sprintf
(
command
,
"logging set/insert/entry=%d"
,
entry
);
new
ItemCommand
(
brow
,
Lng
::
translate
(
"Insert"
),
NULL
,
new
ItemCommand
(
brow
,
Lng
::
translate
(
"Insert"
),
0
,
NULL
,
flow_eDest_IntoLast
,
command
,
0
,
brow
->
pixmap_action
);
sprintf
(
command
,
"logging start/entry=%d"
,
entry
);
new
ItemCommand
(
brow
,
Lng
::
translate
(
"Start"
),
NULL
,
new
ItemCommand
(
brow
,
Lng
::
translate
(
"Start"
),
0
,
NULL
,
flow_eDest_IntoLast
,
command
,
0
,
brow
->
pixmap_action
);
sprintf
(
command
,
"logging stop/entry=%d"
,
entry
);
new
ItemCommand
(
brow
,
Lng
::
translate
(
"Stop"
),
NULL
,
new
ItemCommand
(
brow
,
Lng
::
translate
(
"Stop"
),
0
,
NULL
,
flow_eDest_IntoLast
,
command
,
0
,
brow
->
pixmap_action
);
sprintf
(
command
,
"logging store/entry=%d/file=rtt_store_logg%d.rtt_com"
,
entry
,
entry
);
new
ItemCommand
(
brow
,
Lng
::
translate
(
"Store"
),
NULL
,
new
ItemCommand
(
brow
,
Lng
::
translate
(
"Store"
),
0
,
NULL
,
flow_eDest_IntoLast
,
command
,
0
,
brow
->
pixmap_action
);
sprintf
(
command
,
"@rtt_store_logg%d"
,
entry
);
new
ItemCommand
(
brow
,
Lng
::
translate
(
"Restore"
),
NULL
,
new
ItemCommand
(
brow
,
Lng
::
translate
(
"Restore"
),
0
,
NULL
,
flow_eDest_IntoLast
,
command
,
0
,
brow
->
pixmap_action
);
sprintf
(
command
,
"open loggfile/entry=current"
);
new
ItemCommand
(
brow
,
Lng
::
translate
(
"ShowFile"
),
NULL
,
new
ItemCommand
(
brow
,
Lng
::
translate
(
"ShowFile"
),
0
,
NULL
,
flow_eDest_IntoLast
,
command
,
0
,
brow
->
pixmap_action
);
new
ItemLocal
(
brow
,
Lng
::
translate
(
"Time (ms)"
),
"logg_Time"
,
...
...
@@ -2944,6 +2944,7 @@ xnav_sMenu *XNav::menu_tree_build_children( xnav_sStartMenu *first_child,
menu_p
->
item_type
=
start_menu_p
->
item_type
;
strcpy
(
menu_p
->
title
,
Lng
::
translate
(
start_menu_p
->
title
));
strcpy
(
menu_p
->
command
,
(
char
*
)
start_menu_p
->
action
);
menu_p
->
pixmap
=
(
menu_ePixmap
)
start_menu_p
->
pixmap
;
if
(
first
)
{
return_menu
=
menu_p
;
...
...
@@ -3024,7 +3025,7 @@ int XNav::menu_tree_delete( char *name)
return
1
;
}
int
XNav
::
menu_tree_insert
(
char
*
title
,
int
item_type
,
char
*
command
,
int
XNav
::
menu_tree_insert
(
char
*
title
,
int
item_type
,
char
*
command
,
menu_ePixmap
pixmap
,
char
*
destination
,
int
dest_code
,
xnav_sMenu
**
menu_item
)
{
xnav_sMenu
*
dest_item
;
...
...
@@ -3045,12 +3046,14 @@ int XNav::menu_tree_insert( char *title, int item_type, char *command,
menu_p
->
item_type
=
item_type
;
strcpy
(
menu_p
->
title
,
title
);
strcpy
(
menu_p
->
command
,
command
);
menu_p
->
pixmap
=
pixmap
;
break
;
case
xnav_eItemType_Menu
:
default:
menu_p
=
(
xnav_sMenu
*
)
calloc
(
1
,
sizeof
(
xnav_sMenu
));
menu_p
->
item_type
=
item_type
;
strcpy
(
menu_p
->
title
,
title
);
menu_p
->
pixmap
=
pixmap
;
}
if
(
!
destination
)
...
...
@@ -3267,7 +3270,7 @@ static int xnav_init_brow_base_cb( FlowCtx *fctx, void *client_data)
xnav
->
enable_events
(
xnav
->
brow
);
// Create the root item
xnav
->
root_item
=
new
ItemMenu
(
xnav
->
brow
,
"Root"
,
xnav
->
root_item
=
new
ItemMenu
(
xnav
->
brow
,
"Root"
,
NULL
,
flow_eDest_After
,
&
xnav
->
menu_tree
,
1
);
// Open the root item
...
...
xtt/lib/xtt/src/xtt_xnav.h
View file @
057dd1bb
...
...
@@ -115,9 +115,18 @@ typedef enum {
xnav_eSearchType_RegularExpr
}
xnav_eSearchType
;
typedef
enum
{
menu_ePixmap_Map
,
menu_ePixmap_Graph
,
menu_ePixmap_Script
,
menu_ePixmap_List
,
menu_ePixmap_Leaf
}
menu_ePixmap
;
typedef
struct
{
char
title
[
80
];
int
item_type
;
int
pixmap
;
void
*
action
;
}
xnav_sStartMenu
;
...
...
@@ -125,6 +134,7 @@ typedef struct xnav_s_Menu {
char
title
[
80
];
int
item_type
;
char
command
[
256
];
menu_ePixmap
pixmap
;
struct
xnav_s_Menu
*
child_list
;
struct
xnav_s_Menu
*
parent
;
struct
xnav_s_Menu
*
next
;
...
...
@@ -319,7 +329,7 @@ class XNav {
int
menu_tree_search
(
char
*
name
,
xnav_sMenu
**
menu_item
);
int
menu_tree_search_children
(
char
*
name
,
xnav_sMenu
*
child_list
,
xnav_sMenu
**
menu_item
);
int
menu_tree_insert
(
char
*
title
,
int
item_type
,
char
*
command
,
int
menu_tree_insert
(
char
*
title
,
int
item_type
,
char
*
command
,
menu_ePixmap
pixmap
,
char
*
destination
,
int
dest_code
,
xnav_sMenu
**
menu_item
);
int
menu_tree_delete
(
char
*
name
);
void
pop
();
...
...
xtt/lib/xtt/src/xtt_xnav_brow.cpp
View file @
057dd1bb
...
...
@@ -115,6 +115,7 @@ extern "C" {
#include "xnav_bitmap_crrread12.h"
#include "xnav_bitmap_crrwrite12.h"
#include "xnav_bitmap_script12.h"
#include "xnav_bitmap_list12.h"
#include "xnav_bitmap_graph12.h"
#include "xnav_bitmap_curve12.h"
#include "xnav_bitmap_file12.h"
...
...
@@ -151,6 +152,7 @@ void XNavBrow::free_pixmaps()
brow_FreeAnnotPixmap
(
ctx
,
pixmap_crrread
);
brow_FreeAnnotPixmap
(
ctx
,
pixmap_crrwrite
);
brow_FreeAnnotPixmap
(
ctx
,
pixmap_script
);
brow_FreeAnnotPixmap
(
ctx
,
pixmap_list
);
brow_FreeAnnotPixmap
(
ctx
,
pixmap_file
);
brow_FreeAnnotPixmap
(
ctx
,
pixmap_graph
);
brow_FreeAnnotPixmap
(
ctx
,
pixmap_curve
);
...
...
@@ -506,6 +508,15 @@ void XNavBrow::allocate_pixmaps()
brow_AllocAnnotPixmap
(
ctx
,
&
pixmap_data
,
&
pixmap_script
);
for
(
i
=
0
;
i
<
9
;
i
++
)
{
pixmap_data
[
i
].
width
=
xnav_bitmap_list12_width
;
pixmap_data
[
i
].
height
=
xnav_bitmap_list12_height
;
pixmap_data
[
i
].
bits
=
(
char
*
)
xnav_bitmap_list12_bits
;
}
brow_AllocAnnotPixmap
(
ctx
,
&
pixmap_data
,
&
pixmap_list
);
for
(
i
=
0
;
i
<
9
;
i
++
)
{
pixmap_data
[
i
].
width
=
xnav_bitmap_graph12_width
;
...
...
xtt/lib/xtt/src/xtt_xnav_brow.h
View file @
057dd1bb
...
...
@@ -42,6 +42,7 @@ class XNavBrow {
flow_sAnnotPixmap
*
pixmap_crrread
;
flow_sAnnotPixmap
*
pixmap_crrwrite
;
flow_sAnnotPixmap
*
pixmap_script
;
flow_sAnnotPixmap
*
pixmap_list
;
flow_sAnnotPixmap
*
pixmap_graph
;
flow_sAnnotPixmap
*
pixmap_curve
;
flow_sAnnotPixmap
*
pixmap_action
;
...
...
xtt/lib/xtt/src/xtt_xnav_command.cpp
View file @
057dd1bb
...
...
@@ -176,7 +176,7 @@ dcli_tCmdTable xnav_command_table[] = {
&
xnav_create_func
,
{
"dcli_arg1"
,
"/TEXT"
,
"/MENU"
,
"/DESTINATION"
,
"/COMMAND"
,
"/AFTER"
,
"/BEFORE"
,
"/FIRSTCHILD"
,
"/LASTCHILD"
,
"/CLASS"
,
"/NAME"
,
"/LASTCHILD"
,
"/CLASS"
,
"/NAME"
,
"/PIXMAP"
,
""
}
},
{
...
...
@@ -1529,6 +1529,119 @@ static int xnav_show_func( void *client_data,
xnav
->
message
(
'I'
,
msg
);
}
}
else
if
(
strncmp
(
arg1_str
,
"VOLUMES"
,
strlen
(
arg1_str
))
==
0
)
{
/* Command is "SHOW VOLUMES" */
pwr_tVid
vid
;
pwr_tOid
oid
;
pwr_tStatus
nsts
;
int
volume_cnt
=
0
;
Item
*
item
;
sts
=
gdh_GetVolumeList
(
&
vid
);
while
(
ODD
(
sts
))
{
oid
.
oix
=
0
;
oid
.
vid
=
vid
;
if
(
!
volume_cnt
)
{
xnav
->
brow_pop
();
brow_SetNodraw
(
xnav
->
brow
->
ctx
);
}
nsts
=
xnav
->
create_object_item
(
oid
,
NULL
,
flow_eDest_IntoLast
,
(
void
**
)
&
item
,
0
);
volume_cnt
++
;
sts
=
gdh_GetNextVolume
(
vid
,
&
vid
);
}
brow_ResetNodraw
(
xnav
->
brow
->
ctx
);
brow_Redraw
(
xnav
->
brow
->
ctx
,
0
);
}
else
if
(
strncmp
(
arg1_str
,
"NODEOBJECTS"
,
strlen
(
arg1_str
))
==
0
)
{
/* Command is "SHOW NODEOBJECTS" */
pwr_tVid
vid
;
pwr_tOid
oid
;
pwr_tStatus
nsts
;
int
node_cnt
=
0
;
Item
*
item
;
gdh_sVolumeInfo
info
;
for
(
sts
=
gdh_GetVolumeList
(
&
vid
);
ODD
(
sts
);
sts
=
gdh_GetNextVolume
(
vid
,
&
vid
))
{
sts
=
gdh_GetVolumeInfo
(
vid
,
&
info
);
if
(
EVEN
(
sts
))
continue
;
if
(
info
.
cid
!=
pwr_eClass_RootVolume
||
info
.
nid
==
0
)
continue
;
sts
=
gdh_GetNodeObject
(
info
.
nid
,
&
oid
);
if
(
EVEN
(
sts
))
continue
;
if
(
!
node_cnt
)
{
xnav
->
brow_pop
();
brow_SetNodraw
(
xnav
->
brow
->
ctx
);
}
nsts
=
xnav
->
create_object_item
(
oid
,
NULL
,
flow_eDest_IntoLast
,
(
void
**
)
&
item
,
0
);
node_cnt
++
;
}
brow_ResetNodraw
(
xnav
->
brow
->
ctx
);
brow_Redraw
(
xnav
->
brow
->
ctx
,
0
);
}
else
if
(
strncmp
(
arg1_str
,
"NODEINFO"
,
strlen
(
arg1_str
))
==
0
)
{
/* Command is "SHOW NODEINFO" */
pwr_tVid
vid
;
pwr_tOid
oid
;
int
node_cnt
=
0
;
Item
*
item
;
gdh_sVolumeInfo
info
;
char
name
[
80
];
char
vname
[
120
];
char
cmd
[
200
];
char
descr
[
120
];
char
*
descr_p
;
for
(
sts
=
gdh_GetVolumeList
(
&
vid
);
ODD
(
sts
);
sts
=
gdh_GetNextVolume
(
vid
,
&
vid
))
{
sts
=
gdh_GetVolumeInfo
(
vid
,
&
info
);
if
(
EVEN
(
sts
))
continue
;
if
(
info
.
cid
!=
pwr_eClass_RootVolume
||
info
.
nid
==
0
)
continue
;
sts
=
gdh_GetNodeObject
(
info
.
nid
,
&
oid
);
if
(
EVEN
(
sts
))
continue
;
if
(
!
node_cnt
)
{
xnav
->
brow_pop
();
brow_SetNodraw
(
xnav
->
brow
->
ctx
);
}
sts
=
gdh_ObjidToName
(
oid
,
name
,
sizeof
(
name
),
cdh_mName_object
);
if
(
EVEN
(
sts
))
return
sts
;
sts
=
gdh_ObjidToName
(
oid
,
vname
,
sizeof
(
vname
),
cdh_mName_volumeStrict
);
if
(
EVEN
(
sts
))
return
sts
;
sprintf
(
cmd
,
"open graph/class/inst=%s"
,
vname
);
// Set description annotation
strcat
(
vname
,
".Description"
);
sts
=
gdh_GetObjectInfo
(
vname
,
descr
,
sizeof
(
descr
));
if
(
ODD
(
sts
))
descr_p
=
descr
;
else
descr_p
=
0
;
item
=
(
Item
*
)
new
ItemCommand
(
xnav
->
brow
,
name
,
descr
,
NULL
,
flow_eDest_IntoLast
,
cmd
,
0
,
xnav
->
brow
->
pixmap_list
);
node_cnt
++
;
}
brow_ResetNodraw
(
xnav
->
brow
->
ctx
);
brow_Redraw
(
xnav
->
brow
->
ctx
,
0
);
}
else
{
/* This might be a system picture */
...
...
@@ -1808,7 +1921,7 @@ static int xnav_add_func( void *client_data,
if
(
object
)
new
ItemObject
(
xnav
->
brow
,
objid
,
NULL
,
flow_eDest_IntoLast
,
0
);
else
if
(
command
)
new
ItemCommand
(
xnav
->
brow
,
text_str
,
NULL
,
new
ItemCommand
(
xnav
->
brow
,
text_str
,
0
,
NULL
,
flow_eDest_IntoLast
,
command_str
,
0
,
xnav
->
brow
->
pixmap_map
);
// else
// new ItemMenu( xnav->brow, text_str, NULL,
...
...
@@ -2808,6 +2921,8 @@ static int xnav_create_func( void *client_data,
char
destination_str
[
80
];
char
command_str
[
80
];
char
tmp_str
[
80
];
char
pixmap_str
[
80
];
menu_ePixmap
pixmap
;
int
dest_code
;
int
item_type
;
xnav_sMenu
*
menu_item
;
...
...
@@ -2846,7 +2961,24 @@ static int xnav_create_func( void *client_data,
else
dest_code
=
xnav_eDestCode_After
;
sts
=
xnav
->
menu_tree_insert
(
text_str
,
item_type
,
command_str
,
if
(
ODD
(
dcli_get_qualifier
(
"/PIXMAP"
,
pixmap_str
)))
{
if
(
strcmp
(
pixmap_str
,
"MAP"
)
==
0
)
pixmap
=
menu_ePixmap_Map
;
else
if
(
strcmp
(
pixmap_str
,
"GRAPH"
)
==
0
)
pixmap
=
menu_ePixmap_Graph
;
else
if
(
strcmp
(
pixmap_str
,
"SCRIPT"
)
==
0
)
pixmap
=
menu_ePixmap_Script
;
else
if
(
strcmp
(
pixmap_str
,
"LIST"
)
==
0
)
pixmap
=
menu_ePixmap_List
;
else
if
(
strcmp
(
pixmap_str
,
"LEAF"
)
==
0
)
pixmap
=
menu_ePixmap_Leaf
;
else
pixmap
=
menu_ePixmap_Map
;
}
else
pixmap
=
menu_ePixmap_Map
;
sts
=
xnav
->
menu_tree_insert
(
text_str
,
item_type
,
command_str
,
pixmap
,
destination_str
,
dest_code
,
&
menu_item
);
if
(
EVEN
(
sts
))
xnav
->
message
(
'E'
,
"Destination not found"
);
...
...
@@ -5008,7 +5140,7 @@ int XNav::show_symbols()
brow_SetNodraw
(
brow
->
ctx
);
new
ItemHeader
(
brow
,
"Title"
,
"Symbols"
,
NULL
,
flow_eDest_IntoLast
);
}
new
ItemCommand
(
brow
,
text
,
NULL
,
new
ItemCommand
(
brow
,
text
,
0
,
NULL
,
flow_eDest_IntoLast
,
key
,
0
,
brow
->
pixmap_symbol
);
i
++
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment