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
ae7ad342
Commit
ae7ad342
authored
May 19, 2016
by
Claes Sjofors
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Ge open dialog removed when Ge is closed
parent
459f7632
Changes
25
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
103 additions
and
55 deletions
+103
-55
wb/lib/wb/src/wb_wcast.cpp
wb/lib/wb/src/wb_wcast.cpp
+1
-1
wb/lib/wb/src/wb_wcast.h
wb/lib/wb/src/wb_wcast.h
+1
-1
wb/lib/wb/src/wb_wda.cpp
wb/lib/wb/src/wb_wda.cpp
+2
-2
wb/lib/wb/src/wb_wda.h
wb/lib/wb/src/wb_wda.h
+2
-2
wb/lib/wb/src/wb_wnav_command.cpp
wb/lib/wb/src/wb_wnav_command.cpp
+1
-1
xtt/exe/rt_xtt/src/rt_xtt_main.h
xtt/exe/rt_xtt/src/rt_xtt_main.h
+1
-1
xtt/exe/rt_xtt/src/xtt_main.cpp
xtt/exe/rt_xtt/src/xtt_main.cpp
+1
-1
xtt/lib/cow/gtk/cow_wow_gtk.cpp
xtt/lib/cow/gtk/cow_wow_gtk.cpp
+23
-3
xtt/lib/cow/gtk/cow_wow_gtk.h
xtt/lib/cow/gtk/cow_wow_gtk.h
+3
-1
xtt/lib/cow/motif/cow_wow_motif.cpp
xtt/lib/cow/motif/cow_wow_motif.cpp
+3
-2
xtt/lib/cow/motif/cow_wow_motif.h
xtt/lib/cow/motif/cow_wow_motif.h
+2
-2
xtt/lib/cow/src/cow_wow.cpp
xtt/lib/cow/src/cow_wow.cpp
+1
-1
xtt/lib/cow/src/cow_wow.h
xtt/lib/cow/src/cow_wow.h
+4
-2
xtt/lib/ge/gtk/ge_gtk.cpp
xtt/lib/ge/gtk/ge_gtk.cpp
+6
-3
xtt/lib/ge/gtk/ge_gtk.h
xtt/lib/ge/gtk/ge_gtk.h
+3
-2
xtt/lib/ge/motif/ge_motif.cpp
xtt/lib/ge/motif/ge_motif.cpp
+4
-3
xtt/lib/ge/motif/ge_motif.h
xtt/lib/ge/motif/ge_motif.h
+3
-2
xtt/lib/ge/src/ge.cpp
xtt/lib/ge/src/ge.cpp
+19
-5
xtt/lib/ge/src/ge.h
xtt/lib/ge/src/ge.h
+6
-3
xtt/lib/xtt/gtk/xtt_clog_gtk.cpp
xtt/lib/xtt/gtk/xtt_clog_gtk.cpp
+1
-1
xtt/lib/xtt/gtk/xtt_clog_gtk.h
xtt/lib/xtt/gtk/xtt_clog_gtk.h
+1
-1
xtt/lib/xtt/src/xtt_tcurve.cpp
xtt/lib/xtt/src/xtt_tcurve.cpp
+1
-1
xtt/lib/xtt/src/xtt_tcurve.h
xtt/lib/xtt/src/xtt_tcurve.h
+1
-1
xtt/lib/xtt/src/xtt_trend.cpp
xtt/lib/xtt/src/xtt_trend.cpp
+1
-1
xtt/lib/xtt/src/xtt_xnav_command.cpp
xtt/lib/xtt/src/xtt_xnav_command.cpp
+12
-12
No files found.
wb/lib/wb/src/wb_wcast.cpp
View file @
ae7ad342
...
@@ -126,7 +126,7 @@ void WCast::get_subcid( pwr_tCid cid)
...
@@ -126,7 +126,7 @@ void WCast::get_subcid( pwr_tCid cid)
}
}
}
}
void
WCast
::
selected_cb
(
void
*
ctx
,
char
*
text
)
void
WCast
::
selected_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
)
{
{
WCast
*
wcast
=
(
WCast
*
)
ctx
;
WCast
*
wcast
=
(
WCast
*
)
ctx
;
pwr_tStatus
sts
;
pwr_tStatus
sts
;
...
...
wb/lib/wb/src/wb_wcast.h
View file @
ae7ad342
...
@@ -78,7 +78,7 @@ class WCast {
...
@@ -78,7 +78,7 @@ class WCast {
~
WCast
();
~
WCast
();
static
void
selected_cb
(
void
*
ctx
,
char
*
text
);
static
void
selected_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
);
};
};
#endif
#endif
...
...
wb/lib/wb/src/wb_wda.cpp
View file @
ae7ad342
...
@@ -125,7 +125,7 @@ void Wda::import_textfile()
...
@@ -125,7 +125,7 @@ void Wda::import_textfile()
import_file_cb
,
0
,
this
,
1
);
import_file_cb
,
0
,
this
,
1
);
}
}
void
Wda
::
import_file_cb
(
void
*
ctx
,
char
*
text
)
void
Wda
::
import_file_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
)
{
{
pwr_tFileName
filename
;
pwr_tFileName
filename
;
Wda
*
wda
=
(
Wda
*
)
ctx
;
Wda
*
wda
=
(
Wda
*
)
ctx
;
...
@@ -358,7 +358,7 @@ int Wda::prev_attr()
...
@@ -358,7 +358,7 @@ int Wda::prev_attr()
return
WDA__NOPREVATTR
;
return
WDA__NOPREVATTR
;
}
}
void
Wda
::
set_attr_cb
(
void
*
ctx
,
char
*
text
)
void
Wda
::
set_attr_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
)
{
{
Wda
*
wda
=
(
Wda
*
)
ctx
;
Wda
*
wda
=
(
Wda
*
)
ctx
;
int
sts
;
int
sts
;
...
...
wb/lib/wb/src/wb_wda.h
View file @
ae7ad342
...
@@ -114,9 +114,9 @@ class Wda {
...
@@ -114,9 +114,9 @@ class Wda {
static
void
message_cb
(
void
*
wda
,
char
severity
,
const
char
*
message
);
static
void
message_cb
(
void
*
wda
,
char
severity
,
const
char
*
message
);
static
void
change_value_cb
(
void
*
wda
);
static
void
change_value_cb
(
void
*
wda
);
static
void
set_attr_cb
(
void
*
ctx
,
char
*
text
);
static
void
set_attr_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
);
static
void
file_selected_cb
(
void
*
ctx
,
void
*
data
,
char
*
text
);
static
void
file_selected_cb
(
void
*
ctx
,
void
*
data
,
char
*
text
);
static
void
import_file_cb
(
void
*
ctx
,
char
*
text
);
static
void
import_file_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
);
};
};
...
...
wb/lib/wb/src/wb_wnav_command.cpp
View file @
ae7ad342
...
@@ -5720,7 +5720,7 @@ static int wnav_backup_func( void *client_data,
...
@@ -5720,7 +5720,7 @@ static int wnav_backup_func( void *client_data,
return
1
;
return
1
;
}
}
static
void
wnav_clone_volume_cb
(
void
*
ctx
,
char
*
text
)
static
void
wnav_clone_volume_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
)
{
{
WNav
*
wnav
=
(
WNav
*
)
ctx
;
WNav
*
wnav
=
(
WNav
*
)
ctx
;
pwr_tObjName
vname
;
pwr_tObjName
vname
;
...
...
xtt/exe/rt_xtt/src/rt_xtt_main.h
View file @
ae7ad342
...
@@ -96,7 +96,7 @@ class Xtt {
...
@@ -96,7 +96,7 @@ class Xtt {
virtual
void
print
()
{}
virtual
void
print
()
{}
void
list_opplace
();
void
list_opplace
();
static
void
opplace_selected_cb
(
void
*
ctx
,
char
*
text
);
static
void
opplace_selected_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
);
void
hotkey_activate_command
(
char
*
cmdp
);
void
hotkey_activate_command
(
char
*
cmdp
);
static
void
hotkey_activate_toggledig
(
char
*
namep
);
static
void
hotkey_activate_toggledig
(
char
*
namep
);
...
...
xtt/exe/rt_xtt/src/xtt_main.cpp
View file @
ae7ad342
...
@@ -864,7 +864,7 @@ Xtt::Xtt( int *argc, char **argv[], int *return_sts) :
...
@@ -864,7 +864,7 @@ Xtt::Xtt( int *argc, char **argv[], int *return_sts) :
}
}
void
Xtt
::
opplace_selected_cb
(
void
*
ctx
,
char
*
text
)
void
Xtt
::
opplace_selected_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
)
{
{
Xtt
*
xtt
=
(
Xtt
*
)
ctx
;
Xtt
*
xtt
=
(
Xtt
*
)
ctx
;
pwr_tCmd
cmd
;
pwr_tCmd
cmd
;
...
...
xtt/lib/cow/gtk/cow_wow_gtk.cpp
View file @
ae7ad342
...
@@ -433,13 +433,16 @@ void CoWowGtk::DisplayText( const char *title, const char *text, int width, int
...
@@ -433,13 +433,16 @@ void CoWowGtk::DisplayText( const char *title, const char *text, int width, int
class
WowListCtx
{
class
WowListCtx
{
public:
public:
WowListCtx
()
:
texts
(
0
),
textsize
(
0
),
ok_pressed
(
0
)
{}
GtkWidget
*
toplevel
;
GtkWidget
*
toplevel
;
GtkWidget
*
list
;
GtkWidget
*
list
;
char
*
texts
;
char
*
texts
;
int
textsize
;
int
textsize
;
void
(
*
action_cb
)
(
void
*
,
char
*
);
void
(
*
action_cb
)
(
void
*
,
char
*
,
int
);
void
(
*
cancel_cb
)
(
void
*
);
void
(
*
cancel_cb
)
(
void
*
);
void
*
parent_ctx
;
void
*
parent_ctx
;
int
ok_pressed
;
};
};
void
CoWowGtk
::
list_row_activated_cb
(
GtkTreeView
*
tree_view
,
void
CoWowGtk
::
list_row_activated_cb
(
GtkTreeView
*
tree_view
,
...
@@ -475,7 +478,7 @@ void CoWowGtk::list_apply_cb (
...
@@ -475,7 +478,7 @@ void CoWowGtk::list_apply_cb (
strcpy
(
selected_text
,
textiso
);
strcpy
(
selected_text
,
textiso
);
g_free
(
textiso
);
g_free
(
textiso
);
(
ctx
->
action_cb
)(
ctx
->
parent_ctx
,
selected_text
);
(
ctx
->
action_cb
)(
ctx
->
parent_ctx
,
selected_text
,
ctx
->
ok_pressed
);
}
}
}
}
...
@@ -487,6 +490,7 @@ void CoWowGtk::list_ok_cb (
...
@@ -487,6 +490,7 @@ void CoWowGtk::list_ok_cb (
{
{
WowListCtx
*
ctx
=
(
WowListCtx
*
)
data
;
WowListCtx
*
ctx
=
(
WowListCtx
*
)
data
;
ctx
->
ok_pressed
=
1
;
list_apply_cb
(
w
,
data
);
list_apply_cb
(
w
,
data
);
gtk_widget_destroy
(
ctx
->
toplevel
);
gtk_widget_destroy
(
ctx
->
toplevel
);
...
@@ -521,11 +525,27 @@ static gboolean list_delete_event( GtkWidget *w, GdkEvent *event, gpointer data)
...
@@ -521,11 +525,27 @@ static gboolean list_delete_event( GtkWidget *w, GdkEvent *event, gpointer data)
return
TRUE
;
return
TRUE
;
}
}
void
CoWowGtk
::
PopList
(
void
*
data
)
{
WowListCtx
*
ctx
=
(
WowListCtx
*
)
data
;
gtk_window_present
(
GTK_WINDOW
(
ctx
->
toplevel
));
}
void
CoWowGtk
::
DeleteList
(
void
*
data
)
{
WowListCtx
*
ctx
=
(
WowListCtx
*
)
data
;
gtk_widget_destroy
(
ctx
->
toplevel
);
free
(
ctx
->
texts
);
delete
ctx
;
}
void
*
CoWowGtk
::
CreateList
(
void
*
CoWowGtk
::
CreateList
(
const
char
*
title
,
const
char
*
title
,
const
char
*
texts
,
const
char
*
texts
,
int
textsize
,
int
textsize
,
void
(
action_cb
)(
void
*
,
char
*
),
void
(
action_cb
)(
void
*
,
char
*
,
int
),
void
(
cancel_cb
)(
void
*
),
void
(
cancel_cb
)(
void
*
),
void
*
parent_ctx
,
void
*
parent_ctx
,
int
show_apply_button
int
show_apply_button
...
...
xtt/lib/cow/gtk/cow_wow_gtk.h
View file @
ae7ad342
...
@@ -135,10 +135,12 @@ class CoWowGtk : public CoWow {
...
@@ -135,10 +135,12 @@ class CoWowGtk : public CoWow {
char
*
init_text
,
char
*
init_text
,
void
*
data
);
void
*
data
);
void
*
CreateList
(
const
char
*
title
,
const
char
*
texts
,
int
textsize
,
void
*
CreateList
(
const
char
*
title
,
const
char
*
texts
,
int
textsize
,
void
(
action_cb
)(
void
*
,
char
*
),
void
(
action_cb
)(
void
*
,
char
*
,
int
),
void
(
cancel_cb
)(
void
*
),
void
(
cancel_cb
)(
void
*
),
void
*
ctx
,
void
*
ctx
,
int
show_apply_button
=
0
);
int
show_apply_button
=
0
);
void
PopList
(
void
*
ctx
);
void
DeleteList
(
void
*
ctx
);
void
CreateFileSelDia
(
const
char
*
title
,
void
*
parent_ctx
,
void
CreateFileSelDia
(
const
char
*
title
,
void
*
parent_ctx
,
void
(
*
file_selected_cb
)(
void
*
,
char
*
,
wow_eFileSelType
),
void
(
*
file_selected_cb
)(
void
*
,
char
*
,
wow_eFileSelType
),
wow_eFileSelType
file_type
);
wow_eFileSelType
file_type
);
...
...
xtt/lib/cow/motif/cow_wow_motif.cpp
View file @
ae7ad342
...
@@ -264,7 +264,7 @@ void CoWowMotif::list_ok_cb( Widget w, XtPointer data,
...
@@ -264,7 +264,7 @@ void CoWowMotif::list_ok_cb( Widget w, XtPointer data,
if
(
ctx
->
action_cb
)
{
if
(
ctx
->
action_cb
)
{
if
(
XmListGetSelectedPos
(
ctx
->
list
,
&
pos_list
,
&
pos_cnt
))
{
if
(
XmListGetSelectedPos
(
ctx
->
list
,
&
pos_list
,
&
pos_cnt
))
{
strcpy
(
selected_text
,
ctx
->
texts
+
(
pos_list
[
0
]
-
1
)
*
ctx
->
textsize
);
strcpy
(
selected_text
,
ctx
->
texts
+
(
pos_list
[
0
]
-
1
)
*
ctx
->
textsize
);
(
ctx
->
action_cb
)(
ctx
->
parent_ctx
,
selected_text
);
(
ctx
->
action_cb
)(
ctx
->
parent_ctx
,
selected_text
,
1
);
XtFree
(
(
char
*
)
pos_list
);
XtFree
(
(
char
*
)
pos_list
);
}
}
...
@@ -313,7 +313,7 @@ void CoWowMotif::list_action_cb( Widget w, XtPointer data,
...
@@ -313,7 +313,7 @@ void CoWowMotif::list_action_cb( Widget w, XtPointer data,
}
}
void
*
CoWowMotif
::
CreateList
(
const
char
*
title
,
const
char
*
texts
,
int
textsize
,
void
*
CoWowMotif
::
CreateList
(
const
char
*
title
,
const
char
*
texts
,
int
textsize
,
void
(
action_cb
)(
void
*
,
char
*
),
void
(
action_cb
)(
void
*
,
char
*
,
int
),
void
(
cancel_cb
)(
void
*
),
void
(
cancel_cb
)(
void
*
),
void
*
parent_ctx
,
void
*
parent_ctx
,
int
show_apply_button
)
int
show_apply_button
)
...
@@ -335,6 +335,7 @@ void *CoWowMotif::CreateList( const char *title, const char *texts, int textsize
...
@@ -335,6 +335,7 @@ void *CoWowMotif::CreateList( const char *title, const char *texts, int textsize
ctx
->
action_cb
=
action_cb
;
ctx
->
action_cb
=
action_cb
;
ctx
->
cancel_cb
=
cancel_cb
;
ctx
->
cancel_cb
=
cancel_cb
;
ctx
->
parent_ctx
=
parent_ctx
;
ctx
->
parent_ctx
=
parent_ctx
;
ctx
->
ok_pressed
=
1
;
i
=
0
;
i
=
0
;
XtSetArg
(
args
[
i
],
XmNiconName
,
title
);
i
++
;
XtSetArg
(
args
[
i
],
XmNiconName
,
title
);
i
++
;
...
...
xtt/lib/cow/motif/cow_wow_motif.h
View file @
ae7ad342
...
@@ -50,7 +50,7 @@ typedef struct {
...
@@ -50,7 +50,7 @@ typedef struct {
Widget
list
;
Widget
list
;
char
*
texts
;
char
*
texts
;
int
textsize
;
int
textsize
;
void
(
*
action_cb
)
(
void
*
,
char
*
);
void
(
*
action_cb
)
(
void
*
,
char
*
,
int
);
void
(
*
cancel_cb
)
(
void
*
);
void
(
*
cancel_cb
)
(
void
*
);
void
*
parent_ctx
;
void
*
parent_ctx
;
}
*
wow_tListCtx
;
}
*
wow_tListCtx
;
...
@@ -111,7 +111,7 @@ class CoWowMotif : public CoWow {
...
@@ -111,7 +111,7 @@ class CoWowMotif : public CoWow {
void
DisplayError
(
const
char
*
title
,
const
char
*
text
);
void
DisplayError
(
const
char
*
title
,
const
char
*
text
);
void
DisplayText
(
const
char
*
title
,
const
char
*
text
)
{}
void
DisplayText
(
const
char
*
title
,
const
char
*
text
)
{}
void
*
CreateList
(
const
char
*
title
,
const
char
*
texts
,
int
textsize
,
void
*
CreateList
(
const
char
*
title
,
const
char
*
texts
,
int
textsize
,
void
(
action_cb
)(
void
*
,
char
*
),
void
(
action_cb
)(
void
*
,
char
*
,
int
),
void
(
cancel_cb
)(
void
*
),
void
(
cancel_cb
)(
void
*
),
void
*
ctx
,
void
*
ctx
,
int
show_apply_button
=
0
);
int
show_apply_button
=
0
);
...
...
xtt/lib/cow/src/cow_wow.cpp
View file @
ae7ad342
...
@@ -67,7 +67,7 @@ void *CoWow::CreateFileList(
...
@@ -67,7 +67,7 @@ void *CoWow::CreateFileList(
const
char
*
dir
,
const
char
*
dir
,
const
char
*
pattern
,
const
char
*
pattern
,
const
char
*
type
,
const
char
*
type
,
void
(
action_cb
)(
void
*
,
char
*
),
void
(
action_cb
)(
void
*
,
char
*
,
int
),
void
(
cancel_cb
)(
void
*
),
void
(
cancel_cb
)(
void
*
),
void
*
ctx
,
void
*
ctx
,
int
show_apply_button
int
show_apply_button
...
...
xtt/lib/cow/src/cow_wow.h
View file @
ae7ad342
...
@@ -127,10 +127,12 @@ class CoWow {
...
@@ -127,10 +127,12 @@ class CoWow {
char
*
init_text
,
char
*
init_text
,
void
*
data
)
{}
void
*
data
)
{}
virtual
void
*
CreateList
(
const
char
*
title
,
const
char
*
texts
,
int
textsize
,
virtual
void
*
CreateList
(
const
char
*
title
,
const
char
*
texts
,
int
textsize
,
void
(
action_cb
)(
void
*
,
char
*
),
void
(
action_cb
)(
void
*
,
char
*
,
int
),
void
(
cancel_cb
)(
void
*
),
void
(
cancel_cb
)(
void
*
),
void
*
ctx
,
void
*
ctx
,
int
show_apply_button
=
0
)
{
return
NULL
;}
int
show_apply_button
=
0
)
{
return
NULL
;}
virtual
void
PopList
(
void
*
ctx
)
{};
virtual
void
DeleteList
(
void
*
ctx
)
{};
virtual
void
CreateFileSelDia
(
const
char
*
title
,
void
*
parent_ctx
,
virtual
void
CreateFileSelDia
(
const
char
*
title
,
void
*
parent_ctx
,
void
(
*
file_selected_cb
)(
void
*
,
char
*
,
wow_eFileSelType
),
void
(
*
file_selected_cb
)(
void
*
,
char
*
,
wow_eFileSelType
),
wow_eFileSelType
file_type
)
{}
wow_eFileSelType
file_type
)
{}
...
@@ -149,7 +151,7 @@ class CoWow {
...
@@ -149,7 +151,7 @@ class CoWow {
const
char
*
dir
,
const
char
*
dir
,
const
char
*
pattern
,
const
char
*
pattern
,
const
char
*
type
,
const
char
*
type
,
void
(
action_cb
)(
void
*
,
char
*
),
void
(
action_cb
)(
void
*
,
char
*
,
int
),
void
(
cancel_cb
)(
void
*
),
void
(
cancel_cb
)(
void
*
),
void
*
ctx
,
void
*
ctx
,
int
show_apply_button
=
0
);
int
show_apply_button
=
0
);
...
...
xtt/lib/ge/gtk/ge_gtk.cpp
View file @
ae7ad342
...
@@ -123,11 +123,12 @@ int GeGtk::create_modal_dialog( const char *title, const char *text, const char
...
@@ -123,11 +123,12 @@ int GeGtk::create_modal_dialog( const char *title, const char *text, const char
return
wow
->
CreateModalDialog
(
title
,
text
,
button1
,
button2
,
button3
,
image
);
return
wow
->
CreateModalDialog
(
title
,
text
,
button1
,
button2
,
button3
,
image
);
}
}
void
GeGtk
::
create_list
(
const
char
*
title
,
const
char
*
texts
,
void
*
GeGtk
::
create_list
(
const
char
*
title
,
const
char
*
texts
,
void
(
action_cb
)(
void
*
,
char
*
),
void
*
ctx
)
void
(
action_cb
)(
void
*
,
char
*
,
int
),
void
(
cancel_cb
)(
void
*
),
void
*
ctx
)
{
{
CoWowGtk
wow
(
toplevel
);
CoWowGtk
wow
(
toplevel
);
wow
.
CreateList
(
title
,
texts
,
80
,
action_cb
,
0
,
ctx
,
1
);
return
wow
.
CreateList
(
title
,
texts
,
80
,
action_cb
,
cancel_cb
,
ctx
,
1
);
}
}
void
GeGtk
::
subgraphs_new
()
void
GeGtk
::
subgraphs_new
()
...
@@ -1591,6 +1592,8 @@ gboolean GeGtk::ge_action_inputfocus( GtkWidget *w, GdkEvent *event, gpointer da
...
@@ -1591,6 +1592,8 @@ gboolean GeGtk::ge_action_inputfocus( GtkWidget *w, GdkEvent *event, gpointer da
GeGtk
::~
GeGtk
()
GeGtk
::~
GeGtk
()
{
{
if
(
open_dialog
)
wow
->
DeleteList
(
open_dialog
);
if
(
subgraphs
)
if
(
subgraphs
)
delete
subgraphs
;
delete
subgraphs
;
delete
recall_entry
;
delete
recall_entry
;
...
...
xtt/lib/ge/gtk/ge_gtk.h
View file @
ae7ad342
...
@@ -106,8 +106,9 @@ class GeGtk : public Ge {
...
@@ -106,8 +106,9 @@ class GeGtk : public Ge {
virtual
void
subgraphs_new
();
virtual
void
subgraphs_new
();
virtual
void
update
();
virtual
void
update
();
virtual
int
get_plant_select
(
char
*
name
,
int
size
);
virtual
int
get_plant_select
(
char
*
name
,
int
size
);
virtual
void
create_list
(
const
char
*
title
,
const
char
*
texts
,
virtual
void
*
create_list
(
const
char
*
title
,
const
char
*
texts
,
void
(
action_cb
)(
void
*
,
char
*
),
void
*
ctx
);
void
(
action_cb
)(
void
*
,
char
*
,
int
),
void
(
cancel_cb
)(
void
*
),
void
*
ctx
);
virtual
int
create_modal_dialog
(
const
char
*
title
,
const
char
*
text
,
const
char
*
button1
,
virtual
int
create_modal_dialog
(
const
char
*
title
,
const
char
*
text
,
const
char
*
button1
,
const
char
*
button2
,
const
char
*
button3
,
const
char
*
image
);
const
char
*
button2
,
const
char
*
button3
,
const
char
*
image
);
...
...
xtt/lib/ge/motif/ge_motif.cpp
View file @
ae7ad342
...
@@ -91,11 +91,12 @@
...
@@ -91,11 +91,12 @@
#include "wb_wnav_selformat.h"
#include "wb_wnav_selformat.h"
#include "wb_nav_motif.h"
#include "wb_nav_motif.h"
void
GeMotif
::
create_list
(
const
char
*
title
,
const
char
*
texts
,
void
*
GeMotif
::
create_list
(
const
char
*
title
,
const
char
*
texts
,
void
(
action_cb
)(
void
*
,
char
*
),
void
*
ctx
)
void
(
action_cb
)(
void
*
,
char
*
,
int
),
void
(
cancel_cb
)(
void
*
),
void
*
ctx
)
{
{
CoWowMotif
wow
(
toplevel
);
CoWowMotif
wow
(
toplevel
);
wow
.
CreateList
(
title
,
texts
,
80
,
action_cb
,
0
,
ctx
);
return
wow
.
CreateList
(
title
,
texts
,
80
,
action_cb
,
cancel_cb
,
ctx
);
}
}
void
GeMotif
::
subgraphs_new
()
void
GeMotif
::
subgraphs_new
()
...
...
xtt/lib/ge/motif/ge_motif.h
View file @
ae7ad342
...
@@ -100,8 +100,9 @@ class GeMotif : public Ge {
...
@@ -100,8 +100,9 @@ class GeMotif : public Ge {
virtual
void
subgraphs_new
();
virtual
void
subgraphs_new
();
virtual
void
update
();
virtual
void
update
();
virtual
int
get_plant_select
(
char
*
name
,
int
size
);
virtual
int
get_plant_select
(
char
*
name
,
int
size
);
virtual
void
create_list
(
const
char
*
title
,
const
char
*
texts
,
virtual
void
*
create_list
(
const
char
*
title
,
const
char
*
texts
,
void
(
action_cb
)(
void
*
,
char
*
),
void
*
ctx
);
void
(
action_cb
)(
void
*
,
char
*
,
int
),
void
(
cancel_cb
)(
void
*
),
void
*
ctx
);
virtual
void
plant_del
(
void
*
plantctx
);
virtual
void
plant_del
(
void
*
plantctx
);
virtual
int
plant_get_select
(
void
*
plantctx
,
pwr_sAttrRef
*
attrref
,
int
*
is_attr
);
virtual
int
plant_get_select
(
void
*
plantctx
,
pwr_sAttrRef
*
attrref
,
int
*
is_attr
);
...
...
xtt/lib/ge/src/ge.cpp
View file @
ae7ad342
...
@@ -1517,9 +1517,16 @@ void Ge::activate_graph_attr()
...
@@ -1517,9 +1517,16 @@ void Ge::activate_graph_attr()
graph
->
edit_subgraph_attributes
();
graph
->
edit_subgraph_attributes
();
}
}
void
Ge
::
open_list_cb
(
void
*
ctx
,
char
*
text
)
void
Ge
::
open_list_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
)
{
{
((
Ge
*
)
ctx
)
->
open_graph
(
text
);
((
Ge
*
)
ctx
)
->
open_graph
(
text
);
if
(
ok_pressed
)
((
Ge
*
)
ctx
)
->
open_dialog
=
0
;
}
void
Ge
::
open_cancel_cb
(
void
*
ctx
)
{
((
Ge
*
)
ctx
)
->
open_dialog
=
0
;
}
}
int
Ge
::
sort_files
(
const
void
*
file1
,
const
void
*
file2
)
int
Ge
::
sort_files
(
const
void
*
file1
,
const
void
*
file2
)
...
@@ -1543,6 +1550,11 @@ void Ge::activate_open()
...
@@ -1543,6 +1550,11 @@ void Ge::activate_open()
char
type
[
80
];
char
type
[
80
];
int
version
;
int
version
;
if
(
open_dialog
)
{
wow
->
PopList
(
open_dialog
);
return
;
}
// Get the pwg files and order them
// Get the pwg files and order them
dcli_translate_filename
(
fname
,
"$pwrp_pop/*.pwg"
);
dcli_translate_filename
(
fname
,
"$pwrp_pop/*.pwg"
);
...
@@ -1586,8 +1598,8 @@ void Ge::activate_open()
...
@@ -1586,8 +1598,8 @@ void Ge::activate_open()
qsort
(
file_p
,
file_cnt
,
sizeof
(
*
file_p
),
Ge
::
sort_files
);
qsort
(
file_p
,
file_cnt
,
sizeof
(
*
file_p
),
Ge
::
sort_files
);
create_list
(
"Open Graph"
,
open_dialog
=
create_list
(
"Open Graph"
,
(
char
*
)
file_p
,
Ge
::
open_list
_cb
,
(
void
*
)
this
);
(
char
*
)
file_p
,
Ge
::
open_list_cb
,
Ge
::
open_cancel
_cb
,
(
void
*
)
this
);
free
(
file_p
);
free
(
file_p
);
...
@@ -1618,7 +1630,7 @@ static tThemes themes[] = {
...
@@ -1618,7 +1630,7 @@ static tThemes themes[] = {
{
"Polar"
,
14
},
{
"Polar"
,
14
},
{
"Custom"
,
100
}};
{
"Custom"
,
100
}};
static
void
ge_colortheme_selector_ok_cb
(
void
*
ctx
,
char
*
text
)
static
void
ge_colortheme_selector_ok_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
)
{
{
Ge
*
gectx
=
(
Ge
*
)
ctx
;
Ge
*
gectx
=
(
Ge
*
)
ctx
;
int
idx
=
-
1
;
int
idx
=
-
1
;
...
@@ -2258,6 +2270,7 @@ void Ge::help_cb( void *ctx, char *topic, char *helpfile)
...
@@ -2258,6 +2270,7 @@ void Ge::help_cb( void *ctx, char *topic, char *helpfile)
Ge
::~
Ge
()
Ge
::~
Ge
()
{
{
#ifdef LDH
#ifdef LDH
if
(
ldhses
)
if
(
ldhses
)
ldh_CloseSession
(
ldhses
);
ldh_CloseSession
(
ldhses
);
...
@@ -2274,7 +2287,8 @@ Ge::Ge( void *x_parent_ctx,
...
@@ -2274,7 +2287,8 @@ Ge::Ge( void *x_parent_ctx,
yesnodia_yes_cb
(
0
),
yesnodia_no_cb
(
0
),
india_ok_cb
(
0
),
current_text_object
(
0
),
yesnodia_yes_cb
(
0
),
yesnodia_no_cb
(
0
),
india_ok_cb
(
0
),
current_text_object
(
0
),
current_value_object
(
0
),
current_confirm_object
(
0
),
ldhses
(
0
),
plantctx
(
0
),
current_value_object
(
0
),
current_confirm_object
(
0
),
ldhses
(
0
),
plantctx
(
0
),
exit_when_close
(
x_exit_when_close
),
prev_count
(
0
),
focused_component
(
0
),
exit_when_close
(
x_exit_when_close
),
prev_count
(
0
),
focused_component
(
0
),
recover_object
(
0
),
plant_mapped
(
0
),
subpalette_mapped
(
0
),
options
(
x_options
)
recover_object
(
0
),
plant_mapped
(
0
),
subpalette_mapped
(
0
),
options
(
x_options
),
open_dialog
(
0
)
{
{
strcpy
(
name
,
"PwR Ge"
);
strcpy
(
name
,
"PwR Ge"
);
...
...
xtt/lib/ge/src/ge.h
View file @
ae7ad342
...
@@ -118,6 +118,7 @@ class Ge {
...
@@ -118,6 +118,7 @@ class Ge {
int
subpalette_mapped
;
int
subpalette_mapped
;
unsigned
int
options
;
unsigned
int
options
;
CoWow
*
wow
;
CoWow
*
wow
;
void
*
open_dialog
;
Ge
(
void
*
parent_ctx
,
Ge
(
void
*
parent_ctx
,
ldh_tSesContext
ldhses
,
int
exit_when_close
,
unsigned
int
x_options
);
ldh_tSesContext
ldhses
,
int
exit_when_close
,
unsigned
int
x_options
);
...
@@ -140,8 +141,9 @@ class Ge {
...
@@ -140,8 +141,9 @@ class Ge {
virtual
void
subgraphs_new
()
{}
virtual
void
subgraphs_new
()
{}
virtual
void
update
()
{}
virtual
void
update
()
{}
virtual
int
get_plant_select
(
char
*
name
,
int
size
)
{
return
0
;}
virtual
int
get_plant_select
(
char
*
name
,
int
size
)
{
return
0
;}
virtual
void
create_list
(
const
char
*
title
,
const
char
*
texts
,
virtual
void
*
create_list
(
const
char
*
title
,
const
char
*
texts
,
void
(
action_cb
)(
void
*
,
char
*
),
void
*
ctx
)
{}
void
(
action_cb
)(
void
*
,
char
*
,
int
),
void
(
cancel_cb
)(
void
*
),
void
*
ctx
)
{
return
0
;}
virtual
int
create_modal_dialog
(
const
char
*
title
,
const
char
*
text
,
const
char
*
button1
,
virtual
int
create_modal_dialog
(
const
char
*
title
,
const
char
*
text
,
const
char
*
button1
,
const
char
*
button2
,
const
char
*
button3
,
const
char
*
button2
,
const
char
*
button3
,
const
char
*
image
)
{
return
0
;}
const
char
*
image
)
{
return
0
;}
...
@@ -320,7 +322,8 @@ class Ge {
...
@@ -320,7 +322,8 @@ class Ge {
static
void
subgraphs_close_cb
(
SubGraphs
*
subgraphs
);
static
void
subgraphs_close_cb
(
SubGraphs
*
subgraphs
);
static
void
status_msg
(
void
*
ge_ctx
,
double
x
,
double
y
);
static
void
status_msg
(
void
*
ge_ctx
,
double
x
,
double
y
);
static
int
command_cb
(
void
*
ge_ctx
,
char
*
command
,
char
*
script
);
static
int
command_cb
(
void
*
ge_ctx
,
char
*
command
,
char
*
script
);
static
void
open_list_cb
(
void
*
ctx
,
char
*
text
);
static
void
open_list_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
);
static
void
open_cancel_cb
(
void
*
ctx
);
static
int
sort_files
(
const
void
*
file1
,
const
void
*
file2
);
static
int
sort_files
(
const
void
*
file1
,
const
void
*
file2
);
static
int
colorpalette_cb
(
GlowCtx
*
ctx
,
glow_tEvent
event
);
static
int
colorpalette_cb
(
GlowCtx
*
ctx
,
glow_tEvent
event
);
...
...
xtt/lib/xtt/gtk/xtt_clog_gtk.cpp
View file @
ae7ad342
...
@@ -338,7 +338,7 @@ void CLogGtk::activate_select_file( GtkWidget *w, gpointer data)
...
@@ -338,7 +338,7 @@ void CLogGtk::activate_select_file( GtkWidget *w, gpointer data)
free
(
str
);
free
(
str
);
}
}
void
CLogGtk
::
file_selected_cb
(
void
*
ctx
,
char
*
text
)
void
CLogGtk
::
file_selected_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
)
{
{
CLog
*
clog
=
(
CLog
*
)
ctx
;
CLog
*
clog
=
(
CLog
*
)
ctx
;
int
idx
=
-
1
;
int
idx
=
-
1
;
...
...
xtt/lib/xtt/gtk/xtt_clog_gtk.h
View file @
ae7ad342
...
@@ -91,7 +91,7 @@ class CLogGtk : public CLog {
...
@@ -91,7 +91,7 @@ class CLogGtk : public CLog {
static
void
filter_ok_cb
(
GtkWidget
*
w
,
gpointer
data
);
static
void
filter_ok_cb
(
GtkWidget
*
w
,
gpointer
data
);
static
void
filter_apply_cb
(
GtkWidget
*
w
,
gpointer
data
);
static
void
filter_apply_cb
(
GtkWidget
*
w
,
gpointer
data
);
static
void
filter_cancel_cb
(
GtkWidget
*
w
,
gpointer
data
);
static
void
filter_cancel_cb
(
GtkWidget
*
w
,
gpointer
data
);
static
void
file_selected_cb
(
void
*
ctx
,
char
*
text
);
static
void
file_selected_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
);
};
};
...
...
xtt/lib/xtt/src/xtt_tcurve.cpp
View file @
ae7ad342
...
@@ -500,7 +500,7 @@ void XttTCurve::tcurve_save_cb( void *ctx)
...
@@ -500,7 +500,7 @@ void XttTCurve::tcurve_save_cb( void *ctx)
tcurve_file_selected_cb
,
0
,
40
,
tcurve
->
title
,
0
);
tcurve_file_selected_cb
,
0
,
40
,
tcurve
->
title
,
0
);
}
}
void
XttTCurve
::
tcurve_open_file_cb
(
void
*
ctx
,
char
*
text
)
void
XttTCurve
::
tcurve_open_file_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
)
{
{
XttTCurve
*
tcurve
=
(
XttTCurve
*
)
ctx
;
XttTCurve
*
tcurve
=
(
XttTCurve
*
)
ctx
;
...
...
xtt/lib/xtt/src/xtt_tcurve.h
View file @
ae7ad342
...
@@ -151,7 +151,7 @@ class XttTCurve {
...
@@ -151,7 +151,7 @@ class XttTCurve {
int
rows
,
int
idx
,
char
*
filename
);
int
rows
,
int
idx
,
char
*
filename
);
static
void
tcurve_help_cb
(
void
*
ctx
);
static
void
tcurve_help_cb
(
void
*
ctx
);
static
void
tcurve_file_selected_cb
(
void
*
ctx
,
void
*
data
,
char
*
text
);
static
void
tcurve_file_selected_cb
(
void
*
ctx
,
void
*
data
,
char
*
text
);
static
void
tcurve_open_file_cb
(
void
*
ctx
,
char
*
text
);
static
void
tcurve_open_file_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
);
static
void
tcurve_scan
(
void
*
data
);
static
void
tcurve_scan
(
void
*
data
);
};
};
...
...
xtt/lib/xtt/src/xtt_trend.cpp
View file @
ae7ad342
...
@@ -542,7 +542,7 @@ public:
...
@@ -542,7 +542,7 @@ public:
vector
<
AttrList
>
v
;
vector
<
AttrList
>
v
;
};
};
static
void
add_objectlist_cb
(
void
*
ctx
,
char
*
text
)
static
void
add_objectlist_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
)
{
{
printf
(
"%s
\n
"
,
text
);
printf
(
"%s
\n
"
,
text
);
...
...
xtt/lib/xtt/src/xtt_xnav_command.cpp
View file @
ae7ad342
...
@@ -192,11 +192,11 @@ static void xnav_fast_close_cb( void *ctx, XttFast *fast);
...
@@ -192,11 +192,11 @@ static void xnav_fast_close_cb( void *ctx, XttFast *fast);
static
void
xnav_fast_help_cb
(
void
*
ctx
,
const
char
*
key
);
static
void
xnav_fast_help_cb
(
void
*
ctx
,
const
char
*
key
);
static
void
xnav_xao_close_cb
(
void
*
ctx
,
XAttOne
*
xao
);
static
void
xnav_xao_close_cb
(
void
*
ctx
,
XAttOne
*
xao
);
static
void
xnav_clog_close_cb
(
void
*
ctx
);
static
void
xnav_clog_close_cb
(
void
*
ctx
);
static
void
xnav_open_shist_cb
(
void
*
ctx
,
char
*
text
);
static
void
xnav_open_shist_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
);
static
void
xnav_open_shist_cancel_cb
(
void
*
ctx
);
static
void
xnav_open_shist_cancel_cb
(
void
*
ctx
);
static
void
xnav_show_objectlist_cb
(
void
*
ctx
,
char
*
text
);
static
void
xnav_show_objectlist_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
);
static
void
xnav_show_objectlist_cancel_cb
(
void
*
ctx
);
static
void
xnav_show_objectlist_cancel_cb
(
void
*
ctx
);
static
void
xnav_colortheme_selector_ok_cb
(
void
*
ctx
,
char
*
text
);
static
void
xnav_colortheme_selector_ok_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
);
static
void
xnav_keyboard_key_pressed_cb
(
void
*
,
int
);
static
void
xnav_keyboard_key_pressed_cb
(
void
*
,
int
);
static
void
xnav_keyboard_close_cb
(
void
*
);
static
void
xnav_keyboard_close_cb
(
void
*
);
static
int
xnav_replace_node_str
(
char
*
out
,
char
*
object_str
);
static
int
xnav_replace_node_str
(
char
*
out
,
char
*
object_str
);
...
@@ -2666,8 +2666,8 @@ static int xnav_show_func( void *client_data,
...
@@ -2666,8 +2666,8 @@ static int xnav_show_func( void *client_data,
ctx
->
cid
=
cid
[
0
];
ctx
->
cid
=
cid
[
0
];
ctx
->
xnav
=
xnav
;
ctx
->
xnav
=
xnav
;
xnav
->
wow
->
CreateList
(
title_str
,
(
char
*
)
names
,
sizeof
(
names
[
0
]),
xnav_show_objectlist_cb
,
xnav
->
wow
->
CreateList
(
title_str
,
(
char
*
)
names
,
sizeof
(
names
[
0
]),
xnav_show_objectlist_cb
,
xnav_show_objectlist_cancel_cb
,
ctx
);
xnav_show_objectlist_cancel_cb
,
ctx
);
free
(
names
);
free
(
names
);
}
}
else
else
...
@@ -4291,8 +4291,8 @@ static int xnav_open_func( void *client_data,
...
@@ -4291,8 +4291,8 @@ static int xnav_open_func( void *client_data,
ctx
=
(
xnav_sHistList
*
)
calloc
(
1
,
sizeof
(
xnav_sHistList
));
ctx
=
(
xnav_sHistList
*
)
calloc
(
1
,
sizeof
(
xnav_sHistList
));
ctx
->
oid
=
oid
;
ctx
->
oid
=
oid
;
ctx
->
xnav
=
xnav
;
ctx
->
xnav
=
xnav
;
xnav
->
wow
->
CreateList
(
"History List"
,
(
char
*
)
cname
,
sizeof
(
cname
[
0
]),
xnav_open_shist_cb
,
xnav
->
wow
->
CreateList
(
"History List"
,
(
char
*
)
cname
,
sizeof
(
cname
[
0
]),
xnav_open_shist_cb
,
xnav_open_shist_cancel_cb
,
ctx
);
xnav_open_shist_cancel_cb
,
ctx
);
}
}
else
if
(
cdh_NoCaseStrncmp
(
arg1_str
,
"TCURVE"
,
strlen
(
arg1_str
))
==
0
)
else
if
(
cdh_NoCaseStrncmp
(
arg1_str
,
"TCURVE"
,
strlen
(
arg1_str
))
==
0
)
{
{
...
@@ -6197,7 +6197,7 @@ static int xnav_delete_func( void *client_data,
...
@@ -6197,7 +6197,7 @@ static int xnav_delete_func( void *client_data,
return
XNAV__SUCCESS
;
return
XNAV__SUCCESS
;
}
}
static
void
xnav_collect_open_cb
(
void
*
ctx
,
char
*
text
)
static
void
xnav_collect_open_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
)
{
{
XNav
*
xnav
=
(
XNav
*
)
ctx
;
XNav
*
xnav
=
(
XNav
*
)
ctx
;
pwr_tCmd
cmd
;
pwr_tCmd
cmd
;
...
@@ -6355,7 +6355,7 @@ static int xnav_collect_func( void *client_data,
...
@@ -6355,7 +6355,7 @@ static int xnav_collect_func( void *client_data,
}
}
else
else
xnav
->
wow
->
CreateFileList
(
"Open Collection"
,
"$pwrp_load"
,
"*"
,
"rtt_col"
,
xnav
->
wow
->
CreateFileList
(
"Open Collection"
,
"$pwrp_load"
,
"*"
,
"rtt_col"
,
xnav_collect_open_cb
,
0
,
xnav
,
1
);
xnav_collect_open_cb
,
0
,
xnav
,
1
);
return
XNAV__SUCCESS
;
return
XNAV__SUCCESS
;
}
}
...
@@ -10101,7 +10101,7 @@ void XNav::print_methods()
...
@@ -10101,7 +10101,7 @@ void XNav::print_methods()
}
}
}
}
static
void
xnav_open_shist_cb
(
void
*
ctx
,
char
*
text
)
static
void
xnav_open_shist_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
)
{
{
pwr_tOName
oname
;
pwr_tOName
oname
;
pwr_tOid
coid
;
pwr_tOid
coid
;
...
@@ -10129,7 +10129,7 @@ static void xnav_open_shist_cancel_cb( void *ctx)
...
@@ -10129,7 +10129,7 @@ static void xnav_open_shist_cancel_cb( void *ctx)
free
(
ctx
);
free
(
ctx
);
}
}
static
void
xnav_colortheme_selector_ok_cb
(
void
*
ctx
,
char
*
text
)
static
void
xnav_colortheme_selector_ok_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
)
{
{
XNav
*
xnav
=
(
XNav
*
)
ctx
;
XNav
*
xnav
=
(
XNav
*
)
ctx
;
gdh_sValueDef
*
vd
;
gdh_sValueDef
*
vd
;
...
@@ -10179,7 +10179,7 @@ static void xnav_colortheme_selector_ok_cb( void *ctx, char *text)
...
@@ -10179,7 +10179,7 @@ static void xnav_colortheme_selector_ok_cb( void *ctx, char *text)
free
(
vd
);
free
(
vd
);
}
}
static
void
xnav_show_objectlist_cb
(
void
*
ctx
,
char
*
text
)
static
void
xnav_show_objectlist_cb
(
void
*
ctx
,
char
*
text
,
int
ok_pressed
)
{
{
XNav
*
xnav
=
((
xnav_sObjectList
*
)
ctx
)
->
xnav
;
XNav
*
xnav
=
((
xnav_sObjectList
*
)
ctx
)
->
xnav
;
pwr_tCid
cid
=
((
xnav_sObjectList
*
)
ctx
)
->
cid
;
pwr_tCid
cid
=
((
xnav_sObjectList
*
)
ctx
)
->
cid
;
...
...
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